<?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>108669</bug_id>
          
          <creation_ts>2013-02-01 11:29:39 -0800</creation_ts>
          <short_desc>Message decoding functions should take a MessageDecoder reference</short_desc>
          <delta_ts>2013-02-01 14:16:04 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kadam</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>zarvai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>823026</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-01 11:29:39 -0800</bug_when>
    <thetext>Message decoding functions should take a MessageDecoder reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823035</commentid>
    <comment_count>1</comment_count>
      <attachid>186087</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-01 11:31:42 -0800</bug_when>
    <thetext>Created attachment 186087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823062</commentid>
    <comment_count>2</comment_count>
      <attachid>186087</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 11:45:33 -0800</bug_when>
    <thetext>Comment on attachment 186087
Patch

Attachment 186087 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16296908</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823076</commentid>
    <comment_count>3</comment_count>
      <attachid>186087</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-02-01 11:54:11 -0800</bug_when>
    <thetext>Comment on attachment 186087
Patch

r=me. Stream ops next? :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823079</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-01 11:55:45 -0800</bug_when>
    <thetext>Committed r141619: &lt;http://trac.webkit.org/changeset/141619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823105</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-01 12:09:17 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Committed r141619: &lt;http://trac.webkit.org/changeset/141619&gt;

Qt will need buildfix as the EWS mentions, cc Qt engineers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823256</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-01 14:16:04 -0800</bug_when>
    <thetext>Fixed by https://bugs.webkit.org/show_bug.cgi?id=108680</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186087</attachid>
            <date>2013-02-01 11:31:42 -0800</date>
            <delta_ts>2013-02-01 11:54:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108669-20130201112825.patch</filename>
            <type>text/plain</type>
            <size>213172</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDRkYjUzYjQ2YzExMzQ2
