<?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>166713</bug_id>
          
          <creation_ts>2017-01-04 20:40:31 -0800</creation_ts>
          <short_desc>[QuickLook] Consolidate usage of QuickLookHandle into SubresourceLoader</short_desc>
          <delta_ts>2017-01-07 13:01:35 -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>New Bugs</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>japhet</cc>
    
    <cc>thorton</cc>
    
    <cc>yongjun_zhang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1263997</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-04 20:40:31 -0800</bug_when>
    <thetext>[QuickLook] Consolidate usage of QuickLookHandle into SubresourceLoader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263998</commentid>
    <comment_count>1</comment_count>
      <attachid>298065</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-04 20:41:36 -0800</bug_when>
    <thetext>Created attachment 298065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263999</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 20:43:12 -0800</bug_when>
    <thetext>Attachment 298065 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264694</commentid>
    <comment_count>3</comment_count>
      <attachid>298272</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-07 05:00:09 -0800</bug_when>
    <thetext>Created attachment 298272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264716</commentid>
    <comment_count>4</comment_count>
      <attachid>298272</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-07 11:44:39 -0800</bug_when>
    <thetext>Comment on attachment 298272
Patch

ahhhhh, much better.
I guess we&apos;re ok with appcache not using quicklook for now?  See ApplicationCacheGroup, which we ought to also fix so it&apos;s not loading in the WebProcess.  It uses ResourceHandle directly right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264719</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-07 12:35:28 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 298272 [details]
&gt; Patch
&gt; 
&gt; ahhhhh, much better.
&gt; I guess we&apos;re ok with appcache not using quicklook for now?  See
&gt; ApplicationCacheGroup, which we ought to also fix so it&apos;s not loading in the
&gt; WebProcess.  It uses ResourceHandle directly right now.

Yeah, we&apos;re ok with this. Documents converted by QuickLook can&apos;t have a cache manifest (they aren&apos;t HTML), and can&apos;t be specified in a cache manifest (they&apos;re only loaded as main resources).

The old ResourceHandle code would&apos;ve never even created a QuickLookHandle for ApplicationCacheGroup loads, since it checked that firstRequest&apos;s requester was Requester::Main, which is only set by DocumentLoader.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264724</commentid>
    <comment_count>6</comment_count>
      <attachid>298272</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-07 13:01:30 -0800</bug_when>
    <thetext>Comment on attachment 298272
Patch

Clearing flags on attachment: 298272

Committed r210480: &lt;http://trac.webkit.org/changeset/210480&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264725</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-07 13:01:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298065</attachid>
            <date>2017-01-04 20:41:36 -0800</date>
            <delta_ts>2017-01-07 05:00:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166713-20170104204008.patch</filename>
            <type>text/plain</type>
            <size>41479</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MyNzcxMjFjNTczMzQ5
