<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>103983</bug_id>
          
          <creation_ts>2012-12-04 01:26:13 -0800</creation_ts>
          <short_desc>Coordinated Graphics: Rename WebLayerTreeInfo to CoordinatedLayerInfo</short_desc>
          <delta_ts>2012-12-06 17:46:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>102994</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Jae Hyun Park">jaepark</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>782360</commentid>
    <comment_count>0</comment_count>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2012-12-04 01:26:13 -0800</bug_when>
    <thetext>Currently, WebLayerTreeInfo only has WebLayerInfo as a struct. Also, it is hard to know what WebLayer is since we don&apos;t use that name anymore. More appropriate name for WebLayerInfo would be CoordinatedLayerInfo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782362</commentid>
    <comment_count>1</comment_count>
      <attachid>177444</attachid>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2012-12-04 01:31:02 -0800</bug_when>
    <thetext>Created attachment 177444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783498</commentid>
    <comment_count>2</comment_count>
      <attachid>177444</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-05 01:08:54 -0800</bug_when>
    <thetext>Comment on attachment 177444
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=177444&amp;action=review

&gt; Source/WebKit2/Scripts/webkit2/messages.py:400
&gt; +        &apos;WebKit::CoordinatedLayerInfo&apos;: [&apos;&quot;CoordinatedLayerInfo.h&quot;&apos;],

This is not needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783502</commentid>
    <comment_count>3</comment_count>
      <attachid>177695</attachid>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2012-12-05 01:18:50 -0800</bug_when>
    <thetext>Created attachment 177695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783503</commentid>
    <comment_count>4</comment_count>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2012-12-05 01:19:18 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 177444 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177444&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Scripts/webkit2/messages.py:400
&gt; &gt; +        &apos;WebKit::CoordinatedLayerInfo&apos;: [&apos;&quot;CoordinatedLayerInfo.h&quot;&apos;],
&gt; 
&gt; This is not needed
Fixed.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784289</commentid>
    <comment_count>5</comment_count>
      <attachid>177695</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 16:59:25 -0800</bug_when>
    <thetext>Comment on attachment 177695
Patch

Rejecting attachment 177695 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
to file Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp.rej
patching file Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h
Hunk #1 FAILED at 78.
1 out of 3 hunks FAILED -- saving rejects to file Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Noam Rosen...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/15174038</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784516</commentid>
    <comment_count>6</comment_count>
      <attachid>177914</attachid>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2012-12-05 20:10:17 -0800</bug_when>
    <thetext>Created attachment 177914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785423</commentid>
    <comment_count>7</comment_count>
      <attachid>178111</attachid>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2012-12-06 16:53:41 -0800</bug_when>
    <thetext>Created attachment 178111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785473</commentid>
    <comment_count>8</comment_count>
      <attachid>178111</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 17:46:04 -0800</bug_when>
    <thetext>Comment on attachment 178111
Patch

Clearing flags on attachment: 178111

Committed r136912: &lt;http://trac.webkit.org/changeset/136912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785474</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 17:46:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177444</attachid>
            <date>2012-12-04 01:31:02 -0800</date>
            <delta_ts>2012-12-05 01:18:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103983-20121204012909.patch</filename>
            <type>text/plain</type>
            <size>59335</size>
            <attacher name="Jae Hyun Park">jaepark</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzIwOGIwOGUxNWM5ODNl
NzYzODRhNjE0OTVhNWZlYjk5ZWE2MDU1MS4uMjEzYzZjMzI0MDc4NDM4ODgzZTdjZGIwOWU5ZTc5
ZTQ5ZWQyODFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAxMi0xMi0wNCAgSmFl
IEh5dW4gUGFyayAgPGphZS5wYXJrQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW5hbWUgV2ViTGF5ZXJUcmVlSW5mbyB0byBDb29yZGluYXRlZExheWVy
SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCByZWZhY3RvcnMgV2ViTGF5ZXJUcmVlSW5mbyBpbiAyIGFyZWFzLgorCisgICAgICAg
IDEuIFdlYkxheWVyVHJlZUluZm8gaXMgb25seSB1c2VkIGJ5IENvb3JkaW5hdGVkIEdyYXBoaWNz
LiBTbywgdGhlIGZpbGUKKyAgICAgICAgc2hvdWxkIGJlIGxvY2F0ZWQgaW4gV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcyBpbnN0ZWFkIG9mCisgICAgICAgIFdlYktpdDIvU2hhcmVk
LgorCisgICAgICAgIDIuIFRoZSBuYW1lIG9mIFdlYkxheWVyVHJlZUluZm8gaXMgaW5jb3JyZWN0
LiBDdXJyZW50bHksCisgICAgICAgIFdlYkxheWVyVHJlZUluZm8gb25seSBoYXMgV2ViTGF5ZXJJ
bmZvIHN0cnVjdC4gQWxzbywgaXQgaXMgaGFyZCB0byBrbm93CisgICAgICAgIHdoYXQgV2ViTGF5
ZXIgaXMgc2luY2Ugd2UgZG9uJ3QgdXNlIHRoYXQgbmFtZSBhbnltb3JlLiBNb3JlIGFwcHJvcHJp
YXRlCisgICAgICAgIG5hbWUgZm9yIFdlYkxheWVySW5mbyB3b3VsZCBiZSBDb29yZGluYXRlZExh
eWVySW5mby4KKworICAgICAgICBObyBuZXcgdGVzdCwgYmVjYXVzZSBubyBiZWhhdmlvcmFsIGNo
YW5nZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAq
IFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJbmZvOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5m
by5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8u
aC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJ
bmZvOjpDb29yZGluYXRlZExheWVySW5mbyk6CisgICAgICAgIChDb29yZGluYXRlZExheWVySW5m
byk6CisgICAgICAgICogU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVy
VHJlZUNvbnRleHQpOgorICAgICAgICAqIFNoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQp
OgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb250ZXh0OjplbmNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVDb250ZXh0OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVDb250ZXh0Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgICogU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQpOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVDb250ZXh0OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVD
b250ZXh0OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb250ZXh0Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eTo6ZGVsZXRlQ29tcG9zaXRpbmdMYXllcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllclN0YXRl
KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9z
aXRpbmdMYXllckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllckZpbHRlcnMpOgorICAgICAgICAoV2ViS2l0OjpM
YXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRMYXllckFuaW1hdGlvbnMpOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpjcmVhdGVDYW52YXMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzeW5jQ2FudmFzKToKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6ZGVzdHJveUNhbnZhcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVSZW5kZXJlcjo6TGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVSZW5kZXJlcjo6Y3JlYXRlQ2FudmFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
UmVuZGVyZXI6OnN5bmNDYW52YXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJl
cjo6ZGVzdHJveUNhbnZhcyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpz
ZXRMYXllckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNl
dExheWVyRmlsdGVycyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRM
YXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmRlbGV0ZUxh
eWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZUxheWVyKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNldFJvb3RMYXllcklEKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUpOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlVGlsZSk6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlUmVuZGVyZXI6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJl
ZVJlbmRlcmVyOjpwdXJnZUdMUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
UmVuZGVyZXI6OnNldExheWVyQW5pbWF0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJl
bmRlcmVyOjpsYXllckJ5SUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpsYXllckJ5SURNYXApOgorICAgICAgICAoV2ViQ29yZTo6dG9Db29yZGluYXRlZExh
eWVySUQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAgIChDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVyU3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVyQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlQ2FudmFzKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNDYW52YXMpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6ZGVzdHJveUNhbnZhcyk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJGaWx0ZXJzKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVRpbGUpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6dXBkYXRlVGlsZSk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVUaWxlKToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNldExheWVyQW5pbWF0aW9ucyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKwogMjAxMi0xMi0wMyAgSmFl
IEh5dW4gUGFyayAgPGphZS5wYXJrQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBNb3ZlIEFyZWFBbGxvY2F0b3IgYW5kIFVwZGF0ZUF0bGFzIHRvIENvb3Jk
aW5hdGVkR3JhcGhpY3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNTk5NGEyYTM1Y2I5YzUzMDk3
YWE0OTliNjM4MDQ4ZDk0NzY3ZmJkZC4uNDA2OWM4YjM1MTQxZDJkZjYzZDA0ZGI4MzQzMGE5ZmY0
ZjY2MTU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTE3NSw3ICsxNzUsNiBAQCBTRVQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL1dlYkltYWdlLmNwcAogICAgIFNoYXJlZC9XZWJJbnRl
bnRTZXJ2aWNlSW5mby5jcHAKICAgICBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKLSAgICBT
aGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAKICAgICBTaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5j
cHAKICAgICBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKICAgICBTaGFyZWQvV2ViTmV0d29ya0lu
Zm8uY3BwCkBAIC0yMTgsNiArMjE3LDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJl
ZC9BUEkvYy9XS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAKIAogICAgIFNoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKKyAgICBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5jcHAKICAgICBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkuY3Bw
CiAKICAgICBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDBjOWI5NDExNjdiYjBlMGEwZGNi
ZDYyOGQwYzEzZWZhMWJmMTJjNTUuLjcwMjkxNzYzNWJjOTgzYjVkMWQ4OTEyZmMxZTEzNzMwMWFl
YzRmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdl
cy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAg
LTM5NiwxMSArMzk2LDExIEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAn
V2ViQ29yZTo6UGx1Z2luSW5mbyc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0JzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tlckNs
aWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJzogWyc8V2Vi
Q29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPiddLAorICAgICAgICAnV2ViS2l0OjpDb29yZGluYXRl
ZExheWVySUQnOiBbJyJDb29yZGluYXRlZExheWVySW5mby5oIiddLAorICAgICAgICAnV2ViS2l0
OjpDb29yZGluYXRlZExheWVySW5mbyc6IFsnIkNvb3JkaW5hdGVkTGF5ZXJJbmZvLmgiJ10sCiAg
ICAgICAgICdXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyJzogW10sCiAg
ICAgICAgICdXZWJLaXQ6OldlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXInOiBbXSwKICAgICAg
ICAgJ1dlYktpdDo6V2ViR2VzdHVyZUV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKLSAgICAgICAg
J1dlYktpdDo6V2ViTGF5ZXJJRCc6IFsnIldlYkxheWVyVHJlZUluZm8uaCInXSwKLSAgICAgICAg
J1dlYktpdDo6V2ViTGF5ZXJJbmZvJzogWyciV2ViTGF5ZXJUcmVlSW5mby5oIiddLAogICAgICAg
ICAnV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKICAgICAgICAg
J1dlYktpdDo6V2ViTW91c2VFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCiAgICAgICAgICdXZWJL
aXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8u
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllckluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkODZlNjI5NzRmZTM4NTM4ZDYzNmY3MWQwNzRk
MjMyODQ2YTQ1YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5jcHAKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisKKyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisKKyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpbmNsdWRlICJDb29yZGlu
YXRlZExheWVySW5mby5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRl
ICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKwordXNpbmcgbmFtZXNw
YWNlIENvcmVJUEM7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIENvb3JkaW5hdGVkTGF5
ZXJJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRMYXllckluZm8+OjplbmNvZGUo
ZW5jb2RlciwgKnRoaXMpOworfQorCitib29sIENvb3JkaW5hdGVkTGF5ZXJJbmZvOjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBDb29yZGluYXRlZExheWVySW5mbyYg
aW5mbykKK3sKKyAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZExheWVy
SW5mbz46OmRlY29kZShkZWNvZGVyLCBpbmZvKTsKK30KK30KKyNlbmRpZiAvLyBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yN2M4MTZiNjg3NDY5YjliOTAwZGY4NzA2ZGY5MzRjNTBmODgwZDdkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllckluZm8uaApAQCAtMCwwICsxLDgyIEBACisvKgorIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBDb29yZGluYXRlZExheWVySW5mb19oCisjZGVmaW5lIENv
b3JkaW5hdGVkTGF5ZXJJbmZvX2gKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKwor
I2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5o
IgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3R5cGVkZWYgdWlu
dDMyX3QgQ29vcmRpbmF0ZWRMYXllcklEOworZW51bSB7IEludmFsaWRDb29yZGluYXRlZExheWVy
SUQgPSAwIH07CisKK3R5cGVkZWYgdWludDY0X3QgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRDsK
K2VudW0geyBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCA9IDAgfTsKKworLy8gTk9U
RTogQ29vcmRpbmF0ZWRMYXllckluZm8gc2hvdWxkIG9ubHkgdXNlIFBPRCB0eXBlcywgYXMgdG8g
bWFrZSBzZXJpYWxpemF0aW9uIGZhc3Rlci4KK3N0cnVjdCBDb29yZGluYXRlZExheWVySW5mbyB7
CisgICAgQ29vcmRpbmF0ZWRMYXllckluZm8oKQorICAgICAgICA6IHJlcGxpY2EoSW52YWxpZENv
b3JkaW5hdGVkTGF5ZXJJRCkKKyAgICAgICAgLCBtYXNrKEludmFsaWRDb29yZGluYXRlZExheWVy
SUQpCisgICAgICAgICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkK
KyAgICAgICAgLCBvcGFjaXR5KDApCisgICAgICAgICwgZmxhZ3MoMCkgeyB9CisKKyAgICBDb29y
ZGluYXRlZExheWVySUQgcmVwbGljYTsKKyAgICBDb29yZGluYXRlZExheWVySUQgbWFzazsKKyAg
ICBDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQ7CisKKyAgICBXZWJDb3JlOjpGbG9h
dFBvaW50IHBvczsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50M0QgYW5jaG9yUG9pbnQ7CisgICAg
V2ViQ29yZTo6RmxvYXRTaXplIHNpemU7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRy
aXggdHJhbnNmb3JtOworICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkcmVu
VHJhbnNmb3JtOworICAgIFdlYkNvcmU6OkludFJlY3QgY29udGVudHNSZWN0OworICAgIGZsb2F0
IG9wYWNpdHk7CisKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICBi
b29sIGNvbnRlbnRzT3BhcXVlIDogMTsKKyAgICAgICAgICAgIGJvb2wgZHJhd3NDb250ZW50IDog
MTsKKyAgICAgICAgICAgIGJvb2wgY29udGVudHNWaXNpYmxlIDogMTsKKyAgICAgICAgICAgIGJv
b2wgYmFja2ZhY2VWaXNpYmxlIDogMTsKKyAgICAgICAgICAgIGJvb2wgbWFza3NUb0JvdW5kcyA6
IDE7CisgICAgICAgICAgICBib29sIHByZXNlcnZlczNEIDogMTsKKyAgICAgICAgICAgIGJvb2wg
aXNSb290TGF5ZXI6IDE7CisgICAgICAgICAgICBib29sIGZpeGVkVG9WaWV3cG9ydCA6IDE7Cisg
ICAgICAgIH07CisgICAgICAgIHVuc2lnbmVkIGZsYWdzOworICAgIH07CisKKyAgICB2b2lkIGVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgQ29vcmRpbmF0ZWRMYXllckluZm8mKTsK
K307CisKK30KKworI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKworI2VuZGlm
IC8vIENvb3JkaW5hdGVkTGF5ZXJJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9MYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVl
Q29udGV4dC5oCmluZGV4IGY4ZTJmY2U2MWYzM2QyYWNmNzQ3ZjBlOWNjNWVlNjNlYmM3ZWZlYTku
LjNmZjdjYjRhMzViMWRjMmEyNTJkY2FjYWM3NGFmYTIwZmY4MTkzMjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaApAQCAtNTcsMTEgKzU3LDExIEBAIHB1YmxpYzoK
ICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICBIV05EIHdpbmRvdzsKICNlbGlmIFBMQVRGT1JNKFFU
KQotICAgIHVpbnQzMl90IHdlYkxheWVySUQ7CisgICAgdWludDMyX3QgY29vcmRpbmF0ZWRMYXll
cklEOwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIHVpbnQ2NF90IHdpbmRvd0hhbmRsZTsKICNl
bGlmIFBMQVRGT1JNKEVGTCkKLSAgICB1aW50MzJfdCB3ZWJMYXllcklEOworICAgIHVpbnQzMl90
IGNvb3JkaW5hdGVkTGF5ZXJJRDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkxheWVyVHJlZUluZm8uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMWIx
MzFmZWFiZDM2MDUxYzk2OThjOTU2Y2ZmMzU3MTI3OTM2YTc5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXll
clRyZWVJbmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQotCi0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgotIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
Ci0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0jaW5jbHVkZSAiV2ViTGF5ZXJUcmVlSW5mby5oIgot
Ci0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudHMuaCIKLSNp
bmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKLQotdXNpbmcgbmFtZXNwYWNlIENvcmVJUEM7Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi12b2lkIFdlYkxheWVySW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVy
PFdlYkxheWVySW5mbz46OmVuY29kZShlbmNvZGVyLCAqdGhpcyk7Ci19Ci0KLWJvb2wgV2ViTGF5
ZXJJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJMYXll
ckluZm8mIGluZm8pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViTGF5ZXJJ
bmZvPjo6ZGVjb2RlKGRlY29kZXIsIGluZm8pOwotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2YzMjM3MWFmY2Y3NDFmZGY0YTU2MDY5NGE3YjIwMTIyM2VhNGEwYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
TGF5ZXJUcmVlSW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotLyoKLSBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCi0KLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0KLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgV2ViTGF5ZXJUcmVlSW5mb19o
Ci0jZGVmaW5lIFdlYkxheWVyVHJlZUluZm9faAotCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQotCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRF
bmNvZGVyLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiRmxvYXRTaXplLmgi
Ci0jaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdHlw
ZWRlZiB1aW50MzJfdCBXZWJMYXllcklEOwotZW51bSB7IEludmFsaWRXZWJMYXllcklEID0gMCB9
OwotCi10eXBlZGVmIHVpbnQ2NF90IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQ7Ci1lbnVtIHsg
SW52YWxpZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgPSAwIH07Ci0KLS8vIE5PVEU6IFdlYkxh
eWVySW5mbyBzaG91bGQgb25seSB1c2UgUE9EIHR5cGVzLCBhcyB0byBtYWtlIHNlcmlhbGl6YXRp
b24gZmFzdGVyLgotc3RydWN0IFdlYkxheWVySW5mbyB7Ci0gICAgV2ViTGF5ZXJJbmZvKCkKLSAg
ICAgICAgOiByZXBsaWNhKEludmFsaWRXZWJMYXllcklEKQotICAgICAgICAsIG1hc2soSW52YWxp
ZFdlYkxheWVySUQpCi0gICAgICAgICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRCkKLSAgICAgICAgLCBvcGFjaXR5KDApCi0gICAgICAgICwgZmxhZ3MoMCkgeyB9Ci0K
LSAgICBXZWJMYXllcklEIHJlcGxpY2E7Ci0gICAgV2ViTGF5ZXJJRCBtYXNrOwotICAgIENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRDsKLQotICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQg
cG9zOwotICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCBhbmNob3JQb2ludDsKLSAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgc2l6ZTsKLSAgICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFu
c2Zvcm07Ci0gICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggY2hpbGRyZW5UcmFuc2Zv
cm07Ci0gICAgV2ViQ29yZTo6SW50UmVjdCBjb250ZW50c1JlY3Q7Ci0gICAgZmxvYXQgb3BhY2l0
eTsKLQotICAgIHVuaW9uIHsKLSAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIGJvb2wgY29u
dGVudHNPcGFxdWUgOiAxOwotICAgICAgICAgICAgYm9vbCBkcmF3c0NvbnRlbnQgOiAxOwotICAg
ICAgICAgICAgYm9vbCBjb250ZW50c1Zpc2libGUgOiAxOwotICAgICAgICAgICAgYm9vbCBiYWNr
ZmFjZVZpc2libGUgOiAxOwotICAgICAgICAgICAgYm9vbCBtYXNrc1RvQm91bmRzIDogMTsKLSAg
ICAgICAgICAgIGJvb2wgcHJlc2VydmVzM0QgOiAxOwotICAgICAgICAgICAgYm9vbCBpc1Jvb3RM
YXllcjogMTsKLSAgICAgICAgICAgIGJvb2wgZml4ZWRUb1ZpZXdwb3J0IDogMTsKLSAgICAgICAg
fTsKLSAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwotICAgIH07Ci0KLSAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViTGF5ZXJJbmZvJik7Ci19OwotCi19Ci0K
LSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KLSNlbmRpZiAvLyBXZWJM
YXllclRyZWVJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5
ZXJUcmVlQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJl
ZUNvbnRleHRFZmwuY3BwCmluZGV4IDMyZmE5NzBhOGU0OTVmMGQzNjViYWM4MThhZGFkNGNkZmQ0
OWFhNmQuLjFmYTYzNWQ4M2QxYTMzOTJlZjdlNDAxNTVkNmRhOTkyZmRlYjY0M2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcApAQCAt
MzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIExheWVyVHJlZUNvbnRleHQ6Okxh
eWVyVHJlZUNvbnRleHQoKQotICAgIDogd2ViTGF5ZXJJRCgwKQorICAgIDogY29vcmRpbmF0ZWRM
YXllcklEKDApCiB7CiB9CiAKQEAgLTQyLDIyICs0MiwyMiBAQCBMYXllclRyZWVDb250ZXh0Ojp+
TGF5ZXJUcmVlQ29udGV4dCgpCiAKIHZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLmVuY29k
ZSh3ZWJMYXllcklEKTsKKyAgICBlbmNvZGVyLmVuY29kZShjb29yZGluYXRlZExheWVySUQpOwog
fQogCiBib29sIExheWVyVHJlZUNvbnRleHQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIExheWVyVHJlZUNvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIGRl
Y29kZXItPmRlY29kZShjb250ZXh0LndlYkxheWVySUQpOworICAgIHJldHVybiBkZWNvZGVyLT5k
ZWNvZGUoY29udGV4dC5jb29yZGluYXRlZExheWVySUQpOwogfQogCiBib29sIExheWVyVHJlZUNv
bnRleHQ6OmlzRW1wdHkoKSBjb25zdAogewotICAgIHJldHVybiAhd2ViTGF5ZXJJRDsKKyAgICBy
ZXR1cm4gIWNvb3JkaW5hdGVkTGF5ZXJJRDsKIH0KIAogYm9vbCBvcGVyYXRvcj09KGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmIGEsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGIpCiB7Ci0gICAgcmV0
dXJuIGEud2ViTGF5ZXJJRCA9PSBiLndlYkxheWVySUQ7CisgICAgcmV0dXJuIGEuY29vcmRpbmF0
ZWRMYXllcklEID09IGIuY29vcmRpbmF0ZWRMYXllcklEOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9MYXllclRyZWVDb250
ZXh0UXQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5j
cHAKaW5kZXggMDBlYTg3MzVmYWZlYmNjMzcxMWVlMTM1NGI4OTAyM2I0OTMwMTAyYS4uOWZjNDE2
MzUyY2YxYTUyNjcwZjEyZDIzNzMzY2Y2MWNjMjkwMTNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBMYXllclRyZWVDb250ZXh0OjpMYXllclRyZWVDb250ZXh0KCkK
LSAgICA6IHdlYkxheWVySUQoMCkKKyAgICA6IGNvb3JkaW5hdGVkTGF5ZXJJRCgwKQogewogfQog
CkBAIC00MiwyMiArNDIsMjIgQEAgTGF5ZXJUcmVlQ29udGV4dDo6fkxheWVyVHJlZUNvbnRleHQo
KQogCiB2b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci5lbmNvZGUod2ViTGF5ZXJJRCk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoY29vcmRpbmF0ZWRMYXllcklEKTsKIH0KIAogYm9vbCBMYXllclRy
ZWVDb250ZXh0OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBMYXll
clRyZWVDb250ZXh0JiBjb250ZXh0KQogewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoY29u
dGV4dC53ZWJMYXllcklEKTsKKyAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKGNvbnRleHQuY29v
cmRpbmF0ZWRMYXllcklEKTsKIH0KIAogYm9vbCBMYXllclRyZWVDb250ZXh0Ojppc0VtcHR5KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gIXdlYkxheWVySUQ7CisgICAgcmV0dXJuICFjb29yZGluYXRl
ZExheWVySUQ7CiB9CiAKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMYXllclRyZWVDb250ZXh0JiBh
LCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBiKQogewotICAgIHJldHVybiBhLndlYkxheWVySUQg
PT0gYi53ZWJMYXllcklEOworICAgIHJldHVybiBhLmNvb3JkaW5hdGVkTGF5ZXJJRCA9PSBiLmNv
b3JkaW5hdGVkTGF5ZXJJRDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpp
bmRleCA3MDIyOWM0OWU3NDZiNGY2MjVkZTViYzU2ZGRkYjFkZTE2OWIxZGM5Li5lNjQwODU5OTI3
NDNhOTFmMDI0MjQ2ZDQ0ODg5MTc0MzU2OWYyNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTEyMCw3ICsx
MjAsNiBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5oIFwKICAg
ICBTaGFyZWQvV2ViSW1hZ2UuaCBcCiAgICAgU2hhcmVkL1dlYkludGVudFNlcnZpY2VJbmZvLmgg
XAotICAgIFNoYXJlZC9XZWJMYXllclRyZWVJbmZvLmggXAogICAgIFNoYXJlZC9XZWJOYXZpZ2F0
aW9uRGF0YVN0b3JlLmggXAogICAgIFNoYXJlZC9XZWJOdW1iZXIuaCBcCiAgICAgU2hhcmVkL1dl
Yk9wZW5QYW5lbFBhcmFtZXRlcnMuaCBcCkBAIC0xMzUsNiArMTM0LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmggXAogICAgIFNoYXJlZC9XZWJVc2VyQ29udGVu
dFVSTFBhdHRlcm4uaCBcCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmggXAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmggXAogICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW0uaCBcCiAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCBcCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVP
YmplY3RNYXAuaCBcCkBAIC00ODYsNyArNDg2LDYgQEAgU09VUkNFUyArPSBcCiAgICAgU2hhcmVk
L1dlYktleWJvYXJkRXZlbnQuY3BwIFwKICAgICBTaGFyZWQvV2ViSW1hZ2UuY3BwIFwKICAgICBT
aGFyZWQvV2ViSW50ZW50U2VydmljZUluZm8uY3BwIFwKLSAgICBTaGFyZWQvV2ViTGF5ZXJUcmVl
SW5mby5jcHAgXAogICAgIFNoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcCBcCiAgICAgU2hhcmVkL1dl
Yk5ldHdvcmtJbmZvLmNwcCBcCiAgICAgU2hhcmVkL1dlYk9wZW5QYW5lbFBhcmFtZXRlcnMuY3Bw
IFwKQEAgLTUwMyw2ICs1MDIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBTaGFyZWQvV2ViVVJMUmVz
cG9uc2UuY3BwIFwKICAgICBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgXAogICAgIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAg
XAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmNw
cCBcCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3Jh
bVByb3h5LmNwcCBcCiAgICAgU2hhcmVkL3F0L0FyZ3VtZW50Q29kZXJzUXQuY3BwIFwKICAgICBT
aGFyZWQvcXQvTGF5ZXJUcmVlQ29udGV4dFF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDgzNzlmMTc5Mzg1YmNjODJhOTJjNTU5
YTk4NzI1NmI3NzlmYTg1NjYuLmU5ZDNmMDg4NmM2MjYzNjI2ODY1ZDgyZmRkNzVmYWM0N2FmOWYz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3Bw
CkBAIC0yMiwxMSArMjIsMTEgQEAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAjaW5j
bHVkZSAiTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oIgogCisjaW5jbHVkZSAiQ29vcmRpbmF0
ZWRMYXllckluZm8uaCIKICNpbmNsdWRlICJMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiTGF5ZXJUcmVlUmVuZGVyZXIuaCIKICNpbmNsdWRlICJVcGRhdGVJbmZvLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViTGF5ZXJU
cmVlSW5mby5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NTdXJmYWNlLmg+CkBAIC05MSwy
OSArOTEsMjkgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpyZW1vdmVVcGRhdGVB
dGxhcyhpbnQgYXRsYXNJRCkKICAgICBtX3N1cmZhY2VzLnJlbW92ZShhdGxhc0lEKTsKIH0KIAot
dm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpkZWxldGVDb21wb3NpdGluZ0xheWVyKFdl
YkxheWVySUQgaWQpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmRlbGV0ZUNvbXBv
c2l0aW5nTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogewogICAgIGRpc3BhdGNoVXBkYXRl
KGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpkZWxldGVMYXllciwgbV9yZW5kZXJlci5nZXQoKSwg
aWQpKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRSb290Q29tcG9z
aXRpbmdMYXllcihXZWJMYXllcklEIGlkKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5
OjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihDb29yZGluYXRlZExheWVySUQgaWQpCiB7CiAgICAg
ZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnNldFJvb3RMYXllcklELCBt
X3JlbmRlcmVyLmdldCgpLCBpZCkpOwogICAgIHVwZGF0ZVZpZXdwb3J0KCk7CiB9CiAKLXZvaWQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKFdlYkxh
eWVySUQgaWQsIGNvbnN0IFdlYkxheWVySW5mbyYgaW5mbykKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBp
ZCwgY29uc3QgQ29vcmRpbmF0ZWRMYXllckluZm8mIGluZm8pCiB7CiAgICAgZGlzcGF0Y2hVcGRh
dGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyU3RhdGUsIG1fcmVuZGVyZXIuZ2V0
KCksIGlkLCBpbmZvKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0
Q29tcG9zaXRpbmdMYXllckNoaWxkcmVuKFdlYkxheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxXZWJM
YXllcklEPiYgY2hpbGRyZW4pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldENv
bXBvc2l0aW5nTGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3Rv
cjxDb29yZGluYXRlZExheWVySUQ+JiBjaGlsZHJlbikKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShi
aW5kKCZMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJDaGlsZHJlbiwgbV9yZW5kZXJlci5nZXQo
KSwgaWQsIGNoaWxkcmVuKSk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi12b2lkIExh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldENvbXBvc2l0aW5nTGF5ZXJGaWx0ZXJzKFdlYkxh
eWVySUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCit2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OnNldENvbXBvc2l0aW5nTGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVk
TGF5ZXJJRCBpZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsKICAgICBkaXNw
YXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJGaWx0ZXJzLCBtX3Jl
bmRlcmVyLmdldCgpLCBpZCwgZmlsdGVycykpOwogfQpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29udGVudHNTaXplKGNvbnN0IEZsb2F0U2l6
ZSYgY29udGVudHNTaXplKQogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRl
cmVyOjpzZXRDb250ZW50c1NpemUsIG1fcmVuZGVyZXIuZ2V0KCksIGNvbnRlbnRzU2l6ZSkpOwog
fQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldExheWVyQW5pbWF0aW9ucyhX
ZWJMYXllcklEIGlkLCBjb25zdCBHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYgYW5pbWF0aW9ucykK
K3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0TGF5ZXJBbmltYXRpb25zKENvb3Jk
aW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMmIGFuaW1hdGlv
bnMpCiB7CiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExh
eWVyQW5pbWF0aW9ucywgbV9yZW5kZXJlci5nZXQoKSwgaWQsIGFuaW1hdGlvbnMpKTsKIH0KQEAg
LTIxNywxOCArMjE3LDE4IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6ZGlkQ2hh
bmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uCiB9CiAKICNpZiBVU0Uo
R1JBUEhJQ1NfU1VSRkFDRSkKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRl
Q2FudmFzKFdlYkxheWVySUQgaWQsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIGNvbnN0IEdy
YXBoaWNzU3VyZmFjZVRva2VuJiB0b2tlbikKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eTo6Y3JlYXRlQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgSW50U2l6ZSYgY2Fu
dmFzU2l6ZSwgY29uc3QgR3JhcGhpY3NTdXJmYWNlVG9rZW4mIHRva2VuKQogewogICAgIEdyYXBo
aWNzU3VyZmFjZTo6RmxhZ3Mgc3VyZmFjZUZsYWdzID0gR3JhcGhpY3NTdXJmYWNlOjpTdXBwb3J0
c1RleHR1cmVUYXJnZXQgfCBHcmFwaGljc1N1cmZhY2U6OlN1cHBvcnRzU2hhcmluZzsKICAgICBk
aXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlQ2FudmFzLCBtX3Jl
bmRlcmVyLmdldCgpLCBpZCwgY2FudmFzU2l6ZSwgR3JhcGhpY3NTdXJmYWNlOjpjcmVhdGUoY2Fu
dmFzU2l6ZSwgc3VyZmFjZUZsYWdzLCB0b2tlbikpKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29y
ZGluYXRvclByb3h5OjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQsIHVpbnQzMl90IGZyb250QnVm
ZmVyKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzeW5jQ2FudmFzKENvb3JkaW5h
dGVkTGF5ZXJJRCBpZCwgdWludDMyX3QgZnJvbnRCdWZmZXIpCiB7CiAgICAgZGlzcGF0Y2hVcGRh
dGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNDYW52YXMsIG1fcmVuZGVyZXIuZ2V0KCks
IGlkLCBmcm9udEJ1ZmZlcikpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6
OmRlc3Ryb3lDYW52YXMoV2ViTGF5ZXJJRCBpZCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eTo6ZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVySUQgaWQpCiB7CiAgICAgZGlzcGF0
Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lDYW52YXMsIG1fcmVuZGVy
ZXIuZ2V0KCksIGlkKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
clByb3h5LmgKaW5kZXggZmI1OGIxYWU3NGZhZGM0NDJjOWQ3ZjAwZTQ3NjkzMzQ0ZmEzMWRlZi4u
OWQzNDk5ZmM4MTg5ZjVmMGQ5ZWVmMmU5ZjZlZmVmMmE1YTYwMWRiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaApAQCAtMjQsMTEgKzI0LDExIEBACiAK
ICNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJDb29yZGluYXRlZEdyYXBoaWNz
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJDb29yZGluYXRlZExheWVySW5mby5oIgogI2lu
Y2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRl
ICJTaGFyZWFibGVTdXJmYWNlLmgiCiAjaW5jbHVkZSAiU3VyZmFjZVVwZGF0ZUluZm8uaCIKLSNp
bmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0Nv
bnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaD4KQEAgLTQyLDkgKzQyLDkgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYkxheWVySW5mbzsKK2NsYXNzIENvb3JkaW5hdGVk
TGF5ZXJJbmZvOwogY2xhc3MgTGF5ZXJUcmVlUmVuZGVyZXI7Ci1jbGFzcyBXZWJMYXllclVwZGF0
ZUluZm87CitjbGFzcyBDb29yZGluYXRlZExheWVyVXBkYXRlSW5mbzsKIAogY2xhc3MgTGF5ZXJU
cmVlQ29vcmRpbmF0b3JQcm94eSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eSk7CkBAIC01MiwxNyArNTIsMTcgQEAgY2xhc3MgTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eShEcmF3aW5nQXJlYVByb3h5Kik7CiAgICAgfkxheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkoKTsKLSAgICB2b2lkIHNldENvbXBvc2l0aW5nTGF5ZXJTdGF0ZShXZWJMYXllcklELCBjb25z
dCBXZWJMYXllckluZm8mKTsKLSAgICB2b2lkIHNldENvbXBvc2l0aW5nTGF5ZXJDaGlsZHJlbihX
ZWJMYXllcklELCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4mKTsKKyAgICB2b2lkIHNldENvbXBv
c2l0aW5nTGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQsIGNvbnN0IENvb3JkaW5hdGVkTGF5
ZXJJbmZvJik7CisgICAgdm9pZCBzZXRDb21wb3NpdGluZ0xheWVyQ2hpbGRyZW4oQ29vcmRpbmF0
ZWRMYXllcklELCBjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRMYXllcklEPiYpOwogI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKLSAgICB2b2lkIHNldENvbXBvc2l0aW5nTGF5ZXJGaWx0ZXJzKFdlYkxh
eWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKKyAgICB2b2lkIHNldENv
bXBvc2l0aW5nTGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6
RmlsdGVyT3BlcmF0aW9ucyYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAg
IHZvaWQgY3JlYXRlQ3VzdG9tRmlsdGVyUHJvZ3JhbShpbnQgaWQsIGNvbnN0IFdlYkNvcmU6OkN1
c3RvbUZpbHRlclByb2dyYW1JbmZvJik7CiAgICAgdm9pZCByZW1vdmVDdXN0b21GaWx0ZXJQcm9n
cmFtKGludCBpZCk7CiAjZW5kaWYKLSAgICB2b2lkIGRlbGV0ZUNvbXBvc2l0aW5nTGF5ZXIoV2Vi
TGF5ZXJJRCk7Ci0gICAgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJMYXllcklEKTsK
KyAgICB2b2lkIGRlbGV0ZUNvbXBvc2l0aW5nTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEKTsKKyAg
ICB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAgICAg
dm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9p
ZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0
IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsKICAg
ICB2b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY292ZXJlZFJlY3QpOwpAQCAtODAsMTMgKzgwLDEz
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbmRlck5leHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hh
bmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKICNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICB2b2lkIGNyZWF0ZUNhbnZhcyhXZWJMYXllcklE
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNl
VG9rZW4mKTsKLSAgICB2b2lkIHN5bmNDYW52YXMoV2ViTGF5ZXJJRCwgdWludDMyX3QgZnJvbnRC
dWZmZXIpOwotICAgIHZvaWQgZGVzdHJveUNhbnZhcyhXZWJMYXllcklEKTsKKyAgICB2b2lkIGNy
ZWF0ZUNhbnZhcyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBj
b25zdCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOworICAgIHZvaWQgc3luY0NhbnZh
cyhDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKKyAgICB2b2lkIGRl
c3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNlbmRpZgogICAgIHZvaWQgcHVyZ2VC
YWNraW5nU3RvcmVzKCk7CiAgICAgTGF5ZXJUcmVlUmVuZGVyZXIqIGxheWVyVHJlZVJlbmRlcmVy
KCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0TGF5ZXJB
bmltYXRpb25zKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRp
b25zJik7CisgICAgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklELCBj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpOwogICAgIHZvaWQgc2V0QW5p
bWF0aW9uc0xvY2tlZChib29sKTsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
CiAgICAgdm9pZCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQyYzY5
YmJlZjNhYThhNWVkODEzZGM3OWM2Zjk2NTdlNTViMDA0MTMuLjFjOTI5ZWZmNDg4YTJjYjE0NGE0
NGM1YWVmYzQzODJkODZhOWUyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTksNyArMTksNyBAQAogCiAj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogbWVzc2FnZXMgLT4gTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eSB7Ci0gICAgU2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKHVpbnQzMl90IGlkLCBX
ZWJLaXQ6OldlYkxheWVySW5mbyBsYXllckluZm8pCisgICAgU2V0Q29tcG9zaXRpbmdMYXllclN0
YXRlKHVpbnQzMl90IGlkLCBXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJbmZvIGxheWVySW5mbykK
ICAgICBTZXRDb21wb3NpdGluZ0xheWVyQ2hpbGRyZW4odWludDMyX3QgaWQsIFZlY3Rvcjx1aW50
MzJfdD4gY2hpbGRyZW4pCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIFNldENvbXBvc2l0
aW5nTGF5ZXJGaWx0ZXJzKHVpbnQzMl90IGlkLCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zIGZp
bHRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKaW5kZXggZjFkMmJmMGE2
ODJlMTQ0OGMzMzA4ZTJhNWNlZWU1ZmY3MmZmODRiMC4uN2MzMjE3MWYxMjdmMDkyM2UwMjFkYjll
NGU4ZGY0MDU2NWZlYWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApA
QCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgYm9vbCBsYXllclNob3VsZEhhdmVCYWNraW5nU3RvcmUo
R3JhcGhpY3NMYXllciogbGF5ZXIpCiBMYXllclRyZWVSZW5kZXJlcjo6TGF5ZXJUcmVlUmVuZGVy
ZXIoTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSogbGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSkK
ICAgICA6IG1fbGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eShsYXllclRyZWVDb29yZGluYXRvclBy
b3h5KQogICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKLSAgICAsIG1fcm9vdExheWVySUQoSW52YWxp
ZFdlYkxheWVySUQpCisgICAgLCBtX3Jvb3RMYXllcklEKEludmFsaWRDb29yZGluYXRlZExheWVy
SUQpCiAgICAgLCBtX2FuaW1hdGlvbnNMb2NrZWQoZmFsc2UpCiAjaWYgRU5BQkxFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKQogICAgICwgbV9hbmltYXRpb25GcmFtZVJlcXVlc3RlZChmYWxzZSkK
QEAgLTg5LDcgKzg5LDcgQEAgTGF5ZXJUcmVlUmVuZGVyZXI6On5MYXllclRyZWVSZW5kZXJlcigp
CiB7CiB9CiAKLVBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gTGF5ZXJUcmVlUmVuZGVyZXI6OmNy
ZWF0ZUxheWVyKFdlYkxheWVySUQpCitQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IExheWVyVHJl
ZVJlbmRlcmVyOjpjcmVhdGVMYXllcihDb29yZGluYXRlZExheWVySUQpCiB7CiAgICAgR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIqIG5ld0xheWVyID0gbmV3IEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyKHRoaXMpOwogICAgIG5ld0xheWVyLT5zZXRIYXNPd25CYWNraW5nU3RvcmUoZmFsc2Up
OwpAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRpZENoYW5nZVNj
cm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIH0KIAogI2lmIFVTRShHUkFQ
SElDU19TVVJGQUNFKQotdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlQ2FudmFzKFdlYkxh
eWVySUQgaWQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZhc1NpemUsIFBhc3NSZWZQdHI8
R3JhcGhpY3NTdXJmYWNlPiBzdXJmYWNlKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRl
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY2Fu
dmFzU2l6ZSwgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+IHN1cmZhY2UpCiB7CiAgICAgQVNT
RVJUKG1fdGV4dHVyZU1hcHBlcik7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5
SUQoaWQpOwpAQCAtMjQxLDcgKzI0MSw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0
ZUNhbnZhcyhXZWJMYXllcklEIGlkLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjYW52CiAgICAg
bGF5ZXItPnNldENvbnRlbnRzVG9NZWRpYShjYW52YXNCYWNraW5nU3RvcmUuZ2V0KCkpOwogfQog
Ci12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQsIHVpbnQz
Ml90IGZyb250QnVmZmVyKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c3luY0NhbnZhcyhDb29y
ZGluYXRlZExheWVySUQgaWQsIHVpbnQzMl90IGZyb250QnVmZmVyKQogewogICAgIEFTU0VSVCht
X3RleHR1cmVNYXBwZXIpOwogICAgIEFTU0VSVChtX3N1cmZhY2VCYWNraW5nU3RvcmVzLmNvbnRh
aW5zKGlkKSk7CkBAIC0yNTIsNyArMjUyLDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c3lu
Y0NhbnZhcyhXZWJMYXllcklEIGlkLCB1aW50MzJfdCBmcm9udEJ1ZmZlcikKICAgICBjYW52YXNC
YWNraW5nU3RvcmUtPnN3YXBCdWZmZXJzSWZOZWVkZWQoZnJvbnRCdWZmZXIpOwogfQogCi12b2lk
IExheWVyVHJlZVJlbmRlcmVyOjpkZXN0cm95Q2FudmFzKFdlYkxheWVySUQgaWQpCit2b2lkIExh
eWVyVHJlZVJlbmRlcmVyOjpkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKIHsK
ICAgICBBU1NFUlQobV90ZXh0dXJlTWFwcGVyKTsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9
IGxheWVyQnlJRChpZCk7CkBAIC0yNjQsMTMgKzI2NCwxMyBAQCB2b2lkIExheWVyVHJlZVJlbmRl
cmVyOjpkZXN0cm95Q2FudmFzKFdlYkxheWVySUQgaWQpCiB9CiAjZW5kaWYKIAotdm9pZCBMYXll
clRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJDaGlsZHJlbihXZWJMYXllcklEIGlkLCBjb25zdCBWZWN0
b3I8V2ViTGF5ZXJJRD4mIGNoaWxkSURzKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5
ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRl
ZExheWVySUQ+JiBjaGlsZElEcykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGVuc3Vy
ZUxheWVyKGlkKTsKICAgICBWZWN0b3I8R3JhcGhpY3NMYXllcio+IGNoaWxkcmVuOwogCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZElEcy5zaXplKCk7ICsraSkgewotICAgICAgICBX
ZWJMYXllcklEIGNoaWxkSUQgPSBjaGlsZElEc1tpXTsKKyAgICAgICAgQ29vcmRpbmF0ZWRMYXll
cklEIGNoaWxkSUQgPSBjaGlsZElEc1tpXTsKICAgICAgICAgR3JhcGhpY3NMYXllciogY2hpbGQg
PSBsYXllckJ5SUQoY2hpbGRJRCk7CiAgICAgICAgIGlmICghY2hpbGQpIHsKICAgICAgICAgICAg
IE93blB0cjxHcmFwaGljc0xheWVyKj4gbmV3Q2hpbGQgPSBjcmVhdGVMYXllcihjaGlsZElEKTsK
QEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckNoaWxk
cmVuKFdlYkxheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxXZWJMYXllcklEPgogfQogCiAjaWYgRU5B
QkxFKENTU19GSUxURVJTKQotdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJGaWx0ZXJz
KFdlYkxheWVySUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCit2b2lkIExh
eWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckZpbHRlcnMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBj
b25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIEdyYXBoaWNzTGF5ZXIqIGxh
eWVyID0gZW5zdXJlTGF5ZXIoaWQpOwogCkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBMYXllclRy
ZWVSZW5kZXJlcjo6cmVtb3ZlQ3VzdG9tRmlsdGVyUHJvZ3JhbShpbnQgaWQpCiB9CiAjZW5kaWYg
Ly8gRU5BQkxFKENTU19TSEFERVJTKQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
clN0YXRlKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkxheWVySW5mbyYgbGF5ZXJJbmZvKQordm9p
ZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQs
IGNvbnN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvJiBsYXllckluZm8pCiB7CiAgICAgR3JhcGhpY3NM
YXllciogbGF5ZXIgPSBlbnN1cmVMYXllcihpZCk7CiAKQEAgLTM2MSw3ICszNjEsNyBAQCB2b2lk
IExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKFdlYkxheWVySUQgaWQsIGNvbnN0IFdl
YkxheWVySW5mbyYgbGF5ZXJJbgogICAgICAgICBzZXRSb290TGF5ZXJJRChpZCk7CiB9CiAKLXZv
aWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRlbGV0ZUxheWVyKFdlYkxheWVySUQgbGF5ZXJJRCkKK3Zv
aWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRlbGV0ZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXll
cklEKQogewogICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBsYXllciA9IG1fbGF5ZXJzLnRha2Uo
bGF5ZXJJRCk7CiAgICAgaWYgKCFsYXllcikKQEAgLTM3Niw3ICszNzYsNyBAQCB2b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpkZWxldGVMYXllcihXZWJMYXllcklEIGxheWVySUQpCiB9CiAKIAotV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciogTGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZUxheWVyKFdlYkxh
eWVySUQgaWQpCitXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBMYXllclRyZWVSZW5kZXJlcjo6ZW5z
dXJlTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogewogICAgIExheWVyTWFwOjppdGVyYXRv
ciBpdCA9IG1fbGF5ZXJzLmZpbmQoaWQpOwogICAgIGlmIChpdCAhPSBtX2xheWVycy5lbmQoKSkK
QEAgLTM4OSw3ICszODksNyBAQCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBMYXllclRyZWVSZW5k
ZXJlcjo6ZW5zdXJlTGF5ZXIoV2ViTGF5ZXJJRCBpZCkKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAK
LXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldFJvb3RMYXllcklEKFdlYkxheWVySUQgbGF5ZXJJ
RCkKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldFJvb3RMYXllcklEKENvb3JkaW5hdGVkTGF5
ZXJJRCBsYXllcklEKQogewogICAgIGlmIChsYXllcklEID09IG1fcm9vdExheWVySUQpCiAgICAg
ICAgIHJldHVybjsKQEAgLTQ4NCw3ICs0ODQsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpy
ZXNldEJhY2tpbmdTdG9yZVNpemVUb0xheWVyU2l6ZShHcmFwaGljc0xheWVyKiBncmFwaGljcwog
ICAgIGJhY2tpbmdTdG9yZS0+c2V0U2l6ZShncmFwaGljc0xheWVyLT5zaXplKCkpOwogfQogCi12
b2lkIExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50
IHRpbGVJRCwgZmxvYXQgc2NhbGUpCit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxl
KENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBmbG9hdCBzY2FsZSkKIHsK
ICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChsYXllcklEKTsKICAgICBBU1NF
UlQobGF5ZXIpOwpAQCAtNDk0LDcgKzQ5NCw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNy
ZWF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBmbG9hdCBzY2FsZSkKICAg
ICByZXNldEJhY2tpbmdTdG9yZVNpemVUb0xheWVyU2l6ZShsYXllcik7CiB9CiAKLXZvaWQgTGF5
ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlE
KQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlVGlsZShDb29yZGluYXRlZExheWVySUQg
bGF5ZXJJRCwgaW50IHRpbGVJRCkKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVy
QnlJRChsYXllcklEKTsKICAgICBBU1NFUlQobGF5ZXIpOwpAQCAtNTA3LDcgKzUwNyw3IEBAIHZv
aWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQg
dGlsZUlEKQogICAgIG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVycy5hZGQoYmFja2lu
Z1N0b3JlKTsKIH0KIAotdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6dXBkYXRlVGlsZShXZWJMYXll
cklEIGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFRpbGVVcGRhdGUmIHVwZGF0ZSkKK3ZvaWQg
TGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQs
IGludCB0aWxlSUQsIGNvbnN0IFRpbGVVcGRhdGUmIHVwZGF0ZSkKIHsKICAgICBHcmFwaGljc0xh
eWVyKiBsYXllciA9IGxheWVyQnlJRChsYXllcklEKTsKICAgICBBU1NFUlQobGF5ZXIpOwpAQCAt
NjE5LDcgKzYxOSw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZVJvb3RMYXllcigp
CiAgICAgaWYgKG1fcm9vdExheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Jvb3RMYXll
ciA9IGNyZWF0ZUxheWVyKEludmFsaWRXZWJMYXllcklEKTsKKyAgICBtX3Jvb3RMYXllciA9IGNy
ZWF0ZUxheWVyKEludmFsaWRDb29yZGluYXRlZExheWVySUQpOwogICAgIG1fcm9vdExheWVyLT5z
ZXRNYXNrc1RvQm91bmRzKGZhbHNlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0RHJhd3NDb250ZW50
KGZhbHNlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKDAs
IDAsIDApKTsKQEAgLTY2Miw3ICs2NjIsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpwdXJn
ZUdMUmVzb3VyY2VzKCkKIAogICAgIG1fcm9vdExheWVyLT5yZW1vdmVBbGxDaGlsZHJlbigpOwog
ICAgIG1fcm9vdExheWVyLmNsZWFyKCk7Ci0gICAgbV9yb290TGF5ZXJJRCA9IEludmFsaWRXZWJM
YXllcklEOworICAgIG1fcm9vdExheWVySUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEOwog
ICAgIG1fbGF5ZXJzLmNsZWFyKCk7CiAgICAgbV9maXhlZExheWVycy5jbGVhcigpOwogICAgIG1f
dGV4dHVyZU1hcHBlci5jbGVhcigpOwpAQCAtNjc5LDcgKzY3OSw3IEBAIHZvaWQgTGF5ZXJUcmVl
UmVuZGVyZXI6OnB1cmdlQmFja2luZ1N0b3JlcygpCiAgICAgICAgIG1fbGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eS0+cHVyZ2VCYWNraW5nU3RvcmVzKCk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVu
ZGVyZXI6OnNldExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklEIGlkLCBjb25zdCBHcmFwaGljc0xh
eWVyQW5pbWF0aW9ucyYgYW5pbWF0aW9ucykKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExh
eWVyQW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IEdyYXBoaWNzTGF5ZXJB
bmltYXRpb25zJiBhbmltYXRpb25zKQogewogICAgIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
KiBsYXllciA9IHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIobGF5ZXJCeUlEKGlkKSk7CiAg
ICAgaWYgKCFsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCmluZGV4IDk0NmFj
NmQ0OWZmZDAxMGIyNjFhYjY0ZjFjODYyODY4MTM2ZjE2N2YuLmUxMDAyOTM4Y2U4MzQ5YWNlODUw
ZDU1Y2U1Y2Y0OGZlNWNlODU5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaApA
QCAtMjIsMTAgKzIyLDEwIEBACiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAjaW5j
bHVkZSAiQmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllckluZm8uaCIK
ICNpbmNsdWRlICJTaGFyZWFibGVTdXJmYWNlLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5o
IgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCIKLSNpbmNsdWRlICJXZWJM
YXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBo
aWNzTGF5ZXJBbmltYXRpb24uaD4KQEAgLTQ4LDggKzQ4LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOwogY2xhc3MgTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTsKLWNsYXNzIFdlYkxheWVySW5mbzsKLWNsYXNzIFdlYkxheWVyVXBkYXRlSW5m
bzsKK2NsYXNzIENvb3JkaW5hdGVkTGF5ZXJJbmZvOworY2xhc3MgQ29vcmRpbmF0ZWRMYXllclVw
ZGF0ZUluZm87CiAKIGNsYXNzIExheWVyVHJlZVJlbmRlcmVyIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPExheWVyVHJlZVJlbmRlcmVyPiwgcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDbGllbnQgewogcHVibGljOgpAQCAtNzQsOSArNzQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZv
aWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0
aW9uKTsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICB2b2lkIGNyZWF0ZUNhbnZhcyhX
ZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpH
cmFwaGljc1N1cmZhY2U+KTsKLSAgICB2b2lkIHN5bmNDYW52YXMoV2ViTGF5ZXJJRCwgdWludDMy
X3QgZnJvbnRCdWZmZXIpOwotICAgIHZvaWQgZGVzdHJveUNhbnZhcyhXZWJMYXllcklEKTsKKyAg
ICB2b2lkIGNyZWF0ZUNhbnZhcyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZT4pOworICAgIHZvaWQg
c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKKyAg
ICB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNlbmRpZgogCiAgICAg
dm9pZCBkZXRhY2goKTsKQEAgLTg3LDEyICs4NywxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXJn
ZUdMUmVzb3VyY2VzKCk7CiAgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCk7CiAKLSAgICB2b2lkIGRl
bGV0ZUxheWVyKFdlYkxheWVySUQpOwotICAgIHZvaWQgc2V0Um9vdExheWVySUQoV2ViTGF5ZXJJ
RCk7Ci0gICAgdm9pZCBzZXRMYXllckNoaWxkcmVuKFdlYkxheWVySUQsIGNvbnN0IFZlY3RvcjxX
ZWJMYXllcklEPiYpOwotICAgIHZvaWQgc2V0TGF5ZXJTdGF0ZShXZWJMYXllcklELCBjb25zdCBX
ZWJMYXllckluZm8mKTsKKyAgICB2b2lkIGRlbGV0ZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCk7
CisgICAgdm9pZCBzZXRSb290TGF5ZXJJRChDb29yZGluYXRlZExheWVySUQpOworICAgIHZvaWQg
c2V0TGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFZlY3RvcjxDb29yZGlu
YXRlZExheWVySUQ+Jik7CisgICAgdm9pZCBzZXRMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJ
RCwgY29uc3QgQ29vcmRpbmF0ZWRMYXllckluZm8mKTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
Ci0gICAgdm9pZCBzZXRMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9ucyYpOworICAgIHZvaWQgc2V0TGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVkTGF5
ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKENTU19TSEFERVJTKQogICAgIHZvaWQgaW5qZWN0Q2FjaGVkQ3VzdG9tRmlsdGVyUHJvZ3Jh
bXMoY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykgY29uc3Q7CkBAIC0x
MDAsMTUgKzEwMCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVDdXN0b21GaWx0ZXJQcm9n
cmFtKGludCBpZCk7CiAjZW5kaWYKIAotICAgIHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklELCBp
bnQsIGZsb2F0IHNjYWxlKTsKLSAgICB2b2lkIHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50KTsK
LSAgICB2b2lkIHVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBjb25zdCBUaWxlVXBkYXRlJik7
CisgICAgdm9pZCBjcmVhdGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50LCBmbG9hdCBzY2Fs
ZSk7CisgICAgdm9pZCByZW1vdmVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50KTsKKyAgICB2
b2lkIHVwZGF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQsIGNvbnN0IFRpbGVVcGRhdGUm
KTsKICAgICB2b2lkIGZsdXNoTGF5ZXJDaGFuZ2VzKCk7CiAgICAgdm9pZCBjcmVhdGVJbWFnZUJh
Y2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCB1cGRhdGVJbWFnZUJh
Y2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgUGFzc1JlZlB0cjxTaGFyZWFibGVTdXJm
YWNlPik7CiAgICAgdm9pZCBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nSUQpOwogICAgIHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nSUQpOwotICAgIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKFdlYkxheWVySUQsIGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7CisgICAgdm9pZCBzZXRMYXll
ckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQW5pbWF0aW9ucyYpOwogICAgIHZvaWQgc2V0QW5pbWF0aW9uc0xvY2tlZChib29sKTsKICAg
ICB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOwogICAgIHZv
aWQgc2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wgZW5hYmxlKSB7IG1fc2V0RHJhd3NCYWNrZ3JvdW5k
ID0gZW5hYmxlOyB9CkBAIC0xMTgsOSArMTE4LDkgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZh
dGU6Ci0gICAgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBjcmVhdGVMYXllcihX
ZWJMYXllcklEKTsKKyAgICBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0
ZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAKLSAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiBsYXllckJ5SUQoV2ViTGF5ZXJJRCBpZCkgeyByZXR1cm4gKGlkID09IEludmFsaWRXZWJMYXll
cklEKSA/IDAgOiBtX2xheWVycy5nZXQoaWQpOyB9CisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciogbGF5ZXJCeUlEKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkgeyByZXR1cm4gKGlkID09IEludmFs
aWRDb29yZGluYXRlZExheWVySUQpID8gMCA6IG1fbGF5ZXJzLmdldChpZCk7IH0KICAgICBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiByb290TGF5ZXIoKSB7IHJldHVybiBtX3Jvb3RMYXllci5nZXQo
KTsgfQogCiAgICAgdm9pZCBzeW5jUmVtb3RlQ29udGVudCgpOwpAQCAtMTQyLDcgKzE0Miw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBhc3NpZ25JbWFnZUJhY2tpbmdUb0xheWVyKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqLCBDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsKICAgICB2b2lkIHJlbW92
ZVJlbGVhc2VkSW1hZ2VCYWNraW5nc0lmTmVlZGVkKCk7CiAgICAgdm9pZCBlbnN1cmVSb290TGF5
ZXIoKTsKLSAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBlbnN1cmVMYXllcihXZWJMYXllcklE
KTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBlbnN1cmVMYXllcihDb29yZGluYXRlZExh
eWVySUQpOwogICAgIHZvaWQgY29tbWl0UGVuZGluZ0JhY2tpbmdTdG9yZU9wZXJhdGlvbnMoKTsK
IAogICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKiBnZXRCYWNraW5nU3RvcmUoV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopOwpAQCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNl
dDxSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+ID4gbV9iYWNraW5nU3RvcmVzV2l0aFBl
bmRpbmdCdWZmZXJzOwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgdHlwZWRlZiBI
YXNoTWFwPFdlYkxheWVySUQsIFJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU3VyZmFjZUJh
Y2tpbmdTdG9yZT4gPiBTdXJmYWNlQmFja2luZ1N0b3JlTWFwOworICAgIHR5cGVkZWYgSGFzaE1h
cDxDb29yZGluYXRlZExheWVySUQsIFJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU3VyZmFj
ZUJhY2tpbmdTdG9yZT4gPiBTdXJmYWNlQmFja2luZ1N0b3JlTWFwOwogICAgIFN1cmZhY2VCYWNr
aW5nU3RvcmVNYXAgbV9zdXJmYWNlQmFja2luZ1N0b3JlczsKICNlbmRpZgogCkBAIC0xODAsMTEg
KzE4MCwxMSBAQCBwcml2YXRlOgogCiAgICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+
IG1fcm9vdExheWVyOwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPFdlYkxheWVySUQsIE93blB0cjxX
ZWJDb3JlOjpHcmFwaGljc0xheWVyPiA+IExheWVyTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxD
b29yZGluYXRlZExheWVySUQsIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiA+IExheWVy
TWFwOwogICAgIExheWVyTWFwIG1fbGF5ZXJzOwotICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXll
cklELCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKj4gTGF5ZXJSYXdQdHJNYXA7CisgICAgdHlwZWRl
ZiBIYXNoTWFwPENvb3JkaW5hdGVkTGF5ZXJJRCwgV2ViQ29yZTo6R3JhcGhpY3NMYXllcio+IExh
eWVyUmF3UHRyTWFwOwogICAgIExheWVyUmF3UHRyTWFwIG1fZml4ZWRMYXllcnM7Ci0gICAgV2Vi
TGF5ZXJJRCBtX3Jvb3RMYXllcklEOworICAgIENvb3JkaW5hdGVkTGF5ZXJJRCBtX3Jvb3RMYXll
cklEOwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fcmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0
aW9uOwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fcGVuZGluZ1JlbmRlcmVkQ29udGVudHNTY3Jv
bGxQb3NpdGlvbjsKICAgICBib29sIG1fYW5pbWF0aW9uc0xvY2tlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGM0ZWQwNjhiNDEyNGNmMmZkOGVm
ZjcwNzExNTMwMWQ5YjY5ZGM2ODQuLmQ2Nzk5ZGQ1YmU5MGJiYTMyYzEzZTE3OTVhZTUxNDNmMDFm
OWVjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaApA
QCAtNTAsOCArNTAsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIExheWVyVHJlZUNvbnRl
eHQ7CiBjbGFzcyBMYXllclRyZWVDb29yZGluYXRvclByb3h5OwogY2xhc3MgVXBkYXRlSW5mbzsK
LWNsYXNzIFdlYkxheWVyVHJlZUluZm87Ci1jbGFzcyBXZWJMYXllclVwZGF0ZUluZm87CiBjbGFz
cyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIERyYXdpbmdBcmVhUHJveHkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5k
ZXggMzk5MDEyNzFiODQ0NmI5NDI1OWEwMTFmYmE3MWJmYjM0OTU3NDhhNC4uNGU0MzRhZDQ1ZDc3
ZGM1ZWVkMGZkNzJjOTAzMTliNTMxZWExOTlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00MiwxMyArNDIs
MTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgSGFzaE1hcDxXZWJMYXllcklELCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqPiYgbGF5
ZXJCeUlETWFwKCkKK3N0YXRpYyBIYXNoTWFwPENvb3JkaW5hdGVkTGF5ZXJJRCwgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKj4mIGxheWVyQnlJRE1hcCgpCiB7Ci0gICAgc3RhdGljIEhhc2hNYXA8
V2ViTGF5ZXJJRCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4gZ2xvYmFsTWFwOworICAgIHN0
YXRpYyBIYXNoTWFwPENvb3JkaW5hdGVkTGF5ZXJJRCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Kj4gZ2xvYmFsTWFwOwogICAgIHJldHVybiBnbG9iYWxNYXA7CiB9CiAKLXN0YXRpYyBXZWJMYXll
cklEIHRvV2ViTGF5ZXJJRChHcmFwaGljc0xheWVyKiBsYXllcikKK3N0YXRpYyBDb29yZGluYXRl
ZExheWVySUQgdG9Db29yZGluYXRlZExheWVySUQoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7CiAg
ICAgcmV0dXJuIGxheWVyID8gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5pZCgp
IDogMDsKIH0KQEAgLTEyNCw3ICsxMjQsNyBAQCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAg
LCBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIoMCkKICAgICAsIG1fYW5pbWF0aW9uU3RhcnRlZFRpbWVy
KHRoaXMsICZDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvblN0YXJ0ZWRUaW1lckZp
cmVkKQogewotICAgIHN0YXRpYyBXZWJMYXllcklEIG5leHRMYXllcklEID0gMTsKKyAgICBzdGF0
aWMgQ29vcmRpbmF0ZWRMYXllcklEIG5leHRMYXllcklEID0gMTsKICAgICBtX2lkID0gbmV4dExh
eWVySUQrKzsKICAgICBsYXllckJ5SURNYXAoKS5hZGQoaWQoKSwgdGhpcyk7CiB9CkBAIC00MzEs
NyArNDMxLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldE5lZWRzRGlzcGxh
eUluUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgp
OwogfQogCi1XZWJMYXllcklEIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aWQoKSBjb25zdAor
Q29vcmRpbmF0ZWRMYXllcklEIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aWQoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2lkOwogfQpAQCAtNDYyLDkgKzQ2Miw5IEBAIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzeW5jQ2hpbGRyZW4oKQogICAgIGlmICghbV9zaG91bGRTeW5jQ2hp
bGRyZW4pCiAgICAgICAgIHJldHVybjsKICAgICBtX3Nob3VsZFN5bmNDaGlsZHJlbiA9IGZhbHNl
OwotICAgIFZlY3RvcjxXZWJMYXllcklEPiBjaGlsZElEczsKKyAgICBWZWN0b3I8Q29vcmRpbmF0
ZWRMYXllcklEPiBjaGlsZElEczsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVu
KCkuc2l6ZSgpOyArK2kpCi0gICAgICAgIGNoaWxkSURzLmFwcGVuZCh0b1dlYkxheWVySUQoY2hp
bGRyZW4oKVtpXSkpOworICAgICAgICBjaGlsZElEcy5hcHBlbmQodG9Db29yZGluYXRlZExheWVy
SUQoY2hpbGRyZW4oKVtpXSkpOwogCiAgICAgbV9jb29yZGluYXRvci0+c3luY0xheWVyQ2hpbGRy
ZW4obV9pZCwgY2hpbGRJRHMpOwogfQpAQCAtNTIxLDEyICs1MjEsMTIgQEAgdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNMYXllclN0YXRlKCkKICAgICBtX2xheWVySW5mby5jb250
ZW50c1JlY3QgPSBjb250ZW50c1JlY3QoKTsKICAgICBtX2xheWVySW5mby5kcmF3c0NvbnRlbnQg
PSBkcmF3c0NvbnRlbnQoKTsKICAgICBtX2xheWVySW5mby5jb250ZW50c1Zpc2libGUgPSBjb250
ZW50c0FyZVZpc2libGUoKTsKLSAgICBtX2xheWVySW5mby5tYXNrID0gdG9XZWJMYXllcklEKG1h
c2tMYXllcigpKTsKKyAgICBtX2xheWVySW5mby5tYXNrID0gdG9Db29yZGluYXRlZExheWVySUQo
bWFza0xheWVyKCkpOwogICAgIG1fbGF5ZXJJbmZvLm1hc2tzVG9Cb3VuZHMgPSBtYXNrc1RvQm91
bmRzKCk7CiAgICAgbV9sYXllckluZm8ub3BhY2l0eSA9IG9wYWNpdHkoKTsKICAgICBtX2xheWVy
SW5mby5wb3MgPSBwb3NpdGlvbigpOwogICAgIG1fbGF5ZXJJbmZvLnByZXNlcnZlczNEID0gcHJl
c2VydmVzM0QoKTsKLSAgICBtX2xheWVySW5mby5yZXBsaWNhID0gdG9XZWJMYXllcklEKHJlcGxp
Y2FMYXllcigpKTsKKyAgICBtX2xheWVySW5mby5yZXBsaWNhID0gdG9Db29yZGluYXRlZExheWVy
SUQocmVwbGljYUxheWVyKCkpOwogICAgIG1fbGF5ZXJJbmZvLnNpemUgPSBzaXplKCk7CiAgICAg
bV9sYXllckluZm8udHJhbnNmb3JtID0gdHJhbnNmb3JtKCk7CiAgICAgbV9jb29yZGluYXRvci0+
c3luY0xheWVyU3RhdGUobV9pZCwgbV9sYXllckluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCA4MjBkYjliM2Ni
NzhlMDczMmE0NmM1MzYwNTZkOGRjMWQwNTc0ZTgxLi4yNGVhMGNmNGY4YzE0YzM3MmI3NTcxNjRk
MzVhMWJhOTRlMTlkYjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtMjIsNiArMjIsNyBAQAogI2RlZmluZSBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJfaAogCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmcuaCIKKyNpbmNsdWRlICJDb29yZGluYXRlZExheWVySW5mby5oIgogI2luY2x1ZGUgIkNvb3Jk
aW5hdGVkVGlsZS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQzRC5oIgogI2luY2x1ZGUgIkdyYXBo
aWNzTGF5ZXIuaCIKQEAgLTM0LDcgKzM1LDYgQEAKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9y
ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSAi
VXBkYXRlSW5mby5oIgotI2luY2x1ZGUgIldlYkxheWVyVHJlZUluZm8uaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAjaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc1N1cmZhY2VUb2tlbi5oPgpAQCAtNTMsMjUgKzUzLDI1IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICAvLyBDb29yZGluYXRlZFRpbGVDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGls
ZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoV2Vi
TGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVy
SUQsIGludCB0aWxlSUQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShDb29yZGlu
YXRlZExheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZShDb29y
ZGluYXRlZExheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShD
b29yZGluYXRlZExheWVySUQsIGludCB0aWxlSUQpID0gMDsKIAogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6SW50UmVjdCB2aXNpYmxlQ29udGVudHNSZWN0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBsYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiBjcmVhdGVJbWFnZUJhY2tpbmdJ
Zk5lZWRlZChXZWJDb3JlOjpJbWFnZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVy
U3RhdGUoV2ViTGF5ZXJJRCwgY29uc3QgV2ViTGF5ZXJJbmZvJikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBzeW5jTGF5ZXJDaGlsZHJlbihXZWJMYXllcklELCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJ
RD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN5bmNMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5
ZXJJRCwgY29uc3QgQ29vcmRpbmF0ZWRMYXllckluZm8mKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHN5bmNMYXllckNoaWxkcmVuKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgVmVjdG9yPENvb3Jk
aW5hdGVkTGF5ZXJJRD4mKSA9IDA7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIHZpcnR1
YWwgdm9pZCBzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRl
ck9wZXJhdGlvbnMmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN5bmNMYXllckZpbHRlcnMoQ29v
cmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJikgPSAwOwog
I2VuZGlmCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0
ZUNhbnZhcyhXZWJMYXllcklELCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBzeW5jQ2FudmFzKFdlYkxheWVySUQsIFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIq
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lDYW52YXMoV2ViTGF5ZXJJRCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3Jl
OjpQbGF0Zm9ybUxheWVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2FudmFzKENvb3Jk
aW5hdGVkTGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXllciopID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVySUQpID0gMDsKICNlbmRpZgogCi0g
ICAgdmlydHVhbCB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklELCBjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TGF5ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckFuaW1hdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzeW5jRml4ZWRMYXllcnMoKSA9IDA7CkBAIC0xMzQsNyArMTM0LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRSb290TGF5ZXIoYm9vbCk7CiAKLSAgICBXZWJLaXQ6OldlYkxheWVySUQgaWQo
KSBjb25zdDsKKyAgICBXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJRCBpZCgpIGNvbnN0OwogCiAg
ICAgdm9pZCBzZXRGaXhlZFRvVmlld3BvcnQoYm9vbCBpc0ZpeGVkKSB7IG1fZml4ZWRUb1ZpZXdw
b3J0ID0gaXNGaXhlZDsgfQogCkBAIC0yMDUsOCArMjA1LDggQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgYW5pbWF0aW9uU3RhcnRlZFRpbWVyRmlyZWQoVGltZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyPiopOwogCi0gICAgV2ViS2l0OjpXZWJMYXllcklEIG1faWQ7Ci0gICAgV2ViS2l0OjpXZWJM
YXllckluZm8gbV9sYXllckluZm87CisgICAgV2ViS2l0OjpDb29yZGluYXRlZExheWVySUQgbV9p
ZDsKKyAgICBXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJbmZvIG1fbGF5ZXJJbmZvOwogICAgIEdy
YXBoaWNzTGF5ZXJUcmFuc2Zvcm0gbV9sYXllclRyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBtX2NhY2hlZEludmVyc2VUcmFuc2Zvcm07CiAgICAgYm9vbCBtX2luVXBkYXRlTW9k
ZSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmcuaAppbmRleCA3NjI2NmE0YjQxNDBiOTQzN2IxMTcyNTM3NTcwYTdmMjAwNzkxMGRk
Li42NWU4MjQ2NzJiOTM5ZjhhYzg1Y2YwYWU0NjVkYjgyYzM3MzkwNjlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEltYWdlQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKQEAgLTI4
LDkgKzI4LDkgQEAKICNkZWZpbmUgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdfaAogCiAjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQorI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJJbmZvLmgi
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVTdXJmYWNlLmgiCi0jaW5j
bHVkZSAiV2ViTGF5ZXJUcmVlSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRl
eCAwMDQ5NDE1YzBlZmIxYWI0OGQ5NmZhNzY5MTA3MjFhNDg2M2ZjYjE2Li42NTcxYmI2NjZkMTdk
ZWIwZThjOTJjZjgwOTAyZmM0NWJhNGE0NDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC0xLDQgKzEsNCBAQAotICAgIC8q
CisvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgpAQCAtOTksMTQgKzk5LDE0IEBAIExheWVyVHJlZUNvb3JkaW5h
dG9yOjpMYXllclRyZWVDb29yZGluYXRvcihXZWJQYWdlKiB3ZWJQYWdlKQogewogICAgIC8vIENy
ZWF0ZSBhIHJvb3QgbGF5ZXIuCiAgICAgbV9yb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVh
dGUodGhpcywgdGhpcyk7Ci0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiB3ZWJSb290TGF5
ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jvb3RMYXllci5nZXQoKSk7Ci0gICAg
d2ViUm9vdExheWVyLT5zZXRSb290TGF5ZXIodHJ1ZSk7CisgICAgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKiBjb29yZGluYXRlZFJvb3RMYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KG1fcm9vdExheWVyLmdldCgpKTsKKyAgICBjb29yZGluYXRlZFJvb3RMYXllci0+c2V0Um9vdExh
eWVyKHRydWUpOwogI2lmbmRlZiBOREVCVUcKICAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgiTGF5
ZXJUcmVlQ29vcmRpbmF0b3Igcm9vdCBsYXllciIpOwogI2VuZGlmCiAgICAgbV9yb290TGF5ZXIt
PnNldERyYXdzQ29udGVudChmYWxzZSk7CiAgICAgbV9yb290TGF5ZXItPnNldFNpemUobV93ZWJQ
YWdlLT5zaXplKCkpOwotICAgIG1fbGF5ZXJUcmVlQ29udGV4dC53ZWJMYXllcklEID0gdG9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIod2ViUm9vdExheWVyKS0+aWQoKTsKKyAgICBtX2xheWVyVHJl
ZUNvbnRleHQuY29vcmRpbmF0ZWRMYXllcklEID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIo
Y29vcmRpbmF0ZWRSb290TGF5ZXIpLT5pZCgpOwogCiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVu
dExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMsIHRoaXMpOwogI2lmbmRlZiBOREVC
VUcKQEAgLTMwNSw3ICszMDUsNyBAQCBib29sIExheWVyVHJlZUNvb3JkaW5hdG9yOjpmbHVzaFBl
bmRpbmdMYXllckNoYW5nZXMoKQogICAgIHJldHVybiBkaWRTeW5jOwogfQogCi12b2lkIExheWVy
VHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0ZShXZWJMYXllcklEIGlkLCBjb25zdCBXZWJM
YXllckluZm8mIGluZm8pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0
ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvJiBpbmZv
KQogewogICAgIGlmIChtX3Nob3VsZFNlbmRTY3JvbGxQb3NpdGlvblVwZGF0ZSkgewogICAgICAg
ICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkRp
ZENoYW5nZVNjcm9sbFBvc2l0aW9uKG1fdmlzaWJsZUNvbnRlbnRzUmVjdC5sb2NhdGlvbigpKSk7
CkBAIC0zMTYsMTQgKzMxNiwxNCBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5
ZXJTdGF0ZShXZWJMYXllcklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGluZgogICAgIG1fd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6U2V0Q29tcG9z
aXRpbmdMYXllclN0YXRlKGlkLCBpbmZvKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0
b3I6OnN5bmNMYXllckNoaWxkcmVuKFdlYkxheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxXZWJMYXll
cklEPiYgY2hpbGRyZW4pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJDaGls
ZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVy
SUQ+JiBjaGlsZHJlbikKIHsKICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CiAgICAgbV93
ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpTZXRDb21w
b3NpdGluZ0xheWVyQ2hpbGRyZW4oaWQsIGNoaWxkcmVuKSk7CiB9CiAKICNpZiBVU0UoR1JBUEhJ
Q1NfU1VSRkFDRSkKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZUNhbnZhcyhXZWJM
YXllcklEIGlkLCBQbGF0Zm9ybUxheWVyKiBjYW52YXNQbGF0Zm9ybUxheWVyKQordm9pZCBMYXll
clRyZWVDb29yZGluYXRvcjo6Y3JlYXRlQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgUGxh
dGZvcm1MYXllciogY2FudmFzUGxhdGZvcm1MYXllcikKIHsKICAgICBtX3Nob3VsZFN5bmNGcmFt
ZSA9IHRydWU7CiAgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gdG9rZW4gPSBjYW52YXNQbGF0Zm9y
bUxheWVyLT5ncmFwaGljc1N1cmZhY2VUb2tlbigpOwpAQCAtMzMxLDE0ICszMzEsMTQgQEAgdm9p
ZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlQ2FudmFzKFdlYkxheWVySUQgaWQsIFBsYXRm
b3JtTGF5ZXIqIGNhbnZhc1BsYXQKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0ZUNhbnZhcyhpZCwgY2FudmFzU2l6ZSwgdG9rZW4p
KTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0NhbnZhcyhXZWJMYXllcklE
IGlkLCBQbGF0Zm9ybUxheWVyKiBjYW52YXNQbGF0Zm9ybUxheWVyKQordm9pZCBMYXllclRyZWVD
b29yZGluYXRvcjo6c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQgaWQsIFBsYXRmb3JtTGF5
ZXIqIGNhbnZhc1BsYXRmb3JtTGF5ZXIpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVl
OwogICAgIHVpbnQzMl90IGZyb250QnVmZmVyID0gY2FudmFzUGxhdGZvcm1MYXllci0+Y29weVRv
R3JhcGhpY3NTdXJmYWNlKCk7CiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRy
ZWVDb29yZGluYXRvclByb3h5OjpTeW5jQ2FudmFzKGlkLCBmcm9udEJ1ZmZlcikpOwogfQogCi12
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkZXN0cm95Q2FudmFzKFdlYkxheWVySUQgaWQpCit2
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJ
RCBpZCkKIHsKICAgICBpZiAobV9pc1B1cmdpbmcpCiAgICAgICAgIHJldHVybjsKQEAgLTM0OSw3
ICszNDksNyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkZXN0cm95Q2FudmFzKFdlYkxh
eWVySUQgaWQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLXZvaWQgTGF5ZXJU
cmVlQ29vcmRpbmF0b3I6OnN5bmNMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgRmls
dGVyT3BlcmF0aW9ucyYgZmlsdGVycykKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNM
YXllckZpbHRlcnMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25z
JiBmaWx0ZXJzKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKICNpZiBFTkFCTEUo
Q1NTX1NIQURFUlMpCkBAIC02MzgsMTkgKzYzOCwxOSBAQCBib29sIExheWVyVHJlZUhvc3Q6OnN1
cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBp
bnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgdGlsZVJlY3QpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVh
dGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJm
YWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJl
Y3QpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogICAgIG1fd2ViUGFnZS0+c2Vu
ZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Q3JlYXRlVGlsZUZvckxheWVy
KGxheWVySUQsIHRpbGVJRCwgdGlsZVJlY3QsIHVwZGF0ZUluZm8pKTsKIH0KIAotdm9pZCBMYXll
clRyZWVDb29yZGluYXRvcjo6dXBkYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxl
SUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiB0aWxlUmVjdCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnVwZGF0ZVRpbGUo
Q29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRh
dGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCkKIHsK
ICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpVcGRhdGVUaWxlRm9yTGF5ZXIobGF5ZXJJ
RCwgdGlsZUlELCB0aWxlUmVjdCwgdXBkYXRlSW5mbykpOwogfQogCi12b2lkIExheWVyVHJlZUNv
b3JkaW5hdG9yOjpyZW1vdmVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCkKK3Zv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklEIGxh
eWVySUQsIGludCB0aWxlSUQpCiB7CiAgICAgaWYgKG1faXNQdXJnaW5nKQogICAgICAgICByZXR1
cm47CkBAIC02NzYsNyArNjc2LDcgQEAgV2ViQ29yZTo6SW50UmVjdCBMYXllclRyZWVDb29yZGlu
YXRvcjo6dmlzaWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0CiB9CiAKIAotdm9pZCBMYXllclRyZWVD
b29yZGluYXRvcjo6c2V0TGF5ZXJBbmltYXRpb25zKFdlYkxheWVySUQgbGF5ZXJJRCwgY29uc3Qg
R3JhcGhpY3NMYXllckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCit2b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yOjpzZXRMYXllckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQsIGNv
bnN0IEdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJiBhbmltYXRpb25zKQogewogICAgIG1fc2hvdWxk
U3luY0ZyYW1lID0gdHJ1ZTsKICAgICBHcmFwaGljc0xheWVyQW5pbWF0aW9ucyBhY3RpdmVBbmlt
YXRpb25zID0gYW5pbWF0aW9ucy5nZXRBY3RpdmVBbmltYXRpb25zKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAppbmRleCBmMDRiNTA4MjFm
ZGM4ZjFhMmZhMzI3OTM1MDdhZjYwNjRhYzJjNzU5Li44OWRjMGNjYzg3ODgzODZkMzk2OWRhNDE5
MDA0MTA5ZmQzNTgwMDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yLmgKQEAgLTc4LDkgKzc4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpIHsgfQogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gY3JlYXRlSW1hZ2VCYWNraW5nSWZOZWVkZWQo
V2ViQ29yZTo6SW1hZ2UqKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxl
KFdlYkxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVy
SUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVySUQsIGludCB0
aWxlSUQpOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCwg
aW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklELCBp
bnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShDb29yZGluYXRlZExheWVySUQsIGlu
dCB0aWxlSUQpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB2aXNpYmxlQ29udGVudHNS
ZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHJlbmRlck5leHRGcmFtZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKQEAgLTg5LDE2ICs4OSwxNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5
KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIHN5
bmNMYXllclN0YXRlKFdlYkxheWVySUQsIGNvbnN0IFdlYkxheWVySW5mbyYpOwotICAgIHZpcnR1
YWwgdm9pZCBzeW5jTGF5ZXJDaGlsZHJlbihXZWJMYXllcklELCBjb25zdCBWZWN0b3I8V2ViTGF5
ZXJJRD4mKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKFdlYkxheWVySUQs
IGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7CisgICAgdmlydHVhbCB2
b2lkIHN5bmNMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgQ29vcmRpbmF0ZWRM
YXllckluZm8mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyQ2hpbGRyZW4oQ29vcmRpbmF0
ZWRMYXllcklELCBjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRMYXllcklEPiYpOworICAgIHZpcnR1
YWwgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
LSAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyRmlsdGVycyhXZWJMYXllcklELCBjb25zdCBXZWJD
b3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CisgICAgdmlydHVhbCB2b2lkIHN5bmNMYXllckZpbHRl
cnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7
CiAjZW5kaWYKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlQ2FudmFzKFdlYkxheWVySUQsIFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc3luY0NhbnZhcyhXZWJMYXllcklELCBXZWJDb3JlOjpQbGF0Zm9y
bUxheWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lDYW52YXMoV2ViTGF5
ZXJJRCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUNhbnZhcyhDb29yZGluYXRl
ZExheWVySUQsIFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIFdlYkNvcmU6OlBsYXRmb3JtTGF5
ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveUNhbnZhcyhDb29yZGluYXRl
ZExheWVySUQpIE9WRVJSSURFOwogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVy
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBz
eW5jRml4ZWRMYXllcnMoKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2YXRlOgogICAgIE93blB0
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3BhZ2VPdmVybGF5TGF5ZXI7CiAKICAgICBIYXNo
U2V0PFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+IG1fcmVnaXN0ZXJlZExheWVy
czsKLSAgICBWZWN0b3I8V2ViTGF5ZXJJRD4gbV9kZXRhY2hlZExheWVyczsKKyAgICBWZWN0b3I8
Q29vcmRpbmF0ZWRMYXllcklEPiBtX2RldGFjaGVkTGF5ZXJzOwogICAgIHR5cGVkZWYgSGFzaE1h
cDxDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBSZWZQdHI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmc+ID4gSW1hZ2VCYWNraW5nTWFwOwogICAgIEltYWdlQmFja2luZ01hcCBtX2ltYWdlQmFja2lu
Z3M7CiAgICAgVmVjdG9yPE93blB0cjxVcGRhdGVBdGxhcz4gPiBtX3VwZGF0ZUF0bGFzZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177695</attachid>
            <date>2012-12-05 01:18:50 -0800</date>
            <delta_ts>2012-12-05 20:14:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103983-20121205011702.patch</filename>
            <type>text/plain</type>
            <size>59264</size>
            <attacher name="Jae Hyun Park">jaepark</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzIwOGIwOGUxNWM5ODNl
NzYzODRhNjE0OTVhNWZlYjk5ZWE2MDU1MS4uMjEzYzZjMzI0MDc4NDM4ODgzZTdjZGIwOWU5ZTc5
ZTQ5ZWQyODFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAxMi0xMi0wNCAgSmFl
IEh5dW4gUGFyayAgPGphZS5wYXJrQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW5hbWUgV2ViTGF5ZXJUcmVlSW5mbyB0byBDb29yZGluYXRlZExheWVy
SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCByZWZhY3RvcnMgV2ViTGF5ZXJUcmVlSW5mbyBpbiAyIGFyZWFzLgorCisgICAgICAg
IDEuIFdlYkxheWVyVHJlZUluZm8gaXMgb25seSB1c2VkIGJ5IENvb3JkaW5hdGVkIEdyYXBoaWNz
LiBTbywgdGhlIGZpbGUKKyAgICAgICAgc2hvdWxkIGJlIGxvY2F0ZWQgaW4gV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcyBpbnN0ZWFkIG9mCisgICAgICAgIFdlYktpdDIvU2hhcmVk
LgorCisgICAgICAgIDIuIFRoZSBuYW1lIG9mIFdlYkxheWVyVHJlZUluZm8gaXMgaW5jb3JyZWN0
LiBDdXJyZW50bHksCisgICAgICAgIFdlYkxheWVyVHJlZUluZm8gb25seSBoYXMgV2ViTGF5ZXJJ
bmZvIHN0cnVjdC4gQWxzbywgaXQgaXMgaGFyZCB0byBrbm93CisgICAgICAgIHdoYXQgV2ViTGF5
ZXIgaXMgc2luY2Ugd2UgZG9uJ3QgdXNlIHRoYXQgbmFtZSBhbnltb3JlLiBNb3JlIGFwcHJvcHJp
YXRlCisgICAgICAgIG5hbWUgZm9yIFdlYkxheWVySW5mbyB3b3VsZCBiZSBDb29yZGluYXRlZExh
eWVySW5mby4KKworICAgICAgICBObyBuZXcgdGVzdCwgYmVjYXVzZSBubyBiZWhhdmlvcmFsIGNo
YW5nZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAq
IFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJbmZvOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5m
by5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8u
aC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJ
bmZvOjpDb29yZGluYXRlZExheWVySW5mbyk6CisgICAgICAgIChDb29yZGluYXRlZExheWVySW5m
byk6CisgICAgICAgICogU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVy
VHJlZUNvbnRleHQpOgorICAgICAgICAqIFNoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQp
OgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb250ZXh0OjplbmNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVDb250ZXh0OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVDb250ZXh0Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgICogU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQpOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVDb250ZXh0OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVD
b250ZXh0OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb250ZXh0Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eTo6ZGVsZXRlQ29tcG9zaXRpbmdMYXllcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllclN0YXRl
KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9z
aXRpbmdMYXllckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllckZpbHRlcnMpOgorICAgICAgICAoV2ViS2l0OjpM
YXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRMYXllckFuaW1hdGlvbnMpOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpjcmVhdGVDYW52YXMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzeW5jQ2FudmFzKToKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6ZGVzdHJveUNhbnZhcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVSZW5kZXJlcjo6TGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVSZW5kZXJlcjo6Y3JlYXRlQ2FudmFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
UmVuZGVyZXI6OnN5bmNDYW52YXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJl
cjo6ZGVzdHJveUNhbnZhcyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpz
ZXRMYXllckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNl
dExheWVyRmlsdGVycyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRM
YXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmRlbGV0ZUxh
eWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZUxheWVyKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNldFJvb3RMYXllcklEKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUpOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlVGlsZSk6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlUmVuZGVyZXI6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJl
ZVJlbmRlcmVyOjpwdXJnZUdMUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
UmVuZGVyZXI6OnNldExheWVyQW5pbWF0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJl
bmRlcmVyOjpsYXllckJ5SUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpsYXllckJ5SURNYXApOgorICAgICAgICAoV2ViQ29yZTo6dG9Db29yZGluYXRlZExh
eWVySUQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAgIChDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVyU3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVyQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlQ2FudmFzKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNDYW52YXMpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6ZGVzdHJveUNhbnZhcyk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJGaWx0ZXJzKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVRpbGUpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6dXBkYXRlVGlsZSk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVUaWxlKToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNldExheWVyQW5pbWF0aW9ucyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKwogMjAxMi0xMi0wMyAgSmFl
IEh5dW4gUGFyayAgPGphZS5wYXJrQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBNb3ZlIEFyZWFBbGxvY2F0b3IgYW5kIFVwZGF0ZUF0bGFzIHRvIENvb3Jk
aW5hdGVkR3JhcGhpY3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNTk5NGEyYTM1Y2I5YzUzMDk3
YWE0OTliNjM4MDQ4ZDk0NzY3ZmJkZC4uNDA2OWM4YjM1MTQxZDJkZjYzZDA0ZGI4MzQzMGE5ZmY0
ZjY2MTU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTE3NSw3ICsxNzUsNiBAQCBTRVQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL1dlYkltYWdlLmNwcAogICAgIFNoYXJlZC9XZWJJbnRl
bnRTZXJ2aWNlSW5mby5jcHAKICAgICBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKLSAgICBT
aGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAKICAgICBTaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5j
cHAKICAgICBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKICAgICBTaGFyZWQvV2ViTmV0d29ya0lu
Zm8uY3BwCkBAIC0yMTgsNiArMjE3LDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJl
ZC9BUEkvYy9XS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAKIAogICAgIFNoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKKyAgICBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5jcHAKICAgICBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkuY3Bw
CiAKICAgICBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDBjOWI5NDExNjdiYjBlMGEwZGNi
ZDYyOGQwYzEzZWZhMWJmMTJjNTUuLjU1OTQ3OGNhOWNkM2UzN2FlMDUxNDVlYzIzOTY5NjkxZDRk
NWJlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdl
cy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAg
LTM5NiwxMSArMzk2LDEwIEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAn
V2ViQ29yZTo6UGx1Z2luSW5mbyc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0JzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tlckNs
aWVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJzogWyc8V2Vi
Q29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPiddLAorICAgICAgICAnV2ViS2l0OjpDb29yZGluYXRl
ZExheWVySUQnOiBbJyJDb29yZGluYXRlZExheWVySW5mby5oIiddLAogICAgICAgICAnV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcic6IFtdLAogICAgICAgICAnV2ViS2l0
OjpXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyJzogW10sCiAgICAgICAgICdXZWJLaXQ6Oldl
Ykdlc3R1cmVFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCi0gICAgICAgICdXZWJLaXQ6OldlYkxh
eWVySUQnOiBbJyJXZWJMYXllclRyZWVJbmZvLmgiJ10sCi0gICAgICAgICdXZWJLaXQ6OldlYkxh
eWVySW5mbyc6IFsnIldlYkxheWVyVHJlZUluZm8uaCInXSwKICAgICAgICAgJ1dlYktpdDo6V2Vi
S2V5Ym9hcmRFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OldlYk1v
dXNlRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAogICAgICAgICAnV2ViS2l0OjpXZWJUb3VjaEV2
ZW50JzogWyciV2ViRXZlbnQuaCInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZDg2ZTYyOTc0ZmUzODUzOGQ2MzZmNzFkMDc0ZDIzMjg0NmE0NWE3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllckluZm8uY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllckluZm8u
aCIKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiQXJndW1lbnRzLmgi
CisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBDb3JlSVBDOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBDb29yZGluYXRlZExheWVySW5mbzo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBTaW1wbGVB
cmd1bWVudENvZGVyPENvb3JkaW5hdGVkTGF5ZXJJbmZvPjo6ZW5jb2RlKGVuY29kZXIsICp0aGlz
KTsKK30KKworYm9vbCBDb29yZGluYXRlZExheWVySW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgQ29vcmRpbmF0ZWRMYXllckluZm8mIGluZm8pCit7CisgICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRMYXllckluZm8+OjpkZWNvZGUo
ZGVjb2RlciwgaW5mbyk7Cit9Cit9CisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllckluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdjODE2YjY4NzQ2
OWI5YjkwMGRmODcwNmRmOTM0YzUwZjg4MGQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmgK
QEAgLTAsMCArMSw4MiBAQAorLyoKKyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgQ29vcmRpbmF0ZWRMYXllckluZm9faAorI2RlZmluZSBDb29yZGluYXRlZExheWVy
SW5mb19oCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisKKyNpbmNsdWRlICJBcmd1
bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKKyNpbmNsdWRlICJGbG9hdFNpemUuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xh
eWVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit0eXBlZGVmIHVpbnQzMl90IENvb3JkaW5h
dGVkTGF5ZXJJRDsKK2VudW0geyBJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEID0gMCB9OworCit0
eXBlZGVmIHVpbnQ2NF90IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQ7CitlbnVtIHsgSW52YWxp
ZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgPSAwIH07CisKKy8vIE5PVEU6IENvb3JkaW5hdGVk
TGF5ZXJJbmZvIHNob3VsZCBvbmx5IHVzZSBQT0QgdHlwZXMsIGFzIHRvIG1ha2Ugc2VyaWFsaXph
dGlvbiBmYXN0ZXIuCitzdHJ1Y3QgQ29vcmRpbmF0ZWRMYXllckluZm8geworICAgIENvb3JkaW5h
dGVkTGF5ZXJJbmZvKCkKKyAgICAgICAgOiByZXBsaWNhKEludmFsaWRDb29yZGluYXRlZExheWVy
SUQpCisgICAgICAgICwgbWFzayhJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEKQorICAgICAgICAs
IGltYWdlSUQoSW52YWxpZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpCisgICAgICAgICwgb3Bh
Y2l0eSgwKQorICAgICAgICAsIGZsYWdzKDApIHsgfQorCisgICAgQ29vcmRpbmF0ZWRMYXllcklE
IHJlcGxpY2E7CisgICAgQ29vcmRpbmF0ZWRMYXllcklEIG1hc2s7CisgICAgQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCBpbWFnZUlEOworCisgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBwb3M7Cisg
ICAgV2ViQ29yZTo6RmxvYXRQb2ludDNEIGFuY2hvclBvaW50OworICAgIFdlYkNvcmU6OkZsb2F0
U2l6ZSBzaXplOworICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsK
KyAgICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjaGlsZHJlblRyYW5zZm9ybTsKKyAg
ICBXZWJDb3JlOjpJbnRSZWN0IGNvbnRlbnRzUmVjdDsKKyAgICBmbG9hdCBvcGFjaXR5OworCisg
ICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgYm9vbCBjb250ZW50c09w
YXF1ZSA6IDE7CisgICAgICAgICAgICBib29sIGRyYXdzQ29udGVudCA6IDE7CisgICAgICAgICAg
ICBib29sIGNvbnRlbnRzVmlzaWJsZSA6IDE7CisgICAgICAgICAgICBib29sIGJhY2tmYWNlVmlz
aWJsZSA6IDE7CisgICAgICAgICAgICBib29sIG1hc2tzVG9Cb3VuZHMgOiAxOworICAgICAgICAg
ICAgYm9vbCBwcmVzZXJ2ZXMzRCA6IDE7CisgICAgICAgICAgICBib29sIGlzUm9vdExheWVyOiAx
OworICAgICAgICAgICAgYm9vbCBmaXhlZFRvVmlld3BvcnQgOiAxOworICAgICAgICB9OworICAg
ICAgICB1bnNpZ25lZCBmbGFnczsKKyAgICB9OworCisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIENvb3JkaW5hdGVkTGF5ZXJJbmZvJik7Cit9OworCit9CisKKyNl
bmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisKKyNlbmRpZiAvLyBDb29yZGluYXRl
ZExheWVySW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVl
Q29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaAppbmRl
eCBmOGUyZmNlNjFmMzNkMmFjZjc0N2YwZTljYzVlZTYzZWJjN2VmZWE5Li4zZmY3Y2I0YTM1YjFk
YzJhMjUyZGNhY2FjNzRhZmEyMGZmODE5MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXll
clRyZWVDb250ZXh0LmgKQEAgLTU3LDExICs1NywxMSBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9S
TShXSU4pCiAgICAgSFdORCB3aW5kb3c7CiAjZWxpZiBQTEFURk9STShRVCkKLSAgICB1aW50MzJf
dCB3ZWJMYXllcklEOworICAgIHVpbnQzMl90IGNvb3JkaW5hdGVkTGF5ZXJJRDsKICNlbGlmIFBM
QVRGT1JNKEdUSykKICAgICB1aW50NjRfdCB3aW5kb3dIYW5kbGU7CiAjZWxpZiBQTEFURk9STShF
RkwpCi0gICAgdWludDMyX3Qgd2ViTGF5ZXJJRDsKKyAgICB1aW50MzJfdCBjb29yZGluYXRlZExh
eWVySUQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJMYXllclRyZWVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJ
bmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFiMTMxZmVhYmQzNjA1MWM5
Njk4Yzk1NmNmZjM1NzEyNzkzNmE3OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLQotIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLQotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQotI2luY2x1ZGUgIldlYkxheWVyVHJlZUluZm8uaCIKLQotI2luY2x1ZGUgIkFy
Z3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRzLmgiCi0jaW5jbHVkZSAiU2hhcmVk
TWVtb3J5LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBDb3JlSVBDOwotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotdm9pZCBXZWJMYXllckluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJMYXllckluZm8+
OjplbmNvZGUoZW5jb2RlciwgKnRoaXMpOwotfQotCi1ib29sIFdlYkxheWVySW5mbzo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJJbmZvJiBpbmZvKQot
ewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFdlYkxheWVySW5mbz46OmRlY29kZShk
ZWNvZGVyLCBpbmZvKTsKLX0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXll
clRyZWVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmMzIzNzFhZmNmNzQx
ZmRmNGE1NjA2OTRhN2IyMDEyMjNlYTRhMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8u
aAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotCi0gVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIFdlYkxheWVyVHJlZUluZm9faAotI2RlZmluZSBXZWJM
YXllclRyZWVJbmZvX2gKLQotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKLQotI2luY2x1
ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgotI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgotI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXIuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXR5cGVkZWYgdWludDMyX3Qg
V2ViTGF5ZXJJRDsKLWVudW0geyBJbnZhbGlkV2ViTGF5ZXJJRCA9IDAgfTsKLQotdHlwZWRlZiB1
aW50NjRfdCBDb29yZGluYXRlZEltYWdlQmFja2luZ0lEOwotZW51bSB7IEludmFsaWRDb29yZGlu
YXRlZEltYWdlQmFja2luZ0lEID0gMCB9OwotCi0vLyBOT1RFOiBXZWJMYXllckluZm8gc2hvdWxk
IG9ubHkgdXNlIFBPRCB0eXBlcywgYXMgdG8gbWFrZSBzZXJpYWxpemF0aW9uIGZhc3Rlci4KLXN0
cnVjdCBXZWJMYXllckluZm8gewotICAgIFdlYkxheWVySW5mbygpCi0gICAgICAgIDogcmVwbGlj
YShJbnZhbGlkV2ViTGF5ZXJJRCkKLSAgICAgICAgLCBtYXNrKEludmFsaWRXZWJMYXllcklEKQot
ICAgICAgICAsIGltYWdlSUQoSW52YWxpZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpCi0gICAg
ICAgICwgb3BhY2l0eSgwKQotICAgICAgICAsIGZsYWdzKDApIHsgfQotCi0gICAgV2ViTGF5ZXJJ
RCByZXBsaWNhOwotICAgIFdlYkxheWVySUQgbWFzazsKLSAgICBDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEIGltYWdlSUQ7Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHBvczsKLSAgICBXZWJD
b3JlOjpGbG9hdFBvaW50M0QgYW5jaG9yUG9pbnQ7Ci0gICAgV2ViQ29yZTo6RmxvYXRTaXplIHNp
emU7Ci0gICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwotICAgIFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkcmVuVHJhbnNmb3JtOwotICAgIFdlYkNv
cmU6OkludFJlY3QgY29udGVudHNSZWN0OwotICAgIGZsb2F0IG9wYWNpdHk7Ci0KLSAgICB1bmlv
biB7Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICBib29sIGNvbnRlbnRzT3BhcXVlIDog
MTsKLSAgICAgICAgICAgIGJvb2wgZHJhd3NDb250ZW50IDogMTsKLSAgICAgICAgICAgIGJvb2wg
Y29udGVudHNWaXNpYmxlIDogMTsKLSAgICAgICAgICAgIGJvb2wgYmFja2ZhY2VWaXNpYmxlIDog
MTsKLSAgICAgICAgICAgIGJvb2wgbWFza3NUb0JvdW5kcyA6IDE7Ci0gICAgICAgICAgICBib29s
IHByZXNlcnZlczNEIDogMTsKLSAgICAgICAgICAgIGJvb2wgaXNSb290TGF5ZXI6IDE7Ci0gICAg
ICAgICAgICBib29sIGZpeGVkVG9WaWV3cG9ydCA6IDE7Ci0gICAgICAgIH07Ci0gICAgICAgIHVu
c2lnbmVkIGludCBmbGFnczsKLSAgICB9OwotCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIFdlYkxheWVySW5mbyYpOwotfTsKLQotfQotCi0jZW5kaWYgLy8gVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCi0jZW5kaWYgLy8gV2ViTGF5ZXJUcmVlSW5mb19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNw
cAppbmRleCAzMmZhOTcwYThlNDk1ZjBkMzY1YmFjODE4YWRhZDRjZGZkNDlhYTZkLi4xZmE2MzVk
ODNkMWEzMzkyZWY3ZTQwMTU1ZDZkYTk5MmZkZWI2NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBMYXllclRyZWVDb250ZXh0OjpMYXllclRyZWVDb250ZXh0
KCkKLSAgICA6IHdlYkxheWVySUQoMCkKKyAgICA6IGNvb3JkaW5hdGVkTGF5ZXJJRCgwKQogewog
fQogCkBAIC00MiwyMiArNDIsMjIgQEAgTGF5ZXJUcmVlQ29udGV4dDo6fkxheWVyVHJlZUNvbnRl
eHQoKQogCiB2b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci5lbmNvZGUod2ViTGF5ZXJJRCk7
CisgICAgZW5jb2Rlci5lbmNvZGUoY29vcmRpbmF0ZWRMYXllcklEKTsKIH0KIAogYm9vbCBMYXll
clRyZWVDb250ZXh0OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBM
YXllclRyZWVDb250ZXh0JiBjb250ZXh0KQogewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUo
Y29udGV4dC53ZWJMYXllcklEKTsKKyAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKGNvbnRleHQu
Y29vcmRpbmF0ZWRMYXllcklEKTsKIH0KIAogYm9vbCBMYXllclRyZWVDb250ZXh0Ojppc0VtcHR5
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gIXdlYkxheWVySUQ7CisgICAgcmV0dXJuICFjb29yZGlu
YXRlZExheWVySUQ7CiB9CiAKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMYXllclRyZWVDb250ZXh0
JiBhLCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBiKQogewotICAgIHJldHVybiBhLndlYkxheWVy
SUQgPT0gYi53ZWJMYXllcklEOworICAgIHJldHVybiBhLmNvb3JkaW5hdGVkTGF5ZXJJRCA9PSBi
LmNvb3JkaW5hdGVkTGF5ZXJJRDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvTGF5ZXJUcmVlQ29udGV4dFF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9MYXllclRyZWVDb250ZXh0UXQuY3BwCmluZGV4IDAwZWE4
NzM1ZmFmZWJjYzM3MTFlZTEzNTRiODkwMjNiNDkzMDEwMmEuLjlmYzQxNjM1MmNmMWE1MjY3MGYx
MmQyMzczM2NmNjFjYzI5MDEzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9x
dC9MYXllclRyZWVDb250ZXh0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9M
YXllclRyZWVDb250ZXh0UXQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogTGF5ZXJUcmVlQ29udGV4dDo6TGF5ZXJUcmVlQ29udGV4dCgpCi0gICAgOiB3ZWJMYXll
cklEKDApCisgICAgOiBjb29yZGluYXRlZExheWVySUQoMCkKIHsKIH0KIApAQCAtNDIsMjIgKzQy
LDIyIEBAIExheWVyVHJlZUNvbnRleHQ6On5MYXllclRyZWVDb250ZXh0KCkKIAogdm9pZCBMYXll
clRyZWVDb250ZXh0OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXIuZW5jb2RlKHdlYkxheWVySUQpOworICAgIGVuY29kZXIuZW5j
b2RlKGNvb3JkaW5hdGVkTGF5ZXJJRCk7CiB9CiAKIGJvb2wgTGF5ZXJUcmVlQ29udGV4dDo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTGF5ZXJUcmVlQ29udGV4dCYg
Y29udGV4dCkKIHsKLSAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKGNvbnRleHQud2ViTGF5ZXJJ
RCk7CisgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShjb250ZXh0LmNvb3JkaW5hdGVkTGF5ZXJJ
RCk7CiB9CiAKIGJvb2wgTGF5ZXJUcmVlQ29udGV4dDo6aXNFbXB0eSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuICF3ZWJMYXllcklEOworICAgIHJldHVybiAhY29vcmRpbmF0ZWRMYXllcklEOwogfQog
CiBib29sIG9wZXJhdG9yPT0oY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgYSwgY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYgYikKIHsKLSAgICByZXR1cm4gYS53ZWJMYXllcklEID09IGIud2ViTGF5ZXJJ
RDsKKyAgICByZXR1cm4gYS5jb29yZGluYXRlZExheWVySUQgPT0gYi5jb29yZGluYXRlZExheWVy
SUQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggNzAyMjljNDll
NzQ2YjRmNjI1ZGU1YmM1NmRkZGIxZGUxNjliMWRjOS4uZTY0MDg1OTkyNzQzYTkxZjAyNDI0NmQ0
NDg4OTE3NDM1NjlmMjRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xMjAsNyArMTIwLDYgQEAgSEVBREVS
UyArPSBcCiAgICAgU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuaCBcCiAgICAgU2hhcmVkL1dlYklt
YWdlLmggXAogICAgIFNoYXJlZC9XZWJJbnRlbnRTZXJ2aWNlSW5mby5oIFwKLSAgICBTaGFyZWQv
V2ViTGF5ZXJUcmVlSW5mby5oIFwKICAgICBTaGFyZWQvV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5o
IFwKICAgICBTaGFyZWQvV2ViTnVtYmVyLmggXAogICAgIFNoYXJlZC9XZWJPcGVuUGFuZWxQYXJh
bWV0ZXJzLmggXApAQCAtMTM1LDYgKzEzNCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9X
ZWJVUkxSZXNwb25zZS5oIFwKICAgICBTaGFyZWQvV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgg
XAogICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1
bWVudENvZGVycy5oIFwKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZExheWVySW5mby5oIFwKICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDdXN0b21G
aWx0ZXJQcm9ncmFtLmggXAogICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luTW9kdWxlLmggXAogICAgIFNoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmggXApA
QCAtNDg2LDcgKzQ4Niw2IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9XZWJLZXlib2FyZEV2
ZW50LmNwcCBcCiAgICAgU2hhcmVkL1dlYkltYWdlLmNwcCBcCiAgICAgU2hhcmVkL1dlYkludGVu
dFNlcnZpY2VJbmZvLmNwcCBcCi0gICAgU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uY3BwIFwKICAg
ICBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJOZXR3b3JrSW5mby5j
cHAgXAogICAgIFNoYXJlZC9XZWJPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCBcCkBAIC01MDMsNiAr
NTAyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcCBcCiAg
ICAgU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwIFwKICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwIFwKKyAgICBTaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5jcHAgXAogICAgIFNoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5jcHAgXAog
ICAgIFNoYXJlZC9xdC9Bcmd1bWVudENvZGVyc1F0LmNwcCBcCiAgICAgU2hhcmVkL3F0L0xheWVy
VHJlZUNvbnRleHRRdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5LmNwcAppbmRleCA4Mzc5ZjE3OTM4NWJjYzgyYTkyYzU1OWE5ODcyNTZiNzc5ZmE4
NTY2Li5lOWQzZjA4ODZjNjI2MzYyNjg2NWQ4MmZkZDc1ZmFjNDdhZjlmMzZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcApAQCAtMjIsMTEgKzIy
LDExIEBACiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUgIkxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkuaCIKIAorI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJJbmZvLmgi
CiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkxh
eWVyVHJlZVJlbmRlcmVyLmgiCiAjaW5jbHVkZSAiVXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYkxheWVyVHJlZUluZm8uaCIKICNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzU3VyZmFjZS5oPgpAQCAtOTEsMjkgKzkxLDI5IEBAIHZv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6cmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFz
SUQpCiAgICAgbV9zdXJmYWNlcy5yZW1vdmUoYXRsYXNJRCk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eTo6ZGVsZXRlQ29tcG9zaXRpbmdMYXllcihXZWJMYXllcklEIGlkKQor
dm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpkZWxldGVDb21wb3NpdGluZ0xheWVyKENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCkKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRy
ZWVSZW5kZXJlcjo6ZGVsZXRlTGF5ZXIsIG1fcmVuZGVyZXIuZ2V0KCksIGlkKSk7CiB9CiAKLXZv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2Vi
TGF5ZXJJRCBpZCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Um9vdENvbXBv
c2l0aW5nTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogewogICAgIGRpc3BhdGNoVXBkYXRl
KGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpzZXRSb290TGF5ZXJJRCwgbV9yZW5kZXJlci5nZXQo
KSwgaWQpKTsKICAgICB1cGRhdGVWaWV3cG9ydCgpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHk6OnNldENvbXBvc2l0aW5nTGF5ZXJTdGF0ZShXZWJMYXllcklEIGlkLCBjb25z
dCBXZWJMYXllckluZm8mIGluZm8pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNl
dENvbXBvc2l0aW5nTGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3Jk
aW5hdGVkTGF5ZXJJbmZvJiBpbmZvKQogewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVy
VHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlLCBtX3JlbmRlcmVyLmdldCgpLCBpZCwgaW5mbykp
OwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldENvbXBvc2l0aW5nTGF5
ZXJDaGlsZHJlbihXZWJMYXllcklEIGlkLCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4mIGNoaWxk
cmVuKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRDb21wb3NpdGluZ0xheWVy
Q2hpbGRyZW4oQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRM
YXllcklEPiYgY2hpbGRyZW4pCiB7CiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVl
UmVuZGVyZXI6OnNldExheWVyQ2hpbGRyZW4sIG1fcmVuZGVyZXIuZ2V0KCksIGlkLCBjaGlsZHJl
bikpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotdm9pZCBMYXllclRyZWVDb29yZGlu
YXRvclByb3h5OjpzZXRDb21wb3NpdGluZ0xheWVyRmlsdGVycyhXZWJMYXllcklEIGlkLCBjb25z
dCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvclBy
b3h5OjpzZXRDb21wb3NpdGluZ0xheWVyRmlsdGVycyhDb29yZGluYXRlZExheWVySUQgaWQsIGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgZGlzcGF0Y2hVcGRhdGUoYmlu
ZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyRmlsdGVycywgbV9yZW5kZXJlci5nZXQoKSwg
aWQsIGZpbHRlcnMpKTsKIH0KQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHk6OnNldENvbnRlbnRzU2l6ZShjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRzU2l6
ZSkKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6c2V0Q29udGVu
dHNTaXplLCBtX3JlbmRlcmVyLmdldCgpLCBjb250ZW50c1NpemUpKTsKIH0KIAotdm9pZCBMYXll
clRyZWVDb29yZGluYXRvclByb3h5OjpzZXRMYXllckFuaW1hdGlvbnMoV2ViTGF5ZXJJRCBpZCwg
Y29uc3QgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCit2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OnNldExheWVyQW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQg
aWQsIGNvbnN0IEdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJiBhbmltYXRpb25zKQogewogICAgIGRp
c3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckFuaW1hdGlvbnMs
IG1fcmVuZGVyZXIuZ2V0KCksIGlkLCBhbmltYXRpb25zKSk7CiB9CkBAIC0yMTcsMTggKzIxNywx
OCBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmRpZENoYW5nZVNjcm9sbFBvc2l0
aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbgogfQogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZUNhbnZhcyhXZWJMYXll
cklEIGlkLCBjb25zdCBJbnRTaXplJiBjYW52YXNTaXplLCBjb25zdCBHcmFwaGljc1N1cmZhY2VU
b2tlbiYgdG9rZW4pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZUNhbnZh
cyhDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIGNvbnN0
IEdyYXBoaWNzU3VyZmFjZVRva2VuJiB0b2tlbikKIHsKICAgICBHcmFwaGljc1N1cmZhY2U6OkZs
YWdzIHN1cmZhY2VGbGFncyA9IEdyYXBoaWNzU3VyZmFjZTo6U3VwcG9ydHNUZXh0dXJlVGFyZ2V0
IHwgR3JhcGhpY3NTdXJmYWNlOjpTdXBwb3J0c1NoYXJpbmc7CiAgICAgZGlzcGF0Y2hVcGRhdGUo
YmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUNhbnZhcywgbV9yZW5kZXJlci5nZXQoKSwg
aWQsIGNhbnZhc1NpemUsIEdyYXBoaWNzU3VyZmFjZTo6Y3JlYXRlKGNhbnZhc1NpemUsIHN1cmZh
Y2VGbGFncywgdG9rZW4pKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6
c3luY0NhbnZhcyhXZWJMYXllcklEIGlkLCB1aW50MzJfdCBmcm9udEJ1ZmZlcikKK3ZvaWQgTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQgaWQs
IHVpbnQzMl90IGZyb250QnVmZmVyKQogewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVy
VHJlZVJlbmRlcmVyOjpzeW5jQ2FudmFzLCBtX3JlbmRlcmVyLmdldCgpLCBpZCwgZnJvbnRCdWZm
ZXIpKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpkZXN0cm95Q2FudmFz
KFdlYkxheWVySUQgaWQpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmRlc3Ryb3lD
YW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQo
JkxheWVyVHJlZVJlbmRlcmVyOjpkZXN0cm95Q2FudmFzLCBtX3JlbmRlcmVyLmdldCgpLCBpZCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4
IGZiNThiMWFlNzRmYWRjNDQyYzlkN2YwMGU0NzY5MzM0NGZhMzFkZWYuLjlkMzQ5OWZjODE4OWY1
ZjBkOWVlZjJlOWY2ZWZlZjJhNWE2MDFkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5LmgKQEAgLTI0LDExICsyNCwxMSBAQAogCiAjaW5jbHVkZSAiQmFj
a2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllckluZm8uaCIKICNpbmNsdWRlICJEcmF3aW5n
QXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlU3Vy
ZmFjZS5oIgogI2luY2x1ZGUgIlN1cmZhY2VVcGRhdGVJbmZvLmgiCi0jaW5jbHVkZSAiV2ViTGF5
ZXJUcmVlSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0xheWVyQW5pbWF0aW9uLmg+CkBAIC00Miw5ICs0Miw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1jbGFzcyBXZWJMYXllckluZm87CitjbGFzcyBDb29yZGluYXRlZExheWVySW5mbzsKIGNs
YXNzIExheWVyVHJlZVJlbmRlcmVyOwotY2xhc3MgV2ViTGF5ZXJVcGRhdGVJbmZvOworY2xhc3Mg
Q29vcmRpbmF0ZWRMYXllclVwZGF0ZUluZm87CiAKIGNsYXNzIExheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkpOwpAQCAtNTIsMTcgKzUyLDE3IEBAIGNsYXNzIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkoRHJhd2lu
Z0FyZWFQcm94eSopOwogICAgIH5MYXllclRyZWVDb29yZGluYXRvclByb3h5KCk7Ci0gICAgdm9p
ZCBzZXRDb21wb3NpdGluZ0xheWVyU3RhdGUoV2ViTGF5ZXJJRCwgY29uc3QgV2ViTGF5ZXJJbmZv
Jik7Ci0gICAgdm9pZCBzZXRDb21wb3NpdGluZ0xheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCwgY29u
c3QgVmVjdG9yPFdlYkxheWVySUQ+Jik7CisgICAgdm9pZCBzZXRDb21wb3NpdGluZ0xheWVyU3Rh
dGUoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBDb29yZGluYXRlZExheWVySW5mbyYpOworICAg
IHZvaWQgc2V0Q29tcG9zaXRpbmdMYXllckNoaWxkcmVuKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29u
c3QgVmVjdG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4mKTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
Ci0gICAgdm9pZCBzZXRDb21wb3NpdGluZ0xheWVyRmlsdGVycyhXZWJMYXllcklELCBjb25zdCBX
ZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CisgICAgdm9pZCBzZXRDb21wb3NpdGluZ0xheWVy
RmlsdGVycyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlv
bnMmKTsKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICB2b2lkIGNyZWF0ZUN1
c3RvbUZpbHRlclByb2dyYW0oaW50IGlkLCBjb25zdCBXZWJDb3JlOjpDdXN0b21GaWx0ZXJQcm9n
cmFtSW5mbyYpOwogICAgIHZvaWQgcmVtb3ZlQ3VzdG9tRmlsdGVyUHJvZ3JhbShpbnQgaWQpOwog
I2VuZGlmCi0gICAgdm9pZCBkZWxldGVDb21wb3NpdGluZ0xheWVyKFdlYkxheWVySUQpOwotICAg
IHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCk7CisgICAgdm9pZCBkZWxl
dGVDb21wb3NpdGluZ0xheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCk7CisgICAgdm9pZCBzZXRSb290
Q29tcG9zaXRpbmdMYXllcihDb29yZGluYXRlZExheWVySUQpOwogICAgIHZvaWQgc2V0Q29udGVu
dHNTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0VmlzaWJsZUNv
bnRlbnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCBzY2FsZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgdHJhamVjdG9yeVZlY3Rvcik7CiAgICAgdm9pZCBkaWRSZW5k
ZXJGcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KTsKQEAgLTgwLDEzICs4MCwxMyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKTsKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbFBvc2l0
aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CiAjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCi0gICAgdm9pZCBjcmVhdGVDYW52YXMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuJik7Ci0gICAg
dm9pZCBzeW5jQ2FudmFzKFdlYkxheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKLSAgICB2
b2lkIGRlc3Ryb3lDYW52YXMoV2ViTGF5ZXJJRCk7CisgICAgdm9pZCBjcmVhdGVDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NTdXJmYWNlVG9rZW4mKTsKKyAgICB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0ZWRM
YXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CisgICAgdm9pZCBkZXN0cm95Q2FudmFzKENv
b3JkaW5hdGVkTGF5ZXJJRCk7CiAjZW5kaWYKICAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3Jlcygp
OwogICAgIExheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhXZWJM
YXllcklELCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpOworICAgIHZv
aWQgc2V0TGF5ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllckFuaW1hdGlvbnMmKTsKICAgICB2b2lkIHNldEFuaW1hdGlvbnNMb2NrZWQo
Ym9vbCk7CiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIHZvaWQgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0MmM2OWJiZWYzYWE4YTVlZDgx
M2RjNzljNmY5NjU3ZTU1YjAwNDEzLi4xYzkyOWVmZjQ4OGEyY2IxNDRhNDRjNWFlZmM0MzgyZDg2
YTllMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTE5LDcgKzE5LDcgQEAKIAogI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKIG1lc3NhZ2VzIC0+IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkgewot
ICAgIFNldENvbXBvc2l0aW5nTGF5ZXJTdGF0ZSh1aW50MzJfdCBpZCwgV2ViS2l0OjpXZWJMYXll
ckluZm8gbGF5ZXJJbmZvKQorICAgIFNldENvbXBvc2l0aW5nTGF5ZXJTdGF0ZSh1aW50MzJfdCBp
ZCwgV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbyBsYXllckluZm8pCiAgICAgU2V0Q29tcG9z
aXRpbmdMYXllckNoaWxkcmVuKHVpbnQzMl90IGlkLCBWZWN0b3I8dWludDMyX3Q+IGNoaWxkcmVu
KQogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBTZXRDb21wb3NpdGluZ0xheWVyRmlsdGVy
cyh1aW50MzJfdCBpZCwgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXJzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCmluZGV4IGYxZDJiZjBhNjgyZTE0NDhjMzMwOGUy
YTVjZWVlNWZmNzJmZjg0YjAuLjdjMzIxNzFmMTI3ZjA5MjNlMDIxZGI5ZTRlOGRmNDA1NjVmZWFj
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKQEAgLTc0LDcgKzc0LDcg
QEAgc3RhdGljIGJvb2wgbGF5ZXJTaG91bGRIYXZlQmFja2luZ1N0b3JlKEdyYXBoaWNzTGF5ZXIq
IGxheWVyKQogTGF5ZXJUcmVlUmVuZGVyZXI6OkxheWVyVHJlZVJlbmRlcmVyKExheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHkqIGxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCiAgICAgOiBtX2xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkobGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSkKICAgICAsIG1f
aXNBY3RpdmUoZmFsc2UpCi0gICAgLCBtX3Jvb3RMYXllcklEKEludmFsaWRXZWJMYXllcklEKQor
ICAgICwgbV9yb290TGF5ZXJJRChJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEKQogICAgICwgbV9h
bmltYXRpb25zTG9ja2VkKGZhbHNlKQogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkKICAgICAsIG1fYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ZWQoZmFsc2UpCkBAIC04OSw3ICs4OSw3
IEBAIExheWVyVHJlZVJlbmRlcmVyOjp+TGF5ZXJUcmVlUmVuZGVyZXIoKQogewogfQogCi1QYXNz
T3duUHRyPEdyYXBoaWNzTGF5ZXI+IExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVMYXllcihXZWJM
YXllcklEKQorUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBMYXllclRyZWVSZW5kZXJlcjo6Y3Jl
YXRlTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEKQogewogICAgIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyKiBuZXdMYXllciA9IG5ldyBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcih0aGlzKTsK
ICAgICBuZXdMYXllci0+c2V0SGFzT3duQmFja2luZ1N0b3JlKGZhbHNlKTsKQEAgLTIyNyw3ICsy
MjcsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpkaWRDaGFuZ2VTY3JvbGxQb3NpdGlvbihj
b25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiB9CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkK
LXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUNhbnZhcyhXZWJMYXllcklEIGlkLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFj
ZT4gc3VyZmFjZSkKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUNhbnZhcyhDb29yZGlu
YXRlZExheWVySUQgaWQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZhc1NpemUsIFBhc3NS
ZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBzdXJmYWNlKQogewogICAgIEFTU0VSVChtX3RleHR1cmVN
YXBwZXIpOwogICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGlkKTsKQEAgLTI0
MSw3ICsyNDEsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVDYW52YXMoV2ViTGF5
ZXJJRCBpZCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY2FudgogICAgIGxheWVyLT5zZXRDb250
ZW50c1RvTWVkaWEoY2FudmFzQmFja2luZ1N0b3JlLmdldCgpKTsKIH0KIAotdm9pZCBMYXllclRy
ZWVSZW5kZXJlcjo6c3luY0NhbnZhcyhXZWJMYXllcklEIGlkLCB1aW50MzJfdCBmcm9udEJ1ZmZl
cikKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklE
IGlkLCB1aW50MzJfdCBmcm9udEJ1ZmZlcikKIHsKICAgICBBU1NFUlQobV90ZXh0dXJlTWFwcGVy
KTsKICAgICBBU1NFUlQobV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5jb250YWlucyhpZCkpOwpAQCAt
MjUyLDcgKzI1Miw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNDYW52YXMoV2ViTGF5
ZXJJRCBpZCwgdWludDMyX3QgZnJvbnRCdWZmZXIpCiAgICAgY2FudmFzQmFja2luZ1N0b3JlLT5z
d2FwQnVmZmVyc0lmTmVlZGVkKGZyb250QnVmZmVyKTsKIH0KIAotdm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6ZGVzdHJveUNhbnZhcyhXZWJMYXllcklEIGlkKQordm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6ZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVySUQgaWQpCiB7CiAgICAgQVNTRVJUKG1f
dGV4dHVyZU1hcHBlcik7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQoaWQp
OwpAQCAtMjY0LDEzICsyNjQsMTMgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6ZGVzdHJveUNh
bnZhcyhXZWJMYXllcklEIGlkKQogfQogI2VuZGlmCiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6
OnNldExheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCBpZCwgY29uc3QgVmVjdG9yPFdlYkxheWVySUQ+
JiBjaGlsZElEcykKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyQ2hpbGRyZW4oQ29v
cmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRMYXllcklEPiYgY2hp
bGRJRHMpCiB7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBlbnN1cmVMYXllcihpZCk7CiAg
ICAgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiBjaGlsZHJlbjsKIAogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY2hpbGRJRHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgV2ViTGF5ZXJJRCBjaGls
ZElEID0gY2hpbGRJRHNbaV07CisgICAgICAgIENvb3JkaW5hdGVkTGF5ZXJJRCBjaGlsZElEID0g
Y2hpbGRJRHNbaV07CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGNoaWxkID0gbGF5ZXJCeUlEKGNo
aWxkSUQpOwogICAgICAgICBpZiAoIWNoaWxkKSB7CiAgICAgICAgICAgICBPd25QdHI8R3JhcGhp
Y3NMYXllcio+IG5ld0NoaWxkID0gY3JlYXRlTGF5ZXIoY2hpbGRJRCk7CkBAIC0yODMsNyArMjgz
LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJDaGlsZHJlbihXZWJMYXllcklE
IGlkLCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4KIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyRmlsdGVycyhXZWJMYXllcklEIGlk
LCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQordm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6c2V0TGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgRmlsdGVyT3Bl
cmF0aW9ucyYgZmlsdGVycykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGVuc3VyZUxh
eWVyKGlkKTsKIApAQCAtMzI2LDcgKzMyNiw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJl
bW92ZUN1c3RvbUZpbHRlclByb2dyYW0oaW50IGlkKQogfQogI2VuZGlmIC8vIEVOQUJMRShDU1Nf
U0hBREVSUykKIAotdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZShXZWJMYXll
cklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGxheWVySW5mbykKK3ZvaWQgTGF5ZXJUcmVlUmVu
ZGVyZXI6OnNldExheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBDb29yZGlu
YXRlZExheWVySW5mbyYgbGF5ZXJJbmZvKQogewogICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0g
ZW5zdXJlTGF5ZXIoaWQpOwogCkBAIC0zNjEsNyArMzYxLDcgQEAgdm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6c2V0TGF5ZXJTdGF0ZShXZWJMYXllcklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGxh
eWVySW4KICAgICAgICAgc2V0Um9vdExheWVySUQoaWQpOwogfQogCi12b2lkIExheWVyVHJlZVJl
bmRlcmVyOjpkZWxldGVMYXllcihXZWJMYXllcklEIGxheWVySUQpCit2b2lkIExheWVyVHJlZVJl
bmRlcmVyOjpkZWxldGVMYXllcihDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCkKIHsKICAgICBP
d25QdHI8R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBtX2xheWVycy50YWtlKGxheWVySUQpOwogICAg
IGlmICghbGF5ZXIpCkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6
ZGVsZXRlTGF5ZXIoV2ViTGF5ZXJJRCBsYXllcklEKQogfQogCiAKLVdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqIExheWVyVHJlZVJlbmRlcmVyOjplbnN1cmVMYXllcihXZWJMYXllcklEIGlkKQorV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciogTGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZUxheWVyKENvb3Jk
aW5hdGVkTGF5ZXJJRCBpZCkKIHsKICAgICBMYXllck1hcDo6aXRlcmF0b3IgaXQgPSBtX2xheWVy
cy5maW5kKGlkKTsKICAgICBpZiAoaXQgIT0gbV9sYXllcnMuZW5kKCkpCkBAIC0zODksNyArMzg5
LDcgQEAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogTGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZUxh
eWVyKFdlYkxheWVySUQgaWQpCiAgICAgcmV0dXJuIGxheWVyOwogfQogCi12b2lkIExheWVyVHJl
ZVJlbmRlcmVyOjpzZXRSb290TGF5ZXJJRChXZWJMYXllcklEIGxheWVySUQpCit2b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpzZXRSb290TGF5ZXJJRChDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCkK
IHsKICAgICBpZiAobGF5ZXJJRCA9PSBtX3Jvb3RMYXllcklEKQogICAgICAgICByZXR1cm47CkBA
IC00ODQsNyArNDg0LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cmVzZXRCYWNraW5nU3Rv
cmVTaXplVG9MYXllclNpemUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3MKICAgICBiYWNraW5nU3Rv
cmUtPnNldFNpemUoZ3JhcGhpY3NMYXllci0+c2l6ZSgpKTsKIH0KIAotdm9pZCBMYXllclRyZWVS
ZW5kZXJlcjo6Y3JlYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGZsb2F0
IHNjYWxlKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZShDb29yZGluYXRlZExh
eWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgZmxvYXQgc2NhbGUpCiB7CiAgICAgR3JhcGhpY3NM
YXllciogbGF5ZXIgPSBsYXllckJ5SUQobGF5ZXJJRCk7CiAgICAgQVNTRVJUKGxheWVyKTsKQEAg
LTQ5NCw3ICs0OTQsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlKFdlYkxh
eWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgZmxvYXQgc2NhbGUpCiAgICAgcmVzZXRCYWNraW5n
U3RvcmVTaXplVG9MYXllclNpemUobGF5ZXIpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVy
OjpyZW1vdmVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCkKK3ZvaWQgTGF5ZXJU
cmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQsIGludCB0
aWxlSUQpCiB7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQobGF5ZXJJRCk7
CiAgICAgQVNTRVJUKGxheWVyKTsKQEAgLTUwNyw3ICs1MDcsNyBAQCB2b2lkIExheWVyVHJlZVJl
bmRlcmVyOjpyZW1vdmVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCkKICAgICBt
X2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdTdG9yZSk7CiB9CiAK
LXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBp
bnQgdGlsZUlELCBjb25zdCBUaWxlVXBkYXRlJiB1cGRhdGUpCit2b2lkIExheWVyVHJlZVJlbmRl
cmVyOjp1cGRhdGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBj
b25zdCBUaWxlVXBkYXRlJiB1cGRhdGUpCiB7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBs
YXllckJ5SUQobGF5ZXJJRCk7CiAgICAgQVNTRVJUKGxheWVyKTsKQEAgLTYxOSw3ICs2MTksNyBA
QCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjplbnN1cmVSb290TGF5ZXIoKQogICAgIGlmIChtX3Jv
b3RMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9yb290TGF5ZXIgPSBjcmVhdGVMYXll
cihJbnZhbGlkV2ViTGF5ZXJJRCk7CisgICAgbV9yb290TGF5ZXIgPSBjcmVhdGVMYXllcihJbnZh
bGlkQ29vcmRpbmF0ZWRMYXllcklEKTsKICAgICBtX3Jvb3RMYXllci0+c2V0TWFza3NUb0JvdW5k
cyhmYWxzZSk7CiAgICAgbV9yb290TGF5ZXItPnNldERyYXdzQ29udGVudChmYWxzZSk7CiAgICAg
bV9yb290TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgwLCAwLCAwKSk7CkBAIC02
NjIsNyArNjYyLDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cHVyZ2VHTFJlc291cmNlcygp
CiAKICAgICBtX3Jvb3RMYXllci0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICBtX3Jvb3RMYXll
ci5jbGVhcigpOwotICAgIG1fcm9vdExheWVySUQgPSBJbnZhbGlkV2ViTGF5ZXJJRDsKKyAgICBt
X3Jvb3RMYXllcklEID0gSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRDsKICAgICBtX2xheWVycy5j
bGVhcigpOwogICAgIG1fZml4ZWRMYXllcnMuY2xlYXIoKTsKICAgICBtX3RleHR1cmVNYXBwZXIu
Y2xlYXIoKTsKQEAgLTY3OSw3ICs2NzksNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpwdXJn
ZUJhY2tpbmdTdG9yZXMoKQogICAgICAgICBtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHktPnB1
cmdlQmFja2luZ1N0b3JlcygpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
ckFuaW1hdGlvbnMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMm
IGFuaW1hdGlvbnMpCit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckFuaW1hdGlvbnMo
Q29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYgYW5p
bWF0aW9ucykKIHsKICAgICBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogbGF5ZXIgPSB0b0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGxheWVyQnlJRChpZCkpOwogICAgIGlmICghbGF5ZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRleCA5NDZhYzZkNDlmZmQwMTBiMjYx
YWI2NGYxYzg2Mjg2ODEzNmYxNjdmLi5lMTAwMjkzOGNlODM0OWFjZTg1MGQ1NWNlNWNmNDhmZTVj
ZTg1OTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTIyLDEwICsyMiwx
MCBAQAogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUgIkJhY2tpbmdT
dG9yZS5oIgorI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJJbmZvLmgiCiAjaW5jbHVkZSAiU2hh
cmVhYmxlU3VyZmFjZS5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXIuaCIKICNpbmNsdWRlICJU
ZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgiCi0jaW5jbHVkZSAiV2ViTGF5ZXJUcmVlSW5mby5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyQW5pbWF0
aW9uLmg+CkBAIC00OCw4ICs0OCw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTsKIGNsYXNzIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk7Ci1j
bGFzcyBXZWJMYXllckluZm87Ci1jbGFzcyBXZWJMYXllclVwZGF0ZUluZm87CitjbGFzcyBDb29y
ZGluYXRlZExheWVySW5mbzsKK2NsYXNzIENvb3JkaW5hdGVkTGF5ZXJVcGRhdGVJbmZvOwogCiBj
bGFzcyBMYXllclRyZWVSZW5kZXJlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxMYXll
clRyZWVSZW5kZXJlcj4sIHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50IHsKIHB1
YmxpYzoKQEAgLTc0LDkgKzc0LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRl
bnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICB2b2lkIGRpZENoYW5nZVNj
cm9sbFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CiAjaWYgVVNF
KEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgdm9pZCBjcmVhdGVDYW52YXMoV2ViTGF5ZXJJRCwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNl
Pik7Ci0gICAgdm9pZCBzeW5jQ2FudmFzKFdlYkxheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVy
KTsKLSAgICB2b2lkIGRlc3Ryb3lDYW52YXMoV2ViTGF5ZXJJRCk7CisgICAgdm9pZCBjcmVhdGVD
YW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2U+KTsKKyAgICB2b2lkIHN5bmNDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CisgICAgdm9pZCBkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAjZW5kaWYKIAogICAgIHZvaWQgZGV0YWNoKCk7
CkBAIC04NywxMiArODcsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcHVyZ2VHTFJlc291cmNlcygp
OwogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpOwogCi0gICAgdm9pZCBkZWxldGVMYXllcihXZWJM
YXllcklEKTsKLSAgICB2b2lkIHNldFJvb3RMYXllcklEKFdlYkxheWVySUQpOwotICAgIHZvaWQg
c2V0TGF5ZXJDaGlsZHJlbihXZWJMYXllcklELCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4mKTsK
LSAgICB2b2lkIHNldExheWVyU3RhdGUoV2ViTGF5ZXJJRCwgY29uc3QgV2ViTGF5ZXJJbmZvJik7
CisgICAgdm9pZCBkZWxldGVMYXllcihDb29yZGluYXRlZExheWVySUQpOworICAgIHZvaWQgc2V0
Um9vdExheWVySUQoQ29vcmRpbmF0ZWRMYXllcklEKTsKKyAgICB2b2lkIHNldExheWVyQ2hpbGRy
ZW4oQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRMYXllcklEPiYp
OworICAgIHZvaWQgc2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQsIGNvbnN0IENvb3Jk
aW5hdGVkTGF5ZXJJbmZvJik7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIHZvaWQgc2V0
TGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMm
KTsKKyAgICB2b2lkIHNldExheWVyRmlsdGVycyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdl
YkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKICAgICB2b2lkIGluamVjdENhY2hlZEN1c3RvbUZpbHRlclByb2dyYW1zKGNvbnN0IFdlYkNv
cmU6OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpIGNvbnN0OwpAQCAtMTAwLDE1ICsxMDAsMTUg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQ3VzdG9tRmlsdGVyUHJvZ3JhbShpbnQgaWQpOwog
I2VuZGlmCiAKLSAgICB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBmbG9hdCBzY2Fs
ZSk7Ci0gICAgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVySUQsIGludCk7Ci0gICAgdm9pZCB1cGRh
dGVUaWxlKFdlYkxheWVySUQsIGludCwgY29uc3QgVGlsZVVwZGF0ZSYpOworICAgIHZvaWQgY3Jl
YXRlVGlsZShDb29yZGluYXRlZExheWVySUQsIGludCwgZmxvYXQgc2NhbGUpOworICAgIHZvaWQg
cmVtb3ZlVGlsZShDb29yZGluYXRlZExheWVySUQsIGludCk7CisgICAgdm9pZCB1cGRhdGVUaWxl
KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50LCBjb25zdCBUaWxlVXBkYXRlJik7CiAgICAgdm9pZCBm
bHVzaExheWVyQ2hhbmdlcygpOwogICAgIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nSUQpOwogICAgIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nSUQsIFBhc3NSZWZQdHI8U2hhcmVhYmxlU3VyZmFjZT4pOwogICAgIHZv
aWQgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsK
ICAgICB2b2lkIHJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsK
LSAgICB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyQW5pbWF0aW9ucyYpOworICAgIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKENv
b3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllckFuaW1hdGlvbnMm
KTsKICAgICB2b2lkIHNldEFuaW1hdGlvbnNMb2NrZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRCYWNr
Z3JvdW5kQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKICAgICB2b2lkIHNldERyYXdzQmFj
a2dyb3VuZChib29sIGVuYWJsZSkgeyBtX3NldERyYXdzQmFja2dyb3VuZCA9IGVuYWJsZTsgfQpA
QCAtMTE4LDkgKzExOCw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIFBhc3NP
d25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlTGF5ZXIoV2ViTGF5ZXJJRCk7Cisg
ICAgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBjcmVhdGVMYXllcihDb29yZGlu
YXRlZExheWVySUQpOwogCi0gICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXJCeUlEKFdl
YkxheWVySUQgaWQpIHsgcmV0dXJuIChpZCA9PSBJbnZhbGlkV2ViTGF5ZXJJRCkgPyAwIDogbV9s
YXllcnMuZ2V0KGlkKTsgfQorICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyQnlJRChD
b29yZGluYXRlZExheWVySUQgaWQpIHsgcmV0dXJuIChpZCA9PSBJbnZhbGlkQ29vcmRpbmF0ZWRM
YXllcklEKSA/IDAgOiBtX2xheWVycy5nZXQoaWQpOyB9CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciogcm9vdExheWVyKCkgeyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KIAogICAgIHZv
aWQgc3luY1JlbW90ZUNvbnRlbnQoKTsKQEAgLTE0Miw3ICsxNDIsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgYXNzaWduSW1hZ2VCYWNraW5nVG9MYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCByZW1vdmVSZWxlYXNlZEltYWdl
QmFja2luZ3NJZk5lZWRlZCgpOwogICAgIHZvaWQgZW5zdXJlUm9vdExheWVyKCk7Ci0gICAgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciogZW5zdXJlTGF5ZXIoV2ViTGF5ZXJJRCk7CisgICAgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciogZW5zdXJlTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEKTsKICAgICB2
b2lkIGNvbW1pdFBlbmRpbmdCYWNraW5nU3RvcmVPcGVyYXRpb25zKCk7CiAKICAgICBDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZSogZ2V0QmFja2luZ1N0b3JlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KTsKQEAgLTE3MCw3ICsxNzAsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8UmVmUHRyPENvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlPiA+IG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVyczsK
IAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXll
cklELCBSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+ID4g
U3VyZmFjZUJhY2tpbmdTdG9yZU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8Q29vcmRpbmF0ZWRM
YXllcklELCBSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+
ID4gU3VyZmFjZUJhY2tpbmdTdG9yZU1hcDsKICAgICBTdXJmYWNlQmFja2luZ1N0b3JlTWFwIG1f
c3VyZmFjZUJhY2tpbmdTdG9yZXM7CiAjZW5kaWYKIApAQCAtMTgwLDExICsxODAsMTEgQEAgcHJp
dmF0ZToKIAogICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsK
IAotICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXllcklELCBPd25QdHI8V2ViQ29yZTo6R3JhcGhp
Y3NMYXllcj4gPiBMYXllck1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8Q29vcmRpbmF0ZWRMYXll
cklELCBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gPiBMYXllck1hcDsKICAgICBMYXll
ck1hcCBtX2xheWVyczsKLSAgICB0eXBlZGVmIEhhc2hNYXA8V2ViTGF5ZXJJRCwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllcio+IExheWVyUmF3UHRyTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxDb29y
ZGluYXRlZExheWVySUQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqPiBMYXllclJhd1B0ck1hcDsK
ICAgICBMYXllclJhd1B0ck1hcCBtX2ZpeGVkTGF5ZXJzOwotICAgIFdlYkxheWVySUQgbV9yb290
TGF5ZXJJRDsKKyAgICBDb29yZGluYXRlZExheWVySUQgbV9yb290TGF5ZXJJRDsKICAgICBXZWJD
b3JlOjpJbnRQb2ludCBtX3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKICAgICBXZWJD
b3JlOjpJbnRQb2ludCBtX3BlbmRpbmdSZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb247CiAg
ICAgYm9vbCBtX2FuaW1hdGlvbnNMb2NrZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaAppbmRleCBjNGVkMDY4YjQxMjRjZjJmZDhlZmY3MDcxMTUzMDFkOWI2
OWRjNjg0Li5kNjc5OWRkNWJlOTBiYmEzMmMxM2UxNzk1YWU1MTQzZjAxZjllYzA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTUwLDggKzUwLDYg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBMYXllclRyZWVDb250ZXh0OwogY2xhc3MgTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTsKIGNsYXNzIFVwZGF0ZUluZm87Ci1jbGFzcyBXZWJMYXll
clRyZWVJbmZvOwotY2xhc3MgV2ViTGF5ZXJVcGRhdGVJbmZvOwogY2xhc3MgV2ViUGFnZVByb3h5
OwogCiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDM5OTAxMjcxYjg0
NDZiOTQyNTlhMDExZmJhNzFiZmIzNDk1NzQ4YTQuLjRlNDM0YWQ0NWQ3N2RjNWVlZDBmZDcyYzkw
MzE5YjUzMWVhMTk5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtNDIsMTMgKzQyLDEzIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhhc2hNYXA8
V2ViTGF5ZXJJRCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4mIGxheWVyQnlJRE1hcCgpCitz
dGF0aWMgSGFzaE1hcDxDb29yZGluYXRlZExheWVySUQsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cio+JiBsYXllckJ5SURNYXAoKQogewotICAgIHN0YXRpYyBIYXNoTWFwPFdlYkxheWVySUQsIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcio+IGdsb2JhbE1hcDsKKyAgICBzdGF0aWMgSGFzaE1hcDxD
b29yZGluYXRlZExheWVySUQsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+IGdsb2JhbE1hcDsK
ICAgICByZXR1cm4gZ2xvYmFsTWFwOwogfQogCi1zdGF0aWMgV2ViTGF5ZXJJRCB0b1dlYkxheWVy
SUQoR3JhcGhpY3NMYXllciogbGF5ZXIpCitzdGF0aWMgQ29vcmRpbmF0ZWRMYXllcklEIHRvQ29v
cmRpbmF0ZWRMYXllcklEKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewogICAgIHJldHVybiBsYXll
ciA/IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+aWQoKSA6IDA7CiB9CkBAIC0x
MjQsNyArMTI0LDcgQEAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogICAgICwgbV9jYW52YXNQbGF0
Zm9ybUxheWVyKDApCiAgICAgLCBtX2FuaW1hdGlvblN0YXJ0ZWRUaW1lcih0aGlzLCAmQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjphbmltYXRpb25TdGFydGVkVGltZXJGaXJlZCkKIHsKLSAgICBz
dGF0aWMgV2ViTGF5ZXJJRCBuZXh0TGF5ZXJJRCA9IDE7CisgICAgc3RhdGljIENvb3JkaW5hdGVk
TGF5ZXJJRCBuZXh0TGF5ZXJJRCA9IDE7CiAgICAgbV9pZCA9IG5leHRMYXllcklEKys7CiAgICAg
bGF5ZXJCeUlETWFwKCkuYWRkKGlkKCksIHRoaXMpOwogfQpAQCAtNDMxLDcgKzQzMSw3IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KIAotV2ViTGF5
ZXJJRCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmlkKCkgY29uc3QKK0Nvb3JkaW5hdGVkTGF5
ZXJJRCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmlkKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9pZDsKIH0KQEAgLTQ2Miw5ICs0NjIsOSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c3luY0NoaWxkcmVuKCkKICAgICBpZiAoIW1fc2hvdWxkU3luY0NoaWxkcmVuKQogICAgICAg
ICByZXR1cm47CiAgICAgbV9zaG91bGRTeW5jQ2hpbGRyZW4gPSBmYWxzZTsKLSAgICBWZWN0b3I8
V2ViTGF5ZXJJRD4gY2hpbGRJRHM7CisgICAgVmVjdG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4gY2hp
bGRJRHM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytp
KQotICAgICAgICBjaGlsZElEcy5hcHBlbmQodG9XZWJMYXllcklEKGNoaWxkcmVuKClbaV0pKTsK
KyAgICAgICAgY2hpbGRJRHMuYXBwZW5kKHRvQ29vcmRpbmF0ZWRMYXllcklEKGNoaWxkcmVuKClb
aV0pKTsKIAogICAgIG1fY29vcmRpbmF0b3ItPnN5bmNMYXllckNoaWxkcmVuKG1faWQsIGNoaWxk
SURzKTsKIH0KQEAgLTUyMSwxMiArNTIxLDEyIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXllckluZm8uY29udGVudHNSZWN0ID0gY29u
dGVudHNSZWN0KCk7CiAgICAgbV9sYXllckluZm8uZHJhd3NDb250ZW50ID0gZHJhd3NDb250ZW50
KCk7CiAgICAgbV9sYXllckluZm8uY29udGVudHNWaXNpYmxlID0gY29udGVudHNBcmVWaXNpYmxl
KCk7Ci0gICAgbV9sYXllckluZm8ubWFzayA9IHRvV2ViTGF5ZXJJRChtYXNrTGF5ZXIoKSk7Cisg
ICAgbV9sYXllckluZm8ubWFzayA9IHRvQ29vcmRpbmF0ZWRMYXllcklEKG1hc2tMYXllcigpKTsK
ICAgICBtX2xheWVySW5mby5tYXNrc1RvQm91bmRzID0gbWFza3NUb0JvdW5kcygpOwogICAgIG1f
bGF5ZXJJbmZvLm9wYWNpdHkgPSBvcGFjaXR5KCk7CiAgICAgbV9sYXllckluZm8ucG9zID0gcG9z
aXRpb24oKTsKICAgICBtX2xheWVySW5mby5wcmVzZXJ2ZXMzRCA9IHByZXNlcnZlczNEKCk7Ci0g
ICAgbV9sYXllckluZm8ucmVwbGljYSA9IHRvV2ViTGF5ZXJJRChyZXBsaWNhTGF5ZXIoKSk7Cisg
ICAgbV9sYXllckluZm8ucmVwbGljYSA9IHRvQ29vcmRpbmF0ZWRMYXllcklEKHJlcGxpY2FMYXll
cigpKTsKICAgICBtX2xheWVySW5mby5zaXplID0gc2l6ZSgpOwogICAgIG1fbGF5ZXJJbmZvLnRy
YW5zZm9ybSA9IHRyYW5zZm9ybSgpOwogICAgIG1fY29vcmRpbmF0b3ItPnN5bmNMYXllclN0YXRl
KG1faWQsIG1fbGF5ZXJJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggODIwZGI5YjNjYjc4ZTA3MzJhNDZjNTM2
MDU2ZDhkYzFkMDU3NGU4MS4uMjRlYTBjZjRmOGMxNGMzNzJiNzU3MTY0ZDM1YTFiYTk0ZTE5ZGIz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgKQEAgLTIyLDYgKzIyLDcgQEAKICNkZWZpbmUgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyX2gKIAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgiCisjaW5jbHVk
ZSAiQ29vcmRpbmF0ZWRMYXllckluZm8uaCIKICNpbmNsdWRlICJDb29yZGluYXRlZFRpbGUuaCIK
ICNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCkBA
IC0zNCw3ICszNSw2IEBACiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKICNp
bmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIK
LSNpbmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgog
I2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NTdXJm
YWNlVG9rZW4uaD4KQEAgLTUzLDI1ICs1MywyNSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNz
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgLy8gQ29vcmRp
bmF0ZWRUaWxlQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwg
aW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQsIGludCB0
aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlE
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklELCBp
bnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklE
LCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRMYXll
cklELCBpbnQgdGlsZUlEKSA9IDA7CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgdmlz
aWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJUcmVl
VGlsZVVwZGF0ZXNBbGxvd2VkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxD
b29yZGluYXRlZEltYWdlQmFja2luZz4gY3JlYXRlSW1hZ2VCYWNraW5nSWZOZWVkZWQoV2ViQ29y
ZTo6SW1hZ2UqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN5bmNMYXllclN0YXRlKFdlYkxheWVy
SUQsIGNvbnN0IFdlYkxheWVySW5mbyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVy
Q2hpbGRyZW4oV2ViTGF5ZXJJRCwgY29uc3QgVmVjdG9yPFdlYkxheWVySUQ+JikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQsIGNvbnN0IENv
b3JkaW5hdGVkTGF5ZXJJbmZvJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJDaGls
ZHJlbihDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVySUQ+
JikgPSAwOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0xh
eWVyRmlsdGVycyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVkTGF5ZXJJ
RCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpID0gMDsKICNlbmRpZgogI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVDYW52YXMoV2ViTGF5
ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXllciopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3lu
Y0NhbnZhcyhXZWJMYXllcklELCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBkZXN0cm95Q2FudmFzKFdlYkxheWVySUQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXll
ciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQs
IFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lD
YW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKSA9IDA7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9p
ZCBzZXRMYXllckFuaW1hdGlvbnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllckFuaW1hdGlvbnMmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldExheWVyQW5pbWF0aW9u
cyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRp
b25zJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVyKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5
ZXJzKCkgPSAwOwpAQCAtMTM0LDcgKzEzNCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Um9v
dExheWVyKGJvb2wpOwogCi0gICAgV2ViS2l0OjpXZWJMYXllcklEIGlkKCkgY29uc3Q7CisgICAg
V2ViS2l0OjpDb29yZGluYXRlZExheWVySUQgaWQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Rml4
ZWRUb1ZpZXdwb3J0KGJvb2wgaXNGaXhlZCkgeyBtX2ZpeGVkVG9WaWV3cG9ydCA9IGlzRml4ZWQ7
IH0KIApAQCAtMjA1LDggKzIwNSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFuaW1hdGlvblN0
YXJ0ZWRUaW1lckZpcmVkKFRpbWVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4qKTsKIAotICAg
IFdlYktpdDo6V2ViTGF5ZXJJRCBtX2lkOwotICAgIFdlYktpdDo6V2ViTGF5ZXJJbmZvIG1fbGF5
ZXJJbmZvOworICAgIFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllcklEIG1faWQ7CisgICAgV2ViS2l0
OjpDb29yZGluYXRlZExheWVySW5mbyBtX2xheWVySW5mbzsKICAgICBHcmFwaGljc0xheWVyVHJh
bnNmb3JtIG1fbGF5ZXJUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9jYWNo
ZWRJbnZlcnNlVHJhbnNmb3JtOwogICAgIGJvb2wgbV9pblVwZGF0ZU1vZGUgOiAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKaW5k
ZXggNzYyNjZhNGI0MTQwYjk0MzdiMTE3MjUzNzU3MGE3ZjIwMDc5MTBkZC4uNjVlODI0NjcyYjkz
OWY4YWM4NWNmMGFlNDY1ZGI4MmMzNzM5MDY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oCkBAIC0yOCw5ICsyOCw5IEBACiAj
ZGVmaW5lIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nX2gKIAogI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDUykKKyNpbmNsdWRlICJDb29yZGluYXRlZExheWVySW5mby5oIgogI2luY2x1ZGUgIklt
YWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlU3VyZmFjZS5oIgotI2luY2x1ZGUgIldlYkxheWVy
VHJlZUluZm8uaCIKICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKaW5kZXggMDA0OTQxNWMwZWZi
MWFiNDhkOTZmYTc2OTEwNzIxYTQ4NjNmY2IxNi4uNjU3MWJiNjY2ZDE3ZGViMGU4YzkyY2Y4MDkw
MmZjNDViYTRhNDQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtMSw0ICsxLDQgQEAKLSAgICAvKgorLyoKICAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKQEAgLTk5LDE0ICs5OSwxNCBAQCBMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3IoV2ViUGFnZSogd2ViUGFnZSkKIHsKICAgICAvLyBDcmVhdGUgYSByb290IGxh
eWVyLgogICAgIG1fcm9vdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMsIHRoaXMp
OwotICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogd2ViUm9vdExheWVyID0gdG9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpOwotICAgIHdlYlJvb3RMYXllci0+
c2V0Um9vdExheWVyKHRydWUpOworICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogY29vcmRp
bmF0ZWRSb290TGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jvb3RMYXllci5n
ZXQoKSk7CisgICAgY29vcmRpbmF0ZWRSb290TGF5ZXItPnNldFJvb3RMYXllcih0cnVlKTsKICNp
Zm5kZWYgTkRFQlVHCiAgICAgbV9yb290TGF5ZXItPnNldE5hbWUoIkxheWVyVHJlZUNvb3JkaW5h
dG9yIHJvb3QgbGF5ZXIiKTsKICNlbmRpZgogICAgIG1fcm9vdExheWVyLT5zZXREcmF3c0NvbnRl
bnQoZmFsc2UpOwogICAgIG1fcm9vdExheWVyLT5zZXRTaXplKG1fd2ViUGFnZS0+c2l6ZSgpKTsK
LSAgICBtX2xheWVyVHJlZUNvbnRleHQud2ViTGF5ZXJJRCA9IHRvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKHdlYlJvb3RMYXllciktPmlkKCk7CisgICAgbV9sYXllclRyZWVDb250ZXh0LmNvb3Jk
aW5hdGVkTGF5ZXJJRCA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNvb3JkaW5hdGVkUm9v
dExheWVyKS0+aWQoKTsKIAogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllciA9IEdyYXBo
aWNzTGF5ZXI6OmNyZWF0ZSh0aGlzLCB0aGlzKTsKICNpZm5kZWYgTkRFQlVHCkBAIC0zMDUsNyAr
MzA1LDcgQEAgYm9vbCBMYXllclRyZWVDb29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFu
Z2VzKCkKICAgICByZXR1cm4gZGlkU3luYzsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRv
cjo6c3luY0xheWVyU3RhdGUoV2ViTGF5ZXJJRCBpZCwgY29uc3QgV2ViTGF5ZXJJbmZvJiBpbmZv
KQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVyU3RhdGUoQ29vcmRpbmF0ZWRM
YXllcklEIGlkLCBjb25zdCBDb29yZGluYXRlZExheWVySW5mbyYgaW5mbykKIHsKICAgICBpZiAo
bV9zaG91bGRTZW5kU2Nyb2xsUG9zaXRpb25VcGRhdGUpIHsKICAgICAgICAgbV93ZWJQYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpEaWRDaGFuZ2VTY3JvbGxQ
b3NpdGlvbihtX3Zpc2libGVDb250ZW50c1JlY3QubG9jYXRpb24oKSkpOwpAQCAtMzE2LDE0ICsz
MTYsMTQgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVyU3RhdGUoV2ViTGF5
ZXJJRCBpZCwgY29uc3QgV2ViTGF5ZXJJbmZvJiBpbmYKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlNldENvbXBvc2l0aW5nTGF5ZXJTdGF0
ZShpZCwgaW5mbykpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJD
aGlsZHJlbihXZWJMYXllcklEIGlkLCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4mIGNoaWxkcmVu
KQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVyQ2hpbGRyZW4oQ29vcmRpbmF0
ZWRMYXllcklEIGlkLCBjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRMYXllcklEPiYgY2hpbGRyZW4p
CiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogICAgIG1fd2ViUGFnZS0+c2VuZChN
ZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6U2V0Q29tcG9zaXRpbmdMYXllckNo
aWxkcmVuKGlkLCBjaGlsZHJlbikpOwogfQogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi12
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVDYW52YXMoV2ViTGF5ZXJJRCBpZCwgUGxh
dGZvcm1MYXllciogY2FudmFzUGxhdGZvcm1MYXllcikKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0
b3I6OmNyZWF0ZUNhbnZhcyhDb29yZGluYXRlZExheWVySUQgaWQsIFBsYXRmb3JtTGF5ZXIqIGNh
bnZhc1BsYXRmb3JtTGF5ZXIpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogICAg
IEdyYXBoaWNzU3VyZmFjZVRva2VuIHRva2VuID0gY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhp
Y3NTdXJmYWNlVG9rZW4oKTsKQEAgLTMzMSwxNCArMzMxLDE0IEBAIHZvaWQgTGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OmNyZWF0ZUNhbnZhcyhXZWJMYXllcklEIGlkLCBQbGF0Zm9ybUxheWVyKiBjYW52
YXNQbGF0CiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpDcmVhdGVDYW52YXMoaWQsIGNhbnZhc1NpemUsIHRva2VuKSk7CiB9CiAKLXZvaWQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNDYW52YXMoV2ViTGF5ZXJJRCBpZCwgUGxhdGZvcm1M
YXllciogY2FudmFzUGxhdGZvcm1MYXllcikKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5
bmNDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBQbGF0Zm9ybUxheWVyKiBjYW52YXNQbGF0
Zm9ybUxheWVyKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKICAgICB1aW50MzJf
dCBmcm9udEJ1ZmZlciA9IGNhbnZhc1BsYXRmb3JtTGF5ZXItPmNvcHlUb0dyYXBoaWNzU3VyZmFj
ZSgpOwogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eTo6U3luY0NhbnZhcyhpZCwgZnJvbnRCdWZmZXIpKTsKIH0KIAotdm9pZCBMYXllclRyZWVD
b29yZGluYXRvcjo6ZGVzdHJveUNhbnZhcyhXZWJMYXllcklEIGlkKQordm9pZCBMYXllclRyZWVD
b29yZGluYXRvcjo6ZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVySUQgaWQpCiB7CiAgICAg
aWYgKG1faXNQdXJnaW5nKQogICAgICAgICByZXR1cm47CkBAIC0zNDksNyArMzQ5LDcgQEAgdm9p
ZCBMYXllclRyZWVDb29yZGluYXRvcjo6ZGVzdHJveUNhbnZhcyhXZWJMYXllcklEIGlkKQogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9y
OjpzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMm
IGZpbHRlcnMpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJGaWx0ZXJzKENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsK
ICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQpA
QCAtNjM4LDE5ICs2MzgsMTkgQEAgYm9vbCBMYXllclRyZWVIb3N0OjpzdXBwb3J0c0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmcoKQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIExheWVyVHJlZUNv
b3JkaW5hdG9yOjpjcmVhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29u
c3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHRpbGVSZWN0KQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVGlsZShDb29yZGlu
YXRlZExheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8m
IHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRpbGVSZWN0KQogewogICAgIG1f
c2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6Okxh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0ZVRpbGVGb3JMYXllcihsYXllcklELCB0aWxl
SUQsIHRpbGVSZWN0LCB1cGRhdGVJbmZvKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0
b3I6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJm
YWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJl
Y3QpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjp1cGRhdGVUaWxlKENvb3JkaW5hdGVkTGF5
ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRl
SW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGlsZVJlY3QpCiB7CiAgICAgbV9zaG91bGRT
eW5jRnJhbWUgPSB0cnVlOwogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eTo6VXBkYXRlVGlsZUZvckxheWVyKGxheWVySUQsIHRpbGVJRCwgdGls
ZVJlY3QsIHVwZGF0ZUluZm8pKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVt
b3ZlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQpCit2b2lkIExheWVyVHJlZUNv
b3JkaW5hdG9yOjpyZW1vdmVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCBpbnQgdGls
ZUlEKQogewogICAgIGlmIChtX2lzUHVyZ2luZykKICAgICAgICAgcmV0dXJuOwpAQCAtNjc2LDcg
KzY3Niw3IEBAIFdlYkNvcmU6OkludFJlY3QgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnZpc2libGVD
b250ZW50c1JlY3QoKSBjb25zdAogfQogCiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNl
dExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklEIGxheWVySUQsIGNvbnN0IEdyYXBoaWNzTGF5ZXJB
bmltYXRpb25zJiBhbmltYXRpb25zKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c2V0TGF5
ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCBjb25zdCBHcmFwaGljc0xh
eWVyQW5pbWF0aW9ucyYgYW5pbWF0aW9ucykKIHsKICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRy
dWU7CiAgICAgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMgYWN0aXZlQW5pbWF0aW9ucyA9IGFuaW1h
dGlvbnMuZ2V0QWN0aXZlQW5pbWF0aW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggZjA0YjUwODIxZmRjOGYxYTJmYTMyNzkz
NTA3YWY2MDY0YWMyYzc1OS4uODlkYzBjY2M4Nzg4Mzg2ZDM5NjlkYTQxOTAwNDEwOWZkMzU4MDAw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5oCkBAIC03OCw5ICs3OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2Nh
bGVGYWN0b3JEaWRDaGFuZ2UoKSB7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmc+IGNyZWF0ZUltYWdlQmFja2luZ0lmTmVlZGVkKFdlYkNvcmU6OkltYWdl
KikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklELCBp
bnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlE
LCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlEKTsKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShDb29yZGluYXRlZExheWVySUQsIGludCB0aWxlSUQsIGNv
bnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29u
c3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQgdGlsZUlEKTsKICAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3QgdmlzaWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCByZW5kZXJOZXh0RnJhbWUoKTsKICAgICB2aXJ0dWFsIHZvaWQgcHVy
Z2VCYWNraW5nU3RvcmVzKCk7CkBAIC04OSwxNiArODksMTYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXll
ckZhY3RvcnkoKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJTdGF0ZShX
ZWJMYXllcklELCBjb25zdCBXZWJMYXllckluZm8mKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0xh
eWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCwgY29uc3QgVmVjdG9yPFdlYkxheWVySUQ+Jik7Ci0gICAg
dmlydHVhbCB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklELCBjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpOworICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJT
dGF0ZShDb29yZGluYXRlZExheWVySUQsIGNvbnN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvJik7Cisg
ICAgdmlydHVhbCB2b2lkIHN5bmNMYXllckNoaWxkcmVuKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29u
c3QgVmVjdG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5
ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllckFuaW1hdGlvbnMmKTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgdmlydHVhbCB2
b2lkIHN5bmNMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3Bl
cmF0aW9ucyYpOworICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVk
TGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogI2VuZGlmCiAjaWYg
VVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZUNhbnZhcyhXZWJM
YXllcklELCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHN5bmNDYW52YXMoV2ViTGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXllciopIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95Q2FudmFzKFdlYkxheWVySUQpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBXZWJD
b3JlOjpQbGF0Zm9ybUxheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN5bmNDYW52
YXMoQ29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKSBPVkVS
UklERTsKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5ZXJz
KCk7CkBAIC0xNzEsNyArMTcxLDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8V2ViQ29yZTo6R3Jh
cGhpY3NMYXllcj4gbV9wYWdlT3ZlcmxheUxheWVyOwogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqPiBtX3JlZ2lzdGVyZWRMYXllcnM7Ci0gICAgVmVjdG9y
PFdlYkxheWVySUQ+IG1fZGV0YWNoZWRMYXllcnM7CisgICAgVmVjdG9yPENvb3JkaW5hdGVkTGF5
ZXJJRD4gbV9kZXRhY2hlZExheWVyczsKICAgICB0eXBlZGVmIEhhc2hNYXA8Q29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCwgUmVmUHRyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiA+IEltYWdlQmFj
a2luZ01hcDsKICAgICBJbWFnZUJhY2tpbmdNYXAgbV9pbWFnZUJhY2tpbmdzOwogICAgIFZlY3Rv
cjxPd25QdHI8VXBkYXRlQXRsYXM+ID4gbV91cGRhdGVBdGxhc2VzOwo=
</data>
<flag name="review"
          id="194238"
          type_id="1"
          status="+"
          setter="jaepark"
    />
    <flag name="commit-queue"
          id="194239"
          type_id="3"
          status="-"
          setter="jaepark"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177914</attachid>
            <date>2012-12-05 20:10:17 -0800</date>
            <delta_ts>2012-12-06 16:53:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103983-20121205200832.patch</filename>
            <type>text/plain</type>
            <size>62017</size>
            <attacher name="Jae Hyun Park">jaepark</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmEwN2JmZjIyZDZmNjcz
ZGNhMmVjOTQzNzUxMjQ3ZDNmYzEyMmUyZS4uODczZWViODliOTc0NjIxMjIyOGNlNjdiNmQyYmVj
YmVkZGMzODgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNiBAQAorMjAxMi0xMi0wNSAgSmFl
IEh5dW4gUGFyayAgPGphZS5wYXJrQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW5hbWUgV2ViTGF5ZXJUcmVlSW5mbyB0byBDb29yZGluYXRlZExheWVy
SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTm9hbSBSb3NlbnRoYWwuCisKKyAgICAgICAgVGhp
cyBwYXRjaCByZWZhY3RvcnMgV2ViTGF5ZXJUcmVlSW5mbyBpbiAyIGFyZWFzLgorCisgICAgICAg
IDEuIFdlYkxheWVyVHJlZUluZm8gaXMgb25seSB1c2VkIGJ5IENvb3JkaW5hdGVkIEdyYXBoaWNz
LiBTbywgdGhlIGZpbGUKKyAgICAgICAgc2hvdWxkIGJlIGxvY2F0ZWQgaW4gV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcyBpbnN0ZWFkIG9mCisgICAgICAgIFdlYktpdDIvU2hhcmVk
LgorCisgICAgICAgIDIuIFRoZSBuYW1lIG9mIFdlYkxheWVyVHJlZUluZm8gaXMgaW5jb3JyZWN0
LiBDdXJyZW50bHksCisgICAgICAgIFdlYkxheWVyVHJlZUluZm8gb25seSBoYXMgV2ViTGF5ZXJJ
bmZvIHN0cnVjdC4gQWxzbywgaXQgaXMgaGFyZCB0byBrbm93CisgICAgICAgIHdoYXQgV2ViTGF5
ZXIgaXMgc2luY2Ugd2UgZG9uJ3QgdXNlIHRoYXQgbmFtZSBhbnltb3JlLiBNb3JlIGFwcHJvcHJp
YXRlCisgICAgICAgIG5hbWUgZm9yIFdlYkxheWVySW5mbyB3b3VsZCBiZSBDb29yZGluYXRlZExh
eWVySW5mby4KKworICAgICAgICBObyBuZXcgdGVzdCwgYmVjYXVzZSBubyBiZWhhdmlvcmFsIGNo
YW5nZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAq
IFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJbmZvOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5m
by5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8u
aC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJ
bmZvOjpDb29yZGluYXRlZExheWVySW5mbyk6CisgICAgICAgIChDb29yZGluYXRlZExheWVySW5m
byk6CisgICAgICAgICogU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVy
VHJlZUNvbnRleHQpOgorICAgICAgICAqIFNoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQp
OgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb250ZXh0OjplbmNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVDb250ZXh0OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVDb250ZXh0Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgICogU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQpOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVDb250ZXh0OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVD
b250ZXh0OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb250ZXh0Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eTo6dXBkYXRlVGlsZUZvckxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6cmVtb3ZlVGlsZUZvckxheWVyKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6ZGVsZXRlQ29tcG9zaXRpbmdMYXllcik6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldFJvb3RDb21w
b3NpdGluZ0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eTo6c2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllckNoaWxkcmVuKToKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllckZp
bHRlcnMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRM
YXllckFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclBy
b3h5OjpjcmVhdGVDYW52YXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpzeW5jQ2FudmFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eTo6ZGVzdHJveUNhbnZhcyk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVu
ZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6TGF5ZXJUcmVl
UmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlTGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlQ2FudmFzKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNDYW52YXMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6ZGVzdHJveUNhbnZhcyk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckNoaWxkcmVuKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyRmlsdGVycyk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJUcmVlUmVuZGVyZXI6OmRlbGV0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlUmVuZGVyZXI6OmVuc3VyZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVu
ZGVyZXI6OnNldFJvb3RMYXllcklEKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVy
ZXI6OmNyZWF0ZVRpbGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cmVt
b3ZlVGlsZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxl
KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZVJvb3RMYXllcik6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpwdXJnZUdMUmVzb3VyY2VzKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyQW5pbWF0aW9ucyk6
CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVy
ZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpsYXllckJ5SUQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsYXllckJ5SURNYXApOgorICAgICAg
ICAoV2ViQ29yZTo6dG9Db29yZGluYXRlZExheWVySUQpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjppZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6
CisgICAgICAgIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRv
cjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29y
ZGluYXRvcjo6c3luY0xheWVyU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29y
ZGluYXRvcjo6c3luY0xheWVyQ2hpbGRyZW4pOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVD
b29yZGluYXRvcjo6Y3JlYXRlQ2FudmFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OnN5bmNDYW52YXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGlu
YXRvcjo6ZGVzdHJveUNhbnZhcyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5h
dG9yOjpzeW5jTGF5ZXJGaWx0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRp
bmF0b3I6OmNyZWF0ZVRpbGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRv
cjo6dXBkYXRlVGlsZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpy
ZW1vdmVUaWxlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNldExh
eWVyQW5pbWF0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3Jk
aW5hdG9yKToKKwogMjAxMi0xMi0wNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVt
ZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gRVdLMlVuaXRUZXN0QmFzZS5ld2tf
ZmF2aWNvbl9kYXRhYmFzZV9hc3luY19pY29uX2dldCBpcyBjcmFzaGluZyB3aXRoIG5ldyBFd2tf
Q29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCAwMDMzOTZhNjU3ZmQ0NWI4YmUyYzgyNTBl
MDkyY2UyZDNmNmZkMjIwLi4wMjdhNzQzMDc5ZTgzMmVjZDkyYjAxZjg3ZGI1MDE0MzBkYTdjOTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMTc1LDcgKzE3NSw2IEBAIFNFVChXZWJLaXQyX1NP
VVJDRVMKICAgICBTaGFyZWQvV2ViSW1hZ2UuY3BwCiAgICAgU2hhcmVkL1dlYkludGVudFNlcnZp
Y2VJbmZvLmNwcAogICAgIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAotICAgIFNoYXJlZC9X
ZWJMYXllclRyZWVJbmZvLmNwcAogICAgIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAogICAg
IFNoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAogICAgIFNoYXJlZC9XZWJOZXR3b3JrSW5mby5jcHAK
QEAgLTIxOCw2ICsyMTcsNyBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL0FQSS9j
L1dLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcAogCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAorICAgIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmNwcAogICAgIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5jcHAKIAogICAg
IFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3Jp
cHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKaW5kZXggMGM5Yjk0MTE2N2JiMGUwYTBkY2JkNjI4ZDBj
MTNlZmExYmYxMmM1NS4uNTU5NDc4Y2E5Y2QzZTM3YWUwNTE0NWVjMjM5Njk2OTFkNGQ1YmVhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5Cisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMzk2LDEx
ICszOTYsMTAgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3Jl
OjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQnOiBbJzxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1Zp
ZXdwb3J0QXJndW1lbnRzLmg+J10sCisgICAgICAgICdXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJ
RCc6IFsnIkNvb3JkaW5hdGVkTGF5ZXJJbmZvLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkluamVj
dGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyJzogW10sCiAgICAgICAgICdXZWJLaXQ6OldlYkNv
bnRleHRVc2VyTWVzc2FnZUVuY29kZXInOiBbXSwKICAgICAgICAgJ1dlYktpdDo6V2ViR2VzdHVy
ZUV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKLSAgICAgICAgJ1dlYktpdDo6V2ViTGF5ZXJJRCc6
IFsnIldlYkxheWVyVHJlZUluZm8uaCInXSwKLSAgICAgICAgJ1dlYktpdDo6V2ViTGF5ZXJJbmZv
JzogWyciV2ViTGF5ZXJUcmVlSW5mby5oIiddLAogICAgICAgICAnV2ViS2l0OjpXZWJLZXlib2Fy
ZEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKICAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVu
dCc6IFsnIldlYkV2ZW50LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBb
JyJXZWJFdmVudC5oIiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNkODZlNjI5NzRmZTM4NTM4ZDYzNmY3MWQwNzRkMjMyODQ2YTQ1YTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVySW5mby5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKKyNpbmNsdWRlICJDb29yZGluYXRlZExheWVySW5mby5oIgorCisj
aW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNs
dWRlICJTaGFyZWRNZW1vcnkuaCIKKwordXNpbmcgbmFtZXNwYWNlIENvcmVJUEM7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit2b2lkIENvb3JkaW5hdGVkTGF5ZXJJbmZvOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIFNpbXBsZUFyZ3VtZW50
Q29kZXI8Q29vcmRpbmF0ZWRMYXllckluZm8+OjplbmNvZGUoZW5jb2RlciwgKnRoaXMpOworfQor
Citib29sIENvb3JkaW5hdGVkTGF5ZXJJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBDb29yZGluYXRlZExheWVySW5mbyYgaW5mbykKK3sKKyAgICByZXR1cm4g
U2ltcGxlQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZExheWVySW5mbz46OmRlY29kZShkZWNvZGVy
LCBpbmZvKTsKK30KK30KKyNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZExheWVySW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2M4MTZiNjg3NDY5YjliOTAw
ZGY4NzA2ZGY5MzRjNTBmODgwZDdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaApAQCAtMCww
ICsxLDgyIEBACisvKgorIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRl
ZiBDb29yZGluYXRlZExheWVySW5mb19oCisjZGVmaW5lIENvb3JkaW5hdGVkTGF5ZXJJbmZvX2gK
KworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVj
b2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3R5cGVkZWYgdWludDMyX3QgQ29vcmRpbmF0ZWRMYXll
cklEOworZW51bSB7IEludmFsaWRDb29yZGluYXRlZExheWVySUQgPSAwIH07CisKK3R5cGVkZWYg
dWludDY0X3QgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRDsKK2VudW0geyBJbnZhbGlkQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCA9IDAgfTsKKworLy8gTk9URTogQ29vcmRpbmF0ZWRMYXllcklu
Zm8gc2hvdWxkIG9ubHkgdXNlIFBPRCB0eXBlcywgYXMgdG8gbWFrZSBzZXJpYWxpemF0aW9uIGZh
c3Rlci4KK3N0cnVjdCBDb29yZGluYXRlZExheWVySW5mbyB7CisgICAgQ29vcmRpbmF0ZWRMYXll
ckluZm8oKQorICAgICAgICA6IHJlcGxpY2EoSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkKKyAg
ICAgICAgLCBtYXNrKEludmFsaWRDb29yZGluYXRlZExheWVySUQpCisgICAgICAgICwgaW1hZ2VJ
RChJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkKKyAgICAgICAgLCBvcGFjaXR5KDAp
CisgICAgICAgICwgZmxhZ3MoMCkgeyB9CisKKyAgICBDb29yZGluYXRlZExheWVySUQgcmVwbGlj
YTsKKyAgICBDb29yZGluYXRlZExheWVySUQgbWFzazsKKyAgICBDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEIGltYWdlSUQ7CisKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHBvczsKKyAgICBXZWJD
b3JlOjpGbG9hdFBvaW50M0QgYW5jaG9yUG9pbnQ7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNp
emU7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworICAgIFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkcmVuVHJhbnNmb3JtOworICAgIFdlYkNv
cmU6OkludFJlY3QgY29udGVudHNSZWN0OworICAgIGZsb2F0IG9wYWNpdHk7CisKKyAgICB1bmlv
biB7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICBib29sIGNvbnRlbnRzT3BhcXVlIDog
MTsKKyAgICAgICAgICAgIGJvb2wgZHJhd3NDb250ZW50IDogMTsKKyAgICAgICAgICAgIGJvb2wg
Y29udGVudHNWaXNpYmxlIDogMTsKKyAgICAgICAgICAgIGJvb2wgYmFja2ZhY2VWaXNpYmxlIDog
MTsKKyAgICAgICAgICAgIGJvb2wgbWFza3NUb0JvdW5kcyA6IDE7CisgICAgICAgICAgICBib29s
IHByZXNlcnZlczNEIDogMTsKKyAgICAgICAgICAgIGJvb2wgaXNSb290TGF5ZXI6IDE7CisgICAg
ICAgICAgICBib29sIGZpeGVkVG9WaWV3cG9ydCA6IDE7CisgICAgICAgIH07CisgICAgICAgIHVu
c2lnbmVkIGZsYWdzOworICAgIH07CisKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgQ29vcmRpbmF0ZWRMYXllckluZm8mKTsKK307CisKK30KKworI2VuZGlmIC8v
IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKworI2VuZGlmIC8vIENvb3JkaW5hdGVkTGF5ZXJJ
bmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IGY4ZTJm
Y2U2MWYzM2QyYWNmNzQ3ZjBlOWNjNWVlNjNlYmM3ZWZlYTkuLjNmZjdjYjRhMzViMWRjMmEyNTJk
Y2FjYWM3NGFmYTIwZmY4MTkzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9M
YXllclRyZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNv
bnRleHQuaApAQCAtNTcsMTEgKzU3LDExIEBAIHB1YmxpYzoKICNlbGlmIFBMQVRGT1JNKFdJTikK
ICAgICBIV05EIHdpbmRvdzsKICNlbGlmIFBMQVRGT1JNKFFUKQotICAgIHVpbnQzMl90IHdlYkxh
eWVySUQ7CisgICAgdWludDMyX3QgY29vcmRpbmF0ZWRMYXllcklEOwogI2VsaWYgUExBVEZPUk0o
R1RLKQogICAgIHVpbnQ2NF90IHdpbmRvd0hhbmRsZTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAg
ICB1aW50MzJfdCB3ZWJMYXllcklEOworICAgIHVpbnQzMl90IGNvb3JkaW5hdGVkTGF5ZXJJRDsK
ICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVy
VHJlZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMWIxMzFmZWFiZDM2MDUxYzk2OThjOTU2
Y2ZmMzU3MTI3OTM2YTc5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotCi0gVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCi0jaW5jbHVkZSAiV2ViTGF5ZXJUcmVlSW5mby5oIgotCi0jaW5jbHVkZSAiQXJndW1lbnRD
b2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudHMuaCIKLSNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKLQotdXNpbmcgbmFtZXNwYWNlIENvcmVJUEM7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi12
b2lkIFdlYkxheWVySW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPFdlYkxheWVySW5mbz46OmVuY29k
ZShlbmNvZGVyLCAqdGhpcyk7Ci19Ci0KLWJvb2wgV2ViTGF5ZXJJbmZvOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJMYXllckluZm8mIGluZm8pCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViTGF5ZXJJbmZvPjo6ZGVjb2RlKGRlY29kZXIs
IGluZm8pOwotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViTGF5ZXJUcmVlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUlu
Zm8uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2YzMjM3MWFmY2Y3NDFmZGY0YTU2
MDY5NGE3YjIwMTIyM2VhNGEwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oCisrKyAv
ZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotLyoKLSBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0KLSBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0KLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgotICovCi0KLSNpZm5kZWYgV2ViTGF5ZXJUcmVlSW5mb19oCi0jZGVmaW5lIFdlYkxheWVyVHJl
ZUluZm9faAotCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotCi0jaW5jbHVkZSAiQXJn
dW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCi0jaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiRmxvYXRTaXplLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NM
YXllci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdHlwZWRlZiB1aW50MzJfdCBXZWJMYXll
cklEOwotZW51bSB7IEludmFsaWRXZWJMYXllcklEID0gMCB9OwotCi10eXBlZGVmIHVpbnQ2NF90
IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQ7Ci1lbnVtIHsgSW52YWxpZENvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nSUQgPSAwIH07Ci0KLS8vIE5PVEU6IFdlYkxheWVySW5mbyBzaG91bGQgb25seSB1
c2UgUE9EIHR5cGVzLCBhcyB0byBtYWtlIHNlcmlhbGl6YXRpb24gZmFzdGVyLgotc3RydWN0IFdl
YkxheWVySW5mbyB7Ci0gICAgV2ViTGF5ZXJJbmZvKCkKLSAgICAgICAgOiByZXBsaWNhKEludmFs
aWRXZWJMYXllcklEKQotICAgICAgICAsIG1hc2soSW52YWxpZFdlYkxheWVySUQpCi0gICAgICAg
ICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkKLSAgICAgICAgLCBv
cGFjaXR5KDApCi0gICAgICAgICwgZmxhZ3MoMCkgeyB9Ci0KLSAgICBXZWJMYXllcklEIHJlcGxp
Y2E7Ci0gICAgV2ViTGF5ZXJJRCBtYXNrOwotICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQg
aW1hZ2VJRDsKLQotICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9zOwotICAgIFdlYkNvcmU6OkZs
b2F0UG9pbnQzRCBhbmNob3JQb2ludDsKLSAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZTsKLSAg
ICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07Ci0gICAgV2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXggY2hpbGRyZW5UcmFuc2Zvcm07Ci0gICAgV2ViQ29yZTo6SW50
UmVjdCBjb250ZW50c1JlY3Q7Ci0gICAgZmxvYXQgb3BhY2l0eTsKLQotICAgIHVuaW9uIHsKLSAg
ICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIGJvb2wgY29udGVudHNPcGFxdWUgOiAxOwotICAg
ICAgICAgICAgYm9vbCBkcmF3c0NvbnRlbnQgOiAxOwotICAgICAgICAgICAgYm9vbCBjb250ZW50
c1Zpc2libGUgOiAxOwotICAgICAgICAgICAgYm9vbCBiYWNrZmFjZVZpc2libGUgOiAxOwotICAg
ICAgICAgICAgYm9vbCBtYXNrc1RvQm91bmRzIDogMTsKLSAgICAgICAgICAgIGJvb2wgcHJlc2Vy
dmVzM0QgOiAxOwotICAgICAgICAgICAgYm9vbCBpc1Jvb3RMYXllcjogMTsKLSAgICAgICAgICAg
IGJvb2wgZml4ZWRUb1ZpZXdwb3J0IDogMTsKLSAgICAgICAgfTsKLSAgICAgICAgdW5zaWduZWQg
aW50IGZsYWdzOwotICAgIH07Ci0KLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiwgV2ViTGF5ZXJJbmZvJik7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KLSNlbmRpZiAvLyBXZWJMYXllclRyZWVJbmZvX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCmluZGV4
IDMyZmE5NzBhOGU0OTVmMGQzNjViYWM4MThhZGFkNGNkZmQ0OWFhNmQuLjFmYTYzNWQ4M2QxYTMz
OTJlZjdlNDAxNTVkNmRhOTkyZmRlYjY0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIExheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQoKQotICAg
IDogd2ViTGF5ZXJJRCgwKQorICAgIDogY29vcmRpbmF0ZWRMYXllcklEKDApCiB7CiB9CiAKQEAg
LTQyLDIyICs0MiwyMiBAQCBMYXllclRyZWVDb250ZXh0Ojp+TGF5ZXJUcmVlQ29udGV4dCgpCiAK
IHZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLmVuY29kZSh3ZWJMYXllcklEKTsKKyAgICBl
bmNvZGVyLmVuY29kZShjb29yZGluYXRlZExheWVySUQpOwogfQogCiBib29sIExheWVyVHJlZUNv
bnRleHQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIExheWVyVHJl
ZUNvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShjb250ZXh0
LndlYkxheWVySUQpOworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoY29udGV4dC5jb29yZGlu
YXRlZExheWVySUQpOwogfQogCiBib29sIExheWVyVHJlZUNvbnRleHQ6OmlzRW1wdHkoKSBjb25z
dAogewotICAgIHJldHVybiAhd2ViTGF5ZXJJRDsKKyAgICByZXR1cm4gIWNvb3JkaW5hdGVkTGF5
ZXJJRDsKIH0KIAogYm9vbCBvcGVyYXRvcj09KGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGEsIGNv
bnN0IExheWVyVHJlZUNvbnRleHQmIGIpCiB7Ci0gICAgcmV0dXJuIGEud2ViTGF5ZXJJRCA9PSBi
LndlYkxheWVySUQ7CisgICAgcmV0dXJuIGEuY29vcmRpbmF0ZWRMYXllcklEID09IGIuY29vcmRp
bmF0ZWRMYXllcklEOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9MYXllclRyZWVDb250ZXh0UXQuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHAKaW5kZXggMDBlYTg3MzVmYWZl
YmNjMzcxMWVlMTM1NGI4OTAyM2I0OTMwMTAyYS4uOWZjNDE2MzUyY2YxYTUyNjcwZjEyZDIzNzMz
Y2Y2MWNjMjkwMTNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L0xheWVy
VHJlZUNvbnRleHRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L0xheWVyVHJl
ZUNvbnRleHRRdC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBM
YXllclRyZWVDb250ZXh0OjpMYXllclRyZWVDb250ZXh0KCkKLSAgICA6IHdlYkxheWVySUQoMCkK
KyAgICA6IGNvb3JkaW5hdGVkTGF5ZXJJRCgwKQogewogfQogCkBAIC00MiwyMiArNDIsMjIgQEAg
TGF5ZXJUcmVlQ29udGV4dDo6fkxheWVyVHJlZUNvbnRleHQoKQogCiB2b2lkIExheWVyVHJlZUNv
bnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
Ci0gICAgZW5jb2Rlci5lbmNvZGUod2ViTGF5ZXJJRCk7CisgICAgZW5jb2Rlci5lbmNvZGUoY29v
cmRpbmF0ZWRMYXllcklEKTsKIH0KIAogYm9vbCBMYXllclRyZWVDb250ZXh0OjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBMYXllclRyZWVDb250ZXh0JiBjb250ZXh0
KQogewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoY29udGV4dC53ZWJMYXllcklEKTsKKyAg
ICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKGNvbnRleHQuY29vcmRpbmF0ZWRMYXllcklEKTsKIH0K
IAogYm9vbCBMYXllclRyZWVDb250ZXh0Ojppc0VtcHR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4g
IXdlYkxheWVySUQ7CisgICAgcmV0dXJuICFjb29yZGluYXRlZExheWVySUQ7CiB9CiAKIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBMYXllclRyZWVDb250ZXh0JiBhLCBjb25zdCBMYXllclRyZWVDb250
ZXh0JiBiKQogewotICAgIHJldHVybiBhLndlYkxheWVySUQgPT0gYi53ZWJMYXllcklEOworICAg
IHJldHVybiBhLmNvb3JkaW5hdGVkTGF5ZXJJRCA9PSBiLmNvb3JkaW5hdGVkTGF5ZXJJRDsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCAwOThiNWI5NTQzZjVmZGZi
OWI4YTkzMWExMjgyNzkxZTZhOTc1NjkxLi4yZGQzNmUzOTg0MGM2ZjUxMTRlMDI1Nzk4ZTVhNTVj
YTNlMjM2NjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTEyMCw3ICsxMjAsNiBAQCBIRUFERVJTICs9IFwK
ICAgICBTaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5oIFwKICAgICBTaGFyZWQvV2ViSW1hZ2UuaCBc
CiAgICAgU2hhcmVkL1dlYkludGVudFNlcnZpY2VJbmZvLmggXAotICAgIFNoYXJlZC9XZWJMYXll
clRyZWVJbmZvLmggXAogICAgIFNoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmggXAogICAg
IFNoYXJlZC9XZWJOdW1iZXIuaCBcCiAgICAgU2hhcmVkL1dlYk9wZW5QYW5lbFBhcmFtZXRlcnMu
aCBcCkBAIC0xMzUsNiArMTM0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVkL1dlYlVSTFJl
c3BvbnNlLmggXAogICAgIFNoYXJlZC9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBcCiAgICAg
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29k
ZXJzLmggXAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJ
bmZvLmggXAogICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRlclBy
b2dyYW0uaCBcCiAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1
bGUuaCBcCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaCBcCkBAIC00ODYs
NyArNDg2LDYgQEAgU09VUkNFUyArPSBcCiAgICAgU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3Bw
IFwKICAgICBTaGFyZWQvV2ViSW1hZ2UuY3BwIFwKICAgICBTaGFyZWQvV2ViSW50ZW50U2Vydmlj
ZUluZm8uY3BwIFwKLSAgICBTaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAgXAogICAgIFNoYXJl
ZC9XZWJNb3VzZUV2ZW50LmNwcCBcCiAgICAgU2hhcmVkL1dlYk5ldHdvcmtJbmZvLmNwcCBcCiAg
ICAgU2hhcmVkL1dlYk9wZW5QYW5lbFBhcmFtZXRlcnMuY3BwIFwKQEAgLTUwMyw2ICs1MDIsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBTaGFyZWQvV2ViVVJMUmVzcG9uc2UuY3BwIFwKICAgICBTaGFy
ZWQvV2ViV2hlZWxFdmVudC5jcHAgXAogICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAgXAorICAgIFNoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmNwcCBcCiAgICAgU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcCBcCiAgICAgU2hh
cmVkL3F0L0FyZ3VtZW50Q29kZXJzUXQuY3BwIFwKICAgICBTaGFyZWQvcXQvTGF5ZXJUcmVlQ29u
dGV4dFF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkuY3BwCmluZGV4IDg0MzVlNjEyMzQ3NzllMTc3ODBiZGQ5OGFkNmU5MjkzOWIxODI0OWYuLjJi
NjFlYjkwYzUzZjk3NzQ4MmQzYjRkZjQyOGE5MTMwM2UyMDc3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0yMiwxMSArMjIsMTEgQEAK
ICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eS5oIgogCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllckluZm8uaCIKICNpbmNs
dWRlICJMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVl
UmVuZGVyZXIuaCIKICNpbmNsdWRlICJVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViTGF5ZXJUcmVlSW5mby5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvR3JhcGhpY3NTdXJmYWNlLmg+CkBAIC02MSwyMCArNjEsMjAgQEAgdm9pZCBMYXll
clRyZWVDb29yZGluYXRvclByb3h5OjpkaXNwYXRjaFVwZGF0ZShjb25zdCBGdW5jdGlvbjx2b2lk
KCk+JiBmdW5jdGlvbikKICAgICBtX3JlbmRlcmVyLT5hcHBlbmRVcGRhdGUoZnVuY3Rpb24pOwog
fQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZVRpbGVGb3JMYXllcihX
ZWJMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8p
Cit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZVRpbGVGb3JMYXllcihDb29y
ZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRl
SW5mbykKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6Y3Jl
YXRlVGlsZSwgbV9yZW5kZXJlci5nZXQoKSwgbGF5ZXJJRCwgdGlsZUlELCB1cGRhdGVJbmZvLnNj
YWxlRmFjdG9yKSk7CiAgICAgdXBkYXRlVGlsZUZvckxheWVyKGxheWVySUQsIHRpbGVJRCwgdGls
ZVJlY3QsIHVwZGF0ZUluZm8pOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6
OnVwZGF0ZVRpbGVGb3JMYXllcihXZWJMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCwg
Y29uc3QgSW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8m
IHVwZGF0ZUluZm8pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZVRpbGVG
b3JMYXllcihDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25z
dCBJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYgdXBk
YXRlSW5mbykKIHsKICAgICBTdXJmYWNlTWFwOjppdGVyYXRvciBpdCA9IG1fc3VyZmFjZXMuZmlu
ZCh1cGRhdGVJbmZvLmF0bGFzSUQpOwogICAgIEFTU0VSVChpdCAhPSBtX3N1cmZhY2VzLmVuZCgp
KTsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6dXBkYXRlVGls
ZSwgbV9yZW5kZXJlci5nZXQoKSwgbGF5ZXJJRCwgdGlsZUlELCBMYXllclRyZWVSZW5kZXJlcjo6
VGlsZVVwZGF0ZSh1cGRhdGVJbmZvLnVwZGF0ZVJlY3QsIHRpbGVSZWN0LCBpdC0+dmFsdWUsIHVw
ZGF0ZUluZm8uc3VyZmFjZU9mZnNldCkpKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpyZW1vdmVUaWxlRm9yTGF5ZXIoV2ViTGF5ZXJJRCBsYXllcklELCB1aW50MzJfdCB0
aWxlSUQpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnJlbW92ZVRpbGVGb3JMYXll
cihDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlEKQogewogICAgIGRp
c3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlLCBtX3JlbmRl
cmVyLmdldCgpLCBsYXllcklELCB0aWxlSUQpKTsKIH0KQEAgLTkxLDI4ICs5MSwyOCBAQCB2b2lk
IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnJlbW92ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lE
KQogICAgIG1fc3VyZmFjZXMucmVtb3ZlKGF0bGFzSUQpOwogfQogCi12b2lkIExheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHk6OmRlbGV0ZUNvbXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCBpZCkKK3Zv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6ZGVsZXRlQ29tcG9zaXRpbmdMYXllcihDb29y
ZGluYXRlZExheWVySUQgaWQpCiB7CiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVl
UmVuZGVyZXI6OmRlbGV0ZUxheWVyLCBtX3JlbmRlcmVyLmdldCgpLCBpZCkpOwogfQogCi12b2lk
IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkxh
eWVySUQgaWQpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldFJvb3RDb21wb3Np
dGluZ0xheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShi
aW5kKCZMYXllclRyZWVSZW5kZXJlcjo6c2V0Um9vdExheWVySUQsIG1fcmVuZGVyZXIuZ2V0KCks
IGlkKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRp
bmdMYXllclN0YXRlKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkxheWVySW5mbyYgaW5mbykKK3Zv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRpbmF0ZWRMYXllckluZm8mIGluZm8pCiB7
CiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyU3Rh
dGUsIG1fcmVuZGVyZXIuZ2V0KCksIGlkLCBpbmZvKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllckNoaWxkcmVuKFdlYkxheWVySUQgaWQs
IGNvbnN0IFZlY3RvcjxXZWJMYXllcklEPiYgY2hpbGRyZW4pCit2b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHk6OnNldENvbXBvc2l0aW5nTGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVy
SUQgaWQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVySUQ+JiBjaGlsZHJlbikKIHsKICAg
ICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJDaGlsZHJl
biwgbV9yZW5kZXJlci5nZXQoKSwgaWQsIGNoaWxkcmVuKSk7CiB9CiAKICNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldENvbXBvc2l0aW5n
TGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRl
cnMpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldENvbXBvc2l0aW5nTGF5ZXJG
aWx0ZXJzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmls
dGVycykKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6c2V0
TGF5ZXJGaWx0ZXJzLCBtX3JlbmRlcmVyLmdldCgpLCBpZCwgZmlsdGVycykpOwogfQpAQCAtMTY2
LDcgKzE2Niw3IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29udGVudHNT
aXplKGNvbnN0IEZsb2F0U2l6ZSYgY29udGVudHNTaXplKQogICAgIGRpc3BhdGNoVXBkYXRlKGJp
bmQoJkxheWVyVHJlZVJlbmRlcmVyOjpzZXRDb250ZW50c1NpemUsIG1fcmVuZGVyZXIuZ2V0KCks
IGNvbnRlbnRzU2l6ZSkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNl
dExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklEIGlkLCBjb25zdCBHcmFwaGljc0xheWVyQW5pbWF0
aW9ucyYgYW5pbWF0aW9ucykKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0TGF5
ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgR3JhcGhpY3NMYXllckFu
aW1hdGlvbnMmIGFuaW1hdGlvbnMpCiB7CiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJU
cmVlUmVuZGVyZXI6OnNldExheWVyQW5pbWF0aW9ucywgbV9yZW5kZXJlci5nZXQoKSwgaWQsIGFu
aW1hdGlvbnMpKTsKIH0KQEAgLTIxNiwxOCArMjE2LDE4IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTo6ZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHBvc2l0
aW9uCiB9CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLXZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTo6Y3JlYXRlQ2FudmFzKFdlYkxheWVySUQgaWQsIGNvbnN0IEludFNpemUmIGNh
bnZhc1NpemUsIGNvbnN0IEdyYXBoaWNzU3VyZmFjZVRva2VuJiB0b2tlbikKK3ZvaWQgTGF5ZXJU
cmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwg
Y29uc3QgSW50U2l6ZSYgY2FudmFzU2l6ZSwgY29uc3QgR3JhcGhpY3NTdXJmYWNlVG9rZW4mIHRv
a2VuKQogewogICAgIEdyYXBoaWNzU3VyZmFjZTo6RmxhZ3Mgc3VyZmFjZUZsYWdzID0gR3JhcGhp
Y3NTdXJmYWNlOjpTdXBwb3J0c1RleHR1cmVUYXJnZXQgfCBHcmFwaGljc1N1cmZhY2U6OlN1cHBv
cnRzU2hhcmluZzsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6
Y3JlYXRlQ2FudmFzLCBtX3JlbmRlcmVyLmdldCgpLCBpZCwgY2FudmFzU2l6ZSwgR3JhcGhpY3NT
dXJmYWNlOjpjcmVhdGUoY2FudmFzU2l6ZSwgc3VyZmFjZUZsYWdzLCB0b2tlbikpKTsKIH0KIAot
dm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQs
IHVpbnQzMl90IGZyb250QnVmZmVyKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5Ojpz
eW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgdWludDMyX3QgZnJvbnRCdWZmZXIpCiB7
CiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNDYW52YXMs
IG1fcmVuZGVyZXIuZ2V0KCksIGlkLCBmcm9udEJ1ZmZlcikpOwogfQogCi12b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OmRlc3Ryb3lDYW52YXMoV2ViTGF5ZXJJRCBpZCkKK3ZvaWQgTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6ZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVySUQg
aWQpCiB7CiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OmRlc3Ry
b3lDYW52YXMsIG1fcmVuZGVyZXIuZ2V0KCksIGlkKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvclByb3h5LmgKaW5kZXggMjMwNWZmZGMyZmQzMGQ3MTQ2NTY5Y2I1
YmY4YzFlNTQxNjYxOTNiNi4uZGFmMzg4MmJmMzdmNzQxZDgzMDQ3ODYyYWNiM2NkNDA3MmVlMWFk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaApAQCAt
MjQsMTEgKzI0LDExIEBACiAKICNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJD
b29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJDb29yZGluYXRl
ZExheWVySW5mby5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJS
ZWdpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVTdXJmYWNlLmgiCiAjaW5jbHVkZSAiU3VyZmFj
ZVVwZGF0ZUluZm8uaCIKLSNpbmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaD4KQEAgLTQy
LDkgKzQyLDkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYkxheWVySW5mbzsK
K2NsYXNzIENvb3JkaW5hdGVkTGF5ZXJJbmZvOwogY2xhc3MgTGF5ZXJUcmVlUmVuZGVyZXI7Ci1j
bGFzcyBXZWJMYXllclVwZGF0ZUluZm87CitjbGFzcyBDb29yZGluYXRlZExheWVyVXBkYXRlSW5m
bzsKIAogY2xhc3MgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSk7CkBAIC01MiwyMyArNTIsMjMgQEAg
Y2xhc3MgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eShEcmF3aW5nQXJlYVByb3h5Kik7CiAgICAgfkxheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkoKTsKLSAgICB2b2lkIHNldENvbXBvc2l0aW5nTGF5ZXJTdGF0
ZShXZWJMYXllcklELCBjb25zdCBXZWJMYXllckluZm8mKTsKLSAgICB2b2lkIHNldENvbXBvc2l0
aW5nTGF5ZXJDaGlsZHJlbihXZWJMYXllcklELCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4mKTsK
KyAgICB2b2lkIHNldENvbXBvc2l0aW5nTGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQsIGNv
bnN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvJik7CisgICAgdm9pZCBzZXRDb21wb3NpdGluZ0xheWVy
Q2hpbGRyZW4oQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRMYXll
cklEPiYpOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICB2b2lkIHNldENvbXBvc2l0aW5n
TGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMm
KTsKKyAgICB2b2lkIHNldENvbXBvc2l0aW5nTGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVkTGF5ZXJJ
RCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KENTU19TSEFERVJTKQogICAgIHZvaWQgY3JlYXRlQ3VzdG9tRmlsdGVyUHJvZ3JhbShpbnQgaWQs
IGNvbnN0IFdlYkNvcmU6OkN1c3RvbUZpbHRlclByb2dyYW1JbmZvJik7CiAgICAgdm9pZCByZW1v
dmVDdXN0b21GaWx0ZXJQcm9ncmFtKGludCBpZCk7CiAjZW5kaWYKLSAgICB2b2lkIGRlbGV0ZUNv
bXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCk7Ci0gICAgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdM
YXllcihXZWJMYXllcklEKTsKKyAgICB2b2lkIGRlbGV0ZUNvbXBvc2l0aW5nTGF5ZXIoQ29vcmRp
bmF0ZWRMYXllcklEKTsKKyAgICB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKENvb3JkaW5h
dGVkTGF5ZXJJRCk7CiAgICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7CiAgICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFq
ZWN0b3J5VmVjdG9yKTsKICAgICB2b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY292ZXJlZFJlY3Qp
OwotICAgIHZvaWQgY3JlYXRlVGlsZUZvckxheWVyKFdlYkxheWVySUQsIHVpbnQzMl90IHRpbGVJ
RCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJik7Ci0g
ICAgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoV2ViTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKLSAgICB2
b2lkIHJlbW92ZVRpbGVGb3JMYXllcihXZWJMYXllcklELCB1aW50MzJfdCB0aWxlSUQpOworICAg
IHZvaWQgY3JlYXRlVGlsZUZvckxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgdGls
ZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsK
KyAgICB2b2lkIHVwZGF0ZVRpbGVGb3JMYXllcihDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90
IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZv
Jik7CisgICAgdm9pZCByZW1vdmVUaWxlRm9yTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50
MzJfdCB0aWxlSUQpOwogICAgIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIGNv
bnN0IFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZSYpOwogICAgIHZvaWQgcmVtb3ZlVXBkYXRlQXRs
YXMoaW50IGF0bGFzSUQpOwogICAgIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQpOwpAQCAtODAsMTMgKzgwLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
bmRlck5leHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkK
LSAgICB2b2lkIGNyZWF0ZUNhbnZhcyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4mKTsKLSAgICB2b2lkIHN5bmND
YW52YXMoV2ViTGF5ZXJJRCwgdWludDMyX3QgZnJvbnRCdWZmZXIpOwotICAgIHZvaWQgZGVzdHJv
eUNhbnZhcyhXZWJMYXllcklEKTsKKyAgICB2b2lkIGNyZWF0ZUNhbnZhcyhDb29yZGluYXRlZExh
eWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc1N1
cmZhY2VUb2tlbiYpOworICAgIHZvaWQgc3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVp
bnQzMl90IGZyb250QnVmZmVyKTsKKyAgICB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRM
YXllcklEKTsKICNlbmRpZgogICAgIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVzKCk7CiAgICAgTGF5
ZXJUcmVlUmVuZGVyZXIqIGxheWVyVHJlZVJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5k
ZXJlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKFdlYkxheWVySUQsIGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7CisgICAgdm9pZCBzZXRMYXll
ckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQW5pbWF0aW9ucyYpOwogICAgIHZvaWQgc2V0QW5pbWF0aW9uc0xvY2tlZChib29sKTsKICNp
ZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgdm9pZCByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDM1YzE5ZmZmODYwYzU5ZTk1NDg1ZjhjYjVkMzZl
NDExNjlmOTk4YzMuLjhmN2FjNWEzNzA2YTczYzVjMzc2YTMyMWNlNjk0ZTlmMGMyNmI1YzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMTksNyArMTksNyBAQAogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQogbWVzc2FnZXMgLT4gTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7Ci0gICAgU2V0Q29t
cG9zaXRpbmdMYXllclN0YXRlKHVpbnQzMl90IGlkLCBXZWJLaXQ6OldlYkxheWVySW5mbyBsYXll
ckluZm8pCisgICAgU2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKHVpbnQzMl90IGlkLCBXZWJLaXQ6
OkNvb3JkaW5hdGVkTGF5ZXJJbmZvIGxheWVySW5mbykKICAgICBTZXRDb21wb3NpdGluZ0xheWVy
Q2hpbGRyZW4odWludDMyX3QgaWQsIFZlY3Rvcjx1aW50MzJfdD4gY2hpbGRyZW4pCiAjaWYgRU5B
QkxFKENTU19GSUxURVJTKQogICAgIFNldENvbXBvc2l0aW5nTGF5ZXJGaWx0ZXJzKHVpbnQzMl90
IGlkLCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zIGZpbHRlcnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVSZW5kZXJlci5jcHAKaW5kZXggOTFmNjZjMjg5ZDVkMjI0ZmMwMGRjNDUwZTdlY2YxMzQ5
NTAzNDk3ZC4uM2Q5ZDc4Mjk3OTllZWFjZWI1N2IyOGEyODE3Yzk5N2VhMTJlY2I0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMg
Ym9vbCBsYXllclNob3VsZEhhdmVCYWNraW5nU3RvcmUoR3JhcGhpY3NMYXllciogbGF5ZXIpCiBM
YXllclRyZWVSZW5kZXJlcjo6TGF5ZXJUcmVlUmVuZGVyZXIoTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eSogbGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSkKICAgICA6IG1fbGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eShsYXllclRyZWVDb29yZGluYXRvclByb3h5KQogICAgICwgbV9pc0FjdGl2ZShm
YWxzZSkKLSAgICAsIG1fcm9vdExheWVySUQoSW52YWxpZFdlYkxheWVySUQpCisgICAgLCBtX3Jv
b3RMYXllcklEKEludmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgLCBtX2FuaW1hdGlvbnNM
b2NrZWQoZmFsc2UpCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgICwg
bV9hbmltYXRpb25GcmFtZVJlcXVlc3RlZChmYWxzZSkKQEAgLTg5LDcgKzg5LDcgQEAgTGF5ZXJU
cmVlUmVuZGVyZXI6On5MYXllclRyZWVSZW5kZXJlcigpCiB7CiB9CiAKLVBhc3NPd25QdHI8R3Jh
cGhpY3NMYXllcj4gTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUxheWVyKFdlYkxheWVySUQpCitQ
YXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVMYXllcihD
b29yZGluYXRlZExheWVySUQpCiB7CiAgICAgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIG5l
d0xheWVyID0gbmV3IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKHRoaXMpOwogICAgIG5ld0xh
eWVyLT5zZXRIYXNPd25CYWNraW5nU3RvcmUoZmFsc2UpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIHZv
aWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRpZENoYW5nZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbikKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBMYXll
clRyZWVSZW5kZXJlcjo6Y3JlYXRlQ2FudmFzKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGNhbnZhc1NpemUsIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBzdXJmYWNl
KQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJ
RCBpZCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY2FudmFzU2l6ZSwgUGFzc1JlZlB0cjxHcmFw
aGljc1N1cmZhY2U+IHN1cmZhY2UpCiB7CiAgICAgQVNTRVJUKG1fdGV4dHVyZU1hcHBlcik7CiAg
ICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckJ5SUQoaWQpOwpAQCAtMjQxLDcgKzI0MSw3
IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUNhbnZhcyhXZWJMYXllcklEIGlkLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBjYW52CiAgICAgbGF5ZXItPnNldENvbnRlbnRzVG9NZWRp
YShjYW52YXNCYWNraW5nU3RvcmUuZ2V0KCkpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVy
OjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQsIHVpbnQzMl90IGZyb250QnVmZmVyKQordm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQgaWQsIHVpbnQz
Ml90IGZyb250QnVmZmVyKQogewogICAgIEFTU0VSVChtX3RleHR1cmVNYXBwZXIpOwogICAgIEFT
U0VSVChtX3N1cmZhY2VCYWNraW5nU3RvcmVzLmNvbnRhaW5zKGlkKSk7CkBAIC0yNTIsNyArMjUy
LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c3luY0NhbnZhcyhXZWJMYXllcklEIGlkLCB1
aW50MzJfdCBmcm9udEJ1ZmZlcikKICAgICBjYW52YXNCYWNraW5nU3RvcmUtPnN3YXBCdWZmZXJz
SWZOZWVkZWQoZnJvbnRCdWZmZXIpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpkZXN0
cm95Q2FudmFzKFdlYkxheWVySUQgaWQpCit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKIHsKICAgICBBU1NFUlQobV90ZXh0dXJlTWFw
cGVyKTsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChpZCk7CkBAIC0yNjQs
MTMgKzI2NCwxMyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpkZXN0cm95Q2FudmFzKFdlYkxh
eWVySUQgaWQpCiB9CiAjZW5kaWYKIAotdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJD
aGlsZHJlbihXZWJMYXllcklEIGlkLCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJRD4mIGNoaWxkSURz
KQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExh
eWVySUQgaWQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVySUQ+JiBjaGlsZElEcykKIHsK
ICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGVuc3VyZUxheWVyKGlkKTsKICAgICBWZWN0b3I8
R3JhcGhpY3NMYXllcio+IGNoaWxkcmVuOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBj
aGlsZElEcy5zaXplKCk7ICsraSkgewotICAgICAgICBXZWJMYXllcklEIGNoaWxkSUQgPSBjaGls
ZElEc1tpXTsKKyAgICAgICAgQ29vcmRpbmF0ZWRMYXllcklEIGNoaWxkSUQgPSBjaGlsZElEc1tp
XTsKICAgICAgICAgR3JhcGhpY3NMYXllciogY2hpbGQgPSBsYXllckJ5SUQoY2hpbGRJRCk7CiAg
ICAgICAgIGlmICghY2hpbGQpIHsKICAgICAgICAgICAgIE93blB0cjxHcmFwaGljc0xheWVyKj4g
bmV3Q2hpbGQgPSBjcmVhdGVMYXllcihjaGlsZElEKTsKQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lk
IExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckNoaWxkcmVuKFdlYkxheWVySUQgaWQsIGNvbnN0
IFZlY3RvcjxXZWJMYXllcklEPgogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotdm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQgaWQsIGNvbnN0IEZp
bHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
ckZpbHRlcnMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBm
aWx0ZXJzKQogewogICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gZW5zdXJlTGF5ZXIoaWQpOwog
CkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlQ3VzdG9t
RmlsdGVyUHJvZ3JhbShpbnQgaWQpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQog
Ci12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKFdlYkxheWVySUQgaWQsIGNv
bnN0IFdlYkxheWVySW5mbyYgbGF5ZXJJbmZvKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0
TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5hdGVkTGF5ZXJJ
bmZvJiBsYXllckluZm8pCiB7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBlbnN1cmVMYXll
cihpZCk7CiAKQEAgLTM2MSw3ICszNjEsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRM
YXllclN0YXRlKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkxheWVySW5mbyYgbGF5ZXJJbgogICAg
ICAgICBzZXRSb290TGF5ZXJJRChpZCk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRl
bGV0ZUxheWVyKFdlYkxheWVySUQgbGF5ZXJJRCkKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRl
bGV0ZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklEKQogewogICAgIE93blB0cjxHcmFw
aGljc0xheWVyPiBsYXllciA9IG1fbGF5ZXJzLnRha2UobGF5ZXJJRCk7CiAgICAgaWYgKCFsYXll
cikKQEAgLTM3Niw3ICszNzYsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpkZWxldGVMYXll
cihXZWJMYXllcklEIGxheWVySUQpCiB9CiAKIAotV2ViQ29yZTo6R3JhcGhpY3NMYXllciogTGF5
ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZUxheWVyKFdlYkxheWVySUQgaWQpCitXZWJDb3JlOjpHcmFw
aGljc0xheWVyKiBMYXllclRyZWVSZW5kZXJlcjo6ZW5zdXJlTGF5ZXIoQ29vcmRpbmF0ZWRMYXll
cklEIGlkKQogewogICAgIExheWVyTWFwOjppdGVyYXRvciBpdCA9IG1fbGF5ZXJzLmZpbmQoaWQp
OwogICAgIGlmIChpdCAhPSBtX2xheWVycy5lbmQoKSkKQEAgLTM4OSw3ICszODksNyBAQCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiBMYXllclRyZWVSZW5kZXJlcjo6ZW5zdXJlTGF5ZXIoV2ViTGF5
ZXJJRCBpZCkKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6
OnNldFJvb3RMYXllcklEKFdlYkxheWVySUQgbGF5ZXJJRCkKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVy
ZXI6OnNldFJvb3RMYXllcklEKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklEKQogewogICAgIGlm
IChsYXllcklEID09IG1fcm9vdExheWVySUQpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4NCw3ICs0
ODQsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZXNldEJhY2tpbmdTdG9yZVNpemVUb0xh
eWVyU2l6ZShHcmFwaGljc0xheWVyKiBncmFwaGljcwogICAgIGJhY2tpbmdTdG9yZS0+c2V0U2l6
ZShncmFwaGljc0xheWVyLT5zaXplKCkpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpj
cmVhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBmbG9hdCBzY2Fs
ZSkKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklE
IGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCwgZmxvYXQgc2NhbGUpCiB7CiAgICAgR3JhcGhpY3NM
YXllciogbGF5ZXIgPSBsYXllckJ5SUQobGF5ZXJJRCk7CiAgICAgQVNTRVJUKGxheWVyKTsKQEAg
LTQ5NCw3ICs0OTQsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlKFdlYkxh
eWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBmbG9hdCBzYwogICAgIHJlc2V0QmFja2lu
Z1N0b3JlU2l6ZVRvTGF5ZXJTaXplKGxheWVyKTsKIH0KIAotdm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6cmVtb3ZlVGlsZShXZWJMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCkKK3ZvaWQg
TGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQs
IHVpbnQzMl90IHRpbGVJRCkKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJ
RChsYXllcklEKTsKICAgICBBU1NFUlQobGF5ZXIpOwpAQCAtNTA3LDcgKzUwNyw3IEBAIHZvaWQg
TGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCB1aW50MzJf
dCB0aWxlSUQpCiAgICAgbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzLmFkZChiYWNr
aW5nU3RvcmUpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxlKFdlYkxh
eWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25zdCBUaWxlVXBkYXRlJiB1cGRhdGUp
Cit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCBs
YXllcklELCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFRpbGVVcGRhdGUmIHVwZGF0ZSkKIHsKICAg
ICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChsYXllcklEKTsKICAgICBBU1NFUlQo
bGF5ZXIpOwpAQCAtNjE5LDcgKzYxOSw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3Vy
ZVJvb3RMYXllcigpCiAgICAgaWYgKG1fcm9vdExheWVyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX3Jvb3RMYXllciA9IGNyZWF0ZUxheWVyKEludmFsaWRXZWJMYXllcklEKTsKKyAgICBtX3Jv
b3RMYXllciA9IGNyZWF0ZUxheWVyKEludmFsaWRDb29yZGluYXRlZExheWVySUQpOwogICAgIG1f
cm9vdExheWVyLT5zZXRNYXNrc1RvQm91bmRzKGZhbHNlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0
RHJhd3NDb250ZW50KGZhbHNlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxv
YXRQb2ludDNEKDAsIDAsIDApKTsKQEAgLTY2Miw3ICs2NjIsNyBAQCB2b2lkIExheWVyVHJlZVJl
bmRlcmVyOjpwdXJnZUdMUmVzb3VyY2VzKCkKIAogICAgIG1fcm9vdExheWVyLT5yZW1vdmVBbGxD
aGlsZHJlbigpOwogICAgIG1fcm9vdExheWVyLmNsZWFyKCk7Ci0gICAgbV9yb290TGF5ZXJJRCA9
IEludmFsaWRXZWJMYXllcklEOworICAgIG1fcm9vdExheWVySUQgPSBJbnZhbGlkQ29vcmRpbmF0
ZWRMYXllcklEOwogICAgIG1fbGF5ZXJzLmNsZWFyKCk7CiAgICAgbV9maXhlZExheWVycy5jbGVh
cigpOwogICAgIG1fdGV4dHVyZU1hcHBlci5jbGVhcigpOwpAQCAtNjc5LDcgKzY3OSw3IEBAIHZv
aWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnB1cmdlQmFja2luZ1N0b3JlcygpCiAgICAgICAgIG1fbGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS0+cHVyZ2VCYWNraW5nU3RvcmVzKCk7CiB9CiAKLXZvaWQg
TGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklEIGlkLCBjb25z
dCBHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYgYW5pbWF0aW9ucykKK3ZvaWQgTGF5ZXJUcmVlUmVu
ZGVyZXI6OnNldExheWVyQW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IEdy
YXBoaWNzTGF5ZXJBbmltYXRpb25zJiBhbmltYXRpb25zKQogewogICAgIEdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyKiBsYXllciA9IHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIobGF5ZXJC
eUlEKGlkKSk7CiAgICAgaWYgKCFsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5o
CmluZGV4IGEwM2M5ODIwY2NmNDczYTVkOTA2YTM4ZjJhYmEyODUwNGM5ZDZiOTAuLjk5MTIzZjAy
N2MzYWUyOTU1N2U1NTYwOTk5OTI1ZmQwYTM4NzljOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuaApAQCAtMjIsMTAgKzIyLDEwIEBACiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRM
YXllckluZm8uaCIKICNpbmNsdWRlICJTaGFyZWFibGVTdXJmYWNlLmgiCiAjaW5jbHVkZSAiVGV4
dHVyZU1hcHBlci5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCIKLSNp
bmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0Nv
bnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaD4KQEAgLTQ4LDggKzQ4LDggQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOwogY2xhc3MgTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTsKLWNsYXNzIFdlYkxheWVySW5mbzsKLWNsYXNzIFdlYkxh
eWVyVXBkYXRlSW5mbzsKK2NsYXNzIENvb3JkaW5hdGVkTGF5ZXJJbmZvOworY2xhc3MgQ29vcmRp
bmF0ZWRMYXllclVwZGF0ZUluZm87CiAKIGNsYXNzIExheWVyVHJlZVJlbmRlcmVyIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPExheWVyVHJlZVJlbmRlcmVyPiwgcHVibGljIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJDbGllbnQgewogcHVibGljOgpAQCAtNzQsOSArNzQsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHBvc2l0aW9uKTsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICB2b2lkIGNy
ZWF0ZUNhbnZhcyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2U+KTsKLSAgICB2b2lkIHN5bmNDYW52YXMoV2ViTGF5
ZXJJRCwgdWludDMyX3QgZnJvbnRCdWZmZXIpOwotICAgIHZvaWQgZGVzdHJveUNhbnZhcyhXZWJM
YXllcklEKTsKKyAgICB2b2lkIGNyZWF0ZUNhbnZhcyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZT4p
OworICAgIHZvaWQgc3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250
QnVmZmVyKTsKKyAgICB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNl
bmRpZgogCiAgICAgdm9pZCBkZXRhY2goKTsKQEAgLTg3LDEyICs4NywxMiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwdXJnZUdMUmVzb3VyY2VzKCk7CiAgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCk7CiAK
LSAgICB2b2lkIGRlbGV0ZUxheWVyKFdlYkxheWVySUQpOwotICAgIHZvaWQgc2V0Um9vdExheWVy
SUQoV2ViTGF5ZXJJRCk7Ci0gICAgdm9pZCBzZXRMYXllckNoaWxkcmVuKFdlYkxheWVySUQsIGNv
bnN0IFZlY3RvcjxXZWJMYXllcklEPiYpOwotICAgIHZvaWQgc2V0TGF5ZXJTdGF0ZShXZWJMYXll
cklELCBjb25zdCBXZWJMYXllckluZm8mKTsKKyAgICB2b2lkIGRlbGV0ZUxheWVyKENvb3JkaW5h
dGVkTGF5ZXJJRCk7CisgICAgdm9pZCBzZXRSb290TGF5ZXJJRChDb29yZGluYXRlZExheWVySUQp
OworICAgIHZvaWQgc2V0TGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFZl
Y3RvcjxDb29yZGluYXRlZExheWVySUQ+Jik7CisgICAgdm9pZCBzZXRMYXllclN0YXRlKENvb3Jk
aW5hdGVkTGF5ZXJJRCwgY29uc3QgQ29vcmRpbmF0ZWRMYXllckluZm8mKTsKICNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCi0gICAgdm9pZCBzZXRMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCwgY29uc3Qg
V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOworICAgIHZvaWQgc2V0TGF5ZXJGaWx0ZXJzKENv
b3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAgIHZvaWQgaW5qZWN0Q2FjaGVkQ3VzdG9t
RmlsdGVyUHJvZ3JhbXMoY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykg
Y29uc3Q7CkBAIC0xMDAsMTUgKzEwMCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVDdXN0
b21GaWx0ZXJQcm9ncmFtKGludCBpZCk7CiAjZW5kaWYKIAotICAgIHZvaWQgY3JlYXRlVGlsZShX
ZWJMYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGZsb2F0IHNjYWxlKTsKLSAgICB2b2lkIHJlbW92
ZVRpbGUoV2ViTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlEKTsKLSAgICB2b2lkIHVwZGF0ZVRpbGUo
V2ViTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25zdCBUaWxlVXBkYXRlJik7CisgICAgdm9p
ZCBjcmVhdGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBmbG9hdCBz
Y2FsZSk7CisgICAgdm9pZCByZW1vdmVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3Qg
dGlsZUlEKTsKKyAgICB2b2lkIHVwZGF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJf
dCB0aWxlSUQsIGNvbnN0IFRpbGVVcGRhdGUmKTsKICAgICB2b2lkIGZsdXNoTGF5ZXJDaGFuZ2Vz
KCk7CiAgICAgdm9pZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJ
RCk7CiAgICAgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJ
RCwgUGFzc1JlZlB0cjxTaGFyZWFibGVTdXJmYWNlPik7CiAgICAgdm9pZCBjbGVhckltYWdlQmFj
a2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpOwogICAgIHZvaWQgcmVtb3Zl
SW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpOwotICAgIHZvaWQgc2V0TGF5
ZXJBbmltYXRpb25zKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmlt
YXRpb25zJik7CisgICAgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklE
LCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpOwogICAgIHZvaWQgc2V0
QW5pbWF0aW9uc0xvY2tlZChib29sKTsKICAgICB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25z
dCBXZWJDb3JlOjpDb2xvciYpOwogICAgIHZvaWQgc2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wgZW5h
YmxlKSB7IG1fc2V0RHJhd3NCYWNrZ3JvdW5kID0gZW5hYmxlOyB9CkBAIC0xMTgsOSArMTE4LDkg
QEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgUGFzc093blB0cjxXZWJDb3JlOjpH
cmFwaGljc0xheWVyPiBjcmVhdGVMYXllcihXZWJMYXllcklEKTsKKyAgICBQYXNzT3duUHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAK
LSAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllckJ5SUQoV2ViTGF5ZXJJRCBpZCkgeyBy
ZXR1cm4gKGlkID09IEludmFsaWRXZWJMYXllcklEKSA/IDAgOiBtX2xheWVycy5nZXQoaWQpOyB9
CisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXJCeUlEKENvb3JkaW5hdGVkTGF5ZXJJ
RCBpZCkgeyByZXR1cm4gKGlkID09IEludmFsaWRDb29yZGluYXRlZExheWVySUQpID8gMCA6IG1f
bGF5ZXJzLmdldChpZCk7IH0KICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiByb290TGF5ZXIo
KSB7IHJldHVybiBtX3Jvb3RMYXllci5nZXQoKTsgfQogCiAgICAgdm9pZCBzeW5jUmVtb3RlQ29u
dGVudCgpOwpAQCAtMTQyLDcgKzE0Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhc3NpZ25JbWFn
ZUJhY2tpbmdUb0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEKTsKICAgICB2b2lkIHJlbW92ZVJlbGVhc2VkSW1hZ2VCYWNraW5nc0lmTmVlZGVk
KCk7CiAgICAgdm9pZCBlbnN1cmVSb290TGF5ZXIoKTsKLSAgICBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiBlbnN1cmVMYXllcihXZWJMYXllcklEKTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiBlbnN1cmVMYXllcihDb29yZGluYXRlZExheWVySUQpOwogICAgIHZvaWQgY29tbWl0UGVuZGlu
Z0JhY2tpbmdTdG9yZU9wZXJhdGlvbnMoKTsKIAogICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
KiBnZXRCYWNraW5nU3RvcmUoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwpAQCAtMTcwLDcgKzE3
MCw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU+ID4gbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzOwogCiAjaWYgVVNFKEdSQVBI
SUNTX1NVUkZBQ0UpCi0gICAgdHlwZWRlZiBIYXNoTWFwPFdlYkxheWVySUQsIFJlZlB0cjxXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gPiBTdXJmYWNlQmFja2luZ1N0
b3JlTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxDb29yZGluYXRlZExheWVySUQsIFJlZlB0cjxX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gPiBTdXJmYWNlQmFja2lu
Z1N0b3JlTWFwOwogICAgIFN1cmZhY2VCYWNraW5nU3RvcmVNYXAgbV9zdXJmYWNlQmFja2luZ1N0
b3JlczsKICNlbmRpZgogCkBAIC0xODAsMTEgKzE4MCwxMSBAQCBwcml2YXRlOgogCiAgICAgT3du
UHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOwogCi0gICAgdHlwZWRlZiBI
YXNoTWFwPFdlYkxheWVySUQsIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiA+IExheWVy
TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxDb29yZGluYXRlZExheWVySUQsIE93blB0cjxXZWJD
b3JlOjpHcmFwaGljc0xheWVyPiA+IExheWVyTWFwOwogICAgIExheWVyTWFwIG1fbGF5ZXJzOwot
ICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXllcklELCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKj4g
TGF5ZXJSYXdQdHJNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPENvb3JkaW5hdGVkTGF5ZXJJRCwg
V2ViQ29yZTo6R3JhcGhpY3NMYXllcio+IExheWVyUmF3UHRyTWFwOwogICAgIExheWVyUmF3UHRy
TWFwIG1fZml4ZWRMYXllcnM7Ci0gICAgV2ViTGF5ZXJJRCBtX3Jvb3RMYXllcklEOworICAgIENv
b3JkaW5hdGVkTGF5ZXJJRCBtX3Jvb3RMYXllcklEOwogICAgIFdlYkNvcmU6OkludFBvaW50IG1f
cmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0aW9uOwogICAgIFdlYkNvcmU6OkludFBvaW50IG1f
cGVuZGluZ1JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKICAgICBib29sIG1fYW5pbWF0
aW9uc0xvY2tlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
CmluZGV4IGM0ZWQwNjhiNDEyNGNmMmZkOGVmZjcwNzExNTMwMWQ5YjY5ZGM2ODQuLmQ2Nzk5ZGQ1
YmU5MGJiYTMyYzEzZTE3OTVhZTUxNDNmMDFmOWVjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaApAQCAtNTAsOCArNTAsNiBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIExheWVyVHJlZUNvbnRleHQ7CiBjbGFzcyBMYXllclRyZWVDb29yZGluYXRv
clByb3h5OwogY2xhc3MgVXBkYXRlSW5mbzsKLWNsYXNzIFdlYkxheWVyVHJlZUluZm87Ci1jbGFz
cyBXZWJMYXllclVwZGF0ZUluZm87CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIERyYXdp
bmdBcmVhUHJveHkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggY2RhMGY0M2VhMzAxODZkOTYwNTZiYTczZTcx
Y2U5M2JiYWZkMmI4ZS4uOWQzY2YyNDgxYzQ2OGM2NGI3ZWViZGE3MmNlNDA0MTVmMTg4NjFiNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCkBAIC00MiwxMyArNDIsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgSGFzaE1hcDxXZWJMYXllcklELCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqPiYgbGF5ZXJCeUlETWFwKCkKK3N0YXRpYyBIYXNoTWFwPENv
b3JkaW5hdGVkTGF5ZXJJRCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4mIGxheWVyQnlJRE1h
cCgpCiB7Ci0gICAgc3RhdGljIEhhc2hNYXA8V2ViTGF5ZXJJRCwgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKj4gZ2xvYmFsTWFwOworICAgIHN0YXRpYyBIYXNoTWFwPENvb3JkaW5hdGVkTGF5ZXJJ
RCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4gZ2xvYmFsTWFwOwogICAgIHJldHVybiBnbG9i
YWxNYXA7CiB9CiAKLXN0YXRpYyBXZWJMYXllcklEIHRvV2ViTGF5ZXJJRChHcmFwaGljc0xheWVy
KiBsYXllcikKK3N0YXRpYyBDb29yZGluYXRlZExheWVySUQgdG9Db29yZGluYXRlZExheWVySUQo
R3JhcGhpY3NMYXllciogbGF5ZXIpCiB7CiAgICAgcmV0dXJuIGxheWVyID8gdG9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5pZCgpIDogMDsKIH0KQEAgLTEyNCw3ICsxMjQsNyBAQCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihHcmFwaGlj
c0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIoMCkKICAg
ICAsIG1fYW5pbWF0aW9uU3RhcnRlZFRpbWVyKHRoaXMsICZDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmFuaW1hdGlvblN0YXJ0ZWRUaW1lckZpcmVkKQogewotICAgIHN0YXRpYyBXZWJMYXllcklE
IG5leHRMYXllcklEID0gMTsKKyAgICBzdGF0aWMgQ29vcmRpbmF0ZWRMYXllcklEIG5leHRMYXll
cklEID0gMTsKICAgICBtX2lkID0gbmV4dExheWVySUQrKzsKICAgICBsYXllckJ5SURNYXAoKS5h
ZGQoaWQoKSwgdGhpcyk7CiB9CkBAIC00MzEsNyArNDMxLDcgQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
CiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogfQogCi1XZWJMYXllcklEIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6aWQoKSBjb25zdAorQ29vcmRpbmF0ZWRMYXllcklEIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6aWQoKSBjb25zdAogewogICAgIHJldHVybiBtX2lkOwogfQpAQCAtNDYy
LDkgKzQ2Miw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQ2hpbGRyZW4o
KQogICAgIGlmICghbV9zaG91bGRTeW5jQ2hpbGRyZW4pCiAgICAgICAgIHJldHVybjsKICAgICBt
X3Nob3VsZFN5bmNDaGlsZHJlbiA9IGZhbHNlOwotICAgIFZlY3RvcjxXZWJMYXllcklEPiBjaGls
ZElEczsKKyAgICBWZWN0b3I8Q29vcmRpbmF0ZWRMYXllcklEPiBjaGlsZElEczsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCi0gICAgICAgIGNoaWxk
SURzLmFwcGVuZCh0b1dlYkxheWVySUQoY2hpbGRyZW4oKVtpXSkpOworICAgICAgICBjaGlsZElE
cy5hcHBlbmQodG9Db29yZGluYXRlZExheWVySUQoY2hpbGRyZW4oKVtpXSkpOwogCiAgICAgbV9j
b29yZGluYXRvci0+c3luY0xheWVyQ2hpbGRyZW4obV9pZCwgY2hpbGRJRHMpOwogfQpAQCAtNTIx
LDEyICs1MjEsMTIgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNMYXllclN0
YXRlKCkKICAgICBtX2xheWVySW5mby5jb250ZW50c1JlY3QgPSBjb250ZW50c1JlY3QoKTsKICAg
ICBtX2xheWVySW5mby5kcmF3c0NvbnRlbnQgPSBkcmF3c0NvbnRlbnQoKTsKICAgICBtX2xheWVy
SW5mby5jb250ZW50c1Zpc2libGUgPSBjb250ZW50c0FyZVZpc2libGUoKTsKLSAgICBtX2xheWVy
SW5mby5tYXNrID0gdG9XZWJMYXllcklEKG1hc2tMYXllcigpKTsKKyAgICBtX2xheWVySW5mby5t
YXNrID0gdG9Db29yZGluYXRlZExheWVySUQobWFza0xheWVyKCkpOwogICAgIG1fbGF5ZXJJbmZv
Lm1hc2tzVG9Cb3VuZHMgPSBtYXNrc1RvQm91bmRzKCk7CiAgICAgbV9sYXllckluZm8ub3BhY2l0
eSA9IG9wYWNpdHkoKTsKICAgICBtX2xheWVySW5mby5wb3MgPSBwb3NpdGlvbigpOwogICAgIG1f
bGF5ZXJJbmZvLnByZXNlcnZlczNEID0gcHJlc2VydmVzM0QoKTsKLSAgICBtX2xheWVySW5mby5y
ZXBsaWNhID0gdG9XZWJMYXllcklEKHJlcGxpY2FMYXllcigpKTsKKyAgICBtX2xheWVySW5mby5y
ZXBsaWNhID0gdG9Db29yZGluYXRlZExheWVySUQocmVwbGljYUxheWVyKCkpOwogICAgIG1fbGF5
ZXJJbmZvLnNpemUgPSBzaXplKCk7CiAgICAgbV9sYXllckluZm8udHJhbnNmb3JtID0gdHJhbnNm
b3JtKCk7CiAgICAgbV9jb29yZGluYXRvci0+c3luY0xheWVyU3RhdGUobV9pZCwgbV9sYXllcklu
Zm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuaAppbmRleCBmN2I3Mjg2YjNiZTA1ZDI0ZDRhZmUyYjYxZTY4ODI1YmY1MjVkZjA2
Li5kOTNhM2I3MDU5NzAzNDc4NmJjYzE2OGNiMDJkZGI1YjQ4NTVhMDUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAt
MjIsNiArMjIsNyBAQAogI2RlZmluZSBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJfaAogCiAjaW5j
bHVkZSAiQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaCIKKyNpbmNsdWRlICJDb29yZGluYXRlZExh
eWVySW5mby5oIgogI2luY2x1ZGUgIkNvb3JkaW5hdGVkVGlsZS5oIgogI2luY2x1ZGUgIkZsb2F0
UG9pbnQzRC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKQEAgLTM0LDcgKzM1LDYgQEAK
ICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSAiVXBkYXRlSW5mby5oIgotI2luY2x1ZGUgIldlYkxh
eWVyVHJlZUluZm8uaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc1N1cmZhY2VUb2tlbi5oPgpAQCAt
NTMsMjUgKzUzLDI1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICAvLyBDb29yZGluYXRlZFRpbGVDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklELCB1aW50MzJfdCB0aWxlSUQs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZShXZWJMYXllcklELCB1aW50MzJfdCB0aWxlSUQs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCB1aW50MzJfdCB0aWxlSUQp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShDb29yZGluYXRlZExheWVySUQsIHVp
bnQzMl90IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKENvb3JkaW5hdGVkTGF5
ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGUoQ29vcmRp
bmF0ZWRMYXllcklELCB1aW50MzJfdCB0aWxlSUQpID0gMDsKIAogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6SW50UmVjdCB2aXNpYmxlQ29udGVudHNSZWN0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBsYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiBjcmVhdGVJbWFnZUJhY2tpbmdJ
Zk5lZWRlZChXZWJDb3JlOjpJbWFnZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVy
U3RhdGUoV2ViTGF5ZXJJRCwgY29uc3QgV2ViTGF5ZXJJbmZvJikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBzeW5jTGF5ZXJDaGlsZHJlbihXZWJMYXllcklELCBjb25zdCBWZWN0b3I8V2ViTGF5ZXJJ
RD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN5bmNMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5
ZXJJRCwgY29uc3QgQ29vcmRpbmF0ZWRMYXllckluZm8mKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHN5bmNMYXllckNoaWxkcmVuKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgVmVjdG9yPENvb3Jk
aW5hdGVkTGF5ZXJJRD4mKSA9IDA7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIHZpcnR1
YWwgdm9pZCBzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRl
ck9wZXJhdGlvbnMmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN5bmNMYXllckZpbHRlcnMoQ29v
cmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJikgPSAwOwog
I2VuZGlmCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0
ZUNhbnZhcyhXZWJMYXllcklELCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBzeW5jQ2FudmFzKFdlYkxheWVySUQsIFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIq
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lDYW52YXMoV2ViTGF5ZXJJRCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3Jl
OjpQbGF0Zm9ybUxheWVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2FudmFzKENvb3Jk
aW5hdGVkTGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXllciopID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVySUQpID0gMDsKICNlbmRpZgogCi0g
ICAgdmlydHVhbCB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklELCBjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TGF5ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckFuaW1hdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzeW5jRml4ZWRMYXllcnMoKSA9IDA7CkBAIC0xMzQsNyArMTM0LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRSb290TGF5ZXIoYm9vbCk7CiAKLSAgICBXZWJLaXQ6OldlYkxheWVySUQgaWQo
KSBjb25zdDsKKyAgICBXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJRCBpZCgpIGNvbnN0OwogCiAg
ICAgdm9pZCBzZXRGaXhlZFRvVmlld3BvcnQoYm9vbCBpc0ZpeGVkKSB7IG1fZml4ZWRUb1ZpZXdw
b3J0ID0gaXNGaXhlZDsgfQogCkBAIC0yMDUsOCArMjA1LDggQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgYW5pbWF0aW9uU3RhcnRlZFRpbWVyRmlyZWQoVGltZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyPiopOwogCi0gICAgV2ViS2l0OjpXZWJMYXllcklEIG1faWQ7Ci0gICAgV2ViS2l0OjpXZWJM
YXllckluZm8gbV9sYXllckluZm87CisgICAgV2ViS2l0OjpDb29yZGluYXRlZExheWVySUQgbV9p
ZDsKKyAgICBXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJbmZvIG1fbGF5ZXJJbmZvOwogICAgIEdy
YXBoaWNzTGF5ZXJUcmFuc2Zvcm0gbV9sYXllclRyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBtX2NhY2hlZEludmVyc2VUcmFuc2Zvcm07CiAgICAgYm9vbCBtX2luVXBkYXRlTW9k
ZSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmcuaAppbmRleCA3NjI2NmE0YjQxNDBiOTQzN2IxMTcyNTM3NTcwYTdmMjAwNzkxMGRk
Li42NWU4MjQ2NzJiOTM5ZjhhYzg1Y2YwYWU0NjVkYjgyYzM3MzkwNjlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEltYWdlQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKQEAgLTI4
LDkgKzI4LDkgQEAKICNkZWZpbmUgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdfaAogCiAjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQorI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJJbmZvLmgi
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVTdXJmYWNlLmgiCi0jaW5j
bHVkZSAiV2ViTGF5ZXJUcmVlSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRl
eCBhYmMyYzBmMTNmNGUzZDUyYTc0ZWMyNzVmNjNmYTYwZjVlMDUyMDM3Li5jOTg1ZDExYjNhNmUw
MDZjM2ZmMjYwMGFkMjNkMGJjOTA5YTcwNDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC0xLDQgKzEsNCBAQAotICAgIC8q
CisvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgpAQCAtOTksMTQgKzk5LDE0IEBAIExheWVyVHJlZUNvb3JkaW5h
dG9yOjpMYXllclRyZWVDb29yZGluYXRvcihXZWJQYWdlKiB3ZWJQYWdlKQogewogICAgIC8vIENy
ZWF0ZSBhIHJvb3QgbGF5ZXIuCiAgICAgbV9yb290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVh
dGUodGhpcywgdGhpcyk7Ci0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiB3ZWJSb290TGF5
ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jvb3RMYXllci5nZXQoKSk7Ci0gICAg
d2ViUm9vdExheWVyLT5zZXRSb290TGF5ZXIodHJ1ZSk7CisgICAgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKiBjb29yZGluYXRlZFJvb3RMYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KG1fcm9vdExheWVyLmdldCgpKTsKKyAgICBjb29yZGluYXRlZFJvb3RMYXllci0+c2V0Um9vdExh
eWVyKHRydWUpOwogI2lmbmRlZiBOREVCVUcKICAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgiTGF5
ZXJUcmVlQ29vcmRpbmF0b3Igcm9vdCBsYXllciIpOwogI2VuZGlmCiAgICAgbV9yb290TGF5ZXIt
PnNldERyYXdzQ29udGVudChmYWxzZSk7CiAgICAgbV9yb290TGF5ZXItPnNldFNpemUobV93ZWJQ
YWdlLT5zaXplKCkpOwotICAgIG1fbGF5ZXJUcmVlQ29udGV4dC53ZWJMYXllcklEID0gdG9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIod2ViUm9vdExheWVyKS0+aWQoKTsKKyAgICBtX2xheWVyVHJl
ZUNvbnRleHQuY29vcmRpbmF0ZWRMYXllcklEID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIo
Y29vcmRpbmF0ZWRSb290TGF5ZXIpLT5pZCgpOwogCiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVu
dExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMsIHRoaXMpOwogI2lmbmRlZiBOREVC
VUcKQEAgLTMwNiw3ICszMDYsNyBAQCBib29sIExheWVyVHJlZUNvb3JkaW5hdG9yOjpmbHVzaFBl
bmRpbmdMYXllckNoYW5nZXMoKQogICAgIHJldHVybiBkaWRTeW5jOwogfQogCi12b2lkIExheWVy
VHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0ZShXZWJMYXllcklEIGlkLCBjb25zdCBXZWJM
YXllckluZm8mIGluZm8pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0
ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvJiBpbmZv
KQogewogICAgIGlmIChtX3Nob3VsZFNlbmRTY3JvbGxQb3NpdGlvblVwZGF0ZSkgewogICAgICAg
ICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkRp
ZENoYW5nZVNjcm9sbFBvc2l0aW9uKG1fdmlzaWJsZUNvbnRlbnRzUmVjdC5sb2NhdGlvbigpKSk7
CkBAIC0zMTcsMTQgKzMxNywxNCBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5
ZXJTdGF0ZShXZWJMYXllcklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGluZgogICAgIG1fd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6U2V0Q29tcG9z
aXRpbmdMYXllclN0YXRlKGlkLCBpbmZvKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0
b3I6OnN5bmNMYXllckNoaWxkcmVuKFdlYkxheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxXZWJMYXll
cklEPiYgY2hpbGRyZW4pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJDaGls
ZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVy
SUQ+JiBjaGlsZHJlbikKIHsKICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CiAgICAgbV93
ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpTZXRDb21w
b3NpdGluZ0xheWVyQ2hpbGRyZW4oaWQsIGNoaWxkcmVuKSk7CiB9CiAKICNpZiBVU0UoR1JBUEhJ
Q1NfU1VSRkFDRSkKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZUNhbnZhcyhXZWJM
YXllcklEIGlkLCBQbGF0Zm9ybUxheWVyKiBjYW52YXNQbGF0Zm9ybUxheWVyKQordm9pZCBMYXll
clRyZWVDb29yZGluYXRvcjo6Y3JlYXRlQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgUGxh
dGZvcm1MYXllciogY2FudmFzUGxhdGZvcm1MYXllcikKIHsKICAgICBtX3Nob3VsZFN5bmNGcmFt
ZSA9IHRydWU7CiAgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gdG9rZW4gPSBjYW52YXNQbGF0Zm9y
bUxheWVyLT5ncmFwaGljc1N1cmZhY2VUb2tlbigpOwpAQCAtMzMyLDE0ICszMzIsMTQgQEAgdm9p
ZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlQ2FudmFzKFdlYkxheWVySUQgaWQsIFBsYXRm
b3JtTGF5ZXIqIGNhbnZhc1BsYXQKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0ZUNhbnZhcyhpZCwgY2FudmFzU2l6ZSwgdG9rZW4p
KTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0NhbnZhcyhXZWJMYXllcklE
IGlkLCBQbGF0Zm9ybUxheWVyKiBjYW52YXNQbGF0Zm9ybUxheWVyKQordm9pZCBMYXllclRyZWVD
b29yZGluYXRvcjo6c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQgaWQsIFBsYXRmb3JtTGF5
ZXIqIGNhbnZhc1BsYXRmb3JtTGF5ZXIpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVl
OwogICAgIHVpbnQzMl90IGZyb250QnVmZmVyID0gY2FudmFzUGxhdGZvcm1MYXllci0+Y29weVRv
R3JhcGhpY3NTdXJmYWNlKCk7CiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRy
ZWVDb29yZGluYXRvclByb3h5OjpTeW5jQ2FudmFzKGlkLCBmcm9udEJ1ZmZlcikpOwogfQogCi12
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkZXN0cm95Q2FudmFzKFdlYkxheWVySUQgaWQpCit2
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJ
RCBpZCkKIHsKICAgICBpZiAobV9pc1B1cmdpbmcpCiAgICAgICAgIHJldHVybjsKQEAgLTM1MCw3
ICszNTAsNyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkZXN0cm95Q2FudmFzKFdlYkxh
eWVySUQgaWQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLXZvaWQgTGF5ZXJU
cmVlQ29vcmRpbmF0b3I6OnN5bmNMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgRmls
dGVyT3BlcmF0aW9ucyYgZmlsdGVycykKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNM
YXllckZpbHRlcnMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25z
JiBmaWx0ZXJzKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKICNpZiBFTkFCTEUo
Q1NTX1NIQURFUlMpCkBAIC02MzksMTkgKzYzOSwxOSBAQCBib29sIExheWVyVHJlZUhvc3Q6OnN1
cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCB1
aW50MzJfdCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6
OmNyZWF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCwg
Y29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHRpbGVSZWN0KQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKICAgICBtX3dl
YlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0ZVRp
bGVGb3JMYXllcihsYXllcklELCB0aWxlSUQsIHRpbGVSZWN0LCB1cGRhdGVJbmZvKSk7CiB9CiAK
LXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklE
LCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0aWxlUmVjdCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0
b3I6OnVwZGF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJ
RCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHRpbGVSZWN0KQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKICAgICBt
X3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlVwZGF0
ZVRpbGVGb3JMYXllcihsYXllcklELCB0aWxlSUQsIHRpbGVSZWN0LCB1cGRhdGVJbmZvKSk7CiB9
CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbW92ZVRpbGUoV2ViTGF5ZXJJRCBsYXll
cklELCB1aW50MzJfdCB0aWxlSUQpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVU
aWxlKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCB1aW50MzJfdCB0aWxlSUQpCiB7CiAgICAg
aWYgKG1faXNQdXJnaW5nKQogICAgICAgICByZXR1cm47CkBAIC02NzcsNyArNjc3LDcgQEAgV2Vi
Q29yZTo6SW50UmVjdCBMYXllclRyZWVDb29yZGluYXRvcjo6dmlzaWJsZUNvbnRlbnRzUmVjdCgp
IGNvbnN0CiB9CiAKIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c2V0TGF5ZXJBbmltYXRp
b25zKFdlYkxheWVySUQgbGF5ZXJJRCwgY29uc3QgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMmIGFu
aW1hdGlvbnMpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzZXRMYXllckFuaW1hdGlvbnMo
Q29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQsIGNvbnN0IEdyYXBoaWNzTGF5ZXJBbmltYXRpb25z
JiBhbmltYXRpb25zKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKICAgICBHcmFw
aGljc0xheWVyQW5pbWF0aW9ucyBhY3RpdmVBbmltYXRpb25zID0gYW5pbWF0aW9ucy5nZXRBY3Rp
dmVBbmltYXRpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaAppbmRleCA0ZDI5NTIzOWI3ZDM4MTJmMTk4YjQ0YzE2NzA1NzAxOWJlNjFi
MTQ2Li4yNjhhOGE5MWMyNGQyNmYzYzJlOWU5NzJkOGI1ZTc0ZTkyN2Y0ODVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKQEAgLTc4LDkg
Kzc4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENo
YW5nZSgpIHsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDb29yZGluYXRlZEltYWdlQmFja2lu
Zz4gY3JlYXRlSW1hZ2VCYWNraW5nSWZOZWVkZWQoV2ViQ29yZTo6SW1hZ2UqKSBPVkVSUklERTsK
IAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKFdlYkxheWVySUQsIHVpbnQzMl90IHRpbGVJ
RCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBj
b25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCB1aW50MzJfdCB0aWxlSUQpOworICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgdGls
ZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZShDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90
IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
Jik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50
MzJfdCB0aWxlSUQpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB2aXNpYmxlQ29udGVu
dHNSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHJlbmRlck5leHRGcmFtZSgpOwogICAg
IHZpcnR1YWwgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKQEAgLTg5LDE2ICs4OSwxNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0
b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lk
IHN5bmNMYXllclN0YXRlKFdlYkxheWVySUQsIGNvbnN0IFdlYkxheWVySW5mbyYpOwotICAgIHZp
cnR1YWwgdm9pZCBzeW5jTGF5ZXJDaGlsZHJlbihXZWJMYXllcklELCBjb25zdCBWZWN0b3I8V2Vi
TGF5ZXJJRD4mKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKFdlYkxheWVy
SUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7CisgICAgdmlydHVh
bCB2b2lkIHN5bmNMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgQ29vcmRpbmF0
ZWRMYXllckluZm8mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyQ2hpbGRyZW4oQ29vcmRp
bmF0ZWRMYXllcklELCBjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRMYXllcklEPiYpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpOwogI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyRmlsdGVycyhXZWJMYXllcklELCBjb25zdCBX
ZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CisgICAgdmlydHVhbCB2b2lkIHN5bmNMYXllckZp
bHRlcnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25z
Jik7CiAjZW5kaWYKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlQ2FudmFzKFdlYkxheWVySUQsIFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0NhbnZhcyhXZWJMYXllcklELCBXZWJDb3JlOjpQbGF0
Zm9ybUxheWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lDYW52YXMoV2Vi
TGF5ZXJJRCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUNhbnZhcyhDb29yZGlu
YXRlZExheWVySUQsIFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIFdlYkNvcmU6OlBsYXRmb3Jt
TGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveUNhbnZhcyhDb29yZGlu
YXRlZExheWVySUQpIE9WRVJSSURFOwogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExh
eWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9p
ZCBzeW5jRml4ZWRMYXllcnMoKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2YXRlOgogICAgIE93
blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3BhZ2VPdmVybGF5TGF5ZXI7CiAKICAgICBI
YXNoU2V0PFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+IG1fcmVnaXN0ZXJlZExh
eWVyczsKLSAgICBWZWN0b3I8V2ViTGF5ZXJJRD4gbV9kZXRhY2hlZExheWVyczsKKyAgICBWZWN0
b3I8Q29vcmRpbmF0ZWRMYXllcklEPiBtX2RldGFjaGVkTGF5ZXJzOwogICAgIHR5cGVkZWYgSGFz
aE1hcDxDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBSZWZQdHI8Q29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmc+ID4gSW1hZ2VCYWNraW5nTWFwOwogICAgIEltYWdlQmFja2luZ01hcCBtX2ltYWdlQmFj
a2luZ3M7CiAgICAgVmVjdG9yPE93blB0cjxVcGRhdGVBdGxhcz4gPiBtX3VwZGF0ZUF0bGFzZXM7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178111</attachid>
            <date>2012-12-06 16:53:41 -0800</date>
            <delta_ts>2012-12-06 17:46:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103983-20121206165200.patch</filename>
            <type>text/plain</type>
            <size>62013</size>
            <attacher name="Jae Hyun Park">jaepark</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTAxNGZiMDdjMWNlY2Vk
ZmFlMmNhZmJkYzUxOTE1M2EyYzRjMTMzNS4uNjFhYjU4Mzc3MTNiNWViMTEzMjg5NjljMTk1YzRl
MTQ2OGQ2MDE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNiBAQAorMjAxMi0xMi0wNSAgSmFl
IEh5dW4gUGFyayAgPGphZS5wYXJrQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW5hbWUgV2ViTGF5ZXJUcmVlSW5mbyB0byBDb29yZGluYXRlZExheWVy
SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTm9hbSBSb3NlbnRoYWwuCisKKyAgICAgICAgVGhp
cyBwYXRjaCByZWZhY3RvcnMgV2ViTGF5ZXJUcmVlSW5mbyBpbiAyIGFyZWFzLgorCisgICAgICAg
IDEuIFdlYkxheWVyVHJlZUluZm8gaXMgb25seSB1c2VkIGJ5IENvb3JkaW5hdGVkIEdyYXBoaWNz
LiBTbywgdGhlIGZpbGUKKyAgICAgICAgc2hvdWxkIGJlIGxvY2F0ZWQgaW4gV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcyBpbnN0ZWFkIG9mCisgICAgICAgIFdlYktpdDIvU2hhcmVk
LgorCisgICAgICAgIDIuIFRoZSBuYW1lIG9mIFdlYkxheWVyVHJlZUluZm8gaXMgaW5jb3JyZWN0
LiBDdXJyZW50bHksCisgICAgICAgIFdlYkxheWVyVHJlZUluZm8gb25seSBoYXMgV2ViTGF5ZXJJ
bmZvIHN0cnVjdC4gQWxzbywgaXQgaXMgaGFyZCB0byBrbm93CisgICAgICAgIHdoYXQgV2ViTGF5
ZXIgaXMgc2luY2Ugd2UgZG9uJ3QgdXNlIHRoYXQgbmFtZSBhbnltb3JlLiBNb3JlIGFwcHJvcHJp
YXRlCisgICAgICAgIG5hbWUgZm9yIFdlYkxheWVySW5mbyB3b3VsZCBiZSBDb29yZGluYXRlZExh
eWVySW5mby4KKworICAgICAgICBObyBuZXcgdGVzdCwgYmVjYXVzZSBubyBiZWhhdmlvcmFsIGNo
YW5nZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAq
IFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJbmZvOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5m
by5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8u
aC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJ
bmZvOjpDb29yZGluYXRlZExheWVySW5mbyk6CisgICAgICAgIChDb29yZGluYXRlZExheWVySW5m
byk6CisgICAgICAgICogU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKExheWVy
VHJlZUNvbnRleHQpOgorICAgICAgICAqIFNoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQp
OgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb250ZXh0OjplbmNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVDb250ZXh0OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVDb250ZXh0Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgICogU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQpOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVDb250ZXh0OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVD
b250ZXh0OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb250ZXh0Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eTo6dXBkYXRlVGlsZUZvckxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6cmVtb3ZlVGlsZUZvckxheWVyKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6ZGVsZXRlQ29tcG9zaXRpbmdMYXllcik6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnNldFJvb3RDb21w
b3NpdGluZ0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eTo6c2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllckNoaWxkcmVuKToKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllckZp
bHRlcnMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRM
YXllckFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclBy
b3h5OjpjcmVhdGVDYW52YXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpzeW5jQ2FudmFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eTo6ZGVzdHJveUNhbnZhcyk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVu
ZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6TGF5ZXJUcmVl
UmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlTGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlQ2FudmFzKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnN5bmNDYW52YXMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6ZGVzdHJveUNhbnZhcyk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckNoaWxkcmVuKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyRmlsdGVycyk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJUcmVlUmVuZGVyZXI6OmRlbGV0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlUmVuZGVyZXI6OmVuc3VyZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVu
ZGVyZXI6OnNldFJvb3RMYXllcklEKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVy
ZXI6OmNyZWF0ZVRpbGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6cmVt
b3ZlVGlsZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxl
KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZVJvb3RMYXllcik6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpwdXJnZUdMUmVzb3VyY2VzKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyQW5pbWF0aW9ucyk6
CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVy
ZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpsYXllckJ5SUQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsYXllckJ5SURNYXApOgorICAgICAg
ICAoV2ViQ29yZTo6dG9Db29yZGluYXRlZExheWVySUQpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjppZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6
CisgICAgICAgIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRv
cjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29y
ZGluYXRvcjo6c3luY0xheWVyU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29y
ZGluYXRvcjo6c3luY0xheWVyQ2hpbGRyZW4pOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVD
b29yZGluYXRvcjo6Y3JlYXRlQ2FudmFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OnN5bmNDYW52YXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGlu
YXRvcjo6ZGVzdHJveUNhbnZhcyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5h
dG9yOjpzeW5jTGF5ZXJGaWx0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRp
bmF0b3I6OmNyZWF0ZVRpbGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRv
cjo6dXBkYXRlVGlsZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpy
ZW1vdmVUaWxlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNldExh
eWVyQW5pbWF0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3Jk
aW5hdG9yKToKKwogMjAxMi0xMi0wNiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV0cnkgc25hcHNob3RzIGlmIHRoZXkgYXJlIHRvbyBlbXB0eQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCAyZjRiM2M2YzVmNzY3Mzg5MWQ4MzgyOTQxY2EyYTMwNDBjZGNiNDU4Li44ZjNi
NmY5M2MwZDg3ZDFiZDVjNDEwNDQyZDZkM2UxNjFkYzgzMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMTc2LDcgKzE3Niw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2Vi
SW1hZ2UuY3BwCiAgICAgU2hhcmVkL1dlYkludGVudFNlcnZpY2VJbmZvLmNwcAogICAgIFNoYXJl
ZC9XZWJLZXlib2FyZEV2ZW50LmNwcAotICAgIFNoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcAog
ICAgIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAogICAgIFNoYXJlZC9XZWJNb3VzZUV2ZW50
LmNwcAogICAgIFNoYXJlZC9XZWJOZXR3b3JrSW5mby5jcHAKQEAgLTIxOSw2ICsyMTgsNyBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmNwcAogCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0FyZ3VtZW50Q29kZXJzLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJJbmZvLmNwcAogICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dl
YkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5jcHAKIAogICAgIFNoYXJlZC9QbHVnaW5zL05QSWRl
bnRpZmllckRhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtp
dDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMu
cHkKaW5kZXggMGM5Yjk0MTE2N2JiMGUwYTBkY2JkNjI4ZDBjMTNlZmExYmYxMmM1NS4uNTU5NDc4
Y2E5Y2QzZTM3YWUwNTE0NWVjMjM5Njk2OTFkNGQ1YmVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMzk2LDExICszOTYsMTAgQEAgZGVmIGhlYWRl
cnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2Vi
Q29yZS9QbHVnaW5EYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1
bHQnOiBbJzxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+J10s
CisgICAgICAgICdXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJRCc6IFsnIkNvb3JkaW5hdGVkTGF5
ZXJJbmZvLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VF
bmNvZGVyJzogW10sCiAgICAgICAgICdXZWJLaXQ6OldlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29k
ZXInOiBbXSwKICAgICAgICAgJ1dlYktpdDo6V2ViR2VzdHVyZUV2ZW50JzogWyciV2ViRXZlbnQu
aCInXSwKLSAgICAgICAgJ1dlYktpdDo6V2ViTGF5ZXJJRCc6IFsnIldlYkxheWVyVHJlZUluZm8u
aCInXSwKLSAgICAgICAgJ1dlYktpdDo6V2ViTGF5ZXJJbmZvJzogWyciV2ViTGF5ZXJUcmVlSW5m
by5oIiddLAogICAgICAgICAnV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50JzogWyciV2ViRXZlbnQu
aCInXSwKICAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10s
CiAgICAgICAgICdXZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllckluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkODZlNjI5NzRmZTM4
NTM4ZDYzNmY3MWQwNzRkMjMyODQ2YTQ1YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5jcHAK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNp
bmNsdWRlICJDb29yZGluYXRlZExheWVySW5mby5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKKyNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIK
KwordXNpbmcgbmFtZXNwYWNlIENvcmVJUEM7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lk
IENvb3JkaW5hdGVkTGF5ZXJJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRMYXll
ckluZm8+OjplbmNvZGUoZW5jb2RlciwgKnRoaXMpOworfQorCitib29sIENvb3JkaW5hdGVkTGF5
ZXJJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBDb29yZGlu
YXRlZExheWVySW5mbyYgaW5mbykKK3sKKyAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxD
b29yZGluYXRlZExheWVySW5mbz46OmRlY29kZShkZWNvZGVyLCBpbmZvKTsKK30KK30KKyNlbmRp
ZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllcklu
Zm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNzE0YmU2NWY0NmM3YTU0M2RhODRjMzEyYWZiZGRmZTJlODMzZTg2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaApAQCAtMCwwICsxLDgzIEBACisvKgorIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KworIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBDb29yZGluYXRlZExheWVySW5m
b19oCisjZGVmaW5lIENvb3JkaW5hdGVkTGF5ZXJJbmZvX2gKKworI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkFy
Z3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZsb2F0
U2l6ZS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3R5cGVkZWYgdWludDMyX3QgQ29vcmRpbmF0ZWRMYXllcklEOworZW51bSB7IEludmFsaWRD
b29yZGluYXRlZExheWVySUQgPSAwIH07CisKK3R5cGVkZWYgdWludDY0X3QgQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRDsKK2VudW0geyBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCA9
IDAgfTsKKworLy8gTk9URTogQ29vcmRpbmF0ZWRMYXllckluZm8gc2hvdWxkIG9ubHkgdXNlIFBP
RCB0eXBlcywgYXMgdG8gbWFrZSBzZXJpYWxpemF0aW9uIGZhc3Rlci4KK3N0cnVjdCBDb29yZGlu
YXRlZExheWVySW5mbyB7CisgICAgQ29vcmRpbmF0ZWRMYXllckluZm8oKQorICAgICAgICA6IHJl
cGxpY2EoSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkKKyAgICAgICAgLCBtYXNrKEludmFsaWRD
b29yZGluYXRlZExheWVySUQpCisgICAgICAgICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCkKKyAgICAgICAgLCBvcGFjaXR5KDApCisgICAgICAgICwgZmxhZ3MoMCkg
eyB9CisKKyAgICBDb29yZGluYXRlZExheWVySUQgcmVwbGljYTsKKyAgICBDb29yZGluYXRlZExh
eWVySUQgbWFzazsKKyAgICBDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQ7CisKKyAg
ICBXZWJDb3JlOjpGbG9hdFBvaW50IHBvczsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50M0QgYW5j
aG9yUG9pbnQ7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNpemU7CisgICAgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4IGNoaWxkcmVuVHJhbnNmb3JtOworICAgIFdlYkNvcmU6OkludFJlY3QgY29udGVudHNS
ZWN0OworICAgIGZsb2F0IG9wYWNpdHk7CisgICAgV2ViQ29yZTo6Q29sb3IgYmFja2dyb3VuZENv
bG9yOworCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgYm9vbCBj
b250ZW50c09wYXF1ZSA6IDE7CisgICAgICAgICAgICBib29sIGRyYXdzQ29udGVudCA6IDE7Cisg
ICAgICAgICAgICBib29sIGNvbnRlbnRzVmlzaWJsZSA6IDE7CisgICAgICAgICAgICBib29sIGJh
Y2tmYWNlVmlzaWJsZSA6IDE7CisgICAgICAgICAgICBib29sIG1hc2tzVG9Cb3VuZHMgOiAxOwor
ICAgICAgICAgICAgYm9vbCBwcmVzZXJ2ZXMzRCA6IDE7CisgICAgICAgICAgICBib29sIGlzUm9v
dExheWVyOiAxOworICAgICAgICAgICAgYm9vbCBmaXhlZFRvVmlld3BvcnQgOiAxOworICAgICAg
ICB9OworICAgICAgICB1bnNpZ25lZCBmbGFnczsKKyAgICB9OworCisgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvb3JkaW5hdGVkTGF5ZXJJbmZvJik7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisKKyNlbmRpZiAvLyBD
b29yZGluYXRlZExheWVySW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRl
eHQuaAppbmRleCBmOGUyZmNlNjFmMzNkMmFjZjc0N2YwZTljYzVlZTYzZWJjN2VmZWE5Li4zZmY3
Y2I0YTM1YjFkYzJhMjUyZGNhY2FjNzRhZmEyMGZmODE5MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9MYXllclRyZWVDb250ZXh0LmgKQEAgLTU3LDExICs1NywxMSBAQCBwdWJsaWM6CiAjZWxp
ZiBQTEFURk9STShXSU4pCiAgICAgSFdORCB3aW5kb3c7CiAjZWxpZiBQTEFURk9STShRVCkKLSAg
ICB1aW50MzJfdCB3ZWJMYXllcklEOworICAgIHVpbnQzMl90IGNvb3JkaW5hdGVkTGF5ZXJJRDsK
ICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICB1aW50NjRfdCB3aW5kb3dIYW5kbGU7CiAjZWxpZiBQ
TEFURk9STShFRkwpCi0gICAgdWludDMyX3Qgd2ViTGF5ZXJJRDsKKyAgICB1aW50MzJfdCBjb29y
ZGluYXRlZExheWVySUQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJM
YXllclRyZWVJbmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFiMTMxZmVh
YmQzNjA1MWM5Njk4Yzk1NmNmZjM1NzEyNzkzNmE3OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVl
SW5mby5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLQot
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKQotI2luY2x1ZGUgIldlYkxheWVyVHJlZUluZm8uaCIKLQotI2lu
Y2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRzLmgiCi0jaW5jbHVk
ZSAiU2hhcmVkTWVtb3J5LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBDb3JlSVBDOwotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotdm9pZCBXZWJMYXllckluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJM
YXllckluZm8+OjplbmNvZGUoZW5jb2RlciwgKnRoaXMpOwotfQotCi1ib29sIFdlYkxheWVySW5m
bzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJJbmZv
JiBpbmZvKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFdlYkxheWVySW5mbz46
OmRlY29kZShkZWNvZGVyLCBpbmZvKTsKLX0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJMYXllclRyZWVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5YTk3
NDI2MTgxYjMzNmJhY2EzNmFjMjg3ZjcyMDU5MWVlOTMwOTguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVy
VHJlZUluZm8uaAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQot
Ci0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCi0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0g
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIFdlYkxheWVyVHJlZUluZm9faAotI2Rl
ZmluZSBXZWJMYXllclRyZWVJbmZvX2gKLQotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
LQotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rl
ci5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgotI2lu
Y2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXR5cGVkZWYg
dWludDMyX3QgV2ViTGF5ZXJJRDsKLWVudW0geyBJbnZhbGlkV2ViTGF5ZXJJRCA9IDAgfTsKLQot
dHlwZWRlZiB1aW50NjRfdCBDb29yZGluYXRlZEltYWdlQmFja2luZ0lEOwotZW51bSB7IEludmFs
aWRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEID0gMCB9OwotCi0vLyBOT1RFOiBXZWJMYXllcklu
Zm8gc2hvdWxkIG9ubHkgdXNlIFBPRCB0eXBlcywgYXMgdG8gbWFrZSBzZXJpYWxpemF0aW9uIGZh
c3Rlci4KLXN0cnVjdCBXZWJMYXllckluZm8gewotICAgIFdlYkxheWVySW5mbygpCi0gICAgICAg
IDogcmVwbGljYShJbnZhbGlkV2ViTGF5ZXJJRCkKLSAgICAgICAgLCBtYXNrKEludmFsaWRXZWJM
YXllcklEKQotICAgICAgICAsIGltYWdlSUQoSW52YWxpZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
SUQpCi0gICAgICAgICwgb3BhY2l0eSgwKQotICAgICAgICAsIGZsYWdzKDApIHsgfQotCi0gICAg
V2ViTGF5ZXJJRCByZXBsaWNhOwotICAgIFdlYkxheWVySUQgbWFzazsKLSAgICBDb29yZGluYXRl
ZEltYWdlQmFja2luZ0lEIGltYWdlSUQ7Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHBvczsK
LSAgICBXZWJDb3JlOjpGbG9hdFBvaW50M0QgYW5jaG9yUG9pbnQ7Ci0gICAgV2ViQ29yZTo6Rmxv
YXRTaXplIHNpemU7Ci0gICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3Jt
OwotICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkcmVuVHJhbnNmb3JtOwot
ICAgIFdlYkNvcmU6OkludFJlY3QgY29udGVudHNSZWN0OwotICAgIGZsb2F0IG9wYWNpdHk7Ci0g
ICAgV2ViQ29yZTo6Q29sb3IgYmFja2dyb3VuZENvbG9yOwotCi0gICAgdW5pb24gewotICAgICAg
ICBzdHJ1Y3QgewotICAgICAgICAgICAgYm9vbCBjb250ZW50c09wYXF1ZSA6IDE7Ci0gICAgICAg
ICAgICBib29sIGRyYXdzQ29udGVudCA6IDE7Ci0gICAgICAgICAgICBib29sIGNvbnRlbnRzVmlz
aWJsZSA6IDE7Ci0gICAgICAgICAgICBib29sIGJhY2tmYWNlVmlzaWJsZSA6IDE7Ci0gICAgICAg
ICAgICBib29sIG1hc2tzVG9Cb3VuZHMgOiAxOwotICAgICAgICAgICAgYm9vbCBwcmVzZXJ2ZXMz
RCA6IDE7Ci0gICAgICAgICAgICBib29sIGlzUm9vdExheWVyOiAxOwotICAgICAgICAgICAgYm9v
bCBmaXhlZFRvVmlld3BvcnQgOiAxOwotICAgICAgICB9OwotICAgICAgICB1bnNpZ25lZCBpbnQg
ZmxhZ3M7Ci0gICAgfTsKLQotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBXZWJMYXllckluZm8mKTsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLQotI2VuZGlmIC8vIFdlYkxheWVyVHJlZUluZm9faApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKaW5kZXggMzJm
YTk3MGE4ZTQ5NWYwZDM2NWJhYzgxOGFkYWQ0Y2RmZDQ5YWE2ZC4uMWZhNjM1ZDgzZDFhMzM5MmVm
N2U0MDE1NWQ2ZGE5OTJmZGViNjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
ZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogTGF5ZXJUcmVlQ29udGV4dDo6TGF5ZXJUcmVlQ29udGV4dCgpCi0gICAgOiB3
ZWJMYXllcklEKDApCisgICAgOiBjb29yZGluYXRlZExheWVySUQoMCkKIHsKIH0KIApAQCAtNDIs
MjIgKzQyLDIyIEBAIExheWVyVHJlZUNvbnRleHQ6On5MYXllclRyZWVDb250ZXh0KCkKIAogdm9p
ZCBMYXllclRyZWVDb250ZXh0OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogewotICAgIGVuY29kZXIuZW5jb2RlKHdlYkxheWVySUQpOworICAgIGVuY29k
ZXIuZW5jb2RlKGNvb3JkaW5hdGVkTGF5ZXJJRCk7CiB9CiAKIGJvb2wgTGF5ZXJUcmVlQ29udGV4
dDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTGF5ZXJUcmVlQ29u
dGV4dCYgY29udGV4dCkKIHsKLSAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKGNvbnRleHQud2Vi
TGF5ZXJJRCk7CisgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShjb250ZXh0LmNvb3JkaW5hdGVk
TGF5ZXJJRCk7CiB9CiAKIGJvb2wgTGF5ZXJUcmVlQ29udGV4dDo6aXNFbXB0eSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuICF3ZWJMYXllcklEOworICAgIHJldHVybiAhY29vcmRpbmF0ZWRMYXllcklE
OwogfQogCiBib29sIG9wZXJhdG9yPT0oY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgYSwgY29uc3Qg
TGF5ZXJUcmVlQ29udGV4dCYgYikKIHsKLSAgICByZXR1cm4gYS53ZWJMYXllcklEID09IGIud2Vi
TGF5ZXJJRDsKKyAgICByZXR1cm4gYS5jb29yZGluYXRlZExheWVySUQgPT0gYi5jb29yZGluYXRl
ZExheWVySUQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvcXQvTGF5ZXJUcmVlQ29udGV4dFF0LmNwcAppbmRleCAwMGVhODczNWZhZmViY2Mz
NzExZWUxMzU0Yjg5MDIzYjQ5MzAxMDJhLi45ZmM0MTYzNTJjZjFhNTI2NzBmMTJkMjM3MzNjZjYx
Y2MyOTAxM2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvTGF5ZXJUcmVl
Q29udGV4dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvTGF5ZXJUcmVlQ29u
dGV4dFF0LmNwcApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIExheWVy
VHJlZUNvbnRleHQ6OkxheWVyVHJlZUNvbnRleHQoKQotICAgIDogd2ViTGF5ZXJJRCgwKQorICAg
IDogY29vcmRpbmF0ZWRMYXllcklEKDApCiB7CiB9CiAKQEAgLTQyLDIyICs0MiwyMiBAQCBMYXll
clRyZWVDb250ZXh0Ojp+TGF5ZXJUcmVlQ29udGV4dCgpCiAKIHZvaWQgTGF5ZXJUcmVlQ29udGV4
dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAg
ICBlbmNvZGVyLmVuY29kZSh3ZWJMYXllcklEKTsKKyAgICBlbmNvZGVyLmVuY29kZShjb29yZGlu
YXRlZExheWVySUQpOwogfQogCiBib29sIExheWVyVHJlZUNvbnRleHQ6OmRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIExheWVyVHJlZUNvbnRleHQmIGNvbnRleHQpCiB7
Ci0gICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShjb250ZXh0LndlYkxheWVySUQpOworICAgIHJl
dHVybiBkZWNvZGVyLT5kZWNvZGUoY29udGV4dC5jb29yZGluYXRlZExheWVySUQpOwogfQogCiBi
b29sIExheWVyVHJlZUNvbnRleHQ6OmlzRW1wdHkoKSBjb25zdAogewotICAgIHJldHVybiAhd2Vi
TGF5ZXJJRDsKKyAgICByZXR1cm4gIWNvb3JkaW5hdGVkTGF5ZXJJRDsKIH0KIAogYm9vbCBvcGVy
YXRvcj09KGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGEsIGNvbnN0IExheWVyVHJlZUNvbnRleHQm
IGIpCiB7Ci0gICAgcmV0dXJuIGEud2ViTGF5ZXJJRCA9PSBiLndlYkxheWVySUQ7CisgICAgcmV0
dXJuIGEuY29vcmRpbmF0ZWRMYXllcklEID09IGIuY29vcmRpbmF0ZWRMYXllcklEOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDAyM2Q3NDViOTI0YjdiY2JjZDRl
ODY0OTdjZDRmYjYzMTY2Y2M5ODguLjEyNjBiM2MxYWE0NmJiNWNiMjQ2MzRhYmNjMWIxMmY0ZDk0
MzE0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTIxLDcgKzEyMSw2IEBAIEhFQURFUlMgKz0gXAogICAg
IFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmggXAogICAgIFNoYXJlZC9XZWJJbWFnZS5oIFwKICAg
ICBTaGFyZWQvV2ViSW50ZW50U2VydmljZUluZm8uaCBcCi0gICAgU2hhcmVkL1dlYkxheWVyVHJl
ZUluZm8uaCBcCiAgICAgU2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCBcCiAgICAgU2hh
cmVkL1dlYk51bWJlci5oIFwKICAgICBTaGFyZWQvV2ViT3BlblBhbmVsUGFyYW1ldGVycy5oIFwK
QEAgLTEzNiw2ICsxMzUsNyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQvV2ViVVJMUmVzcG9u
c2UuaCBcCiAgICAgU2hhcmVkL1dlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oIFwKICAgICBTaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMu
aCBcCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8u
aCBcCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3Jh
bS5oIFwKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5o
IFwKICAgICBTaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oIFwKQEAgLTQ4OCw3ICs0
ODgsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAgXAog
ICAgIFNoYXJlZC9XZWJJbWFnZS5jcHAgXAogICAgIFNoYXJlZC9XZWJJbnRlbnRTZXJ2aWNlSW5m
by5jcHAgXAotICAgIFNoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcCBcCiAgICAgU2hhcmVkL1dl
Yk1vdXNlRXZlbnQuY3BwIFwKICAgICBTaGFyZWQvV2ViTmV0d29ya0luZm8uY3BwIFwKICAgICBT
aGFyZWQvV2ViT3BlblBhbmVsUGFyYW1ldGVycy5jcHAgXApAQCAtNTA1LDYgKzUwNCw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIFNoYXJlZC9XZWJVUkxSZXNwb25zZS5jcHAgXAogICAgIFNoYXJlZC9X
ZWJXaGVlbEV2ZW50LmNwcCBcCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcCBcCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uY3BwIFwKICAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkuY3BwIFwKICAgICBTaGFyZWQv
cXQvQXJndW1lbnRDb2RlcnNRdC5jcHAgXAogICAgIFNoYXJlZC9xdC9MYXllclRyZWVDb250ZXh0
UXQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5j
cHAKaW5kZXggODQzNWU2MTIzNDc3OWUxNzc4MGJkZDk4YWQ2ZTkyOTM5YjE4MjQ5Zi4uMmI2MWVi
OTBjNTNmOTc3NDgyZDNiNGRmNDI4YTkxMzAzZTIwNzc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTIyLDExICsyMiwxMSBAQAogI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJMYXllclRyZWVDb29yZGluYXRv
clByb3h5LmgiCiAKKyNpbmNsdWRlICJDb29yZGluYXRlZExheWVySW5mby5oIgogI2luY2x1ZGUg
IkxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJMYXllclRyZWVSZW5k
ZXJlci5oIgogI2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc1N1cmZhY2UuaD4KQEAgLTYxLDIwICs2MSwyMCBAQCB2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OmRpc3BhdGNoVXBkYXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4m
IGZ1bmN0aW9uKQogICAgIG1fcmVuZGVyZXItPmFwcGVuZFVwZGF0ZShmdW5jdGlvbik7CiB9CiAK
LXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKFdlYkxh
eWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0
aWxlUmVjdCwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKK3Zv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKENvb3JkaW5h
dGVkTGF5ZXJJRCBsYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZv
KQogewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVU
aWxlLCBtX3JlbmRlcmVyLmdldCgpLCBsYXllcklELCB0aWxlSUQsIHVwZGF0ZUluZm8uc2NhbGVG
YWN0b3IpKTsKICAgICB1cGRhdGVUaWxlRm9yTGF5ZXIobGF5ZXJJRCwgdGlsZUlELCB0aWxlUmVj
dCwgdXBkYXRlSW5mbyk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6dXBk
YXRlVGlsZUZvckxheWVyKFdlYkxheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25z
dCBJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYgdXBk
YXRlSW5mbykKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6dXBkYXRlVGlsZUZvckxh
eWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0IElu
dFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJ
bmZvKQogewogICAgIFN1cmZhY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdXJmYWNlcy5maW5kKHVw
ZGF0ZUluZm8uYXRsYXNJRCk7CiAgICAgQVNTRVJUKGl0ICE9IG1fc3VyZmFjZXMuZW5kKCkpOwog
ICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVUaWxlLCBt
X3JlbmRlcmVyLmdldCgpLCBsYXllcklELCB0aWxlSUQsIExheWVyVHJlZVJlbmRlcmVyOjpUaWxl
VXBkYXRlKHVwZGF0ZUluZm8udXBkYXRlUmVjdCwgdGlsZVJlY3QsIGl0LT52YWx1ZSwgdXBkYXRl
SW5mby5zdXJmYWNlT2Zmc2V0KSkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHk6OnJlbW92ZVRpbGVGb3JMYXllcihXZWJMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJ
RCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6cmVtb3ZlVGlsZUZvckxheWVyKENv
b3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCB1aW50MzJfdCB0aWxlSUQpCiB7CiAgICAgZGlzcGF0
Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUsIG1fcmVuZGVyZXIu
Z2V0KCksIGxheWVySUQsIHRpbGVJRCkpOwogfQpAQCAtOTEsMjggKzkxLDI4IEBAIHZvaWQgTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6cmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpCiAg
ICAgbV9zdXJmYWNlcy5yZW1vdmUoYXRsYXNJRCk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTo6ZGVsZXRlQ29tcG9zaXRpbmdMYXllcihXZWJMYXllcklEIGlkKQordm9pZCBM
YXllclRyZWVDb29yZGluYXRvclByb3h5OjpkZWxldGVDb21wb3NpdGluZ0xheWVyKENvb3JkaW5h
dGVkTGF5ZXJJRCBpZCkKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5k
ZXJlcjo6ZGVsZXRlTGF5ZXIsIG1fcmVuZGVyZXIuZ2V0KCksIGlkKSk7CiB9CiAKLXZvaWQgTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJ
RCBpZCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Um9vdENvbXBvc2l0aW5n
TGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQo
JkxheWVyVHJlZVJlbmRlcmVyOjpzZXRSb290TGF5ZXJJRCwgbV9yZW5kZXJlci5nZXQoKSwgaWQp
KTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRDb21wb3NpdGluZ0xh
eWVyU3RhdGUoV2ViTGF5ZXJJRCBpZCwgY29uc3QgV2ViTGF5ZXJJbmZvJiBpbmZvKQordm9pZCBM
YXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRDb21wb3NpdGluZ0xheWVyU3RhdGUoQ29vcmRp
bmF0ZWRMYXllcklEIGlkLCBjb25zdCBDb29yZGluYXRlZExheWVySW5mbyYgaW5mbykKIHsKICAg
ICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZSwg
bV9yZW5kZXJlci5nZXQoKSwgaWQsIGluZm8pKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGlu
YXRvclByb3h5OjpzZXRDb21wb3NpdGluZ0xheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCBpZCwgY29u
c3QgVmVjdG9yPFdlYkxheWVySUQ+JiBjaGlsZHJlbikKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllckNoaWxkcmVuKENvb3JkaW5hdGVkTGF5ZXJJRCBp
ZCwgY29uc3QgVmVjdG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4mIGNoaWxkcmVuKQogewogICAgIGRp
c3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckNoaWxkcmVuLCBt
X3JlbmRlcmVyLmdldCgpLCBpZCwgY2hpbGRyZW4pKTsKIH0KIAogI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXll
ckZpbHRlcnMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykK
K3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0Q29tcG9zaXRpbmdMYXllckZpbHRl
cnMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJz
KQogewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
ckZpbHRlcnMsIG1fcmVuZGVyZXIuZ2V0KCksIGlkLCBmaWx0ZXJzKSk7CiB9CkBAIC0xNjYsNyAr
MTY2LDcgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRDb250ZW50c1NpemUo
Y29uc3QgRmxvYXRTaXplJiBjb250ZW50c1NpemUpCiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgm
TGF5ZXJUcmVlUmVuZGVyZXI6OnNldENvbnRlbnRzU2l6ZSwgbV9yZW5kZXJlci5nZXQoKSwgY29u
dGVudHNTaXplKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6c2V0TGF5
ZXJBbmltYXRpb25zKFdlYkxheWVySUQgaWQsIGNvbnN0IEdyYXBoaWNzTGF5ZXJBbmltYXRpb25z
JiBhbmltYXRpb25zKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpzZXRMYXllckFu
aW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBHcmFwaGljc0xheWVyQW5pbWF0
aW9ucyYgYW5pbWF0aW9ucykKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVS
ZW5kZXJlcjo6c2V0TGF5ZXJBbmltYXRpb25zLCBtX3JlbmRlcmVyLmdldCgpLCBpZCwgYW5pbWF0
aW9ucykpOwogfQpAQCAtMjE2LDE4ICsyMTYsMTggQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpkaWRDaGFuZ2VTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9zaXRpb24K
IH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpjcmVhdGVDYW52YXMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgSW50U2l6ZSYgY2FudmFz
U2l6ZSwgY29uc3QgR3JhcGhpY3NTdXJmYWNlVG9rZW4mIHRva2VuKQordm9pZCBMYXllclRyZWVD
b29yZGluYXRvclByb3h5OjpjcmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25z
dCBJbnRTaXplJiBjYW52YXNTaXplLCBjb25zdCBHcmFwaGljc1N1cmZhY2VUb2tlbiYgdG9rZW4p
CiB7CiAgICAgR3JhcGhpY3NTdXJmYWNlOjpGbGFncyBzdXJmYWNlRmxhZ3MgPSBHcmFwaGljc1N1
cmZhY2U6OlN1cHBvcnRzVGV4dHVyZVRhcmdldCB8IEdyYXBoaWNzU3VyZmFjZTo6U3VwcG9ydHNT
aGFyaW5nOwogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpjcmVh
dGVDYW52YXMsIG1fcmVuZGVyZXIuZ2V0KCksIGlkLCBjYW52YXNTaXplLCBHcmFwaGljc1N1cmZh
Y2U6OmNyZWF0ZShjYW52YXNTaXplLCBzdXJmYWNlRmxhZ3MsIHRva2VuKSkpOwogfQogCi12b2lk
IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnN5bmNDYW52YXMoV2ViTGF5ZXJJRCBpZCwgdWlu
dDMyX3QgZnJvbnRCdWZmZXIpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnN5bmND
YW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCB1aW50MzJfdCBmcm9udEJ1ZmZlcikKIHsKICAg
ICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6c3luY0NhbnZhcywgbV9y
ZW5kZXJlci5nZXQoKSwgaWQsIGZyb250QnVmZmVyKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eTo6ZGVzdHJveUNhbnZhcyhXZWJMYXllcklEIGlkKQordm9pZCBMYXllclRy
ZWVDb29yZGluYXRvclByb3h5OjpkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkK
IHsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6ZGVzdHJveUNh
bnZhcywgbV9yZW5kZXJlci5nZXQoKSwgaWQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkuaAppbmRleCAyMzA1ZmZkYzJmZDMwZDcxNDY1NjljYjViZjhj
MWU1NDE2NjE5M2I2Li5kYWYzODgyYmYzN2Y3NDFkODMwNDc4NjJhY2IzY2Q0MDcyZWUxYWQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCkBAIC0yNCwx
MSArMjQsMTEgQEAKIAogI2luY2x1ZGUgIkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIkNvb3Jk
aW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5
ZXJJbmZvLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIlJlZ2lv
bi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVN1cmZhY2UuaCIKICNpbmNsdWRlICJTdXJmYWNlVXBk
YXRlSW5mby5oIgotI2luY2x1ZGUgIldlYkxheWVyVHJlZUluZm8uaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oPgpAQCAtNDIsOSAr
NDIsOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViTGF5ZXJJbmZvOworY2xh
c3MgQ29vcmRpbmF0ZWRMYXllckluZm87CiBjbGFzcyBMYXllclRyZWVSZW5kZXJlcjsKLWNsYXNz
IFdlYkxheWVyVXBkYXRlSW5mbzsKK2NsYXNzIENvb3JkaW5hdGVkTGF5ZXJVcGRhdGVJbmZvOwog
CiBjbGFzcyBMYXllclRyZWVDb29yZGluYXRvclByb3h5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShMYXllclRyZWVDb29yZGluYXRvclByb3h5KTsKQEAgLTUyLDIzICs1MiwyMyBAQCBjbGFz
cyBMYXllclRyZWVDb29yZGluYXRvclByb3h5IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBMYXll
clRyZWVDb29yZGluYXRvclByb3h5KERyYXdpbmdBcmVhUHJveHkqKTsKICAgICB+TGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eSgpOwotICAgIHZvaWQgc2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKFdl
YkxheWVySUQsIGNvbnN0IFdlYkxheWVySW5mbyYpOwotICAgIHZvaWQgc2V0Q29tcG9zaXRpbmdM
YXllckNoaWxkcmVuKFdlYkxheWVySUQsIGNvbnN0IFZlY3RvcjxXZWJMYXllcklEPiYpOworICAg
IHZvaWQgc2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3Qg
Q29vcmRpbmF0ZWRMYXllckluZm8mKTsKKyAgICB2b2lkIHNldENvbXBvc2l0aW5nTGF5ZXJDaGls
ZHJlbihDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVySUQ+
Jik7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIHZvaWQgc2V0Q29tcG9zaXRpbmdMYXll
ckZpbHRlcnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwor
ICAgIHZvaWQgc2V0Q29tcG9zaXRpbmdMYXllckZpbHRlcnMoQ29vcmRpbmF0ZWRMYXllcklELCBj
b25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NT
X1NIQURFUlMpCiAgICAgdm9pZCBjcmVhdGVDdXN0b21GaWx0ZXJQcm9ncmFtKGludCBpZCwgY29u
c3QgV2ViQ29yZTo6Q3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8mKTsKICAgICB2b2lkIHJlbW92ZUN1
c3RvbUZpbHRlclByb2dyYW0oaW50IGlkKTsKICNlbmRpZgotICAgIHZvaWQgZGVsZXRlQ29tcG9z
aXRpbmdMYXllcihXZWJMYXllcklEKTsKLSAgICB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVy
KFdlYkxheWVySUQpOworICAgIHZvaWQgZGVsZXRlQ29tcG9zaXRpbmdMYXllcihDb29yZGluYXRl
ZExheWVySUQpOworICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoQ29vcmRpbmF0ZWRM
YXllcklEKTsKICAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmKTsKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiwgZmxvYXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHRyYWplY3Rv
cnlWZWN0b3IpOwogICAgIHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgY29udGVudHNTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCk7Ci0g
ICAgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoV2ViTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKLSAgICB2
b2lkIHVwZGF0ZVRpbGVGb3JMYXllcihXZWJMYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOwotICAgIHZvaWQg
cmVtb3ZlVGlsZUZvckxheWVyKFdlYkxheWVySUQsIHVpbnQzMl90IHRpbGVJRCk7CisgICAgdm9p
ZCBjcmVhdGVUaWxlRm9yTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCB0aWxlSUQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOworICAg
IHZvaWQgdXBkYXRlVGlsZUZvckxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgdGls
ZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsK
KyAgICB2b2lkIHJlbW92ZVRpbGVGb3JMYXllcihDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90
IHRpbGVJRCk7CiAgICAgdm9pZCBjcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3Qg
U2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlJik7CiAgICAgdm9pZCByZW1vdmVVcGRhdGVBdGxhcyhp
bnQgYXRsYXNJRCk7CiAgICAgdm9pZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmdJRCk7CkBAIC04MCwxMyArODAsMTMgQEAgcHVibGljOgogICAgIHZvaWQgcmVuZGVy
TmV4dEZyYW1lKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxQb3NpdGlvbihjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24pOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAg
IHZvaWQgY3JlYXRlQ2FudmFzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBj
b25zdCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOwotICAgIHZvaWQgc3luY0NhbnZh
cyhXZWJMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7Ci0gICAgdm9pZCBkZXN0cm95Q2Fu
dmFzKFdlYkxheWVySUQpOworICAgIHZvaWQgY3JlYXRlQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJ
RCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFj
ZVRva2VuJik7CisgICAgdm9pZCBzeW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMy
X3QgZnJvbnRCdWZmZXIpOworICAgIHZvaWQgZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVy
SUQpOwogI2VuZGlmCiAgICAgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKICAgICBMYXllclRy
ZWVSZW5kZXJlciogbGF5ZXJUcmVlUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlcmVy
LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMoV2ViTGF5ZXJJRCwgY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllckFuaW1hdGlvbnMmKTsKKyAgICB2b2lkIHNldExheWVyQW5p
bWF0aW9ucyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJB
bmltYXRpb25zJik7CiAgICAgdm9pZCBzZXRBbmltYXRpb25zTG9ja2VkKGJvb2wpOwogI2lmIEVO
QUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25G
cmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzVjMTlmZmY4NjBjNTllOTU0ODVmOGNiNWQzNmU0MTE2
OWY5OThjMy4uOGY3YWM1YTM3MDZhNzNjNWMzNzZhMzIxY2U2OTRlOWYwYzI2YjVjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0xOSw3ICsxOSw3IEBACiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CiBtZXNzYWdlcyAtPiBMYXllclRyZWVDb29yZGluYXRvclByb3h5IHsKLSAgICBTZXRDb21wb3Np
dGluZ0xheWVyU3RhdGUodWludDMyX3QgaWQsIFdlYktpdDo6V2ViTGF5ZXJJbmZvIGxheWVySW5m
bykKKyAgICBTZXRDb21wb3NpdGluZ0xheWVyU3RhdGUodWludDMyX3QgaWQsIFdlYktpdDo6Q29v
cmRpbmF0ZWRMYXllckluZm8gbGF5ZXJJbmZvKQogICAgIFNldENvbXBvc2l0aW5nTGF5ZXJDaGls
ZHJlbih1aW50MzJfdCBpZCwgVmVjdG9yPHVpbnQzMl90PiBjaGlsZHJlbikKICNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAgICAgU2V0Q29tcG9zaXRpbmdMYXllckZpbHRlcnModWludDMyX3QgaWQs
IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMgZmlsdGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmNwcAppbmRleCBjNjcyODIyZGIyMDM0ZmQ5ZTA0YTg0MDk4YWEzODczNWZlNWRl
ZjE4Li5mOGZlNmI3MTYyZWMwYmE2YmU0NGQ3ODBlZjk0NWZhNTBiYTljNTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBib29s
IGxheWVyU2hvdWxkSGF2ZUJhY2tpbmdTdG9yZShHcmFwaGljc0xheWVyKiBsYXllcikKIExheWVy
VHJlZVJlbmRlcmVyOjpMYXllclRyZWVSZW5kZXJlcihMYXllclRyZWVDb29yZGluYXRvclByb3h5
KiBsYXllclRyZWVDb29yZGluYXRvclByb3h5KQogICAgIDogbV9sYXllclRyZWVDb29yZGluYXRv
clByb3h5KGxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCiAgICAgLCBtX2lzQWN0aXZlKGZhbHNl
KQotICAgICwgbV9yb290TGF5ZXJJRChJbnZhbGlkV2ViTGF5ZXJJRCkKKyAgICAsIG1fcm9vdExh
eWVySUQoSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkKICAgICAsIG1fYW5pbWF0aW9uc0xvY2tl
ZChmYWxzZSkKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgLCBtX2Fu
aW1hdGlvbkZyYW1lUmVxdWVzdGVkKGZhbHNlKQpAQCAtODksNyArODksNyBAQCBMYXllclRyZWVS
ZW5kZXJlcjo6fkxheWVyVHJlZVJlbmRlcmVyKCkKIHsKIH0KIAotUGFzc093blB0cjxHcmFwaGlj
c0xheWVyPiBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlTGF5ZXIoV2ViTGF5ZXJJRCkKK1Bhc3NP
d25QdHI8R3JhcGhpY3NMYXllcj4gTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUxheWVyKENvb3Jk
aW5hdGVkTGF5ZXJJRCkKIHsKICAgICBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogbmV3TGF5
ZXIgPSBuZXcgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIodGhpcyk7CiAgICAgbmV3TGF5ZXIt
PnNldEhhc093bkJhY2tpbmdTdG9yZShmYWxzZSk7CkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6ZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQm
IHBvc2l0aW9uKQogfQogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi12b2lkIExheWVyVHJl
ZVJlbmRlcmVyOjpjcmVhdGVDYW52YXMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgY2FudmFzU2l6ZSwgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+IHN1cmZhY2UpCit2
b2lkIExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlk
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjYW52YXNTaXplLCBQYXNzUmVmUHRyPEdyYXBoaWNz
U3VyZmFjZT4gc3VyZmFjZSkKIHsKICAgICBBU1NFUlQobV90ZXh0dXJlTWFwcGVyKTsKICAgICBH
cmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChpZCk7CkBAIC0yNDEsNyArMjQxLDcgQEAg
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlQ2FudmFzKFdlYkxheWVySUQgaWQsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGNhbnYKICAgICBsYXllci0+c2V0Q29udGVudHNUb01lZGlhKGNh
bnZhc0JhY2tpbmdTdG9yZS5nZXQoKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnN5
bmNDYW52YXMoV2ViTGF5ZXJJRCBpZCwgdWludDMyX3QgZnJvbnRCdWZmZXIpCit2b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpzeW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgdWludDMyX3Qg
ZnJvbnRCdWZmZXIpCiB7CiAgICAgQVNTRVJUKG1fdGV4dHVyZU1hcHBlcik7CiAgICAgQVNTRVJU
KG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMuY29udGFpbnMoaWQpKTsKQEAgLTI1Miw3ICsyNTIsNyBA
QCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQsIHVpbnQz
Ml90IGZyb250QnVmZmVyKQogICAgIGNhbnZhc0JhY2tpbmdTdG9yZS0+c3dhcEJ1ZmZlcnNJZk5l
ZWRlZChmcm9udEJ1ZmZlcik7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lD
YW52YXMoV2ViTGF5ZXJJRCBpZCkKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lDYW52
YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogewogICAgIEFTU0VSVChtX3RleHR1cmVNYXBwZXIp
OwogICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGlkKTsKQEAgLTI2NCwxMyAr
MjY0LDEzIEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lDYW52YXMoV2ViTGF5ZXJJ
RCBpZCkKIH0KICNlbmRpZgogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckNoaWxk
cmVuKFdlYkxheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxXZWJMYXllcklEPiYgY2hpbGRJRHMpCit2
b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllckNoaWxkcmVuKENvb3JkaW5hdGVkTGF5ZXJJ
RCBpZCwgY29uc3QgVmVjdG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4mIGNoaWxkSURzKQogewogICAg
IEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gZW5zdXJlTGF5ZXIoaWQpOwogICAgIFZlY3RvcjxHcmFw
aGljc0xheWVyKj4gY2hpbGRyZW47CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxk
SURzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFdlYkxheWVySUQgY2hpbGRJRCA9IGNoaWxkSURz
W2ldOworICAgICAgICBDb29yZGluYXRlZExheWVySUQgY2hpbGRJRCA9IGNoaWxkSURzW2ldOwog
ICAgICAgICBHcmFwaGljc0xheWVyKiBjaGlsZCA9IGxheWVyQnlJRChjaGlsZElEKTsKICAgICAg
ICAgaWYgKCFjaGlsZCkgewogICAgICAgICAgICAgT3duUHRyPEdyYXBoaWNzTGF5ZXIqPiBuZXdD
aGlsZCA9IGNyZWF0ZUxheWVyKGNoaWxkSUQpOwpAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgTGF5
ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCBpZCwgY29uc3QgVmVj
dG9yPFdlYkxheWVySUQ+CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi12b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpzZXRMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYgZmlsdGVycykKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyRmls
dGVycyhDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRl
cnMpCiB7CiAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSBlbnN1cmVMYXllcihpZCk7CiAKQEAg
LTMyNiw3ICszMjYsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVDdXN0b21GaWx0
ZXJQcm9ncmFtKGludCBpZCkKIH0KICNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCiAKLXZv
aWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyU3RhdGUoV2ViTGF5ZXJJRCBpZCwgY29uc3Qg
V2ViTGF5ZXJJbmZvJiBsYXllckluZm8pCit2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
clN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRpbmF0ZWRMYXllckluZm8m
IGxheWVySW5mbykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGVuc3VyZUxheWVyKGlk
KTsKIApAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVy
U3RhdGUoV2ViTGF5ZXJJRCBpZCwgY29uc3QgV2ViTGF5ZXJJbmZvJiBsYXllckluCiAgICAgICAg
IHNldFJvb3RMYXllcklEKGlkKTsKIH0KIAotdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6ZGVsZXRl
TGF5ZXIoV2ViTGF5ZXJJRCBsYXllcklEKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6ZGVsZXRl
TGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQpCiB7CiAgICAgT3duUHRyPEdyYXBoaWNz
TGF5ZXI+IGxheWVyID0gbV9sYXllcnMudGFrZShsYXllcklEKTsKICAgICBpZiAoIWxheWVyKQpA
QCAtMzc3LDcgKzM3Nyw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRlbGV0ZUxheWVyKFdl
YkxheWVySUQgbGF5ZXJJRCkKIH0KIAogCi1XZWJDb3JlOjpHcmFwaGljc0xheWVyKiBMYXllclRy
ZWVSZW5kZXJlcjo6ZW5zdXJlTGF5ZXIoV2ViTGF5ZXJJRCBpZCkKK1dlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqIExheWVyVHJlZVJlbmRlcmVyOjplbnN1cmVMYXllcihDb29yZGluYXRlZExheWVySUQg
aWQpCiB7CiAgICAgTGF5ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9sYXllcnMuZmluZChpZCk7CiAg
ICAgaWYgKGl0ICE9IG1fbGF5ZXJzLmVuZCgpKQpAQCAtMzkwLDcgKzM5MCw3IEBAIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqIExheWVyVHJlZVJlbmRlcmVyOjplbnN1cmVMYXllcihXZWJMYXllcklE
IGlkKQogICAgIHJldHVybiBsYXllcjsKIH0KIAotdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0
Um9vdExheWVySUQoV2ViTGF5ZXJJRCBsYXllcklEKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6
c2V0Um9vdExheWVySUQoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQpCiB7CiAgICAgaWYgKGxh
eWVySUQgPT0gbV9yb290TGF5ZXJJRCkKICAgICAgICAgcmV0dXJuOwpAQCAtNDg1LDcgKzQ4NSw3
IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJT
aXplKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzCiAgICAgYmFja2luZ1N0b3JlLT5zZXRTaXplKGdy
YXBoaWNzTGF5ZXItPnNpemUoKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0
ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGZsb2F0IHNjYWxlKQor
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZShDb29yZGluYXRlZExheWVySUQgbGF5
ZXJJRCwgdWludDMyX3QgdGlsZUlELCBmbG9hdCBzY2FsZSkKIHsKICAgICBHcmFwaGljc0xheWVy
KiBsYXllciA9IGxheWVyQnlJRChsYXllcklEKTsKICAgICBBU1NFUlQobGF5ZXIpOwpAQCAtNDk1
LDcgKzQ5NSw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUoV2ViTGF5ZXJJ
RCBsYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGZsb2F0IHNjCiAgICAgcmVzZXRCYWNraW5nU3Rv
cmVTaXplVG9MYXllclNpemUobGF5ZXIpOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpy
ZW1vdmVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlEKQordm9pZCBMYXll
clRyZWVSZW5kZXJlcjo6cmVtb3ZlVGlsZShDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdWlu
dDMyX3QgdGlsZUlEKQogewogICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGxh
eWVySUQpOwogICAgIEFTU0VSVChsYXllcik7CkBAIC01MDgsNyArNTA4LDcgQEAgdm9pZCBMYXll
clRyZWVSZW5kZXJlcjo6cmVtb3ZlVGlsZShXZWJMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRp
bGVJRCkKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdT
dG9yZSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJ
RCBsYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFRpbGVVcGRhdGUmIHVwZGF0ZSkKK3Zv
aWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnVwZGF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVy
SUQsIHVpbnQzMl90IHRpbGVJRCwgY29uc3QgVGlsZVVwZGF0ZSYgdXBkYXRlKQogewogICAgIEdy
YXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGxheWVySUQpOwogICAgIEFTU0VSVChsYXll
cik7CkBAIC02MjAsNyArNjIwLDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6ZW5zdXJlUm9v
dExheWVyKCkKICAgICBpZiAobV9yb290TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
cm9vdExheWVyID0gY3JlYXRlTGF5ZXIoSW52YWxpZFdlYkxheWVySUQpOworICAgIG1fcm9vdExh
eWVyID0gY3JlYXRlTGF5ZXIoSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAgICAgbV9yb290
TGF5ZXItPnNldE1hc2tzVG9Cb3VuZHMoZmFsc2UpOwogICAgIG1fcm9vdExheWVyLT5zZXREcmF3
c0NvbnRlbnQoZmFsc2UpOwogICAgIG1fcm9vdExheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBv
aW50M0QoMCwgMCwgMCkpOwpAQCAtNjYzLDcgKzY2Myw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVy
ZXI6OnB1cmdlR0xSZXNvdXJjZXMoKQogCiAgICAgbV9yb290TGF5ZXItPnJlbW92ZUFsbENoaWxk
cmVuKCk7CiAgICAgbV9yb290TGF5ZXIuY2xlYXIoKTsKLSAgICBtX3Jvb3RMYXllcklEID0gSW52
YWxpZFdlYkxheWVySUQ7CisgICAgbV9yb290TGF5ZXJJRCA9IEludmFsaWRDb29yZGluYXRlZExh
eWVySUQ7CiAgICAgbV9sYXllcnMuY2xlYXIoKTsKICAgICBtX2ZpeGVkTGF5ZXJzLmNsZWFyKCk7
CiAgICAgbV90ZXh0dXJlTWFwcGVyLmNsZWFyKCk7CkBAIC02ODAsNyArNjgwLDcgQEAgdm9pZCBM
YXllclRyZWVSZW5kZXJlcjo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKICAgICAgICAgbV9sYXllclRy
ZWVDb29yZGluYXRvclByb3h5LT5wdXJnZUJhY2tpbmdTdG9yZXMoKTsKIH0KIAotdm9pZCBMYXll
clRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJBbmltYXRpb25zKFdlYkxheWVySUQgaWQsIGNvbnN0IEdy
YXBoaWNzTGF5ZXJBbmltYXRpb25zJiBhbmltYXRpb25zKQordm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6c2V0TGF5ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgR3JhcGhp
Y3NMYXllckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCiB7CiAgICAgR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIqIGxheWVyID0gdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllckJ5SUQo
aWQpKTsKICAgICBpZiAoIWxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKaW5k
ZXggYTAzYzk4MjBjY2Y0NzNhNWQ5MDZhMzhmMmFiYTI4NTA0YzlkNmI5MC4uOTkxMjNmMDI3YzNh
ZTI5NTU3ZTU1NjA5OTk5MjVmZDBhMzg3OWM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5k
ZXJlci5oCkBAIC0yMiwxMCArMjIsMTAgQEAKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKICNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIKKyNpbmNsdWRlICJDb29yZGluYXRlZExheWVy
SW5mby5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVN1cmZhY2UuaCIKICNpbmNsdWRlICJUZXh0dXJl
TWFwcGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oIgotI2luY2x1
ZGUgIldlYkxheWVyVHJlZUluZm8uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oPgpAQCAtNDgsOCArNDgsOCBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU7CiBjbGFzcyBMYXllclRy
ZWVDb29yZGluYXRvclByb3h5OwotY2xhc3MgV2ViTGF5ZXJJbmZvOwotY2xhc3MgV2ViTGF5ZXJV
cGRhdGVJbmZvOworY2xhc3MgQ29vcmRpbmF0ZWRMYXllckluZm87CitjbGFzcyBDb29yZGluYXRl
ZExheWVyVXBkYXRlSW5mbzsKIAogY2xhc3MgTGF5ZXJUcmVlUmVuZGVyZXIgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8TGF5ZXJUcmVlUmVuZGVyZXI+LCBwdWJsaWMgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CkBAIC03NCw5ICs3NCw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7
CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24pOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIHZvaWQgY3JlYXRl
Q2FudmFzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBQYXNzUmVmUHRyPFdl
YkNvcmU6OkdyYXBoaWNzU3VyZmFjZT4pOwotICAgIHZvaWQgc3luY0NhbnZhcyhXZWJMYXllcklE
LCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7Ci0gICAgdm9pZCBkZXN0cm95Q2FudmFzKFdlYkxheWVy
SUQpOworICAgIHZvaWQgY3JlYXRlQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlPik7Cisg
ICAgdm9pZCBzeW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgZnJvbnRCdWZm
ZXIpOworICAgIHZvaWQgZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVySUQpOwogI2VuZGlm
CiAKICAgICB2b2lkIGRldGFjaCgpOwpAQCAtODcsMTIgKzg3LDEyIEBAIHB1YmxpYzoKICAgICB2
b2lkIHB1cmdlR0xSZXNvdXJjZXMoKTsKICAgICB2b2lkIHNldEFjdGl2ZShib29sKTsKIAotICAg
IHZvaWQgZGVsZXRlTGF5ZXIoV2ViTGF5ZXJJRCk7Ci0gICAgdm9pZCBzZXRSb290TGF5ZXJJRChX
ZWJMYXllcklEKTsKLSAgICB2b2lkIHNldExheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCwgY29uc3Qg
VmVjdG9yPFdlYkxheWVySUQ+Jik7Ci0gICAgdm9pZCBzZXRMYXllclN0YXRlKFdlYkxheWVySUQs
IGNvbnN0IFdlYkxheWVySW5mbyYpOworICAgIHZvaWQgZGVsZXRlTGF5ZXIoQ29vcmRpbmF0ZWRM
YXllcklEKTsKKyAgICB2b2lkIHNldFJvb3RMYXllcklEKENvb3JkaW5hdGVkTGF5ZXJJRCk7Cisg
ICAgdm9pZCBzZXRMYXllckNoaWxkcmVuKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgVmVjdG9y
PENvb3JkaW5hdGVkTGF5ZXJJRD4mKTsKKyAgICB2b2lkIHNldExheWVyU3RhdGUoQ29vcmRpbmF0
ZWRMYXllcklELCBjb25zdCBDb29yZGluYXRlZExheWVySW5mbyYpOwogI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKLSAgICB2b2lkIHNldExheWVyRmlsdGVycyhXZWJMYXllcklELCBjb25zdCBXZWJD
b3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CisgICAgdm9pZCBzZXRMYXllckZpbHRlcnMoQ29vcmRp
bmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgdm9pZCBpbmplY3RDYWNoZWRDdXN0b21GaWx0
ZXJQcm9ncmFtcyhjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKSBjb25z
dDsKQEAgLTEwMCwxNSArMTAwLDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUN1c3RvbUZp
bHRlclByb2dyYW0oaW50IGlkKTsKICNlbmRpZgogCi0gICAgdm9pZCBjcmVhdGVUaWxlKFdlYkxh
eWVySUQsIHVpbnQzMl90IHRpbGVJRCwgZmxvYXQgc2NhbGUpOwotICAgIHZvaWQgcmVtb3ZlVGls
ZShXZWJMYXllcklELCB1aW50MzJfdCB0aWxlSUQpOwotICAgIHZvaWQgdXBkYXRlVGlsZShXZWJM
YXllcklELCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFRpbGVVcGRhdGUmKTsKKyAgICB2b2lkIGNy
ZWF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGZsb2F0IHNjYWxl
KTsKKyAgICB2b2lkIHJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCB0aWxl
SUQpOworICAgIHZvaWQgdXBkYXRlVGlsZShDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IHRp
bGVJRCwgY29uc3QgVGlsZVVwZGF0ZSYpOwogICAgIHZvaWQgZmx1c2hMYXllckNoYW5nZXMoKTsK
ICAgICB2b2lkIGNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsK
ICAgICB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBQ
YXNzUmVmUHRyPFNoYXJlYWJsZVN1cmZhY2U+KTsKICAgICB2b2lkIGNsZWFySW1hZ2VCYWNraW5n
Q29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCByZW1vdmVJbWFn
ZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7Ci0gICAgdm9pZCBzZXRMYXllckFu
aW1hdGlvbnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllckFuaW1hdGlv
bnMmKTsKKyAgICB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQsIGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7CiAgICAgdm9pZCBzZXRBbmlt
YXRpb25zTG9ja2VkKGJvb2wpOwogICAgIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IFdl
YkNvcmU6OkNvbG9yJik7CiAgICAgdm9pZCBzZXREcmF3c0JhY2tncm91bmQoYm9vbCBlbmFibGUp
IHsgbV9zZXREcmF3c0JhY2tncm91bmQgPSBlbmFibGU7IH0KQEAgLTExOCw5ICsxMTgsOSBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI+IGNyZWF0ZUxheWVyKFdlYkxheWVySUQpOworICAgIFBhc3NPd25QdHI8V2ViQ29y
ZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEKTsKIAotICAg
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyQnlJRChXZWJMYXllcklEIGlkKSB7IHJldHVy
biAoaWQgPT0gSW52YWxpZFdlYkxheWVySUQpID8gMCA6IG1fbGF5ZXJzLmdldChpZCk7IH0KKyAg
ICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllckJ5SUQoQ29vcmRpbmF0ZWRMYXllcklEIGlk
KSB7IHJldHVybiAoaWQgPT0gSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkgPyAwIDogbV9sYXll
cnMuZ2V0KGlkKTsgfQogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcigpIHsg
cmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9CiAKICAgICB2b2lkIHN5bmNSZW1vdGVDb250ZW50
KCk7CkBAIC0xNDIsNyArMTQyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFzc2lnbkltYWdlQmFj
a2luZ1RvTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nSUQpOwogICAgIHZvaWQgcmVtb3ZlUmVsZWFzZWRJbWFnZUJhY2tpbmdzSWZOZWVkZWQoKTsK
ICAgICB2b2lkIGVuc3VyZVJvb3RMYXllcigpOwotICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
IGVuc3VyZUxheWVyKFdlYkxheWVySUQpOworICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGVu
c3VyZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAgICAgdm9pZCBjb21taXRQZW5kaW5nQmFj
a2luZ1N0b3JlT3BlcmF0aW9ucygpOwogCiAgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUqIGdl
dEJhY2tpbmdTdG9yZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CkBAIC0xNzAsNyArMTcwLDcg
QEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4g
PiBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnM7CiAKICNpZiBVU0UoR1JBUEhJQ1Nf
U1VSRkFDRSkKLSAgICB0eXBlZGVmIEhhc2hNYXA8V2ViTGF5ZXJJRCwgUmVmUHRyPFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiA+IFN1cmZhY2VCYWNraW5nU3RvcmVN
YXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPENvb3JkaW5hdGVkTGF5ZXJJRCwgUmVmUHRyPFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiA+IFN1cmZhY2VCYWNraW5nU3Rv
cmVNYXA7CiAgICAgU3VyZmFjZUJhY2tpbmdTdG9yZU1hcCBtX3N1cmZhY2VCYWNraW5nU3RvcmVz
OwogI2VuZGlmCiAKQEAgLTE4MCwxMSArMTgwLDExIEBAIHByaXZhdGU6CiAKICAgICBPd25QdHI8
V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAKLSAgICB0eXBlZGVmIEhhc2hN
YXA8V2ViTGF5ZXJJRCwgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+ID4gTGF5ZXJNYXA7
CisgICAgdHlwZWRlZiBIYXNoTWFwPENvb3JkaW5hdGVkTGF5ZXJJRCwgT3duUHRyPFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI+ID4gTGF5ZXJNYXA7CiAgICAgTGF5ZXJNYXAgbV9sYXllcnM7Ci0gICAg
dHlwZWRlZiBIYXNoTWFwPFdlYkxheWVySUQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqPiBMYXll
clJhd1B0ck1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8Q29vcmRpbmF0ZWRMYXllcklELCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKj4gTGF5ZXJSYXdQdHJNYXA7CiAgICAgTGF5ZXJSYXdQdHJNYXAg
bV9maXhlZExheWVyczsKLSAgICBXZWJMYXllcklEIG1fcm9vdExheWVySUQ7CisgICAgQ29vcmRp
bmF0ZWRMYXllcklEIG1fcm9vdExheWVySUQ7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9yZW5k
ZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb247CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wZW5k
aW5nUmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0aW9uOwogICAgIGJvb2wgbV9hbmltYXRpb25z
TG9ja2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5k
ZXggYzRlZDA2OGI0MTI0Y2YyZmQ4ZWZmNzA3MTE1MzAxZDliNjlkYzY4NC4uZDY3OTlkZDViZTkw
YmJhMzJjMTNlMTc5NWFlNTE0M2YwMWY5ZWMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC01MCw4ICs1MCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgTGF5ZXJUcmVlQ29udGV4dDsKIGNsYXNzIExheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHk7CiBjbGFzcyBVcGRhdGVJbmZvOwotY2xhc3MgV2ViTGF5ZXJUcmVlSW5mbzsKLWNsYXNzIFdl
YkxheWVyVXBkYXRlSW5mbzsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogY2xhc3MgRHJhd2luZ0Fy
ZWFQcm94eSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA5ODU2ZjUxZjQ1MDU2MGNhYTQxNmRkODFmOThmOTFj
MjJjZTc2NDdlLi5kNmFkNzdhYTA4ZjQ4ZTRmYjgzMzNkZTk2ZDE1ZTAzZDVhMjlkN2VlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5jcHAKQEAgLTQyLDEzICs0MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBIYXNoTWFwPFdlYkxheWVySUQsIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcio+JiBsYXllckJ5SURNYXAoKQorc3RhdGljIEhhc2hNYXA8Q29vcmRp
bmF0ZWRMYXllcklELCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqPiYgbGF5ZXJCeUlETWFwKCkK
IHsKLSAgICBzdGF0aWMgSGFzaE1hcDxXZWJMYXllcklELCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIqPiBnbG9iYWxNYXA7CisgICAgc3RhdGljIEhhc2hNYXA8Q29vcmRpbmF0ZWRMYXllcklELCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqPiBnbG9iYWxNYXA7CiAgICAgcmV0dXJuIGdsb2JhbE1h
cDsKIH0KIAotc3RhdGljIFdlYkxheWVySUQgdG9XZWJMYXllcklEKEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKQorc3RhdGljIENvb3JkaW5hdGVkTGF5ZXJJRCB0b0Nvb3JkaW5hdGVkTGF5ZXJJRChHcmFw
aGljc0xheWVyKiBsYXllcikKIHsKICAgICByZXR1cm4gbGF5ZXIgPyB0b0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcihsYXllciktPmlkKCkgOiAwOwogfQpAQCAtMTI0LDcgKzEyNCw3IEBAIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5
ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fY2FudmFzUGxhdGZvcm1MYXllcigwKQogICAgICwg
bV9hbmltYXRpb25TdGFydGVkVGltZXIodGhpcywgJkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
YW5pbWF0aW9uU3RhcnRlZFRpbWVyRmlyZWQpCiB7Ci0gICAgc3RhdGljIFdlYkxheWVySUQgbmV4
dExheWVySUQgPSAxOworICAgIHN0YXRpYyBDb29yZGluYXRlZExheWVySUQgbmV4dExheWVySUQg
PSAxOwogICAgIG1faWQgPSBuZXh0TGF5ZXJJRCsrOwogICAgIGxheWVyQnlJRE1hcCgpLmFkZChp
ZCgpLCB0aGlzKTsKIH0KQEAgLTQ0MSw3ICs0NDEsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAg
ICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CiAKLVdlYkxheWVySUQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjppZCgpIGNvbnN0CitDb29yZGluYXRlZExheWVySUQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjppZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faWQ7CiB9CkBAIC00NzIsOSAr
NDcyLDkgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbigpCiAg
ICAgaWYgKCFtX3Nob3VsZFN5bmNDaGlsZHJlbikKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2hv
dWxkU3luY0NoaWxkcmVuID0gZmFsc2U7Ci0gICAgVmVjdG9yPFdlYkxheWVySUQ+IGNoaWxkSURz
OworICAgIFZlY3RvcjxDb29yZGluYXRlZExheWVySUQ+IGNoaWxkSURzOwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkKLSAgICAgICAgY2hpbGRJRHMu
YXBwZW5kKHRvV2ViTGF5ZXJJRChjaGlsZHJlbigpW2ldKSk7CisgICAgICAgIGNoaWxkSURzLmFw
cGVuZCh0b0Nvb3JkaW5hdGVkTGF5ZXJJRChjaGlsZHJlbigpW2ldKSk7CiAKICAgICBtX2Nvb3Jk
aW5hdG9yLT5zeW5jTGF5ZXJDaGlsZHJlbihtX2lkLCBjaGlsZElEcyk7CiB9CkBAIC01MzEsMTIg
KzUzMSwxMiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUo
KQogICAgIG1fbGF5ZXJJbmZvLmNvbnRlbnRzUmVjdCA9IGNvbnRlbnRzUmVjdCgpOwogICAgIG1f
bGF5ZXJJbmZvLmRyYXdzQ29udGVudCA9IGRyYXdzQ29udGVudCgpOwogICAgIG1fbGF5ZXJJbmZv
LmNvbnRlbnRzVmlzaWJsZSA9IGNvbnRlbnRzQXJlVmlzaWJsZSgpOwotICAgIG1fbGF5ZXJJbmZv
Lm1hc2sgPSB0b1dlYkxheWVySUQobWFza0xheWVyKCkpOworICAgIG1fbGF5ZXJJbmZvLm1hc2sg
PSB0b0Nvb3JkaW5hdGVkTGF5ZXJJRChtYXNrTGF5ZXIoKSk7CiAgICAgbV9sYXllckluZm8ubWFz
a3NUb0JvdW5kcyA9IG1hc2tzVG9Cb3VuZHMoKTsKICAgICBtX2xheWVySW5mby5vcGFjaXR5ID0g
b3BhY2l0eSgpOwogICAgIG1fbGF5ZXJJbmZvLnBvcyA9IHBvc2l0aW9uKCk7CiAgICAgbV9sYXll
ckluZm8ucHJlc2VydmVzM0QgPSBwcmVzZXJ2ZXMzRCgpOwotICAgIG1fbGF5ZXJJbmZvLnJlcGxp
Y2EgPSB0b1dlYkxheWVySUQocmVwbGljYUxheWVyKCkpOworICAgIG1fbGF5ZXJJbmZvLnJlcGxp
Y2EgPSB0b0Nvb3JkaW5hdGVkTGF5ZXJJRChyZXBsaWNhTGF5ZXIoKSk7CiAgICAgbV9sYXllcklu
Zm8uc2l6ZSA9IHNpemUoKTsKICAgICBtX2xheWVySW5mby50cmFuc2Zvcm0gPSB0cmFuc2Zvcm0o
KTsKICAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jTGF5ZXJTdGF0ZShtX2lkLCBtX2xheWVySW5mbyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCmluZGV4IDMwZmI4N2RkZDZkMDYwNmU2OGM1NTVjOTE4YjM0YmNjOGViYTYwNTQuLjU2
NGE5NzQxZmYxMDkyZmE0ZjI1Njg1NDVmNDViN2VhNGQ5ZjQ1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC0yMiw2
ICsyMiw3IEBACiAjZGVmaW5lIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcl9oCiAKICNpbmNsdWRl
ICJDb29yZGluYXRlZEltYWdlQmFja2luZy5oIgorI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJJ
bmZvLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRUaWxlLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2lu
dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgpAQCAtMzQsNyArMzUsNiBAQAogI2lu
Y2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRp
b25NYXRyaXguaCIKICNpbmNsdWRlICJVcGRhdGVJbmZvLmgiCi0jaW5jbHVkZSAiV2ViTGF5ZXJU
cmVlSW5mby5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpZiBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzU3VyZmFjZVRva2VuLmg+CkBAIC01Mywy
NSArNTMsMjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJDbGllbnQgewogcHVibGljOgogICAgIC8vIENvb3JkaW5hdGVkVGlsZUNsaWVudAotICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKFdlYkxheWVySUQsIHVpbnQzMl90IHRpbGVJRCwgY29u
c3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQsIHVpbnQzMl90IHRpbGVJRCwgY29u
c3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVySUQsIHVpbnQzMl90IHRpbGVJRCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMy
X3QgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklE
LCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShDb29yZGluYXRl
ZExheWVySUQsIHVpbnQzMl90IHRpbGVJRCkgPSAwOwogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpJ
bnRSZWN0IHZpc2libGVDb250ZW50c1JlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29s
IGxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+IGNyZWF0ZUltYWdlQmFja2luZ0lmTmVl
ZGVkKFdlYkNvcmU6OkltYWdlKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJTdGF0
ZShXZWJMYXllcklELCBjb25zdCBXZWJMYXllckluZm8mKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHN5bmNMYXllckNoaWxkcmVuKFdlYkxheWVySUQsIGNvbnN0IFZlY3RvcjxXZWJMYXllcklEPiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklE
LCBjb25zdCBDb29yZGluYXRlZExheWVySW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lu
Y0xheWVyQ2hpbGRyZW4oQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBWZWN0b3I8Q29vcmRpbmF0
ZWRMYXllcklEPiYpID0gMDsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgdmlydHVhbCB2
b2lkIHN5bmNMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3Bl
cmF0aW9ucyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyRmlsdGVycyhDb29yZGlu
YXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKSA9IDA7CiAjZW5k
aWYKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQ2Fu
dmFzKFdlYkxheWVySUQsIFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHN5bmNDYW52YXMoV2ViTGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXllciopID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveUNhbnZhcyhXZWJMYXllcklEKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZUNhbnZhcyhDb29yZGluYXRlZExheWVySUQsIFdlYkNvcmU6OlBs
YXRmb3JtTGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0
ZWRMYXllcklELCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCkgPSAwOwogI2VuZGlmCiAKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXll
ckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQW5pbWF0aW9ucyYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5
bmNGaXhlZExheWVycygpID0gMDsKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldFJvb3RMYXllcihib29sKTsKIAotICAgIFdlYktpdDo6V2ViTGF5ZXJJRCBpZCgpIGNv
bnN0OworICAgIFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllcklEIGlkKCkgY29uc3Q7CiAKICAgICB2
b2lkIHNldEZpeGVkVG9WaWV3cG9ydChib29sIGlzRml4ZWQpIHsgbV9maXhlZFRvVmlld3BvcnQg
PSBpc0ZpeGVkOyB9CiAKQEAgLTIwNiw4ICsyMDYsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBh
bmltYXRpb25TdGFydGVkVGltZXJGaXJlZChUaW1lcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+
Kik7CiAKLSAgICBXZWJLaXQ6OldlYkxheWVySUQgbV9pZDsKLSAgICBXZWJLaXQ6OldlYkxheWVy
SW5mbyBtX2xheWVySW5mbzsKKyAgICBXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJRCBtX2lkOwor
ICAgIFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllckluZm8gbV9sYXllckluZm87CiAgICAgR3JhcGhp
Y3NMYXllclRyYW5zZm9ybSBtX2xheWVyVHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IG1fY2FjaGVkSW52ZXJzZVRyYW5zZm9ybTsKICAgICBib29sIG1faW5VcGRhdGVNb2RlIDog
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFj
a2luZy5oCmluZGV4IDc2MjY2YTRiNDE0MGI5NDM3YjExNzI1Mzc1NzBhN2YyMDA3OTEwZGQuLjY1
ZTgyNDY3MmI5MzlmOGFjODVjZjBhZTQ2NWRiODJjMzczOTA2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaApAQCAtMjgsOSAr
MjgsOSBAQAogI2RlZmluZSBDb29yZGluYXRlZEltYWdlQmFja2luZ19oCiAKICNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllckluZm8uaCIKICNp
bmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVN1cmZhY2UuaCIKLSNpbmNsdWRl
ICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IGFi
YzJjMGYxM2Y0ZTNkNTJhNzRlYzI3NWY2M2ZhNjBmNWUwNTIwMzcuLmM5ODVkMTFiM2E2ZTAwNmMz
ZmYyNjAwYWQyM2QwYmM5MDlhNzA0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTEsNCArMSw0IEBACi0gICAgLyoKKy8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KICAqCkBAIC05OSwxNCArOTksMTQgQEAgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6
OkxheWVyVHJlZUNvb3JkaW5hdG9yKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7CiAgICAgLy8gQ3JlYXRl
IGEgcm9vdCBsYXllci4KICAgICBtX3Jvb3RMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSh0
aGlzLCB0aGlzKTsKLSAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIHdlYlJvb3RMYXllciA9
IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1fcm9vdExheWVyLmdldCgpKTsKLSAgICB3ZWJS
b290TGF5ZXItPnNldFJvb3RMYXllcih0cnVlKTsKKyAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIqIGNvb3JkaW5hdGVkUm9vdExheWVyID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9y
b290TGF5ZXIuZ2V0KCkpOworICAgIGNvb3JkaW5hdGVkUm9vdExheWVyLT5zZXRSb290TGF5ZXIo
dHJ1ZSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fcm9vdExheWVyLT5zZXROYW1lKCJMYXllclRy
ZWVDb29yZGluYXRvciByb290IGxheWVyIik7CiAjZW5kaWYKICAgICBtX3Jvb3RMYXllci0+c2V0
RHJhd3NDb250ZW50KGZhbHNlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZShtX3dlYlBhZ2Ut
PnNpemUoKSk7Ci0gICAgbV9sYXllclRyZWVDb250ZXh0LndlYkxheWVySUQgPSB0b0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcih3ZWJSb290TGF5ZXIpLT5pZCgpOworICAgIG1fbGF5ZXJUcmVlQ29u
dGV4dC5jb29yZGluYXRlZExheWVySUQgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjb29y
ZGluYXRlZFJvb3RMYXllciktPmlkKCk7CiAKICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5
ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcywgdGhpcyk7CiAjaWZuZGVmIE5ERUJVRwpA
QCAtMzA2LDcgKzMwNiw3IEBAIGJvb2wgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZsdXNoUGVuZGlu
Z0xheWVyQ2hhbmdlcygpCiAgICAgcmV0dXJuIGRpZFN5bmM7CiB9CiAKLXZvaWQgTGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OnN5bmNMYXllclN0YXRlKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkxheWVy
SW5mbyYgaW5mbykKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNMYXllclN0YXRlKENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRpbmF0ZWRMYXllckluZm8mIGluZm8pCiB7
CiAgICAgaWYgKG1fc2hvdWxkU2VuZFNjcm9sbFBvc2l0aW9uVXBkYXRlKSB7CiAgICAgICAgIG1f
d2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6RGlkQ2hh
bmdlU2Nyb2xsUG9zaXRpb24obV92aXNpYmxlQ29udGVudHNSZWN0LmxvY2F0aW9uKCkpKTsKQEAg
LTMxNywxNCArMzE3LDE0IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNMYXllclN0
YXRlKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkxheWVySW5mbyYgaW5mCiAgICAgbV93ZWJQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpTZXRDb21wb3NpdGlu
Z0xheWVyU3RhdGUoaWQsIGluZm8pKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6
c3luY0xheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCBpZCwgY29uc3QgVmVjdG9yPFdlYkxheWVySUQ+
JiBjaGlsZHJlbikKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNMYXllckNoaWxkcmVu
KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgVmVjdG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4m
IGNoaWxkcmVuKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKICAgICBtX3dlYlBh
Z2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlNldENvbXBvc2l0
aW5nTGF5ZXJDaGlsZHJlbihpZCwgY2hpbGRyZW4pKTsKIH0KIAogI2lmIFVTRShHUkFQSElDU19T
VVJGQUNFKQotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlQ2FudmFzKFdlYkxheWVy
SUQgaWQsIFBsYXRmb3JtTGF5ZXIqIGNhbnZhc1BsYXRmb3JtTGF5ZXIpCit2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yOjpjcmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBQbGF0Zm9y
bUxheWVyKiBjYW52YXNQbGF0Zm9ybUxheWVyKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0g
dHJ1ZTsKICAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiB0b2tlbiA9IGNhbnZhc1BsYXRmb3JtTGF5
ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCk7CkBAIC0zMzIsMTQgKzMzMiwxNCBAQCB2b2lkIExh
eWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVDYW52YXMoV2ViTGF5ZXJJRCBpZCwgUGxhdGZvcm1M
YXllciogY2FudmFzUGxhdAogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eTo6Q3JlYXRlQ2FudmFzKGlkLCBjYW52YXNTaXplLCB0b2tlbikpOwog
fQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQs
IFBsYXRmb3JtTGF5ZXIqIGNhbnZhc1BsYXRmb3JtTGF5ZXIpCit2b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yOjpzeW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgUGxhdGZvcm1MYXllciog
Y2FudmFzUGxhdGZvcm1MYXllcikKIHsKICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CiAg
ICAgdWludDMyX3QgZnJvbnRCdWZmZXIgPSBjYW52YXNQbGF0Zm9ybUxheWVyLT5jb3B5VG9HcmFw
aGljc1N1cmZhY2UoKTsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHk6OlN5bmNDYW52YXMoaWQsIGZyb250QnVmZmVyKSk7CiB9CiAKLXZvaWQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmRlc3Ryb3lDYW52YXMoV2ViTGF5ZXJJRCBpZCkKK3ZvaWQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlk
KQogewogICAgIGlmIChtX2lzUHVyZ2luZykKICAgICAgICAgcmV0dXJuOwpAQCAtMzUwLDcgKzM1
MCw3IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmRlc3Ryb3lDYW52YXMoV2ViTGF5ZXJJ
RCBpZCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotdm9pZCBMYXllclRyZWVD
b29yZGluYXRvcjo6c3luY0xheWVyRmlsdGVycyhXZWJMYXllcklEIGlkLCBjb25zdCBGaWx0ZXJP
cGVyYXRpb25zJiBmaWx0ZXJzKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVy
RmlsdGVycyhDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZp
bHRlcnMpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogI2lmIEVOQUJMRShDU1Nf
U0hBREVSUykKQEAgLTYzOSwxOSArNjM5LDE5IEBAIGJvb2wgTGF5ZXJUcmVlSG9zdDo6c3VwcG9y
dHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBM
YXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIHVpbnQz
Ml90IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHRpbGVSZWN0KQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3Jl
YXRlVGlsZShDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25z
dCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
dGlsZVJlY3QpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogICAgIG1fd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Q3JlYXRlVGlsZUZv
ckxheWVyKGxheWVySUQsIHRpbGVJRCwgdGlsZVJlY3QsIHVwZGF0ZUluZm8pKTsKIH0KIAotdm9p
ZCBMYXllclRyZWVDb29yZGluYXRvcjo6dXBkYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIHVp
bnQzMl90IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHRpbGVSZWN0KQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6
dXBkYXRlVGlsZShDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBj
b25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdGlsZVJlY3QpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogICAgIG1fd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6VXBkYXRlVGls
ZUZvckxheWVyKGxheWVySUQsIHRpbGVJRCwgdGlsZVJlY3QsIHVwZGF0ZUluZm8pKTsKIH0KIAot
dm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVtb3ZlVGlsZShXZWJMYXllcklEIGxheWVySUQs
IHVpbnQzMl90IHRpbGVJRCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbW92ZVRpbGUo
Q29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCkKIHsKICAgICBpZiAo
bV9pc1B1cmdpbmcpCiAgICAgICAgIHJldHVybjsKQEAgLTY3Nyw3ICs2NzcsNyBAQCBXZWJDb3Jl
OjpJbnRSZWN0IExheWVyVHJlZUNvb3JkaW5hdG9yOjp2aXNpYmxlQ29udGVudHNSZWN0KCkgY29u
c3QKIH0KIAogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzZXRMYXllckFuaW1hdGlvbnMo
V2ViTGF5ZXJJRCBsYXllcklELCBjb25zdCBHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYgYW5pbWF0
aW9ucykKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNldExheWVyQW5pbWF0aW9ucyhDb29y
ZGluYXRlZExheWVySUQgbGF5ZXJJRCwgY29uc3QgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMmIGFu
aW1hdGlvbnMpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogICAgIEdyYXBoaWNz
TGF5ZXJBbmltYXRpb25zIGFjdGl2ZUFuaW1hdGlvbnMgPSBhbmltYXRpb25zLmdldEFjdGl2ZUFu
aW1hdGlvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvci5oCmluZGV4IDRkMjk1MjM5YjdkMzgxMmYxOThiNDRjMTY3MDU3MDE5YmU2MWIxNDYu
LjI2OGE4YTkxYzI0ZDI2ZjNjMmU5ZTk3MmQ4YjVlNzRlOTI3ZjQ4NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtNzgsOSArNzgs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdl
KCkgeyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiBj
cmVhdGVJbWFnZUJhY2tpbmdJZk5lZWRlZChXZWJDb3JlOjpJbWFnZSopIE9WRVJSSURFOwogCi0g
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBj
b25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZShXZWJMYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0
IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVySUQsIHVpbnQzMl90IHRpbGVJRCk7CisgICAgdmly
dHVhbCB2b2lkIGNyZWF0ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCB0aWxlSUQs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgdGls
ZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90
IHRpbGVJRCk7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHZpc2libGVDb250ZW50c1Jl
Y3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCk7CiAgICAgdmly
dHVhbCB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOwpAQCAtODksMTYgKzg5LDE2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3Rvcnkq
IGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3lu
Y0xheWVyU3RhdGUoV2ViTGF5ZXJJRCwgY29uc3QgV2ViTGF5ZXJJbmZvJik7Ci0gICAgdmlydHVh
bCB2b2lkIHN5bmNMYXllckNoaWxkcmVuKFdlYkxheWVySUQsIGNvbnN0IFZlY3RvcjxXZWJMYXll
cklEPiYpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMoV2ViTGF5ZXJJRCwg
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllckFuaW1hdGlvbnMmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc3luY0xheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBDb29yZGluYXRlZExh
eWVySW5mbyYpOworICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJDaGlsZHJlbihDb29yZGluYXRl
ZExheWVySUQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVySUQ+Jik7CisgICAgdmlydHVh
bCB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQot
ICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNv
cmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyRmlsdGVy
cyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsK
ICNlbmRpZgogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVDYW52YXMoV2ViTGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXllciopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2FudmFzKFdlYkxheWVySUQsIFdlYkNvcmU6OlBsYXRmb3Jt
TGF5ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveUNhbnZhcyhXZWJMYXll
cklEKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQ2FudmFzKENvb3JkaW5hdGVk
TGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXllciopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzeW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXll
ciopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVk
TGF5ZXJJRCkgT1ZFUlJJREU7CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHN5
bmNGaXhlZExheWVycygpOwpAQCAtMTcxLDcgKzE3MSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRy
PFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcGFnZU92ZXJsYXlMYXllcjsKIAogICAgIEhhc2hT
ZXQ8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4gbV9yZWdpc3RlcmVkTGF5ZXJz
OwotICAgIFZlY3RvcjxXZWJMYXllcklEPiBtX2RldGFjaGVkTGF5ZXJzOworICAgIFZlY3RvcjxD
b29yZGluYXRlZExheWVySUQ+IG1fZGV0YWNoZWRMYXllcnM7CiAgICAgdHlwZWRlZiBIYXNoTWFw
PENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIFJlZlB0cjxDb29yZGluYXRlZEltYWdlQmFja2lu
Zz4gPiBJbWFnZUJhY2tpbmdNYXA7CiAgICAgSW1hZ2VCYWNraW5nTWFwIG1faW1hZ2VCYWNraW5n
czsKICAgICBWZWN0b3I8T3duUHRyPFVwZGF0ZUF0bGFzPiA+IG1fdXBkYXRlQXRsYXNlczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>