YjFiNDI2MjgzMDg1MTdjYTY5MDg5NDlmZi4uMTgzMGQ3OTZhMGUyYjc0MzgzYTk2NWY4Mzc5MTdl
ZmMzMGQ3MmRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1NiBAQAorMjAxMy0wMi0wMSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIE1lc3NhZ2UgZGVj
b2RpbmcgZnVuY3Rpb25zIHNob3VsZCB0YWtlIGEgTWVzc2FnZURlY29kZXIgcmVmZXJlbmNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg2NjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZXNzYWdlIGVu
Y29kaW5nIGZ1bmN0aW9ucyBhbHJlYWR5IHRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBv
aW50ZXIsIHNvCisgICAgICAgIG1ha2UgdGhlIGRlY29kaW5nIGZ1bmN0aW9ucyB0YWtlIGEgcmVm
ZXJlbmNlIGFzIHdlbGwuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29k
ZXIuaDoKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50Q29kZXI6OmRlY29kZSk6CisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBD
Ojo6OmRlY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpkZWNvZGVTdHJpbmdUZXh0KToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgIChDb3JlSVBD
OjpTaW1wbGVBcmd1bWVudENvZGVyOjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvQXJndW1lbnREZWNvZGVyLmg6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudERlY29kZXI6
OmRlY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaDoKKyAgICAg
ICAgKENvcmVJUEM6OkFyZ3VtZW50czA6OmRlY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1
bWVudHMxOjpkZWNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMjo6ZGVjb2RlKToK
KyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50czM6OmRlY29kZSk6CisgICAgICAgIChDb3JlSVBD
OjpBcmd1bWVudHM0OjpkZWNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzNTo6ZGVj
b2RlKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50czY6OmRlY29kZSk6CisgICAgICAgIChD
b3JlSVBDOjpBcmd1bWVudHM3OjpkZWNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRz
ODo6ZGVjb2RlKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50czEwOjpkZWNvZGUpOgorICAg
ICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5jcHA6CisgICAgICAgIChDb3JlSVBD
OjpBdHRhY2htZW50OjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXR0YWNo
bWVudC5oOgorICAgICAgICAoQXR0YWNobWVudCk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQ
Qy9EYXRhUmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKENvcmVJUEM6OkRhdGFSZWZlcmVuY2U6OmRl
Y29kZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmg6CisgICAg
ICAgIChEYXRhUmVmZXJlbmNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1Jl
ZmVyZW5jZS5jcHA6CisgICAgICAgIChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6OmRlY29kZSk6
CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaDoKKyAgICAgICAg
KFN0cmluZ1JlZmVyZW5jZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMvTWFjaFBv
cnQuaDoKKyAgICAgICAgKENvcmVJUEM6Ok1hY2hQb3J0OjpkZWNvZGUpOgorICAgICAgICAqIFBs
YXRmb3JtL1NoYXJlZE1lbW9yeS5oOgorICAgICAgICAoSGFuZGxlKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAg
ICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpEaWN0
aW9uYXJ5UG9wdXBJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9EaWN0aW9uYXJ5UG9w
dXBJbmZvLmg6CisgICAgICAgIChEaWN0aW9uYXJ5UG9wdXBJbmZvKToKKyAgICAgICAgKiBTaGFy
ZWQvRWRpdG9yU3RhdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JTdGF0ZTo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvRWRpdG9yU3RhdGUuaDoKKyAgICAgICAgKEVkaXRvclN0YXRl
KToKKyAgICAgICAgKiBTaGFyZWQvRm9udEluZm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpGb250
SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvRm9udEluZm8uaDoKKyAgICAgICAgKEZv
bnRJbmZvKToKKyAgICAgICAgKiBTaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oOgorICAgICAgICAo
TGF5ZXJUcmVlQ29udGV4dCk6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAoTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6T3JpZ2luQW5kRGF0YWJhc2VzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9PcmlnaW5BbmREYXRhYmFzZXMuaDoKKyAgICAgICAgKE9yaWdpbkFuZERhdGFiYXNl
cyk6CisgICAgICAgICogU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmg6CisgICAgICAgIChQbGF0Zm9ybVBvcHVwTWVudURh
dGEpOgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuaDoKKyAgICAgICAgKE5QSWRlbnRpZmllckRhdGEp
OgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOUFZhcmlhbnREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5z
L05QVmFyaWFudERhdGEuaDoKKyAgICAgICAgKE5QVmFyaWFudERhdGEpOgorICAgICAgICAqIFNo
YXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoK
KyAgICAgICAgKFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFNo
YXJlZC9QcmludEluZm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpQcmludEluZm86OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1ByaW50SW5mby5oOgorICAgICAgICAoUHJpbnRJbmZvKToKKyAg
ICAgICAgKiBTaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoSGFuZGxlKToKKyAg
ICAgICAgKEhhbmRsZUFycmF5KToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGVBcnJheTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhOjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuaDoKKyAgICAgICAgKFNlY3VyaXR5T3JpZ2lu
RGF0YSk6CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNlc3Npb25TdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvU2Vzc2lvblN0YXRl
Lmg6CisgICAgICAgIChTZXNzaW9uU3RhdGUpOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVC
aXRtYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZTo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmg6CisgICAgICAgIChIYW5k
bGUpOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1NoYXJlYWJsZVJlc291cmNlLmg6CisgICAgICAgIChIYW5kbGUpOgorICAgICAgICAqIFNo
YXJlZC9TaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6U2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
OgorICAgICAgICAoU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAg
ICAgICogU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RhdGlz
dGljc0RhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmg6Cisg
ICAgICAgIChTdGF0aXN0aWNzRGF0YSk6CisgICAgICAgICogU2hhcmVkL1N0cmluZ1BhaXJWZWN0
b3IuaDoKKyAgICAgICAgKFdlYktpdDo6U3RyaW5nUGFpclZlY3Rvcjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvVXBkYXRlSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUluZm86
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1VwZGF0ZUluZm8uaDoKKyAgICAgICAgKFVwZGF0
ZUluZm8pOgorICAgICAgICAqIFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVzc2FnZURlY29kZXI6OmJhc2VEZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5oOgorICAgICAgICAoV2ViQ29udGV4dE1lbnVJdGVtRGF0YSk6CisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6OmRl
Y29kZSk6CisgICAgICAgIChDb3JlSVBDOjpkZWNvZGVJbWFnZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJFdmVudC5oOgorICAgICAgICAoV2ViRXZlbnQpOgorICAgICAgICAoV2ViTW91c2VFdmVudCk6
CisgICAgICAgIChXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktleWJvYXJkRXZlbnQpOgor
ICAgICAgICAoV2ViR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYlBsYXRmb3JtVG91Y2hQb2lu
dCk6CisgICAgICAgIChXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRp
b246OkRhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaDoKKyAgICAgICAgKERhdGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZXN0dXJlRXZlbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQ6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRU
ZXN0UmVzdWx0OjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVz
dWx0Lmg6CisgICAgICAgIChEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3Vz
ZUV2ZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3Jl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmU6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VHcm91cERhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlBhZ2VHcm91cERhdGEuaDoKKyAgICAgICAgKFdlYlBhZ2VHcm91cERhdGEpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBv
cHVwSXRlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwSXRlbTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUG9wdXBJdGVtLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZl
cmVuY2VzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6CisgICAgICAg
IChXZWJQcmVmZXJlbmNlc1N0b3JlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG91
Y2hFdmVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwOgorICAgICAgICAoQ29yZUlQQzo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5oOgorICAgICAgICAoQ29yZUlQQyk6
CisgICAgICAgICogU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5oOgorICAgICAgICAoQ29y
ZUlQQyk6CisgICAgICAgICogU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAg
ICAgKENvcmVJUEM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3Ry
aW5nLmg6CisgICAgICAgIChBdHRyaWJ1dGVkU3RyaW5nKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L0F0dHJpYnV0ZWRTdHJpbmcubW06CisgICAgICAgIChXZWJLaXQ6OkF0dHJpYnV0ZWRTdHJpbmc6
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5oOgorICAgICAg
ICAoQ29sb3JTcGFjZURhdGEpOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEu
bW06CisgICAgICAgIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRhOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9tYWMvTGF5ZXJUcmVlQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlQ29udGV4dDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL09iakNPYmplY3RH
cmFwaENvZGVycy5oOgorICAgICAgICAoV2ViQ29udGV4dE9iakNPYmplY3RHcmFwaERlY29kZXIp
OgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhEZWNvZGVyKToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVycy5tbToKKyAgICAgICAgKFdlYktp
dDo6T2JqQ09iamVjdEdyYXBoRGVjb2Rlcjo6YmFzZURlY29kZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhEZWNvZGVySW1wbDo6ZGVjb2RlKToKKyAgICAgICAg
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhEZWNvZGVySW1wbDo6ZGVjb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE9iakNPYmplY3RHcmFwaERlY29kZXI6OmRl
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRGVj
b2Rlcjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvLmg6CisgICAgICAgIChQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyk6CisgICAgICAgICogU2hh
cmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbToKKyAgICAgICAgKFdlYktpdDo6UGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm86OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5oOgorICAgICAgICAoTGF5ZXJQcm9wZXJ0aWVzKToKKyAg
ICAgICAgKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJ
dGVtUmVxdWVzdERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZWNJdGVtUmVxdWVzdERhdGE6
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuaDoKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNJdGVtUmVzcG9uc2VEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
U2VjSXRlbVJlc3BvbnNlRGF0YS5oOgorICAgICAgICAoU2VjSXRlbVJlc3BvbnNlRGF0YSk6Cisg
ICAgICAgICogU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAg
IChDb3JlSVBDOjo6OmRlY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChDb3JlSVBDOjo6OmRl
Y29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyOjpkZWNvZGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRGVjb2Rlcjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgKFBhcmFtZXRlcnMp
OgorCiAyMDEzLTAyLTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBBZGFwdCBXb3JrUXVldWVHdGsgdG8gdGhlIGxhdGVzdCBjaGFu
Z2VzIGluIFdlYktpdDIgYWZ0ZXIgcjE0MTQ5NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0FyZ3VtZW50Q29kZXIuaAppbmRleCA0YmFhYjlmZTRmOTIzMTQ3NmNiYzI3Y2Nk
NDAwOTViNzdhYWU4Y2U3Li44Y2MzNzM4NDNjODAyZDA0MzUyYTM1ZGMxMWFlYmFjZWMwMTdiZTgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXIu
aApAQCAtMzksNyArMzksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlciB7CiAgICAgICAgIHQuZW5jb2RlKGVuY29kZXIpOwogICAgIH0KIAotICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFQmIHQpCisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVCYgdCkKICAgICB7CiAgICAgICAg
IHJldHVybiBUOjpkZWNvZGUoZGVjb2RlciwgdCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA0YmI2MTg1MGM3
ODUxYTY4ZmI0MmNhN2UwMTY5OWZkODAwYmU1NWEyLi4wMTE0YThhNDM4ZGIwYzZlMTUwNjAzMWE1
OWM2YTQzZjNkZGJkMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzcsMTAgKzM3LDEwIEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxBdG9taWNTdHJpbmc+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBBdG9taWNTCiAgICAgZW5jb2RlciA8PCBhdG9taWNTdHJpbmcuc3RyaW5nKCk7CiB9CiAKLWJv
b2wgQXJndW1lbnRDb2RlcjxBdG9taWNTdHJpbmc+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBBdG9taWNTdHJpbmcmIGF0b21pY1N0cmluZykKK2Jvb2wgQXJndW1lbnRDb2RlcjxB
dG9taWNTdHJpbmc+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBBdG9taWNTdHJp
bmcmIGF0b21pY1N0cmluZykKIHsKICAgICBTdHJpbmcgc3RyaW5nOwotICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHN0cmluZykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdHJpbmcpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdG9taWNTdHJpbmcgPSBzdHJpbmc7CkBAIC02MCwx
MCArNjAsMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPENTdHJpbmc+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDU3RyaW5nJiBzdHIKICAgICBlbmNvZGVyLmVuY29kZUZp
eGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzdHJpbmcuZGF0
YSgpKSwgbGVuZ3RoLCAxKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENTdHJpbmc+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBDU3RyaW5nJiByZXN1bHQpCitib29sIEFyZ3Vt
ZW50Q29kZXI8Q1N0cmluZz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENTdHJp
bmcmIHJlc3VsdCkKIHsKICAgICB1aW50MzJfdCBsZW5ndGg7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUobGVuZ3RoKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxlbmd0aCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmIChsZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czx1
aW50MzJfdD46Om1heCgpKSB7CkBAIC03MywxNCArNzMsMTQgQEAgYm9vbCBBcmd1bWVudENvZGVy
PENTdHJpbmc+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBDU3RyaW5nJiByZXN1
bHQpCiAgICAgfQogCiAgICAgLy8gQmVmb3JlIGFsbG9jYXRpbmcgdGhlIHN0cmluZywgbWFrZSBz
dXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyIGlzIGJpZyBlbm91Z2guCi0gICAgaWYgKCFkZWNv
ZGVyLT5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPGNoYXI+KGxlbmd0aCkpIHsKLSAgICAg
ICAgZGVjb2Rlci0+bWFya0ludmFsaWQoKTsKKyAgICBpZiAoIWRlY29kZXIuYnVmZmVySXNMYXJn
ZUVub3VnaFRvQ29udGFpbjxjaGFyPihsZW5ndGgpKSB7CisgICAgICAgIGRlY29kZXIubWFya0lu
dmFsaWQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGNoYXIqIGJ1ZmZl
cjsKICAgICBDU3RyaW5nIHN0cmluZyA9IENTdHJpbmc6Om5ld1VuaW5pdGlhbGl6ZWQobGVuZ3Ro
LCBidWZmZXIpOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGJ1ZmZlciksIGxlbmd0aCwgMSkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihidWZm
ZXIpLCBsZW5ndGgsIDEpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXN1bHQgPSBz
dHJpbmc7CkBAIC0xMDgsMjcgKzEwOCwyNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5nJiBzdHJpbgogfQog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLXN0YXRpYyBpbmxpbmUgYm9vbCBk
ZWNvZGVTdHJpbmdUZXh0KEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgdWludDMyX3QgbGVuZ3Ro
LCBTdHJpbmcmIHJlc3VsdCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBkZWNvZGVTdHJpbmdUZXh0KEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgdWludDMyX3QgbGVuZ3RoLCBTdHJpbmcmIHJlc3VsdCkK
IHsKICAgICAvLyBCZWZvcmUgYWxsb2NhdGluZyB0aGUgc3RyaW5nLCBtYWtlIHN1cmUgdGhhdCB0
aGUgZGVjb2RlciBidWZmZXIgaXMgYmlnIGVub3VnaC4KLSAgICBpZiAoIWRlY29kZXItPmJ1ZmZl
cklzTGFyZ2VFbm91Z2hUb0NvbnRhaW48Q2hhcmFjdGVyVHlwZT4obGVuZ3RoKSkgewotICAgICAg
ICBkZWNvZGVyLT5tYXJrSW52YWxpZCgpOworICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdl
RW5vdWdoVG9Db250YWluPENoYXJhY3RlclR5cGU+KGxlbmd0aCkpIHsKKyAgICAgICAgZGVjb2Rl
ci5tYXJrSW52YWxpZCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAogICAg
IENoYXJhY3RlclR5cGUqIGJ1ZmZlcjsKICAgICBTdHJpbmcgc3RyaW5nID0gU3RyaW5nOjpjcmVh
dGVVbmluaXRpYWxpemVkKGxlbmd0aCwgYnVmZmVyKTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihidWZmZXIpLCBsZW5n
dGggKiBzaXplb2YoQ2hhcmFjdGVyVHlwZSksIF9fYWxpZ25vZihDaGFyYWN0ZXJUeXBlKSkpCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVp
bnQ4X3QqPihidWZmZXIpLCBsZW5ndGggKiBzaXplb2YoQ2hhcmFjdGVyVHlwZSksIF9fYWxpZ25v
ZihDaGFyYWN0ZXJUeXBlKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICByZXN1
bHQgPSBzdHJpbmc7CiAgICAgcmV0dXJuIHRydWU7ICAgIAogfQogCi1ib29sIEFyZ3VtZW50Q29k
ZXI8U3RyaW5nPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU3RyaW5nJiByZXN1
bHQpCitib29sIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgdWludDMyX3QgbGVuZ3RoOwotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGxlbmd0aCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsZW5n
dGgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobGVuZ3RoID09IHN0ZDo6bnVt
ZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSkgewpAQCAtMTM5LDcgKzEzOSw3IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxTdHJpbmc+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBT
dHJpbmcmIHJlc3VsdCkKIAogICAgIGJvb2wgaXM4Qml0OwogCi0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoaXM4Qml0KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzOEJpdCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmIChpczhCaXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggZjQ2NThhOWUxNDcwZGQ3ZGFk
MjkxYWY5NmIyZTM1YWE1ZWNlNjNlZi4uNmM4MjQxZTcxYTE1Yjk4YjE4ZTZiMmRjZGRmYzRjOTM1
ZmMzZWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1
bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1l
bnRDb2RlcnMuaApAQCAtNDMsOSArNDMsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
U2ltcGxlQXJndW1lbnRDb2RlciB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhE
YXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KCZ0KSwgc2l6ZW9mKFQpLCBfX2Fs
aWdub2YoVCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIFQmIHQpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgVCYgdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGVG
aXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oJnQpLCBzaXplb2YoVCks
IF9fYWxpZ25vZihUKSk7CisgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3Ro
RGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmdCksIHNpemVvZihUKSwgX19hbGlnbm9m
KFQpKTsKICAgICB9CiB9OwogCkBAIC01NSwxNCArNTUsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+ID4gewog
ICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwgcGFpci5zZWNvbmQ7CiAgICAgfQogCi0g
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2Rlciwgc3RkOjpwYWly
PFQsIFU+JiBwYWlyKQorICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7Ci0g
ICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGZpcnN0KSkKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShmaXJzdCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVSBz
ZWNvbmQ7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNlY29uZCkpCisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoc2Vjb25kKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICBwYWlyLmZpcnN0ID0gZmlyc3Q7CkBAIC03NywxNCArNzcsMTQgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5VHlwZSwgdHlwZW5hbWUgVmFsdWVUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXVEY6OktleVZhbHUKICAgICAgICAgZW5jb2RlciA8PCBwYWlyLmtleSA8PCBwYWlyLnZhbHVl
OwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29k
ZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV1RGOjpLZXlWYWx1ZVBh
aXI8S2V5VHlwZSwgVmFsdWVUeXBlPiYgcGFpcikKICAgICB7CiAgICAgICAgIEtleVR5cGUga2V5
OwotICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShrZXkpKQorICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGtleSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVmFs
dWVUeXBlIHZhbHVlOwotICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh2YWx1ZSkpCisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIHBhaXIua2V5ID0ga2V5OwpAQCAtMTAzLDE2ICsxMDMsMTYgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IFZlY3RvckFyZ3VtZW50Q29kZXI8ZmFsc2UsIFQ+IHsKICAg
ICAgICAgICAgIGVuY29kZXIgPDwgdmVjdG9yW2ldOwogICAgIH0KIAotICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFZlY3RvcjxUPiYgdmVjdG9yKQorICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxUPiYg
dmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3Qgc2l6ZTsKLSAgICAgICAgaWYgKCFkZWNv
ZGVyLT5kZWNvZGUoc2l6ZSkpCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVmVjdG9yPFQ+IHRtcDsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAgIFQgZWxl
bWVudDsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGVsZW1lbnQpKQorICAgICAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShlbGVtZW50KSkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHRtcC5hcHBlbmQoZWxlbWVudCk7
CkBAIC0xMzEsMjQgKzEzMSwyNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgVmVjdG9y
QXJndW1lbnRDb2Rlcjx0cnVlLCBUPiB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5n
dGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZlY3Rvci5kYXRhKCkpLCB2
ZWN0b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBfX2FsaWdub2YoVCkpOwogICAgIH0KICAgICAKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBWZWN0b3I8VD4m
IHZlY3RvcikKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBWZWN0b3I8VD4mIHZlY3RvcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IHNpemU7Ci0gICAg
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNpemUpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHNpemUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8vIFNpbmNl
IHdlIGtub3cgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGVsZW1lbnRzLCB3ZSBjYW4gYWxsb2NhdGUg
dGhlIHZlY3RvciBpbgogICAgICAgICAvLyBvbmUgZmVsbCBzd29vcC4gQmVmb3JlIGFsbG9jYXRp
bmcgd2UgbXVzdCBob3dldmVyIG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlcgogICAg
ICAgICAvLyBpcyBiaWcgZW5vdWdoLgotICAgICAgICBpZiAoIWRlY29kZXItPmJ1ZmZlcklzTGFy
Z2VFbm91Z2hUb0NvbnRhaW48VD4oc2l6ZSkpIHsKLSAgICAgICAgICAgIGRlY29kZXItPm1hcmtJ
bnZhbGlkKCk7CisgICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250
YWluPFQ+KHNpemUpKSB7CisgICAgICAgICAgICBkZWNvZGVyLm1hcmtJbnZhbGlkKCk7CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICBWZWN0b3I8VD4gdGVt
cDsKICAgICAgICAgdGVtcC5yZXNpemUoc2l6ZSk7CiAKLSAgICAgICAgZGVjb2Rlci0+ZGVjb2Rl
Rml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KHRlbXAuZGF0YSgpKSwg
c2l6ZSAqIHNpemVvZihUKSwgX19hbGlnbm9mKFQpKTsKKyAgICAgICAgZGVjb2Rlci5kZWNvZGVG
aXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4odGVtcC5kYXRhKCkpLCBz
aXplICogc2l6ZW9mKFQpLCBfX2FsaWdub2YoVCkpOwogCiAgICAgICAgIHZlY3Rvci5zd2FwKHRl
bXApOwogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2NywyNCArMTY3LDI0IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpCiAgICAgICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBIYXNoTWFwVHlw
ZSYgaGFzaE1hcCkKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhhc2hN
YXBTaXplOwotICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShoYXNoTWFwU2l6ZSkpCisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzaE1hcFNpemUpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgICAgIEhhc2hNYXBUeXBlIHRlbXBIYXNoTWFwOwogICAgICAgICBmb3Ig
KHVpbnQ2NF90IGkgPSAwOyBpIDwgaGFzaE1hcFNpemU7ICsraSkgewogICAgICAgICAgICAgS2V5
QXJnIGtleTsKICAgICAgICAgICAgIE1hcHBlZEFyZyB2YWx1ZTsKLSAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKGtleSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtl
eSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFkZWNv
ZGVyLT5kZWNvZGUodmFsdWUpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1
ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBpZiAoIXRl
bXBIYXNoTWFwLmFkZChrZXksIHZhbHVlKS5pc05ld0VudHJ5KSB7CiAgICAgICAgICAgICAgICAg
Ly8gVGhlIGhhc2ggbWFwIGFscmVhZHkgaGFzIHRoZSBzcGVjaWZpZWQga2V5LCBiYWlsLgotICAg
ICAgICAgICAgICAgIGRlY29kZXItPm1hcmtJbnZhbGlkKCk7CisgICAgICAgICAgICAgICAgZGVj
b2Rlci5tYXJrSW52YWxpZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpAQCAtMTk2LDE3ICsxOTYsMTcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1l
IEtleVRyYWkKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBdG9taWNTdHJpbmc+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgQXRvbWlj
U3RyaW5nJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIEF0b21p
Y1N0cmluZyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBBdG9t
aWNTdHJpbmcmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q1N0cmlu
Zz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBDU3Ry
aW5nJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIENTdHJpbmcm
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgQ1N0cmluZyYpOwog
fTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFN0cmluZyYpOworICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBTdHJpbmcmKTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIENvcmVJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
QXJndW1lbnREZWNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3Vt
ZW50RGVjb2Rlci5oCmluZGV4IDlhOWVkMjk1ZmE4Mzc1NTI3OGFkMzNkNzUzNjFmMTIwOGIyNTUw
NWIuLjIxZTgzNThkZWQ1MDcxZTlhNDhkZWUxYTYyNjE1OTFmMTEwOWI3NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuaApAQCAtODcs
NyArODcsNyBAQCBwdWJsaWM6CiAgICAgLy8gR2VuZXJpYyB0eXBlIGRlY29kZSBmdW5jdGlvbi4K
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIGRlY29kZShUJiB0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIEFyZ3VtZW50Q29kZXI8VD46OmRlY29kZSh0aGlzLCB0KTsKKyAgICAgICAgcmV0
dXJuIEFyZ3VtZW50Q29kZXI8VD46OmRlY29kZSgqdGhpcywgdCk7CiAgICAgfQogCiAgICAgYm9v
bCByZW1vdmVBdHRhY2htZW50KEF0dGFjaG1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0FyZ3VtZW50cy5oCmluZGV4IDdlZDk0ZDhiOTZkZDhkODAyYWUyZjg5ZGZkNDUy
MDQzYmEzNGE2YzUuLjc2NGM1ZWJiYzk0MmRlZTYzNDQ0NjliZDJiNDk5YjJkMzFjYWU5Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaApAQCAtMzksNyAr
MzksNyBAQCBzdHJ1Y3QgQXJndW1lbnRzMCB7CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBBcmd1bWVudHMwJikKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgQXJndW1lbnRzMCYpCiAgICAgewogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC02Miw5ICs2Miw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQx
PiBzdHJ1Y3QgQXJndW1lbnRzMSB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlKGFyZ3VtZW50MSk7
CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgQXJndW1lbnRzMSYgcmVzdWx0KQorICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIEFyZ3VtZW50czEmIHJlc3VsdCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmFyZ3VtZW50MSk7CisgICAgICAgIHJldHVybiBkZWNv
ZGVyLmRlY29kZShyZXN1bHQuYXJndW1lbnQxKTsKICAgICB9CiAgICAgCiAgICAgVDEgYXJndW1l
bnQxOwpAQCAtOTAsMTIgKzkwLDEyIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
Mj4gc3RydWN0IEFyZ3VtZW50czIgOiBBcmd1bWVudHMxPFQxPiB7CiAgICAgICAgIGVuY29kZXIu
ZW5jb2RlKGFyZ3VtZW50Mik7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzMiYgcmVzdWx0KQorICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEFyZ3VtZW50czImIHJlc3VsdCkKICAg
ICB7CiAgICAgICAgIGlmICghQXJndW1lbnRzMTxUMT46OmRlY29kZShkZWNvZGVyLCByZXN1bHQp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIGRl
Y29kZXItPmRlY29kZShyZXN1bHQuYXJndW1lbnQyKTsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5hcmd1bWVudDIpOwogICAgIH0KIAogICAgIFQyIGFyZ3VtZW50MjsKQEAg
LTEyMiwxMiArMTIyLDEyIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUCiAgICAgICAgIGVuY29k
ZXIuZW5jb2RlKGFyZ3VtZW50Myk7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzMyYgcmVzdWx0KQorICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEFyZ3VtZW50czMmIHJlc3VsdCkK
ICAgICB7CiAgICAgICAgIGlmICghQXJndW1lbnRzMjxUMSwgVDI+OjpkZWNvZGUoZGVjb2Rlciwg
cmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0gICAgICAgIHJl
dHVybiBkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmFyZ3VtZW50Myk7CisgICAgICAgIHJldHVybiBk
ZWNvZGVyLmRlY29kZShyZXN1bHQuYXJndW1lbnQzKTsKICAgICB9CiAKICAgICBUMyBhcmd1bWVu
dDM7CkBAIC0xNTUsMTIgKzE1NSwxMiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4gc3RydWN0IEFyZ3VtZW50czQgOgogICAgICAg
ICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDQpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM0JiByZXN1bHQpCisg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQXJndW1lbnRz
NCYgcmVzdWx0KQogICAgIHsKICAgICAgICAgaWYgKCFBcmd1bWVudHMzPFQxLCBUMiwgVDM+Ojpk
ZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgCi0gICAgICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmFyZ3VtZW50NCk7Cisg
ICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShyZXN1bHQuYXJndW1lbnQ0KTsKICAgICB9CiAK
ICAgICBUNCBhcmd1bWVudDQ7CkBAIC0xODksMTIgKzE4OSwxMiBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+
IHN0cnVjdAogICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDUpOwogICAgIH0KICAgICAK
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVu
dHM1JiByZXN1bHQpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgQXJndW1lbnRzNSYgcmVzdWx0KQogICAgIHsKICAgICAgICAgaWYgKCFBcmd1bWVudHM0
PFQxLCBUMiwgVDMsIFQ0Pjo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKHJl
c3VsdC5hcmd1bWVudDUpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFy
Z3VtZW50NSk7CiAgICAgfQogCiAgICAgVDUgYXJndW1lbnQ1OwpAQCAtMjI0LDEyICsyMjQsMTIg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICAgICAgZW5jb2Rlci5lbmNvZGUoYXJndW1l
bnQ2KTsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgQXJndW1lbnRzNiYgcmVzdWx0KQorICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIEFyZ3VtZW50czYmIHJlc3VsdCkKICAgICB7CiAgICAg
ICAgIGlmICghQXJndW1lbnRzNTxUMSwgVDIsIFQzLCBUNCwgVDU+OjpkZWNvZGUoZGVjb2Rlciwg
cmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0gICAgICAgIHJl
dHVybiBkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmFyZ3VtZW50Nik7CisgICAgICAgIHJldHVybiBk
ZWNvZGVyLmRlY29kZShyZXN1bHQuYXJndW1lbnQ2KTsKICAgICB9CiAKICAgICBUNiBhcmd1bWVu
dDY7CkBAIC0yNjAsMTIgKzI2MCwxMiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYQogICAgICAg
ICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDcpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM3JiByZXN1bHQpCisg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQXJndW1lbnRz
NyYgcmVzdWx0KQogICAgIHsKICAgICAgICAgaWYgKCFBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDY+OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmFy
Z3VtZW50Nyk7CisgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShyZXN1bHQuYXJndW1lbnQ3
KTsKICAgICB9CiAKICAgICBUNyBhcmd1bWVudDc7CkBAIC0yOTUsMTIgKzI5NSwxMiBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsIHR5cGVuYQogICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDgpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IEFyZ3VtZW50czgmIHJlc3VsdCkKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBBcmd1bWVudHM4JiByZXN1bHQpCiAgICAgewogICAgICAgICBpZiAoIUFy
Z3VtZW50czc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+OjpkZWNvZGUoZGVjb2RlciwgcmVz
dWx0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICByZXR1cm4gZGVjb2Rl
ci0+ZGVjb2RlKHJlc3VsdC5hcmd1bWVudDgpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmFyZ3VtZW50OCk7CiAgICAgfQogCiAgICAgVDggYXJndW1lbnQ4OwpAQCAtMzM0
LDEzICszMzQsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICAgICAgZW5jb2Rlci5l
bmNvZGUoYXJndW1lbnQxMCk7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzMTAmIHJlc3VsdCkKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBBcmd1bWVudHMxMCYgcmVzdWx0KQog
ICAgIHsKICAgICAgICAgaWYgKCFBcmd1bWVudHM4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOD46OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgICAgIGRlY29kZXItPmRlY29kZShyZXN1bHQuYXJndW1lbnQ5KTsKLSAgICAgICAg
cmV0dXJuIGRlY29kZXItPmRlY29kZShyZXN1bHQuYXJndW1lbnQxMCk7CisgICAgICAgIGRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5hcmd1bWVudDkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmFyZ3VtZW50MTApOwogICAgIH0KIAogICAgIFQ5IGFyZ3VtZW50OTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuY3BwCmluZGV4IDhmNDc3
NDg1ODQ1ODE1ZmE0NjNmMWU4Y2Q1ZjczYTUyMTNlZDljNGMuLjVkMTliYWQxN2YxNmIwYWM4MWIw
ZmY4M2FhNDY4MGY4NmZiYTk3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQXR0YWNobWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9BdHRhY2htZW50LmNwcApAQCAtNjQsOSArNjQsOSBAQCB2b2lkIEF0dGFjaG1lbnQ6OmVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci5hZGRBdHRh
Y2htZW50KCp0aGlzKTsKIH0KIAotYm9vbCBBdHRhY2htZW50OjpkZWNvZGUoQXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBBdHRhY2htZW50JiBhdHRhY2htZW50KQorYm9vbCBBdHRhY2htZW50Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBBdHRhY2htZW50JiBhdHRhY2htZW50KQog
ewotICAgIGlmICghZGVjb2Rlci0+cmVtb3ZlQXR0YWNobWVudChhdHRhY2htZW50KSkKKyAgICBp
ZiAoIWRlY29kZXIucmVtb3ZlQXR0YWNobWVudChhdHRhY2htZW50KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0F0dGFjaG1lbnQuaAppbmRleCBkZDI2YjNhNzY4MjQwOTdjNzliMjBkYzQyOTE3MDc5
Y2Q4NmM2ODhiLi5hNWFmNTU5MmQwM2I0ODI4NjY0OTY4MTlkNWQyMGE0ZjQxYWMwZTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuaApAQCAtODMsNyAr
ODMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBBdHRh
Y2htZW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIEF0dGFj
aG1lbnQmKTsKICAgICAKIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuY3BwIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcAppbmRleCBhMTQ0OTg2
MmM5ODJjMWFhYWYxMzFiNWE1MjllMTU1Njc5Y2U4NWM1Li41ZTI4ZDkwZmZkYjkzOTM4YTk1MzIw
ZDk0N2E0OGJmZjRmOWJmYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0RhdGFSZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvRGF0YVJlZmVyZW5jZS5jcHAKQEAgLTM2LDkgKzM2LDkgQEAgdm9pZCBEYXRhUmVmZXJl
bmNlOjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIu
ZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoKnRoaXMpOwogfQogCi1ib29sIERhdGFSZWZl
cmVuY2U6OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERhdGFSZWZlcmVuY2UmIGRh
dGFSZWZlcmVuY2UpCitib29sIERhdGFSZWZlcmVuY2U6OmRlY29kZShBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIERhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCiB7Ci0gICAgcmV0dXJuIGRl
Y29kZXItPmRlY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGRhdGFSZWZlcmVuY2UpOworICAg
IHJldHVybiBkZWNvZGVyLmRlY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGRhdGFSZWZlcmVu
Y2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5oCmluZGV4IGEwY2U4YzMxOWNmY2IyYzAxZjNm
N2RiY2Q4ZGMzMjg4ZGNiZTdlNTEuLmU2NmI3ZTA2ODk5NGM0MWEwOWQ5NTBmNzUzMjdlNjBmZjI3
MDA5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJl
ZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVy
ZW5jZS5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKTsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgRGF0YVJlZmVyZW5jZSYpOwogCiBw
cml2YXRlOgogICAgIGNvbnN0IHVpbnQ4X3QqIG1fZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmNwcAppbmRleCBkNDY2ZjNmYmQ3
NWI2Njg0OTA5Mzk2YWU3Y2VkYWQxNTkwYzk2YTczLi5hYzcyODI0ODk2Y2M1NmQwY2QwMjg0ZWU5
YmI3Y2NhNDY4ZDMwNTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwCkBAIC00NCwxMCArNDQsMTAgQEAgdm9pZCBTdHJpbmdS
ZWZlcmVuY2U6OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCBEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG1f
ZGF0YSksIG1fc2l6ZSk7CiB9CiAKLWJvb2wgU3RyaW5nUmVmZXJlbmNlOjpkZWNvZGUoQXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdSZWZlcmVuY2UmIHJlc3VsdCkKK2Jvb2wgU3RyaW5n
UmVmZXJlbmNlOjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmdSZWZlcmVu
Y2UmIHJlc3VsdCkKIHsKICAgICBEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShkYXRhUmVmZXJlbmNlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmVzdWx0Lm1f
ZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGFSZWZlcmVuY2UuZGF0YSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVm
ZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5j
ZS5oCmluZGV4IDQ3MjM1YzFjOWQzNWYzYjc0ZTU5NjM2MGZkNGE2MzJkNGNlODAwMzUuLjE1MDdi
MjU5YWZhMTEzMTEzYTk3YTA2ZDM4YjEzYmI5MjAyMGQ0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaApAQCAtNjgsNyArNjgsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJikgY29u
c3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFN0cmluZ1JlZmVy
ZW5jZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBTdHJpbmdS
ZWZlcmVuY2UmKTsKIAogICAgIHN0cnVjdCBIYXNoIHsKICAgICAgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goY29uc3QgU3RyaW5nUmVmZXJlbmNlJiBhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQb3J0LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9ydC5oCmluZGV4IGZhNDQ3NGUwNTM4ZjMxNjQxMjdhZDE3
MmZhZTMzOTNjZDE3MzUzNGYuLjQ3YWNlYjcwOTkwZDUxNGE4ZDlkNWZkNjcyYTZkNjcxZTg0MTQx
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQ
b3J0LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvTWFjaFBvcnQu
aApAQCAtNTEsMTAgKzUxLDEwIEBAIHB1YmxpYzoKICAgICAgICAgZW5jb2RlciA8PCBBdHRhY2ht
ZW50KG1fcG9ydCwgbV9kaXNwb3NpdGlvbik7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTWFjaFBvcnQmIHApCisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTWFjaFBvcnQmIHApCiAgICAgewog
ICAgICAgICBBdHRhY2htZW50IGF0dGFjaG1lbnQ7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKGF0dGFjaG1lbnQpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGF0dGFjaG1lbnQp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKICAgICAgICAgcC5tX3BvcnQg
PSBhdHRhY2htZW50LnBvcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L1NoYXJlZE1lbW9yeS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgK
aW5kZXggNDZkMDMyYTUxYzNiMDJhMjEzOWZlNjE4ZDE0ODQ5YWNmNzNlOWQ3Yi4uYTY3ZGU4ZGY4
YTIzNmU5YzVlOTJmNmE1M2EzNTQ4Zjc3Nzc5ZGVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
U2hhcmVkTWVtb3J5LmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgICAgICBib29sIGlz
TnVsbCgpIGNvbnN0OwogCiAgICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwotICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgSGFuZGxlJik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImLCBIYW5kbGUmKTsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NL
RVRTKQogICAgICAgICBDb3JlSVBDOjpBdHRhY2htZW50IHJlbGVhc2VUb0F0dGFjaG1lbnQoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1v
cnlNYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5j
cHAKaW5kZXggZjE4YzUzNDAyN2MwODA0MDM4YWE1ZGQzMTgwMzg1ZTg3ZDI4Y2FmMy4uZGMyOWQ2
MWMyNzAzZmI1YjY4YzExMjM4M2I1YzM3MjBmMTA2OGNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5jcHAKQEAgLTYyLDE3ICs2MiwxNyBAQCB2
b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIG1fcG9ydCA9IE1BQ0hfUE9SVF9OVUxMOwogfQogCi1ib29s
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkKK2Jvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEhhbmRsZSYgaGFuZGxlKQogewog
ICAgIEFTU0VSVCghaGFuZGxlLm1fcG9ydCk7CiAgICAgQVNTRVJUKCFoYW5kbGUubV9zaXplKTsK
IAogICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgQ29yZUlQQzo6TWFjaFBvcnQgbWFjaFBvcnQ7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
bWFjaFBvcnQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWFjaFBvcnQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgaGFuZGxlLm1fc2l6ZSA9IHNpemU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKaW5kZXggMTU2NTBmYWU2YTdjZmE1OWZkZDIxZTgwODUyZDJlM2ZjYzkwYjBmOS4uNDA5
MTA2YTQ5NGNkMDI4M2YxZDg2OGU4OWUzMWNkZjVkYmI0MDJjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cApAQCAtNjEsMzQgKzYxLDM0IEBAIHZvaWQgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiB9CiAK
LWJvb2wgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKK2Jvb2wg
UGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKIHsKLSAgICBpZiAo
IWRlY29kZXItPmRlY29kZShyZXN1bHQucGx1Z2luSW5zdGFuY2VJRCkgfHwgIXJlc3VsdC5wbHVn
aW5JbnN0YW5jZUlEKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnBsdWdpbkluc3Rh
bmNlSUQpIHx8ICFyZXN1bHQucGx1Z2luSW5zdGFuY2VJRCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LndpbmRvd05QT2JqZWN0SUQpKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LndpbmRvd05QT2JqZWN0SUQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQucGFyYW1l
dGVycykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQucGFyYW1ldGVycykpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC51c2Vy
QWdlbnQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVzZXJBZ2VudCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5jb250
ZW50c1NjYWxlRmFjdG9yKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb250ZW50
c1NjYWxlRmFjdG9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUocmVzdWx0LmlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmFzeW5jaHJvbm91
c0NyZWF0aW9uSW5jb21wbGV0ZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYXN5
bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXph
dGlvbkRlbGF5RW5hYmxlZCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYXJ0aWZp
Y2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHJlc3VsdC5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDEz
ODdmMTQwZWI5NzI2YTU1N2QyMjg1ZDM1NDU2NjI4NzU3ZjQ4OGYuLjMzZjM4NGI2NTg2Y2RlOWQ0
MjBlOWVlZTUyNmE4OWU1YWE3NGEwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDEsNyArNDEsNyBA
QCBzdHJ1Y3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBQbHVnaW5DcmVhdGlvblBh
cmFtZXRlcnMoKTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAg
ICAvLyBUaGUgdW5pcXVlIElEIG9mIHRoaXMgcGx1Zy1pbiBpbnN0YW5jZS4KICAgICB1aW50NjRf
dCBwbHVnaW5JbnN0YW5jZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rp
Y3Rpb25hcnlQb3B1cEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQ
b3B1cEluZm8uY3BwCmluZGV4IGM2NTExODFiN2JiNmFmNmMwZmUyNmU2MmMzMTIyOGM0N2Q4ZDJl
NGQuLjZlNTgyZTRmMWJjZmUzYmU4N2Y2ZDQ2MDMxOWFkOWE3NDA5NzA0YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAKQEAgLTQ3LDE1ICs0Nywx
NSBAQCB2b2lkIERpY3Rpb25hcnlQb3B1cEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEaWN0aW9uYXJ5
UG9wdXBJbmZvJiByZXN1bHQpCitib29sIERpY3Rpb25hcnlQb3B1cEluZm86OmRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIERpY3Rpb25hcnlQb3B1cEluZm8mIHJlc3Vs
dCkKIHsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQub3JpZ2luKSkKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5vcmlnaW4pKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHJlc3VsdC50eXBlKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRW51bShyZXN1bHQudHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgYm9vbCBoYWRPcHRpb25zOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKGhhZE9wdGlvbnMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFkT3B0aW9ucykpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoaGFkT3B0aW9ucykgewogICAgICAgICBpZiAo
IUNvcmVJUEM6OmRlY29kZShkZWNvZGVyLCByZXN1bHQub3B0aW9ucykpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaAppbmRleCAzNWM3Y2YxOWE2MTYxNjMxY2Jk
YzA4MjA0NTkwNGI3NGE5YzNmYjJkLi43YWMwYjA0NDc2N2I1Mjc0ZTU0Yzg0OTU0Nzg3MTdhMWI3
YTg5YWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVw
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmgK
QEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBEaWN0aW9uYXJ5
UG9wdXBJbmZvIHsKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBj
b25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwg
RGljdGlvbmFyeVBvcHVwSW5mbyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXImLCBEaWN0aW9uYXJ5UG9wdXBJbmZvJik7CiAKICAgICBlbnVtIFR5cGUg
ewogICAgICAgICBDb250ZXh0TWVudSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9FZGl0b3JTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3Bw
CmluZGV4IGM1YzY4ZDgxZjhkNzYwZjc1NTRhNjNkNDBmMjdmYzEzY2YwOTNjMGQuLjU1MGNjODcz
ODdiZDQ2MzY0Nzk2MDVkODliZDBjMTk2NjFhZjM5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Vk
aXRvclN0YXRlLmNwcApAQCAtNTYsNTQgKzU2LDU0IEBAIHZvaWQgRWRpdG9yU3RhdGU6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYKIH0KIAot
Ym9vbCBFZGl0b3JTdGF0ZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgRWRpdG9yU3RhdGUmIHJlc3VsdCkKK2Jvb2wgRWRpdG9yU3RhdGU6OmRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEVkaXRvclN0YXRlJiByZXN1bHQpCiB7Ci0gICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LnNob3VsZElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0
aW9uQ2hhbmdlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zaG91bGRJZ25vcmVD
b21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5zZWxlY3Rpb25Jc05vbmUpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlbGVjdGlvbklzTm9uZSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5zZWxlY3Rpb25Jc1Jhbmdl
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zZWxlY3Rpb25Jc1JhbmdlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lmlz
Q29udGVudEVkaXRhYmxlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0NvbnRl
bnRFZGl0YWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHJlc3VsdC5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuaXNDb250ZW50UmljaGx5RWRpdGFibGUpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQuaXNJblBhc3N3b3JkRmll
bGQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzSW5QYXNzd29yZEZpZWxkKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0
Lmhhc0NvbXBvc2l0aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5oYXNDb21w
b3NpdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKFFUKQotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5jdXJzb3JQb3NpdGlvbikpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuY3Vyc29yUG9zaXRpb24pKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQuYW5jaG9yUG9zaXRpb24pKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFuY2hvclBvc2l0aW9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmVkaXRvclJl
Y3QpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmVkaXRvclJlY3QpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQuY29tcG9z
aXRpb25SZWN0KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb21wb3NpdGlvblJl
Y3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShy
ZXN1bHQuaW5wdXRNZXRob2RIaW50cykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
aW5wdXRNZXRob2RIaW50cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHJlc3VsdC5zZWxlY3RlZFRleHQpKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LnNlbGVjdGVkVGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5zdXJyb3VuZGluZ1RleHQpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LnN1cnJvdW5kaW5nVGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykKLSAgICBpZiAo
IWRlY29kZXItPmRlY29kZShyZXN1bHQuY3Vyc29yUmVjdCkpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuY3Vyc29yUmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oCmluZGV4IDY0MmRlYTdhMDE3NzQ0MjgwODJi
MmViZmJkNWYzNTI3YzEyYzhhNGIuLmZhNjg3YmRiMGE4Yzg0ZDY1MWMzNzA5MmJjOGI3NzRiNjRh
NjM2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oCkBAIC03OCw3ICs3OCw3IEBA
IHN0cnVjdCBFZGl0b3JTdGF0ZSB7CiAjZW5kaWYKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBFZGl0b3JTdGF0ZSYpOworICAgIHN0YXRpYyBib29sIGRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBFZGl0b3JTdGF0ZSYpOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Gb250SW5mby5jcHAKaW5kZXggMzNlZDQ3NDI4YmIzNDk0NjdkMjhlNzFlODVj
NGRhMzExZjQ4MWIyNi4uYWI2NDU5ODZjMmZkNjFkNDcxMDA1OTlkNzVhNjgzMDUzYTQyYjJkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwCkBAIC00NSwxMSArNDUsMTEgQEAgdm9pZCBG
b250SW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICNlbmRpZgogfQogCi1ib29sIEZvbnRJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBGb250SW5mbyYgZm9udEluZm8pCitib29sIEZvbnRJbmZvOjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGb250SW5mbyYgZm9udEluZm8pCiB7
ICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIGhhc0ZvbnRBdHRyaWJ1dGVEaWN0aW9u
YXJ5OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc0ZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0ZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5KSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFoYXNGb250QXR0cmlidXRlRGljdGlv
bmFyeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKaW5kZXggYWUxMWQxMjc1MjU3NzQ1NzgwMTI5
M2NjYjk4YzIyNDEwNGVlMDc4Yy4uZTEyNGYyNTcxYTBmNzk2ZTBkNjEyNGQyNDdkZTY1MmIyMjAy
YWI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAgICAgCiBzdHJ1Y3QgRm9udEluZm8gewogICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBGb250SW5mbyYpOworICAgIHN0YXRpYyBib29sIGRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBGb250SW5mbyYpOwogICAgIAogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBmb250QXR0cmlidXRl
RGljdGlvbmFyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4
IDE4NDFjZTRmOTBiMTlmMzcyMmU3ODRhNjFlMDVhZTRiMDhlOGJlZGEuLjliOGM2NjMxNTc3NzY4
ODk3ZjMwZjJhYmFkOGI5YmI4ODQ4ZDZmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9MYXllclRyZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVy
VHJlZUNvbnRleHQuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgfkxheWVyVHJlZUNv
bnRleHQoKTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNv
bnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBM
YXllclRyZWVDb250ZXh0Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIExheWVyVHJlZUNvbnRleHQmKTsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggY2YzNDFiZDQ5
Yjc2YTQ0OTU1N2I0M2U1OGMwMzZmNWY4M2I1M2JiZC4uNzRhNGMwNjAxNmQ4OThlNTU1YTExNzdm
NzM5ZWMyYTQ0NzRkZDNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtNTUsMzIgKzU1LDMyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpCiAjZW5kaWYKIH0KIAot
Ym9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHJlc3VsdCkKK2Jvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiByZXN1bHQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmRp
c2tDYWNoZURpcmVjdG9yeSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZGlza0Nh
Y2hlRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHJlc3VsdC5kaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1
bHQucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZUVudW0ocmVzdWx0LmNhY2hlTW9kZWwpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5jYWNoZU1vZGVsKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQucGFy
ZW50UHJvY2Vzc05hbWUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnBhcmVudFBy
b2Nlc3NOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHJlc3VsdC51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5uc1VSTENhY2hlTWVtb3J5
Q2FwYWNpdHkpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm5zVVJMQ2FjaGVNZW1v
cnlDYXBhY2l0eSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShyZXN1bHQubnNVUkxDYWNoZURpc2tDYXBhY2l0eSkpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQubnNVUkxDYWNoZURpc2tDYXBhY2l0eSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShyZXN1bHQudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJv
dG9jb2xzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUocmVzdWx0Lmh0dHBQcm94eSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQuaHR0cFByb3h5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHJlc3VsdC5odHRwc1Byb3h5KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5odHRwc1Byb3h5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDk2MDIyNGJlYzA5ZmM1OWNlMTc3ZDk2ZDU4ZmYw
Yzc3N2ZhNjI0MDMuLjI1YzAzNWYzN2M2Y2JhZTIzYWUzZTFhMDc1MjcyYzJkOTRlYzBjODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDQsNyArNDQsNyBAQCBzdHJ1Y3Qg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzKCk7CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiwgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmKTsKIAogICAgIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKICAg
ICBDYWNoZU1vZGVsIGNhY2hlTW9kZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKaW5k
ZXggZDZmNDJlOTA0OGJhYTZhNzgwYzdiNWZlNGY3ODllNjhkZmEyNTkyMy4uODA3MzhjYjU2ZmU0
Mjc3ZDNlMjA2ZjEwMWZlNTIwMDg1ZmQ5NWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcApAQCAtMTA1LDQ3ICsxMDUsNDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY28KICAgICBl
bmNvZGVyLmVuY29kZShtX2luUHJpdmF0ZUJyb3dzaW5nTW9kZSk7CiB9CiAKLWJvb2wgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiByZXN1bHQpCitib29sIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYgcmVzdWx0KQogewot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2lkZW50aWZpZXIpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3dlYlBhZ2VJRCkpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV93ZWJQYWdlSUQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV93ZWJGcmFtZUlEKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3dlYkZyYW1lSUQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9yZXF1ZXN0
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3JlcXVlc3QpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBib29sIGhhc0hUVFBCb2R5OwotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKGhhc0hUVFBCb2R5KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0hUVFBCb2R5
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGhhc0hUVFBCb2R5KSB7CiAgICAg
ICAgIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZm9ybURhdGE7Ci0gICAgICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKGZvcm1EYXRhKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmb3JtRGF0
YSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIERlY29kZXJBZGFwdGVyIGh0
dHBCb2R5RGVjb2RlckFkYXB0ZXIoZm9ybURhdGEuZGF0YSgpLCBmb3JtRGF0YS5zaXplKCkpOwog
ICAgICAgICByZXN1bHQubV9yZXF1ZXN0LnNldEhUVFBCb2R5KEZvcm1EYXRhOjpkZWNvZGUoaHR0
cEJvZHlEZWNvZGVyQWRhcHRlcikpOwogCi0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJl
c3VsdC5tX3JlcXVlc3RCb2R5U2FuZGJveEV4dGVuc2lvbnMpKQorICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5tX3JlcXVlc3RCb2R5U2FuZGJveEV4dGVuc2lvbnMpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGlmIChyZXN1bHQubV9yZXF1ZXN0LnVy
bCgpLmlzTG9jYWxGaWxlKCkpIHsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0
Lm1fcmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQubV9yZXNvdXJjZVNhbmRib3hFeHRlbnNpb24pKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1bHQubV9w
cmlvcml0eSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0Lm1fcHJpb3JpdHkp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHJl
c3VsdC5tX2NvbnRlbnRTbmlmZmluZ1BvbGljeSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0ocmVzdWx0Lm1fY29udGVudFNuaWZmaW5nUG9saWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1bHQubV9hbGxvd1N0b3JlZENyZWRl
bnRpYWxzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQubV9hbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHJlc3VsdC5tX2luUHJpdmF0ZUJyb3dzaW5nTW9kZSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubV9pblByaXZhdGVCcm93c2luZ01vZGUpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4
IGZjMmRiMTlkZWYyMTNlNjA1YzliM2I5ODg3MmU0OGRjZDdjYmRmMDEuLjU2NDQyZDY3MmM5MjYx
ZTdjMmM1YzcxNWEzMjM4NzAyOTJhYjY3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApA
QCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3Qgd2ViUGFnZUlELCB1aW50NjRfdCB3
ZWJGcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRQcmlvcml0eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93c2luZ01vZGUpOwogCiAgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciYsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7CiAKICAgICBSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KICAgICB1aW50NjRfdCB3ZWJQYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJRDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkFuZERhdGFiYXNlcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmNwcAppbmRleCA1
ZDg2YzJiNjUxNzEyNWE3ZTE1OGQzNWRmYzQwZjExZWZlMWVhZjI4Li40NzQ1YjljYTA4ZGNiYmI1
NDc1ZDhkM2U5ZGEzMzNiNzZiNDAzOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3Jp
Z2luQW5kRGF0YWJhc2VzLmNwcApAQCAtNDIsMTUgKzQyLDE1IEBAIHZvaWQgT3JpZ2luQW5kRGF0
YWJhc2VzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgZGF0YWJhc2VzOwogfQogCi1ib29sIE9yaWdpbkFuZERhdGFiYXNlczo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgT3JpZ2luQW5kRGF0YWJh
c2VzJiBvcmlnaW5BbmREYXRhYmFzZXMpCitib29sIE9yaWdpbkFuZERhdGFiYXNlczo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgT3JpZ2luQW5kRGF0YWJhc2VzJiBv
cmlnaW5BbmREYXRhYmFzZXMpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUob3JpZ2luQW5k
RGF0YWJhc2VzLm9yaWdpbklkZW50aWZpZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3Jp
Z2luQW5kRGF0YWJhc2VzLm9yaWdpbklkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUob3JpZ2luQW5kRGF0YWJhc2VzLm9yaWdpblF1b3Rh
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9yaWdpbkFuZERhdGFiYXNlcy5vcmlnaW5RdW90
YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShvcmln
aW5BbmREYXRhYmFzZXMub3JpZ2luVXNhZ2UpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3Jp
Z2luQW5kRGF0YWJhc2VzLm9yaWdpblVzYWdlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKG9yaWdpbkFuZERhdGFiYXNlcy5kYXRhYmFzZXMpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUob3JpZ2luQW5kRGF0YWJhc2VzLmRhdGFiYXNlcykpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL09yaWdpbkFuZERhdGFiYXNlcy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL09yaWdpbkFuZERhdGFiYXNlcy5oCmluZGV4IGVjMDY0ZjkxYzhmNmVkNzVhNTNiMWJkN2Zi
MDY3ODdlNmQxMThlMWIuLmI3YjM4OWFjNjkyYzA3MDE4N2E4NzkxMDA2N2JlOTFjMzA5MmM0Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5BbmREYXRhYmFzZXMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmgKQEAgLTQxLDcg
KzQxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBPcmlnaW5BbmREYXRhYmFzZXMg
ewogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAg
IHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPcmlnaW5BbmRE
YXRhYmFzZXMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyJiwgT3JpZ2luQW5kRGF0YWJhc2VzJik7CiAKICAgICBTdHJpbmcgb3JpZ2luSWRlbnRpZmll
cjsKICAgICB1aW50NjRfdCBvcmlnaW5RdW90YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAKaW5kZXggODBmZDJmOTlmNDRiZmIxY2EzOTBhYzU5
Yjg5MTI4ZmIzMTYwYmM3Yi4uNjc0ODhlYWFjMTZhNTY3YjA0OWI4ODFmMTczOWRlYTU4NjRlNDg2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5j
cHAKQEAgLTQ5LDE1ICs0OSwxNSBAQCB2b2lkIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRpZgogfQogCi1i
b29sIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiBkYXRhKQorYm9vbCBQbGF0Zm9ybVBv
cHVwTWVudURhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBs
YXRmb3JtUG9wdXBNZW51RGF0YSYgZGF0YSkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoZGF0YS5mb250SW5mbykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShkYXRhLmZvbnRJbmZvKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKGRhdGEuc2hvdWxkUG9wT3ZlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShk
YXRhLnNob3VsZFBvcE92ZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZWxpZiBQTEFURk9S
TShRVCkKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShkYXRhLm11bHRpcGxlU2VsZWN0aW9ucykp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLm11bHRpcGxlU2VsZWN0aW9ucykpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGRlY29kZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oCmluZGV4IGE2Yzg4
NWVjYmFkYjNhYmFmZjMzYzA5NDZjYmYxZTNiNTZkODdhOTMuLjcwYjNmODczZDNiZmMxM2QzYWUz
NzRjMGEyYmZhYThiMTY4ZDhlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bGF0Zm9ybVBvcHVwTWVudURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZv
cm1Qb3B1cE1lbnVEYXRhLmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IFBsYXRmb3JtUG9wdXBN
ZW51RGF0YSB7CiAgICAgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhKCk7CiAKICAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJik7Cisg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFBsYXRmb3Jt
UG9wdXBNZW51RGF0YSYpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIEZvbnRJbmZvIGZvbnRJ
bmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlm
aWVyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJE
YXRhLmNwcAppbmRleCBhMjk3YmM0MzhjOTVmOTAzMGM0M2Q3OGMwODk3Yjc5MmMwNTZiZTAzLi4y
ODIyYTYwZjY3YWVhYmNmNTlkZWUzMDJjOTQ0NGMyNjhlMDhhMmJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcApAQCAtNzYsMTUg
Kzc2LDE1IEBAIHZvaWQgTlBJZGVudGlmaWVyRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAgZW5jb2RlciA8PCBtX251bWJlcjsKIH0K
IAotYm9vbCBOUElkZW50aWZpZXJEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBOUElkZW50aWZpZXJEYXRhJiByZXN1bHQpCitib29sIE5QSWRlbnRpZmllckRh
dGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE5QSWRlbnRpZmll
ckRhdGEmIHJlc3VsdCkKIHsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9pc1N0
cmluZykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9pc1N0cmluZykpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAgaWYgKHJlc3VsdC5tX2lzU3RyaW5nKQot
ICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3N0cmluZyk7CisgICAgICAg
IHJldHVybiBkZWNvZGVyLmRlY29kZShyZXN1bHQubV9zdHJpbmcpOwogCi0gICAgcmV0dXJuIGRl
Y29kZXItPmRlY29kZShyZXN1bHQubV9udW1iZXIpOworICAgIHJldHVybiBkZWNvZGVyLmRlY29k
ZShyZXN1bHQubV9udW1iZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuaAppbmRleCA1NmQ1
N2ZjOTY1MTEwY2U1MDA0Y2QwNzFkYjVlZGNjY2UxNjliNTNhLi5mYzBlNjdkZjU2OThmNjE2N2Ew
OTgyYWQ4ODIxNjFkMmE5MzkyZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBJZGVudGlmaWVyRGF0YS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBO
UElkZW50aWZpZXIgY3JlYXRlTlBJZGVudGlmaWVyKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgTlBJZGVudGlmaWVyRGF0YSYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBOUElkZW50aWZpZXJE
YXRhJik7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcAppbmRleCBkYjk2ZGM3MWYzNDIw
NzRiNTJmNmJkMWViYjkyMjkxZjI1ZmNmM2NmLi40Y2VmMWNiYjFmZWY3NjQwYmQ3MWVmZjBkZGIy
NmExMWQ1NjM1NGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9O
UFZhcmlhbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZh
cmlhbnREYXRhLmNwcApAQCAtMTQ3LDEwICsxNDcsMTAgQEAgdm9pZCBOUFZhcmlhbnREYXRhOjpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIH0KIH0K
IAotYm9vbCBOUFZhcmlhbnREYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBOUFZhcmlhbnREYXRhJiByZXN1bHQpCitib29sIE5QVmFyaWFudERhdGE6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE5QVmFyaWFudERhdGEmIHJlc3Vs
dCkKIHsKICAgICB1aW50MzJfdCB0eXBlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHR5cGUp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIC8vIFdlIHNwZWNpYWwtY2FzZSBMb2NhbE5QT2JqZWN0SUQgYW5kIFJlbW90ZU5QT2Jq
ZWN0SUQgaGVyZSBzbyBhIExvY2FsTlBPYmplY3RJRCBpcwpAQCAtMTY5LDE3ICsxNjksMTcgQEAg
Ym9vbCBOUFZhcmlhbnREYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBOUFZhcmlhbnREYXRhJiByZXMKICAgICBjYXNlIE5QVmFyaWFudERhdGE6Ok51bGw6CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6Qm9vbDoKLSAgICAg
ICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShyZXN1bHQubV9ib29sVmFsdWUpOworICAgICAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fYm9vbFZhbHVlKTsKICAgICBjYXNlIE5QVmFy
aWFudERhdGE6OkludDMyOgotICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5t
X2ludDMyVmFsdWUpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faW50
MzJWYWx1ZSk7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpEb3VibGU6Ci0gICAgICAgIHJldHVy
biBkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fZG91YmxlVmFsdWUpOworICAgICAgICByZXR1cm4g
ZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fZG91YmxlVmFsdWUpOwogICAgIGNhc2UgTlBWYXJpYW50
RGF0YTo6U3RyaW5nOgotICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3N0
cmluZ1ZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3N0cmlu
Z1ZhbHVlKTsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6OkxvY2FsTlBPYmplY3RJRDoKLSAgICAg
ICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShyZXN1bHQubV9sb2NhbE5QT2JqZWN0SURWYWx1ZSk7
CisgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShyZXN1bHQubV9sb2NhbE5QT2JqZWN0SURW
YWx1ZSk7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpSZW1vdGVOUE9iamVjdElEOgotICAgICAg
ICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3JlbW90ZU5QT2JqZWN0SURWYWx1ZSk7
CisgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShyZXN1bHQubV9yZW1vdGVOUE9iamVjdElE
VmFsdWUpOwogICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaAppbmRleCBhMjMyMDQ2MTZmYzg2MDE0M2RjNzJm
ZGYyMjc0NjMxM2FlZWRhZDdiLi41MTA5OTU4ZTdhZjgwN2IzZmYwYjFjZWYxZTc2NmJhYjA4ZjFk
OTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnRE
YXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5o
CkBAIC0xMDEsNyArMTAxLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBOUFZhcmlhbnREYXRhJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIE5QVmFyaWFudERhdGEmKTsKIAog
cHJpdmF0ZToKICAgICB1aW50MzJfdCBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCmluZGV4IGUxMWZjOGQyYjdmYjljM2YyZWEyYWE0MzMwZDE3NDU2ODY5MzRhMGQuLjBk
MDU5YTI2MWY5MmVlMjhhY2JiOTE1ODMxZjYwYTkzMWJkNmU2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCkBAIC00OCwxOCArNDgsMTggQEAgdm9pZCBQbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKQogI2VuZGlmCiB9CiAKLWJvb2wgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQorYm9vbCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGVFbnVtKHJlc3VsdC5wcm9jZXNzVHlwZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0ocmVzdWx0LnByb2Nlc3NUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5zdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxp
emF0aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zdXBwb3J0c0FzeW5jaHJv
bm91c1BsdWdpbkluaXRpYWxpemF0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5taW5pbXVtTGlmZXRpbWUpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0Lm1pbmltdW1MaWZldGltZSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQudGVybWluYXRpb25UaW1lb3V0KSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50ZXJtaW5hdGlvblRpbWVvdXQpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHJlc3VsdC5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4
IDM2MTgxZTI0NmNkYzAzNDY2NThmMDkyMWI0NmMxYjY1ZGM1M2NmY2IuLmU4MjdhZTRlMTE0NzA1
ZTFkMjEzODEwM2FhMGMzNGYxNzE0MWQ1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKIAogICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29s
IGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciYsIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAogICAgIFBsdWdpblBy
b2Nlc3M6OlR5cGUgcHJvY2Vzc1R5cGU7CiAgICAgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c1Bs
dWdpbkluaXRpYWxpemF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1By
aW50SW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNwcAppbmRleCBm
YWYwMDhjNzllYzY2ZmQ0MWEyZjU0MDA5M2Y3YjUxMjkxZTFjNzQ0Li43MzRiMDY1ZmU2NjZiYmU0
NzkyZTg4MTU2YzYwMGJkOTM5MTlhZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvUHJpbnRJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNw
cApAQCAtNTUsMTMgKzU1LDEzIEBAIHZvaWQgUHJpbnRJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgUHJpbnRJbmZv
OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBQcmludEluZm8mIGlu
Zm8pCitib29sIFByaW50SW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgUHJpbnRJbmZvJiBpbmZvKQogewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGluZm8u
cGFnZVNldHVwU2NhbGVGYWN0b3IpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5wYWdl
U2V0dXBTY2FsZUZhY3RvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29k
ZXItPmRlY29kZShpbmZvLmF2YWlsYWJsZVBhcGVyV2lkdGgpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaW5mby5hdmFpbGFibGVQYXBlcldpZHRoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGluZm8uYXZhaWxhYmxlUGFwZXJIZWlnaHQpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5hdmFpbGFibGVQYXBlckhlaWdodCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9QcmludEluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludElu
Zm8uaAppbmRleCA5N2ZhY2ViZDBjYzU4MTk5ZmJjNTEyYzkzOTdiMzI4MGUyZjUzYmQzLi5lODAx
YjhkZGExMWU5NGFkZTkzNDdkMzU0M2VhNjY3YjdmYmRmOWVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1By
aW50SW5mby5oCkBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBQcmludEluZm8gewogI2VuZGlmCiAK
ICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUHJpbnRJbmZvJik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFByaW50
SW5mbyYpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRi
b3hFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgK
aW5kZXggMDI3ODc2ZDUxOWZmZDBlYjBkM2JkNDdlODMyNTk3OWFkMmY4NTM4Yy4uOGM5Mzk4ZTdj
MmJjYThiMzA1ODdlY2U4OGU5MzRjYTE1ZGQwOGRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2FuZGJveEV4dGVuc2lvbi5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICAgICAgfkhh
bmRsZSgpOwogCiAgICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OwotICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgSGFuZGxlJik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXImLCBIYW5kbGUmKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBj
bGFzcyBTYW5kYm94RXh0ZW5zaW9uOwpAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbnN0IEhhbmRsZSYgb3BlcmF0b3JbXShzaXplX3QgaSkgY29uc3Q7CiAgICAgICAgIHNpemVf
dCBzaXplKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwotICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgSGFuZGxlQXJyYXkmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhhbmRsZUFycmF5Jik7CiAgICAgICAgCiAgICAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoV0VCX1BST0NFU1NfU0FOREJPWCkKQEAgLTExNCw3ICsxMTQsNyBA
QCBwcml2YXRlOgogaW5saW5lIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6SGFuZGxlKCkgeyB9
CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjp+SGFuZGxlKCkgeyB9CiBpbmxpbmUg
dm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImKSBjb25zdCB7IH0KLWlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEhhbmRsZSYpIHsgcmV0dXJuIHRydWU7
IH0KK2lubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIEhhbmRsZSYpIHsgcmV0dXJuIHRydWU7IH0KIGlubGluZSBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6SGFuZGxlQXJyYXkoKSB7IH0KIGlubGluZSBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6fkhhbmRsZUFycmF5KCkgeyB9CiBpbmxpbmUgdm9p
ZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6YWxsb2NhdGUoc2l6ZV90KSB7IH0KQEAg
LTEyMiw3ICsxMjIsNyBAQCBpbmxpbmUgc2l6ZV90IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFy
cmF5OjpzaXplKCkgY29uc3QgeyByZXR1cm4gMDsgfQogaW5saW5lIGNvbnN0IFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6Om9wZXJhdG9yW10o
c2l6ZV90KSBjb25zdCB7IHJldHVybiBtX2VtcHR5SGFuZGxlOyB9CiBpbmxpbmUgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlJiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6b3BlcmF0b3Jb
XShzaXplX3QpIHsgcmV0dXJuIG1fZW1wdHlIYW5kbGU7IH0KIGlubGluZSB2b2lkIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikg
Y29uc3QgeyB9Ci1pbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEhhbmRsZUFycmF5JikgeyByZXR1cm4gdHJ1
ZTsgfQoraW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBIYW5kbGVBcnJheSYpIHsgcmV0dXJuIHRydWU7IH0K
IGlubGluZSBQYXNzUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZShjb25zdCBIYW5kbGUmKSB7IHJldHVybiAwOyB9CiBpbmxpbmUgdm9pZCBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGUoY29uc3QgU3RyaW5nJiwgVHlwZSwgSGFuZGxlJikgeyB9CiBp
bmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJl
Y3RvcnkoY29uc3QgU3RyaW5nJiwgSGFuZGxlJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCmluZGV4IDQ5NjgwMzZmNzdkNjJjNzY0YjU2NzFiMjI0
ZTdmMDcyODYxZWNlNmIuLmNlY2NiZTBkOTU0MGQ3YTUzNWQ5YTg1OWFlZDJiZTRlNGY3MzNhMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCkBAIC00
MiwxMyArNDIsMTMgQEAgdm9pZCBTZWN1cml0eU9yaWdpbkRhdGE6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBwb3J0OwogfQog
Ci1ib29sIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEpCitib29s
IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEpCiB7Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoc2VjdXJpdHlPcmlnaW5EYXRhLnByb3RvY29sKSkKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShzZWN1cml0eU9yaWdpbkRhdGEu
aG9zdCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZWN1cml0eU9yaWdpbkRhdGEuaG9zdCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShzZWN1cml0
eU9yaWdpbkRhdGEucG9ydCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZWN1cml0eU9yaWdp
bkRhdGEucG9ydCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5oCmluZGV4IDkzOTA5YmM2
ZWNiMjgzYjllNmIxNTc0Y2ZiOTRkYjJlYWJiOWNiOGQuLjcyNDdhYzU1NzY0ZDNjNTU4ODA5NWJl
ZGM1NmQwMzkxMWMxMDJjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1
cml0eU9yaWdpbkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmln
aW5EYXRhLmgKQEAgLTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJh
eVJlZj4gQXJyYXlDYWxsYmFjazsKIAogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YSB7CiAgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFNlY3VyaXR5T3JpZ2luRGF0
YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBT
ZWN1cml0eU9yaWdpbkRhdGEmKTsKIAogICAgIC8vIEZJWE1FIDxyZGFyOi8vOTAxODM4Nj46IFdl
IHNob3VsZCBiZSBzZW5kaW5nIG1vcmUgc3RhdGUgYWNyb3NzIHRoZSB3aXJlIHRoYW4ganVzdCB0
aGUgcHJvdG9jb2wsCiAgICAgLy8gaG9zdCwgYW5kIHBvcnQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
ZXNzaW9uU3RhdGUuY3BwCmluZGV4IGMwOGU5YWE5NWFjYmUwZTNiNjgyNTA0ZDYxMTI2NzA1NzFk
MTVjYTMuLjJlMWJkYmJmMWQ5NTY3NGVlZDY1YjRlNDBjNjA4ZmQ4OGY2YmFkZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCkBAIC0zNSw5ICszNSw5IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPFJlZlB0cjxUPiA+IHsKICAgICAgICAg
aXRlbS0+ZW5jb2RlKGVuY29kZXIpOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJlZlB0cjxUPiYgaXRlbSkKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8VD4mIGl0ZW0pCiAgICAg
ewotICAgICAgICBpdGVtID0gVDo6ZGVjb2RlKCpkZWNvZGVyKTsKKyAgICAgICAgaXRlbSA9IFQ6
OmRlY29kZShkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgfQogfTsKQEAgLTcw
LDExICs3MCwxMSBAQCB2b2lkIFNlc3Npb25TdGF0ZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fY3VycmVudEluZGV4Owog
fQogCi1ib29sIFNlc3Npb25TdGF0ZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlciwgU2Vzc2lvblN0YXRlJiBzdGF0ZSkKK2Jvb2wgU2Vzc2lvblN0YXRlOjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTZXNzaW9uU3RhdGUmIHN0YXRlKQog
ewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN0YXRlLm1fbGlzdCkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzdGF0ZS5tX2xpc3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoc3RhdGUubV9jdXJyZW50SW5kZXgpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoc3RhdGUubV9jdXJyZW50SW5kZXgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vz
c2lvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKaW5kZXgg
MTk0MjJhMWYwZTY4MjU1MTVhM2FhMGYwNjNhN2EwNTMxYTJmZGQyMi4uYzI3YjdiNzJkZGRiN2Ez
ZjQxYjBjOGFjMzNhZTNhODczNTJmYTA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Nlc3Npb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3Rh
dGUuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7
CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU2Vzc2lvblN0
YXRlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYs
IFNlc3Npb25TdGF0ZSYpOwogCiBwcml2YXRlOgogICAgIEJhY2tGb3J3YXJkTGlzdEl0ZW1WZWN0
b3IgbV9saXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJp
dG1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcAppbmRl
eCA4YzBkZWFmYTM1NjQ4ZGM1MGRhNWYxZDM5ZjQyNTZlNWZkMWQzMGY3Li4wZjA2Yzg2NzY4M2I5
MjRmNmZiYTYwNDA4ODI1YWExM2M3ZTQxOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hh
cmVhYmxlQml0bWFwLmNwcApAQCAtNDYsMTMgKzQ2LDEzIEBAIHZvaWQgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgZW5jb2RlciA8PCBtX2ZsYWdzOwogfQogCi1ib29sIFNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBIYW5kbGUmIGhh
bmRsZSkKK2Jvb2wgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGU6OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIEhhbmRsZSYgaGFuZGxlKQogewotICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKGhhbmRsZS5tX2hhbmRsZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYW5k
bGUubV9oYW5kbGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoaGFuZGxlLm1fc2l6ZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYW5kbGUubV9z
aXplKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhh
bmRsZS5tX2ZsYWdzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZS5tX2ZsYWdzKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCmluZGV4IGEwMGYxYTc4MWQ3N2MzYTg5YWY4NzNjYWFm
NTFlNjAyOGM3MDAwMjEuLjBhMDFiOGUwMmNlMjhlZTZiMzk1ODA3NWEyNjYwMWNiZDM1NDg1NzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKQEAgLTczLDcgKzczLDcg
QEAgcHVibGljOgogICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxl
LmlzTnVsbCgpOyB9CiAKICAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBIYW5kbGUmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIEhhbmRsZSYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJp
ZW5kIGNsYXNzIFNoYXJlYWJsZUJpdG1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVh
YmxlUmVzb3VyY2UuY3BwCmluZGV4IGJkOTg2MjlhMjI4MWNhYTIzMWNjZDY1MjgzMjI0YjZmNzJl
ZmQyMDcuLmY3ZWZlODg1NzcyYzM2ODFlYzEzOGY4Y2FiOWJkNTU5NDIyMDI3OWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcApAQCAtNDEsMTMgKzQxLDEz
IEBAIHZvaWQgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fc2l6ZTsKIH0KIAot
Ym9vbCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkKK2Jvb2wgU2hhcmVhYmxlUmVzb3VyY2U6
OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSGFuZGxl
JiBoYW5kbGUpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaGFuZGxlLm1faGFuZGxlKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZS5tX2hhbmRsZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShoYW5kbGUubV9vZmZzZXQpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaGFuZGxlLm1fb2Zmc2V0KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhbmRsZS5tX3NpemUpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaGFuZGxlLm1fc2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFy
ZWFibGVSZXNvdXJjZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNl
LmgKaW5kZXggNzZmMGU0YzdkOGQ2YjhkZjExOTQ3YThlYzc0ZTc5MTRlNDRkMTc1My4uYjdjMzVi
ZjMwZTZjYjdhZDlkYWQ5MGM5N2ZlZGIyYzk5NjhhMWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NoYXJlYWJsZVJlc291cmNlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgICAg
ICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAKICAgICAgICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHN0YXRp
YyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBIYW5kbGUmKTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhhbmRsZSYp
OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFNoYXJlYWJsZVJlc291cmNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlZFdvcmtlclByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlZFdvcmtl
clByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDg3ZjQ5NmQ4YTI0M2M2OTIzMzFj
Y2QxNmNkODhkMzNlYWFlNmE4ZmMuLmRmNDI0NGQ1YjA2YzQwNTcxZTRmMmFlYWFmN2U1NzA2Nzg2
NmEwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hh
cmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTQ2LDE0ICs0NiwxNCBA
QCB2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuYwogI2VuZGlmCiB9CiAKLWJvb2wgU2hhcmVkV29ya2Vy
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0
KQorYm9vbCBTaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiByZXN1bHQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0
Lm1pbmltdW1MaWZldGltZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWluaW11
bUxpZmV0aW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHJlc3VsdC50ZXJtaW5hdGlvblRpbWVvdXQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LnRlcm1pbmF0aW9uVGltZW91dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBQ
TEFURk9STShNQUMpCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LnBhcmVudFByb2Nl
c3NOYW1lKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wYXJlbnRQcm9jZXNzTmFt
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAppbmRleCBjY2QyNTdlYjllM2IzMzFiOTU3OWZlM2Y4MDI3NjFiMDk0NGM1OGQ1Li44Yjg0
MWY0OWRmNzM1NzJhNjk3N2JlYzg1ZDFjYzU1MTdlMDE5ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IFNoYXJlZFdvcmtlclByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMoKTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTaGFy
ZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmKTsKIAogICAgIGRvdWJsZSBtaW5pbXVtTGlmZXRpbWU7CiAgICAgZG91Ymxl
IHRlcm1pbmF0aW9uVGltZW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
dGF0aXN0aWNzRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEu
Y3BwCmluZGV4IDE3ZGNkZDllYzA3MGJjNDQzOTJkZmZlNGUxNDFlNWU0NmMzYjBjZGMuLjI0YTg1
ZDNlYjhlMTA4NGFmZDdlMDQzYjI2YmY4NTE5ZmFjZWI5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1N0YXRpc3RpY3NEYXRhLmNwcApAQCAtMzgsMTUgKzM4LDE1IEBAIHZvaWQgU3RhdGlzdGlj
c0RhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCB3ZWJDb3JlQ2FjaGVTdGF0aXN0aWNzOwogfQogCi1ib29sIFN0YXRpc3Rp
Y3NEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdGF0aXN0
aWNzRGF0YSYgc3RhdGlzdGljc0RhdGEpCitib29sIFN0YXRpc3RpY3NEYXRhOjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTdGF0aXN0aWNzRGF0YSYgc3RhdGlzdGlj
c0RhdGEpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc3RhdGlzdGljc0RhdGEuc3RhdGlz
dGljc051bWJlcnMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljc0RhdGEuc3Rh
dGlzdGljc051bWJlcnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUoc3RhdGlzdGljc0RhdGEuamF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5cGVDb3Vu
dHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljc0RhdGEuamF2YVNjcmlwdFBy
b3RlY3RlZE9iamVjdFR5cGVDb3VudHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoc3RhdGlzdGljc0RhdGEuamF2YVNjcmlwdE9iamVjdFR5cGVDb3Vu
dHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljc0RhdGEuamF2YVNjcmlwdE9i
amVjdFR5cGVDb3VudHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUoc3RhdGlzdGljc0RhdGEud2ViQ29yZUNhY2hlU3RhdGlzdGljcykpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzRGF0YS53ZWJDb3JlQ2FjaGVTdGF0aXN0aWNzKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TdGF0aXN0aWNzRGF0YS5oCmluZGV4IDczMTVlZDI1MDhmMTU3ZjU2YTg2ZTVjNjNhMjIy
ZmExMTRlZGVmNTIuLjkzZmIzOWQxNzZhMmM5ZWI2MDNiNGQzYzEzN2ZkMzE2YzAwNjc0ZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oCkBAIC0zNyw3ICszNyw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgU3RhdGlzdGljc0RhdGEgewogICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTdGF0aXN0aWNzRGF0YSYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBTdGF0aXN0aWNzRGF0
YSYpOwogICAgIAogICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gc3RhdGlzdGljc051bWJl
cnM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBqYXZhU2NyaXB0UHJvdGVjdGVkT2Jq
ZWN0VHlwZUNvdW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdHJpbmdQ
YWlyVmVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RyaW5nUGFpclZlY3Rvci5oCmlu
ZGV4IDhjZmQxOWQwMTk1OGZlZGM0N2IyOGFhN2YyNWFmZmU4NTM2YjdkMTkuLmZmZWJiNjZiN2Vj
M2EyMDVjYzNhNzE0OGZiMWE5MTQ3MGNkMjVjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0
cmluZ1BhaXJWZWN0b3IuaApAQCAtNTAsOSArNTAsOSBAQCBwdWJsaWM6CiAgICAgICAgIGVuY29k
ZXIgPDwgbV9zdHJpbmdQYWlyVmVjdG9yOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFN0cmluZ1BhaXJWZWN0b3ImIHN0
cmluZ1BhaXJWZWN0b3IpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgU3RyaW5nUGFpclZlY3RvciYgc3RyaW5nUGFpclZlY3RvcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoc3RyaW5nUGFpclZlY3Rvci5tX3N0
cmluZ1BhaXJWZWN0b3IpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoc3RyaW5nUGFp
clZlY3Rvci5tX3N0cmluZ1BhaXJWZWN0b3IpOwogICAgIH0KIAogICAgIGNvbnN0IFZlY3Rvcjxz
dGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+ID4mIHN0cmluZ1BhaXJWZWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX3N0cmluZ1BhaXJWZWN0b3I7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9VcGRhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRhdGVJbmZvLmNw
cAppbmRleCBjZjZiOTA2MjA3MGNmZDE4NjgwZDI1Nzg4ZDdiM2IzZDY0MmVhNzlhLi5kYWYxNGUy
N2Q3N2Y1YTVlMGEwNTk3MTU5MmU0OWI5NTIyZmE0ZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvVXBkYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Vw
ZGF0ZUluZm8uY3BwCkBAIC00MywyNSArNDMsMjUgQEAgdm9pZCBVcGRhdGVJbmZvOjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwg
Yml0bWFwT2Zmc2V0OwogfQogCi1ib29sIFVwZGF0ZUluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIFVwZGF0ZUluZm8mIHJlc3VsdCkKK2Jvb2wgVXBkYXRlSW5m
bzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVXBkYXRlSW5mbyYg
cmVzdWx0KQogewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC52aWV3U2l6ZSkpCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudmlld1NpemUpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmRldmljZVNjYWxlRmFjdG9y
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kZXZpY2VTY2FsZUZhY3RvcikpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQuc2Ny
b2xsUmVjdCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Nyb2xsUmVjdCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQuc2Ny
b2xsT2Zmc2V0KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zY3JvbGxPZmZzZXQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0
LnVwZGF0ZVJlY3RCb3VuZHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVwZGF0
ZVJlY3RCb3VuZHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUocmVzdWx0LnVwZGF0ZVJlY3RzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC51cGRhdGVSZWN0cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShyZXN1bHQudXBkYXRlU2NhbGVGYWN0b3IpKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LnVwZGF0ZVNjYWxlRmFjdG9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5iaXRtYXBIYW5kbGUpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmJpdG1hcEhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQuYml0bWFwT2Zmc2V0KSkKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5iaXRtYXBPZmZzZXQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9VcGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBkYXRlSW5mby5oCmluZGV4
IGMxMWFhMzU0Mjg2MWRiNjBhYmNmMzkyOWFlN2I1ZWU5YzAxOTEzNjcuLmIzYjkyODVhNzI4NjYz
YjY3NTNjNzRmMTE1ZTJhNWJmZTU1N2E2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9VcGRhdGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8u
aApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgVXBkYXRlSW5mbygpIHsgfQogCiAgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFVwZGF0ZUluZm8mKTsKKyAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgVXBkYXRlSW5m
byYpOwogCiAgICAgLy8gVGhlIHNpemUgb2YgdGhlIHdlYiB2aWV3LgogICAgIFdlYkNvcmU6Oklu
dFNpemUgdmlld1NpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1l
c3NhZ2VDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5o
CmluZGV4IDA4NWMzYjJlNWNiYjc3NjI2MWY5OGVkOTdjYjZhMzEwODNjMmFmOTguLmViNmJlYzk2
OTAwMDcyMjU3ZDQ0ODhmOTc4YzRiNGRhM2JhNzk0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Vc2VyTWVzc2FnZUNvZGVycy5oCkBAIC0yNjAsMTAgKzI2MCwxMCBAQCBwcm90ZWN0ZWQ6CiB0
ZW1wbGF0ZTx0eXBlbmFtZSBPd25lcj4KIGNsYXNzIFVzZXJNZXNzYWdlRGVjb2RlciB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGJvb2wgYmFzZURlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIE93bmVyJiBjb2RlciwgQVBJT2JqZWN0OjpUeXBlJiB0eXBlKQorICAgIHN0YXRp
YyBib29sIGJhc2VEZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBPd25l
ciYgY29kZXIsIEFQSU9iamVjdDo6VHlwZSYgdHlwZSkKICAgICB7CiAgICAgICAgIHVpbnQzMl90
IHR5cGVBc1VJbnQzMjsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodHlwZUFzVUludDMy
KSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0eXBlQXNVSW50MzIpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHR5cGUgPSBzdGF0aWNfY2FzdDxBUElPYmplY3Q6
OlR5cGU+KHR5cGVBc1VJbnQzMik7CkBAIC0yNzEsMTQgKzI3MSwxNCBAQCBwdWJsaWM6CiAgICAg
ICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUFycmF5OiB7
CiAgICAgICAgICAgICB1aW50NjRfdCBzaXplOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoc2l6ZSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgVmVjdG9yPFJlZlB0cjxB
UElPYmplY3Q+ID4gdmVjdG9yOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
aXplOyArK2kpIHsKICAgICAgICAgICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBlbGVtZW50Owog
ICAgICAgICAgICAgICAgIE93bmVyIG1lc3NhZ2VDb2Rlcihjb2RlciwgZWxlbWVudCk7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUobWVzc2FnZUNvZGVyKSkKKyAgICAgICAg
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VDb2RlcikpCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICB2ZWN0b3IuYXBwZW5kKGVsZW1l
bnQucmVsZWFzZSgpKTsKICAgICAgICAgICAgIH0KQEAgLTI4OCwxOCArMjg4LDE4IEBAIHB1Ymxp
YzoKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZURpY3Rpb25hcnk6IHsK
ICAgICAgICAgICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShzaXplKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBJbW11dGFibGVEaWN0aW9u
YXJ5OjpNYXBUeXBlIG1hcDsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6
ZTsgKytpKSB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIGtleTsKLSAgICAgICAgICAgICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShrZXkpKQorICAgICAgICAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoa2V5KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAg
ICAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gZWxlbWVudDsKICAgICAgICAgICAgICAgICBPd25l
ciBtZXNzYWdlQ29kZXIoY29kZXIsIGVsZW1lbnQpOwotICAgICAgICAgICAgICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKG1lc3NhZ2VDb2RlcikpCisgICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtZXNzYWdlQ29kZXIpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgICAgICAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlOjpBZGRSZXN1
bHQgcmVzdWx0ID0gbWFwLnNldChrZXksIGVsZW1lbnQucmVsZWFzZSgpKTsKQEAgLTMxMiwxNCAr
MzEyLDE0IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlw
ZVN0cmluZzogewogICAgICAgICAgICAgU3RyaW5nIHN0cmluZzsKLSAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHN0cmluZykpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0cmluZykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY29k
ZXIubV9yb290ID0gV2ViU3RyaW5nOjpjcmVhdGUoc3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlU2VyaWFsaXplZFNjcmlw
dFZhbHVlOiB7CiAgICAgICAgICAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVu
Y2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShkYXRhUmVmZXJlbmNlKSkKKyAg
ICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBWZWN0b3I8dWlu
dDhfdD4gdmVjdG9yID0gZGF0YVJlZmVyZW5jZS52ZWN0b3IoKTsKQEAgLTMyOCwyMSArMzI4LDIx
IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZURvdWJs
ZTogewogICAgICAgICAgICAgZG91YmxlIHZhbHVlOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUodmFsdWUpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY29kZXIubV9yb290
ID0gV2ViRG91YmxlOjpjcmVhdGUodmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVVSW50NjQ6IHsKICAgICAgICAgICAgIHVp
bnQ2NF90IHZhbHVlOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodmFsdWUpKQor
ICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViVUludDY0OjpjcmVh
dGUodmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBB
UElPYmplY3Q6OlR5cGVCb29sZWFuOiB7CiAgICAgICAgICAgICBib29sIHZhbHVlOwotICAgICAg
ICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodmFsdWUpKQorICAgICAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgY29kZXIubV9yb290ID0gV2ViQm9vbGVhbjo6Y3JlYXRlKHZhbHVlKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMzUwLDkgKzM1MCw5IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBBUElP
YmplY3Q6OlR5cGVTaXplOiB7CiAgICAgICAgICAgICBkb3VibGUgd2lkdGg7CiAgICAgICAgICAg
ICBkb3VibGUgaGVpZ2h0OwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUod2lkdGgp
KQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aWR0aCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaGVpZ2h0
KSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGVpZ2h0KSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBXZWJTaXplOjpj
cmVhdGUoV0tTaXplTWFrZSh3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgICAgICBicmVhazsKQEAg
LTM2MCw5ICszNjAsOSBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlUG9p
bnQ6IHsKICAgICAgICAgICAgIGRvdWJsZSB4OwogICAgICAgICAgICAgZG91YmxlIHk7Ci0gICAg
ICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh4KSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoeCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUoeSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGNvZGVyLm1f
cm9vdCA9IFdlYlBvaW50OjpjcmVhdGUoV0tQb2ludE1ha2UoeCwgeSkpOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC0zNzIsMTMgKzM3MiwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBkb3VibGUg
eTsKICAgICAgICAgICAgIGRvdWJsZSB3aWR0aDsKICAgICAgICAgICAgIGRvdWJsZSBoZWlnaHQ7
Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh4KSkKKyAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoeCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoeSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKHdpZHRoKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUod2lkdGgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGhlaWdodCkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGhlaWdodCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
Y29kZXIubV9yb290ID0gV2ViUmVjdDo6Y3JlYXRlKFdLUmVjdE1ha2UoeCwgeSwgd2lkdGgsIGhl
aWdodCkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zOTUsMjggKzM5NSwyOCBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBwb3NpdGl2ZVpPcmRlckxpc3Q7CiAKICAg
ICAgICAgICAgIE93bmVyIHJlbmRlcmVyQ29kZXIoY29kZXIsIHJlbmRlcmVyKTsKLSAgICAgICAg
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlbmRlcmVyQ29kZXIpKQorICAgICAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZW5kZXJlckNvZGVyKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICBpZiAocmVuZGVyZXItPnR5cGUoKSAhPSBBUElPYmplY3Q6OlR5
cGVSZW5kZXJPYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaXNSZWZsZWN0aW9uKSkKKyAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaXNSZWZsZWN0aW9uKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShpc0NsaXBwaW5nKSkKKyAgICAg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNDbGlwcGluZykpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaXNDbGlwcGVk
KSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNDbGlwcGVkKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShj
b21wb3NpdGluZ0xheWVyVHlwZUFzVUludDMyKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoY29tcG9zaXRpbmdMYXllclR5cGVBc1VJbnQzMikpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoYWJzb2x1dGVCb3Vu
ZGluZ0JveCkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFic29sdXRlQm91bmRp
bmdCb3gpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIE93bmVy
IG5lZ2F0aXZlWk9yZGVyTGlzdENvZGVyKGNvZGVyLCBuZWdhdGl2ZVpPcmRlckxpc3QpOwotICAg
ICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUobmVnYXRpdmVaT3JkZXJMaXN0Q29kZXIpKQor
ICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShuZWdhdGl2ZVpPcmRlckxpc3RDb2Rlcikp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgT3duZXIgbm9ybWFs
Rmxvd0xpc3RDb2Rlcihjb2Rlciwgbm9ybWFsRmxvd0xpc3QpOwotICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUobm9ybWFsRmxvd0xpc3RDb2RlcikpCisgICAgICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG5vcm1hbEZsb3dMaXN0Q29kZXIpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIE93bmVyIHBvc2l0aXZlWk9yZGVyTGlzdENvZGVyKGNvZGVy
LCBwb3NpdGl2ZVpPcmRlckxpc3QpOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cG9zaXRpdmVaT3JkZXJMaXN0Q29kZXIpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGl2ZVpPcmRlckxpc3RDb2RlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViUmVuZGVyTGF5ZXI6OmNyZWF0ZShzdGF0
aWNfcG9pbnRlcl9jYXN0PFdlYlJlbmRlck9iamVjdD4ocmVuZGVyZXIpLCBpc1JlZmxlY3Rpb24s
IGlzQ2xpcHBpbmcsIGlzQ2xpcHBlZCwgc3RhdGljX2Nhc3Q8V2ViUmVuZGVyTGF5ZXI6OkNvbXBv
c2l0aW5nTGF5ZXJUeXBlPihjb21wb3NpdGluZ0xheWVyVHlwZUFzVUludDMyKSwKICAgICAgICAg
ICAgICAgICBhYnNvbHV0ZUJvdW5kaW5nQm94LCBzdGF0aWNfcG9pbnRlcl9jYXN0PE11dGFibGVB
cnJheT4obmVnYXRpdmVaT3JkZXJMaXN0KSwgc3RhdGljX3BvaW50ZXJfY2FzdDxNdXRhYmxlQXJy
YXk+KG5vcm1hbEZsb3dMaXN0KSwKQEAgLTQzMiwyMSArNDMyLDIxIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIFdlYkNvcmU6OkludFJlY3QgZnJhbWVSZWN0OwogICAgICAgICAgICAgUmVmUHRyPEFQ
SU9iamVjdD4gY2hpbGRyZW47CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKG5hbWUpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShuYW1lKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShlbGVtZW50VGFnTmFtZSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGVsZW1lbnRUYWdOYW1lKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
ICAgICBpZiAoIWRlY29kZXItPmRlY29kZShlbGVtZW50SUQpKQorICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShlbGVtZW50SUQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIE93bmVyIGNsYXNzTmFtZXNDb2Rlcihjb2RlciwgZWxlbWVudENsYXNzTmFt
ZXMpOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoY2xhc3NOYW1lc0NvZGVyKSkK
KyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY2xhc3NOYW1lc0NvZGVyKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShhYnNvbHV0ZVBvc2l0aW9uKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYWJz
b2x1dGVQb3NpdGlvbikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZnJhbWVSZWN0KSkKKyAgICAgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoZnJhbWVSZWN0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICBPd25lciBtZXNzYWdlQ29kZXIoY29kZXIsIGNoaWxkcmVuKTsKLSAgICAgICAg
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKG1lc3NhZ2VDb2RlcikpCisgICAgICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VDb2RlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLT50eXBlKCkgIT0gQVBJ
T2JqZWN0OjpUeXBlQXJyYXkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDU1
LDQyICs0NTUsNDIgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0
OjpUeXBlVVJMOiB7CiAgICAgICAgICAgICBTdHJpbmcgc3RyaW5nOwotICAgICAgICAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoc3RyaW5nKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoc3RyaW5nKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBj
b2Rlci5tX3Jvb3QgPSBXZWJVUkw6OmNyZWF0ZShzdHJpbmcpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVVUkxSZXF1ZXN0OiB7CiAg
ICAgICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKLSAgICAgICAgICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlcXVlc3QpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXF1ZXN0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBjb2Rlci5tX3Jvb3QgPSBXZWJVUkxSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVVS
TFJlc3BvbnNlOiB7CiAgICAgICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzcG9uc2UpKQorICAgICAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXNwb25zZSkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViVVJMUmVzcG9uc2U6OmNy
ZWF0ZShyZXNwb25zZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIEFQSU9iamVjdDo6VHlwZVVzZXJDb250ZW50VVJMUGF0dGVybjogewogICAgICAgICAgICAg
U3RyaW5nIHN0cmluZzsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN0cmluZykp
CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0cmluZykpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViVXNlckNvbnRl
bnRVUkxQYXR0ZXJuOjpjcmVhdGUoc3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlSW1hZ2U6IHsKICAgICAgICAgICAgIGJv
b2wgZGlkRW5jb2RlID0gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShk
aWRFbmNvZGUpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkaWRFbmNvZGUpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgaWYgKCFkaWRFbmNv
ZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGhhbmRsZTsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhbmRs
ZSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZSkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBXZWJJbWFn
ZTo6Y3JlYXRlKFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGhhbmRsZSkpOwpAQCAtNDk4LDIxICs0
OTgsMjEgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBl
RGF0YTogewogICAgICAgICAgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNl
OwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCisgICAg
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFSZWZlcmVuY2UpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IFdlYkRhdGE6OmNy
ZWF0ZShkYXRhUmVmZXJlbmNlLmRhdGEoKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVDZXJ0
aWZpY2F0ZUluZm86IHsKICAgICAgICAgICAgIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvIHBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8pKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUocGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVFcnJvcjogewogICAgICAgICAgICAgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUocmVzb3VyY2VFcnJvcikpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c291cmNlRXJyb3IpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IGNvZGVyLm1fcm9vdCA9IFdlYkVycm9yOjpjcmVhdGUocmVzb3VyY2VFcnJvcik7CiAgICAgICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0
TWVudUl0ZW1EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0
ZW1EYXRhLmNwcAppbmRleCAyMzI5MGIzNzY4YzU4NTUxYTU5YmRiMTZkYWVlMzk1MjE4MjlkMzli
Li5iZGU3MDRlMGU2MWVhNDExMGUxYTY3ZWI5MDMwZDRiYjM5MDk5NWQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCkBAIC0xMTQsMzAg
KzExNCwzMCBAQCB2b2lkIFdlYkNvbnRleHRNZW51SXRlbURhdGE6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX3N1Ym1lbnU7
CiB9CiAKLWJvb2wgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKK2Jvb2wg
V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKICAgICBXZWJDb3JlOjpD
b250ZXh0TWVudUl0ZW1UeXBlIHR5cGU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHR5
cGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHR5cGUpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb247Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGVFbnVtKGFjdGlvbikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0oYWN0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgU3RyaW5nIHRpdGxlOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHRpdGxlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHRpdGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBjaGVja2VkOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKGNoZWNrZWQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
Y2hlY2tlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgZW5hYmxlZDsKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShlbmFibGVkKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBWZWN0b3I8V2ViQ29udGV4
dE1lbnVJdGVtRGF0YT4gc3VibWVudTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShzdWJtZW51
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN1Ym1lbnUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oCmluZGV4IDkyMTJlMjgxMzIyMWFmMjZlNDdmNWUxOTY2Nzcw
NTMyYzc0M2E1MmUuLjliMDgxOTAzOWUzNjFmMWM2ZDc5MTgyNWU3MWUzZDc5MjQ0MDAzZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaApAQCAt
NjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyRGF0YShBUElPYmplY3QqKTsK
ICAgICAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsK
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXImLCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJik7CiAKIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZSBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDAzOWI4ZDYwMThjMjdhMGM5
NGE3NTRlN2I0ZDg2OTM2NWZlYjE0YzUuLjRmNjBjNDU1YjE5NDM0Y2U0ODdhMmViNGY5OWYwOGJl
MDM1NjgxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFu
c2Zvcm0+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBZmZpCiAgICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUoZW5jb2RlciwgYWZm
aW5lVHJhbnNmb3JtKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46
OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFmZmluZVRyYW5zZm9ybSYgYWZmaW5l
VHJhbnNmb3JtKQorYm9vbCBBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRl
Y29kZShkZWNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwogfQpAQCAtNzMsNyArNzMsNyBAQCB2b2lk
IEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEZsb2F0UG9pbgogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46
OmVuY29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBGbG9hdFBvaW50JiBm
bG9hdFBvaW50KQorYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQogewogICAgIHJldHVy
biBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQ
b2ludCk7CiB9CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+
OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJlY3QmCiAgICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0
KTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShBcmd1bWVudERl
Y29kZXIqIGRlY29kZXIsIEZsb2F0UmVjdCYgZmxvYXRSZWN0KQorYm9vbCBBcmd1bWVudENvZGVy
PEZsb2F0UmVjdD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEZsb2F0UmVjdCYg
ZmxvYXRSZWN0KQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46
OmRlY29kZShkZWNvZGVyLCBmbG9hdFJlY3QpOwogfQpAQCAtOTUsNyArOTUsNyBAQCB2b2lkIEFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgRmxvYXRTaXplJgogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5j
b2RlKGVuY29kZXIsIGZsb2F0U2l6ZSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFNp
emU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6
ZSkKK2Jvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKIHsKICAgICByZXR1cm4gU2ltcGxlQXJn
dW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRTaXplKTsKIH0KQEAg
LTEwNiw3ICsxMDYsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRQb2ludCYgaQogICAgIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgaW50UG9pbnQpOwogfQogCi1ib29s
IEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVy
LCBJbnRQb2ludCYgaW50UG9pbnQpCitib29sIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJbnRQb2ludCYgaW50UG9pbnQpCiB7CiAgICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgaW50
UG9pbnQpOwogfQpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50CiAg
ICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3Qp
OwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIEludFJlY3QmIGludFJlY3QpCitib29sIEFyZ3VtZW50Q29kZXI8SW50UmVj
dD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJlY3QpCiB7
CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShkZWNvZGVy
LCBpbnRSZWN0KTsKIH0KQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFNpemUmIGlu
dAogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRT
aXplKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQorYm9vbCBBcmd1bWVudENvZGVyPElu
dFNpemU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJbnRTaXplJiBpbnRTaXpl
KQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoZGVj
b2RlciwgaW50U2l6ZSk7CiB9CkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBBcmd1bWVudENvZGVy
PFZpZXdwb3J0QXR0cmlidXRlcz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFYKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46OmVuY29k
ZShlbmNvZGVyLCB2aWV3cG9ydEF0dHJpYnV0ZXMpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8
Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgVmll
d3BvcnRBdHRyaWJ1dGVzJiB2aWV3cG9ydEF0dHJpYnV0ZXMpCitib29sIEFyZ3VtZW50Q29kZXI8
Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVmll
d3BvcnRBdHRyaWJ1dGVzJiB2aWV3cG9ydEF0dHJpYnV0ZXMpCiB7CiAgICAgcmV0dXJuIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKGRlY29kZXIsIHZpZXdw
b3J0QXR0cmlidXRlcyk7CiB9CkBAIC0xNTAsMTMgKzE1MCwxMyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8TWltZUNsYXNzSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IE1pbWVDbAogICAgIGVuY29kZXIgPDwgbWltZUNsYXNzSW5mby50eXBlIDw8IG1pbWVDbGFzc0lu
Zm8uZGVzYyA8PCBtaW1lQ2xhc3NJbmZvLmV4dGVuc2lvbnM7CiB9CiAKLWJvb2wgQXJndW1lbnRD
b2RlcjxNaW1lQ2xhc3NJbmZvPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTWlt
ZUNsYXNzSW5mbyYgbWltZUNsYXNzSW5mbykKK2Jvb2wgQXJndW1lbnRDb2RlcjxNaW1lQ2xhc3NJ
bmZvPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTWltZUNsYXNzSW5mbyYgbWlt
ZUNsYXNzSW5mbykKIHsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShtaW1lQ2xhc3NJbmZvLnR5
cGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWltZUNsYXNzSW5mby50eXBlKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKG1pbWVDbGFzc0luZm8u
ZGVzYykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtaW1lQ2xhc3NJbmZvLmRlc2MpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUobWltZUNsYXNzSW5m
by5leHRlbnNpb25zKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1pbWVDbGFzc0luZm8uZXh0
ZW5zaW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAt
MTY4LDE1ICsxNjgsMTUgQEAgdm9pZCBBcmd1bWVudENvZGVyPFBsdWdpbkluZm8+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQbHVnaW5JbmYKICAgICBlbmNvZGVyIDw8
IHBsdWdpbkluZm8ubmFtZSA8PCBwbHVnaW5JbmZvLmZpbGUgPDwgcGx1Z2luSW5mby5kZXNjIDw8
IHBsdWdpbkluZm8ubWltZXM7CiB9CiAgICAgCi1ib29sIEFyZ3VtZW50Q29kZXI8UGx1Z2luSW5m
bz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFBsdWdpbkluZm8mIHBsdWdpbklu
Zm8pCitib29sIEFyZ3VtZW50Q29kZXI8UGx1Z2luSW5mbz46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFBsdWdpbkluZm8mIHBsdWdpbkluZm8pCiB7Ci0gICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUocGx1Z2luSW5mby5uYW1lKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBsdWdp
bkluZm8ubmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShwbHVnaW5JbmZvLmZpbGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGx1Z2luSW5m
by5maWxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KHBsdWdpbkluZm8uZGVzYykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwbHVnaW5JbmZvLmRl
c2MpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGx1
Z2luSW5mby5taW1lcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwbHVnaW5JbmZvLm1pbWVz
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xODgsOSAr
MTg4LDkgQEAgdm9pZCBBcmd1bWVudENvZGVyPEhUVFBIZWFkZXJNYXA+OjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIVFRQSGUKICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PGNvbnN0IEhhc2hNYXA8QXRvbWljU3RyaW5nLCBTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4m
PihoZWFkZXJNYXApOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8SFRUUEhlYWRlck1hcD46OmRl
Y29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEhUVFBIZWFkZXJNYXAmIGhlYWRlck1hcCkK
K2Jvb2wgQXJndW1lbnRDb2RlcjxIVFRQSGVhZGVyTWFwPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgSFRUUEhlYWRlck1hcCYgaGVhZGVyTWFwKQogewotICAgIHJldHVybiBkZWNv
ZGVyLT5kZWNvZGUoc3RhdGljX2Nhc3Q8SGFzaE1hcDxBdG9taWNTdHJpbmcsIFN0cmluZywgQ2Fz
ZUZvbGRpbmdIYXNoPiY+KGhlYWRlck1hcCkpOworICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShz
dGF0aWNfY2FzdDxIYXNoTWFwPEF0b21pY1N0cmluZywgU3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+
Jj4oaGVhZGVyTWFwKSk7CiB9CiAKIApAQCAtMTk5LDI2ICsxOTksMjYgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwgY28KICAgICBlbmNvZGVyIDw8IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSA8
PCBjaGFsbGVuZ2UucHJvcG9zZWRDcmVkZW50aWFsKCkgPDwgY2hhbGxlbmdlLnByZXZpb3VzRmFp
bHVyZUNvdW50KCkgPDwgY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpIDw8IGNoYWxsZW5nZS5l
cnJvcigpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8QXV0aGVudGljYXRpb25DaGFsbGVuZ2U+
OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgY2hhbGxlbmdlKQorYm9vbCBBcmd1bWVudENvZGVyPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGNoYWxsZW5nZSkKIHsgICAgCiAgICAgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFj
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwcm90ZWN0aW9uU3BhY2UpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocHJvdGVjdGlvblNwYWNlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgQ3JlZGVudGlhbCBwcm9wb3NlZENyZWRlbnRpYWw7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUocHJvcG9zZWRDcmVkZW50aWFsKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3Bv
c2VkQ3JlZGVudGlhbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVuc2lnbmVkIHBy
ZXZpb3VzRmFpbHVyZUNvdW50OyAgICAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwcmV2aW91
c0ZhaWx1cmVDb3VudCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmV2aW91c0ZhaWx1cmVD
b3VudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlc291cmNlUmVzcG9uc2UgZmFp
bHVyZVJlc3BvbnNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGZhaWx1cmVSZXNwb25zZSkp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmYWlsdXJlUmVzcG9uc2UpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBSZXNvdXJjZUVycm9yIGVycm9yOwotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKGVycm9yKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGVycm9yKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIAogICAgIGNoYWxsZW5nZSA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKHByb3RlY3Rpb25TcGFjZSwgcHJvcG9zZWRDcmVkZW50aWFsLCBwcmV2aW91c0ZhaWx1cmVD
b3VudCwgZmFpbHVyZVJlc3BvbnNlLCBlcnJvcik7CkBAIC0yMzMsMjYgKzIzMywyNiBAQCB2b2lk
IEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgUHJvdAogICAgIGVuY29kZXIuZW5jb2RlRW51bShzcGFjZS5zZXJ2ZXJU
eXBlKCkpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSkKK2Jvb2wg
QXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBQcm90ZWN0aW9uU3BhY2UmIHNwYWNlKQogewogICAgIFN0cmluZyBob3N0OwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKGhvc3QpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaG9z
dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGludCBwb3J0OwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHBvcnQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9ydCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIFN0cmluZyByZWFsbTsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShyZWFsbSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZWFsbSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKICAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNj
aGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0o
YXV0aGVudGljYXRpb25TY2hlbWUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGF1dGhl
bnRpY2F0aW9uU2NoZW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUHJvdGVjdGlv
blNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51
bShzZXJ2ZXJUeXBlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShzZXJ2ZXJUeXBlKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3BhY2UgPSBQcm90ZWN0aW9uU3BhY2UoaG9z
dCwgcG9ydCwgc2VydmVyVHlwZSwgcmVhbG0sIGF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKQEAgLTI2
NSwxOCArMjY1LDE4IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDcmVkZW50aWFsPjo6ZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ3JlZGVudGlhCiAgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKGNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2Rl
cjxDcmVkZW50aWFsPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQ3JlZGVudGlh
bCYgY3JlZGVudGlhbCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxDcmVkZW50aWFsPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBT
dHJpbmcgdXNlcjsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSh1c2VyKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHVzZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBTdHJpbmcg
cGFzc3dvcmQ7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFzc3dvcmQpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFzc3dvcmQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBD
cmVkZW50aWFsUGVyc2lzdGVuY2UgcGVyc2lzdGVuY2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVFbnVtKHBlcnNpc3RlbmNlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShwZXJzaXN0
ZW5jZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBjcmVkZW50aWFsID0gQ3Jl
ZGVudGlhbCh1c2VyLCBwYXNzd29yZCwgcGVyc2lzdGVuY2UpOwpAQCAtMjk0LDEwICsyOTQsMTAg
QEAgc3RhdGljIHZvaWQgZW5jb2RlSW1hZ2UoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBJbWFn
ZSogaW1hZ2UpCiAgICAgZW5jb2RlciA8PCBoYW5kbGU7CiB9CiAKLXN0YXRpYyBib29sIGRlY29k
ZUltYWdlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmVmUHRyPEltYWdlPiYgaW1hZ2UpCitz
dGF0aWMgYm9vbCBkZWNvZGVJbWFnZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxJ
bWFnZT4mIGltYWdlKQogewogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShoYW5kbGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIFJlZlB0cjxTaGFyZWFi
bGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGhhbmRsZSk7CkBAIC0z
MjYsMTAgKzMyNiwxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q3Vyc29yPjo6ZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ3Vyc29yJiBjdXJzbwogICAgIGVuY29kZXIgPDwg
Y3Vyc29yLmhvdFNwb3QoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEN1cnNvcj46OmRlY29k
ZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEN1cnNvciYgY3Vyc29yKQorYm9vbCBBcmd1bWVu
dENvZGVyPEN1cnNvcj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEN1cnNvciYg
Y3Vyc29yKQogewogICAgIEN1cnNvcjo6VHlwZSB0eXBlOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlRW51bSh0eXBlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0eXBlKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHR5cGUgPiBDdXJzb3I6OkN1c3RvbSkKQEAgLTM0
Niw3ICszNDYsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Q3Vyc29yPjo6ZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgQ3Vyc29yJiBjdXJzb3IpCiAgICAgfQogCiAgICAgYm9vbCBpc1Zh
bGlkSW1hZ2VQcmVzZW50OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGlzVmFsaWRJbWFnZVBy
ZXNlbnQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNWYWxpZEltYWdlUHJlc2VudCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghaXNWYWxpZEltYWdlUHJlc2VudCkgewpA
QCAtMzU5LDcgKzM1OSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBDdXJzb3ImIGN1cnNvcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgSW50UG9pbnQgaG90U3BvdDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSho
b3RTcG90KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhvdFNwb3QpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBpZiAoIWltYWdlLT5yZWN0KCkuY29udGFpbnMoaG90U3BvdCkpCkBA
IC0zOTAsMzggKzM5MCwzOCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzbwogICAgIGVuY29kZVBs
YXRmb3JtRGF0YShlbmNvZGVyLCByZXNvdXJjZVJlcXVlc3QpOwogfQogCi1ib29sIEFyZ3VtZW50
Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2Rlciwg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCitib29sIEFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCiB7CiAgICAgaWYgKGtTaG91bGRTZXJpYWxpemVXZWJD
b3JlRGF0YSkgewogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKIAogICAgICAgICBT
dHJpbmcgdXJsOwotICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh1cmwpKQorICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHVybCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIHJlcXVlc3Quc2V0VVJMKEtVUkwoS1VSTCgpLCB1cmwpKTsKIAogICAgICAgICBTdHJpbmcg
aHR0cE1ldGhvZDsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaHR0cE1ldGhvZCkpCisg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaHR0cE1ldGhvZCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChodHRwTWV0aG9kKTsKIAog
ICAgICAgICBIVFRQSGVhZGVyTWFwIGhlYWRlcnM7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKGhlYWRlcnMpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhlYWRlcnMpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXF1ZXN0LmFkZEhUVFBIZWFkZXJGaWVs
ZHMoaGVhZGVycyk7CiAKICAgICAgICAgYm9vbCBoYXNIVFRQQm9keTsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoaGFzSFRUUEJvZHkpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhhc0hUVFBCb2R5KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGhh
c0hUVFBCb2R5KSB7CiAgICAgICAgICAgICBTdHJpbmcgaHR0cEJvZHk7Ci0gICAgICAgICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShodHRwQm9keSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGh0dHBCb2R5KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KEZvcm1EYXRhOjpjcmVhdGUoaHR0cEJvZHkudXRmOCgp
KSk7CiAgICAgICAgIH0KIAogICAgICAgICBTdHJpbmcgZmlyc3RQYXJ0eUZvckNvb2tpZXM7Ci0g
ICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGZpcnN0UGFydHlGb3JDb29raWVzKSkKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShmaXJzdFBhcnR5Rm9yQ29va2llcykpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMo
S1VSTChLVVJMKCksIGZpcnN0UGFydHlGb3JDb29raWVzKSk7CiAKQEAgLTQ1MywxMSArNDUzLDEx
IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzCiAgICAgZW5jb2RlUGxhdGZvcm1EYXRhKGVuY29k
ZXIsIHJlc291cmNlUmVzcG9uc2UpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VS
ZXNwb25zZT46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJlc291cmNlUmVzcG9u
c2UmIHJlc291cmNlUmVzcG9uc2UpCitib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25z
ZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVzcG9uc2UmIHJl
c291cmNlUmVzcG9uc2UpCiB7CiAgICAgaWYgKGtTaG91bGRTZXJpYWxpemVXZWJDb3JlRGF0YSkg
ewogICAgICAgICBib29sIHJlc3BvbnNlSXNOdWxsOwotICAgICAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShyZXNwb25zZUlzTnVsbCkpCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzcG9u
c2VJc051bGwpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAocmVzcG9u
c2VJc051bGwpIHsKICAgICAgICAgICAgIHJlc291cmNlUmVzcG9uc2UgPSBSZXNvdXJjZVJlc3Bv
bnNlKCk7CkBAIC00NjcsNDMgKzQ2Nyw0MyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VS
ZXNwb25zZT46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJlc291cmNlUgogICAg
ICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwogCiAgICAgICAgIFN0cmluZyB1cmw7Ci0g
ICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHVybCkpCisgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUodXJsKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzcG9uc2Uu
c2V0VVJMKEtVUkwoS1VSTCgpLCB1cmwpKTsKIAogICAgICAgICBpbnQzMl90IGh0dHBTdGF0dXND
b2RlOwotICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShodHRwU3RhdHVzQ29kZSkpCisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaHR0cFN0YXR1c0NvZGUpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShodHRwU3RhdHVz
Q29kZSk7CiAKICAgICAgICAgSFRUUEhlYWRlck1hcCBoZWFkZXJzOwotICAgICAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShoZWFkZXJzKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoZWFk
ZXJzKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgZm9yIChIVFRQSGVhZGVy
TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlcnMuYmVnaW4oKSwgZW5kID0gaGVhZGVycy5l
bmQoKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUEhlYWRl
ckZpZWxkKGl0LT5rZXksIGl0LT52YWx1ZSk7CiAKICAgICAgICAgU3RyaW5nIG1pbWVUeXBlOwot
ICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShtaW1lVHlwZSkpCisgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobWltZVR5cGUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICByZXNwb25zZS5zZXRNaW1lVHlwZShtaW1lVHlwZSk7CiAKICAgICAgICAgU3RyaW5nIHRleHRF
bmNvZGluZ05hbWU7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHRleHRFbmNvZGluZ05h
bWUpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHRFbmNvZGluZ05hbWUpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdO
YW1lKHRleHRFbmNvZGluZ05hbWUpOwogCiAgICAgICAgIGludDY0X3QgY29udGVudExlbmd0aDsK
LSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoY29udGVudExlbmd0aCkpCisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoY29udGVudExlbmd0aCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHJlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aChjb250ZW50TGVu
Z3RoKTsKIAogICAgICAgICBTdHJpbmcgaHR0cFN0YXR1c1RleHQ7Ci0gICAgICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKGh0dHBTdGF0dXNUZXh0KSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShodHRwU3RhdHVzVGV4dCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJl
c3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KGh0dHBTdGF0dXNUZXh0KTsKIAogICAgICAgICBTdHJp
bmcgc3VnZ2VzdGVkRmlsZW5hbWU7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN1Z2dl
c3RlZEZpbGVuYW1lKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdWdnZXN0ZWRGaWxl
bmFtZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3BvbnNlLnNldFN1
Z2dlc3RlZEZpbGVuYW1lKHN1Z2dlc3RlZEZpbGVuYW1lKTsKIApAQCAtNTMyLDExICs1MzIsMTEg
QEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXIKICAgICBlbmNvZGVQbGF0Zm9ybURhdGEoZW5jb2Rl
ciwgcmVzb3VyY2VFcnJvcik7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9y
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmVzb3VyY2VFcnJvciYgcmVzb3Vy
Y2VFcnJvcikKK2Jvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKIHsKICAg
ICBpZiAoa1Nob3VsZFNlcmlhbGl6ZVdlYkNvcmVEYXRhKSB7CiAgICAgICAgIGJvb2wgZXJyb3JJ
c051bGw7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGVycm9ySXNOdWxsKSkKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShlcnJvcklzTnVsbCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIGlmIChlcnJvcklzTnVsbCkgewogICAgICAgICAgICAgcmVzb3VyY2VF
cnJvciA9IFJlc291cmNlRXJyb3IoKTsKQEAgLTU0NCwyNyArNTQ0LDI3IEBAIGJvb2wgQXJndW1l
bnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2Rlciwg
UmVzb3VyY2VFcnJvCiAgICAgICAgIH0KIAogICAgICAgICBTdHJpbmcgZG9tYWluOwotICAgICAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShkb21haW4pKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGRvbWFpbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaW50IGVy
cm9yQ29kZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZXJyb3JDb2RlKSkKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShlcnJvckNvZGUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgIFN0cmluZyBmYWlsaW5nVVJMOwotICAgICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShmYWlsaW5nVVJMKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmYWlsaW5n
VVJMKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBTdHJpbmcgbG9jYWxp
emVkRGVzY3JpcHRpb247Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGxvY2FsaXplZERl
c2NyaXB0aW9uKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsb2NhbGl6ZWREZXNjcmlw
dGlvbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgYm9vbCBpc0NhbmNl
bGxhdGlvbjsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaXNDYW5jZWxsYXRpb24pKQor
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzQ2FuY2VsbGF0aW9uKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgICAgICBib29sIGlzVGltZW91dDsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoaXNUaW1lb3V0KSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
c1RpbWVvdXQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHJlc291cmNl
RXJyb3IgPSBSZXNvdXJjZUVycm9yKGRvbWFpbiwgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2Nh
bGl6ZWREZXNjcmlwdGlvbik7CkBAIC01OTUsMzkgKzU5NSwzOSBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8V2luZG93RmVhdHVyZXM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBXaW5kbwogICAgIGVuY29kZXIgPDwgd2luZG93RmVhdHVyZXMuZGlhbG9nOwogfQogCi1ib29s
IEFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBXaW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMpCitib29sIEFyZ3VtZW50Q29k
ZXI8V2luZG93RmVhdHVyZXM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXaW5k
b3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
d2luZG93RmVhdHVyZXMueCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aW5kb3dGZWF0dXJl
cy54KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHdp
bmRvd0ZlYXR1cmVzLnkpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMu
eSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSh3aW5k
b3dGZWF0dXJlcy53aWR0aCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aW5kb3dGZWF0dXJl
cy53aWR0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZSh3aW5kb3dGZWF0dXJlcy5oZWlnaHQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2luZG93
RmVhdHVyZXMuaGVpZ2h0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHdpbmRvd0ZlYXR1cmVzLnhTZXQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
d2luZG93RmVhdHVyZXMueFNldCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXItPmRlY29kZSh3aW5kb3dGZWF0dXJlcy55U2V0KSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHdpbmRvd0ZlYXR1cmVzLnlTZXQpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUod2luZG93RmVhdHVyZXMud2lkdGhTZXQpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMud2lkdGhTZXQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUod2luZG93RmVhdHVyZXMuaGVpZ2h0U2V0KSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHdpbmRvd0ZlYXR1cmVzLmhlaWdodFNldCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSh3aW5kb3dGZWF0dXJl
cy5tZW51QmFyVmlzaWJsZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aW5kb3dGZWF0dXJl
cy5tZW51QmFyVmlzaWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29k
ZXItPmRlY29kZSh3aW5kb3dGZWF0dXJlcy5zdGF0dXNCYXJWaXNpYmxlKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHdpbmRvd0ZlYXR1cmVzLnN0YXR1c0JhclZpc2libGUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUod2luZG93RmVhdHVyZXMudG9v
bEJhclZpc2libGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMudG9v
bEJhclZpc2libGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUod2luZG93RmVhdHVyZXMubG9jYXRpb25CYXJWaXNpYmxlKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHdpbmRvd0ZlYXR1cmVzLmxvY2F0aW9uQmFyVmlzaWJsZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSh3aW5kb3dGZWF0dXJlcy5zY3Jv
bGxiYXJzVmlzaWJsZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aW5kb3dGZWF0dXJlcy5z
Y3JvbGxiYXJzVmlzaWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29k
ZXItPmRlY29kZSh3aW5kb3dGZWF0dXJlcy5yZXNpemFibGUpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUod2luZG93RmVhdHVyZXMucmVzaXphYmxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHdpbmRvd0ZlYXR1cmVzLmZ1bGxzY3JlZW4pKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMuZnVsbHNjcmVlbikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSh3aW5kb3dGZWF0dXJlcy5k
aWFsb2cpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMuZGlhbG9nKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNjQ0LDEwICs2
NDQsMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPENvbG9yPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIGVuY29kZXIgPDwgY29sb3Iucmdi
KCk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxDb2xvcj46OmRlY29kZShBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIENvbG9yJiBjb2xvcikKK2Jvb2wgQXJndW1lbnRDb2RlcjxDb2xvcj46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENvbG9yJiBjb2xvcikKIHsKICAgICBib29s
IGlzVmFsaWQ7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaXNWYWxpZCkpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShpc1ZhbGlkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KCFpc1ZhbGlkKSB7CkBAIC02NTYsNyArNjU2LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPENvbG9y
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQ29sb3ImIGNvbG9yKQogICAgIH0K
IAogICAgIFJHQkEzMiByZ2JhOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJnYmEpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmdiYSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGNvbG9yID0gQ29sb3IocmdiYSk7CkBAIC02NzIsMTUgKzY3MiwxNSBAQCB2b2lkIEFyZ3VtZW50
Q29kZXI8Q29tcG9zaXRpb25VbmRlcmxpbmU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdAogICAgIGVuY29kZXIgPDwgdW5kZXJsaW5lLmNvbG9yOwogfQogCi1ib29sIEFy
Z3VtZW50Q29kZXI8Q29tcG9zaXRpb25VbmRlcmxpbmU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBDb21wb3NpdGlvblVuZGVybGluZSYgdW5kZXJsaW5lKQorYm9vbCBBcmd1bWVu
dENvZGVyPENvbXBvc2l0aW9uVW5kZXJsaW5lPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgQ29tcG9zaXRpb25VbmRlcmxpbmUmIHVuZGVybGluZSkKIHsKLSAgICBpZiAoIWRlY29k
ZXItPmRlY29kZSh1bmRlcmxpbmUuc3RhcnRPZmZzZXQpKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUodW5kZXJsaW5lLnN0YXJ0T2Zmc2V0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKHVuZGVybGluZS5lbmRPZmZzZXQpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodW5kZXJsaW5lLmVuZE9mZnNldCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZSh1bmRlcmxpbmUudGhpY2spKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodW5kZXJsaW5lLnRoaWNrKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKHVuZGVybGluZS5jb2xvcikpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZSh1bmRlcmxpbmUuY29sb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTY5OSwyMyArNjk5LDIzIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDb29raWU+
OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb29raWUmIGNvb2tpCiAg
ICAgZW5jb2RlciA8PCBjb29raWUuc2Vzc2lvbjsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENv
b2tpZT46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIENvb2tpZSYgY29va2llKQor
Ym9vbCBBcmd1bWVudENvZGVyPENvb2tpZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIENvb2tpZSYgY29va2llKQogewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGNvb2tpZS5u
YW1lKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvb2tpZS5uYW1lKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGNvb2tpZS52YWx1ZSkpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShjb29raWUudmFsdWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoY29va2llLmRvbWFpbikpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShjb29raWUuZG9tYWluKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGNvb2tpZS5wYXRoKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGNvb2tpZS5wYXRoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKGNvb2tpZS5leHBpcmVzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvb2tpZS5l
eHBpcmVzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KGNvb2tpZS5odHRwT25seSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb29raWUuaHR0cE9u
bHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoY29v
a2llLnNlY3VyZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb29raWUuc2VjdXJlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGNvb2tpZS5zZXNz
aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvb2tpZS5zZXNzaW9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC03MzEsMjIgKzczMSwyMiBAQCB2
b2lkIEFyZ3VtZW50Q29kZXI8RGF0YWJhc2VEZXRhaWxzPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgRGF0YQogICAgIGVuY29kZXIgPDwgZGV0YWlscy5jdXJyZW50VXNh
Z2UoKTsKIH0KICAgICAKLWJvb2wgQXJndW1lbnRDb2RlcjxEYXRhYmFzZURldGFpbHM+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhYmFzZURldGFpbHMmIGRldGFpbHMpCiti
b29sIEFyZ3VtZW50Q29kZXI8RGF0YWJhc2VEZXRhaWxzPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgRGF0YWJhc2VEZXRhaWxzJiBkZXRhaWxzKQogewogICAgIFN0cmluZyBuYW1l
OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKG5hbWUpKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUobmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFN0cmluZyBkaXNwbGF5TmFt
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShkaXNwbGF5TmFtZSkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShkaXNwbGF5TmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVp
bnQ2NF90IGV4cGVjdGVkVXNhZ2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZXhwZWN0ZWRV
c2FnZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShleHBlY3RlZFVzYWdlKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgdWludDY0X3QgY3VycmVudFVzYWdlOwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKGN1cnJlbnRVc2FnZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjdXJy
ZW50VXNhZ2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgZGV0YWlscyA9IERh
dGFiYXNlRGV0YWlscyhuYW1lLCBkaXNwbGF5TmFtZSwgZXhwZWN0ZWRVc2FnZSwgY3VycmVudFVz
YWdlKTsKQEAgLTc2MSwxMyArNzYxLDEzIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxEaWN0YXRpb25B
bHRlcm5hdGl2ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAg
ZW5jb2RlciA8PCBkaWN0YXRpb25BbHRlcm5hdGl2ZS5kaWN0YXRpb25Db250ZXh0OwogfQogCi1i
b29sIEFyZ3VtZW50Q29kZXI8RGljdGF0aW9uQWx0ZXJuYXRpdmU+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBEaWN0YXRpb25BbHRlcm5hdGl2ZSYgZGljdGF0aW9uQWx0ZXJuYXRp
dmUpCitib29sIEFyZ3VtZW50Q29kZXI8RGljdGF0aW9uQWx0ZXJuYXRpdmU+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEaWN0YXRpb25BbHRlcm5hdGl2ZSYgZGljdGF0aW9uQWx0
ZXJuYXRpdmUpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGljdGF0aW9uQWx0ZXJuYXRp
dmUucmFuZ2VTdGFydCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkaWN0YXRpb25BbHRlcm5h
dGl2ZS5yYW5nZVN0YXJ0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKGRpY3RhdGlvbkFsdGVybmF0aXZlLnJhbmdlTGVuZ3RoKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGRpY3RhdGlvbkFsdGVybmF0aXZlLnJhbmdlTGVuZ3RoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGRpY3RhdGlvbkFsdGVybmF0
aXZlLmRpY3RhdGlvbkNvbnRleHQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGljdGF0aW9u
QWx0ZXJuYXRpdmUuZGljdGF0aW9uQ29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTc4NiwyMCArNzg2LDIwIEBAIHZvaWQgQXJndW1lbnRDb2Rl
cjxGaWxlQ2hvb3NlclNldHRpbmdzPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QKICNlbmRpZgogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8RmlsZUNob29zZXJTZXR0aW5n
cz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEZpbGVDaG9vc2VyU2V0dGluZ3Mm
IHNldHRpbmdzKQorYm9vbCBBcmd1bWVudENvZGVyPEZpbGVDaG9vc2VyU2V0dGluZ3M+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5n
cykKIHsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShzZXR0aW5ncy5hbGxvd3NNdWx0aXBsZUZp
bGVzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNldHRpbmdzLmFsbG93c011bHRpcGxlRmls
ZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQp
Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2V0dGluZ3MuYWxsb3dzRGlyZWN0b3J5VXBsb2Fk
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNldHRpbmdzLmFsbG93c0RpcmVjdG9yeVVwbG9h
ZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHNldHRpbmdzLmFjY2VwdE1JTUVUeXBlcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShz
ZXR0aW5ncy5hY2NlcHRNSU1FVHlwZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoc2V0dGluZ3Muc2VsZWN0ZWRGaWxlcykpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzZXR0aW5ncy5zZWxlY3RlZEZpbGVzKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogI2lmIEVOQUJMRShNRURJQV9DQVBUVVJFKQotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNl
dHRpbmdzLmNhcHR1cmUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2V0dGluZ3MuY2FwdHVy
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCkBAIC04MTUsMTUgKzgxNSwxNSBA
QCB2b2lkIEFyZ3VtZW50Q29kZXI8R3JhbW1hckRldGFpbD46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEdyYW1tYQogICAgIGVuY29kZXIgPDwgZGV0YWlsLnVzZXJEZXNj
cmlwdGlvbjsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEdyYW1tYXJEZXRhaWw+OjpkZWNvZGUo
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBHcmFtbWFyRGV0YWlsJiBkZXRhaWwpCitib29sIEFy
Z3VtZW50Q29kZXI8R3JhbW1hckRldGFpbD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIEdyYW1tYXJEZXRhaWwmIGRldGFpbCkKIHsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShk
ZXRhaWwubG9jYXRpb24pKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGV0YWlsLmxvY2F0aW9u
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGRldGFp
bC5sZW5ndGgpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGV0YWlsLmxlbmd0aCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShkZXRhaWwuZ3Vlc3Nl
cykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkZXRhaWwuZ3Vlc3NlcykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShkZXRhaWwudXNlckRlc2NyaXB0
aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRldGFpbC51c2VyRGVzY3JpcHRpb24pKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTgzOSwxNyArODM5
LDE3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUCiAgICAgZW5jb2RlciA8PCByZXN1bHQucmVw
bGFjZW1lbnQ7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBUZXh0Q2hlY2tpbmdSZXN1bHQmIHJlc3Vs
dCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+OjpkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBUZXh0Q2hlY2tpbmdSZXN1bHQmIHJlc3VsdCkKIHsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZUVudW0ocmVzdWx0LnR5cGUpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKHJlc3VsdC50eXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5sb2NhdGlvbikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQubG9jYXRpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNv
ZGVyLT5kZWNvZGUocmVzdWx0Lmxlbmd0aCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQubGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHJlc3VsdC5kZXRhaWxzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kZXRh
aWxzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJl
c3VsdC5yZXBsYWNlbWVudCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQucmVwbGFj
ZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC04
NjEsMTMgKzg2MSwxMyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8RHJhZ1Nlc3Npb24+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEcmFnU2VzcwogICAgIGVuY29kZXIgPDwg
cmVzdWx0Lm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQ7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2Rl
cjxEcmFnU2Vzc2lvbj46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERyYWdTZXNz
aW9uJiByZXN1bHQpCitib29sIEFyZ3VtZW50Q29kZXI8RHJhZ1Nlc3Npb24+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEcmFnU2Vzc2lvbiYgcmVzdWx0KQogewotICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1bHQub3BlcmF0aW9uKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlRW51bShyZXN1bHQub3BlcmF0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tb3VzZUlzT3ZlckZpbGVJbnB1dCkpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubW91c2VJc092ZXJGaWxlSW5wdXQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm51bWJlck9m
SXRlbXNUb0JlQWNjZXB0ZWQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm51bWJl
ck9mSXRlbXNUb0JlQWNjZXB0ZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJu
IHRydWU7CiB9CkBAIC04NzcsMTAgKzg3NywxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8S1VSTD46
OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEtVUkwmIHJlc3VsdCkKICAg
ICBlbmNvZGVyIDw8IHJlc3VsdC5zdHJpbmcoKTsKIH0KICAgICAKLWJvb2wgQXJndW1lbnRDb2Rl
cjxLVVJMPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgS1VSTCYgcmVzdWx0KQor
Ym9vbCBBcmd1bWVudENvZGVyPEtVUkw+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBLVVJMJiByZXN1bHQpCiB7CiAgICAgU3RyaW5nIHVybEFzU3RyaW5nOwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHVybEFzU3RyaW5nKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVybEFz
U3RyaW5nKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdCA9IEtVUkwoV2ViQ29y
ZTo6UGFyc2VkVVJMU3RyaW5nLCB1cmxBc1N0cmluZyk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC04
OTYsMzAgKzg5NiwzMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VXNlclN0eWxlU2hl
ZXQ+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjbwogICAgIGVuY29kZXIuZW5j
b2RlRW51bSh1c2VyU3R5bGVTaGVldC5sZXZlbCgpKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQmIHVzZXJTdHlsZVNoZWV0KQorYm9vbCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQmIHVzZXJTdHlsZVNoZWV0KQogewogICAg
IFN0cmluZyBzb3VyY2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc291cmNlKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHNvdXJjZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IEtVUkwgdXJsOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHVybCkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh1cmwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBWZWN0b3I8U3Ry
aW5nPiB3aGl0ZWxpc3Q7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUod2hpdGVsaXN0KSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHdoaXRlbGlzdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIFZlY3RvcjxTdHJpbmc+IGJsYWNrbGlzdDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShibGFja2xpc3QpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYmxhY2tsaXN0KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cyBpbmplY3RlZEZyYW1lczsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0oaW5qZWN0ZWRG
cmFtZXMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGluamVjdGVkRnJhbWVzKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgV2ViQ29yZTo6VXNlclN0eWxlTGV2ZWwgbGV2ZWw7
Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKGxldmVsKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlRW51bShsZXZlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVzZXJTdHls
ZVNoZWV0ID0gV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQoc291cmNlLCB1cmwsIHdoaXRlbGlzdCwg
YmxhY2tsaXN0LCBpbmplY3RlZEZyYW1lcywgbGV2ZWwpOwpAQCAtOTM2LDMwICs5MzYsMzAgQEAg
dm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlVzZXJTY3JpcHQ+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdAogICAgIGVuY29kZXIuZW5jb2RlRW51bSh1c2VyU2NyaXB0
LmluamVjdGVkRnJhbWVzKCkpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VXNl
clNjcmlwdD46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkNvcmU6OlVzZXJT
Y3JpcHQmIHVzZXJTY3JpcHQpCitib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VXNlclNjcmlw
dD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlVzZXJTY3JpcHQm
IHVzZXJTY3JpcHQpCiB7CiAgICAgU3RyaW5nIHNvdXJjZTsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShzb3VyY2UpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc291cmNlKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgS1VSTCB1cmw7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
dXJsKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVybCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IHdoaXRlbGlzdDsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh3aGl0ZWxpc3QpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2hpdGVsaXN0KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgVmVjdG9yPFN0cmluZz4gYmxhY2tsaXN0OwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKGJsYWNrbGlzdCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShibGFja2xpc3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBXZWJDb3JlOjpVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlRW51bShpbmplY3Rpb25UaW1lKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShpbmpl
Y3Rpb25UaW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgV2ViQ29yZTo6VXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lczsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZUVudW0oaW5qZWN0ZWRGcmFtZXMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGlu
amVjdGVkRnJhbWVzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdXNlclNjcmlwdCA9
IFdlYkNvcmU6OlVzZXJTY3JpcHQoc291cmNlLCB1cmwsIHdoaXRlbGlzdCwgYmxhY2tsaXN0LCBp
bmplY3Rpb25UaW1lLCBpbmplY3RlZEZyYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggOTNlOTczZTA5MmVlNDljMDk0NTg4NTc4NTU2
ODZmN2VmM2JmOTE3MC4uMGQ4ZWI3NjBkNzJhNGM1ODYwMTkwNmY2OGRhMzU5MDU4ZjE4YWMzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAt
NzQsNzcgKzc0LDc3IEBAIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0+IHsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3Jt
Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OkFm
ZmluZVRyYW5zZm9ybSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIm
LCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7Ci0gICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRQ
b2ludCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpG
bG9hdFJlY3Q+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciosIFdlYkNvcmU6OkZsb2F0UmVjdCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKIH07CiAKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRTaXplPiB7CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwot
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpGbG9hdFNp
emUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
RmxvYXRTaXplJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkludFBvaW50PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciosIFdlYkNvcmU6OkludFBvaW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkludFBvaW50Jik7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFJlY3Q+IHsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpJbnRSZWN0Jik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkludFJl
Y3QmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50
U2l6ZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciosIFdlYkNvcmU6OkludFNpemUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgV2ViQ29yZTo6SW50U2l6ZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXM+IHsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1
dGVzJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6
OlZpZXdwb3J0QXR0cmlidXRlcyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERl
Y29kZXImLCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKIH07CiAKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWltZUNsYXNzSW5mbz4gewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpNaW1lQ2xhc3NJ
bmZvJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6
Ok1pbWVDbGFzc0luZm8mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiwgV2ViQ29yZTo6TWltZUNsYXNzSW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBsdWdpbkluZm8mKTsKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6UGx1Z2luSW5mbyYpOwor
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpQbHVnaW5J
bmZvJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkhU
VFBIZWFkZXJNYXA+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmKTsKIH07
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2U+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlPiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwot
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2UmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkNyZWRlbnRpYWw+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwotICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CisgICAg
c3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkNyZWRlbnRpYWwm
KTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q3Vyc29y
PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OkN1cnNvciYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBX
ZWJDb3JlOjpDdXJzb3ImKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiwgV2ViQ29yZTo6Q3Vyc29yJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD4gewpAQCAtMTU1LDkgKzE1NSw5IEBAIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PiB7CiAj
ZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyKiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAg
IHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGVQbGF0Zm9y
bURhdGEoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAg
c3RhdGljIGJvb2wgZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlPiB7CkBAIC0xNjgsOSArMTY4LDkgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlPiB7CiAj
ZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciosIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlUGxh
dGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiB7CkBAIC0xODEsODEgKzE4MSw4MSBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHsK
ICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyKiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGVQbGF0Zm9ybURhdGEo
QXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHN0YXRpYyBi
b29sIGRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OldpbmRvd0ZlYXR1cmVzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJik7Ci0gICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVz
Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbG9y
PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdl
YkNvcmU6OkNvbG9yJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFdlYkNvcmU6OkNvbG9yJik7CiB9OwogCiAjaWYgUExBVEZPUk0oTUFDKQogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERl
Y29kZXImLCBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQmKTsKIH07CiAjZW5kaWYKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4g
ewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpDb21wb3NpdGlvblVuZGVybGluZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXIqLCBXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZSYpOworICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGlu
ZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb29r
aWU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6Q29va2llJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rlcios
IFdlYkNvcmU6OkNvb2tpZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImLCBXZWJDb3JlOjpDb29raWUmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscyYpOwotICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpEYXRhYmFzZURl
dGFpbHMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29y
ZTo6RGF0YWJhc2VEZXRhaWxzJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkRpY3RhdGlvbkFsdGVybmF0aXZlPiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRpY3RhdGlvbkFsdGVybmF0aXZl
Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OkRp
Y3RhdGlvbkFsdGVybmF0aXZlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OkRpY3RhdGlvbkFsdGVybmF0aXZlJik7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3M+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmls
ZUNob29zZXJTZXR0aW5ncyYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXIqLCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKIH07
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhbW1hckRldGFp
bD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpHcmFtbWFyRGV0YWlsJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciosIFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYpOwogfTsKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHsK
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVzdWx0Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciosIFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCYpOworICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQmKTsKIH07
CiAgICAgCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkRyYWdTZXNz
aW9uPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkRyYWdTZXNzaW9uJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciosIFdlYkNvcmU6OkRyYWdTZXNzaW9uJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkRyYWdTZXNzaW9uJik7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktVUkw+IHsKICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwotICAgIHN0YXRp
YyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpLVVJMJik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OktVUkwmKTsKIH07CiAK
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VXNlclN0eWxlU2hlZXQ+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6VXNlclN0eWxlU2hlZXQmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyKiwgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQmKTsKIH07CiAKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VXNlclNjcmlwdD4gewogICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpVc2VyU2Ny
aXB0Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6
OlVzZXJTY3JpcHQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
V2ViQ29yZTo6VXNlclNjcmlwdCYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKaW5kZXggZGYzZWQ0ZWY0YTk1NjE5YmE0NmUxZWM2MTNj
OGU2Yjk5OTRiZDQyZi4uZjY3ZDEzMGVlM2U1Y2FjOGE2N2IzMjliMTNjZDg1ZWEyZTAwYmYyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCkBAIC01MywxMyArNTMsMTMgQEAgdm9pZCBX
ZWJFdmVudDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICBlbmNvZGVyIDw8IG1fdGltZXN0YW1wOwogfQogCi1ib29sIFdlYkV2ZW50OjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0KQorYm9v
bCBXZWJFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2Vi
RXZlbnQmIHJlc3VsdCkKIHsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV90eXBl
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3R5cGUpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fbW9kaWZpZXJzKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX21vZGlmaWVycykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV90aW1lc3RhbXAp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdGltZXN0YW1wKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQu
aAppbmRleCA4M2U2MjE2MmRjODNiNzY4ZWIxNmE5NmU1YjM4MzA4NmY4YzEzOTZiLi4wODc2ZjZk
Y2E4Zjc2NjViYzg4ZDcwMzUyYTFlODQ2YTQyYmZlZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZl
bnQuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByb3RlY3RlZDoKICAgICBXZWJFdmVudChUeXBlLCBN
b2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOwogCiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIFdlYkV2ZW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYkV2ZW50Jik7CiAKIHByaXZhdGU6CiAgICAgdWlu
dDMyX3QgbV90eXBlOyAvLyBUeXBlCkBAIC0xMzUsNyArMTM1LDcgQEAgcHVibGljOgogICAgIGlu
dDMyX3QgY2xpY2tDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpY2tDb3VudDsgfQogCiAgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYk1vdXNlRXZlbnQmKTsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViTW91
c2VFdmVudCYpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUo
VHlwZSk7CkBAIC0xOTEsNyArMTkxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIGVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViV2hlZWxFdmVudCYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJXaGVlbEV2ZW50
Jik7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNXaGVlbEV2ZW50VHlwZShUeXBlKTsK
QEAgLTIyOSw3ICsyMjksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N5c3RlbUtleSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNTeXN0ZW1LZXk7IH0KIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBXZWJLZXlib2FyZEV2ZW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYktleWJvYXJkRXZlbnQmKTsKIAogICAg
IHN0YXRpYyBib29sIGlzS2V5Ym9hcmRFdmVudFR5cGUoVHlwZSk7CiAKQEAgLTI2MCw3ICsyNjAs
NyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCBkZWx0YSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVsdGE7IH0KIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBXZWJHZXN0dXJlRXZlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViR2VzdHVyZUV2ZW50Jik7CiAKIHByaXZhdGU6CiAg
ICAgc3RhdGljIGJvb2wgaXNHZXN0dXJlRXZlbnRUeXBlKFR5cGUpOwpAQCAtMzA1LDcgKzMwNSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0YXRlKFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSkgeyBt
X3N0YXRlID0gc3RhdGU7IH0KIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViUGxhdGZvcm1Ub3VjaFBvaW50Jik7CiAKIHBy
aXZhdGU6CiAgICAgdWludDMyX3QgbV9pZDsKQEAgLTMyOCw3ICszMjgsNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29u
c3QgeyByZXR1cm4gbV90b3VjaFBvaW50czsgfQogCiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIFdlYlRvdWNoRXZlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViVG91Y2hFdmVudCYpOwogICAKIHByaXZh
dGU6CiAgICAgc3RhdGljIGJvb2wgaXNUb3VjaEV2ZW50VHlwZShUeXBlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAppbmRleCA2NDVlOGMw
YTMyZmMxYmYzYjllN2Y2MjY3ZmEzNDNhZjhiMDE4YjhlLi44NGEwNDkxNjU2Y2U1OGM3MDAzOGVk
ZWViZjg1OGQwNzg1MWE5ZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdl
b2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbjo6RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uCiAgICAgQ29yZUlQQzo6U2ltcGxlQXJndW1lbnRDb2RlcjxXZWJHZW9sb2NhdGlvblBv
c2l0aW9uOjpEYXRhPjo6ZW5jb2RlKGVuY29kZXIsICp0aGlzKTsKIH0KIAotYm9vbCBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBEYXRhJiBkYXRhKQorYm9vbCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEYXRhJiBkYXRhKQogewog
ICAgIHJldHVybiBDb3JlSVBDOjpTaW1wbGVBcmd1bWVudENvZGVyPFdlYkdlb2xvY2F0aW9uUG9z
aXRpb246OkRhdGE+OjpkZWNvZGUoZGVjb2RlciwgZGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCA1MmViZWQ5OTIzYmE3MzZm
NjFmZjg5MWI3MDQ2OTYzYTE0MWQwOTRmLi5mOWUyOGE1Y2M4MGJlMDQ5OWI0MzFmMzFhYjIxNThh
MWQwMjM5YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBv
c2l0aW9uLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogCiAgICAgc3RydWN0IERhdGEgewog
ICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAg
ICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIERhdGEm
KTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYs
IERhdGEmKTsKIAogICAgICAgICBkb3VibGUgdGltZXN0YW1wOwogICAgICAgICBkb3VibGUgbGF0
aXR1ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VzdHVyZUV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZXN0dXJlRXZlbnQuY3BwCmluZGV4IGE5
MDg5ZTJiYjc3ZWU5MzE3ZGI5YWYxNjk4NTNjNTdmNDMxNmRkYmIuLjEzOGM4ZjE3Y2JlMTkyZjAw
NTQyMjFmNTY4OGU5YjNkYjA5OTJlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJHZXN0dXJlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZXN0
dXJlRXZlbnQuY3BwCkBAIC02MywxNyArNjMsMTcgQEAgdm9pZCBXZWJHZXN0dXJlRXZlbnQ6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBtX2RlbHRhOwogfQogCi1ib29sIFdlYkdlc3R1cmVFdmVudDo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViR2VzdHVyZUV2ZW50JiB0KQorYm9vbCBXZWJH
ZXN0dXJlRXZlbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdl
Ykdlc3R1cmVFdmVudCYgdCkKIHsKICAgICBpZiAoIVdlYkV2ZW50OjpkZWNvZGUoZGVjb2Rlciwg
dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0Lm1f
cG9zaXRpb24pKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUodC5tX3Bvc2l0aW9uKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHQubV9nbG9iYWxQb3Np
dGlvbikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0Lm1fZ2xvYmFsUG9zaXRpb24pKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodC5tX2FyZWEpKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodC5tX2FyZWEpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodC5tX2RlbHRhKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHQubV9kZWx0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcAppbmRleCAx
YmNmOTUxNjk3MjdhNjY3ZWI4ZjEyNzM0YTVmNDg2OWM3MjA3NjQ5Li4xYzYxYzM4ZDMzNmY2ZTQz
NmI5MzI5NGJhYTQ4MmM1NjBjZDgwNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhp
dFRlc3RSZXN1bHQuY3BwCkBAIC00NywxNyArNDcsMTcgQEAgdm9pZCBXZWJIaXRUZXN0UmVzdWx0
OjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgaXNTY3JvbGxiYXI7CiB9CiAKLWJvb2wgV2ViSGl0VGVzdFJlc3VsdDo6
RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViSGl0VGVz
dFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEpCitib29sIFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYkhpdFRl
c3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhKQogewotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmFic29sdXRlSW1hZ2VVUkwpCi0gICAgICAgIHx8ICFk
ZWNvZGVyLT5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEuYWJzb2x1dGVQREZVUkwpCi0gICAgICAg
IHx8ICFkZWNvZGVyLT5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEuYWJzb2x1dGVMaW5rVVJMKQot
ICAgICAgICB8fCAhZGVjb2Rlci0+ZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmFic29sdXRlTWVk
aWFVUkwpCi0gICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEubGlu
a0xhYmVsKQotICAgICAgICB8fCAhZGVjb2Rlci0+ZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmxp
bmtUaXRsZSkKLSAgICAgICAgfHwgIWRlY29kZXItPmRlY29kZShoaXRUZXN0UmVzdWx0RGF0YS5p
c0NvbnRlbnRFZGl0YWJsZSkKLSAgICAgICAgfHwgIWRlY29kZXItPmRlY29kZShoaXRUZXN0UmVz
dWx0RGF0YS5lbGVtZW50Qm91bmRpbmdCb3gpCi0gICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUo
aGl0VGVzdFJlc3VsdERhdGEuaXNTY3JvbGxiYXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aGl0VGVzdFJlc3VsdERhdGEuYWJzb2x1dGVJbWFnZVVSTCkKKyAgICAgICAgfHwgIWRlY29kZXIu
ZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmFic29sdXRlUERGVVJMKQorICAgICAgICB8fCAhZGVj
b2Rlci5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEuYWJzb2x1dGVMaW5rVVJMKQorICAgICAgICB8
fCAhZGVjb2Rlci5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEuYWJzb2x1dGVNZWRpYVVSTCkKKyAg
ICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmxpbmtMYWJlbCkKKyAg
ICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmxpbmtUaXRsZSkKKyAg
ICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmlzQ29udGVudEVkaXRh
YmxlKQorICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEuZWxlbWVu
dEJvdW5kaW5nQm94KQorICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0VGVzdFJlc3VsdERh
dGEuaXNTY3JvbGxiYXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5oCmluZGV4IDdlNmUwYTk1
OTlhYjVjNjJmMDc4NWRkOTMzMmUwODk3NzUwN2M3NjUuLjhmMmFjYTc1Y2Y2ZWU2NDE0YzBhMzZj
NjQ3YTMxZjAyNzNhN2JiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJI
aXRUZXN0UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1
bHQuaApAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgICAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGEmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciYsIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmKTsKICAgICB9OwogCiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViSGl0VGVzdFJlc3VsdD4gY3JlYXRlKGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLZXlib2FyZEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAppbmRl
eCAwMjA1NmZmNTg4NmUwZGViZDM2MjMxZjFlMGYyYTI3OTgxYWRhZjE5Li41M2FiMTZiOGNhNTdl
MDRjZDUyZDY3ZTJkMWViYThiYmI1YTRiYjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YktleWJvYXJkRXZlbnQuY3BwCkBAIC02MCwyOCArNjAsMjggQEAgdm9pZCBXZWJLZXlib2FyZEV2
ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgbV9pc1N5c3RlbUtleTsKIH0KIAotYm9vbCBXZWJLZXlib2FyZEV2ZW50Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJLZXlib2FyZEV2ZW50
JiByZXN1bHQpCitib29sIFdlYktleWJvYXJkRXZlbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFdlYktleWJvYXJkRXZlbnQmIHJlc3VsdCkKIHsKICAgICBpZiAo
IVdlYkV2ZW50OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fdGV4dCkpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQubV90ZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3VubW9kaWZpZWRUZXh0KSkKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3VubW9kaWZpZWRUZXh0KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2tleUlkZW50aWZpZXIp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fa2V5SWRlbnRpZmllcikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV93aW5k
b3dzVmlydHVhbEtleUNvZGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHJlc3VsdC5tX25hdGl2ZVZpcnR1YWxLZXlDb2RlKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tX25hdGl2ZVZpcnR1YWxLZXlDb2RlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX21hY0NoYXJDb2Rl
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX21hY0NoYXJDb2RlKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2lzQXV0
b1JlcGVhdCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9pc0F1dG9SZXBlYXQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0
Lm1faXNLZXlwYWQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faXNLZXlwYWQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0
Lm1faXNTeXN0ZW1LZXkpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faXNTeXN0
ZW1LZXkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAppbmRleCAwNDkzNzRiNWRmMmY4MjI2Y2Y2
NWU0MzEwMmQ4MjBlYmQ4Y2IyOGQ3Li5mMjU5ZDcxMzY5MGI1MTE1NjI0Nzc3ZWE4ZGZiYzk4NDA0
NTkzYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCkBAIC02OSwy
NCArNjksMjQgQEAgdm9pZCBXZWJNb3VzZUV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9jbGlja0NvdW50OwogfQog
Ci1ib29sIFdlYk1vdXNlRXZlbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRl
Y29kZXIsIFdlYk1vdXNlRXZlbnQmIHJlc3VsdCkKK2Jvb2wgV2ViTW91c2VFdmVudDo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViTW91c2VFdmVudCYgcmVzdWx0
KQogewogICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9idXR0
b24pKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fYnV0dG9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3Bvc2l0aW9u
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Bvc2l0aW9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2dsb2JhbFBv
c2l0aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2dsb2JhbFBvc2l0aW9u
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3Vs
dC5tX2RlbHRhWCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9kZWx0YVgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1f
ZGVsdGFZKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2RlbHRhWSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9kZWx0
YVopKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fZGVsdGFaKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2NsaWNrQ291
bnQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fY2xpY2tDb3VudCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgKaW5kZXggZjUyMWE1ODJjYjA1ZDQ2NmVl
NzU5ZmM4YThmNjIwM2RmZTgxMTRmNS4uY2E5YWE5ZDBkMGE2MTM2NTQ5N2I0ZmM0NmMzZTNhZWY5
M2Y3MjUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25E
YXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmF2aWdhdGlvbkRhdGFT
dG9yZS5oCkBAIC00MiwxMyArNDIsMTMgQEAgc3RydWN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUg
ewogICAgICAgICBlbmNvZGVyIDw8IG9yaWdpbmFsUmVxdWVzdDsKICAgICB9CiAKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiBzdG9yZSkKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSkK
ICAgICB7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN0b3JlLnVybCkpCisgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc3RvcmUudXJsKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc3RvcmUudGl0bGUpKQorICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHN0b3JlLnRpdGxlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc3RvcmUub3JpZ2luYWxSZXF1ZXN0KSkK
KyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdG9yZS5vcmlnaW5hbFJlcXVlc3QpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAK
aW5kZXggZTkyNWRiMzQxYWJjMDRhZGIyNTU4MDE5MzA2MTA4NTIyZmVlMzg3Yy4uYTZmMmQwMTcw
OTBlNWUxZWJhODM4MzZjMWYyYTAyMTlkZWZlYjg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjYsNjUgKzY2LDY1
IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRpZgogfQogCi1ib29sIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitib29sIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgaWYgKCFkZWNv
ZGVyLT5kZWNvZGUocGFyYW1ldGVycy52aWV3U2l6ZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLnZpZXdTaXplKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuaXNBY3RpdmUpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5pc0FjdGl2ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmlzRm9jdXNlZCkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzRm9jdXNlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmlzVmlzaWJsZSkpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzVmlzaWJsZSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmlzSW5XaW5kb3cpKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pc0luV2luZG93KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuc3RvcmUp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zdG9yZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0ocGFyYW1ldGVycy5kcmF3
aW5nQXJlYVR5cGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHBhcmFtZXRlcnMuZHJh
d2luZ0FyZWFUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHBhcmFtZXRlcnMucGFnZUdyb3VwRGF0YSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLnBhZ2VHcm91cERhdGEpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5kcmF3c0JhY2tncm91bmQpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kcmF3c0JhY2tncm91bmQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5kcmF3c1Ry
YW5zcGFyZW50QmFja2dyb3VuZCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxs
c0VuYWJsZWQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hcmVNZW1vcnlD
YWNoZUNsaWVudENhbGxzRW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVzZUZpeGVkTGF5b3V0KSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudXNlRml4ZWRMYXlvdXQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5maXhlZExheW91dFNp
emUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5maXhlZExheW91dFNpemUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHBh
cmFtZXRlcnMucGFnaW5hdGlvbk1vZGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHBh
cmFtZXRlcnMucGFnaW5hdGlvbk1vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5wYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5z
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMucGFnaW5hdGlvbkJlaGF2ZXNM
aWtlQ29sdW1ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShwYXJhbWV0ZXJzLnBhZ2VMZW5ndGgpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5wYWdlTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZ2FwQmV0d2VlblBhZ2VzKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuZ2FwQmV0d2VlblBhZ2VzKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMudXNlckFnZW50KSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudXNlckFnZW50KSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuc2Vzc2lvblN0
YXRlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2Vzc2lvblN0YXRlKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRl
cnMuaGlnaGVzdFVzZWRCYWNrRm9yd2FyZEl0ZW1JRCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmhpZ2hlc3RVc2VkQmFja0ZvcndhcmRJdGVtSUQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5jYW5SdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5jYW5SdW5Nb2RhbCkpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZGV2aWNlU2Nh
bGVGYWN0b3IpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kZXZpY2VTY2Fs
ZUZhY3RvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShwYXJhbWV0ZXJzLm1lZGlhVm9sdW1lKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMubWVkaWFWb2x1bWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNv
ZGVyLT5kZWNvZGUocGFyYW1ldGVycy5tYXlTdGFydE1lZGlhV2hlbkluV2luZG93KSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdykp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaXNTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVt
KHBhcmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0ocGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuY29sb3JTcGFjZSkpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvbG9yU3BhY2UpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNTgwM2NkMGMxZTcwYTBiNmIzYjNhYTQyNWJhNDlkYWJi
OTJiYmJmMy4uOTA2YWViZTczZjc1NWVhZmUxZmM1NmU5MWUyYjMwZTdlZDk1MjkxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyB7CiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciosIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwog
CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlBhZ2VHcm91cERhdGEuY3BwCmluZGV4IDg3MWI0ZDFkODNlMjA2OGZjYjMwODI4ZDVlZDI5
MDYyZDc1MDBiYjUuLjNiNWVmMmE1OGM0MjEzNmNlYjZmYWU3NzgwZTgzNzg0NjVmMzI3OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAKQEAgLTQwLDE5ICs0
MCwxOSBAQCB2b2lkIFdlYlBhZ2VHcm91cERhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1c2VyU2NyaXB0czsKIH0KIAot
Ym9vbCBXZWJQYWdlR3JvdXBEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBXZWJQYWdlR3JvdXBEYXRhJiBkYXRhKQorYm9vbCBXZWJQYWdlR3JvdXBEYXRhOjpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQYWdlR3JvdXBEYXRh
JiBkYXRhKQogewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGRhdGEuaWRlbnRpZmVyKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuaWRlbnRpZmVyKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGRhdGEucGFnZUdyb3VwSUQpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoZGF0YS5wYWdlR3JvdXBJRCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShkYXRhLnZpc2libGVUb0luamVjdGVkQnVuZGxl
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEudmlzaWJsZVRvSW5qZWN0ZWRCdW5kbGUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YS52
aXNpYmxlVG9IaXN0b3J5Q2xpZW50KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEudmlz
aWJsZVRvSGlzdG9yeUNsaWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShkYXRhLnVzZXJTdHlsZVNoZWV0cykpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShkYXRhLnVzZXJTdHlsZVNoZWV0cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShkYXRhLnVzZXJTY3JpcHRzKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGRhdGEudXNlclNjcmlwdHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0
dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdy
b3VwRGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuaAppbmRl
eCA0ZGJmZDJjMzE2NGU3MGJjNmYwYjY1NmRkYjczNDg1MGY3YWRiMjQ3Li4zN2UzZTYxN2Q2ZWE0
NDg5MGRiYmE5ZGM5MGU0ZDlmY2I5ZTVmODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
YWdlR3JvdXBEYXRhLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0
cnVjdCBXZWJQYWdlR3JvdXBEYXRhIHsKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgV2ViUGFnZUdyb3VwRGF0YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJQYWdlR3JvdXBEYXRhJik7CiAKICAgICBTdHJp
bmcgaWRlbnRpZmVyOwogICAgIHVpbnQ2NF90IHBhZ2VHcm91cElEOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcAppbmRleCBiYWU4ZDY1YjAwNjU5
Yzk1OGNiYTM5NGJhMzE4OTAwNGU5YTY5ZjZiLi5mMTUyMDEzODNjMmE5ZTZjZWU5ZTRkNGIyNTIy
NDlhMWZkMzVkNWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGxhdGZv
cm1Ub3VjaFBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGxhdGZvcm1U
b3VjaFBvaW50LmNwcApAQCAtNjgsMjEgKzY4LDIxIEBAIHZvaWQgV2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgbV9mb3JjZTsKIH0KIAotYm9vbCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYlBsYXRmb3JtVG91Y2hQ
b2ludCYgcmVzdWx0KQorYm9vbCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYgcmVzdWx0
KQogewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2lkKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tX2lkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3N0YXRlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3N0YXRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3NjcmVlblBvc2l0aW9uKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5tX3NjcmVlblBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3Bvc2l0aW9uKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tX3Bvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3JhZGl1cykpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQubV9yYWRpdXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fcm90YXRpb25BbmdsZSkpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQubV9yb3RhdGlvbkFuZ2xlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2ZvcmNlKSkKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2ZvcmNlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UG9wdXBJdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCmlu
ZGV4IGJiZTQ4ZmJiNzI5MDg5NWE4MjYzNjJhOGY0MjQxMWJmMDk3NmY4YWYuLjg5NzExYWI3ZTY3
ZmZiN2JkNGYzODVmMWY3ZWY1NDZkYzU1NzYyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
b3B1cEl0ZW0uY3BwCkBAIC03OSw0MiArNzksNDIgQEAgdm9pZCBXZWJQb3B1cEl0ZW06OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8
PCBtX2lzU2VsZWN0ZWQ7CiB9CiAKLWJvb2wgV2ViUG9wdXBJdGVtOjpkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJQb3B1cEl0ZW0mIGl0ZW0pCitib29sIFdlYlBv
cHVwSXRlbTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUG9w
dXBJdGVtJiBpdGVtKQogewogICAgIFR5cGUgdHlwZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZUVudW0odHlwZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlwZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIFN0cmluZyB0ZXh0OwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHRleHQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGV4dCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKICAgICBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb247Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGVFbnVtKHRleHREaXJlY3Rpb24pKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKHRleHREaXJlY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBi
b29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSho
YXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzVGV4
dERpcmVjdGlvbk92ZXJyaWRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgU3RyaW5n
IHRvb2xUaXA7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodG9vbFRpcCkpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh0b29sVGlwKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgU3Ry
aW5nIGFjY2Vzc2liaWxpdHlUZXh0OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGFjY2Vzc2li
aWxpdHlUZXh0KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFjY2Vzc2liaWxpdHlUZXh0KSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBpc0VuYWJsZWQ7Ci0gICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoaXNFbmFibGVkKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzRW5h
YmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgaXNMYWJlbDsKLSAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShpc0xhYmVsKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlz
TGFiZWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIGlzU2VsZWN0ZWQ7Ci0g
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaXNTZWxlY3RlZCkpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpc1NlbGVjdGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaXRlbSA9IFdl
YlBvcHVwSXRlbSh0eXBlLCB0ZXh0LCB0ZXh0RGlyZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3Zl
cnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlUZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwsIGlz
U2VsZWN0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRl
bS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCmluZGV4IDZmOGVjYjEw
MTZhNzBmMmZmYzg0NWM1NzFmODEwMjZmMjk3M2Q2NWIuLjg4NGVlOWVmMmVjMjYzZWJkZjA5NDRi
NGNlZTUyZDY5NjExNTgyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
b3B1cEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgc3RydWN0IFdlYlBvcHVwSXRlbSB7CiAgICAgV2ViUG9wdXBJdGVtKFR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgYm9vbCBoYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5n
JiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBp
c1NlbGVjdGVkKTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBXZWJQb3B1cEl0ZW0mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJiwgV2ViUG9wdXBJdGVtJik7CiAKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJp
bmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUu
Y3BwCmluZGV4IGU3M2MwZjY3OWRiNTY2MjdlMDkxYWMxNWNlNGE2MmZlYTMyODM3N2IuLmQwNTBl
NTcxNzliMjg4NWViYTcxNzA0MGE1MWE0MjU4YWExNjRjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKQEAgLTY4LDE3ICs2OCwxNyBAQCB2b2lk
IFdlYlByZWZlcmVuY2VzU3RvcmU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX2Zsb2F0VmFsdWVzOwogfQogCi1ib29sIFdl
YlByZWZlcmVuY2VzU3RvcmU6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29k
ZXIsIFdlYlByZWZlcmVuY2VzU3RvcmUmIHJlc3VsdCkKK2Jvb2wgV2ViUHJlZmVyZW5jZXNTdG9y
ZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYgcmVzdWx0KQogewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3N0
cmluZ1ZhbHVlcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9zdHJpbmdWYWx1
ZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVz
dWx0Lm1fYm9vbFZhbHVlcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9ib29s
VmFsdWVzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KHJlc3VsdC5tX3VpbnQzMlZhbHVlcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
bV91aW50MzJWYWx1ZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUocmVzdWx0Lm1fZG91YmxlVmFsdWVzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5tX2RvdWJsZVZhbHVlcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZXItPmRlY29kZShyZXN1bHQubV9mbG9hdFZhbHVlcykpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubV9mbG9hdFZhbHVlcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNT
dG9yZS5oCmluZGV4IGEwM2U4ODk0Mzc1MDE0ODI0NzU0MmY5Mzc3ZmE2ODRkODEwOGVmN2IuLjhm
NGU1NmFkNzhjNzZkY2NmZDI3NjNkMTMxYjRiOTU4YjJiZWE0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAtMjE4LDcgKzIxOCw3IEBAIHN0cnVj
dCBXZWJQcmVmZXJlbmNlc1N0b3JlIHsKICAgICBXZWJQcmVmZXJlbmNlc1N0b3JlKCk7CiAKICAg
ICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViUHJlZmVyZW5jZXNT
dG9yZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIm
LCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CiAKICAgICAvLyBOT1RFOiBUaGUgZ2V0dGVycyBpbiB0
aGlzIGNsYXNzIGhhdmUgbm9uLXN0YW5kYXJkIG5hbWVzIHRvIGFpZCBpbiB0aGUgdXNlIG9mIHRo
ZSBwcmVmZXJlbmNlIG1hY3Jvcy4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGRjMTI3ZWY0Nzk2MDFhNjBh
OGU3NjYxZDJkMjJiY2IyODNmZjNmNDIuLjgzNTQzYzFkMGRjOGM1YmEwODdkNmJhZTk0YzQxNGM3
MTFmZDU5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTExMywxMTcgKzExMywxMTcgQEAgdm9pZCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb24KICAgICBlbmNvZGVyIDw8IHBsdWdJbkF1dG9TdGFydE9yaWdpbnM7CiB9
CiAKLWJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKK2Jvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYgcGFyYW1ldGVycykKIHsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmlu
amVjdGVkQnVuZGxlUGF0aCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlu
amVjdGVkQnVuZGxlUGF0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29k
ZXItPmRlY29kZShwYXJhbWV0ZXJzLmluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSkp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmluamVjdGVkQnVuZGxlUGF0aEV4
dGVuc2lvbkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMu
YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cGFyYW1ldGVycy5kYXRhYmFzZURpcmVjdG9yeSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLmRhdGFiYXNlRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kYXRhYmFzZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSkpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJz
LmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0
ZXJzLmRpc2tDYWNoZURpcmVjdG9yeSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLmRpc2tDYWNoZURpcmVjdG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMu
Y29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1l
dGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlcmRBc0VtcHR5RG9jdW1lbnQpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlcmRBc0VtcHR5RG9jdW1l
bnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFy
YW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzU2VjdXJlKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc1NlY3VyZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVybFNj
aGVtZXNGb3JXaGljaERvbWFpblJlbGF4YXRpb25Jc0ZvcmJpZGRlbikpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNGb3JXaGljaERvbWFpblJlbGF4YXRpb25J
c0ZvcmJpZGRlbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2NhbCkpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2NhbCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJz
LnVybFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2VzcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2VzcykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVt
ZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRGlzcGxheUlzb2xhdGVkKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMudXJs
U2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90
b2NvbHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVn
aXN0ZXJlZEZvckN1c3RvbVByb3RvY29scykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRp
ZgogI2lmIFVTRShTT1VQKQotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMudXJs
U2NoZW1lc1JlZ2lzdGVyZWQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51
cmxTY2hlbWVzUmVnaXN0ZXJlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCkpCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
UGF0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShw
YXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0ocGFyYW1ldGVycy5j
b29raWVBY2NlcHRQb2xpY3kpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHBhcmFtZXRl
cnMuY29va2llQWNjZXB0UG9saWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogI2VuZGlmCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHBhcmFtZXRlcnMu
Y2FjaGVNb2RlbCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1ldGVycy5jYWNo
ZU1vZGVsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KHBhcmFtZXRlcnMuc2hvdWxkVHJhY2tWaXNpdGVkTGlua3MpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5zaG91bGRUcmFja1Zpc2l0ZWRMaW5rcykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZEFsd2F5
c1VzZUNvbXBsZXhUZXh0Q29kZVBhdGgpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5zaG91bGRBbHdheXNVc2VDb21wbGV4VGV4dENvZGVQYXRoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkVXNlRm9u
dFNtb290aGluZykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZFVz
ZUZvbnRTbW9vdGhpbmcpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUocGFyYW1ldGVycy5pY29uRGF0YWJhc2VFbmFibGVkKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuaWNvbkRhdGFiYXNlRW5hYmxlZCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnRlcm1pbmF0aW9u
VGltZW91dCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnRlcm1pbmF0aW9u
VGltZW91dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShwYXJhbWV0ZXJzLmxhbmd1YWdlcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLmxhbmd1YWdlcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShwYXJhbWV0ZXJzLnRleHRDaGVja2VyU3RhdGUpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy50ZXh0Q2hlY2tlclN0YXRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZnVsbEtleWJvYXJkQWNjZXNz
RW5hYmxlZCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmZ1bGxLZXlib2Fy
ZEFjY2Vzc0VuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCkpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVy
dmFsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENG
TkVUV09SSykKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1
bmRsZUlkZW50aWZpZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVBy
b2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5w
cmVzZW50ZXJBcHBsaWNhdGlvblBpZCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLnByZXNlbnRlckFwcGxpY2F0aW9uUGlkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMubnNVUkxDYWNoZU1lbW9yeUNhcGFjaXR5
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubnNVUkxDYWNoZU1lbW9yeUNh
cGFjaXR5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KHBhcmFtZXRlcnMubnNVUkxDYWNoZURpc2tDYXBhY2l0eSkpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVEaXNrQ2FwYWNpdHkpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5hY2NlbGVyYXRlZENv
bXBvc2l0aW5nUG9ydCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdQb3J0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3Vy
Y2VQYXRoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3Vy
Y2VQYXRoRXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0
aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkRm9yY2VTY3Jl
ZW5Gb250U3Vic3RpdHV0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5
RGVmYXVsdCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZEVuYWJs
ZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1bHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElG
SUNBVElPTlMpCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5ub3RpZmljYXRp
b25QZXJtaXNzaW9ucykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm5vdGlm
aWNhdGlvblBlcm1pc3Npb25zKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFt
ZXRlcnMudXNlc05ldHdvcmtQcm9jZXNzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMudXNlc05ldHdvcmtQcm9jZXNzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlm
CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnBsdWdJbkF1dG9TdGFydE9y
aWdpbnMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5wbHVnSW5BdXRvU3Rh
cnRPcmlnaW5zKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAppbmRleCBjZjBlYzMzNmI0NDVhYWI5OTcxNDg5NTExZjQxYjk3Y2E4MzFmY2FjLi4zZGJj
NTIzMjFlYjEzNmVmYWZkNzk5NmExMDIyZGNjYjYxMmI5ZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTUzLDcg
KzUzLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmKTsKIAogICAgIFN0cmluZyBpbmplY3RlZEJ1bmRsZVBhdGg7CiAgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCAxZjdlOWY3ZTVi
N2E5YmUxYjU1ZGIzMTE4YTFhY2IzYjg2MTJjNzA1Li4wNWI1ZmU1MzdiNDc5MjFjZTA4MGI0ODEw
YmI3NmZkM2NjODYzMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVG91
Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3Bw
CkBAIC00NywxMiArNDcsMTIgQEAgdm9pZCBXZWJUb3VjaEV2ZW50OjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV90b3VjaFBv
aW50czsKIH0KIAotYm9vbCBXZWJUb3VjaEV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBXZWJUb3VjaEV2ZW50JiByZXN1bHQpCitib29sIFdlYlRvdWNoRXZl
bnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlRvdWNoRXZl
bnQmIHJlc3VsdCkKIHsKICAgICBpZiAoIVdlYkV2ZW50OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVz
dWx0Lm1fdG91Y2hQb2ludHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdG91
Y2hQb2ludHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAzYmQxOWY0ZWE5MjM2NGJk
MmZjYjQ2MjIwYmIxYmUzNzczMjcyNTM3Li4wY2Q3MjE2ODU2MTljMGMzM2YxODI2M2E3MzQ5N2Qy
OWY5ODZmZmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCkBAIC04
OCwzMiArODgsMzIgQEAgdm9pZCBXZWJXaGVlbEV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgV2ViV2hlZWxFdmVu
dDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViV2hlZWxFdmVu
dCYgdCkKK2Jvb2wgV2ViV2hlZWxFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgV2ViV2hlZWxFdmVudCYgdCkKIHsKICAgICBpZiAoIVdlYkV2ZW50OjpkZWNv
ZGUoZGVjb2RlciwgdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZSh0Lm1fcG9zaXRpb24pKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUodC5tX3Bvc2l0
aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHQu
bV9nbG9iYWxQb3NpdGlvbikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0Lm1fZ2xvYmFsUG9z
aXRpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
dC5tX2RlbHRhKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHQubV9kZWx0YSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0Lm1fd2hlZWxUaWNrcykp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0Lm1fd2hlZWxUaWNrcykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0Lm1fZ3JhbnVsYXJpdHkpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodC5tX2dyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHQubV9kaXJlY3Rpb25JbnZlcnRlZEZyb21E
ZXZpY2UpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUodC5tX2RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBQTEFURk9STShNQUMpCi0gICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUodC5tX3BoYXNlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHQubV9waGFzZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh0Lm1fbW9tZW50dW1QaGFzZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0Lm1fbW9t
ZW50dW1QaGFzZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh0Lm1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcykpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZSh0Lm1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0Lm1fc2Nyb2xsQ291bnQpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUodC5tX3Njcm9sbENvdW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHQubV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUodC5tX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0
YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCmluZGV4IDg3NjFl
ZGE0Y2FmOTZiNTVmNTI4MDFlNDExOGI3N2E5ZjdlODY0ZTQuLjU3M2QyZGQ2MDRhYmQ0NTdkYWUz
N2JkZTdkMDhkYjA5YjUxMzZkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9j
Zi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJn
dW1lbnRDb2RlcnNDRi5jcHAKQEAgLTE0NywxMCArMTQ3LDEwIEBAIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgQ0ZUeXBlUmVmIHR5cGVSZWYpCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0
YWluUHRyPENGVHlwZVJlZj4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgUmV0YWluUHRyPENGVHlwZVJlZj4mIHJlc3VsdCkKIHsKICAgICBDRlR5cGUgdHlw
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0odHlwZSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUVudW0odHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAo
dHlwZSkgewpAQCAtMjU2LDEwICsyNTYsMTAgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLCBDRkFycmF5UmVmIGFycmF5KQogICAgIH0KIH0KIAotYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4mIHJlc3VsdCkKK2Jv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGQXJyYXlSZWY+
JiByZXN1bHQpCiB7CiAgICAgdWludDY0X3Qgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShzaXplKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlQXJyYXlSZWY+IGFycmF5KEFkb3B0Q0Ys
IENGQXJyYXlDcmVhdGVNdXRhYmxlKDAsIDAsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKQEAg
LTI4MSwxMCArMjgxLDEwIEBAIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Q0ZCb29sZWFuUmVmIGJvb2xlYW4pCiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihD
RkJvb2xlYW5HZXRWYWx1ZShib29sZWFuKSk7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgUmV0YWluUHRyPENGQm9vbGVhblJlZj4mIHJlc3VsdCkKK2Jvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGQm9vbGVhblJlZj4mIHJl
c3VsdCkKIHsKICAgICBib29sIGJvb2xlYW47Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoYm9v
bGVhbikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShib29sZWFuKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgcmVzdWx0LmFkb3B0Q0YoYm9vbGVhbiA/IGtDRkJvb2xlYW5UcnVlIDog
a0NGQm9vbGVhbkZhbHNlKTsKQEAgLTI5OSwxMCArMjk5LDEwIEBAIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgQ0ZEYXRhUmVmIGRhdGEpCiAgICAgZW5jb2RlciA8PCBDb3Jl
SVBDOjpEYXRhUmVmZXJlbmNlKGJ5dGVQdHIsIGxlbmd0aCk7CiB9CiAKLWJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWluUHRyPENGRGF0YVJlZj4mIHJlc3VsdCkKK2Jv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGRGF0YVJlZj4m
IHJlc3VsdCkKIHsKICAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7Ci0g
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShkYXRhUmVmZXJlbmNlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmVz
dWx0LmFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKDAsIGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVm
ZXJlbmNlLnNpemUoKSkpOwpAQCAtMzE0LDEwICszMTQsMTAgQEAgdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBDRkRhdGVSZWYgZGF0ZSkKICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PGRvdWJsZT4oQ0ZEYXRlR2V0QWJzb2x1dGVUaW1lKGRhdGUpKTsKIH0KIAotYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZEYXRlUmVmPiYgcmVz
dWx0KQorYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZE
YXRlUmVmPiYgcmVzdWx0KQogewogICAgIGRvdWJsZSBhYnNvbHV0ZVRpbWU7Ci0gICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoYWJzb2x1dGVUaW1lKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFi
c29sdXRlVGltZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJlc3VsdC5hZG9wdENG
KENGRGF0ZUNyZWF0ZSgwLCBhYnNvbHV0ZVRpbWUpKTsKQEAgLTM0OCwxMCArMzQ4LDEwIEBAIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQ0ZEaWN0aW9uYXJ5UmVmIGRpY3Rp
b25hcnkpCiAgICAgfQogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+JiByZXN1bHQpCitib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+JiByZXN1bHQpCiB7
CiAgICAgdWludDY0X3Qgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShzaXplKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4gZGljdGlvbmFyeShBZG9wdENGLCBD
RkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKDAsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxC
YWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKQEAgLTQzMiwxNCArNDMy
LDE0IEBAIHN0YXRpYyBzaXplX3Qgc2l6ZUZvck51bWJlclR5cGUoQ0ZOdW1iZXJUeXBlIG51bWJl
clR5cGUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlciwgUmV0YWluUHRyPENGTnVtYmVyUmVmPiYgcmVzdWx0KQorYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+JiByZXN1bHQpCiB7
CiAgICAgQ0ZOdW1iZXJUeXBlIG51bWJlclR5cGU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVF
bnVtKG51bWJlclR5cGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKG51bWJlclR5cGUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGFSZWZlcmVuY2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhUmVmZXJlbmNlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgc2l6ZV90IG5lZWRlZEJ1ZmZlclNpemUgPSBzaXplRm9yTnVtYmVyVHlwZShu
dW1iZXJUeXBlKTsKQEAgLTQ3MiwxNyArNDcyLDE3IEBAIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlciwgQ0ZTdHJpbmdSZWYgc3RyaW5nKQogICAgIGVuY29kZXIgPDwgQ29yZUlQ
Qzo6RGF0YVJlZmVyZW5jZShidWZmZXIpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIFJldGFpblB0cjxDRlN0cmluZ1JlZj4mIHJlc3VsdCkKK2Jvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGU3RyaW5nUmVmPiYgcmVzdWx0
KQogewogICAgIENGU3RyaW5nRW5jb2RpbmcgZW5jb2Rpbmc7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGVFbnVtKGVuY29kaW5nKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShlbmNvZGlu
ZykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghQ0ZTdHJpbmdJc0VuY29kaW5n
QXZhaWxhYmxlKGVuY29kaW5nKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIENv
cmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShkYXRhUmVmZXJlbmNlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFSZWZlcmVu
Y2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDRlN0cmluZ1JlZiBzdHJpbmcgPSBD
RlN0cmluZ0NyZWF0ZVdpdGhCeXRlcygwLCBkYXRhUmVmZXJlbmNlLmRhdGEoKSwgZGF0YVJlZmVy
ZW5jZS5zaXplKCksIGVuY29kaW5nLCBmYWxzZSk7CkBAIC01MDMsMTEgKzUwMywxMSBAQCB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIENGVVJMUmVmIHVybCkKICAgICBlbmNv
ZGUoZW5jb2RlciwgQ0ZVUkxHZXRTdHJpbmcodXJsKSk7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWluUHRyPENGVVJMUmVmPiYgcmVzdWx0KQorYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZVUkxSZWY+JiByZXN1
bHQpCiB7CiAgICAgUmV0YWluUHRyPENGVVJMUmVmPiBiYXNlVVJMOwogICAgIGJvb2wgaGFzQmFz
ZVVSTDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShoYXNCYXNlVVJMKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGhhc0Jhc2VVUkwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KGhhc0Jhc2VVUkwpIHsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgYmFzZVVSTCkpCkBA
IC01NDMsNyArNTQzLDcgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBT
ZWNDZXJ0aWZpY2F0ZVJlZiBjZXJ0aWZpY2F0ZSkKICAgICBlbmNvZGUoZW5jb2RlciwgZGF0YS5n
ZXQoKSk7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWlu
UHRyPFNlY0NlcnRpZmljYXRlUmVmPiYgcmVzdWx0KQorYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+JiByZXN1bHQpCiB7CiAg
ICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBk
YXRhKSkKQEAgLTU2Miw3ICs1NjIsNyBAQCB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIFNlY0tleWNoYWluSXRlbVJlZiBrZXljaGFpbkl0ZW0pCiAgICAgfQogfQogCi1ib29s
IGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJldGFpblB0cjxTZWNLZXljaGFpbkl0
ZW1SZWY+JiByZXN1bHQpCitib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJl
dGFpblB0cjxTZWNLZXljaGFpbkl0ZW1SZWY+JiByZXN1bHQpCiB7CiAgICAgUmV0YWluUHRyPENG
RGF0YVJlZj4gZGF0YTsKICAgICBpZiAoIUNvcmVJUEM6OmRlY29kZShkZWNvZGVyLCBkYXRhKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5oCmluZGV4IDUxNGZh
ODZiZmNhODg1NWI2NGM4OTkxZTJiODBiY2U5ZTgyN2Q2MmIuLjVmYjAzNGVlZWE3MDBjMjMxZmFm
ZTQzYTczZDFmN2QyZmU2YjMyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9j
Zi9Bcmd1bWVudENvZGVyc0NGLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3Vt
ZW50Q29kZXJzQ0YuaApAQCAtNDAsNDggKzQwLDQ4IEBAIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
IAogLy8gQ0ZBcnJheVJlZgogdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgQ0ZBcnJheVJl
Zik7Ci1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4m
IHJlc3VsdCk7Citib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5QdHI8Q0ZBcnJh
eVJlZj4mIHJlc3VsdCk7CiAKIC8vIENGQm9vbGVhblJlZgogdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiwgQ0ZCb29sZWFuUmVmKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFJl
dGFpblB0cjxDRkJvb2xlYW5SZWY+JiByZXN1bHQpOworYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgUmV0YWluUHRyPENGQm9vbGVhblJlZj4mIHJlc3VsdCk7CiAKIC8vIENGRGF0YVJlZgog
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgQ0ZEYXRhUmVmKTsKLWJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciosIFJldGFpblB0cjxDRkRhdGFSZWY+JiByZXN1bHQpOworYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPENGRGF0YVJlZj4mIHJlc3VsdCk7CiAKIC8v
IENGRGF0ZVJlZgogdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgQ0ZEYXRlUmVmKTsKLWJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFJldGFpblB0cjxDRkRhdGVSZWY+JiByZXN1bHQp
OworYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPENGRGF0ZVJlZj4mIHJl
c3VsdCk7CiAKIC8vIENGRGljdGlvbmFyeVJlZgogdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiwgQ0ZEaWN0aW9uYXJ5UmVmKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFJldGFp
blB0cjxDRkRpY3Rpb25hcnlSZWY+JiByZXN1bHQpOworYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4mIHJlc3VsdCk7CiAKIC8vIENGTnVtYmVy
UmVmCiB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBDRk51bWJlclJlZik7Ci1ib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXIqLCBSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+JiByZXN1bHQpOwor
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPENGTnVtYmVyUmVmPiYgcmVz
dWx0KTsKIAogLy8gQ0ZTdHJpbmdSZWYKIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIENG
U3RyaW5nUmVmKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4mIHJlc3VsdCk7Citib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+JiByZXN1bHQpOwogCiAvLyBDRlR5cGVSZWYKIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYsIENGVHlwZVJlZik7Ci1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXIq
LCBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiYgcmVzdWx0KTsKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFJldGFpblB0cjxDRlR5cGVSZWY+JiByZXN1bHQpOwogCiAvLyBDRlVSTFJlZgogdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgQ0ZVUkxSZWYpOwotYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyKiwgUmV0YWluUHRyPENGVVJMUmVmPiYgcmVzdWx0KTsKK2Jvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxDRlVSTFJlZj4mIHJlc3VsdCk7CiAKICNpZiBVU0Uo
U0VDVVJJVFlfRlJBTUVXT1JLKQogLy8gU2VjQ2VydGlmaWNhdGVSZWYKIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYsIFNlY0NlcnRpZmljYXRlUmVmKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciosIFJldGFpblB0cjxTZWNDZXJ0aWZpY2F0ZVJlZj4mIHJlc3VsdCk7Citib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+JiByZXN1
bHQpOwogCiAvLyBTZWNLZXljaGFpbkl0ZW1SZWYKIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIFNlY0tleWNoYWluSXRlbVJlZik7Ci1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBS
ZXRhaW5QdHI8U2VjS2V5Y2hhaW5JdGVtUmVmPiYgcmVzdWx0KTsKK2Jvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFJldGFpblB0cjxTZWNLZXljaGFpbkl0ZW1SZWY+JiByZXN1bHQpOwogI2Vu
ZGlmCiAKIENGVHlwZVJlZiB0b2tlbk51bGxUeXBlUmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLmgKaW5kZXggMDdjNDA2MGE0MjEzY2VkZDNmMWM0
NWZiMmY4YTk2Zjk2YjY0ZWVhMi4uZGMwZjY2NWYxMGI5YjQ4MzlkMjExYzg2MmMyMTc0YmQxZmZi
MWJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVy
c01hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMu
aApAQCAtMzUsNDcgKzM1LDQ3IEBAIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKIAogLy8gaWQKIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGlkKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciosIFJldGFpblB0cjxpZD4mKTsKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJl
dGFpblB0cjxpZD4mKTsKIAogLy8gTlNBdHRyaWJ1dGVkU3RyaW5nCiB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImLCBOU0F0dHJpYnV0ZWRTdHJpbmcgKik7Ci1ib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXIqLCBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiYpOworYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPE5TQXR0cmlidXRlZFN0cmluZz4mKTsKIAogI2lm
IFVTRShBUFBLSVQpCiAvLyBOU0NvbG9yCiB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBO
U0NvbG9yICopOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgUmV0YWluUHRyPE5TQ29s
b3I+Jik7Citib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5QdHI8TlNDb2xvcj4m
KTsKICNlbmRpZgogCiAvLyBOU0RpY3Rpb25hcnkKIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIE5TRGljdGlvbmFyeSAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFJldGFp
blB0cjxOU0RpY3Rpb25hcnk+Jik7Citib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRh
aW5QdHI8TlNEaWN0aW9uYXJ5PiYpOwogCiAvLyBOU0FycmF5CiB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBOU0FycmF5ICopOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgUmV0
YWluUHRyPE5TQXJyYXk+Jik7Citib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5Q
dHI8TlNBcnJheT4mKTsKIAogI2lmIFVTRShBUFBLSVQpCiAvLyBOU0ZvbnQKIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYsIE5TRm9udCAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciosIFJldGFpblB0cjxOU0ZvbnQ+Jik7Citib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBS
ZXRhaW5QdHI8TlNGb250PiYpOwogI2VuZGlmCiAKIC8vIE5TTnVtYmVyCiB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXImLCBOU051bWJlciAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciosIFJldGFpblB0cjxOU051bWJlcj4mKTsKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFJldGFpblB0cjxOU051bWJlcj4mKTsKIAogLy8gTlNTdHJpbmcKIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYsIE5TU3RyaW5nICopOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwg
UmV0YWluUHRyPE5TU3RyaW5nPiYpOworYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0
YWluUHRyPE5TU3RyaW5nPiYpOwogCiAvLyBOU0RhdGUKIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYsIE5TRGF0ZSAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFJldGFpblB0
cjxOU0RhdGU+Jik7Citib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5QdHI8TlNE
YXRlPiYpOwogCiAvLyBOU0RhdGEKIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIE5TRGF0
YSAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFJldGFpblB0cjxOU0RhdGE+Jik7
Citib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5QdHI8TlNEYXRhPiYpOwogCiB9
IC8vIG5hbWVzcGFjZSBDb3JlSVBDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Fy
Z3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IGIwNGU0ZjM5ODY2ODBhY2U4MDkzNDgxMmFiMzlmM2I2
ZGVhZjU1ZmUuLjc2M2YxMGRlNzMxMDkyNmVmZTY2OTRlZjdlMjcwNDY5MWU5MjliOTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMTI5
LDEwICsxMjksMTAgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBpZCBv
YmplY3QpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWluUHRyPGlkPiYgcmVzdWx0KQorYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8aWQ+JiByZXN1bHQpCiB7CiAgICAg
TlNUeXBlIHR5cGU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHR5cGUpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKHR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTI0NCw3ICsyNDQsNyBAQCB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIsIE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nKQogICAgIH0KIH0K
IAotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNBdHRy
aWJ1dGVkU3RyaW5nPiYgcmVzdWx0KQorYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiYgcmVzdWx0KQogewogICAgIFJldGFp
blB0cjxOU1N0cmluZz4gcGxhaW5TdHJpbmc7CiAgICAgaWYgKCFDb3JlSVBDOjpkZWNvZGUoZGVj
b2RlciwgcGxhaW5TdHJpbmcpKQpAQCAtMjU1LDE2ICsyNTUsMTYgQEAgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiYgcmVz
dWx0KQogICAgIFJldGFpblB0cjxOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nPiByZXN1bHRTdHJp
bmcoQWRvcHROUywgW1tOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0
cmluZzpwbGFpblN0cmluZy5nZXQoKV0pOwogCiAgICAgdWludDY0X3QgcmFuZ2VDb3VudDsKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShyYW5nZUNvdW50KSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJhbmdlQ291bnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB3aGlsZSAocmFu
Z2VDb3VudC0tKSB7CiAgICAgICAgIHVpbnQ2NF90IHJhbmdlTG9jYXRpb247CiAgICAgICAgIHVp
bnQ2NF90IHJhbmdlTGVuZ3RoOwogICAgICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBhdHRy
aWJ1dGVzOwotICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShyYW5nZUxvY2F0aW9uKSkKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyYW5nZUxvY2F0aW9uKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmFuZ2VMZW5ndGgpKQor
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJhbmdlTGVuZ3RoKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICBBU1NFUlQocmFuZ2VMb2NhdGlvbiArIHJhbmdlTGVuZ3Ro
ID4gcmFuZ2VMb2NhdGlvbik7CkBAIC0yODcsMTAgKzI4NywxMCBAQCB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIE5TQ29sb3IgKmNvbG9yKQogICAgIGVuY29kZXIgPDwgY29s
b3JGcm9tTlNDb2xvcihjb2xvcik7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlciwgUmV0YWluUHRyPE5TQ29sb3I+JiByZXN1bHQpCitib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU0NvbG9yPiYgcmVzdWx0KQogewogICAgIENv
bG9yIGNvbG9yOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGNvbG9yKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGNvbG9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmVzdWx0
ID0gbnNDb2xvcihjb2xvcik7CkBAIC0zMjQsMTAgKzMyNCwxMCBAQCB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKICAgICB9CiB9
CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWluUHRyPE5TRGlj
dGlvbmFyeT4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UmV0YWluUHRyPE5TRGljdGlvbmFyeT4mIHJlc3VsdCkKIHsKICAgICB1aW50NjRfdCBzaXplOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNpemUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
c2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJldGFpblB0cjxOU011dGFibGVE
aWN0aW9uYXJ5PiBkaWN0aW9uYXJ5KEFkb3B0TlMsIFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxv
Y10gaW5pdFdpdGhDYXBhY2l0eTpzaXplXSk7CkBAIC0zNTUsNyArMzU1LDcgQEAgdm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU0ZvbnQgKmZvbnQpCiAgICAgZW5jb2RlKGVu
Y29kZXIsIFtbZm9udCBmb250RGVzY3JpcHRvcl0gZm9udEF0dHJpYnV0ZXNdKTsKIH0KIAotYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNGb250PiYgcmVz
dWx0KQorYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNG
b250PiYgcmVzdWx0KQogewogICAgIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IGZvbnRBdHRyaWJ1
dGVzOwogICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGZvbnRBdHRyaWJ1dGVzKSkKQEAgLTM3Myw3
ICszNzMsNyBAQCB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIE5TTnVtYmVy
ICpudW1iZXIpCiAgICAgZW5jb2RlKGVuY29kZXIsIChDRk51bWJlclJlZiludW1iZXIpOwogfQog
Ci1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJldGFpblB0cjxOU051bWJl
cj4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWlu
UHRyPE5TTnVtYmVyPiYgcmVzdWx0KQogewogICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gbnVt
YmVyOwogICAgIGlmICghZGVjb2RlKGRlY29kZXIsIG51bWJlcikpCkBAIC0zODgsNyArMzg4LDcg
QEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU1N0cmluZyAqc3RyaW5n
KQogICAgIGVuY29kZShlbmNvZGVyLCAoQ0ZTdHJpbmdSZWYpc3RyaW5nKTsKIH0KIAotYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNTdHJpbmc+JiByZXN1
bHQpCitib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU1N0
cmluZz4mIHJlc3VsdCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN0cmluZzsKICAg
ICBpZiAoIWRlY29kZShkZWNvZGVyLCBzdHJpbmcpKQpAQCAtNDE0LDEwICs0MTQsMTAgQEAgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU0FycmF5ICphcnJheSkKICAgICB9
CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWluUHRyPE5T
QXJyYXk+JiByZXN1bHQpCitib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJl
dGFpblB0cjxOU0FycmF5PiYgcmVzdWx0KQogewogICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBh
cnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpz
aXplXSk7CkBAIC00MzgsNyArNDM4LDcgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBOU0RhdGUgKmRhdGUpCiAgICAgZW5jb2RlKGVuY29kZXIsIChDRkRhdGVSZWYpZGF0
ZSk7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmV0YWluUHRy
PE5TRGF0ZT4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UmV0YWluUHRyPE5TRGF0ZT4mIHJlc3VsdCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZEYXRlUmVmPiBk
YXRlOwogICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGRhdGUpKQpAQCAtNDUzLDcgKzQ1Myw3IEBA
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgTlNEYXRhICpkYXRhKQogICAg
IGVuY29kZShlbmNvZGVyLCAoQ0ZEYXRhUmVmKWRhdGEpOwogfQogCi1ib29sIGRlY29kZShBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIFJldGFpblB0cjxOU0RhdGE+JiByZXN1bHQpCitib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU0RhdGE+JiByZXN1bHQp
CiB7CiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKICAgICBpZiAoIWRlY29kZShkZWNv
ZGVyLCBkYXRhKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmli
dXRlZFN0cmluZy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5n
LmgKaW5kZXggNmQzNTA3ZjZhNGUxNTFmZTg2MTJkMjIwM2FlNDI4ZjRiZTZiYTYzNy4uMDUxNWYy
MGY3MjRhZWE0ZmFiM2Q4OWYzZjViZTI1M2I0ZDA3Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLmgKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nIHsKICAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgQXR0cmlidXRlZFN0cmluZyYpOworICAgIHN0YXRp
YyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBBdHRyaWJ1dGVkU3RyaW5n
Jik7CiAgICAgCiAgICAgUmV0YWluUHRyPE5TQXR0cmlidXRlZFN0cmluZz4gc3RyaW5nOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5tbQppbmRleCAz
NGMxN2FkOGM5MGQyYmZjZWJmNDM2ZTUwNTY4MjNjMTY3NjM1NTQ2Li40MTRmODA4YjJjMDJkZDM3
ZDYzMDY4M2Y4ZDlmNmY3NzUzMTMwZTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9BdHRyaWJ1dGVkU3RyaW5nLm1tCkBAIC00MCwxMCArNDAsMTAgQEAgdm9pZCBBdHRyaWJ1dGVk
U3RyaW5nOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBzdHJpbmcuZ2V0KCkpOwogfQogCi1ib29sIEF0
dHJpYnV0ZWRTdHJpbmc6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IEF0dHJpYnV0ZWRTdHJpbmcmIGF0dHJpYnV0ZWRTdHJpbmcpCitib29sIEF0dHJpYnV0ZWRTdHJp
bmc6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEF0dHJpYnV0ZWRT
dHJpbmcmIGF0dHJpYnV0ZWRTdHJpbmcpCiB7CiAgICAgYm9vbCBpc051bGw7Ci0gICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoaXNOdWxsKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzTnVsbCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoaXNOdWxsKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURh
dGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEuaAppbmRleCBh
ZmU1Yjc3MzZlNmRhYmZmMDg3MWFmMmM3ZTc3Njc0ZmEzMTQ3NzYxLi5kMzYzN2IzMTNjYThkMjI1
Nzk4NTUzODc1OTEyNGM4ZjQ1YjIxNjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0NvbG9yU3BhY2VEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
b2xvclNwYWNlRGF0YS5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBz
dHJ1Y3QgQ29sb3JTcGFjZURhdGEgewogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBDb2xvclNwYWNlRGF0YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXImLCBDb2xvclNwYWNlRGF0YSYpOwogCiAgICAgUmV0YWluUHRy
PENHQ29sb3JTcGFjZVJlZj4gY2dDb2xvclNwYWNlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCmluZGV4IDBjZWNiNDczYmJhMGY3YWEwMjdlYmZhYTgx
MjM2YzdmOWQ3YjRjZTAuLjBmZDhkMjYyNjNlNmE3NWFmMTk0NDFiY2JjYWNmNmMyYTkyMjZiNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0K
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQpAQCAtNjAs
MTAgKzYwLDEwIEBAIHZvaWQgQ29sb3JTcGFjZURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKE51bGwpOwog
fQogCi1ib29sIENvbG9yU3BhY2VEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBDb2xvclNwYWNlRGF0YSYgY29sb3JTcGFjZURhdGEpCitib29sIENvbG9yU3Bh
Y2VEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDb2xvclNw
YWNlRGF0YSYgY29sb3JTcGFjZURhdGEpCiB7CiAgICAgRW5jb2RlZERhdGFUeXBlIGRhdGFUeXBl
OwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51bShkYXRhVHlwZSkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0oZGF0YVR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBz
d2l0Y2ggKGRhdGFUeXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L0xheWVyVHJlZUNvbnRleHRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0xheWVy
VHJlZUNvbnRleHRNYWMubW0KaW5kZXggNTMxZDI0NWRjODhiYWIzNzdhNjdkYTI4ZmVlNWI4MzVi
ZGFhMWZhNi4uMzU0NmMzYjdmNDBjNWI1YzYzYWFmZGQyNTU3ZTA0ODQyNTMwNWY3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9MYXllclRyZWVDb250ZXh0TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvTGF5ZXJUcmVlQ29udGV4dE1hYy5tbQpAQCAt
NDUsOSArNDUsOSBAQCB2b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBjb250ZXh0SUQ7CiB9
CiAKLWJvb2wgTGF5ZXJUcmVlQ29udGV4dDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgTGF5ZXJUcmVlQ29udGV4dCYgcmVzdWx0KQorYm9vbCBMYXllclRyZWVDb250
ZXh0OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBMYXllclRyZWVD
b250ZXh0JiByZXN1bHQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LmNvbnRl
eHRJRCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGV4dElEKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVycy5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGhDb2RlcnMuaAppbmRleCBlMzcxZTRjNTEzODg5
ZmM2NzhlODdkMTZiZDVmZDI0NDhkNDQ5ODEzLi40MTkxZTU3Yjg1OWU1OGMxMTY4MjVjYWZiNjE1
MWYyYTBiMjliZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNP
YmplY3RHcmFwaENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09i
amVjdEdyYXBoQ29kZXJzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYkNv
bnRleHRPYmpDT2JqZWN0R3JhcGhEZWNvZGVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBXZWJD
b250ZXh0T2JqQ09iamVjdEdyYXBoRGVjb2RlcihSZWZQdHI8T2JqQ09iamVjdEdyYXBoPiYsIFdl
YlByb2Nlc3NQcm94eSopOwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRGVjb2RlciYpOworICAgIHN0YXRp
YyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJDb250ZXh0T2JqQ09i
amVjdEdyYXBoRGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxPYmpDT2JqZWN0R3Jh
cGg+JiBtX29iamVjdEdyYXBoOwpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogY2xhc3MgSW5q
ZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhEZWNvZGVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBJbmplY3RlZEJ1bmRsZU9iakNPYmplY3RHcmFwaERlY29kZXIoUmVmUHRyPE9iakNPYmplY3RH
cmFwaD4mLCBXZWJQcm9jZXNzKik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIEluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRGVjb2RlciYpOwor
ICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBJbmplY3Rl
ZEJ1bmRsZU9iakNPYmplY3RHcmFwaERlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8
T2JqQ09iamVjdEdyYXBoPiYgbV9vYmplY3RHcmFwaDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoQ29kZXJzLm1tIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGhDb2RlcnMubW0KaW5kZXggNjNlMThiNzk2NjNhOWZi
NGIwMWZlYjFjN2QyMWYzZWNjMDBhN2FlOS4uYmQyNTc5MDUzNTRhYmY1ODUyMzU1ZjIwMWNmMmI0
MGEwNzMzZDIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2Jq
ZWN0R3JhcGhDb2RlcnMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2Jq
ZWN0R3JhcGhDb2RlcnMubW0KQEAgLTE2MCwxMCArMTYwLDEwIEBAIHByb3RlY3RlZDoKIHRlbXBs
YXRlPHR5cGVuYW1lIE93bmVyPgogY2xhc3MgT2JqQ09iamVjdEdyYXBoRGVjb2RlciB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGJvb2wgYmFzZURlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIE93bmVyJiBjb2RlciwgV2ViS2l0TlNUeXBlJiB0eXBlKQorICAgIHN0YXRpYyBi
b29sIGJhc2VEZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBPd25lciYg
Y29kZXIsIFdlYktpdE5TVHlwZSYgdHlwZSkKICAgICB7CiAgICAgICAgIHVpbnQzMl90IHR5cGVB
c1VJbnQzMjsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodHlwZUFzVUludDMyKSkKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0eXBlQXNVSW50MzIpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgICAgIHR5cGUgPSBzdGF0aWNfY2FzdDxXZWJLaXROU1R5cGU+KHR5
cGVBc1VJbnQzMik7CkBAIC0xNzgsMTQgKzE3OCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBOU0FycmF5VHlwZTogewogICAgICAgICAgICAgdWludDY0X3Qgc2l6ZTsKLSAg
ICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHNpemUpKQorICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzaXplKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gYXJyYXkgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c2l6ZV0pOwogICAgICAgICAgICAg
Zm9yICh1aW50NjRfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICAgICAgICAgIFJl
dGFpblB0cjxpZD4gdmFsdWU7CiAgICAgICAgICAgICAgICAgT3duZXIgbWVzc2FnZUNvZGVyKGNv
ZGVyLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUobWVzc2Fn
ZUNvZGVyKSkKKyAgICAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VDb2Rl
cikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgICAg
IFthcnJheS5nZXQoKSBhZGRPYmplY3Q6dmFsdWUuZ2V0KCldOwpAQCAtMTk2LDcgKzE5Niw3IEBA
IHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBjYXNlIE5TRGljdGlvbmFyeVR5cGU6IHsKICAg
ICAgICAgICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShzaXplKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxl
RGljdGlvbmFyeT4gZGljdGlvbmFyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFs
bG9jXSBpbml0V2l0aENhcGFjaXR5OnNpemVdKTsKQEAgLTIwNCwxMiArMjA0LDEyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgICAgICAvLyBUcnkgdG8gZGVjb2RlIHRoZSBrZXkgbmFtZS4KICAgICAg
ICAgICAgICAgICBSZXRhaW5QdHI8aWQ+IGtleTsKICAgICAgICAgICAgICAgICBPd25lciBrZXlN
ZXNzYWdlQ29kZXIoY29kZXIsIGtleSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoa2V5TWVzc2FnZUNvZGVyKSkKKyAgICAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGtleU1lc3NhZ2VDb2RlcikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICAgICAgICAgIFJldGFpblB0cjxpZD4gdmFsdWU7CiAgICAgICAgICAgICAgICAg
T3duZXIgdmFsdWVNZXNzYWdlQ29kZXIoY29kZXIsIHZhbHVlKTsKLSAgICAgICAgICAgICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZSh2YWx1ZU1lc3NhZ2VDb2RlcikpCisgICAgICAgICAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZU1lc3NhZ2VDb2RlcikpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgICAgIFtkaWN0aW9uYXJ5LmdldCgpIHNl
dE9iamVjdDp2YWx1ZS5nZXQoKSBmb3JLZXk6a2V5LmdldCgpXTsKQEAgLTMwNiw3ICszMDYsNyBA
QCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhEZWNv
ZGVySW1wbCYgY29kZXIpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgV2ViQ29udGV4dE9iakNPYmplY3RHcmFwaERlY29kZXJJbXBsJiBj
b2RlcikKICAgICB7CiAgICAgICAgIFdlYktpdE5TVHlwZSB0eXBlID0gTnVsbFR5cGU7CiAgICAg
ICAgIGlmICghQmFzZTo6YmFzZURlY29kZShkZWNvZGVyLCBjb2RlciwgdHlwZSkpCkBAIC0zMjQs
NyArMzI0LDcgQEAgcHVibGljOgogI2lmIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19j
bGFuZ19fKQogICAgICAgICBjYXNlIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlclR5cGU6IHsK
ICAgICAgICAgICAgIHVpbnQ2NF90IHBhZ2VJRDsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHBhZ2VJRCkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhZ2VJRCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBXZWJQYWdlUHJv
eHkqIHdlYlBhZ2UgPSBjb2Rlci5tX3Byb2Nlc3MtPndlYlBhZ2UocGFnZUlEKTsKQEAgLTM5Nyw3
ICszOTcsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEluamVjdGVkQnVuZGxlT2JqQ09i
amVjdEdyYXBoRGVjb2RlckltcGwmIGNvZGVyKQorICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdy
YXBoRGVjb2RlckltcGwmIGNvZGVyKQogICAgIHsKICAgICAgICAgV2ViS2l0TlNUeXBlIHR5cGUg
PSBOdWxsVHlwZTsKICAgICAgICAgaWYgKCFCYXNlOjpiYXNlRGVjb2RlKGRlY29kZXIsIGNvZGVy
LCB0eXBlKSkKQEAgLTQxNSw3ICs0MTUsNyBAQCBwdWJsaWM6CiAjaWYgZGVmaW5lZChfX0xQNjRf
XykgJiYgZGVmaW5lZChfX2NsYW5nX18pCiAgICAgICAgIGNhc2UgV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyVHlwZTogewogICAgICAgICAgICAgdWludDY0X3QgcGFnZUlEOwotICAgICAgICAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFnZUlEKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFnZUlEKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAg
ICAgICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBjb2Rlci5tX3Byb2Nlc3MtPndlYlBhZ2UocGFnZUlE
KTsKQEAgLTQ1NiwxMSArNDU2LDExIEBAIFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhEZWNvZGVy
OjpXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRGVjb2RlcihSZWZQdHI8T2JqQ09iCiB7CiB9CiAK
LWJvb2wgV2ViQ29udGV4dE9iakNPYmplY3RHcmFwaERlY29kZXI6OmRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhEZWNvZGVy
JiBjb2RlcikKK2Jvb2wgV2ViQ29udGV4dE9iakNPYmplY3RHcmFwaERlY29kZXI6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYkNvbnRleHRPYmpDT2JqZWN0R3Jh
cGhEZWNvZGVyJiBjb2RlcikKIHsKICAgICBSZXRhaW5QdHI8aWQ+IHJvb3Q7CiAgICAgV2ViQ29u
dGV4dE9iakNPYmplY3RHcmFwaERlY29kZXJJbXBsIGNvZGVySW1wbChyb290LCBjb2Rlci5tX3By
b2Nlc3MpOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGNvZGVySW1wbCkpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShjb2RlckltcGwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBj
b2Rlci5tX29iamVjdEdyYXBoID0gT2JqQ09iamVjdEdyYXBoOjpjcmVhdGUocm9vdC5nZXQoKSk7
CkBAIC00ODMsMTEgKzQ4MywxMSBAQCBJbmplY3RlZEJ1bmRsZU9iakNPYmplY3RHcmFwaERlY29k
ZXI6OkluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRGVjb2RlcihSZWZQdAogewogfQogCi1i
b29sIEluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBoRGVjb2Rlcjo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgSW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhE
ZWNvZGVyJiBjb2RlcikKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhEZWNvZGVy
OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJbmplY3RlZEJ1bmRs
ZU9iakNPYmplY3RHcmFwaERlY29kZXImIGNvZGVyKQogewogICAgIFJldGFpblB0cjxpZD4gcm9v
dDsKICAgICBJbmplY3RlZEJ1bmRsZU9iakNPYmplY3RHcmFwaERlY29kZXJJbXBsIGNvZGVySW1w
bChyb290LCBjb2Rlci5tX3Byb2Nlc3MpOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGNvZGVy
SW1wbCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb2RlckltcGwpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBjb2Rlci5tX29iamVjdEdyYXBoID0gT2JqQ09iamVjdEdyYXBoOjpj
cmVhdGUocm9vdC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgKaW5kZXggOTNmMDlmMzY5MWJiZjJmNTI4OWE0ZDA1NThj
NGQyZmE2ZjM3NzE3OC4uOWVhMWEyZjMzMTc5ZjJkMTU0MGQ0OTFhZDA2ODNiOTUyNDBjY2NkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRl
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm8uaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgQ0ZBcnJheVJlZiBjZXJ0aWZp
Y2F0ZUNoYWluKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgpOyB9CiAK
ICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbyYgdCk7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJik7CiAKICNpZm5kZWYg
TkRFQlVHCiAgICAgdm9pZCBkdW1wKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbQppbmRleCA2ZWIxYjE2ZDUyODBi
Y2E1OTY5ZmYzZmY4MTYxMTFhYzMwYzMwN2JmLi42MmFlOGE5OWQyNzQ2YTQ0OWU3OWY2YzhlYTMz
N2M3ZTczMGM3MmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0KQEAgLTU5LDEwICs1OSwxMCBAQCB2b2lkIFBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2NlcnRpZmljYXRlQ2hhaW4u
Z2V0KCkpOwogfQogCi1ib29sIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgYykK
K2Jvb2wgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjKQogewogICAgIGJvb2wg
aGFzQ2VydGlmaWNhdGVDaGFpbjsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShoYXNDZXJ0aWZp
Y2F0ZUNoYWluKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0NlcnRpZmljYXRlQ2hhaW4p
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWhhc0NlcnRpZmljYXRlQ2hhaW4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmgKaW5kZXggZDlkZDZhMjZmODg2MzI3MGI1ZjkxZDY0NDBkNGNhZjc3MTRmMGEy
MC4uZWE1MDAzNGU3ZWQ3M2YyZTRkZDQ4NTI5ODBiYTNkYjFhMTQxMzgxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24u
aApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIExheWVyUHJvcGVydGllcygpOwog
CiAgICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0Owot
ICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgTGF5
ZXJQcm9wZXJ0aWVzJik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXImLCBMYXllclByb3BlcnRpZXMmKTsKIAogICAgICAgICB1bnNpZ25lZCBjaGFu
Z2VkUHJvcGVydGllczsKIApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgflJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uKCk7CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24mKTsKIAogICAgIHVpbnQ2NF90IHJvb3RMYXllcklEKCkgY29uc3QgeyByZXR1cm4gbV9y
b290TGF5ZXJJRDsgfQogICAgIHZvaWQgc2V0Um9vdExheWVySUQodWludDY0X3Qgcm9vdExheWVy
SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggYjAwYWRkZjM5YWRmNGY3OTMzZDI1ZTM1NzYxNDMzZDZm
ZDM3NzdhZi4uZTcxMGUyZDFkODdmZmIxODA2NzZkODFhZDkxY2M4MWY0NDJiMmI2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLm1tCkBAIC02MCwxOCArNjAsMTggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGUKICAg
ICAgICAgZW5jb2RlciA8PCBzaXplOwogfQogCi1ib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRl
Y29kZXIsIExheWVyUHJvcGVydGllcyYgcmVzdWx0KQorYm9vbCBSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBMYXllclByb3BlcnRpZXMmIHJlc3VsdCkKIHsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShyZXN1bHQuY2hhbmdlZFByb3BlcnRpZXMpKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIE5hbWVDaGFuZ2VkKSB7Ci0gICAgICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5uYW1lKSkKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubmFtZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CiAgICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIENoaWxkcmVuQ2hhbmdlZCkgewot
ICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQuY2hpbGRyZW4pKQorICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jaGlsZHJlbikpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICAgICAgZm9yIChhdXRvIGxheWVySUQ6IHJlc3VsdC5jaGlsZHJlbikgewpA
QCAtODEsMTIgKzgxLDEyIEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVy
UHJvcGVydGllczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlCiAgICAgfQogCiAgICAg
aWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIFBvc2l0aW9uQ2hhbmdlZCkgewotICAgICAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQucG9zaXRpb24pKQorICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5wb3NpdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCiAgICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIFNpemVDaGFuZ2Vk
KSB7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5zaXplKSkKKyAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMTA3LDE3ICsxMDcsMTcgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fZGVzdHJveWVkTGF5ZXJJRHM7CiB9
CiAKLWJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiByZXN1bHQp
Citib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgcmVzdWx0KQog
ewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3Jvb3RMYXllcklEKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Jvb3RMYXllcklEKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmICghcmVzdWx0Lm1fcm9vdExheWVySUQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2NoYW5nZWRMYXllclBy
b3BlcnRpZXMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fY2hhbmdlZExheWVy
UHJvcGVydGllcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHJlc3VsdC5tX2Rlc3Ryb3llZExheWVySURzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX2Rlc3Ryb3llZExheWVySURzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGZvciAodWludDY0X3QgbGF5ZXJJRDogcmVzdWx0Lm1fZGVzdHJveWVkTGF5ZXJJRHMpIHsK
ICAgICAgICAgaWYgKCFsYXllcklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9T
YW5kYm94RXh0ZW5zaW9uTWFjLm1tCmluZGV4IGJiMzA0NjgzYWUxODY1MWMyNDY0NWZiY2I3MWMx
ODYzY2YwMWZkNDAuLjhmM2E2MjA4NmNiY2FkMTkwNmYyNmFlNTZjZWMwNzY3N2E1N2JjYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0K
QEAgLTcxLDEyICs3MSwxMiBAQCB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBtX3NhbmRib3hF
eHRlbnNpb24gPSAwOwogfQogCi1ib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiByZXN1bHQpCitib29s
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgSGFuZGxlJiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKCFyZXN1bHQubV9zYW5k
Ym94RXh0ZW5zaW9uKTsKIAogICAgIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5j
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShkYXRhUmVmZXJlbmNlKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGRhdGFSZWZlcmVuY2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAoZGF0YVJlZmVyZW5jZS5pc0VtcHR5KCkpCkBAIC0xMzQsMTQgKzEzNCwxNCBAQCB2b2lk
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjbwogICAgIAogfQogCi1ib29sIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZUFycmF5OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYgaGFuZGxlcykKK2Jvb2wgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlQXJyYXk6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiBoYW5kbGVzKQogewogICAgIHVpbnQ2NF90
IHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGhhbmRsZXMuYWxsb2Nh
dGUoc2l6ZSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaGFuZGxlc1tpXSkpCisgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaGFuZGxlc1tpXSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9T
ZWNJdGVtUmVxdWVzdERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVt
UmVxdWVzdERhdGEuY3BwCmluZGV4IGJlOWYyYTBmMjk3MTYzNGNjNjA2MTJhOGI4NTRmN2VhM2Qx
OGY4NmMuLjQyOTA1MTlmNzAwODljZTJhOTY5OTM5YjRjMDA1NzM1NGI1YTYxMjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAKQEAgLTYw
LDE2ICs2MCwxNiBAQCB2b2lkIFNlY0l0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVu
Y29kZXIsIG1fYXR0cmlidXRlc1RvTWF0Y2guZ2V0KCkpOwogfQogCi1ib29sIFNlY0l0ZW1SZXF1
ZXN0RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU2VjSXRl
bVJlcXVlc3REYXRhJiBzZWNJdGVtUmVxdWVzdERhdGEpCitib29sIFNlY0l0ZW1SZXF1ZXN0RGF0
YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU2VjSXRlbVJlcXVl
c3REYXRhJiBzZWNJdGVtUmVxdWVzdERhdGEpCiB7ICAgIAotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlRW51bShzZWNJdGVtUmVxdWVzdERhdGEubV90eXBlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlRW51bShzZWNJdGVtUmVxdWVzdERhdGEubV90eXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgaWYgKCFDb3JlSVBDOjpkZWNvZGUoZGVjb2Rlciwgc2VjSXRlbVJlcXVlc3REYXRh
Lm1fcXVlcnlEaWN0aW9uYXJ5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIGJv
b2wgZXhwZWN0QXR0cmlidXRlczsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShleHBlY3RBdHRy
aWJ1dGVzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGV4cGVjdEF0dHJpYnV0ZXMpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgaWYgKGV4cGVjdEF0dHJpYnV0ZXMgJiYgIUNv
cmVJUEM6OmRlY29kZShkZWNvZGVyLCBzZWNJdGVtUmVxdWVzdERhdGEubV9hdHRyaWJ1dGVzVG9N
YXRjaCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1
ZXN0RGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEu
aAppbmRleCA0NDJkNTZkNGY2NWQzNTU1MjZjNmJlYTVlZWQwYzI1MzllNTRkZmJkLi41OTA5YWY4
N2RjODg3Mjk0ZmIyYWIxMGIwNzZjMDQ5N2Y0MzJiNjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGlj
OgogICAgIFNlY0l0ZW1SZXF1ZXN0RGF0YShUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENG
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzVG9NYXRjaCk7CiAKICAgICB2b2lkIGVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU2VjSXRlbVJlcXVlc3REYXRhJik7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFNlY0l0ZW1SZXF1ZXN0RGF0
YSYpOwogCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuY3BwCmluZGV4
IDkzZGJlMmIxNGQ2NzZkZjc1ODI3Njg3NjI2ZTViMTNjZjZkMTdlYWQuLjBkY2Y2MDk1YmE1NDc2
MjFmMDUwODgzYTVmZmE3OTVjY2FlZWJlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcApAQCAtNDksMTYgKzQ5LDE2IEBAIHZvaWQg
U2VjSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fcmVzdWx0T2Jq
ZWN0LmdldCgpKTsKIH0KIAotYm9vbCBTZWNJdGVtUmVzcG9uc2VEYXRhOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTZWNJdGVtUmVzcG9uc2VEYXRhJiBzZWNJdGVt
UmVzcG9uc2VEYXRhKQorYm9vbCBTZWNJdGVtUmVzcG9uc2VEYXRhOjpkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTZWNJdGVtUmVzcG9uc2VEYXRhJiBzZWNJdGVtUmVz
cG9uc2VEYXRhKQogewogICAgIGludDY0X3QgcmVzdWx0Q29kZTsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShyZXN1bHRDb2RlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdENvZGUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgc2VjSXRlbVJlc3BvbnNlRGF0YS5tX3Jlc3Vs
dENvZGUgPSAoT1NTdGF0dXMpcmVzdWx0Q29kZTsKICAgICBzZWNJdGVtUmVzcG9uc2VEYXRhLm1f
cmVzdWx0T2JqZWN0ID0gMDsKIAogICAgIGJvb2wgZXhwZWN0UmVzdWx0T2JqZWN0OwotICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGV4cGVjdFJlc3VsdE9iamVjdCkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShleHBlY3RSZXN1bHRPYmplY3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAoZXhwZWN0UmVzdWx0T2JqZWN0ICYmICFDb3JlSVBDOjpkZWNvZGUoZGVjb2Rlciwgc2Vj
SXRlbVJlc3BvbnNlRGF0YS5tX3Jlc3VsdE9iamVjdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oCmluZGV4IGNmNWM5ZWU3YTNkMWJjMGM4YTk5
YTVkZDY4NDdlODQ3OTJjMTgxYjEuLjlkZTQ2MWZiOTMxMzlhNDQzM2ExMDc0N2I1OTBjMmNiZmU5
OTE2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3Bv
bnNlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNl
RGF0YS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBTZWNJdGVtUmVzcG9uc2VEYXRh
KE9TU3RhdHVzLCBDRlR5cGVSZWYgcmVzdWx0KTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBTZWNJdGVtUmVzcG9uc2VEYXRhJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFNlY0l0ZW1SZXNwb25zZURhdGEm
KTsKIAogICAgIFJldGFpblB0cjxDRlR5cGVSZWY+JiByZXN1bHRPYmplY3QoKSB7IHJldHVybiBt
X3Jlc3VsdE9iamVjdDsgfQogICAgIE9TU3RhdHVzIHJlc3VsdENvZGUoKSBjb25zdCB7IHJldHVy
biBtX3Jlc3VsdENvZGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggY2MyNmRjZWFmZWViNDY3ZTRkYmEwODA2
MDBmNTBiYjM3NDc5MjZkNC4uYTJlNTIzMjRkNGQ1YzdlNzdkZmNjYjFiMGM2MGYwMTBjMmZiOThk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1l
bnRDb2RlcnNNYWMubW0KQEAgLTUwLDEwICs1MCwxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VSZXF1ZXN0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cgogICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBkaWN0aW9uYXJ5LmdldCgpKTsKIH0KIAot
Ym9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0YShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0
KQorYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0
YShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1
ZXN0KQogewogICAgIGJvb2wgcmVxdWVzdElzUHJlc2VudDsKLSAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShyZXF1ZXN0SXNQcmVzZW50KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcXVlc3RJ
c1ByZXNlbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIXJlcXVlc3RJc1By
ZXNlbnQpIHsKQEAgLTg1LDEwICs4NSwxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VS
ZXNwb25zZT46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZQogICAg
IENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBkaWN0aW9uYXJ5LmdldCgpKTsKIH0KIAotYm9vbCBB
cmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlKQor
Ym9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGVQbGF0Zm9ybURhdGEo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3Bv
bnNlKQogewogICAgIGJvb2wgcmVzcG9uc2VJc1ByZXNlbnQ7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUocmVzcG9uc2VJc1ByZXNlbnQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzcG9u
c2VJc1ByZXNlbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIXJlc3BvbnNl
SXNQcmVzZW50KSB7CkBAIC0xNDcsMTAgKzE0NywxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
CiAgICAgZW5jb2RlciA8PCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygoQ0ZBcnJheVJlZilwZWVy
Q2VydGlmaWNhdGVDaGFpbik7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9y
Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmVzb3VyY2VF
cnJvciYgcmVzb3VyY2VFcnJvcikKK2Jvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VFcnJv
ciYgcmVzb3VyY2VFcnJvcikKIHsKICAgICBib29sIGVycm9ySXNOdWxsOwotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKGVycm9ySXNOdWxsKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGVycm9y
SXNOdWxsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIGlmIChlcnJvcklzTnVs
bCkgewpAQCAtMTU5LDE5ICsxNTksMTkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJy
b3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLAogICAgIH0K
IAogICAgIFN0cmluZyBkb21haW47Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZG9tYWluKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRvbWFpbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGludDY0X3QgY29kZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShjb2RlKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzdHJpbmdVc2VySW5mb01hcDsKLSAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShzdHJpbmdVc2VySW5mb01hcCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShzdHJpbmdVc2VySW5mb01hcCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KGNlcnRpZmljYXRlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNlcnRpZmljYXRlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTlNVSW50ZWdlciB1c2VySW5mb1NpemUgPSBzdHJp
bmdVc2VySW5mb01hcC5zaXplKCk7CkBAIC0xOTksMTIgKzE5OSwxMiBAQCB2b2lkIEFyZ3VtZW50
Q29kZXI8S2V5cHJlc3NDb21tYW5kPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgS2V5cAogICAgIGVuY29kZXIgPDwga2V5cHJlc3NDb21tYW5kLmNvbW1hbmROYW1lIDw8
IGtleXByZXNzQ29tbWFuZC50ZXh0OwogfQogICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEtleXBy
ZXNzQ29tbWFuZD46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEtleXByZXNzQ29t
bWFuZCYga2V5cHJlc3NDb21tYW5kKQorYm9vbCBBcmd1bWVudENvZGVyPEtleXByZXNzQ29tbWFu
ZD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEtleXByZXNzQ29tbWFuZCYga2V5
cHJlc3NDb21tYW5kKQogewotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGtleXByZXNzQ29tbWFu
ZC5jb21tYW5kTmFtZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXlwcmVzc0NvbW1hbmQu
Y29tbWFuZE5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShrZXlwcmVzc0NvbW1hbmQudGV4dCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShr
ZXlwcmVzc0NvbW1hbmQudGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRV
c2VyTWVzc2FnZUNvZGVycy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRV
c2VyTWVzc2FnZUNvZGVycy5oCmluZGV4IDI5YmUzNmZjOWQ4ZjVlYjQyNTJjY2FhNjNlMmI0NWY5
ZWQ1ZmMxMmQuLjA0MWMyMzRmZGU2YzIyN2ZlMGU4YTQwMmFlNWFhNTM3M2ExOGNjYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3NhZ2VDb2Rl
cnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dFVzZXJNZXNzYWdl
Q29kZXJzLmgKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAg
IHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdl
YkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXImIGNvZGVyKQorICAgIHN0YXRpYyBib29sIGRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXImIGNvZGVyKQogICAgIHsKICAgICAgICAgQVBJT2JqZWN0OjpUeXBlIHR5cGUgPSBB
UElPYmplY3Q6OlR5cGVOdWxsOwogICAgICAgICBpZiAoIUJhc2U6OmJhc2VEZWNvZGUoZGVjb2Rl
ciwgY29kZXIsIHR5cGUpKQpAQCAtMTE5LDIxICsxMTksMjEgQEAgcHVibGljOgogICAgICAgICBz
d2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVCdW5kbGVQYWdlOiB7
CiAgICAgICAgICAgICB1aW50NjRfdCBwYWdlSUQ7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShwYWdlSUQpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYWdlSUQp
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGNvZGVyLm1fcm9v
dCA9IGNvZGVyLm1fcHJvY2Vzcy0+d2ViUGFnZShwYWdlSUQpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVCdW5kbGVGcmFtZTogewog
ICAgICAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKGZyYW1lSUQpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmcmFtZUlE
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjb2Rlci5tX3Jv
b3QgPSBjb2Rlci5tX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVCdW5kbGVQYWdlR3Jv
dXA6IHsKICAgICAgICAgICAgIHVpbnQ2NF90IHBhZ2VHcm91cElEOwotICAgICAgICAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUocGFnZUdyb3VwSUQpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYWdlR3JvdXBJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgY29kZXIubV9yb290ID0gV2ViUGFnZUdyb3VwOjpnZXQocGFnZUdyb3VwSUQpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0xNDIsNyArMTQyLDcgQEAgcHVibGljOgogICAgICAgICBj
YXNlIEFQSU9iamVjdDo6VHlwZU9iakNPYmplY3RHcmFwaDogewogICAgICAgICAgICAgUmVmUHRy
PE9iakNPYmplY3RHcmFwaD4gb2JqZWN0R3JhcGg7CiAgICAgICAgICAgICBXZWJDb250ZXh0T2Jq
Q09iamVjdEdyYXBoRGVjb2RlciBvYmplY3RHcmFwaERlY29kZXIob2JqZWN0R3JhcGgsIGNvZGVy
Lm1fcHJvY2Vzcyk7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShvYmplY3RHcmFw
aERlY29kZXIpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvYmplY3RHcmFwaERl
Y29kZXIpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGNvZGVy
Lm1fcm9vdCA9IG9iamVjdEdyYXBoLmdldCgpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oCmluZGV4IGFhNzgzYTM3
MmQ3Y2E5ZmNkZjQ3NjNhYjNjZGY4OTAzODY4MGRiM2EuLjcwYWY1ZTVmOGQ2NTg3ZGFkOWE2ZWFk
MDYzYzkyOGUwZTc3MTZiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUNvZGVycy5oCkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlciYgY29kZXIpCisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZURlY29kZXImIGNvZGVyKQogICAgIHsKICAgICAgICAgQVBJT2JqZWN0
OjpUeXBlIHR5cGUgPSBBUElPYmplY3Q6OlR5cGVOdWxsOwogICAgICAgICBpZiAoIUJhc2U6OmJh
c2VEZWNvZGUoZGVjb2RlciwgY29kZXIsIHR5cGUpKQpAQCAtMTIwLDIxICsxMjAsMjEgQEAgcHVi
bGljOgogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5
cGVQYWdlOiB7CiAgICAgICAgICAgICB1aW50NjRfdCBwYWdlSUQ7Ci0gICAgICAgICAgICBpZiAo
IWRlY29kZXItPmRlY29kZShwYWdlSUQpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYWdlSUQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGNv
ZGVyLm1fcm9vdCA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYlBhZ2UocGFnZUlEKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlRnJh
bWU6IHsKICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7Ci0gICAgICAgICAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShmcmFtZUlEKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
ZnJhbWVJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY29k
ZXIubV9yb290ID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVBh
Z2VHcm91cDogewogICAgICAgICAgICAgV2ViUGFnZUdyb3VwRGF0YSBwYWdlR3JvdXBEYXRhOwot
ICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFnZUdyb3VwRGF0YSkpCisgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhZ2VHcm91cERhdGEpKQogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IFdlYlByb2Nlc3M6OnNo
YXJlZCgpLndlYlBhZ2VHcm91cChwYWdlR3JvdXBEYXRhKTsKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVP
YmpDT2JqZWN0R3JhcGg6IHsKICAgICAgICAgICAgIFJlZlB0cjxPYmpDT2JqZWN0R3JhcGg+IG9i
amVjdEdyYXBoOwogICAgICAgICAgICAgSW5qZWN0ZWRCdW5kbGVPYmpDT2JqZWN0R3JhcGhEZWNv
ZGVyIG9iamVjdEdyYXBoRGVjb2RlcihvYmplY3RHcmFwaCwgJldlYlByb2Nlc3M6OnNoYXJlZCgp
KTsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKG9iamVjdEdyYXBoRGVjb2Rlcikp
CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9iamVjdEdyYXBoRGVjb2RlcikpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY29kZXIubV9yb290ID0g
b2JqZWN0R3JhcGguZ2V0KCk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKaW5kZXggZjJjNmFmNDZjOTNkYjQ3ZjQ5ODBj
NmU4OTFmNjljYzc3YjJlODZlZi4uOTBlNWU3NmNkMTNlY2VhNTljZjNiOGUzNzc5NTEzNWQ5YmE3
ZTQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAK
QEAgLTQ2LDMwICs0NiwzMCBAQCB2b2lkIFBsdWdpbjo6UGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRpZgogfQogCi1ib29sIFBs
dWdpbjo6UGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK2Jvb2wgUGx1Z2luOjpQYXJhbWV0ZXJzOjpkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQogewogICAgIFN0cmluZyB1cmxTdHJpbmc7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
dXJsU3RyaW5nKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVybFN0cmluZykpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAvLyBGSVhNRTogV2UgY2FuJ3QgYXNzdW1lIHRoYXQgdGhlIHVy
bCBwYXNzZWQgaW4gaGVyZSBpcyB2YWxpZC4KICAgICBwYXJhbWV0ZXJzLnVybCA9IEtVUkwoUGFy
c2VkVVJMU3RyaW5nLCB1cmxTdHJpbmcpOwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFy
YW1ldGVycy5uYW1lcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm5hbWVz
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFt
ZXRlcnMudmFsdWVzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmFsdWVz
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFt
ZXRlcnMubWltZVR5cGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5taW1l
VHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShw
YXJhbWV0ZXJzLmlzRnVsbEZyYW1lUGx1Z2luKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMuaXNGdWxsRnJhbWVQbHVnaW4pKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRVc2VNYW51YWxMb2FkZXIpKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRVc2VNYW51YWxMb2FkZXIp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlRW51bShwYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGVFbnVtKHBhcmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIGlmIChwYXJhbWV0ZXJzLm5hbWVzLnNpemUoKSAh
PSBwYXJhbWV0ZXJzLnZhbHVlcy5zaXplKCkpIHsKLSAgICAgICAgZGVjb2Rlci0+bWFya0ludmFs
aWQoKTsKKyAgICAgICAgZGVjb2Rlci5tYXJrSW52YWxpZCgpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgK
aW5kZXggMjNhOWViNTZjZjkxMGRhN2YzYTk4OGVhNDEyZjYyZTliNWUyN2E3YS4uYTViOTYwZmVh
YmIxZjZiMzZiYmJmNGFjOTAwNzMxZDFlODVkYjRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW4uaApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsK
LSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFBh
cmFtZXRlcnMmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciYsIFBhcmFtZXRlcnMmKTsKICAgICB9OwogCiAgICAgLy8gU2V0cyB0aGUgYWN0aXZl
IHBsdWctaW4gY29udHJvbGxlciBhbmQgaW5pdGlhbGl6ZXMgdGhlIHBsdWctaW4uCg==
</data>
<flag name="review"
          id="205397"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="205406"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>