ZWRhYjQxYzY3ODRhM2JkNjlhMTE1MDk4NS4uZmQwNmU0YmMyNDMzYzA4MTk1NjU3YjQ2NzMyZGY5
MjExNjg0NDgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYwIEBACiAyMDE3LTAxLTA0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBbUXVpY2tMb29rXSBDb25zb2xp
ZGF0ZSB1c2FnZSBvZiBRdWlja0xvb2tIYW5kbGUgaW50byBTdWJyZXNvdXJjZUxvYWRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NzEzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IChPT1BTISkuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVz
b3VyY2VMb2FkZXI6OnNob3VsZENyZWF0ZVF1aWNrTG9va0hhbmRsZUZvclJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKiBs
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvaW9zL1F1aWNrTG9v
ay5oOgorICAgICAgICAqIGxvYWRlci9pb3MvUXVpY2tMb29rLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UXVpY2tMb29rSGFuZGxlOjpRdWlja0xvb2tIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6
UXVpY2tMb29rSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UXVpY2tMb29rSGFu
ZGxlOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6
OmRpZFJlY2VpdmVCdWZmZXIpOgorICAgICAgICAoLVtXZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVn
YXRlIGluaXRXaXRoQ29ubmVjdGlvbkRlbGVnYXRlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
ZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZURhdGFBcnJh
eTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUXVpY2tMb29rSGFuZGxlQXNEZWxlZ2F0ZSBj
b25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb25EaWRGaW5pc2hM
b2FkaW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVn
YXRlIGNvbm5lY3Rpb246ZGlkRmFpbFdpdGhFcnJvcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V2ViUXVpY2tMb29rSGFuZGxlQXNEZWxlZ2F0ZSBkZXRhY2hIYW5kbGVdKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6Y2ZSZXNwb25zZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6OmRpZFJlY2VpdmVEYXRhQXJyYXkpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2NvY29hL1NoYXJlZEJ1ZmZlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkQnVmZmVyOjpjcmVhdGVOU0RhdGFBcnJheSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnF1aWNrTG9va0hh
bmRsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZENy
ZWF0ZVF1aWNrTG9va0hhbmRsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6U3lu
Y2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZl
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGU6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRGYWls
KToKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5l
Y3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFBcnJheSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6c2V0UXVpY2tMb29rSGFuZGxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tOgorICAg
ICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVj
ZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVn
YXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZURhdGFBcnJheTpdKToKKyAgICAgICAgKC1bV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0
aFJlY2VpdmVkOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRl
IGNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkRmFpbFdpdGhFcnJvcjpdKToKKworMjAx
Ny0wMS0wNCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKICAgICAgICAgW0NvY29h
XSBUZWFjaCBTaGFyZWRCdWZmZXIgdG8gcmV0dXJuIGFuIE5TQXJyYXkgb2YgZGF0YSBzZWdtZW50
cyB0byBhdm9pZCBmbGF0dGVuaW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjY2OTYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI4OTRlOTYxNmU0YTM1ODFmNDhh
YmMyNDkwZDhmMTlmZWQxOGQzMzYuLjY3NmJmNjM0MjY5ZjE4MmNlMDYwZGJiY2FmZWQwZDQyZTg4
OGU5MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wMS0wNCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW1F1aWNrTG9va10gQ29uc29saWRhdGUg
dXNhZ2Ugb2YgUXVpY2tMb29rSGFuZGxlIGludG8gU3VicmVzb3VyY2VMb2FkZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjcxMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UpOgorCiAyMDE3LTAxLTA0ICBSeWFuIEhhZGRh
ZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMTAyODcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IDhj
OThkMTJkZDZhNjM1N2Y0MmU2ZDYyNmM3YzZmNGVhYmI2MTVkNWEuLjQ1ZDZlMjRhY2U2ZTRiZDkw
MzJkYmE4ZjRhNGNlOWNiMWYwMjVkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTUwLDExICs1MCw4IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1l
TG9hZGVyOwotY2xhc3MgVVJMOwotCi0jaWYgVVNFKFFVSUNLX0xPT0spCiBjbGFzcyBRdWlja0xv
b2tIYW5kbGU7Ci0jZW5kaWYKK2NsYXNzIFVSTDsKIAogY2xhc3MgUmVzb3VyY2VMb2FkZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxSZXNvdXJjZUxvYWRlcj4sIHByb3RlY3RlZCBSZXNvdXJjZUhhbmRs
ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC0xMTksNyArMTE2LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpOwogCiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgdm9pZCBkaWRDcmVhdGVRdWlja0xvb2tI
YW5kbGUoUXVpY2tMb29rSGFuZGxlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDcmVhdGVRdWlj
a0xvb2tIYW5kbGUoUXVpY2tMb29rSGFuZGxlJik7CiAjZW5kaWYKICAgICBib29sIGlzUXVpY2tM
b29rUmVzb3VyY2UoKSB7IHJldHVybiBtX2lzUXVpY2tMb29rUmVzb3VyY2U7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggY2EwYmMwMGQxMjVj
MGQ4MjBlMWE3OGZlNTkwNWNmYjViODE2ZmM2NS4uNzY4OWQ3ODRiNDJmNzE2NjI2ZWU1NzMxMDMw
MTMxMmUwNTYwZTllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2Fk
ZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA3LCAy
MDA5LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTcsNiArNTcsMTAgQEAKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRJbmZvLmgiCiAjZW5kaWYKIAorI2lmIFVTRShRVUlDS19MT09LKQorI2luY2x1ZGUgIlF1
aWNrTG9vay5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogREVGSU5FX0RFQlVH
X09OTFlfR0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCBzdWJyZXNvdXJjZUxvYWRl
ckNvdW50ZXIsICgiU3VicmVzb3VyY2VMb2FkZXIiKSk7CkBAIC0yNDcsMTEgKzI1MSwzMSBAQCB2
b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0
ZXNTZW50LCB1bnNpZ25lZCBsb25nCiAgICAgbV9yZXNvdXJjZS0+ZGlkU2VuZERhdGEoYnl0ZXNT
ZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwogfQogCisjaWYgVVNFKFFVSUNLX0xPT0spCitib29s
IFN1YnJlc291cmNlTG9hZGVyOjpzaG91bGRDcmVhdGVRdWlja0xvb2tIYW5kbGVGb3JSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgY29uc3QKK3sKKyAgICBpZiAobV9y
ZXNvdXJjZS0+dHlwZSgpICE9IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmIChtX2RvY3VtZW50TG9hZGVyLT5xdWlja0xvb2tIYW5k
bGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIFF1aWNrTG9va0hhbmRs
ZTo6c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSk7Cit9CisjZW5k
aWYKKwogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIEFTU0VSVCghcmVzcG9uc2UuaXNOdWxs
KCkpOwogICAgIEFTU0VSVChtX3N0YXRlID09IEluaXRpYWxpemVkKTsKIAorI2lmIFVTRShRVUlD
S19MT09LKQorICAgIGlmIChzaG91bGRDcmVhdGVRdWlja0xvb2tIYW5kbGVGb3JSZXNwb25zZShy
ZXNwb25zZSkpIHsKKyAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c2V0UXVpY2tMb29rSGFuZGxl
KFF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKCp0aGlzLCByZXNwb25zZSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorI2VuZGlmCisKICAgICAvLyBXZSB3YW50IHJlZGlyZWN0IHJlc3BvbnNlcyB0
byBiZSBwcm9jZXNzZWQgdGhyb3VnaCB3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbC4gVGhlIG9ubHkg
ZXhjZXB0aW9uIGlzIHJlZGlyZWN0aW9uIHdpdGggbm8gTG9jYXRpb24gaGVhZGVycy4KICAgICBB
U1NFUlQocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA8IDMwMCB8fCByZXNwb25zZS5odHRwU3Rh
dHVzQ29kZSgpID49IDQwMCB8fCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDMwNCB8fCAh
cmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpMb2NhdGlvbikpOwogCkBA
IC0zMjUsMTEgKzM0OSwyNSBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAKIHZvaWQgU3VicmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxv
YWRUeXBlKQogeworI2lmIFVTRShRVUlDS19MT09LKQorICAgIGlmIChhdXRvIHF1aWNrTG9va0hh
bmRsZSA9IG1fZG9jdW1lbnRMb2FkZXItPnF1aWNrTG9va0hhbmRsZSgpKSB7CisgICAgICAgIGlm
IChxdWlja0xvb2tIYW5kbGUtPmRpZFJlY2VpdmVEYXRhKGRhdGEsIGxlbmd0aCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBkaWRSZWNlaXZlRGF0YU9yQnVmZmVy
KGRhdGEsIGxlbmd0aCwgbnVsbHB0ciwgZW5jb2RlZERhdGFMZW5ndGgsIGRhdGFQYXlsb2FkVHlw
ZSk7CiB9CiAKIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNo
YXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBh
eWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKIHsKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBp
ZiAoYXV0byBxdWlja0xvb2tIYW5kbGUgPSBtX2RvY3VtZW50TG9hZGVyLT5xdWlja0xvb2tIYW5k
bGUoKSkgeworICAgICAgICBpZiAocXVpY2tMb29rSGFuZGxlLT5kaWRSZWNlaXZlQnVmZmVyKGJ1
ZmZlci5nZXQoKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBk
aWRSZWNlaXZlRGF0YU9yQnVmZmVyKG51bGxwdHIsIDAsIFdURk1vdmUoYnVmZmVyKSwgZW5jb2Rl
ZERhdGFMZW5ndGgsIGRhdGFQYXlsb2FkVHlwZSk7CiB9CiAKQEAgLTQ2OCw2ICs1MDYsMTMgQEAg
Ym9vbCBTdWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tSZWRpcmVjdGlvbkNyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbChjb25zdCBSZXNvdXJjZVIKIAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkRmlu
aXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkKIHsKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAg
ICBpZiAoYXV0byBxdWlja0xvb2tIYW5kbGUgPSBtX2RvY3VtZW50TG9hZGVyLT5xdWlja0xvb2tI
YW5kbGUoKSkgeworICAgICAgICBpZiAocXVpY2tMb29rSGFuZGxlLT5kaWRGaW5pc2hMb2FkaW5n
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9zdGF0
ZSAhPSBJbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCghcmVhY2hlZFRl
cm1pbmFsU3RhdGUoKSk7CkBAIC01MTAsNiArNTU1LDExIEBAIHZvaWQgU3VicmVzb3VyY2VMb2Fk
ZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCiAKIHZvaWQgU3VicmVzb3Vy
Y2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CisjaWYgVVNF
KFFVSUNLX0xPT0spCisgICAgaWYgKGF1dG8gcXVpY2tMb29rSGFuZGxlID0gbV9kb2N1bWVudExv
YWRlci0+cXVpY2tMb29rSGFuZGxlKCkpCisgICAgICAgIHF1aWNrTG9va0hhbmRsZS0+ZGlkRmFp
bCgpOworI2VuZGlmCisKICAgICBpZiAobV9zdGF0ZSAhPSBJbml0aWFsaXplZCkKICAgICAgICAg
cmV0dXJuOwogICAgIEFTU0VSVCghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCmluZGV4IDg0YzBhYzRlY2M3YTNiOGI0YTg1
N2ZhNDMwYmVmYjE1ODc0ZjNmMTcuLmY2ZWE2NmU0OTdiZWZlYWI0MmE0ZTUwOTZiYjE0MTVkOWZh
MDU0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTEwMSw2ICsxMDEsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbm90aWZ5RG9uZSgp
OwogCisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgYm9vbCBzaG91bGRDcmVhdGVRdWlja0xvb2tI
YW5kbGVGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgY29uc3Q7CisjZW5kaWYK
KwogICAgIGVudW0gU3VicmVzb3VyY2VMb2FkZXJTdGF0ZSB7CiAgICAgICAgIFVuaW5pdGlhbGl6
ZWQsCiAgICAgICAgIEluaXRpYWxpemVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2lvcy9RdWlja0xvb2suaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pb3MvUXVpY2tMb29r
LmgKaW5kZXggNGRhMDQ1YjlhMjY5ZTY3MzQ5Mjg2YTIyYjMzYjkzMTI4OGJlMDY5OC4uNmUzNjRh
NDM0YTc5ODNlZjJkNmQ3MjhjZWJmNjEwYzA4Mjk4N2EzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2lvcy9RdWlja0xvb2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aW9zL1F1aWNrTG9vay5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzksMTcgKzM5LDE1IEBAIE9CSkNfQ0xBU1MgTlNGaWxlSGFu
ZGxlOwogT0JKQ19DTEFTUyBOU1NldDsKIE9CSkNfQ0xBU1MgTlNTdHJpbmc7CiBPQkpDX0NMQVNT
IE5TVVJMOwotT0JKQ19DTEFTUyBOU1VSTENvbm5lY3Rpb247CiBPQkpDX0NMQVNTIE5TVVJMUmVx
dWVzdDsKIE9CSkNfQ0xBU1MgTlNVUkxSZXNwb25zZTsKIE9CSkNfQ0xBU1MgUUxQcmV2aWV3Q29u
dmVydGVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlc291cmNlSGFuZGxlOwog
Y2xhc3MgUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgU3lu
Y2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOworY2xhc3MgU2hh
cmVkQnVmZmVyOwogY2xhc3MgVVJMOwogCiBXRUJDT1JFX0VYUE9SVCBOU1NldCAqUUxQcmV2aWV3
R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCk7CkBAIC03NCwyNiArNzIsMTYgQEAgV0VCQ09SRV9F
WFBPUlQgTlNTdHJpbmcgKmNyZWF0ZVRlbXBvcmFyeUZpbGVGb3JRdWlja0xvb2soTlNTdHJpbmcg
KmZpbGVOYW1lKTsKIGNsYXNzIFF1aWNrTG9va0hhbmRsZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUXVpY2tMb29rSGFuZGxlKTsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgYm9vbCBzaG91bGRDcmVhdGVGb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0
aWMgYm9vbCBzaG91bGRDcmVhdGVGb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gY3JlYXRlKFJlc291cmNlTG9hZGVy
JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIH5RdWlja0xvb2tIYW5kbGUoKTsKIAot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBjcmVhdGUoUmVzb3Vy
Y2VIYW5kbGUqLCBOU1VSTENvbm5lY3Rpb24gKiwgTlNVUkxSZXNwb25zZSAqLCBpZCBkZWxlZ2F0
ZSk7Ci0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFF1aWNrTG9va0hhbmRsZT4gY3JlYXRlKFJlc291cmNlSGFuZGxlKiwgU3luY2hyb25vdXNSZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlKiwgQ0ZVUkxSZXNwb25zZVJlZik7Ci0j
ZW5kaWYKLSAgICAvLyBGSVhNRTogVXNlIG9mIFJlc291cmNlTG9hZGVyIGhlcmUgaXMgYSBwbGF0
Zm9ybSB2aW9sYXRpb24uCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxRdWlja0xvb2tIYW5kbGU+IGNyZWF0ZShSZXNvdXJjZUxvYWRlciYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKLQotICAgIFdFQkNPUkVfRVhQT1JUIH5RdWlja0xvb2tIYW5kbGUoKTsKLQot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRpZFJlY2VpdmVEYXRhKENGRGF0YVJlZik7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBkaWRGaW5pc2hMb2FkaW5nKCk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRGYWlsKCk7CisgICAgYm9vbCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIGJvb2wgZGlkUmVjZWl2ZUJ1ZmZlcihjb25zdCBT
aGFyZWRCdWZmZXImKTsKKyAgICBib29sIGRpZEZpbmlzaExvYWRpbmcoKTsKKyAgICB2b2lkIGRp
ZEZhaWwoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIE5TVVJMUmVzcG9uc2UgKm5zUmVzcG9uc2Uo
KTsKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNw
b25zZSgpOwotI2VuZGlmCiAKICAgICB2b2lkIHNldENsaWVudChQYXNzUmVmUHRyPFF1aWNrTG9v
a0hhbmRsZUNsaWVudD4gY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAKQEAgLTEwNCw3
ICs5Miw3IEBAIHB1YmxpYzoKICAgICBRTFByZXZpZXdDb252ZXJ0ZXIgKmNvbnZlcnRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fY29udmVydGVyLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgUXVpY2tM
b29rSGFuZGxlKE5TVVJMICosIE5TVVJMQ29ubmVjdGlvbiAqLCBOU1VSTFJlc3BvbnNlICosIGlk
IGRlbGVnYXRlKTsKKyAgICBRdWlja0xvb2tIYW5kbGUoTlNVUkwgKiwgTlNVUkxSZXNwb25zZSAq
LCBpZCBkZWxlZ2F0ZSk7CiAKICAgICBSZXRhaW5QdHI8TlNVUkw+IG1fZmlyc3RSZXF1ZXN0VVJM
OwogICAgIFJldGFpblB0cjxRTFByZXZpZXdDb252ZXJ0ZXI+IG1fY29udmVydGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9RdWlja0xvb2subW0gYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5tbQppbmRleCBlYWRmM2RkNGJiZjE1MDg3ZDQ1MmI1
M2Y4YThmZDMxZThjZTMzNjUyLi4zODNhNzhiMWE3ZTMzZjFiMDMzMWY1MzU4MWIyNjVmNmU3NTk4
ZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5tbQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDIxICsy
OCwxNSBAQAogCiAjaWYgVVNFKFFVSUNLX0xPT0spCiAKLSNpbXBvcnQgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW1wb3J0ICJGaWxlU3lzdGVtSU9TLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1w
b3J0ICJOU0ZpbGVNYW5hZ2VyU1BJLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUVycm9yLmgiCi0jaW1w
b3J0ICJSZXNvdXJjZUhhbmRsZS5oIgogI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXIuaCIKLSNpbXBv
cnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2ltcG9ydCAiU3luY2hyb25vdXNSZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJTaGFyZWRCdWZm
ZXIuaCIKICNpbXBvcnQgIldlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUuaCIKLSNpbXBv
cnQgIldlYkNvcmVVUkxSZXNwb25zZUlPUy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0
aW9uLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbXBvcnQgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KLSNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9WZWN0
b3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xODUsODEgKzE3OSw2
IEBAIGNvbnN0IGNoYXIqIFdlYkNvcmU6OlFMUHJldmlld1Byb3RvY29sKCkKICAgICByZXR1cm4g
cHJldmlld1Byb3RvY29sLmdldCgpLmRhdGEoKTsKIH0KIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJ
T04pCi0vLyBUaGUgd2F5IFF1aWNrTG9vayB3b3JrcyBpcyB3ZSBwYXNzIGl0IGFuIE5TVVJMQ29u
bmVjdGlvbkRlbGVnYXRlIGNhbGxiYWNrIG9iamVjdCBhdCBjcmVhdGlvbgotLy8gdGltZS4gVGhl
biB3ZSBwYXNzIGl0IGFsbCB0aGUgZGF0YSBhcyB3ZSByZWNlaXZlIGl0LiBPbmNlIHdlJ3ZlIGRv
d25sb2FkZWQgdGhlIGZ1bGwgVVJMLAotLy8gUXVpY2tMb29rIHR1cm5zIGFyb3VuZCBhbmQgc2Vu
ZCB1cywgdGhyb3VnaCB0aGlzIGRlbGVnYXRlLCB0aGUgSFRNTCB2ZXJzaW9uIG9mIHRoZSBmaWxl
IHdoaWNoIHdlCi0vLyBwYXNzIG9uIHRvIFdlYkNvcmUuIFRoZSBmbGFnIG1fZmluaXNoZWRMb2Fk
aW5nRGF0YUludG9Db252ZXJ0ZXIgaW4gUXVpY2tMb29rSGFuZGxlIGRlY2lkZXMKLS8vIHdoZXRo
ZXIgdG8gcGFzcyB0aGUgZGF0YSB0byBRdWlja0xvb2sgb3IgV2ViQ29yZS4KLS8vCi0vLyBUaGlz
IHdvcmtzIGZpbmUgd2hlbiB1c2luZyBOUyBBUElzLCBidXQgd2hlbiB1c2luZyBDRk5ldHdvcmss
IHdlIGRvbid0IGhhdmUgYSBOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZS4KLS8vIFNvIHdlIGNyZWF0
ZSBXZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlIGFzIGFuIGludGVybWVkaWF0ZSBkZWxlZ2F0
ZSBvYmplY3QgYW5kIHBhc3MgaXQgdG8KLS8vIFFMUHJldmlld0NvbnZlcnRlci4gVGhlIHByb3h5
IGRlbGVnYXRlIHRoZW4gZm9yd2FyZHMgdGhlIG1lc3NhZ2VzIG9uIHRvIHRoZSBDRk5ldHdvcmsg
Y29kZS4KLUBpbnRlcmZhY2UgV2ViUXVpY2tMb29rSGFuZGxlQXNEZWxlZ2F0ZSA6IE5TT2JqZWN0
IDxOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZSwgV2ViQ29yZVJlc291cmNlTG9hZGVyRGVsZWdhdGU+
IHsKLSAgICBSZWZQdHI8U3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlPiBtX2Nvbm5lY3Rpb25EZWxlZ2F0ZTsKLX0KLQotLSAoaWQpaW5pdFdpdGhDb25uZWN0
aW9uRGVsZWdhdGU6KFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZSopY29ubmVjdGlvbkRlbGVnYXRlOwotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV2ViUXVp
Y2tMb29rSGFuZGxlQXNEZWxlZ2F0ZQotLSAoaWQpaW5pdFdpdGhDb25uZWN0aW9uRGVsZWdhdGU6
KFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZSopY29ubmVj
dGlvbkRlbGVnYXRlCi17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBpZiAoIXNlbGYp
Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgbV9jb25uZWN0aW9uRGVsZWdhdGUgPSBjb25uZWN0
aW9uRGVsZWdhdGU7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpY29ubmVjdGlvbjoo
TlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YUFycmF5OihOU0FycmF5
ICopZGF0YUFycmF5Ci17Ci0gICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwotICAgIGlmICgh
bV9jb25uZWN0aW9uRGVsZWdhdGUpCi0gICAgICAgIHJldHVybjsKLSAgICBMT0coTmV0d29yaywg
IldlYlF1aWNrTG9va0hhbmRsZUFzRGVsZWdhdGU6OmRpZFJlY2VpdmVEYXRhQXJyYXkoKSIpOwot
ICAgIG1fY29ubmVjdGlvbkRlbGVnYXRlLT5kaWRSZWNlaXZlRGF0YUFycmF5KHJlaW50ZXJwcmV0
X2Nhc3Q8Q0ZBcnJheVJlZj4oZGF0YUFycmF5KSk7Ci19Ci0KLS0gKHZvaWQpY29ubmVjdGlvbjoo
TlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0
YSBsZW5ndGhSZWNlaXZlZDoobG9uZyBsb25nKWxlbmd0aFJlY2VpdmVkCi17Ci0gICAgVU5VU0VE
X1BBUkFNKGNvbm5lY3Rpb24pOwotICAgIGlmICghbV9jb25uZWN0aW9uRGVsZWdhdGUpCi0gICAg
ICAgIHJldHVybjsKLSAgICBMT0coTmV0d29yaywgIldlYlF1aWNrTG9va0hhbmRsZUFzRGVsZWdh
dGU6OmRpZFJlY2VpdmVEYXRhKCkgLSBkYXRhIGxlbmd0aCA9ICVsZCIsIChsb25nKVtkYXRhIGxl
bmd0aF0pOwotCi0gICAgLy8gUXVpY2tMb29rIGNvZGUgc2VuZHMgdXMgYSBuaWwgZGF0YSBhdCB0
aW1lcy4gVGhlIGNoZWNrIGJlbG93IGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4KLSAgICAvLyBS
ZXNvdXJjZUhhbmRsZU1hYy5jcHAgYWRkZWQgZm9yIGEgZGlmZmVyZW50IGJ1Zy4KLSAgICBpZiAo
IVtkYXRhIGxlbmd0aF0pCi0gICAgICAgIHJldHVybjsKLSAgICBtX2Nvbm5lY3Rpb25EZWxlZ2F0
ZS0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxDRkRhdGFSZWY+KGRhdGEpLCBzdGF0
aWNfY2FzdDxpbnQ+KGxlbmd0aFJlY2VpdmVkKSk7Ci19Ci0KLS0gKHZvaWQpY29ubmVjdGlvbkRp
ZEZpbmlzaExvYWRpbmc6KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KLXsKLSAgICBVTlVT
RURfUEFSQU0oY29ubmVjdGlvbik7Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb25EZWxlZ2F0ZSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIExPRyhOZXR3b3JrLCAiV2ViUXVpY2tMb29rSGFuZGxlQXNEZWxl
Z2F0ZTo6ZGlkRmluaXNoTG9hZGluZygpIik7Ci0gICAgbV9jb25uZWN0aW9uRGVsZWdhdGUtPmRp
ZEZpbmlzaExvYWRpbmcoKTsKLX0KLQotLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rp
b24gKiljb25uZWN0aW9uIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgotewotICAg
IFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKLSAgICBpZiAoIW1fY29ubmVjdGlvbkRlbGVnYXRl
KQotICAgICAgICByZXR1cm47Ci0gICAgTE9HKE5ldHdvcmssICJXZWJRdWlja0xvb2tIYW5kbGVB
c0RlbGVnYXRlOjpkaWRGYWlsKCkiKTsKLSAgICBtX2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+ZGlkRmFp
bChyZWludGVycHJldF9jYXN0PENGRXJyb3JSZWY+KGVycm9yKSk7Ci19Ci0KLS0gKHZvaWQpZGV0
YWNoSGFuZGxlCi17Ci0gICAgbV9jb25uZWN0aW9uRGVsZWdhdGUgPSBudWxscHRyOwotfQotQGVu
ZAotI2VuZGlmCi0KIEBpbnRlcmZhY2UgV2ViUmVzb3VyY2VMb2FkZXJRdWlja0xvb2tEZWxlZ2F0
ZSA6IE5TT2JqZWN0IDxOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZSwgV2ViQ29yZVJlc291cmNlTG9h
ZGVyRGVsZWdhdGU+IHsKICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IF9yZXNvdXJjZUxvYWRl
cjsKICAgICBCT09MIF9oYXNTZW50RGlkUmVjZWl2ZVJlc3BvbnNlOwpAQCAtMzkyLDkgKzMxMSw5
IEBAIHN0YXRpYyBpbmxpbmUgUXVpY2tMb29rSGFuZGxlQ2xpZW50KiBlbXB0eUNsaWVudCgpCiAg
ICAgcmV0dXJuICZlbXB0eUNsaWVudC5nZXQoKTsKIH0KIAotUXVpY2tMb29rSGFuZGxlOjpRdWlj
a0xvb2tIYW5kbGUoTlNVUkwgKmZpcnN0UmVxdWVzdFVSTCwgTlNVUkxDb25uZWN0aW9uICpjb25u
ZWN0aW9uLCBOU1VSTFJlc3BvbnNlICpuc1Jlc3BvbnNlLCBpZCBkZWxlZ2F0ZSkKK1F1aWNrTG9v
a0hhbmRsZTo6UXVpY2tMb29rSGFuZGxlKE5TVVJMICpmaXJzdFJlcXVlc3RVUkwsIE5TVVJMUmVz
cG9uc2UgKm5zUmVzcG9uc2UsIGlkIGRlbGVnYXRlKQogICAgIDogbV9maXJzdFJlcXVlc3RVUkwo
Zmlyc3RSZXF1ZXN0VVJMKQotICAgICwgbV9jb252ZXJ0ZXIoYWRvcHROUyhbYWxsb2NRTFByZXZp
ZXdDb252ZXJ0ZXJJbnN0YW5jZSgpIGluaXRXaXRoQ29ubmVjdGlvbjpjb25uZWN0aW9uIGRlbGVn
YXRlOmRlbGVnYXRlIHJlc3BvbnNlOm5zUmVzcG9uc2Ugb3B0aW9uczpuaWxdKSkKKyAgICAsIG1f
Y29udmVydGVyKGFkb3B0TlMoW2FsbG9jUUxQcmV2aWV3Q29udmVydGVySW5zdGFuY2UoKSBpbml0
V2l0aENvbm5lY3Rpb246bmlsIGRlbGVnYXRlOmRlbGVnYXRlIHJlc3BvbnNlOm5zUmVzcG9uc2Ug
b3B0aW9uczpuaWxdKSkKICAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCiAgICAgLCBtX2Zpbmlz
aGVkTG9hZGluZ0RhdGFJbnRvQ29udmVydGVyKGZhbHNlKQogICAgICwgbV9uc1Jlc3BvbnNlKFtt
X2NvbnZlcnRlciBwcmV2aWV3UmVzcG9uc2VdKQpAQCAtNDAzLDM3ICszMjIsNiBAQCBRdWlja0xv
b2tIYW5kbGU6OlF1aWNrTG9va0hhbmRsZShOU1VSTCAqZmlyc3RSZXF1ZXN0VVJMLCBOU1VSTENv
bm5lY3Rpb24gKmNvbm5lYwogICAgIExPRyhOZXR3b3JrLCAiUXVpY2tMb29rSGFuZGxlOjpRdWlj
a0xvb2tIYW5kbGUoKSAtIHByZXZpZXdGaWxlTmFtZTogJXMiLCBbbV9jb252ZXJ0ZXIgcHJldmll
d0ZpbGVOYW1lXSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNr
TG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIE5TVVJMQ29ubmVjdGlv
biAqY29ubmVjdGlvbiwgTlNVUkxSZXNwb25zZSAqbnNSZXNwb25zZSwgaWQgZGVsZWdhdGUpCi17
Ci0gICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7Ci0gICAgaWYgKGhhbmRsZS0+Zmlyc3RS
ZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4g
fHwgIVtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDpb
bnNSZXNwb25zZSBNSU1FVHlwZV1dKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHN0
ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVpY2tM
b29rSGFuZGxlKFtoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0
ZUhUVFBCb2R5KSBVUkxdLCBjb25uZWN0aW9uLCBuc1Jlc3BvbnNlLCBkZWxlZ2F0ZSkpOwotICAg
IGhhbmRsZS0+Y2xpZW50KCktPmRpZENyZWF0ZVF1aWNrTG9va0hhbmRsZSgqcXVpY2tMb29rSGFu
ZGxlKTsKLSAgICByZXR1cm4gcXVpY2tMb29rSGFuZGxlOwotfQotCi0jaWYgVVNFKENGVVJMQ09O
TkVDVElPTikKLXN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRs
ZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZSogY29ubmVjdGlvbkRlbGVnYXRlLCBDRlVSTFJlc3Bv
bnNlUmVmIGNmUmVzcG9uc2UpCi17Ci0gICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7Ci0g
ICAgaWYgKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1
ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4gfHwgIVtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNT
ZXQoKSBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUo
Y2ZSZXNwb25zZSldKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIE5TVVJMUmVzcG9u
c2UgKm5zUmVzcG9uc2UgPSBbTlNVUkxSZXNwb25zZSBfcmVzcG9uc2VXaXRoQ0ZVUkxSZXNwb25z
ZTpjZlJlc3BvbnNlXTsKLSAgICBXZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlICpkZWxlZ2F0
ZSA9IFtbW1dlYlF1aWNrTG9va0hhbmRsZUFzRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ29ubmVj
dGlvbkRlbGVnYXRlOmNvbm5lY3Rpb25EZWxlZ2F0ZV0gYXV0b3JlbGVhc2VdOwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVpY2tMb29r
SGFuZGxlKFtoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhU
VFBCb2R5KSBVUkxdLCBuaWwsIG5zUmVzcG9uc2UsIGRlbGVnYXRlKSk7Ci0gICAgaGFuZGxlLT5j
bGllbnQoKS0+ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKCpxdWlja0xvb2tIYW5kbGUpOwotICAg
IHJldHVybiBxdWlja0xvb2tIYW5kbGU7Ci19Ci0KLUNGVVJMUmVzcG9uc2VSZWYgUXVpY2tMb29r
SGFuZGxlOjpjZlJlc3BvbnNlKCkKLXsKLSAgICByZXR1cm4gW21fbnNSZXNwb25zZSBfQ0ZVUkxS
ZXNwb25zZV07Ci19Ci0jZW5kaWYKLQogYm9vbCBRdWlja0xvb2tIYW5kbGU6OnNob3VsZENyZWF0
ZUZvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgcmV0dXJuIFtRTFBy
ZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDptaW1lVHlwZV07
CkBAIC00NDQsNyArMzMyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gUXVp
Y2tMb29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VMb2FkZXImIGxvYWRlciwKICAgICBBU1NFUlQo
c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSkpOwogCiAgICAgUmV0
YWluUHRyPFdlYlJlc291cmNlTG9hZGVyUXVpY2tMb29rRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRv
cHROUyhbW1dlYlJlc291cmNlTG9hZGVyUXVpY2tMb29rRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRo
UmVzb3VyY2VMb2FkZXI6JmxvYWRlcl0pOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tI
YW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVpY2tMb29rSGFuZGxlKFtsb2FkZXIub3JpZ2lu
YWxSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIFVSTF0sIG5pbCwg
cmVzcG9uc2UubnNVUkxSZXNwb25zZSgpLCBkZWxlZ2F0ZS5nZXQoKSkpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVpY2tMb29rSGFu
ZGxlKFtsb2FkZXIub3JpZ2luYWxSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRU
UEJvZHkpIFVSTF0sIHJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSwgZGVsZWdhdGUuZ2V0KCkpKTsK
ICAgICBbZGVsZWdhdGUgc2V0UXVpY2tMb29rSGFuZGxlOnF1aWNrTG9va0hhbmRsZS5nZXQoKV07
CiAgICAgbG9hZGVyLmRpZENyZWF0ZVF1aWNrTG9va0hhbmRsZSgqcXVpY2tMb29rSGFuZGxlKTsK
ICAgICByZXR1cm4gcXVpY2tMb29rSGFuZGxlOwpAQCAtNDU1LDIzICszNDMsMjggQEAgTlNVUkxS
ZXNwb25zZSAqUXVpY2tMb29rSGFuZGxlOjpuc1Jlc3BvbnNlKCkKICAgICByZXR1cm4gbV9uc1Jl
c3BvbnNlLmdldCgpOwogfQogCi1ib29sIFF1aWNrTG9va0hhbmRsZTo6ZGlkUmVjZWl2ZURhdGFB
cnJheShDRkFycmF5UmVmIGNmRGF0YUFycmF5KQorYm9vbCBRdWlja0xvb2tIYW5kbGU6OmRpZFJl
Y2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAo
bV9maW5pc2hlZExvYWRpbmdEYXRhSW50b0NvbnZlcnRlcikKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgTE9HKE5ldHdvcmssICJRdWlja0xvb2tIYW5kbGU6OmRpZFJlY2VpdmVEYXRhQXJy
YXkoKSIpOwotICAgIFttX2NvbnZlcnRlciBhcHBlbmREYXRhQXJyYXk6KE5TQXJyYXkgKiljZkRh
dGFBcnJheV07Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhQXJyYXkoY2ZEYXRhQXJyYXkp
OworICAgIExPRyhOZXR3b3JrLCAiUXVpY2tMb29rSGFuZGxlOjpkaWRSZWNlaXZlRGF0YSgpIik7
CisgICAgTlNEYXRhICpuc0RhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YSBsZW5ndGg6
bGVuZ3RoXTsKKyAgICBbbV9jb252ZXJ0ZXIgYXBwZW5kRGF0YTpuc0RhdGFdOworICAgIG1fY2xp
ZW50LT5kaWRSZWNlaXZlRGF0YUFycmF5KChDRkFycmF5UmVmKUBbIG5zRGF0YSBdKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBRdWlja0xvb2tIYW5kbGU6OmRpZFJlY2VpdmVEYXRhKENG
RGF0YVJlZiBjZkRhdGEpCitib29sIFF1aWNrTG9va0hhbmRsZTo6ZGlkUmVjZWl2ZUJ1ZmZlcihj
b25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKIHsKICAgICBpZiAobV9maW5pc2hlZExvYWRpbmdE
YXRhSW50b0NvbnZlcnRlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJldHVy
biBkaWRSZWNlaXZlRGF0YUFycmF5KGFkb3B0Q0YoQ0ZBcnJheUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCAoY29uc3Qgdm9pZCoqKSZjZkRhdGEsIDEsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3Mp
KS5nZXQoKSk7CisKKyAgICBMT0coTmV0d29yaywgIlF1aWNrTG9va0hhbmRsZTo6ZGlkUmVjZWl2
ZUJ1ZmZlcigpIik7CisgICAgYXV0byBkYXRhQXJyYXkgPSBidWZmZXIuY3JlYXRlTlNEYXRhQXJy
YXkoKTsKKyAgICBbbV9jb252ZXJ0ZXIgYXBwZW5kRGF0YUFycmF5OmRhdGFBcnJheS5nZXQoKV07
CisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhQXJyYXkoKENGQXJyYXlSZWYpZGF0YUFycmF5
LmdldCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBRdWlja0xvb2tIYW5kbGU6OmRp
ZEZpbmlzaExvYWRpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hh
cmVkQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRl
eCA4M2E0NjM4NzlhMzlmZmYyZTlkMTlmNzY0YTc2NGM1NzIxMjZiYmU5Li5jZGMyMWJjMDU2NjEx
MzU3NDhlYTMwMTQzOWJlMGQzMDE4YjIyMmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgCiAjaWYgVVNFKEZPVU5E
QVRJT04pCiAgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPE5TRGF0YT4gY3JlYXRlTlNEYXRh
KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPE5TQXJyYXk+IGNyZWF0ZU5TRGF0YUFy
cmF5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPE5TQXJyYXk+IGNyZWF0ZU5TRGF0
YUFycmF5KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTaGFyZWRCdWZm
ZXI+IHdyYXBOU0RhdGEoTlNEYXRhICopOwogI2VuZGlmCiAjaWYgVVNFKENGKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TaGFyZWRCdWZmZXJDb2NvYS5tbQppbmRleCA0
YTI2OWVmMWZhNTc3ZTUyMTYxODU4NWU4Y2RlNmQ4YWJmYzdhOGRkLi43MGJlOWUzYWQwMTg2NGU4
MjFkMTE1ZWJkMjYxN2ExMmRhMWY1NzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TaGFyZWRCdWZmZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TaGFyZWRCdWZmZXJDb2NvYS5tbQpAQCAtMTIzLDcgKzEyMyw3IEBAIFJlZlB0
cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlRnJvbVJlYWRpbmdGaWxlKGNvbnN0
IFN0cmluZyYgZmlsZVBhdGgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJldGFpblB0cjxO
U0FycmF5PiBTaGFyZWRCdWZmZXI6OmNyZWF0ZU5TRGF0YUFycmF5KCkKK1JldGFpblB0cjxOU0Fy
cmF5PiBTaGFyZWRCdWZmZXI6OmNyZWF0ZU5TRGF0YUFycmF5KCkgY29uc3QKIHsKICAgICBpZiAo
YXV0byBwbGF0Zm9ybURhdGEgPSAoTlNEYXRhICopbV9jZkRhdGEuZ2V0KCkpCiAgICAgICAgIHJl
dHVybiBAWyBwbGF0Zm9ybURhdGEgXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggMjFiMzI5NWVlNDE2MjExYWMxNmNjODcx
MDIwMzc2Yzc5YWI1ZWQzYy4uMWZkMGZkOTNhYzkzYWYzZTVkMGNiOTA1MjhhY2EyN2FmYzliODM1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsMTAgKzM4LDYg
QEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCi0jaWYgVVNFKFFVSUNLX0xPT0spCi0jaW5jbHVkZSAiUXVpY2tM
b29rLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgYm9vbCBzaG91
bGRGb3JjZUNvbnRlbnRTbmlmZmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCA3YmZhYTMzMWM2ZGE5YTFmNjkxYzUyOTBlZWFj
NWZlNzFjNDdhOWUwLi4zODBjMzIwNzU4MGM0YWFhNmZkZjQ5OWIxYWNmYTBkZTA4ZWYwMWJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAxMSwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTE0NywxMSArMTQ3LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9zdCwgQ0ZEYXRhUmVmKTsK
ICNlbmRpZgogCi0jaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgUXVpY2tMb29rSGFuZGxlKiBxdWlj
a0xvb2tIYW5kbGUoKSB7IHJldHVybiBtX3F1aWNrTG9vay5nZXQoKTsgfQotICAgIHZvaWQgc2V0
UXVpY2tMb29rSGFuZGxlKHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+KTsKLSNlbmRp
ZgotCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ1VSTCkKICAgICBzdGF0aWMgdm9pZCBzZXRI
b3N0QWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMg
dm9pZCBzZXRDbGllbnRDZXJ0aWZpY2F0ZUluZm8oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik7CkBAIC0yODAsMTAgKzI3NSw2IEBAIHByaXZhdGU6CiAKICAgICBm
cmllbmQgY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4gZDsKLQotI2lmIFVTRShRVUlDS19MT09LKQotICAgIHN0
ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IG1fcXVpY2tMb29rOwotI2VuZGlmCiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlQ2xpZW50LmgKaW5kZXggYTUxNWJhM2YwYmM2ZmZiZDJjNjkzNTYwY2Q4ZTFmNWNhMThi
YWQ1My4uNWMzNzFlZDk5ZjAzMWRlYjg4MDVmYWQyNDI3YzFjOTZlMzY0MTI2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGll
bnQuaApAQCAtMSw2ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC01MywxMCArNTIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKICAgICBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKLSNpZiBVU0UoUVVJQ0tfTE9P
SykKLSAgICBjbGFzcyBRdWlja0xvb2tIYW5kbGU7Ci0jZW5kaWYKLQogICAgIGVudW0gQ2FjaGVT
dG9yYWdlUG9saWN5IHsKICAgICAgICAgU3RvcmFnZUFsbG93ZWQsCiAgICAgICAgIFN0b3JhZ2VB
bGxvd2VkSW5NZW1vcnlPbmx5LApAQCAtMTMxLDEwICsxMjYsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjZWxpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgdmlydHVhbCBOU0NhY2hlZFVSTFJl
c3BvbnNlICp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVz
cG9uc2UgKnJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZTsgfQogI2VuZGlmCi0KLSNpZiBVU0Uo
UVVJQ0tfTE9PSykKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVF1aWNrTG9va0hhbmRs
ZShRdWlja0xvb2tIYW5kbGUmKSB7IH0KLSNlbmRpZgogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlLmNwcAppbmRleCAwZDdjNzA4YjdhMzE5ZDA3ZjFkYzVkMjk0ZTJjZjc1MGRkZDM2NGUxLi44
NGUyZjE1MmI3ODE5NjA2YjEyYzdhNzE3ODYxMDcwN2QyYjQyOGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDEzLCAy
MDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTE2NywxNSArMTY3LDYgQEAgdm9pZCBTeW5jaHJvbm91c1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZShDRlVS
TEMKICAgICB9CiAjZW5kaWYKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGJvb2wgaXNRdWlj
a0xvb2tQcmV2aWV3ID0gZmFsc2U7Ci0gICAgbV9oYW5kbGUtPnNldFF1aWNrTG9va0hhbmRsZShR
dWlja0xvb2tIYW5kbGU6OmNyZWF0ZShtX2hhbmRsZSwgdGhpcywgY2ZSZXNwb25zZSkpOwotICAg
IGlmIChtX2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCkpIHsKLSAgICAgICAgY2ZSZXNwb25zZSA9
IG1faGFuZGxlLT5xdWlja0xvb2tIYW5kbGUoKS0+Y2ZSZXNwb25zZSgpOwotICAgICAgICBpc1F1
aWNrTG9va1ByZXZpZXcgPSB0cnVlOwotICAgIH0KLSNlbmRpZgotCiAgICAgUmVzb3VyY2VSZXNw
b25zZSByZXNvdXJjZVJlc3BvbnNlKGNmUmVzcG9uc2UpOwogI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoV0VCX1RJTUlORykKICAgICBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRp
bWluZ0RhdGEoY29ubmVjdGlvbiwgcmVzb3VyY2VSZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygp
KTsKQEAgLTE4MywxMCArMTc0LDYgQEAgdm9pZCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZShDRlVSTEMKICAgICBVTlVT
RURfUEFSQU0oY29ubmVjdGlvbik7CiAjZW5kaWYKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAg
IHJlc291cmNlUmVzcG9uc2Uuc2V0SXNRdWlja0xvb2soaXNRdWlja0xvb2tQcmV2aWV3KTsKLSNl
bmRpZgotCiAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2UobV9oYW5k
bGUsIFdURk1vdmUocmVzb3VyY2VSZXNwb25zZSkpOwogfQogCkBAIC0xOTQsMTEgKzE4MSw2IEBA
IHZvaWQgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpk
aWRSZWNlaXZlRGF0YShDRkRhdGFSZWYKIHsKICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gU3lu
Y2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZl
RGF0YShoYW5kbGU9JXAsIGJ5dGVzPSVsZCkgKCVzKSIsIG1faGFuZGxlLCBDRkRhdGFHZXRMZW5n
dGgoZGF0YSksIG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGlmIChtX2hhbmRsZS0+cXVpY2tM
b29rSGFuZGxlKCkgJiYgbV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpLT5kaWRSZWNlaXZlRGF0
YShkYXRhKSkKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0KICAgICBpZiAoUmVzb3VyY2VIYW5k
bGVDbGllbnQqIGNsaWVudCA9IG1faGFuZGxlLT5jbGllbnQoKSkKICAgICAgICAgY2xpZW50LT5k
aWRSZWNlaXZlQnVmZmVyKG1faGFuZGxlLCBTaGFyZWRCdWZmZXI6OndyYXBDRkRhdGEoZGF0YSks
IG9yaWdpbmFsTGVuZ3RoKTsKIH0KQEAgLTIwNywxMSArMTg5LDYgQEAgdm9pZCBTeW5jaHJvbm91
c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZEZpbmlzaExvYWRpbmco
KQogewogICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlPSVwKSAoJXMp
IiwgbV9oYW5kbGUsIG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGlmIChtX2hhbmRsZS0+cXVp
Y2tMb29rSGFuZGxlKCkgJiYgbV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpLT5kaWRGaW5pc2hM
b2FkaW5nKCkpCi0gICAgICAgIHJldHVybjsKLSNlbmRpZgotCiAgICAgaWYgKFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBjbGllbnQgPSBtX2hhbmRsZS0+Y2xpZW50KCkpCiAgICAgICAgIGNsaWVudC0+
ZGlkRmluaXNoTG9hZGluZyhtX2hhbmRsZSwgMCk7CiB9CkBAIC0yMjAsMTEgKzE5Nyw2IEBAIHZv
aWQgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRG
YWlsKENGRXJyb3JSZWYgZXJyb3IpCiB7CiAgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFN5bmNo
cm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkRmFpbChoYW5k
bGU9JXAsIGVycm9yID0gJXApICglcykiLCBtX2hhbmRsZSwgZXJyb3IsIG1faGFuZGxlLT5maXJz
dFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotI2lmIFVTRShRVUlD
S19MT09LKQotICAgIGlmIChRdWlja0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRsZSA9IG1faGFu
ZGxlLT5xdWlja0xvb2tIYW5kbGUoKSkKLSAgICAgICAgcXVpY2tMb29rSGFuZGxlLT5kaWRGYWls
KCk7Ci0jZW5kaWYKLQogICAgIGlmIChSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gbV9o
YW5kbGUtPmNsaWVudCgpKQogICAgICAgICBjbGllbnQtPmRpZEZhaWwobV9oYW5kbGUsIFJlc291
cmNlRXJyb3IoZXJyb3IpKTsKIH0KQEAgLTMwNiwxMSArMjc4LDYgQEAgdm9pZCBTeW5jaHJvbm91
c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVEYXRhQXJy
YXkoQ0ZBcnIKIAogICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSBTeW5jaHJvbm91c1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVEYXRhQXJyYXkoaGFuZGxl
PSVwLCBhcnJheUxlbmd0aD0lbGQpICglcykiLCBtX2hhbmRsZSwgQ0ZBcnJheUdldENvdW50KGRh
dGFBcnJheSksIG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGlmIChtX2hhbmRsZS0+cXVpY2tM
b29rSGFuZGxlKCkgJiYgbV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpLT5kaWRSZWNlaXZlRGF0
YUFycmF5KGRhdGFBcnJheSkpCi0gICAgICAgIHJldHVybjsKLSNlbmRpZgotCiAgICAgaWYgKFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBtX2hhbmRsZS0+Y2xpZW50KCkpCiAgICAgICAg
IGNsaWVudC0+ZGlkUmVjZWl2ZUJ1ZmZlcihtX2hhbmRsZSwgU2hhcmVkQnVmZmVyOjp3cmFwQ0ZE
YXRhQXJyYXkoZGF0YUFycmF5KSwgLTEpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCAxNzM3Yzc4
NzFmZGUzNGNkZmVkZTE0YTZiZDUwZjQ5MWEwMjkzYTVhLi41YmEyNzhkZjY4OTkzY2FjNzVkMmNi
YzkzYmRmNTc1ZWYxNDk4OTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIw
MTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03NywxMCArNzcsNiBAQCAtIChDRlVSTFJlcXVlc3RSZWYp
IF9DRlVSTFJlcXVlc3Q7CiBAZW5kCiAjZW5kaWYKIAotI2lmIFVTRShRVUlDS19MT09LKQotI2lt
cG9ydCAiUXVpY2tMb29rLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IEBpbnRlcmZhY2UgTlNVUkxDb25uZWN0aW9uICgpCkBAIC03NTIsMTIgKzc0OCw1IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKE5TVVJMQ29ubmVjdGlvbiAq
Y29ubmVjdGlvbiwgTmV0d29yCiAgICAgCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9USU1JTkcpCiAK
LSNpZiBVU0UoUVVJQ0tfTE9PSykKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OnNldFF1aWNrTG9va0hh
bmRsZShzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBoYW5kbGUpCi17Ci0gICAgbV9x
dWlja0xvb2sgPSBXVEZNb3ZlKGhhbmRsZSk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQppbmRl
eCA4YTA5ZjFlN2QzNWRiNmVlNWFhMWZiZTExNzU5ZDM0Y2RiMzM1NTBiLi5mYzFmNGY2NzdkY2Rh
ODcwMjBhNTRhODY2OTBkZDZiZjNmZmFkMTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhh
bmRsZUFzRGVsZWdhdGUubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyLCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzksMTAgKzM5LDYgQEAKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9y
dCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAKLSNpZiBVU0UoUVVJQ0tfTE9PSykKLSNpbXBvcnQg
IlF1aWNrTG9vay5oIgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW1w
bGVtZW50YXRpb24gV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZQpAQCAtMTQ2LDIwICsx
NDIsOCBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24g
ZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbgogICAgICAgICBbcmVzcG9uc2UgX3NldE1J
TUVUeXBlOkAidGV4dC9odG1sIl07CiAjZW5kaWYKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAg
IGJvb2wgaXNRdWlja0xvb2tQcmV2aWV3ID0gZmFsc2U7Ci0gICAgbV9oYW5kbGUtPnNldFF1aWNr
TG9va0hhbmRsZShRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShtX2hhbmRsZSwgY29ubmVjdGlvbiwg
cmVzcG9uc2UsIHNlbGYpKTsKLSAgICBpZiAobV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpKSB7
Ci0gICAgICAgIHJlc3BvbnNlID0gbV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpLT5uc1Jlc3Bv
bnNlKCk7Ci0gICAgICAgIGlzUXVpY2tMb29rUHJldmlldyA9IHRydWU7Ci0gICAgfQotI2VuZGlm
Ci0KICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UpOwogICAg
IHJlc291cmNlUmVzcG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0
d29yayk7Ci0jaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgcmVzb3VyY2VSZXNwb25zZS5zZXRJc1F1
aWNrTG9vayhpc1F1aWNrTG9va1ByZXZpZXcpOwotI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9USU1J
TkcpCiAgICAgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKGNvbm5lY3Rp
b24sIHJlc291cmNlUmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKSk7CiAjZWxzZQpAQCAtMTgx
LDExICsxNjUsNiBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5l
Y3Rpb24gZGlkUmVjZWl2ZURhdGFBcnJheTooTlNBcnJheSAqKQogICAgIGlmICghbV9oYW5kbGUg
fHwgIW1faGFuZGxlLT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFFVSUNL
X0xPT0spCi0gICAgaWYgKG1faGFuZGxlLT5xdWlja0xvb2tIYW5kbGUoKSAmJiBtX2hhbmRsZS0+
cXVpY2tMb29rSGFuZGxlKCktPmRpZFJlY2VpdmVEYXRhQXJyYXkocmVpbnRlcnByZXRfY2FzdDxD
RkFycmF5UmVmPihkYXRhQXJyYXkpKSkKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0KICAgICBt
X2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVCdWZmZXIobV9oYW5kbGUsIFNoYXJlZEJ1ZmZl
cjo6d3JhcENGRGF0YUFycmF5KHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZBcnJheVJlZj4oZGF0YUFycmF5
KSksIC0xKTsKICAgICAvLyBUaGUgY2FsbCB0byBkaWRSZWNlaXZlRGF0YSBhYm92ZSBjYW4gY2Fu
Y2VsIGEgbG9hZCwgYW5kIGlmIHNvLCB0aGUgZGVsZWdhdGUgKHNlbGYpIGNvdWxkIGhhdmUgYmVl
biBkZWFsbG9jYXRlZCBieSB0aGlzIHBvaW50LgogfQpAQCAtMjA5LDExICsxODgsNiBAQCAtICh2
b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURh
dGE6KE5TRGF0YSAqKWRhdGEgbAogICAgIC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBjb21wdXRl
cnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRzLCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFjdGljZS4K
ICAgICAvLyBDb3VsZCBiZSBhbiBpc3N1ZSB3aXRoIGEgZ2lhbnQgbG9jYWwgZmlsZS4KIAotI2lm
IFVTRShRVUlDS19MT09LKQotICAgIGlmIChtX2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCkgJiYg
bV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpLT5kaWRSZWNlaXZlRGF0YShyZWludGVycHJldF9j
YXN0PENGRGF0YVJlZj4oZGF0YSkpKQotICAgICAgICByZXR1cm47Ci0jZW5kaWYKLQogICAgIC8v
IEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKICAg
ICAvLyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkgZGF0YSBhYm91dCB0cmFuc2ZlciBz
aXplIHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKICAgICAvLyBDb250ZW50LUxlbmd0aCBo
ZWFkZXJzIG9yIGNvbnRlbnQgc2l6ZSB0byBzaG93IHRyYW5zZmVyIHNpemUuCkBAIC0yNDEsMTEg
KzIxNSw2IEBAIC0gKHZvaWQpY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6KE5TVVJMQ29ubmVj
dGlvbiAqKWNvbm5lY3Rpb24KICAgICBpZiAoIW1faGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xpZW50
KCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGlmIChtX2hh
bmRsZS0+cXVpY2tMb29rSGFuZGxlKCkgJiYgbV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpLT5k
aWRGaW5pc2hMb2FkaW5nKCkpCi0gICAgICAgIHJldHVybjsKLSNlbmRpZgotCiAgICAgbV9oYW5k
bGUtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKG1faGFuZGxlLCAwKTsKIH0KIApAQCAtMjU4
LDExICsyMjcsNiBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5l
Y3Rpb24gZGlkRmFpbFdpdGhFcnJvcjooTlNFcnJvciAqKWVycgogICAgIGlmICghbV9oYW5kbGUg
fHwgIW1faGFuZGxlLT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFFVSUNL
X0xPT0spCi0gICAgaWYgKG1faGFuZGxlLT5xdWlja0xvb2tIYW5kbGUoKSkKLSAgICAgICAgbV9o
YW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpLT5kaWRGYWlsKCk7Ci0jZW5kaWYKLQogICAgIG1faGFu
ZGxlLT5jbGllbnQoKS0+ZGlkRmFpbChtX2hhbmRsZSwgZXJyb3IpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNw
cAppbmRleCA2YjgwMjY2YjVjMjQxNTllMWZjZmQ5YTAyZWFiOTEyOGRlNzdjYWRlLi43MzhiMWRj
YzMzOTM3MjY5NjhhNjJjNTczYzM4Mjg4ZDk3ZjdiM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NDQsMTAgKzQ0LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TdWJyZXNvdXJjZUxvYWRlci5oPgogCi0jaWYgVVNFKFFVSUNLX0xPT0sp
Ci0jaW5jbHVkZSA8V2ViQ29yZS9RdWlja0xvb2suaD4KLSNlbmRpZgotCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBS
RUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0g
V2ViUmVzb3VyY2VMb2FkZXI6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQpAQCAtMTE3LDE5
ICsxMTMsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvbwogICAgIGlmIChtX2NvcmVMb2FkZXIt
PmRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxi
YWNrRm9yUmVzcG9uc2UobV9jb3JlTG9hZGVyLmdldCgpLCByZXNwb25zZSkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGJvb2wgc2hvdWRDYWxsQ29yZUxvYWRlckRpZFJlY2VpdmVSZXNwb25zZSA9
IHRydWU7Ci0jaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgLy8gUmVmcmFpbiBmcm9tIGNhbGxpbmcg
ZGlkUmVjZWl2ZVJlc3BvbnNlIGlmIFF1aWNrTG9vayB3aWxsIGNvbnZlcnQgdGhpcyByZXNwb25z
ZSwgc2luY2UgdGhlIE1JTUUgdHlwZSBvZiB0aGUKLSAgICAvLyBjb252ZXJ0ZWQgcmVzb3VyY2Ug
aXNuJ3QgeWV0IGtub3duLiBXZWJSZXNvdXJjZUxvYWRlclF1aWNrTG9va0RlbGVnYXRlIHdpbGwg
bGF0ZXIgY2FsbCBkaWRSZWNlaXZlUmVzcG9uc2UgdXBvbgotICAgIC8vIHJlY2VpdmluZyB0aGUg
Y29udmVydGVkIGRhdGEuCi0gICAgYm9vbCBpc01haW5Mb2FkID0gbV9jb3JlTG9hZGVyLT5kb2N1
bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKSA9PSBtX2NvcmVMb2FkZXI7Ci0gICAg
aWYgKGlzTWFpbkxvYWQgJiYgUXVpY2tMb29rSGFuZGxlOjpzaG91bGRDcmVhdGVGb3JNSU1FVHlw
ZShyZXNwb25zZS5taW1lVHlwZSgpKSkgewotICAgICAgICBtX2NvcmVMb2FkZXItPmRvY3VtZW50
TG9hZGVyKCktPnNldFF1aWNrTG9va0hhbmRsZShRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZSgqbV9j
b3JlTG9hZGVyLCByZXNwb25zZSkpOwotICAgICAgICBzaG91ZENhbGxDb3JlTG9hZGVyRGlkUmVj
ZWl2ZVJlc3BvbnNlID0gZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0gICAgaWYgKHNob3VkQ2FsbENv
cmVMb2FkZXJEaWRSZWNlaXZlUmVzcG9uc2UpCi0gICAgICAgIG1fY29yZUxvYWRlci0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVSZXNw
b25zZShyZXNwb25zZSk7CiAKICAgICAvLyBJZiBtX2NvcmVMb2FkZXIgYmVjb21lcyBudWxsIGFz
IGEgcmVzdWx0IG9mIHRoZSBkaWRSZWNlaXZlUmVzcG9uc2UgY2FsbGJhY2ssIHdlIGNhbid0IHVz
ZSB0aGUgc2VuZCBmdW5jdGlvbigpLiAKICAgICBpZiAoIW1fY29yZUxvYWRlcikKQEAgLTE0OCwx
MiArMTMyLDYgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGUKICAgICAgICAgbV9oYXNSZWNlaXZl
ZERhdGEgPSB0cnVlOwogICAgIH0KIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGlmIChRdWlj
a0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRsZSA9IG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2Fk
ZXIoKS0+cXVpY2tMb29rSGFuZGxlKCkpIHsKLSAgICAgICAgaWYgKHF1aWNrTG9va0hhbmRsZS0+
ZGlkUmVjZWl2ZURhdGEoYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
ZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKSkuZ2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSNlbmRpZgogICAgIG1fY29yZUxvYWRlci0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSwgZW5jb2RlZERh
dGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOwogfQogCkBAIC0xNjIsMTIgKzE0MCw2IEBAIHZv
aWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChkb3VibGUgZmluaXNo
VGltZSkKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkRmluaXNoUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJp
bmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZp
bmlzaFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnJlc291cmNlSUQpOwogCi0jaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgaWYgKFF1aWNrTG9va0hh
bmRsZSogcXVpY2tMb29rSGFuZGxlID0gbV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5x
dWlja0xvb2tIYW5kbGUoKSkgewotICAgICAgICBpZiAocXVpY2tMb29rSGFuZGxlLT5kaWRGaW5p
c2hMb2FkaW5nKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCiAgICAgbV9j
b3JlTG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOwogfQogCkBAIC0xNzYsMTAg
KzE0OCw2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2Vzcykg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVM
b2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5wYWdlSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCi0jaWYgVVNFKFFVSUNLX0xPT0spCi0gICAg
aWYgKFF1aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxlID0gbV9jb3JlTG9hZGVyLT5kb2N1
bWVudExvYWRlcigpLT5xdWlja0xvb2tIYW5kbGUoKSkKLSAgICAgICAgcXVpY2tMb29rSGFuZGxl
LT5kaWRGYWlsKCk7Ci0jZW5kaWYKICAgICBpZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRl
cigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0ZvckVycm9yKG1f
Y29yZUxvYWRlci5nZXQoKSwgZXJyb3IpKQogICAgICAgICByZXR1cm47CiAgICAgbV9jb3JlTG9h
ZGVyLT5kaWRGYWlsKGVycm9yKTsKQEAgLTE5MywxOCArMTYxLDYgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5k
bGUmIGhhbmQKIAogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGhhbmRsZS50cnlX
cmFwSW5TaGFyZWRCdWZmZXIoKTsKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGlmIChRdWlj
a0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRsZSA9IG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2Fk
ZXIoKS0+cXVpY2tMb29rSGFuZGxlKCkpIHsKLSAgICAgICAgaWYgKGJ1ZmZlcikgewotICAgICAg
ICAgICAgaWYgKHF1aWNrTG9va0hhbmRsZS0+ZGlkUmVjZWl2ZURhdGEoYnVmZmVyLT5leGlzdGlu
Z0NGRGF0YSgpKSkgewotICAgICAgICAgICAgICAgIHF1aWNrTG9va0hhbmRsZS0+ZGlkRmluaXNo
TG9hZGluZygpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICBxdWlja0xvb2tIYW5kbGUtPmRpZEZhaWwoKTsKLSAgICB9
Ci0jZW5kaWYKLQogICAgIGlmICghYnVmZmVyKSB7CiAgICAgICAgIExPR19FUlJPUigiVW5hYmxl
IHRvIGNyZWF0ZSBidWZmZXIgZnJvbSBTaGFyZWFibGVSZXNvdXJjZSBzZW50IGZyb20gdGhlIG5l
dHdvcmsgcHJvY2Vzcy4iKTsKICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVj
ZWl2ZVJlc291cmNlOiBVbmFibGUgdG8gY3JlYXRlIFNoYXJlZEJ1ZmZlciAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298272</attachid>
            <date>2017-01-07 05:00:09 -0800</date>
            <delta_ts>2017-01-07 13:01:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166713-20170107045838.patch</filename>
            <type>text/plain</type>
            <size>43561</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTcwZTIwYjU3NmUxNWE5
YWFkZjM2Yjg4MTY5NTI2Mzk2MWMwMThlNy4uMmE4NGY0NzU3N2I3MzNjMzJmNmM3M2E1ZTViZTdj
YzBhNThlMmNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE3LTAxLTA3ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUXVpY2tMb29rXSBDb25zb2xp
ZGF0ZSB1c2FnZSBvZiBRdWlja0xvb2tIYW5kbGUgaW50byBTdWJyZXNvdXJjZUxvYWRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NzEzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUXVpY2tMb29rIGNv
bnZlcnNpb24gd2FzIG9yaWdpbmFsbHkgaW1wbGVtZW50ZWQgYnkgaW50ZXJjZXB0aW5nIGRvY3Vt
ZW50IGxvYWRzIGF0IHRoZQorICAgICAgICBSZXNvdXJjZUhhbmRsZSBsZXZlbCwgd2l0aCBzZXBh
cmF0ZSBwYXRocyBmb3IgTlNVUkxDb25uZWN0aW9uIGFuZCBDRlVSTENvbm5lY3Rpb24gaGFuZGxl
cy4KKyAgICAgICAgV2hlbiBRdWlja0xvb2sgd2FzIHBvcnRlZCB0byBXZWJLaXQyLCBhIHRoaXJk
IHBhdGggd2FzIGFkZGVkIGluIFdlYlJlc291cmNlTG9hZGVyLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBjaGFuZ2UgcmVtb3ZlcyB0aGVzZSB0aHJlZSBzZXBhcmF0ZSBwYXRocyBhbmQgaW1wbGVt
ZW50cyBhIHNpbmdsZSBjb252ZXJzaW9uIHBhdGggaW4KKyAgICAgICAgU3VicmVzb3VyY2VMb2Fk
ZXIsIHdoZXJlIFF1aWNrTG9vayBjYW4gaW50ZXJjZXB0IGRvY3VtZW50IGxvYWRzIHJlZ2FyZGxl
c3Mgb2YgdGhlIG5ldHdvcmtpbmcKKyAgICAgICAgQVBJIGJlaW5nIHVzZWQuCisKKyAgICAgICAg
Tm8gY2hhbmdlIGluIGJlaGF2aW9yLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6IFJlbW92ZWQgb3ZlcnJpZGUgZnJvbSBkaWRD
cmVhdGVRdWlja0xvb2tIYW5kbGUoKSBzaW5jZSB0aGlzCisgICAgICAgIGZ1bmN0aW9uIGlzIG5v
IGxvbmdlciBkZWNsYXJlZCBpbiBSZXNvdXJjZUhhbmRsZUNsaWVudC4KKyAgICAgICAgKiBsb2Fk
ZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VM
b2FkZXI6OnNob3VsZENyZWF0ZVF1aWNrTG9va0hhbmRsZUZvclJlc3BvbnNlKTogQWRkZWQgYSBo
ZWxwZXIKKyAgICAgICAgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYSBRdWlja0xvb2tIYW5kbGUgc2hv
dWxkIGJlIGNyZWF0ZWQgZm9yIGEgcmVzcG9uc2UuCisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogQ3JlYXRlZCBhIFF1aWNrTG9va0hhbmRs
ZSBpZiBuZWNlc3NhcnkKKyAgICAgICAgYW5kIHN0b3JlZCBpdCBpbiB0aGUgRG9jdW1lbnRMb2Fk
ZXIuCisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEp
OiBJZiB0aGVyZSBpcyBhIFF1aWNrTG9va0hhbmRsZSwgY2FsbAorICAgICAgICBRdWlja0xvb2tI
YW5kbGU6OmRpZFJlY2VpdmVCdWZmZXIoKSwgYW5kIHJldHVybiBlYXJseSBpZiBRdWlja0xvb2sg
aXMgY29udmVydGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlQnVmZmVyKTogRGl0dG8gZm9yIFF1aWNrTG9va0hhbmRsZTo6ZGlkUmVjZWl2ZUJ1ZmZl
cigpLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcpOiBEaXR0byBmb3IgUXVpY2tMb29rSGFuZGxlOjpkaWRGaW5pc2hMb2FkaW5nKCkuCisgICAg
ICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbCk6IElmIHRoZXJlIGlzIGEg
UXVpY2tMb29rSGFuZGxlLCBjYWxsIFF1aWNrTG9va0hhbmRsZTo6ZGlkRmFpbCgpLgorICAgICAg
ICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oOiBEZWNsYXJlZCBzaG91bGRDcmVhdGVRdWlj
a0xvb2tIYW5kbGVGb3JSZXNwb25zZSgpLgorICAgICAgICAqIGxvYWRlci9pb3MvUXVpY2tMb29r
Lmg6IFJlbW92ZWQgZGVjbGFyYXRpb25zIHVzZWQgYnkgdGhlIFJlc291cmNlSGFuZGxlcyBhbmQg
ZGVjbGFyZWQgbmV3CisgICAgICAgIGZ1bmN0aW9ucyB1c2VkIGJ5IFN1YnJlc291cmNlTG9hZGVy
LgorICAgICAgICAqIGxvYWRlci9pb3MvUXVpY2tMb29rLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UXVpY2tMb29rSGFuZGxlOjpRdWlja0xvb2tIYW5kbGUpOiBSZW1vdmVkIHRoZSBOU1VSTENvbm5l
Y3Rpb24gKiBwYXJhbWV0ZXIsIHNpbmNlCisgICAgICAgIHdl4oCZZCBub3cgYWx3YXlzIHBhc3Mg
bmlsLgorICAgICAgICAoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlOjpjcmVhdGUpOiBSZW1vdmVk
IGNyZWF0ZSgpIGZ1bmN0aW9ucyB1c2VkIGJ5IFJlc291cmNlSGFuZGxlcy4KKyAgICAgICAgKFdl
YkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6ZGlkUmVjZWl2ZURhdGEpOiBBZGRlZC4gQ29waWVzIHRo
ZSBkYXRhIGludG8gYW4gTlNEYXRhLCB3cmFwcyBpdAorICAgICAgICBpbiBhbiBOU0FycmF5LCBh
bmQgcGFzc2VzIGl0IHRvIGRpZFJlY2VpdmVEYXRhQXJyYXkoKS4KKyAgICAgICAgKFdlYkNvcmU6
OlF1aWNrTG9va0hhbmRsZTo6ZGlkUmVjZWl2ZUJ1ZmZlcik6IEFkZGVkLiBDcmVhdGVzIGEgTlNB
cnJheSBvZiBOU0RhdGEgZnJvbSB0aGUKKyAgICAgICAgU2hhcmVkQnVmZmVyIGFuZCBwYXNzZXMg
aXQgdG8gZGlkUmVjZWl2ZURhdGFBcnJheSgpLgorICAgICAgICAoLVtXZWJRdWlja0xvb2tIYW5k
bGVBc0RlbGVnYXRlIGluaXRXaXRoQ29ubmVjdGlvbkRlbGVnYXRlOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2
ZURhdGFBcnJheTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUXVpY2tMb29rSGFuZGxlQXNE
ZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb25E
aWRGaW5pc2hMb2FkaW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJRdWlja0xvb2tIYW5k
bGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkRmFpbFdpdGhFcnJvcjpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bV2ViUXVpY2tMb29rSGFuZGxlQXNEZWxlZ2F0ZSBkZXRhY2hIYW5kbGVdKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6Y2ZSZXNwb25zZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6OmRpZFJlY2VpdmVEYXRh
QXJyYXkpOiBQYXNzZWQgZGF0YUFycmF5IHRvIG1fY29udmVydGVyIGFuZCBtX2NsaWVudC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDogQ29uc3QtcXVhbGlmaWVkIGNyZWF0ZU5T
RGF0YUFycmF5KCkuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVyQ29jb2Eu
bW06CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZU5TRGF0YUFycmF5KTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6IFN0
b3BwZWQgaW5jbHVkaW5nIFF1aWNrTG9vay5oLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuaDogUmVtb3ZlZCBtX3F1aWNrTG9vay4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpxdWlja0xvb2tIYW5kbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRDcmVhdGVRdWlja0xvb2tIYW5kbGUpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9u
b3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKTogUmVtb3ZlZCBRdWlja0xvb2sgY29kZS4KKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9u
b3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGEp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkRmluaXNoTG9hZGluZyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
OjpkaWRGYWlsKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVEYXRhQXJyYXkpOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzZXRRdWlja0xvb2tIYW5kbGUpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhh
bmRsZUFzRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVs
ZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6IFJlbW92ZWQgUXVpY2tMb29r
IGNvZGUuCisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVj
dGlvbjpkaWRSZWNlaXZlRGF0YUFycmF5Ol0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJl
Y2VpdmVkOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxl
Z2F0ZSBjb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzpdKTogRGl0dG8uCisgICAgICAgICgtW1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRGYWlsV2l0aEVycm9y
Ol0pOiBEaXR0by4KKwogMjAxNy0wMS0wNiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXSBDb25zb2xpZGF0ZSBkdXBsaWNhdGUgY29waWVzIG9mIFdlYkFy
Y2hpdmVEdW1wU3VwcG9ydCBpbiBEUlQgYW5kIFdLVFIgaW50byBXZWJDb3JlVGVzdFN1cHBvcnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjNWNmMGQxOTJhNGRjYmVhM2FmOTNkNjU4Y2M4NWZiNGYzZjAxZmM2Li4x
ZmYyZGNmNDA1OWE1ZGY3NzI3MDE1ODdhMmM4MjI5ZjkwMmYxNTAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTctMDEtMDcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgor
CisgICAgICAgIFtRdWlja0xvb2tdIENvbnNvbGlkYXRlIHVzYWdlIG9mIFF1aWNrTG9va0hhbmRs
ZSBpbnRvIFN1YnJlc291cmNlTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjY3MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOiBSZW1vdmVkIFF1aWNrTG9vayBjb2RlLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZCk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCk6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNlKTogRGl0
dG8uCisKIDIwMTctMDEtMDYgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBpbmZyYXN0cnVjdHVyZSBmb3Igc2VuZGluZyBhdXRvcGxheSB3ZWJzaXRlIHBvbGlj
aWVzIHRvIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4
Yzk4ZDEyZGQ2YTYzNTdmNDJlNmQ2MjZjN2M2ZjRlYWJiNjE1ZDVhLi40NWQ2ZTI0YWNlNmU0YmQ5
MDMyZGJhOGY0YTRjZTljYjFmMDI1ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYs
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC01MCwxMSArNTAsOCBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTsKIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFt
ZUxvYWRlcjsKLWNsYXNzIFVSTDsKLQotI2lmIFVTRShRVUlDS19MT09LKQogY2xhc3MgUXVpY2tM
b29rSGFuZGxlOwotI2VuZGlmCitjbGFzcyBVUkw7CiAKIGNsYXNzIFJlc291cmNlTG9hZGVyIDog
cHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VMb2FkZXI+LCBwcm90ZWN0ZWQgUmVzb3VyY2VIYW5k
bGVDbGllbnQgewogcHVibGljOgpAQCAtMTE5LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmKTsKIAogI2lmIFVTRShRVUlDS19MT09LKQotICAgIHZvaWQgZGlkQ3JlYXRlUXVpY2tMb29r
SGFuZGxlKFF1aWNrTG9va0hhbmRsZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ3JlYXRlUXVp
Y2tMb29rSGFuZGxlKFF1aWNrTG9va0hhbmRsZSYpOwogI2VuZGlmCiAgICAgYm9vbCBpc1F1aWNr
TG9va1Jlc291cmNlKCkgeyByZXR1cm4gbV9pc1F1aWNrTG9va1Jlc291cmNlOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGNhMGJjMDBkMTI1
YzBkODIwZTFhNzhmZTU5MDVjZmI1YjgxNmZjNjUuLjc2ODlkNzg0YjQyZjcxNjYyNmVlNTczMTAz
MDEzMTJlMDU2MGU5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwNywg
MjAwOSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU3LDYgKzU3LDEwIEBACiAjaW5jbHVkZSAiUmVzb3Vy
Y2VMb2FkSW5mby5oIgogI2VuZGlmCiAKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyNpbmNsdWRlICJR
dWlja0xvb2suaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERFRklORV9ERUJV
R19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgc3VicmVzb3VyY2VMb2Fk
ZXJDb3VudGVyLCAoIlN1YnJlc291cmNlTG9hZGVyIikpOwpAQCAtMjQ3LDExICsyNTEsMzEgQEAg
dm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5
dGVzU2VudCwgdW5zaWduZWQgbG9uZwogICAgIG1fcmVzb3VyY2UtPmRpZFNlbmREYXRhKGJ5dGVz
U2VudCwgdG90YWxCeXRlc1RvQmVTZW50KTsKIH0KIAorI2lmIFVTRShRVUlDS19MT09LKQorYm9v
bCBTdWJyZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ3JlYXRlUXVpY2tMb29rSGFuZGxlRm9yUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0Cit7CisgICAgaWYgKG1f
cmVzb3VyY2UtPnR5cGUoKSAhPSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV9kb2N1bWVudExvYWRlci0+cXVpY2tMb29rSGFu
ZGxlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBRdWlja0xvb2tIYW5k
bGU6OnNob3VsZENyZWF0ZUZvck1JTUVUeXBlKHJlc3BvbnNlLm1pbWVUeXBlKCkpOworfQorI2Vu
ZGlmCisKIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBBU1NFUlQoIXJlc3BvbnNlLmlzTnVs
bCgpKTsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbml0aWFsaXplZCk7CiAKKyNpZiBVU0UoUVVJ
Q0tfTE9PSykKKyAgICBpZiAoc2hvdWxkQ3JlYXRlUXVpY2tMb29rSGFuZGxlRm9yUmVzcG9uc2Uo
cmVzcG9uc2UpKSB7CisgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldFF1aWNrTG9va0hhbmRs
ZShRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZSgqdGhpcywgcmVzcG9uc2UpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgLy8gV2Ugd2FudCByZWRpcmVjdCByZXNwb25zZXMg
dG8gYmUgcHJvY2Vzc2VkIHRocm91Z2ggd2lsbFNlbmRSZXF1ZXN0SW50ZXJuYWwuIFRoZSBvbmx5
IGV4Y2VwdGlvbiBpcyByZWRpcmVjdGlvbiB3aXRoIG5vIExvY2F0aW9uIGhlYWRlcnMuCiAgICAg
QVNTRVJUKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPCAzMDAgfHwgcmVzcG9uc2UuaHR0cFN0
YXR1c0NvZGUoKSA+PSA0MDAgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDQgfHwg
IXJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24pKTsKIApA
QCAtMzI1LDExICszNDksMjUgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogCiB2b2lkIFN1YnJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5n
dGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXls
b2FkVHlwZSkKIHsKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBpZiAoYXV0byBxdWlja0xvb2tI
YW5kbGUgPSBtX2RvY3VtZW50TG9hZGVyLT5xdWlja0xvb2tIYW5kbGUoKSkgeworICAgICAgICBp
ZiAocXVpY2tMb29rSGFuZGxlLT5kaWRSZWNlaXZlRGF0YShkYXRhLCBsZW5ndGgpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgZGlkUmVjZWl2ZURhdGFPckJ1ZmZl
cihkYXRhLCBsZW5ndGgsIG51bGxwdHIsIGVuY29kZWREYXRhTGVuZ3RoLCBkYXRhUGF5bG9hZFR5
cGUpOwogfQogCiB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxT
aGFyZWRCdWZmZXI+JiYgYnVmZmVyLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQ
YXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCiB7CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAg
aWYgKGF1dG8gcXVpY2tMb29rSGFuZGxlID0gbV9kb2N1bWVudExvYWRlci0+cXVpY2tMb29rSGFu
ZGxlKCkpIHsKKyAgICAgICAgaWYgKHF1aWNrTG9va0hhbmRsZS0+ZGlkUmVjZWl2ZUJ1ZmZlcihi
dWZmZXIuZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAg
ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihudWxscHRyLCAwLCBXVEZNb3ZlKGJ1ZmZlciksIGVuY29k
ZWREYXRhTGVuZ3RoLCBkYXRhUGF5bG9hZFR5cGUpOwogfQogCkBAIC00NjgsNiArNTA2LDEzIEBA
IGJvb2wgU3VicmVzb3VyY2VMb2FkZXI6OmNoZWNrUmVkaXJlY3Rpb25Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2woY29uc3QgUmVzb3VyY2VSCiAKIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCiB7CisjaWYgVVNFKFFVSUNLX0xPT0spCisg
ICAgaWYgKGF1dG8gcXVpY2tMb29rSGFuZGxlID0gbV9kb2N1bWVudExvYWRlci0+cXVpY2tMb29r
SGFuZGxlKCkpIHsKKyAgICAgICAgaWYgKHF1aWNrTG9va0hhbmRsZS0+ZGlkRmluaXNoTG9hZGlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKG1fc3Rh
dGUgIT0gSW5pdGlhbGl6ZWQpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQoIXJlYWNoZWRU
ZXJtaW5hbFN0YXRlKCkpOwpAQCAtNTEwLDYgKzU1NSwxMSBAQCB2b2lkIFN1YnJlc291cmNlTG9h
ZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKQogCiB2b2lkIFN1YnJlc291
cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogeworI2lmIFVT
RShRVUlDS19MT09LKQorICAgIGlmIChhdXRvIHF1aWNrTG9va0hhbmRsZSA9IG1fZG9jdW1lbnRM
b2FkZXItPnF1aWNrTG9va0hhbmRsZSgpKQorICAgICAgICBxdWlja0xvb2tIYW5kbGUtPmRpZEZh
aWwoKTsKKyNlbmRpZgorCiAgICAgaWYgKG1fc3RhdGUgIT0gSW5pdGlhbGl6ZWQpCiAgICAgICAg
IHJldHVybjsKICAgICBBU1NFUlQoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAppbmRleCA4NGMwYWM0ZWNjN2EzYjhiNGE4
NTdmYTQzMGJlZmIxNTg3NGYzZjE3Li5mNmVhNjZlNDk3YmVmZWFiNDJhNGU1MDk2YmIxNDE1ZDlm
YTA1NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMDEsNiArMTAxLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG5vdGlmeURvbmUo
KTsKIAorI2lmIFVTRShRVUlDS19MT09LKQorICAgIGJvb2wgc2hvdWxkQ3JlYXRlUXVpY2tMb29r
SGFuZGxlRm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGNvbnN0OworI2VuZGlm
CisKICAgICBlbnVtIFN1YnJlc291cmNlTG9hZGVyU3RhdGUgewogICAgICAgICBVbmluaXRpYWxp
emVkLAogICAgICAgICBJbml0aWFsaXplZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pb3MvUXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9v
ay5oCmluZGV4IDRkYTA0NWI5YTI2OWU2NzM0OTI4NmEyMmIzM2I5MzEyODhiZTA2OTguLjU1M2Nl
ZDUyNTY1ZjlhYjZkNDAzODhjMTM2ZTUzYTdlNjllNGM3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pb3MvUXVpY2tMb29rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2lvcy9RdWlja0xvb2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDIzICszMywyMiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK09CSkNfQ0xBU1MgTlNBcnJheTsK
IE9CSkNfQ0xBU1MgTlNEYXRhOwogT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CiBPQkpDX0NMQVNT
IE5TRmlsZUhhbmRsZTsKIE9CSkNfQ0xBU1MgTlNTZXQ7CiBPQkpDX0NMQVNTIE5TU3RyaW5nOwog
T0JKQ19DTEFTUyBOU1VSTDsKLU9CSkNfQ0xBU1MgTlNVUkxDb25uZWN0aW9uOwogT0JKQ19DTEFT
UyBOU1VSTFJlcXVlc3Q7CiBPQkpDX0NMQVNTIE5TVVJMUmVzcG9uc2U7CiBPQkpDX0NMQVNTIFFM
UHJldmlld0NvbnZlcnRlcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZXNvdXJj
ZUhhbmRsZTsKIGNsYXNzIFJlc291cmNlTG9hZGVyOwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsK
LWNsYXNzIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTsK
K2NsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFVSTDsKIAogV0VCQ09SRV9FWFBPUlQgTlNTZXQg
KlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpOwpAQCAtNzQsMjYgKzczLDE2IEBA
IFdFQkNPUkVfRVhQT1JUIE5TU3RyaW5nICpjcmVhdGVUZW1wb3JhcnlGaWxlRm9yUXVpY2tMb29r
KE5TU3RyaW5nICpmaWxlTmFtZSk7CiBjbGFzcyBRdWlja0xvb2tIYW5kbGUgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFF1aWNrTG9va0hhbmRsZSk7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJik7
CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJik7
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IGNyZWF0ZShSZXNv
dXJjZUxvYWRlciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB+UXVpY2tMb29rSGFu
ZGxlKCk7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gY3Jl
YXRlKFJlc291cmNlSGFuZGxlKiwgTlNVUkxDb25uZWN0aW9uICosIE5TVVJMUmVzcG9uc2UgKiwg
aWQgZGVsZWdhdGUpOwotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IGNyZWF0ZShSZXNvdXJjZUhhbmRsZSosIFN5bmNo
cm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZSosIENGVVJMUmVzcG9u
c2VSZWYpOwotI2VuZGlmCi0gICAgLy8gRklYTUU6IFVzZSBvZiBSZXNvdXJjZUxvYWRlciBoZXJl
IGlzIGEgcGxhdGZvcm0gdmlvbGF0aW9uLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBjcmVhdGUoUmVzb3VyY2VMb2FkZXImLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB+UXVpY2tMb29rSGFu
ZGxlKCk7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZB
cnJheVJlZik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkaWRSZWNlaXZlRGF0YShDRkRhdGFS
ZWYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGlkRmluaXNoTG9hZGluZygpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZGlkRmFpbCgpOworICAgIGJvb2wgZGlkUmVjZWl2ZURhdGEoY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBib29sIGRpZFJlY2VpdmVCdWZm
ZXIoY29uc3QgU2hhcmVkQnVmZmVyJik7CisgICAgYm9vbCBkaWRGaW5pc2hMb2FkaW5nKCk7Cisg
ICAgdm9pZCBkaWRGYWlsKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBOU1VSTFJlc3BvbnNlICpu
c1Jlc3BvbnNlKCk7Ci0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICBDRlVSTFJlc3BvbnNl
UmVmIGNmUmVzcG9uc2UoKTsKLSNlbmRpZgogCiAgICAgdm9pZCBzZXRDbGllbnQoUGFzc1JlZlB0
cjxRdWlja0xvb2tIYW5kbGVDbGllbnQ+IGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQog
CkBAIC0xMDQsNyArOTMsOSBAQCBwdWJsaWM6CiAgICAgUUxQcmV2aWV3Q29udmVydGVyICpjb252
ZXJ0ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnZlcnRlci5nZXQoKTsgfQogCiBwcml2YXRlOgot
ICAgIFF1aWNrTG9va0hhbmRsZShOU1VSTCAqLCBOU1VSTENvbm5lY3Rpb24gKiwgTlNVUkxSZXNw
b25zZSAqLCBpZCBkZWxlZ2F0ZSk7CisgICAgUXVpY2tMb29rSGFuZGxlKE5TVVJMICosIE5TVVJM
UmVzcG9uc2UgKiwgaWQgZGVsZWdhdGUpOworCisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YUFycmF5
KE5TQXJyYXkgKik7CiAKICAgICBSZXRhaW5QdHI8TlNVUkw+IG1fZmlyc3RSZXF1ZXN0VVJMOwog
ICAgIFJldGFpblB0cjxRTFByZXZpZXdDb252ZXJ0ZXI+IG1fY29udmVydGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9RdWlja0xvb2subW0gYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5tbQppbmRleCBlYWRmM2RkNGJiZjE1MDg3ZDQ1MmI1M2Y4
YThmZDMxZThjZTMzNjUyLi5kMTQyMTQ3NjdjYjU3YWMzMDJjYjFlYjFiNTY3MjIwMzQ1Mjc3ZjNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5tbQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDIxICsyOCwx
NSBAQAogCiAjaWYgVVNFKFFVSUNLX0xPT0spCiAKLSNpbXBvcnQgIkRvY3VtZW50TG9hZGVyLmgi
CiAjaW1wb3J0ICJGaWxlU3lzdGVtSU9TLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
ICJOU0ZpbGVNYW5hZ2VyU1BJLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUVycm9yLmgiCi0jaW1wb3J0
ICJSZXNvdXJjZUhhbmRsZS5oIgogI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXIuaCIKLSNpbXBvcnQg
IlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2ltcG9ydCAiU3luY2hyb25vdXNSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJTaGFyZWRCdWZmZXIu
aCIKICNpbXBvcnQgIldlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUuaCIKLSNpbXBvcnQg
IldlYkNvcmVVUkxSZXNwb25zZUlPUy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KLSNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3Iu
aD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xODUsODEgKzE3OSw2IEBA
IGNvbnN0IGNoYXIqIFdlYkNvcmU6OlFMUHJldmlld1Byb3RvY29sKCkKICAgICByZXR1cm4gcHJl
dmlld1Byb3RvY29sLmdldCgpLmRhdGEoKTsKIH0KIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04p
Ci0vLyBUaGUgd2F5IFF1aWNrTG9vayB3b3JrcyBpcyB3ZSBwYXNzIGl0IGFuIE5TVVJMQ29ubmVj
dGlvbkRlbGVnYXRlIGNhbGxiYWNrIG9iamVjdCBhdCBjcmVhdGlvbgotLy8gdGltZS4gVGhlbiB3
ZSBwYXNzIGl0IGFsbCB0aGUgZGF0YSBhcyB3ZSByZWNlaXZlIGl0LiBPbmNlIHdlJ3ZlIGRvd25s
b2FkZWQgdGhlIGZ1bGwgVVJMLAotLy8gUXVpY2tMb29rIHR1cm5zIGFyb3VuZCBhbmQgc2VuZCB1
cywgdGhyb3VnaCB0aGlzIGRlbGVnYXRlLCB0aGUgSFRNTCB2ZXJzaW9uIG9mIHRoZSBmaWxlIHdo
aWNoIHdlCi0vLyBwYXNzIG9uIHRvIFdlYkNvcmUuIFRoZSBmbGFnIG1fZmluaXNoZWRMb2FkaW5n
RGF0YUludG9Db252ZXJ0ZXIgaW4gUXVpY2tMb29rSGFuZGxlIGRlY2lkZXMKLS8vIHdoZXRoZXIg
dG8gcGFzcyB0aGUgZGF0YSB0byBRdWlja0xvb2sgb3IgV2ViQ29yZS4KLS8vCi0vLyBUaGlzIHdv
cmtzIGZpbmUgd2hlbiB1c2luZyBOUyBBUElzLCBidXQgd2hlbiB1c2luZyBDRk5ldHdvcmssIHdl
IGRvbid0IGhhdmUgYSBOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZS4KLS8vIFNvIHdlIGNyZWF0ZSBX
ZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlIGFzIGFuIGludGVybWVkaWF0ZSBkZWxlZ2F0ZSBv
YmplY3QgYW5kIHBhc3MgaXQgdG8KLS8vIFFMUHJldmlld0NvbnZlcnRlci4gVGhlIHByb3h5IGRl
bGVnYXRlIHRoZW4gZm9yd2FyZHMgdGhlIG1lc3NhZ2VzIG9uIHRvIHRoZSBDRk5ldHdvcmsgY29k
ZS4KLUBpbnRlcmZhY2UgV2ViUXVpY2tMb29rSGFuZGxlQXNEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxO
U1VSTENvbm5lY3Rpb25EZWxlZ2F0ZSwgV2ViQ29yZVJlc291cmNlTG9hZGVyRGVsZWdhdGU+IHsK
LSAgICBSZWZQdHI8U3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlPiBtX2Nvbm5lY3Rpb25EZWxlZ2F0ZTsKLX0KLQotLSAoaWQpaW5pdFdpdGhDb25uZWN0aW9u
RGVsZWdhdGU6KFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZSopY29ubmVjdGlvbkRlbGVnYXRlOwotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV2ViUXVpY2tM
b29rSGFuZGxlQXNEZWxlZ2F0ZQotLSAoaWQpaW5pdFdpdGhDb25uZWN0aW9uRGVsZWdhdGU6KFN5
bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZSopY29ubmVjdGlv
bkRlbGVnYXRlCi17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBpZiAoIXNlbGYpCi0g
ICAgICAgIHJldHVybiBuaWw7Ci0gICAgbV9jb25uZWN0aW9uRGVsZWdhdGUgPSBjb25uZWN0aW9u
RGVsZWdhdGU7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpY29ubmVjdGlvbjooTlNV
UkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YUFycmF5OihOU0FycmF5ICop
ZGF0YUFycmF5Ci17Ci0gICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwotICAgIGlmICghbV9j
b25uZWN0aW9uRGVsZWdhdGUpCi0gICAgICAgIHJldHVybjsKLSAgICBMT0coTmV0d29yaywgIldl
YlF1aWNrTG9va0hhbmRsZUFzRGVsZWdhdGU6OmRpZFJlY2VpdmVEYXRhQXJyYXkoKSIpOwotICAg
IG1fY29ubmVjdGlvbkRlbGVnYXRlLT5kaWRSZWNlaXZlRGF0YUFycmF5KHJlaW50ZXJwcmV0X2Nh
c3Q8Q0ZBcnJheVJlZj4oZGF0YUFycmF5KSk7Ci19Ci0KLS0gKHZvaWQpY29ubmVjdGlvbjooTlNV
UkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YSBs
ZW5ndGhSZWNlaXZlZDoobG9uZyBsb25nKWxlbmd0aFJlY2VpdmVkCi17Ci0gICAgVU5VU0VEX1BB
UkFNKGNvbm5lY3Rpb24pOwotICAgIGlmICghbV9jb25uZWN0aW9uRGVsZWdhdGUpCi0gICAgICAg
IHJldHVybjsKLSAgICBMT0coTmV0d29yaywgIldlYlF1aWNrTG9va0hhbmRsZUFzRGVsZWdhdGU6
OmRpZFJlY2VpdmVEYXRhKCkgLSBkYXRhIGxlbmd0aCA9ICVsZCIsIChsb25nKVtkYXRhIGxlbmd0
aF0pOwotCi0gICAgLy8gUXVpY2tMb29rIGNvZGUgc2VuZHMgdXMgYSBuaWwgZGF0YSBhdCB0aW1l
cy4gVGhlIGNoZWNrIGJlbG93IGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4KLSAgICAvLyBSZXNv
dXJjZUhhbmRsZU1hYy5jcHAgYWRkZWQgZm9yIGEgZGlmZmVyZW50IGJ1Zy4KLSAgICBpZiAoIVtk
YXRhIGxlbmd0aF0pCi0gICAgICAgIHJldHVybjsKLSAgICBtX2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+
ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxDRkRhdGFSZWY+KGRhdGEpLCBzdGF0aWNf
Y2FzdDxpbnQ+KGxlbmd0aFJlY2VpdmVkKSk7Ci19Ci0KLS0gKHZvaWQpY29ubmVjdGlvbkRpZEZp
bmlzaExvYWRpbmc6KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KLXsKLSAgICBVTlVTRURf
UEFSQU0oY29ubmVjdGlvbik7Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb25EZWxlZ2F0ZSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIExPRyhOZXR3b3JrLCAiV2ViUXVpY2tMb29rSGFuZGxlQXNEZWxlZ2F0
ZTo6ZGlkRmluaXNoTG9hZGluZygpIik7Ci0gICAgbV9jb25uZWN0aW9uRGVsZWdhdGUtPmRpZEZp
bmlzaExvYWRpbmcoKTsKLX0KLQotLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24g
Kiljb25uZWN0aW9uIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgotewotICAgIFVO
VVNFRF9QQVJBTShjb25uZWN0aW9uKTsKLSAgICBpZiAoIW1fY29ubmVjdGlvbkRlbGVnYXRlKQot
ICAgICAgICByZXR1cm47Ci0gICAgTE9HKE5ldHdvcmssICJXZWJRdWlja0xvb2tIYW5kbGVBc0Rl
bGVnYXRlOjpkaWRGYWlsKCkiKTsKLSAgICBtX2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+ZGlkRmFpbChy
ZWludGVycHJldF9jYXN0PENGRXJyb3JSZWY+KGVycm9yKSk7Ci19Ci0KLS0gKHZvaWQpZGV0YWNo
SGFuZGxlCi17Ci0gICAgbV9jb25uZWN0aW9uRGVsZWdhdGUgPSBudWxscHRyOwotfQotQGVuZAot
I2VuZGlmCi0KIEBpbnRlcmZhY2UgV2ViUmVzb3VyY2VMb2FkZXJRdWlja0xvb2tEZWxlZ2F0ZSA6
IE5TT2JqZWN0IDxOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZSwgV2ViQ29yZVJlc291cmNlTG9hZGVy
RGVsZWdhdGU+IHsKICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IF9yZXNvdXJjZUxvYWRlcjsK
ICAgICBCT09MIF9oYXNTZW50RGlkUmVjZWl2ZVJlc3BvbnNlOwpAQCAtMzkyLDkgKzMxMSw5IEBA
IHN0YXRpYyBpbmxpbmUgUXVpY2tMb29rSGFuZGxlQ2xpZW50KiBlbXB0eUNsaWVudCgpCiAgICAg
cmV0dXJuICZlbXB0eUNsaWVudC5nZXQoKTsKIH0KIAotUXVpY2tMb29rSGFuZGxlOjpRdWlja0xv
b2tIYW5kbGUoTlNVUkwgKmZpcnN0UmVxdWVzdFVSTCwgTlNVUkxDb25uZWN0aW9uICpjb25uZWN0
aW9uLCBOU1VSTFJlc3BvbnNlICpuc1Jlc3BvbnNlLCBpZCBkZWxlZ2F0ZSkKK1F1aWNrTG9va0hh
bmRsZTo6UXVpY2tMb29rSGFuZGxlKE5TVVJMICpmaXJzdFJlcXVlc3RVUkwsIE5TVVJMUmVzcG9u
c2UgKm5zUmVzcG9uc2UsIGlkIGRlbGVnYXRlKQogICAgIDogbV9maXJzdFJlcXVlc3RVUkwoZmly
c3RSZXF1ZXN0VVJMKQotICAgICwgbV9jb252ZXJ0ZXIoYWRvcHROUyhbYWxsb2NRTFByZXZpZXdD
b252ZXJ0ZXJJbnN0YW5jZSgpIGluaXRXaXRoQ29ubmVjdGlvbjpjb25uZWN0aW9uIGRlbGVnYXRl
OmRlbGVnYXRlIHJlc3BvbnNlOm5zUmVzcG9uc2Ugb3B0aW9uczpuaWxdKSkKKyAgICAsIG1fY29u
dmVydGVyKGFkb3B0TlMoW2FsbG9jUUxQcmV2aWV3Q29udmVydGVySW5zdGFuY2UoKSBpbml0V2l0
aENvbm5lY3Rpb246bmlsIGRlbGVnYXRlOmRlbGVnYXRlIHJlc3BvbnNlOm5zUmVzcG9uc2Ugb3B0
aW9uczpuaWxdKSkKICAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCiAgICAgLCBtX2ZpbmlzaGVk
TG9hZGluZ0RhdGFJbnRvQ29udmVydGVyKGZhbHNlKQogICAgICwgbV9uc1Jlc3BvbnNlKFttX2Nv
bnZlcnRlciBwcmV2aWV3UmVzcG9uc2VdKQpAQCAtNDAzLDM3ICszMjIsNiBAQCBRdWlja0xvb2tI
YW5kbGU6OlF1aWNrTG9va0hhbmRsZShOU1VSTCAqZmlyc3RSZXF1ZXN0VVJMLCBOU1VSTENvbm5l
Y3Rpb24gKmNvbm5lYwogICAgIExPRyhOZXR3b3JrLCAiUXVpY2tMb29rSGFuZGxlOjpRdWlja0xv
b2tIYW5kbGUoKSAtIHByZXZpZXdGaWxlTmFtZTogJXMiLCBbbV9jb252ZXJ0ZXIgcHJldmlld0Zp
bGVOYW1lXSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9v
a0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIE5TVVJMQ29ubmVjdGlvbiAq
Y29ubmVjdGlvbiwgTlNVUkxSZXNwb25zZSAqbnNSZXNwb25zZSwgaWQgZGVsZWdhdGUpCi17Ci0g
ICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7Ci0gICAgaWYgKGhhbmRsZS0+Zmlyc3RSZXF1
ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4gfHwg
IVtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDpbbnNS
ZXNwb25zZSBNSU1FVHlwZV1dKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHN0ZDo6
dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVpY2tMb29r
SGFuZGxlKFtoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhU
VFBCb2R5KSBVUkxdLCBjb25uZWN0aW9uLCBuc1Jlc3BvbnNlLCBkZWxlZ2F0ZSkpOwotICAgIGhh
bmRsZS0+Y2xpZW50KCktPmRpZENyZWF0ZVF1aWNrTG9va0hhbmRsZSgqcXVpY2tMb29rSGFuZGxl
KTsKLSAgICByZXR1cm4gcXVpY2tMb29rSGFuZGxlOwotfQotCi0jaWYgVVNFKENGVVJMQ09OTkVD
VElPTikKLXN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6
Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZSogY29ubmVjdGlvbkRlbGVnYXRlLCBDRlVSTFJlc3BvbnNl
UmVmIGNmUmVzcG9uc2UpCi17Ci0gICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7Ci0gICAg
aWYgKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1ZXN0
OjpSZXF1ZXN0ZXI6Ok1haW4gfHwgIVtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQo
KSBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoY2ZS
ZXNwb25zZSldKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIE5TVVJMUmVzcG9uc2Ug
Km5zUmVzcG9uc2UgPSBbTlNVUkxSZXNwb25zZSBfcmVzcG9uc2VXaXRoQ0ZVUkxSZXNwb25zZTpj
ZlJlc3BvbnNlXTsKLSAgICBXZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlICpkZWxlZ2F0ZSA9
IFtbW1dlYlF1aWNrTG9va0hhbmRsZUFzRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ29ubmVjdGlv
bkRlbGVnYXRlOmNvbm5lY3Rpb25EZWxlZ2F0ZV0gYXV0b3JlbGVhc2VdOwotICAgIHN0ZDo6dW5p
cXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVpY2tMb29rSGFu
ZGxlKFtoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBC
b2R5KSBVUkxdLCBuaWwsIG5zUmVzcG9uc2UsIGRlbGVnYXRlKSk7Ci0gICAgaGFuZGxlLT5jbGll
bnQoKS0+ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKCpxdWlja0xvb2tIYW5kbGUpOwotICAgIHJl
dHVybiBxdWlja0xvb2tIYW5kbGU7Ci19Ci0KLUNGVVJMUmVzcG9uc2VSZWYgUXVpY2tMb29rSGFu
ZGxlOjpjZlJlc3BvbnNlKCkKLXsKLSAgICByZXR1cm4gW21fbnNSZXNwb25zZSBfQ0ZVUkxSZXNw
b25zZV07Ci19Ci0jZW5kaWYKLQogYm9vbCBRdWlja0xvb2tIYW5kbGU6OnNob3VsZENyZWF0ZUZv
ck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgcmV0dXJuIFtRTFByZXZp
ZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDptaW1lVHlwZV07CkBA
IC00NDQsNyArMzMyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gUXVpY2tM
b29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VMb2FkZXImIGxvYWRlciwKICAgICBBU1NFUlQoc2hv
dWxkQ3JlYXRlRm9yTUlNRVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSkpOwogCiAgICAgUmV0YWlu
UHRyPFdlYlJlc291cmNlTG9hZGVyUXVpY2tMb29rRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRvcHRO
UyhbW1dlYlJlc291cmNlTG9hZGVyUXVpY2tMb29rRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoUmVz
b3VyY2VMb2FkZXI6JmxvYWRlcl0pOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5k
bGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVpY2tMb29rSGFuZGxlKFtsb2FkZXIub3JpZ2luYWxS
ZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIFVSTF0sIG5pbCwgcmVz
cG9uc2UubnNVUkxSZXNwb25zZSgpLCBkZWxlZ2F0ZS5nZXQoKSkpOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVpY2tMb29rSGFuZGxl
KFtsb2FkZXIub3JpZ2luYWxSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJv
ZHkpIFVSTF0sIHJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSwgZGVsZWdhdGUuZ2V0KCkpKTsKICAg
ICBbZGVsZWdhdGUgc2V0UXVpY2tMb29rSGFuZGxlOnF1aWNrTG9va0hhbmRsZS5nZXQoKV07CiAg
ICAgbG9hZGVyLmRpZENyZWF0ZVF1aWNrTG9va0hhbmRsZSgqcXVpY2tMb29rSGFuZGxlKTsKICAg
ICByZXR1cm4gcXVpY2tMb29rSGFuZGxlOwpAQCAtNDU1LDIzICszNDMsMzAgQEAgTlNVUkxSZXNw
b25zZSAqUXVpY2tMb29rSGFuZGxlOjpuc1Jlc3BvbnNlKCkKICAgICByZXR1cm4gbV9uc1Jlc3Bv
bnNlLmdldCgpOwogfQogCi1ib29sIFF1aWNrTG9va0hhbmRsZTo6ZGlkUmVjZWl2ZURhdGFBcnJh
eShDRkFycmF5UmVmIGNmRGF0YUFycmF5KQorYm9vbCBRdWlja0xvb2tIYW5kbGU6OmRpZFJlY2Vp
dmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAobV9m
aW5pc2hlZExvYWRpbmdEYXRhSW50b0NvbnZlcnRlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgTE9HKE5ldHdvcmssICJRdWlja0xvb2tIYW5kbGU6OmRpZFJlY2VpdmVEYXRhQXJyYXko
KSIpOwotICAgIFttX2NvbnZlcnRlciBhcHBlbmREYXRhQXJyYXk6KE5TQXJyYXkgKiljZkRhdGFB
cnJheV07Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhQXJyYXkoY2ZEYXRhQXJyYXkpOwor
ICAgIGRpZFJlY2VpdmVEYXRhQXJyYXkoQFsgW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmRhdGEgbGVu
Z3RoOmxlbmd0aF0gXSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUXVpY2tMb29rSGFu
ZGxlOjpkaWRSZWNlaXZlRGF0YShDRkRhdGFSZWYgY2ZEYXRhKQorYm9vbCBRdWlja0xvb2tIYW5k
bGU6OmRpZFJlY2VpdmVCdWZmZXIoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAg
aWYgKG1fZmluaXNoZWRMb2FkaW5nRGF0YUludG9Db252ZXJ0ZXIpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICByZXR1cm4gZGlkUmVjZWl2ZURhdGFBcnJheShhZG9wdENGKENGQXJy
YXlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IHZvaWQqKikmY2ZEYXRhLCAxLCAm
a0NGVHlwZUFycmF5Q2FsbEJhY2tzKSkuZ2V0KCkpOworCisgICAgZGlkUmVjZWl2ZURhdGFBcnJh
eShidWZmZXIuY3JlYXRlTlNEYXRhQXJyYXkoKS5nZXQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3ZvaWQgUXVpY2tMb29rSGFuZGxlOjpkaWRSZWNlaXZlRGF0YUFycmF5KE5TQXJyYXkgKmRh
dGFBcnJheSkKK3sKKyAgICBBU1NFUlQoIW1fZmluaXNoZWRMb2FkaW5nRGF0YUludG9Db252ZXJ0
ZXIpOworICAgIExPRyhOZXR3b3JrLCAiUXVpY2tMb29rSGFuZGxlOjpkaWRSZWNlaXZlRGF0YUFy
cmF5KCkiKTsKKyAgICBbbV9jb252ZXJ0ZXIgYXBwZW5kRGF0YUFycmF5OmRhdGFBcnJheV07Cisg
ICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhQXJyYXkoKENGQXJyYXlSZWYpZGF0YUFycmF5KTsK
IH0KIAogYm9vbCBRdWlja0xvb2tIYW5kbGU6OmRpZEZpbmlzaExvYWRpbmcoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRleCA4M2E0NjM4NzlhMzlmZmYyZTlkMTlmNzY0
YTc2NGM1NzIxMjZiYmU5Li5jZGMyMWJjMDU2NjExMzU3NDhlYTMwMTQzOWJlMGQzMDE4YjIyMmE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaApAQCAtNjUsNyArNjUsNyBA
QCBwdWJsaWM6CiAgICAgCiAjaWYgVVNFKEZPVU5EQVRJT04pCiAgICAgV0VCQ09SRV9FWFBPUlQg
UmV0YWluUHRyPE5TRGF0YT4gY3JlYXRlTlNEYXRhKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmV0
YWluUHRyPE5TQXJyYXk+IGNyZWF0ZU5TRGF0YUFycmF5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
UmV0YWluUHRyPE5TQXJyYXk+IGNyZWF0ZU5TRGF0YUFycmF5KCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZjxTaGFyZWRCdWZmZXI+IHdyYXBOU0RhdGEoTlNEYXRhICopOwog
I2VuZGlmCiAjaWYgVVNFKENGKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TaGFyZWRCdWZmZXJDb2NvYS5tbQppbmRleCA0YTI2OWVmMWZhNTc3ZTUyMTYxODU4NWU4Y2Rl
NmQ4YWJmYzdhOGRkLi43MGJlOWUzYWQwMTg2NGU4MjFkMTE1ZWJkMjYxN2ExMmRhMWY1NzBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TaGFyZWRCdWZmZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TaGFyZWRCdWZmZXJDb2Nv
YS5tbQpAQCAtMTIzLDcgKzEyMyw3IEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlRnJvbVJlYWRpbmdGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKLVJldGFpblB0cjxOU0FycmF5PiBTaGFyZWRCdWZmZXI6OmNyZWF0
ZU5TRGF0YUFycmF5KCkKK1JldGFpblB0cjxOU0FycmF5PiBTaGFyZWRCdWZmZXI6OmNyZWF0ZU5T
RGF0YUFycmF5KCkgY29uc3QKIHsKICAgICBpZiAoYXV0byBwbGF0Zm9ybURhdGEgPSAoTlNEYXRh
ICopbV9jZkRhdGEuZ2V0KCkpCiAgICAgICAgIHJldHVybiBAWyBwbGF0Zm9ybURhdGEgXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAK
aW5kZXggMjFiMzI5NWVlNDE2MjExYWMxNmNjODcxMDIwMzc2Yzc5YWI1ZWQzYy4uMWZkMGZkOTNh
YzkzYWYzZTVkMGNiOTA1MjhhY2EyN2FmYzliODM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzgsMTAgKzM4LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaWYgVVNF
KFFVSUNLX0xPT0spCi0jaW5jbHVkZSAiUXVpY2tMb29rLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdGF0aWMgYm9vbCBzaG91bGRGb3JjZUNvbnRlbnRTbmlmZmluZzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRl
eCA3YmZhYTMzMWM2ZGE5YTFmNjkxYzUyOTBlZWFjNWZlNzFjNDdhOWUwLi4zODBjMzIwNzU4MGM0
YWFhNmZkZjQ5OWIxYWNmYTBkZTA4ZWYwMWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0NywxMSAr
MTQ3LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNv
bnN0IFN0cmluZyYgaG9zdCwgQ0ZEYXRhUmVmKTsKICNlbmRpZgogCi0jaWYgVVNFKFFVSUNLX0xP
T0spCi0gICAgUXVpY2tMb29rSGFuZGxlKiBxdWlja0xvb2tIYW5kbGUoKSB7IHJldHVybiBtX3F1
aWNrTG9vay5nZXQoKTsgfQotICAgIHZvaWQgc2V0UXVpY2tMb29rSGFuZGxlKHN0ZDo6dW5pcXVl
X3B0cjxRdWlja0xvb2tIYW5kbGU+KTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBV
U0UoQ1VSTCkKICAgICBzdGF0aWMgdm9pZCBzZXRIb3N0QWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0
ZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDbGllbnRDZXJ0aWZpY2F0ZUlu
Zm8oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CkBAIC0yODAs
MTAgKzI3NSw2IEBAIHByaXZhdGU6CiAKICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4gZDsK
LQotI2lmIFVTRShRVUlDS19MT09LKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5k
bGU+IG1fcXVpY2tMb29rOwotI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKaW5kZXggYTUxNWJh
M2YwYmM2ZmZiZDJjNjkzNTYwY2Q4ZTFmNWNhMThiYWQ1My4uNWMzNzFlZDk5ZjAzMWRlYjg4MDVm
YWQyNDI3YzFjOTZlMzY0MTI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaApAQCAtMSw2ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MywxMCArNTIsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKICAgICBjbGFzcyBTaGFy
ZWRCdWZmZXI7CiAKLSNpZiBVU0UoUVVJQ0tfTE9PSykKLSAgICBjbGFzcyBRdWlja0xvb2tIYW5k
bGU7Ci0jZW5kaWYKLQogICAgIGVudW0gQ2FjaGVTdG9yYWdlUG9saWN5IHsKICAgICAgICAgU3Rv
cmFnZUFsbG93ZWQsCiAgICAgICAgIFN0b3JhZ2VBbGxvd2VkSW5NZW1vcnlPbmx5LApAQCAtMTMx
LDEwICsxMjYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZWxpZiBQTEFURk9STShDT0NPQSkK
ICAgICAgICAgdmlydHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNlICp3aWxsQ2FjaGVSZXNwb25zZShS
ZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKnJlc3BvbnNlKSB7IHJldHVybiBy
ZXNwb25zZTsgfQogI2VuZGlmCi0KLSNpZiBVU0UoUVVJQ0tfTE9PSykKLSAgICAgICAgdmlydHVh
bCB2b2lkIGRpZENyZWF0ZVF1aWNrTG9va0hhbmRsZShRdWlja0xvb2tIYW5kbGUmKSB7IH0KLSNl
bmRpZgogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcAppbmRleCAwZDdjNzA4YjdhMzE5
ZDA3ZjFkYzVkMjk0ZTJjZjc1MGRkZDM2NGUxLi44NGUyZjE1MmI3ODE5NjA2YjEyYzdhNzE3ODYx
MDcwN2QyYjQyOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDEzLCAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE2NywxNSAr
MTY3LDYgQEAgdm9pZCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGU6OmRpZFJlY2VpdmVSZXNwb25zZShDRlVSTEMKICAgICB9CiAjZW5kaWYKIAotI2lmIFVT
RShRVUlDS19MT09LKQotICAgIGJvb2wgaXNRdWlja0xvb2tQcmV2aWV3ID0gZmFsc2U7Ci0gICAg
bV9oYW5kbGUtPnNldFF1aWNrTG9va0hhbmRsZShRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShtX2hh
bmRsZSwgdGhpcywgY2ZSZXNwb25zZSkpOwotICAgIGlmIChtX2hhbmRsZS0+cXVpY2tMb29rSGFu
ZGxlKCkpIHsKLSAgICAgICAgY2ZSZXNwb25zZSA9IG1faGFuZGxlLT5xdWlja0xvb2tIYW5kbGUo
KS0+Y2ZSZXNwb25zZSgpOwotICAgICAgICBpc1F1aWNrTG9va1ByZXZpZXcgPSB0cnVlOwotICAg
IH0KLSNlbmRpZgotCiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlKGNmUmVz
cG9uc2UpOwogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX1RJTUlORykKICAgICBS
ZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoY29ubmVjdGlvbiwgcmVzb3Vy
Y2VSZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpKTsKQEAgLTE4MywxMCArMTc0LDYgQEAgdm9p
ZCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJl
Y2VpdmVSZXNwb25zZShDRlVSTEMKICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAjZW5k
aWYKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0SXNRdWlj
a0xvb2soaXNRdWlja0xvb2tQcmV2aWV3KTsKLSNlbmRpZgotCiAgICAgbV9oYW5kbGUtPmNsaWVu
dCgpLT5kaWRSZWNlaXZlUmVzcG9uc2UobV9oYW5kbGUsIFdURk1vdmUocmVzb3VyY2VSZXNwb25z
ZSkpOwogfQogCkBAIC0xOTQsMTEgKzE4MSw2IEBAIHZvaWQgU3luY2hyb25vdXNSZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZlRGF0YShDRkRhdGFSZWYKIHsK
ICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZlRGF0YShoYW5kbGU9JXAsIGJ5dGVzPSVsZCkg
KCVzKSIsIG1faGFuZGxlLCBDRkRhdGFHZXRMZW5ndGgoZGF0YSksIG1faGFuZGxlLT5maXJzdFJl
cXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotI2lmIFVTRShRVUlDS19M
T09LKQotICAgIGlmIChtX2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCkgJiYgbV9oYW5kbGUtPnF1
aWNrTG9va0hhbmRsZSgpLT5kaWRSZWNlaXZlRGF0YShkYXRhKSkKLSAgICAgICAgcmV0dXJuOwot
I2VuZGlmCi0KICAgICBpZiAoUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IG1faGFuZGxl
LT5jbGllbnQoKSkKICAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlQnVmZmVyKG1faGFuZGxlLCBT
aGFyZWRCdWZmZXI6OndyYXBDRkRhdGEoZGF0YSksIG9yaWdpbmFsTGVuZ3RoKTsKIH0KQEAgLTIw
NywxMSArMTg5LDYgQEAgdm9pZCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGU6OmRpZEZpbmlzaExvYWRpbmcoKQogewogICAgIExPRyhOZXR3b3JrLCAiQ0ZO
ZXQgLSBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRp
ZEZpbmlzaExvYWRpbmcoaGFuZGxlPSVwKSAoJXMpIiwgbV9oYW5kbGUsIG1faGFuZGxlLT5maXJz
dFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotI2lmIFVTRShRVUlD
S19MT09LKQotICAgIGlmIChtX2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCkgJiYgbV9oYW5kbGUt
PnF1aWNrTG9va0hhbmRsZSgpLT5kaWRGaW5pc2hMb2FkaW5nKCkpCi0gICAgICAgIHJldHVybjsK
LSNlbmRpZgotCiAgICAgaWYgKFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBtX2hhbmRs
ZS0+Y2xpZW50KCkpCiAgICAgICAgIGNsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhtX2hhbmRsZSwg
MCk7CiB9CkBAIC0yMjAsMTEgKzE5Nyw2IEBAIHZvaWQgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRGYWlsKENGRXJyb3JSZWYgZXJyb3IpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENv
bm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkRmFpbChoYW5kbGU9JXAsIGVycm9yID0gJXApICglcykiLCBt
X2hhbmRsZSwgZXJyb3IsIG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGlmIChRdWlja0xvb2tI
YW5kbGUqIHF1aWNrTG9va0hhbmRsZSA9IG1faGFuZGxlLT5xdWlja0xvb2tIYW5kbGUoKSkKLSAg
ICAgICAgcXVpY2tMb29rSGFuZGxlLT5kaWRGYWlsKCk7Ci0jZW5kaWYKLQogICAgIGlmIChSZXNv
dXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gbV9oYW5kbGUtPmNsaWVudCgpKQogICAgICAgICBj
bGllbnQtPmRpZEZhaWwobV9oYW5kbGUsIFJlc291cmNlRXJyb3IoZXJyb3IpKTsKIH0KQEAgLTMw
NiwxMSArMjc4LDYgQEAgdm9pZCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnIKIAogICAgIExPRyhOZXR3b3Jr
LCAiQ0ZOZXQgLSBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGU6OmRpZFJlY2VpdmVEYXRhQXJyYXkoaGFuZGxlPSVwLCBhcnJheUxlbmd0aD0lbGQpICglcyki
LCBtX2hhbmRsZSwgQ0ZBcnJheUdldENvdW50KGRhdGFBcnJheSksIG1faGFuZGxlLT5maXJzdFJl
cXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotI2lmIFVTRShRVUlDS19M
T09LKQotICAgIGlmIChtX2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCkgJiYgbV9oYW5kbGUtPnF1
aWNrTG9va0hhbmRsZSgpLT5kaWRSZWNlaXZlRGF0YUFycmF5KGRhdGFBcnJheSkpCi0gICAgICAg
IHJldHVybjsKLSNlbmRpZgotCiAgICAgaWYgKFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQg
PSBtX2hhbmRsZS0+Y2xpZW50KCkpCiAgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZUJ1ZmZlciht
X2hhbmRsZSwgU2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRhQXJyYXkoZGF0YUFycmF5KSwgLTEpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQppbmRleCAxNzM3Yzc4NzFmZGUzNGNkZmVkZTE0YTZiZDUwZjQ5MWEw
MjkzYTVhLi41YmEyNzhkZjY4OTkzY2FjNzVkMmNiYzkzYmRmNTc1ZWYxNDk4OTU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03Nywx
MCArNzcsNiBAQCAtIChDRlVSTFJlcXVlc3RSZWYpIF9DRlVSTFJlcXVlc3Q7CiBAZW5kCiAjZW5k
aWYKIAotI2lmIFVTRShRVUlDS19MT09LKQotI2ltcG9ydCAiUXVpY2tMb29rLmgiCi0jZW5kaWYK
LQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbnRlcmZhY2UgTlNVUkxDb25uZWN0aW9u
ICgpCkBAIC03NTIsMTIgKzc0OCw1IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rp
b25UaW1pbmdEYXRhKE5TVVJMQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwgTmV0d29yCiAgICAgCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9USU1JTkcpCiAKLSNpZiBVU0UoUVVJQ0tfTE9PSykKLXZvaWQg
UmVzb3VyY2VIYW5kbGU6OnNldFF1aWNrTG9va0hhbmRsZShzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tM
b29rSGFuZGxlPiBoYW5kbGUpCi17Ci0gICAgbV9xdWlja0xvb2sgPSBXVEZNb3ZlKGhhbmRsZSk7
Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0Rl
bGVnYXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQppbmRleCA4YTA5ZjFlN2QzNWRiNmVlNWFhMWZiZTEx
NzU5ZDM0Y2RiMzM1NTBiLi5mYzFmNGY2NzdkY2RhODcwMjBhNTRhODY2OTBkZDZiZjNmZmFkMTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0KQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwLCAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksMTAgKzM5LDYgQEAKICNp
bXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAK
LSNpZiBVU0UoUVVJQ0tfTE9PSykKLSNpbXBvcnQgIlF1aWNrTG9vay5oIgotI2VuZGlmCi0KIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW1wbGVtZW50YXRpb24gV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNEZWxlZ2F0ZQpAQCAtMTQ2LDIwICsxNDIsOCBAQCAtICh2b2lkKWNvbm5lY3Rpb246
KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJl
c3BvbgogICAgICAgICBbcmVzcG9uc2UgX3NldE1JTUVUeXBlOkAidGV4dC9odG1sIl07CiAjZW5k
aWYKIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGJvb2wgaXNRdWlja0xvb2tQcmV2aWV3ID0g
ZmFsc2U7Ci0gICAgbV9oYW5kbGUtPnNldFF1aWNrTG9va0hhbmRsZShRdWlja0xvb2tIYW5kbGU6
OmNyZWF0ZShtX2hhbmRsZSwgY29ubmVjdGlvbiwgcmVzcG9uc2UsIHNlbGYpKTsKLSAgICBpZiAo
bV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpKSB7Ci0gICAgICAgIHJlc3BvbnNlID0gbV9oYW5k
bGUtPnF1aWNrTG9va0hhbmRsZSgpLT5uc1Jlc3BvbnNlKCk7Ci0gICAgICAgIGlzUXVpY2tMb29r
UHJldmlldyA9IHRydWU7Ci0gICAgfQotI2VuZGlmCi0KICAgICBSZXNvdXJjZVJlc3BvbnNlIHJl
c291cmNlUmVzcG9uc2UocmVzcG9uc2UpOwogICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0U291cmNl
KFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0d29yayk7Ci0jaWYgVVNFKFFVSUNLX0xPT0sp
Ci0gICAgcmVzb3VyY2VSZXNwb25zZS5zZXRJc1F1aWNrTG9vayhpc1F1aWNrTG9va1ByZXZpZXcp
OwotI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgUmVzb3VyY2VIYW5kbGU6Omdl
dENvbm5lY3Rpb25UaW1pbmdEYXRhKGNvbm5lY3Rpb24sIHJlc291cmNlUmVzcG9uc2UubmV0d29y
a0xvYWRUaW1pbmcoKSk7CiAjZWxzZQpAQCAtMTgxLDExICsxNjUsNiBAQCAtICh2b2lkKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGFBcnJheToo
TlNBcnJheSAqKQogICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFuZGxlLT5jbGllbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgaWYgKG1faGFuZGxlLT5x
dWlja0xvb2tIYW5kbGUoKSAmJiBtX2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCktPmRpZFJlY2Vp
dmVEYXRhQXJyYXkocmVpbnRlcnByZXRfY2FzdDxDRkFycmF5UmVmPihkYXRhQXJyYXkpKSkKLSAg
ICAgICAgcmV0dXJuOwotI2VuZGlmCi0KICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2Vp
dmVCdWZmZXIobV9oYW5kbGUsIFNoYXJlZEJ1ZmZlcjo6d3JhcENGRGF0YUFycmF5KHJlaW50ZXJw
cmV0X2Nhc3Q8Q0ZBcnJheVJlZj4oZGF0YUFycmF5KSksIC0xKTsKICAgICAvLyBUaGUgY2FsbCB0
byBkaWRSZWNlaXZlRGF0YSBhYm92ZSBjYW4gY2FuY2VsIGEgbG9hZCwgYW5kIGlmIHNvLCB0aGUg
ZGVsZWdhdGUgKHNlbGYpIGNvdWxkIGhhdmUgYmVlbiBkZWFsbG9jYXRlZCBieSB0aGlzIHBvaW50
LgogfQpAQCAtMjA5LDExICsxODgsNiBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVj
dGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGEgbAogICAgIC8v
IEhvd2V2ZXIsIHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRzLCB0
aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFjdGljZS4KICAgICAvLyBDb3VsZCBiZSBhbiBpc3N1ZSB3
aXRoIGEgZ2lhbnQgbG9jYWwgZmlsZS4KIAotI2lmIFVTRShRVUlDS19MT09LKQotICAgIGlmICht
X2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCkgJiYgbV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgp
LT5kaWRSZWNlaXZlRGF0YShyZWludGVycHJldF9jYXN0PENGRGF0YVJlZj4oZGF0YSkpKQotICAg
ICAgICByZXR1cm47Ci0jZW5kaWYKLQogICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKICAgICAvLyAtMSBtZWFucyB3ZSBkbyBub3QgcHJv
dmlkZSBhbnkgZGF0YSBhYm91dCB0cmFuc2ZlciBzaXplIHRvIGluc3BlY3RvciBzbyBpdCB3b3Vs
ZCB1c2UKICAgICAvLyBDb250ZW50LUxlbmd0aCBoZWFkZXJzIG9yIGNvbnRlbnQgc2l6ZSB0byBz
aG93IHRyYW5zZmVyIHNpemUuCkBAIC0yNDEsMTEgKzIxNSw2IEBAIC0gKHZvaWQpY29ubmVjdGlv
bkRpZEZpbmlzaExvYWRpbmc6KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KICAgICBpZiAo
IW1faGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xpZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotI2lm
IFVTRShRVUlDS19MT09LKQotICAgIGlmIChtX2hhbmRsZS0+cXVpY2tMb29rSGFuZGxlKCkgJiYg
bV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpLT5kaWRGaW5pc2hMb2FkaW5nKCkpCi0gICAgICAg
IHJldHVybjsKLSNlbmRpZgotCiAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2Fk
aW5nKG1faGFuZGxlLCAwKTsKIH0KIApAQCAtMjU4LDExICsyMjcsNiBAQCAtICh2b2lkKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkRmFpbFdpdGhFcnJvcjooTlNF
cnJvciAqKWVycgogICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFuZGxlLT5jbGllbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgaWYgKG1faGFuZGxlLT5x
dWlja0xvb2tIYW5kbGUoKSkKLSAgICAgICAgbV9oYW5kbGUtPnF1aWNrTG9va0hhbmRsZSgpLT5k
aWRGYWlsKCk7Ci0jZW5kaWYKLQogICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkRmFpbChtX2hh
bmRsZSwgZXJyb3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA2YjgwMjY2YjVjMjQxNTllMWZj
ZmQ5YTAyZWFiOTEyOGRlNzdjYWRlLi43MzhiMWRjYzMzOTM3MjY5NjhhNjJjNTczYzM4Mjg4ZDk3
ZjdiM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDQsMTAgKzQ0LDYgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJyZXNvdXJjZUxv
YWRlci5oPgogCi0jaWYgVVNFKFFVSUNLX0xPT0spCi0jaW5jbHVkZSA8V2ViQ29yZS9RdWlja0xv
b2suaD4KLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogI2RlZmluZSBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gV2ViUmVzb3VyY2VMb2FkZXI6OiIgZm10LCB0
aGlzLCAjI19fVkFfQVJHU19fKQpAQCAtMTE3LDE5ICsxMTMsNyBAQCB2b2lkIFdlYlJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGJvbwogICAgIGlmIChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0
aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yUmVzcG9uc2UobV9jb3JlTG9hZGVy
LmdldCgpLCByZXNwb25zZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgc2hvdWRDYWxs
Q29yZUxvYWRlckRpZFJlY2VpdmVSZXNwb25zZSA9IHRydWU7Ci0jaWYgVVNFKFFVSUNLX0xPT0sp
Ci0gICAgLy8gUmVmcmFpbiBmcm9tIGNhbGxpbmcgZGlkUmVjZWl2ZVJlc3BvbnNlIGlmIFF1aWNr
TG9vayB3aWxsIGNvbnZlcnQgdGhpcyByZXNwb25zZSwgc2luY2UgdGhlIE1JTUUgdHlwZSBvZiB0
aGUKLSAgICAvLyBjb252ZXJ0ZWQgcmVzb3VyY2UgaXNuJ3QgeWV0IGtub3duLiBXZWJSZXNvdXJj
ZUxvYWRlclF1aWNrTG9va0RlbGVnYXRlIHdpbGwgbGF0ZXIgY2FsbCBkaWRSZWNlaXZlUmVzcG9u
c2UgdXBvbgotICAgIC8vIHJlY2VpdmluZyB0aGUgY29udmVydGVkIGRhdGEuCi0gICAgYm9vbCBp
c01haW5Mb2FkID0gbV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VM
b2FkZXIoKSA9PSBtX2NvcmVMb2FkZXI7Ci0gICAgaWYgKGlzTWFpbkxvYWQgJiYgUXVpY2tMb29r
SGFuZGxlOjpzaG91bGRDcmVhdGVGb3JNSU1FVHlwZShyZXNwb25zZS5taW1lVHlwZSgpKSkgewot
ICAgICAgICBtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPnNldFF1aWNrTG9va0hhbmRs
ZShRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZSgqbV9jb3JlTG9hZGVyLCByZXNwb25zZSkpOwotICAg
ICAgICBzaG91ZENhbGxDb3JlTG9hZGVyRGlkUmVjZWl2ZVJlc3BvbnNlID0gZmFsc2U7Ci0gICAg
fQotI2VuZGlmCi0gICAgaWYgKHNob3VkQ2FsbENvcmVMb2FkZXJEaWRSZWNlaXZlUmVzcG9uc2Up
Ci0gICAgICAgIG1fY29yZUxvYWRlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKyAg
ICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CiAKICAgICAvLyBJ
ZiBtX2NvcmVMb2FkZXIgYmVjb21lcyBudWxsIGFzIGEgcmVzdWx0IG9mIHRoZSBkaWRSZWNlaXZl
UmVzcG9uc2UgY2FsbGJhY2ssIHdlIGNhbid0IHVzZSB0aGUgc2VuZCBmdW5jdGlvbigpLiAKICAg
ICBpZiAoIW1fY29yZUxvYWRlcikKQEAgLTE0OCwxMiArMTMyLDYgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBp
bnQ2NF90IGUKICAgICAgICAgbV9oYXNSZWNlaXZlZERhdGEgPSB0cnVlOwogICAgIH0KIAotI2lm
IFVTRShRVUlDS19MT09LKQotICAgIGlmIChRdWlja0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRs
ZSA9IG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+cXVpY2tMb29rSGFuZGxlKCkpIHsK
LSAgICAgICAgaWYgKHF1aWNrTG9va0hhbmRsZS0+ZGlkUmVjZWl2ZURhdGEoYWRvcHRDRihDRkRh
dGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKSku
Z2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgogICAgIG1fY29yZUxv
YWRlci0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5k
YXRhKCkpLCBkYXRhLnNpemUoKSwgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMp
OwogfQogCkBAIC0xNjIsMTIgKzE0MCw2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaFJlc291cmNlTG9hZChkb3VibGUgZmluaXNoVGltZSkKICAgICBMT0coTmV0d29yaywgIihX
ZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkIGZvciAn
JXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaFJlc291cmNlTG9hZDogKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCi0jaWYgVVNFKFFV
SUNLX0xPT0spCi0gICAgaWYgKFF1aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxlID0gbV9j
b3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5xdWlja0xvb2tIYW5kbGUoKSkgewotICAgICAg
ICBpZiAocXVpY2tMb29rSGFuZGxlLT5kaWRGaW5pc2hMb2FkaW5nKCkpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgfQotI2VuZGlmCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5n
KGZpbmlzaFRpbWUpOwogfQogCkBAIC0xNzYsMTAgKzE0OCw2IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAg
ICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxS
ZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGlu
MSgpLmRhdGEoKSk7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFpbFJlc291cmNl
TG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQp
OwogCi0jaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgaWYgKFF1aWNrTG9va0hhbmRsZSogcXVpY2tM
b29rSGFuZGxlID0gbV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5xdWlja0xvb2tIYW5k
bGUoKSkKLSAgICAgICAgcXVpY2tMb29rSGFuZGxlLT5kaWRGYWlsKCk7Ci0jZW5kaWYKICAgICBp
ZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgp
LT5tYXliZUxvYWRGYWxsYmFja0ZvckVycm9yKG1fY29yZUxvYWRlci5nZXQoKSwgZXJyb3IpKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9jb3JlTG9hZGVyLT5kaWRGYWlsKGVycm9yKTsKQEAgLTE5
MywxOCArMTYxLDYgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNl
KGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmQKIAogICAgIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IGJ1ZmZlciA9IGhhbmRsZS50cnlXcmFwSW5TaGFyZWRCdWZmZXIoKTsKIAotI2lm
IFVTRShRVUlDS19MT09LKQotICAgIGlmIChRdWlja0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRs
ZSA9IG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+cXVpY2tMb29rSGFuZGxlKCkpIHsK
LSAgICAgICAgaWYgKGJ1ZmZlcikgewotICAgICAgICAgICAgaWYgKHF1aWNrTG9va0hhbmRsZS0+
ZGlkUmVjZWl2ZURhdGEoYnVmZmVyLT5leGlzdGluZ0NGRGF0YSgpKSkgewotICAgICAgICAgICAg
ICAgIHF1aWNrTG9va0hhbmRsZS0+ZGlkRmluaXNoTG9hZGluZygpOwotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBxdWlj
a0xvb2tIYW5kbGUtPmRpZEZhaWwoKTsKLSAgICB9Ci0jZW5kaWYKLQogICAgIGlmICghYnVmZmVy
KSB7CiAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBidWZmZXIgZnJvbSBTaGFy
ZWFibGVSZXNvdXJjZSBzZW50IGZyb20gdGhlIG5ldHdvcmsgcHJvY2Vzcy4iKTsKICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiBVbmFibGUgdG8gY3Jl
YXRlIFNoYXJlZEJ1ZmZlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>