<?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>163805</bug_id>
          
          <creation_ts>2016-10-21 12:38:47 -0700</creation_ts>
          <short_desc>IndexedDB 2.0: Support IDBIndex name assignment</short_desc>
          <delta_ts>2016-10-24 09:27:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>160306</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1243047</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-21 12:38:47 -0700</bug_when>
    <thetext>IndexedDB 2.0: Support IDBIndex name assignment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243048</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-21 12:39:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/28806932&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243125</commentid>
    <comment_count>2</comment_count>
      <attachid>292420</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-21 15:27:35 -0700</bug_when>
    <thetext>Created attachment 292420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243228</commentid>
    <comment_count>3</comment_count>
      <attachid>292420</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-21 19:24:44 -0700</bug_when>
    <thetext>Comment on attachment 292420
Patch

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

&gt; Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:197
&gt; +template&lt;typename MP1, typename P1, typename MP2, typename P2, typename MP3, typename P3&gt;

Could this be variadic with template&lt;...&gt; template&lt;...&gt; ?

&gt; LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-rename-errors-expected.txt:6
&gt; +FAIL IndexedDB index rename throws in an inactive transaction assert_throws: function &quot;() =&gt; authorIndex.name = &apos;renamed_by_author&apos;&quot; threw object &quot;InvalidStateError (DOM Exception 11): Failed set property...&quot; that is not a DOMException TransactionInactiveError: property &quot;code&quot; is equal to 11, expected 0
&gt; +FAIL IndexedDB index rename to the name of another index throws assert_throws: function &quot;() =&gt; index.name = &apos;by_title&apos;&quot; threw object &quot;InvalidStateError (DOM Exception 11): Failed set property...&quot; that is not a DOMException ConstraintError: property &quot;code&quot; is equal to 11, expected 0

It seems like not all your errors are correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243229</commentid>
    <comment_count>4</comment_count>
      <attachid>292420</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-21 19:26:49 -0700</bug_when>
    <thetext>Comment on attachment 292420
Patch

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

&gt; LayoutTests/storage/indexeddb/modern/resources/index-rename-1.js:104
&gt; +		index.name = &quot;YetAnotherName&quot;;

Try setting it to an existing name and make sure it overwrites the other existing index.
Try setting it to its same name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243712</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-24 08:43:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 292420 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=292420&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:197
&gt; &gt; +template&lt;typename MP1, typename P1, typename MP2, typename P2, typename MP3, typename P3&gt;
&gt; 
&gt; Could this be variadic with template&lt;...&gt; template&lt;...&gt; ?

Possibly, but as we learned with the Function overhauls, a lot of edge cases come up.

I already scribbled &quot;Fully templatize TransactionOperation&quot; on my white board. :)

&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-rename-errors-expected.txt:6
&gt; &gt; +FAIL IndexedDB index rename throws in an inactive transaction assert_throws: function &quot;() =&gt; authorIndex.name = &apos;renamed_by_author&apos;&quot; threw object &quot;InvalidStateError (DOM Exception 11): Failed set property...&quot; that is not a DOMException TransactionInactiveError: property &quot;code&quot; is equal to 11, expected 0
&gt; &gt; +FAIL IndexedDB index rename to the name of another index throws assert_throws: function &quot;() =&gt; index.name = &apos;by_title&apos;&quot; threw object &quot;InvalidStateError (DOM Exception 11): Failed set property...&quot; that is not a DOMException ConstraintError: property &quot;code&quot; is equal to 11, expected 0
&gt; 
&gt; It seems like not all your errors are correct.

This is *known* to not be correct - We&apos;re not making an effort to 100% fix these tests yet.

Doing so is clearly part of the IDB 2.0 effort.

(In reply to comment #4)
&gt; Comment on attachment 292420 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=292420&amp;action=review
&gt; 
&gt; &gt; LayoutTests/storage/indexeddb/modern/resources/index-rename-1.js:104
&gt; &gt; +		index.name = &quot;YetAnotherName&quot;;
&gt; 
&gt; Try setting it to an existing name and make sure it overwrites the other
&gt; existing index.

We already try that, and it does not overwrite the other one; It throws an exception.

&gt; Try setting it to its same name.

This will just throw an exception, as well, but should be tested. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243713</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-24 08:46:50 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; Try setting it to its same name.
&gt; 
&gt; This will just throw an exception, as well, but should be tested. Thanks!

Sorry I lied, no exception - It just stops the rename algorithm there.

Still will add the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243715</commentid>
    <comment_count>7</comment_count>
      <attachid>292614</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-24 08:51:52 -0700</bug_when>
    <thetext>Created attachment 292614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243722</commentid>
    <comment_count>8</comment_count>
      <attachid>292614</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-24 09:26:58 -0700</bug_when>
    <thetext>Comment on attachment 292614
Patch

Clearing flags on attachment: 292614

Committed r207761: &lt;http://trac.webkit.org/changeset/207761&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243723</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-24 09:27:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292420</attachid>
            <date>2016-10-21 15:27:35 -0700</date>
            <delta_ts>2016-10-24 08:51:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163805-20161021152356.patch</filename>
            <type>text/plain</type>
            <size>94571</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Njk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmExMDU5Nzk4NDRlNDFj
OTBkOTVhYWViZmI0NzEyYzRhZjEwZDVkMy4uMzhmNjYyNDM1MGFmOTk4NDNlMGVkYTIzZjdkNjhj
ZWNmZmFiMGExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAxNi0xMC0yMSAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5kZXhlZERCIDIuMDog
U3VwcG9ydCBJREJJbmRleCBuYW1lIGFzc2lnbm1lbnQuCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yODgwNjkzMj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjM4MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0czogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LXJlbmFtZS0xLXByaXZhdGUuaHRt
bAorICAgICAgICAgICAgICAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LXJlbmFtZS0x
Lmh0bWwKKworICAgICAgICBUb3VjaGVzIGEgKmxvdCogb2YgY29kZSBzaXRlcywgYnV0IG5vbmUg
b2YgdGhlbSBhcmUgcGFydGljdWxhcmx5IGludGVyZXN0aW5nLgorICAgICAgICBUaGV5IGFyZSBh
bGwganVzdCBnZXR0aW5nIHRoZSBuZXcgbmFtZSBzcHJlYWQgb3V0IHRvIGFsbCBvZiB0aGUgdmFy
aW91cyBvYmplY3RzIHRoYXQgbmVlZCBpdC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpyZW5hbWVJ
bmRleCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkluZGV4OjpJREJJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6c2V0TmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6cm9sbGJhY2tJbmZvRm9yVmVyc2lvbkNo
YW5nZUFib3J0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbDoKKworICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlOjpyb2xsYmFja0ZvclZlcnNpb25DaGFuZ2VBYm9ydCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJPYmplY3RTdG9yZTo6cmVuYW1lUmVmZXJlbmNlZEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQk9iamVjdFN0b3JlOjpyb2xsYmFja0luZm9Gb3JWZXJzaW9uQ2hhbmdlQWJvcnQp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6
CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6aW50ZXJuYWxBYm9ydCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb246OnJlbmFtZUluZGV4T25TZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb246OmRpZFJlbmFtZUluZGV4T25TZXJ2ZXIpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpyZW5hbWVJbmRleCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6cmVuYW1lSW5k
ZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmRpZFJlbmFtZUluZGV4KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rpb25PcGVyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24pOgorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oOgorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkUmVuYW1lSW5k
ZXgpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9D
bGllbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlv
blRvQ2xpZW50RGVsZWdhdGUuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6
OnJlbmFtZUluZGV4KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1v
cnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6aW5kZXhSZW5hbWVkKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmFib3J0KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb24uaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJC
YWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJC
YWNraW5nU3RvcmU6OnJlbmFtZUluZGV4KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5SW5kZXguaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
TWVtb3J5SW5kZXg6OnJlbmFtZSk6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpN
ZW1vcnlPYmplY3RTdG9yZTo6cmVuYW1lSW5kZXgpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5kZXgpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaDoKKwor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJ
bmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpw
ZXJmb3JtUmVuYW1lSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZTo6ZGlkUGVyZm9ybVJlbmFtZUluZGV4KToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKworICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZFJl
bmFtZUluZGV4KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2VDb25uZWN0aW9uLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OnJlbmFtZUluZGV4KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbi5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5m
by5oOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbmZvOjpyZW5hbWUpOgorCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUluZm86OmluZm9Gb3JFeGlzdGluZ0luZGV4KToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmg6
CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0RGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXN1bHREYXRhOjpyZW5hbWVJbmRleFN1Y2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmg6CisKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkUmVuYW1lSW5kZXgpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpyZW5hbWVJbmRleCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oOgorCiAy
MDE2LTEwLTIxICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1Mg
UGFyc2VyXSBNYWtlIHN1cmUgc2hhZG93IHVzZXIgYWdlbnQgc2hlZXRzIHBhcnNlIGluIFVBU2hl
ZXRNb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjc3Yzk4MDdlMzU5OGEyMjc4OTk1MjQ3NWI5ZTBkNDA4OGYw
YTUxYS4uMWRlMjFhM2E1OTNhZjZiYWQzYmU5ZWMwYzFlMDZjZTI4Mzk0OWE3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDE2LTEwLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBJbmRleGVkREIgMi4wOiBTdXBwb3J0IElEQkluZGV4IG5hbWUg
YXNzaWdubWVudC4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4ODA2OTMyPiBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzgwNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFJlbmFtZUluZGV4KToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpyZW5hbWVJbmRleCk6CisgICAgICAgICogRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaDoKKyAgICAgICAg
KiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNz
YWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OnJlbmFtZUluZGV4KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpkaWRSZW5hbWVJbmRleCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVz
c2FnZXMuaW46CisKIDIwMTYtMTAtMjEgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29t
PgogCiAgICAgICAgIEltcGxlbWVudCBiYXNpYyBwb2ludGVyIGxvY2sgYmVoYXZpb3IgZm9yIFdl
YktpdCBhbmQgV2ViS2l0Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmNwcAppbmRleCAzZWQ3YzdhODZkYjhlNTFhY2I1ZDRjODUwODQwODZjOTFi
OWQyZjhlLi43ZTdhNzZhYTcwODU5MjUyNDM5YjlhZTliYzZjMWJhYTI4ZDRmMDNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblByb3h5LmgiCiAjaW5jbHVkZSAi
SURCQ29ubmVjdGlvblRvU2VydmVyLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRpb24u
aCIKKyNpbmNsdWRlICJJREJJbmRleC5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCiAj
aW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlJlc3VsdERhdGEuaCIK
QEAgLTExNyw2ICsxMTgsMTggQEAgdm9pZCBJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0U3RvcmUo
SURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBjb25zdCBTdHJpbmcmIG4KICAgICBtX3ZlcnNp
b25DaGFuZ2VUcmFuc2FjdGlvbi0+cmVuYW1lT2JqZWN0U3RvcmUob2JqZWN0U3RvcmUsIG5ld05h
bWUpOwogfQogCit2b2lkIElEQkRhdGFiYXNlOjpyZW5hbWVJbmRleChJREJJbmRleCYgaW5kZXgs
IGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKK3sKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09
IG9yaWdpblRocmVhZElEKCkpOworICAgIEFTU0VSVChtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
bik7CisgICAgQVNTRVJUKG1faW5mby5oYXNPYmplY3RTdG9yZShpbmRleC5vYmplY3RTdG9yZSgp
LmluZm8oKS5uYW1lKCkpKTsKKyAgICBBU1NFUlQobV9pbmZvLmluZm9Gb3JFeGlzdGluZ09iamVj
dFN0b3JlKGluZGV4Lm9iamVjdFN0b3JlKCkuaW5mbygpLm5hbWUoKSktPmhhc0luZGV4KGluZGV4
LmluZm8oKS5uYW1lKCkpKTsKKworICAgIG1faW5mby5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9y
ZShpbmRleC5vYmplY3RTdG9yZSgpLmluZm8oKS5uYW1lKCkpLT5pbmZvRm9yRXhpc3RpbmdJbmRl
eChpbmRleC5pbmZvKCkuaWRlbnRpZmllcigpKS0+cmVuYW1lKG5ld05hbWUpOworCisgICAgbV92
ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPnJlbmFtZUluZGV4KGluZGV4LCBuZXdOYW1lKTsKK30K
KwogRXhjZXB0aW9uT3I8UmVmPElEQk9iamVjdFN0b3JlPj4gSURCRGF0YWJhc2U6OmNyZWF0ZU9i
amVjdFN0b3JlKGNvbnN0IFN0cmluZyYsIGNvbnN0IERpY3Rpb25hcnkmKQogewogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmgKaW5kZXggN2RlNjQ1ODhhYzlhNGYwNTNjYWMxZjMyMDMxMzFkZmNjN2UwZmQ5
OC4uNjUxYzJhOTgxNDE0NzY5N2UzOTFiNzI2NjQ1Yzk5ZTNiMWU3NzFlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC02Myw2ICs2Myw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlKCk7CiAKICAgICB2b2lkIHJlbmFtZU9iamVjdFN0
b3JlKElEQk9iamVjdFN0b3JlJiwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKKyAgICB2b2lkIHJl
bmFtZUluZGV4KElEQkluZGV4JiwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKIAogICAgIC8vIEV2
ZW50VGFyZ2V0CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBJREJEYXRhYmFzZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXguY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCmlu
ZGV4IDA0MzBhZjRiZmE4NTUxZTFkNDk1YmQ0OGMxNzdlYzRiMWY5NDQ2MDYuLjk3NzZhMmI3OTU0
OGZiMmU3ZWNlZWJmZWYzMzg2ZTE3MTU5NmIzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogSURCSW5kZXg6OklEQkluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbywgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3Jl
KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9pbmZvKGluZm8pCisg
ICAgLCBtX29yaWdpbmFsSW5mbyhpbmZvKQogICAgICwgbV9vYmplY3RTdG9yZShvYmplY3RTdG9y
ZSkKIHsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fb2JqZWN0U3RvcmUudHJhbnNh
Y3Rpb24oKS5kYXRhYmFzZSgpLm9yaWdpblRocmVhZElEKCkpOwpAQCAtNzgsNiArNzksMzQgQEAg
Y29uc3QgU3RyaW5nJiBJREJJbmRleDo6bmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5mby5u
YW1lKCk7CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IElEQkluZGV4OjpzZXROYW1lKGNvbnN0IFN0
cmluZyYgbmFtZSkKK3sKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fb2JqZWN0U3Rv
cmUudHJhbnNhY3Rpb24oKS5kYXRhYmFzZSgpLm9yaWdpblRocmVhZElEKCkpOworCisgICAgaWYg
KG1fZGVsZXRlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVfRVJS
LCBBU0NJSUxpdGVyYWwoIkZhaWxlZCBzZXQgcHJvcGVydHkgJ25hbWUnIG9uICdJREJJbmRleCc6
IFRoZSBpbmRleCBoYXMgYmVlbiBkZWxldGVkLiIpIH07CisKKyAgICBpZiAobV9vYmplY3RTdG9y
ZS5pc0RlbGV0ZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVf
RVJSLCBBU0NJSUxpdGVyYWwoIkZhaWxlZCBzZXQgcHJvcGVydHkgJ25hbWUnIG9uICdJREJJbmRl
eCc6IFRoZSBpbmRleCdzIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLiIpIH07CisKKyAg
ICBpZiAoIW1fb2JqZWN0U3RvcmUudHJhbnNhY3Rpb24oKS5pc1ZlcnNpb25DaGFuZ2UoKSkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVfRVJSLCBBU0NJSUxpdGVyYWwo
IkZhaWxlZCBzZXQgcHJvcGVydHkgJ25hbWUnIG9uICdJREJJbmRleCc6IFRoZSBpbmRleCdzIHRy
YW5zYWN0aW9uIGlzIG5vdCBhIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uLiIpIH07CisKKyAg
ICBpZiAoIW1fb2JqZWN0U3RvcmUudHJhbnNhY3Rpb24oKS5pc0FjdGl2ZSgpKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIsIEFTQ0lJTGl0ZXJhbCgiRmFpbGVk
IHNldCBwcm9wZXJ0eSAnbmFtZScgb24gJ0lEQkluZGV4JzogVGhlIGluZGV4J3MgdHJhbnNhY3Rp
b24gaXMgbm90IGFjdGl2ZS4iKSB9OworCisgICAgaWYgKG1faW5mby5uYW1lKCkgPT0gbmFtZSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmIChtX29iamVjdFN0b3JlLmluZm8oKS5oYXNJ
bmRleChuYW1lKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVfRVJS
LCBtYWtlU3RyaW5nKCJGYWlsZWQgc2V0IHByb3BlcnR5ICduYW1lJyBvbiAnSURCSW5kZXgnOiBU
aGUgb3duaW5nIG9iamVjdCBzdG9yZSBhbHJlYWR5IGhhcyBhbiBpbmRleCBuYW1lZCAnIiwgbmFt
ZSwgIicuIikgfTsKKworICAgIG1fb2JqZWN0U3RvcmUudHJhbnNhY3Rpb24oKS5kYXRhYmFzZSgp
LnJlbmFtZUluZGV4KCp0aGlzLCBuYW1lKTsKKyAgICBtX2luZm8ucmVuYW1lKG5hbWUpOworCisg
ICAgcmV0dXJuIHsgfTsKK30KKwogSURCT2JqZWN0U3RvcmUmIElEQkluZGV4OjpvYmplY3RTdG9y
ZSgpCiB7CiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX29iamVjdFN0b3JlLnRyYW5z
YWN0aW9uKCkuZGF0YWJhc2UoKS5vcmlnaW5UaHJlYWRJRCgpKTsKQEAgLTEwMiw2ICsxMzEsMTIg
QEAgYm9vbCBJREJJbmRleDo6bXVsdGlFbnRyeSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5mby5t
dWx0aUVudHJ5KCk7CiB9CiAKK3ZvaWQgSURCSW5kZXg6OnJvbGxiYWNrSW5mb0ZvclZlcnNpb25D
aGFuZ2VBYm9ydCgpCit7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX29iamVjdFN0
b3JlLnRyYW5zYWN0aW9uKCkuZGF0YWJhc2UoKS5vcmlnaW5UaHJlYWRJRCgpKTsKKyAgICBtX2lu
Zm8gPSBtX29yaWdpbmFsSW5mbzsKK30KKwogRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBJ
REJJbmRleDo6b3BlbkN1cnNvcihFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgSURCS2V5UmFuZ2UqIHJh
bmdlLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZykKIHsKICAgICBMT0coSW5kZXhlZERC
LCAiSURCSW5kZXg6Om9wZW5DdXJzb3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJJbmRleC5oCmluZGV4IGRhZTY5NWIyMDZjYTZhZWI0MzAwZDZjNjYzOGIzNmMxZDBl
NmNhZTUuLjU2ZTJiNzBkYjljYTI1NTU1YTQ5MWE4OWU4YTBjMTIxZjY1M2Q2NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaApAQCAtNDgsMTEgKzQ4LDE0
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJJbmRleCgpOwogCiAgICAgY29uc3QgU3RyaW5n
JiBuYW1lKCkgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TmFtZShjb25zdCBTdHJp
bmcmKTsKICAgICBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUoKTsKICAgICBjb25zdCBJREJL
ZXlQYXRoJiBrZXlQYXRoKCkgY29uc3Q7CiAgICAgYm9vbCB1bmlxdWUoKSBjb25zdDsKICAgICBi
b29sIG11bHRpRW50cnkoKSBjb25zdDsKIAorICAgIHZvaWQgcm9sbGJhY2tJbmZvRm9yVmVyc2lv
bkNoYW5nZUFib3J0KCk7CisKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IG9wZW5D
dXJzb3IoSlNDOjpFeGVjU3RhdGUmLCBJREJLZXlSYW5nZSosIGNvbnN0IFN0cmluZyYgZGlyZWN0
aW9uKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IG9wZW5DdXJzb3IoSlNDOjpF
eGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7CiAK
QEAgLTg3LDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0IGZpbmFsOwogCiAgICAgSURCSW5kZXhJbmZvIG1faW5mbzsKKyAgICBJREJJbmRleElu
Zm8gbV9vcmlnaW5hbEluZm87CiAKICAgICBib29sIG1fZGVsZXRlZCB7IGZhbHNlIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbAppbmRleCA4Yjcz
YmM4MTI3NzRiOTEwYjE1ZGI2ZDMwNGMxMGY5MWEzNTI5MmZhLi44YzMzYzY1ODU5NGQ3NzliODFk
ZDg2YzA5OWQzNThlOTBmNTU2N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXguaWRsCkBAIC0zMCw3ICszMCw3IEBACiAgICAgSlNDdXN0b21NYXJrRnVu
Y3Rpb24sCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiBdIGludGVyZmFjZSBJREJJbmRleCB7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgIFtTZXR0ZXJNYXlU
aHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBJREJPYmplY3RTdG9yZSBvYmplY3RTdG9yZTsKICAgICBbSW1wbGVtZW50YXRpb25S
ZXR1cm5UeXBlPUlEQktleVBhdGhdIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkga2V5UGF0aDsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtdWx0aUVudHJ5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGQ0MWQx
MjQwZTNiYzNkYmEzMzE5MWI2NjE0ODM0OGNlYTIzZTE2NTEuLmEwNGRhNjE5ZTcyNTQxNWE1NTRj
NDMxNTE1NjE2NTEzY2RlYWJlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTUyNiwxMCArNTI2LDE0IEBAIHZvaWQg
SURCT2JqZWN0U3RvcmU6Om1hcmtBc0RlbGV0ZWQoKQogICAgIG1fZGVsZXRlZCA9IHRydWU7CiB9
CiAKLXZvaWQgSURCT2JqZWN0U3RvcmU6OnJvbGxiYWNrSW5mb0ZvclZlcnNpb25DaGFuZ2VBYm9y
dCgpCit2b2lkIElEQk9iamVjdFN0b3JlOjpyb2xsYmFja0ZvclZlcnNpb25DaGFuZ2VBYm9ydCgp
CiB7CiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX3RyYW5zYWN0aW9uLT5kYXRhYmFz
ZSgpLm9yaWdpblRocmVhZElEKCkpOwogICAgIG1faW5mbyA9IG1fb3JpZ2luYWxJbmZvOworCisg
ICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX3JlZmVyZW5jZWRJbmRleExvY2spOworICAgIGZvciAo
YXV0byYgaW5kZXggOiBtX3JlZmVyZW5jZWRJbmRleGVzLnZhbHVlcygpKQorICAgICAgICBpbmRl
eC0+cm9sbGJhY2tJbmZvRm9yVmVyc2lvbkNoYW5nZUFib3J0KCk7CiB9CiAKIHZvaWQgSURCT2Jq
ZWN0U3RvcmU6OnZpc2l0UmVmZXJlbmNlZEluZGV4ZXMoU2xvdFZpc2l0b3ImIHZpc2l0b3IpIGNv
bnN0CkBAIC01MzksNiArNTQzLDIxIEBAIHZvaWQgSURCT2JqZWN0U3RvcmU6OnZpc2l0UmVmZXJl
bmNlZEluZGV4ZXMoU2xvdFZpc2l0b3ImIHZpc2l0b3IpIGNvbnN0CiAgICAgICAgIHZpc2l0b3Iu
YWRkT3BhcXVlUm9vdChpbmRleC5nZXQoKSk7CiB9CiAKK3ZvaWQgSURCT2JqZWN0U3RvcmU6OnJl
bmFtZVJlZmVyZW5jZWRJbmRleChJREJJbmRleCYgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmV3TmFt
ZSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCT2JqZWN0U3RvcmU6OnJlbmFtZVJlZmVyZW5j
ZWRJbmRleCIpOworCisgICAgYXV0byogaW5kZXhJbmZvID0gbV9pbmZvLmluZm9Gb3JFeGlzdGlu
Z0luZGV4KGluZGV4LmluZm8oKS5pZGVudGlmaWVyKCkpOworICAgIEFTU0VSVChpbmRleEluZm8p
OworICAgIGluZGV4SW5mby0+cmVuYW1lKG5ld05hbWUpOworCisgICAgQVNTRVJUKG1fcmVmZXJl
bmNlZEluZGV4ZXMuY29udGFpbnMoaW5kZXguaW5mbygpLm5hbWUoKSkpOworICAgIEFTU0VSVCgh
bV9yZWZlcmVuY2VkSW5kZXhlcy5jb250YWlucyhuZXdOYW1lKSk7CisgICAgQVNTRVJUKG1fcmVm
ZXJlbmNlZEluZGV4ZXMuZ2V0KGluZGV4LmluZm8oKS5uYW1lKCkpID09ICZpbmRleCk7CisKKyAg
ICBtX3JlZmVyZW5jZWRJbmRleGVzLnNldChuZXdOYW1lLCBtX3JlZmVyZW5jZWRJbmRleGVzLnRh
a2UoaW5kZXguaW5mbygpLm5hbWUoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCmluZGV4IDllZTYyZDM3OWQ5YTE4
NzA0YTk2ODIxNmM0NDFlZDIwMWNkYWFmMzQuLmEyY2M0YTQ3NjM1NzAzMWFmMjZmYTc2OTk1NjZj
MzI0MzhhM2IwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmUuaApAQCAtOTMsOSArOTMsMTAgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
SURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvOyB9CiAKLSAg
ICB2b2lkIHJvbGxiYWNrSW5mb0ZvclZlcnNpb25DaGFuZ2VBYm9ydCgpOworICAgIHZvaWQgcm9s
bGJhY2tGb3JWZXJzaW9uQ2hhbmdlQWJvcnQoKTsKIAogICAgIHZvaWQgdmlzaXRSZWZlcmVuY2Vk
SW5kZXhlcyhKU0M6OlNsb3RWaXNpdG9yJikgY29uc3Q7CisgICAgdm9pZCByZW5hbWVSZWZlcmVu
Y2VkSW5kZXgoSURCSW5kZXgmLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogCiBwcml2YXRlOgog
ICAgIElEQk9iamVjdFN0b3JlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBJREJPYmpl
Y3RTdG9yZUluZm8mLCBJREJUcmFuc2FjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDMyZTk0M2FkMjNjMWRk
YzZkYWQyNjI0NGEzZTFmMTMxYjFlMGYwNzYuLmE0Yzg2NjJhZTBhYTRlYWM2ZTg4Y2VhZWQyYzE4
Njg1ZWNhOWU3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIElEQlRyYW5zYWN0
aW9uOjppbnRlcm5hbEFib3J0KCkKIAogICAgIGlmIChpc1ZlcnNpb25DaGFuZ2UoKSkgewogICAg
ICAgICBmb3IgKGF1dG8mIG9iamVjdFN0b3JlIDogbV9yZWZlcmVuY2VkT2JqZWN0U3RvcmVzLnZh
bHVlcygpKQotICAgICAgICAgICAgb2JqZWN0U3RvcmUtPnJvbGxiYWNrSW5mb0ZvclZlcnNpb25D
aGFuZ2VBYm9ydCgpOworICAgICAgICAgICAgb2JqZWN0U3RvcmUtPnJvbGxiYWNrRm9yVmVyc2lv
bkNoYW5nZUFib3J0KCk7CiAgICAgfQogCiAgICAgdHJhbnNpdGlvbmVkVG9GaW5pc2hpbmcoSW5k
ZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpBYm9ydGluZyk7CkBAIC02NzcsNiArNjc3LDQwIEBA
IHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZENyZWF0ZUluZGV4T25TZXJ2ZXIoY29uc3QgSURCUmVz
dWx0RGF0YSYgcmVzdWx0RGF0YSkKICAgICBhYm9ydER1ZVRvRmFpbGVkUmVxdWVzdChET01FcnJv
cjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpnZXRFcnJvck5hbWUocmVzdWx0RGF0YS5l
cnJvcigpLmNvZGUoKSksIHJlc3VsdERhdGEuZXJyb3IoKS5tZXNzYWdlKCkpKTsKIH0KIAordm9p
ZCBJREJUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXgoSURCSW5kZXgmIGluZGV4LCBjb25zdCBTdHJp
bmcmIG5ld05hbWUpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpyZW5h
bWVJbmRleCIpOworICAgIEFTU0VSVChpc1ZlcnNpb25DaGFuZ2UoKSk7CisgICAgQVNTRVJUKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBt
X2RhdGFiYXNlLT5vcmlnaW5UaHJlYWRJRCgpKTsKKworICAgIEFTU0VSVChtX3JlZmVyZW5jZWRP
YmplY3RTdG9yZXMuY29udGFpbnMoaW5kZXgub2JqZWN0U3RvcmUoKS5pbmZvKCkubmFtZSgpKSk7
CisgICAgQVNTRVJUKG1fcmVmZXJlbmNlZE9iamVjdFN0b3Jlcy5nZXQoaW5kZXgub2JqZWN0U3Rv
cmUoKS5pbmZvKCkubmFtZSgpKSA9PSAmaW5kZXgub2JqZWN0U3RvcmUoKSk7CisKKyAgICBpbmRl
eC5vYmplY3RTdG9yZSgpLnJlbmFtZVJlZmVyZW5jZWRJbmRleChpbmRleCwgbmV3TmFtZSk7CisK
KyAgICB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBpbmRleC5vYmplY3RTdG9yZSgp
LmluZm8oKS5pZGVudGlmaWVyKCk7CisgICAgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyID0gaW5k
ZXguaW5mbygpLmlkZW50aWZpZXIoKTsKKyAgICBhdXRvIG9wZXJhdGlvbiA9IElEQkNsaWVudDo6
Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsICZJREJUcmFuc2FjdGlvbjo6ZGlkUmVu
YW1lSW5kZXhPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpyZW5hbWVJbmRleE9uU2VydmVyLCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSk7CisgICAgc2No
ZWR1bGVPcGVyYXRpb24oV1RGTW92ZShvcGVyYXRpb24pKTsKK30KKwordm9pZCBJREJUcmFuc2Fj
dGlvbjo6cmVuYW1lSW5kZXhPblNlcnZlcihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9u
JiBvcGVyYXRpb24sIGNvbnN0IHVpbnQ2NF90JiBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IHVpbnQ2NF90JiBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKK3sKKyAg
ICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OnJlbmFtZUluZGV4T25TZXJ2ZXIiKTsK
KyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fZGF0YWJhc2UtPm9yaWdpblRocmVhZElE
KCkpOworICAgIEFTU0VSVChpc1ZlcnNpb25DaGFuZ2UoKSk7CisKKyAgICBtX2RhdGFiYXNlLT5j
b25uZWN0aW9uUHJveHkoKS5yZW5hbWVJbmRleChvcGVyYXRpb24sIG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lKTsKK30KKwordm9pZCBJREJUcmFuc2FjdGlv
bjo6ZGlkUmVuYW1lSW5kZXhPblNlcnZlcihjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRh
KQoreworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6ZGlkUmVuYW1lSW5kZXhP
blNlcnZlciIpOworICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9kYXRhYmFzZS0+b3Jp
Z2luVGhyZWFkSUQoKSk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHREYXRhLCByZXN1bHREYXRh
LnR5cGUoKSA9PSBJREJSZXN1bHRUeXBlOjpSZW5hbWVJbmRleFN1Y2Nlc3MgfHwgcmVzdWx0RGF0
YS50eXBlKCkgPT0gSURCUmVzdWx0VHlwZTo6RXJyb3IpOworfQorCiBSZWY8SURCUmVxdWVzdD4g
SURCVHJhbnNhY3Rpb246OnJlcXVlc3RPcGVuQ3Vyc29yKEV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBJ
REJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIGNvbnN0IElEQkN1cnNvckluZm8mIGluZm8pCiB7
CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0T3BlbkN1cnNvciIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmgKaW5kZXggMjY1NzRhOGM5MmNlNzhlNGVlYzBhNDZjZjU1YjJlZWM5ZTVmZjdlYS4uZWE0ZWYx
NGYzMGY2NGQ0NTkzMGQ1ZDEyNGYyOTQzNzIxMzQzNDFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCkBAIC0xMTUsNiArMTE1LDcg
QEAgcHVibGljOgogICAgIFJlZjxJREJPYmplY3RTdG9yZT4gY3JlYXRlT2JqZWN0U3RvcmUoY29u
c3QgSURCT2JqZWN0U3RvcmVJbmZvJik7CiAgICAgdm9pZCByZW5hbWVPYmplY3RTdG9yZShJREJP
YmplY3RTdG9yZSYsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PElEQkluZGV4PiBjcmVhdGVJbmRleChJREJPYmplY3RTdG9yZSYsIGNvbnN0IElEQkluZGV4SW5m
byYpOworICAgIHZvaWQgcmVuYW1lSW5kZXgoSURCSW5kZXgmLCBjb25zdCBTdHJpbmcmIG5ld05h
bWUpOwogCiAgICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3RQdXRPckFkZChKU0M6OkV4ZWNTdGF0
ZSYsIElEQk9iamVjdFN0b3JlJiwgSURCS2V5KiwgU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgSW5k
ZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUpOwogICAgIFJlZjxJREJSZXF1ZXN0PiBy
ZXF1ZXN0R2V0UmVjb3JkKEpTQzo6RXhlY1N0YXRlJiwgSURCT2JqZWN0U3RvcmUmLCBjb25zdCBJ
REJHZXRSZWNvcmREYXRhJik7CkBAIC0xNzgsNiArMTc5LDkgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGNyZWF0ZUluZGV4T25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNv
bnN0IElEQkluZGV4SW5mbyYpOwogICAgIHZvaWQgZGlkQ3JlYXRlSW5kZXhPblNlcnZlcihjb25z
dCBJREJSZXN1bHREYXRhJik7CiAKKyAgICB2b2lkIHJlbmFtZUluZGV4T25TZXJ2ZXIoSURCQ2xp
ZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IHVpbnQ2NF90JiBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIGNvbnN0IHVpbnQ2NF90JiBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmV3TmFtZSk7CisgICAgdm9pZCBkaWRSZW5hbWVJbmRleE9uU2VydmVyKGNvbnN0IElEQlJlc3Vs
dERhdGEmKTsKKwogICAgIHZvaWQgY2xlYXJPYmplY3RTdG9yZU9uU2VydmVyKElEQkNsaWVudDo6
VHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25zdCB1aW50NjRfdCYgb2JqZWN0U3RvcmVJZGVudGlm
aWVyKTsKICAgICB2b2lkIGRpZENsZWFyT2JqZWN0U3RvcmVPblNlcnZlcihJREJSZXF1ZXN0Jiwg
Y29uc3QgSURCUmVzdWx0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4
IGFhNWYxOTEzZjgzMGE4OTYyNGI2NDIyNWQxZTQ4MzE3ZThmZjlmY2YuLmNlNzcyMDhlMDA3Yzg0
N2E5ZTBlYTQ5ZjA0NjRmZDc1MDZhOWZkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3Bw
CkBAIC0xMzMsNiArMTMzLDE0IEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpyZW5hbWVPYmpl
Y3RTdG9yZShUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCB1aW50CiAgICAgY2FsbENv
bm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6cmVuYW1lT2JqZWN0
U3RvcmUsIHJlcXVlc3REYXRhLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIG5ld05hbWUpOwogfQog
Cit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6cmVuYW1lSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRp
b24mIG9wZXJhdGlvbiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBp
bmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKK3sKKyAgICBjb25zdCBJREJS
ZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YShvcGVyYXRpb24pOworICAgIHNhdmVPcGVyYXRpb24ob3Bl
cmF0aW9uKTsKKworICAgIGNhbGxDb25uZWN0aW9uT25NYWluVGhyZWFkKCZJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OnJlbmFtZUluZGV4LCByZXF1ZXN0RGF0YSwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUpOworfQorCiB2b2lkIElEQkNvbm5lY3Rpb25Qcm94
eTo6ZGVsZXRlT2JqZWN0U3RvcmUoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgY29u
c3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCiB7CiAgICAgY29uc3QgSURCUmVxdWVzdERhdGEg
cmVxdWVzdERhdGEob3BlcmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaAppbmRleCAwMDUy
YTQ0ZmFiYTgzOWZkZGY1ODRiY2U0MTVhZWU3NTYxMzIwZmJiLi44NDQ4ODVhODc5OWMwNzViMmUw
OGNjOTU0MzI3OTEyMjBlZDRlOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCkBAIC03OCw2
ICs3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG9wZW5DdXJzb3IoVHJhbnNhY3Rpb25PcGVyYXRp
b24mLCBjb25zdCBJREJDdXJzb3JJbmZvJik7CiAgICAgdm9pZCBpdGVyYXRlQ3Vyc29yKFRyYW5z
YWN0aW9uT3BlcmF0aW9uJiwgY29uc3QgSURCS2V5RGF0YSYsIHVuc2lnbmVkIGxvbmcgY291bnQp
OwogICAgIHZvaWQgcmVuYW1lT2JqZWN0U3RvcmUoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CisgICAg
dm9pZCByZW5hbWVJbmRleChUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5l
d05hbWUpOwogCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwogICAgIHZvaWQgZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggZDZhYTg1ODE2N2Q4Y2ExNWI5ZjQ1
MzhhOWQ2Y2EyOTA5YzlhM2JmNi4uYTA0ZWJmZjk4YmEwYWIxNmI1NDEzZTEwMTUxODI3MzRmNjUz
ZWJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTE3Miw2ICsxNzIs
MjAgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZERlbGV0ZUluZGV4KGNvbnN0IElE
QlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiAgICAgbV9wcm94eS0+Y29tcGxldGVPcGVyYXRpb24o
cmVzdWx0RGF0YSk7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpyZW5hbWVJbmRl
eChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05h
bWUpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6cmVuYW1l
SW5kZXgiKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgbV9kZWxlZ2F0ZS0+
cmVuYW1lSW5kZXgocmVxdWVzdERhdGEsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVu
dGlmaWVyLCBuZXdOYW1lKTsKK30KKwordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZFJl
bmFtZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCit7CisgICAgTE9HKElu
ZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkUmVuYW1lSW5kZXgiKTsKKyAgICBt
X3Byb3h5LT5jb21wbGV0ZU9wZXJhdGlvbihyZXN1bHREYXRhKTsKK30KKwogdm9pZCBJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBJREJWYWx1ZSYgdmFsdWUsIGNvbnN0IElu
ZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlIG92ZXJ3cml0ZU1vZGUpCiB7CiAgICAg
TE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6cHV0T3JBZGQiKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCBiZTI2OWI2ZDMzZDYwYTExNWU5ODBiZjQ4MDBl
YThkN2IyNTU2OWMwLi5kNDhhOTkzMzNiY2I1ZWRmODhkNTNmY2NhYTA4YzAzYTg2MjQwMGRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC04MCw2ICs4MCw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWREZWxldGVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJik7CiAKKyAg
ICB2b2lkIHJlbmFtZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmV3TmFtZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRSZW5hbWVJbmRleChjb25zdCBJ
REJSZXN1bHREYXRhJik7CisKICAgICB2b2lkIHB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRh
JiwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQlZhbHVlJiwgY29uc3QgSW5kZXhlZERCOjpP
YmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUHV0
T3JBZGQoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
VG9TZXJ2ZXJEZWxlZ2F0ZS5oCmluZGV4IDljZTc1NDliNjM4OGQzZTRiZWYwNTVhYjkxNDY5YzAy
YTM1YTk4NWIuLjU1YTZmNmIxNjI2NjE5MDMzMTU2YWFjNjE0NDNmY2MwZjU1NGJmNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCkBAIC02Nyw2ICs2Nyw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJS
ZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQklu
ZGV4SW5mbyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgSURCUmVx
dWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
aW5kZXhOYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbmFtZUluZGV4KGNvbnN0IElEQlJl
cXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRl
eElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBjb25z
dCBJREJWYWx1ZSYsIGNvbnN0IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNv
bnN0IElEQkdldFJlY29yZERhdGEmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldENvdW50KGNv
bnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9u
T3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJh
bnNhY3Rpb25PcGVyYXRpb24uaAppbmRleCBiZjA3YmJjYTg1ZWQzZTI2YjJiOGQ5NTkzZjAwOWNi
YWM1ZDM4NmYzLi40YThlZmViZDNmODBmOWU2MjU4ZWQ3OTAxOTAxZWFiMWU1NmViYWU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rp
b25PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvVHJhbnNhY3Rpb25PcGVyYXRpb24uaApAQCAtMTk0LDYgKzE5NCwxOSBAQCBSZWZQdHI8VHJh
bnNhY3Rpb25PcGVyYXRpb24+IGNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKAogICAgIHJldHVy
biBhZG9wdFJlZihvcGVyYXRpb24pOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBNUDEsIHR5cGVu
YW1lIFAxLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1l
IFAzPgorUmVmUHRyPFRyYW5zYWN0aW9uT3BlcmF0aW9uPiBjcmVhdGVUcmFuc2FjdGlvbk9wZXJh
dGlvbigKKyAgICBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sCisgICAgdm9pZCAoSURCVHJh
bnNhY3Rpb246Oipjb21wbGV0ZSkoY29uc3QgSURCUmVzdWx0RGF0YSYpLAorICAgIHZvaWQgKElE
QlRyYW5zYWN0aW9uOjoqcGVyZm9ybSkoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBNUDEsIE1QMiwg
TVAzKSwKKyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVy
MiwKKyAgICBjb25zdCBQMyYgcGFyYW1ldGVyMykKK3sKKyAgICBhdXRvIG9wZXJhdGlvbiA9IG5l
dyBUcmFuc2FjdGlvbk9wZXJhdGlvbkltcGw8TVAxLCBNUDIsIE1QMz4odHJhbnNhY3Rpb24sIGNv
bXBsZXRlLCBwZXJmb3JtLCBwYXJhbWV0ZXIxLCBwYXJhbWV0ZXIyLCBwYXJhbWV0ZXIzKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYob3BlcmF0aW9uKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgTVAx
LCB0eXBlbmFtZSBQMT4KIFJlZlB0cjxUcmFuc2FjdGlvbk9wZXJhdGlvbj4gY3JlYXRlVHJhbnNh
Y3Rpb25PcGVyYXRpb24oCiAgICAgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdT
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tp
bmdTdG9yZS5oCmluZGV4IGY4YTIwMzk3YTZhNGZhOWJlNjM1NDRkYWY5MDMyNTVlYmMyYmNlZTUu
LjhmMTdhMmZlMGI4MzczYTY4NTE0M2EwZTRlM2ZiNGFhMDM3MzAwYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0
b3JlLmgKQEAgLTc0LDYgKzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSURCRXJyb3IgY2xl
YXJPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVh
bCBJREJFcnJvciBjcmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCSW5kZXhJbmZvJikgPSAwOwogICAgIHZpcnR1YWwg
SURCRXJyb3IgZGVsZXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3Qg
aW5kZXhJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciByZW5hbWVJbmRleChj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmV3TmFtZSkgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3Iga2V5RXhpc3RzSW5P
YmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwg
Ym9vbCYga2V5RXhpc3RzKSA9IDA7CiAgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVSYW5nZShj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKSA9IDA7CiAg
ICAgdmlydHVhbCBJREJFcnJvciBhZGRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIGNvbnN0
IElEQktleURhdGEmLCBjb25zdCBJREJWYWx1ZSYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25U
b0NsaWVudC5jcHAKaW5kZXggNGY4YmU5YWM4NWNmZTA5YzdhYTUxOGNiZDI3YTdiZWI4NmUxYzA5
Mi4uNTMwMGMwMWNhOTMzMWFmODk2ZGQwOTlmYWY2ODYzYjJlNzhhMjViMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTkzLDYgKzkzLDExIEBAIHZvaWQgSURCQ29ubmVj
dGlvblRvQ2xpZW50OjpkaWREZWxldGVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQp
CiAgICAgbV9kZWxlZ2F0ZS0+ZGlkRGVsZXRlSW5kZXgocmVzdWx0KTsKIH0KIAordm9pZCBJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZFJlbmFtZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmIHJl
c3VsdCkKK3sKKyAgICBtX2RlbGVnYXRlLT5kaWRSZW5hbWVJbmRleChyZXN1bHQpOworfQorCiB2
b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkUHV0T3JBZGQoY29uc3QgSURCUmVzdWx0RGF0
YSYgcmVzdWx0KQogewogICAgIG1fZGVsZWdhdGUtPmRpZFB1dE9yQWRkKHJlc3VsdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVj
dGlvblRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQ29ubmVjdGlvblRvQ2xpZW50LmgKaW5kZXggOWU4ZjhkYzk2OGFlNDA2OGI2Njk5NjVjZGFk
NDFjZTVmNWUyOTFiNy4uZTMwMjFiYzY1MTZiNGEwNWE2ZDU3MGVhM2ZjYThkNjdmYmUyOGJkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAg
ICB2b2lkIGRpZENyZWF0ZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRp
ZERlbGV0ZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKKyAgICB2b2lkIGRpZFJlbmFtZUlu
ZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZFB1dE9yQWRkKGNvbnN0IElE
QlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZEdldFJlY29yZChjb25zdCBJREJSZXN1bHREYXRh
Jik7CiAgICAgdm9pZCBkaWRHZXRDb3VudChjb25zdCBJREJSZXN1bHREYXRhJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlv
blRvQ2xpZW50RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCmluZGV4IGZkYmJmZTA5MzFlNWQ1
MjQ1NjkxYWZiNTY0ZDYyZWM2ODMxMzBiZWQuLmQ3NjdmNjg0MTdhNDM5NWY3OTA0YWFiNjFjZDJk
ODU0YTEwNmYwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0
ZS5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYXJP
YmplY3RTdG9yZShjb25zdCBJREJSZXN1bHREYXRhJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRDcmVhdGVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWREZWxldGVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZW5hbWVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRQdXRPckFkZChjb25zdCBJREJSZXN1bHREYXRhJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRHZXRSZWNvcmQoY29uc3QgSURCUmVzdWx0RGF0YSYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkR2V0Q291bnQoY29uc3QgSURCUmVzdWx0RGF0YSYpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAK
aW5kZXggMjhiZDNlYjQwZmQ4ZmI0M2VjNGIyMTJjZDE5NWYwNTQxZDM0ZjVjNi4uZjczZWEyNDNh
ODc4MjFiN2UwY2RmNmMzNmMyYThjZDI4ZTY2N2ZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTI2MCw2ICsy
NjAsMTggQEAgdm9pZCBJREJTZXJ2ZXI6OmRlbGV0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgdWludDY0X3Qgb2JqZWN0U3QKICAgICB0cmFuc2FjdGlvbi0+ZGVsZXRl
SW5kZXgocmVxdWVzdERhdGEsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhOYW1lKTsKIH0K
IAordm9pZCBJREJTZXJ2ZXI6OnJlbmFtZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1
ZXN0RGF0YSwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAi
SURCU2VydmVyOjpyZW5hbWVJbmRleCIpOworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJh
bnNhY3Rpb25zLmdldChyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSk7CisgICAg
aWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKHRyYW5zYWN0
aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CisgICAgdHJhbnNhY3Rpb24tPnJlbmFtZUluZGV4KHJl
cXVlc3REYXRhLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFt
ZSk7Cit9CisKIHZvaWQgSURCU2VydmVyOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IElEQlZhbHVlJiB2
YWx1ZSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgb3ZlcndyaXRlTW9kZSkK
IHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCU2VydmVyOjpwdXRPckFkZCIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4
IDA1ZTQ0MmFlNjMwZDFjZTY2MjNmNjlhMDZhMmY5MWFhZTEyZDM1YTcuLmI1OTE4YzA2N2YxODlk
YTQyNGFmYmNiMTJjZWI1YjBiNTMxYmZlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTcxLDYgKzcxLDcgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJS
ZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBjcmVhdGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElE
QkluZGV4SW5mbyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlSW5kZXgoY29uc3Qg
SURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgaW5kZXhOYW1lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbmFtZUluZGV4KGNv
bnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50
NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktl
eURhdGEmLCBjb25zdCBJREJWYWx1ZSYsIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVN
b2RlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IElEQkdldFJlY29yZERhdGEmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcAppbmRleCAy
NTQ4MzEzYmYyODFhMmY1OTgyNTc2MDU0NDUwNTA3NTc5NjcxNTliLi40ODM0Mzg0Njc3OWFiYzA5
ZWY1YTJlMTc5YjIzYTEzMGQ3ZGFmODk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbi5jcHAKQEAgLTE2MCw2ICsxNjAsMTYgQEAgdm9pZCBNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmVSZW5hbWVkKE1lbW9yeU9iamVjdFN0b3Jl
JiBvYmplY3QKICAgICBtX29yaWdpbmFsT2JqZWN0U3RvcmVOYW1lcy5hZGQoJm9iamVjdFN0b3Jl
LCBvbGROYW1lKTsKIH0KIAordm9pZCBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6aW5k
ZXhSZW5hbWVkKE1lbW9yeUluZGV4JiBpbmRleCwgY29uc3QgU3RyaW5nJiBvbGROYW1lKQorewor
ICAgIEFTU0VSVChtX29iamVjdFN0b3Jlcy5jb250YWlucygmaW5kZXgub2JqZWN0U3RvcmUoKSkp
OworICAgIEFTU0VSVChtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2Rl
OjpWZXJzaW9uQ2hhbmdlKTsKKworICAgIC8vIFdlIG9ubHkgY2FyZSBhYm91dCB0aGUgZmlyc3Qg
cmVuYW1lIGluIGEgZ2l2ZW4gdHJhbnNhY3Rpb24sIGJlY2F1c2UgaWYgdGhlIHRyYW5zYWN0aW9u
IGlzIGFib3J0ZWQgd2Ugd2FudAorICAgIC8vIHRvIGdvIGJhY2sgdG8gdGhlIGZpcnN0ICdvbGRO
YW1lJworICAgIG1fb3JpZ2luYWxJbmRleE5hbWVzLmFkZCgmaW5kZXgsIG9sZE5hbWUpOworfQor
CiB2b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjppbmRleENsZWFyZWQoTWVtb3J5
SW5kZXgmIGluZGV4LCBzdGQ6OnVuaXF1ZV9wdHI8SW5kZXhWYWx1ZVN0b3JlPiYmIHZhbHVlU3Rv
cmUpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2NsZWFyZWRJbmRleFZhbHVlU3RvcmVzLmFk
ZCgmaW5kZXgsIG51bGxwdHIpOwpAQCAtMjAzLDYgKzIxMywxMCBAQCB2b2lkIE1lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCgpCiAKICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4g
Y2hhbmdlKG1faXNBYm9ydGluZywgdHJ1ZSk7CiAKKyAgICBmb3IgKGF1dG8gaXRlcmF0b3IgOiBt
X29yaWdpbmFsSW5kZXhOYW1lcykKKyAgICAgICAgaXRlcmF0b3Iua2V5LT5yZW5hbWUoaXRlcmF0
b3IudmFsdWUpOworICAgIG1fb3JpZ2luYWxJbmRleE5hbWVzLmNsZWFyKCk7CisKICAgICBmb3Ig
KGF1dG8gaXRlcmF0b3IgOiBtX29yaWdpbmFsT2JqZWN0U3RvcmVOYW1lcykKICAgICAgICAgaXRl
cmF0b3Iua2V5LT5yZW5hbWUoaXRlcmF0b3IudmFsdWUpOwogICAgIG1fb3JpZ2luYWxPYmplY3RT
dG9yZU5hbWVzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbi5oCmluZGV4IDk4YjI0NjkwMDdlZjU4YTY1YmNkOTY0OGE4N2ZlMGU1MTI3OGUxYmEuLjU3
ODBlY2Y0N2QwZGJiMjFjNTFkNTZiNzg5ZmNhZDkwYzk5NzNiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG9iamVjdFN0b3JlRGVsZXRlZChSZWY8TWVtb3J5T2JqZWN0U3RvcmU+JiYpOwog
ICAgIHZvaWQgb2JqZWN0U3RvcmVDbGVhcmVkKE1lbW9yeU9iamVjdFN0b3JlJiwgc3RkOjp1bmlx
dWVfcHRyPEtleVZhbHVlTWFwPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpzZXQ8SURCS2V5RGF0
YT4+JiYpOwogICAgIHZvaWQgb2JqZWN0U3RvcmVSZW5hbWVkKE1lbW9yeU9iamVjdFN0b3JlJiwg
Y29uc3QgU3RyaW5nJiBvbGROYW1lKTsKKyAgICB2b2lkIGluZGV4UmVuYW1lZChNZW1vcnlJbmRl
eCYsIGNvbnN0IFN0cmluZyYgb2xkTmFtZSk7CiAgICAgdm9pZCBpbmRleENsZWFyZWQoTWVtb3J5
SW5kZXgmLCBzdGQ6OnVuaXF1ZV9wdHI8SW5kZXhWYWx1ZVN0b3JlPiYmKTsKIAogICAgIHZvaWQg
YWRkTmV3SW5kZXgoTWVtb3J5SW5kZXgmKTsKQEAgLTk3LDYgKzk4LDcgQEAgcHJpdmF0ZToKICAg
ICBIYXNoTWFwPE1lbW9yeU9iamVjdFN0b3JlKiwgc3RkOjp1bmlxdWVfcHRyPEtleVZhbHVlTWFw
Pj4gbV9jbGVhcmVkS2V5VmFsdWVNYXBzOwogICAgIEhhc2hNYXA8TWVtb3J5T2JqZWN0U3RvcmUq
LCBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpzZXQ8SURCS2V5RGF0YT4+PiBtX2NsZWFyZWRPcmRlcmVk
S2V5czsKICAgICBIYXNoTWFwPE1lbW9yeU9iamVjdFN0b3JlKiwgU3RyaW5nPiBtX29yaWdpbmFs
T2JqZWN0U3RvcmVOYW1lczsKKyAgICBIYXNoTWFwPE1lbW9yeUluZGV4KiwgU3RyaW5nPiBtX29y
aWdpbmFsSW5kZXhOYW1lczsKICAgICBIYXNoTWFwPE1lbW9yeUluZGV4Kiwgc3RkOjp1bmlxdWVf
cHRyPEluZGV4VmFsdWVTdG9yZT4+IG1fY2xlYXJlZEluZGV4VmFsdWVTdG9yZXM7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGRmMjQwYjVkYmYzNzNmZDJmZWVm
MzU4NGE5N2JkYzk1NDI4NTIzNTguLmEyYmYyOGZlMWZhOTYxNTg3MDBlMTg0NjQzNjY2NWMyZDRl
NWYzMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0yNDgsNiArMjQ4
LDQyIEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5kZXgoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjCiAgICAgcmV0dXJuIG9iamVjdFN0b3JlLT5k
ZWxldGVJbmRleCgqcmF3VHJhbnNhY3Rpb24sIGluZGV4SWRlbnRpZmllcik7CiB9CiAKK0lEQkVy
cm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUp
Cit7CisgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5k
ZXgiKTsKKworICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CisgICAgYXV0byogb2JqZWN0U3Rv
cmVJbmZvID0gbV9kYXRhYmFzZUluZm8tPmluZm9Gb3JFeGlzdGluZ09iamVjdFN0b3JlKG9iamVj
dFN0b3JlSWRlbnRpZmllcik7CisgICAgaWYgKCFvYmplY3RTdG9yZUluZm8pCisgICAgICAgIHJl
dHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q29uc3RyYWludEVycm9yKTsKKwor
ICAgIGF1dG8qIGluZGV4SW5mbyA9IG9iamVjdFN0b3JlSW5mby0+aW5mb0ZvckV4aXN0aW5nSW5k
ZXgoaW5kZXhJZGVudGlmaWVyKTsKKyAgICBpZiAoIWluZGV4SW5mbykKKyAgICAgICAgcmV0dXJu
IElEQkVycm9yKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDb25zdHJhaW50RXJyb3IpOworCisgICAg
YXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkZW50aWZp
ZXIpOworICAgIEFTU0VSVCh0cmFuc2FjdGlvbik7CisgICAgQVNTRVJUKHRyYW5zYWN0aW9uLT5p
c1ZlcnNpb25DaGFuZ2UoKSk7CisKKyAgICBhdXRvIG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9y
ZXNCeUlkZW50aWZpZXIuZ2V0KG9iamVjdFN0b3JlSWRlbnRpZmllcik7CisgICAgQVNTRVJUKG9i
amVjdFN0b3JlKTsKKyAgICBpZiAoIW9iamVjdFN0b3JlKQorICAgICAgICByZXR1cm4gSURCRXJy
b3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvcik7CisKKyAgICBhdXRvKiBp
bmRleCA9IG9iamVjdFN0b3JlLT5pbmRleEZvcklkZW50aWZpZXIoaW5kZXhJZGVudGlmaWVyKTsK
KyAgICBBU1NFUlQoaW5kZXgpOworICAgIGlmICghaW5kZXgpCisgICAgICAgIHJldHVybiBJREJF
cnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q29uc3RyYWludEVycm9yKTsKKworICAgIFN0cmlu
ZyBvbGROYW1lID0gaW5kZXgtPmluZm8oKS5uYW1lKCk7CisgICAgb2JqZWN0U3RvcmUtPnJlbmFt
ZUluZGV4KCppbmRleCwgbmV3TmFtZSk7CisgICAgdHJhbnNhY3Rpb24tPmluZGV4UmVuYW1lZCgq
aW5kZXgsIG9sZE5hbWUpOworCisgICAgaW5kZXhJbmZvLT5yZW5hbWUobmV3TmFtZSk7CisKKyAg
ICByZXR1cm4gSURCRXJyb3IoKTsKK30KKwogdm9pZCBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJl
bW92ZU9iamVjdFN0b3JlRm9yVmVyc2lvbkNoYW5nZUFib3J0KE1lbW9yeU9iamVjdFN0b3JlJiBv
YmplY3RTdG9yZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpyZW1vdmVPYmplY3RTdG9yZUZvclZlcnNpb25DaGFuZ2VBYm9ydCIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlE
QkJhY2tpbmdTdG9yZS5oCmluZGV4IGI1Yjk4MWUyMDFlZmRhZTU0MmY0ZjdkNDE1NDU5MzQ4NzI5
ZTk1ODQuLmExNDI0Y2RjOGFjMTk3OGIxMmM3NDFhNTA2M2UyMzkzMDMzNGUzMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNr
aW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SURCQmFja2luZ1N0b3JlLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIElE
QkVycm9yIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgZmluYWw7
CiAgICAgSURCRXJyb3IgY3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYpIGZpbmFsOwogICAgIElE
QkVycm9yIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGlu
ZGV4SWRlbnRpZmllcikgZmluYWw7CisgICAgSURCRXJyb3IgcmVuYW1lSW5kZXgoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5ld05hbWUpIGZpbmFsOwogICAgIElEQkVycm9yIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGJvb2wmIGtleUV4aXN0
cykgZmluYWw7CiAgICAgSURCRXJyb3IgZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgZmluYWw7CiAgICAgSURCRXJyb3IgYWRkUmVj
b3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgSURCVmFs
dWUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlJbmRleC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUluZGV4LmgKaW5kZXggMzA1ZmE2YWU3NzI3ZGUzZTgzNTFhMTY5Y2NhNjJl
NmRmNDMxN2ViYy4uN2VjNDdjZWRlZjE2NjgwNjBmYzc1ZWRiNjY5ZTI0MzFiOGZjNmFiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlu
ZGV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUluZGV4LmgKQEAgLTYyLDYgKzYyLDggQEAgcHVibGljOgogCiAgICAgY29uc3QgSURCSW5kZXhJ
bmZvJiBpbmZvKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvOyB9CiAKKyAgICB2b2lkIHJlbmFtZShj
b25zdCBTdHJpbmcmIG5ld05hbWUpIHsgbV9pbmZvLnJlbmFtZShuZXdOYW1lKTsgfQorCiAgICAg
SURCR2V0UmVzdWx0IGdldFJlc3VsdEZvcktleVJhbmdlKEluZGV4ZWREQjo6SW5kZXhSZWNvcmRU
eXBlLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKSBjb25zdDsKICAgICB1aW50NjRfdCBjb3VudEZv
cktleVJhbmdlKGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3Jl
LmNwcAppbmRleCBmYzUxNWYyOTFmNzlhOGZhYjM4MDIwZGFlZjY1MTA4ODYxZDhlZWNmLi40MWU0
ZjQwM2M5ODg1MDQ3ZDFjM2U4MjFjZGU4NGYyYjA1M2Y2ZDdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RT
dG9yZS5jcHAKQEAgLTQ3NSw2ICs0NzUsMTcgQEAgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IqIE1l
bW9yeU9iamVjdFN0b3JlOjptYXliZU9wZW5DdXJzb3IoY29uc3QgSURCQ3Vyc29ySW5mbyYKICAg
ICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIH0KIAordm9pZCBNZW1vcnlP
YmplY3RTdG9yZTo6cmVuYW1lSW5kZXgoTWVtb3J5SW5kZXgmIGluZGV4LCBjb25zdCBTdHJpbmcm
IG5ld05hbWUpCit7CisgICAgQVNTRVJUKG1faW5kZXhlc0J5TmFtZS5nZXQoaW5kZXguaW5mbygp
Lm5hbWUoKSkgPT0gJmluZGV4KTsKKyAgICBBU1NFUlQoIW1faW5kZXhlc0J5TmFtZS5jb250YWlu
cyhuZXdOYW1lKSk7CisgICAgQVNTRVJUKG1faW5mby5pbmZvRm9yRXhpc3RpbmdJbmRleChpbmRl
eC5pbmZvKCkubmFtZSgpKSk7CisKKyAgICBtX2luZm8uaW5mb0ZvckV4aXN0aW5nSW5kZXgoaW5k
ZXguaW5mbygpLm5hbWUoKSktPnJlbmFtZShuZXdOYW1lKTsKKyAgICBtX2luZGV4ZXNCeU5hbWUu
c2V0KG5ld05hbWUsIG1faW5kZXhlc0J5TmFtZS50YWtlKGluZGV4LmluZm8oKS5uYW1lKCkpKTsK
KyAgICBpbmRleC5yZW5hbWUobmV3TmFtZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZl
cgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCmluZGV4IDNj
NzZhYTBhM2FhYjMwMjE2NmNkM2QzMmIzZmVhNWIxZWE3OTZmMjAuLjBiZjU3ZDk5YjlmN2E4Mjdh
NmE3NTJmNzdhM2QxMGQ3NmZmZGVlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCkBAIC05OCw2
ICs5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1heWJlUmVzdG9yZURlbGV0ZWRJbmRleChSZWY8
TWVtb3J5SW5kZXg+JiYpOwogCiAgICAgdm9pZCByZW5hbWUoY29uc3QgU3RyaW5nJiBuZXdOYW1l
KSB7IG1faW5mby5yZW5hbWUobmV3TmFtZSk7IH0KKyAgICB2b2lkIHJlbmFtZUluZGV4KE1lbW9y
eUluZGV4JiwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKIAogcHJpdmF0ZToKICAgICBNZW1vcnlP
YmplY3RTdG9yZShjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJh
Y2tpbmdTdG9yZS5jcHAKaW5kZXggMDI2MjE0NmY5ZDRkN2UwYTAxMmMyYzEzODYwZjc3NzNmNjg2
YWIxYS4uYmQ3NmVmNGYxMWQ4Yzk5ZjE5ZjQ0NWE4NWJjMDRiMmM4ZGEyNDA4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tp
bmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTEyNzUsNiArMTI3NSw0OSBAQCBJREJFcnJv
ciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhYwogICAgIHJldHVybiB7IH07CiB9CiAKK0lEQkVycm9yIFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWlu
dDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgTE9H
KEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5kZXggLSBvYmplY3Qg
c3RvcmUgJSIgUFJJdTY0ICIsIGluZGV4ICUiIFBSSXU2NCwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBpbmRleElkZW50aWZpZXIpOworCisgICAgQVNTRVJUKG1fc3FsaXRlREIpOworICAgIEFTU0VS
VChtX3NxbGl0ZURCLT5pc09wZW4oKSk7CisKKyAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBt
X2RhdGFiYXNlSW5mby0+aW5mb0ZvckV4aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVu
dGlmaWVyKTsKKyAgICBpZiAoIW9iamVjdFN0b3JlSW5mbykKKyAgICAgICAgcmV0dXJuIHsgSURC
RGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJDb3VsZCBub3Qg
cmVuYW1lIGluZGV4IikgfTsKKworICAgIGF1dG8qIGluZGV4SW5mbyA9IG9iamVjdFN0b3JlSW5m
by0+aW5mb0ZvckV4aXN0aW5nSW5kZXgoaW5kZXhJZGVudGlmaWVyKTsKKyAgICBpZiAoIWluZGV4
SW5mbykKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJv
ciwgQVNDSUlMaXRlcmFsKCJDb3VsZCBub3QgcmVuYW1lIGluZGV4IikgfTsKKworICAgIGF1dG8q
IHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7
CisgICAgaWYgKCF0cmFuc2FjdGlvbiB8fCAhdHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkgewor
ICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gcmVuYW1lIGFuIGluZGV4IHdpdGhvdXQgYW4g
aW4tcHJvZ3Jlc3MgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VF
eGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIHJlbmFtZSBh
biBpbmRleCB3aXRob3V0IGFuIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIikgfTsKKyAgICB9CisK
KyAgICBpZiAodHJhbnNhY3Rpb24tPm1vZGUoKSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9k
ZTo6VmVyc2lvbkNoYW5nZSkgeworICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gcmVuYW1l
IGFuIGluZGV4IGluIGEgbm9uLXZlcnNpb24tY2hhbmdlIHRyYW5zYWN0aW9uIik7CisgICAgICAg
IHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiQXR0ZW1wdCB0byByZW5hbWUgYW4gaW5kZXggaW4gYSBub24tdmVyc2lvbi1jaGFuZ2UgdHJh
bnNhY3Rpb24iKSB9OworICAgIH0KKworICAgIHsKKyAgICAgICAgU1FMaXRlU3RhdGVtZW50IHNx
bCgqbV9zcWxpdGVEQiwgQVNDSUlMaXRlcmFsKCJVUERBVEUgSW5kZXhJbmZvIFNFVCBuYW1lID0g
PyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQgaWQgPSA/OyIpKTsKKyAgICAgICAgaWYgKHNx
bC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuYmluZFRleHQoMSwg
bmV3TmFtZSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuYmluZEludDY0KDIsIG9i
amVjdFN0b3JlSWRlbnRpZmllcikgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuYmlu
ZEludDY0KDMsIGluZGV4SWRlbnRpZmllcikgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBz
cWwuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxk
IG5vdCB1cGRhdGUgbmFtZSBmb3IgaW5kZXggaWQgKCUiIFBSSWk2NCAiLCAlIiBQUklpNjQgIikg
aW4gSW5kZXhJbmZvIHRhYmxlICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5k
ZXhJZGVudGlmaWVyLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVy
cm9yTXNnKCkpOworICAgICAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVu
a25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJDb3VsZCBub3QgcmVuYW1lIGluZGV4IikgfTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGluZGV4SW5mby0+cmVuYW1lKG5ld05hbWUpOworCisgICAg
cmV0dXJuIHsgfTsKK30KKwogSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjprZXlFeGlz
dHNJbk9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlEYXRhJiBrZXlE
YXRhLCBib29sJiBrZXlFeGlzdHMpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZSAtIGtleSAlcywgb2JqZWN0IHN0b3Jl
ICUiIFBSSXU2NCwga2V5RGF0YS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgb2JqZWN0
U3RvcmVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKaW5kZXggODdkY2I5MjNjOTNi
NjI1ZWI5NTU4MGM2NTQ3MDczMGQ4NDJhMDQyYi4uOGMwYzliZWUyMTM2ZjU5Y2UyMDNjNjk0NWJh
NDE2YmQ3MWNhNGMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaApAQCAtNjIsNiAr
NjIsNyBAQCBwdWJsaWM6CiAgICAgSURCRXJyb3IgY2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyKSBmaW5hbDsKICAgICBJREJFcnJvciBjcmVhdGVJbmRleChjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCSW5k
ZXhJbmZvJikgZmluYWw7CiAgICAgSURCRXJyb3IgZGVsZXRlSW5kZXgoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBJREJFcnJv
ciByZW5hbWVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkgZmluYWw7CiAgICAgSURCRXJyb3Iga2V5
RXhpc3RzSW5PYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJL
ZXlEYXRhJiwgYm9vbCYga2V5RXhpc3RzKSBmaW5hbDsKICAgICBJREJFcnJvciBkZWxldGVSYW5n
ZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKSBmaW5h
bDsKICAgICBJREJFcnJvciBhZGRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIGNvbnN0IElE
QktleURhdGEmLCBjb25zdCBJREJWYWx1ZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5j
cHAKaW5kZXggYzI1Njc3YjdjMjY2ZmMxZjY2ZWRiOWVmMTIwYjI4NWNmNjI1NzU2Yy4uMzAyZjgz
N2ZkOWI1ODVjODM2ZWE5YTU5MzBlYjI2OGI0MTM3MmZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwCkBAIC04MTksNiArODE5LDYwIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBl
cmZvcm1EZWxldGVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0CiAgICAg
cGVyZm9ybUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcik7CiB9CiAKK3Zv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2
NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBFcnJvckNhbGxiYWNr
IGNhbGxiYWNrKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgTE9HKEluZGV4
ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lSW5kZXgiKTsKKworICAgIHVp
bnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrT3JGaXJlRXJyb3IoY2FsbGJhY2spOwor
ICAgIGlmICghY2FsbGJhY2tJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogb2JqZWN0
U3RvcmVJbmZvID0gbV9kYXRhYmFzZUluZm8tPmluZm9Gb3JFeGlzdGluZ09iamVjdFN0b3JlKG9i
amVjdFN0b3JlSWRlbnRpZmllcik7CisgICAgaWYgKCFvYmplY3RTdG9yZUluZm8pIHsKKyAgICAg
ICAgcGVyZm9ybUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJRCwgeyBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gcmVuYW1lIGluZGV4IGlu
IG5vbi1leGlzdGFudCBvYmplY3Qgc3RvcmUiKSB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGF1dG8qIGluZGV4SW5mbyA9IG9iamVjdFN0b3JlSW5mby0+aW5mb0ZvckV4aXN0aW5n
SW5kZXgoaW5kZXhJZGVudGlmaWVyKTsKKyAgICBpZiAoIWluZGV4SW5mbykgeworICAgICAgICBw
ZXJmb3JtRXJyb3JDYWxsYmFjayhjYWxsYmFja0lELCB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpV
bmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byByZW5hbWUgbm9uLWV4aXN0YW50
IGluZGV4IikgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwb3N0RGF0YWJhc2VU
YXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJm
b3JtUmVuYW1lSW5kZXgsIGNhbGxiYWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVy
KCksIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lKSk7Cit9
CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1SZW5hbWVJbmRleCh1aW50NjRfdCBj
YWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGlu
ZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQoreworICAgIEFTU0VSVCghaXNN
YWluVGhyZWFkKCkpOworICAgIExPRyhJbmRleGVkREIsICIoZGIpIFVuaXF1ZUlEQkRhdGFiYXNl
OjpwZXJmb3JtUmVuYW1lSW5kZXgiKTsKKworICAgIEFTU0VSVChtX2JhY2tpbmdTdG9yZSk7Cisg
ICAgbV9iYWNraW5nU3RvcmUtPnJlbmFtZUluZGV4KHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUpOworCisgICAgSURC
RXJyb3IgZXJyb3I7CisgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFk
VGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUmVuYW1lSW5kZXgsIGNh
bGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVu
dGlmaWVyLCBuZXdOYW1lKSk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZv
cm1SZW5hbWVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9y
JiBlcnJvciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRp
ZFBlcmZvcm1SZW5hbWVJbmRleCIpOworCisgICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7CisgICAg
ICAgIGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3Rp
bmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgICAgICBBU1NFUlQob2Jq
ZWN0U3RvcmVJbmZvKTsKKyAgICAgICAgaWYgKG9iamVjdFN0b3JlSW5mbykgeworICAgICAgICAg
ICAgYXV0byogaW5kZXhJbmZvID0gb2JqZWN0U3RvcmVJbmZvLT5pbmZvRm9yRXhpc3RpbmdJbmRl
eChpbmRleElkZW50aWZpZXIpOworICAgICAgICAgICAgQVNTRVJUKGluZGV4SW5mbyk7CisgICAg
ICAgICAgICBpbmRleEluZm8tPnJlbmFtZShuZXdOYW1lKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHBlcmZvcm1FcnJvckNhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IpOworfQor
CiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IElEQlZhbHVlJiB2
YWx1ZSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgb3ZlcndyaXRlTW9kZSwg
S2V5RGF0YUNhbGxiYWNrIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IDE5ZmExNTM3YzM2MmFhZmIwZTJlN2Q0ODZlNWIw
MTU1NmQ2YmE5MDMuLjVjZTY2ODhiNTQ0Njc1MmE0NmE4ODlmOWY5OTc0ZjVjZmM4MGM4MjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC05MSw2ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNsZWFyT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgRXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBjcmVhdGVJ
bmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgY29uc3QgSURCSW5kZXhJbmZvJiwg
RXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBkZWxldGVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGluZGV4TmFtZSwgRXJyb3JDYWxsYmFjayk7CisgICAgdm9pZCByZW5hbWVJbmRleChVbmlxdWVJ
REJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1
aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgRXJyb3JDYWxs
YmFjayk7CiAgICAgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElE
QktleURhdGEmLCBjb25zdCBJREJWYWx1ZSYsIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3Jp
dGVNb2RlLCBLZXlEYXRhQ2FsbGJhY2spOwogICAgIHZvaWQgZ2V0UmVjb3JkKGNvbnN0IElEQlJl
cXVlc3REYXRhJiwgY29uc3QgSURCR2V0UmVjb3JkRGF0YSYsIEdldFJlc3VsdENhbGxiYWNrKTsK
ICAgICB2b2lkIGdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFu
Z2VEYXRhJiwgQ291bnRDYWxsYmFjayk7CkBAIC0xNDksNiArMTUwLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHBlcmZvcm1DbGVhck9iamVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmll
ciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgdm9pZCBwZXJmb3JtQ3JlYXRlSW5k
ZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCSW5kZXhJbmZvJik7CiAgICAgdm9p
ZCBwZXJmb3JtRGVsZXRlSW5kZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIpOworICAgIHZvaWQg
cGVyZm9ybVJlbmFtZUluZGV4KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5ld05hbWUpOwogICAgIHZvaWQgcGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRl
bnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGNv
bnN0IElEQlZhbHVlJiwgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUpOwogICAg
IHZvaWQgcGVyZm9ybUdldFJlY29yZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwogICAgIHZvaWQg
cGVyZm9ybUdldEluZGV4UmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBJbmRleGVkREI6
OkluZGV4UmVjb3JkVHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CkBAIC0xNjgsNiArMTcw
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFBlcmZvcm1DbGVhck9iamVjdFN0b3JlKHVpbnQ2
NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKICAgICB2b2lkIGRpZFBl
cmZvcm1DcmVhdGVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVy
cm9yJiwgY29uc3QgSURCSW5kZXhJbmZvJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtRGVsZXRlSW5k
ZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGRpZFBlcmZvcm1SZW5hbWVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNv
bnN0IElEQkVycm9yJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBp
bmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CiAgICAgdm9pZCBkaWRQZXJm
b3JtUHV0T3JBZGQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYs
IGNvbnN0IElEQktleURhdGEmKTsKICAgICB2b2lkIGRpZFBlcmZvcm1HZXRSZWNvcmQodWludDY0
X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYsIGNvbnN0IElEQkdldFJlc3Vs
dCYpOwogICAgIHZvaWQgZGlkUGVyZm9ybUdldENvdW50KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRp
ZmllciwgY29uc3QgSURCRXJyb3ImLCB1aW50NjRfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24uY3BwCmluZGV4IDI1MmM1NGJhMmY2NjlkODExOTNkNzNjYjRjMWVi
ZmRmYzYwYTQ4MWIuLmZkMWMzYzNmZjcwMzMzMWU1ZjY0MjE4NDhjMjBkYWYxMWRkZTYwMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCkBAIC0yMTIsNiAr
MjEyLDEzIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWREZWxldGVJbmRl
eChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhCiAgICAgbV9jb25uZWN0aW9uVG9DbGll
bnQuZGlkRGVsZXRlSW5kZXgocmVzdWx0RGF0YSk7CiB9CiAKK3ZvaWQgVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uOjpkaWRSZW5hbWVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHRE
YXRhKQoreworICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246
OmRpZFJlbmFtZUluZGV4Iik7CisKKyAgICBtX2Nvbm5lY3Rpb25Ub0NsaWVudC5kaWRSZW5hbWVJ
bmRleChyZXN1bHREYXRhKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24u
aAppbmRleCA1NmNmN2RmNjhhNGVlMDQxNmU0NmFjMmJjY2NlMTRmYmQ3Yzg4MmU4Li5hNGYzNWJl
NDE4MTI2NzU4MTI3ZjU2MDFkOGY5N2ZjZDM3OTgzZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbi5oCkBAIC03Myw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZENsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlk
Q3JlYXRlSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkRGVsZXRlSW5k
ZXgoY29uc3QgSURCUmVzdWx0RGF0YSYpOworICAgIHZvaWQgZGlkUmVuYW1lSW5kZXgoY29uc3Qg
SURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICB2b2lkIGRp
ZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xvc2VGcm9tU2Vy
dmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAKaW5k
ZXggMGVjMmVhYjZiMjEyMGI0MGI5NDYzNTgzYjQ2Zjg5NjZiYjc1ZTNiNS4uMDU4OGQ3YzlmNjRi
NTliMjA0ZjUxYzg0ZjA1MjYyYjlhZmI1NmRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uLmNwcApAQCAtMjA0LDYgKzIwNCwyNCBAQCB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb246OmRlbGV0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiBy
ZXF1ZXN0RGF0YQogICAgIH0pOwogfQogCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b246OnJlbmFtZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmV3TmFtZSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXgiKTsKKworICAgIEFTU0VSVChpc1ZlcnNpb25DaGFu
Z2UoKSk7CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25JbmZvLmlkZW50aWZpZXIoKSA9PSByZXF1
ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSk7CisKKyAgICBSZWZQdHI8VW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBtX2RhdGFiYXNl
Q29ubmVjdGlvbi0+ZGF0YWJhc2UoKS5yZW5hbWVJbmRleCgqdGhpcywgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzLCBy
ZXF1ZXN0RGF0YV0oY29uc3QgSURCRXJyb3ImIGVycm9yKSB7CisgICAgICAgIExPRyhJbmRleGVk
REIsICJVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpyZW5hbWVJbmRleCAoY2FsbGJhY2sp
Iik7CisgICAgICAgIGlmIChlcnJvci5pc051bGwoKSkKKyAgICAgICAgICAgIG1fZGF0YWJhc2VD
b25uZWN0aW9uLT5kaWRSZW5hbWVJbmRleChJREJSZXN1bHREYXRhOjpyZW5hbWVJbmRleFN1Y2Nl
c3MocmVxdWVzdERhdGEucmVxdWVzdElkZW50aWZpZXIoKSkpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGlkUmVuYW1lSW5kZXgoSURCUmVzdWx0RGF0
YTo6ZXJyb3IocmVxdWVzdERhdGEucmVxdWVzdElkZW50aWZpZXIoKSwgZXJyb3IpKTsKKyAgICB9
KTsKK30KKworCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OnB1dE9yQWRkKGNv
bnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0
YSwgY29uc3QgSURCVmFsdWUmIHZhbHVlLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRl
TW9kZSBvdmVyd3JpdGVNb2RlKQogewogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uOjpwdXRPckFkZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uLmgKaW5kZXggOGNjZGI3N2EwNzdiZjMyN2YxYmUzN2Y5Mzc3NzEyODc4YmI3
ZjY1MC4uMjMyNmIzMGRlMTUyMmEzY2JiYWUwNzljNjQ0NGZjODM1OGNiYTc3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oCkBAIC03Myw2ICs3Myw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY3JlYXRlSW5kZXgoY29u
c3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJJbmRleEluZm8mKTsKICAgICB2b2lkIGRlbGV0
ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSk7CisgICAgdm9pZCByZW5hbWVJbmRleChjb25z
dCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0
X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogICAgIHZvaWQgcHV0
T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgSURC
VmFsdWUmLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7CiAgICAgdm9pZCBn
ZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJHZXRSZWNvcmREYXRhJik7
CiAgICAgdm9pZCBnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJh
bmdlRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQkluZGV4SW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQkluZGV4SW5mby5oCmluZGV4IDhlZTc5ODUwMDFjZTAzMmQyYjI5MzFjZTBiYzcz
MWJmNDZjNTUzYWUuLjdmMDlkOTJlMGI5NjliNzdiMTI1MWY1ZmVlOWU5NDJkMmM2MmRiOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRl
eEluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
SW5kZXhJbmZvLmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGljOgogICAgIGJvb2wgdW5pcXVlKCkg
Y29uc3QgeyByZXR1cm4gbV91bmlxdWU7IH0KICAgICBib29sIG11bHRpRW50cnkoKSBjb25zdCB7
IHJldHVybiBtX211bHRpRW50cnk7IH0KIAorICAgIHZvaWQgcmVuYW1lKGNvbnN0IFN0cmluZyYg
bmV3TmFtZSkgeyBtX25hbWUgPSBuZXdOYW1lOyB9CisKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBJREJJbmRleEluZm8mKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVj
dFN0b3JlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCT2JqZWN0U3RvcmVJbmZvLmNwcAppbmRleCAyODkyOGExZDEwMGJhYjA5YWQ5OGU5YzNjY2E1
YTJhYjUyNThmMzM4Li4zZjFjODVlMWRmZDBiM2UwYTllOGVkMmNlNzVjMzczODU3MTg5Yjc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2Jq
ZWN0U3RvcmVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcApAQCAtODUsNiArODUsMTUgQEAgSURCSW5kZXhJ
bmZvKiBJREJPYmplY3RTdG9yZUluZm86OmluZm9Gb3JFeGlzdGluZ0luZGV4KGNvbnN0IFN0cmlu
ZyYgbmFtZSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorSURCSW5kZXhJbmZvKiBJREJPYmpl
Y3RTdG9yZUluZm86OmluZm9Gb3JFeGlzdGluZ0luZGV4KHVpbnQ2NF90IGlkZW50aWZpZXIpCit7
CisgICAgYXV0byBpdGVyYXRvciA9IG1faW5kZXhNYXAuZmluZChpZGVudGlmaWVyKTsKKyAgICBp
ZiAoaXRlcmF0b3IgPT0gbV9pbmRleE1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICByZXR1cm4gJml0ZXJhdG9yLT52YWx1ZTsKK30KKwogSURCT2JqZWN0U3RvcmVJbmZv
IElEQk9iamVjdFN0b3JlSW5mbzo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIHsKICAgICBJREJPYmpl
Y3RTdG9yZUluZm8gcmVzdWx0ID0geyBtX2lkZW50aWZpZXIsIG1fbmFtZS5pc29sYXRlZENvcHko
KSwgbV9rZXlQYXRoLmlzb2xhdGVkQ29weSgpLCBtX2F1dG9JbmNyZW1lbnQgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9y
ZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmpl
Y3RTdG9yZUluZm8uaAppbmRleCBlODc5NjExZWVhMWM1YmExYjFiNzM1MTlkMzM3NTk1NzUzMzBk
MjIxLi5kZGVhMWVhMjEzYWE0ODMzMWFiZDYxMzg2ZDE0YzZmZjFjYjQ0YjE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJ
bmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9i
amVjdFN0b3JlSW5mby5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lu
ZGV4KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgYm9vbCBoYXNJbmRleCh1aW50NjRf
dCBpbmRleElkZW50aWZpZXIpIGNvbnN0OwogICAgIElEQkluZGV4SW5mbyogaW5mb0ZvckV4aXN0
aW5nSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBJREJJbmRleEluZm8qIGluZm9Gb3JF
eGlzdGluZ0luZGV4KHVpbnQ2NF90IGlkZW50aWZpZXIpOwogCiAgICAgVmVjdG9yPFN0cmluZz4g
aW5kZXhOYW1lcygpIGNvbnN0OwogICAgIGNvbnN0IEhhc2hNYXA8dWludDY0X3QsIElEQkluZGV4
SW5mbz4mIGluZGV4TWFwKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleE1hcDsgfQpAQCAtNzksNyAr
ODAsNiBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fbWF4SW5kZXhJRCB7IDAgfTsKIAogICAg
IEhhc2hNYXA8dWludDY0X3QsIElEQkluZGV4SW5mbz4gbV9pbmRleE1hcDsKLQogfTsKIAogdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmNwcAppbmRleCAwNzhjMTc3OWFjZjNm
NDhiN2EzOWRkMzkzY2EwYzEyZjAxMTg5ZmEyLi5kOTA2MWFiNjU0NjcwZDIxMDllOWMzMjJjMjVk
OWM5NDI4NDhhZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCUmVzdWx0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuY3BwCkBAIC0xNTksNiArMTU5LDExIEBAIElE
QlJlc3VsdERhdGEgSURCUmVzdWx0RGF0YTo6ZGVsZXRlSW5kZXhTdWNjZXNzKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgcmVxCiAgICAgcmV0dXJuIHsgSURCUmVzdWx0VHlwZTo6RGVsZXRl
SW5kZXhTdWNjZXNzLCByZXF1ZXN0SWRlbnRpZmllciB9OwogfQogCitJREJSZXN1bHREYXRhIElE
QlJlc3VsdERhdGE6OnJlbmFtZUluZGV4U3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyKQoreworICAgIHJldHVybiB7IElEQlJlc3VsdFR5cGU6OlJl
bmFtZUluZGV4U3VjY2VzcywgcmVxdWVzdElkZW50aWZpZXIgfTsKK30KKwogSURCUmVzdWx0RGF0
YSBJREJSZXN1bHREYXRhOjpwdXRPckFkZFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYgcmVzdWx0S2V5KQogewog
ICAgIElEQlJlc3VsdERhdGEgcmVzdWx0KElEQlJlc3VsdFR5cGU6OlB1dE9yQWRkU3VjY2Vzcywg
cmVxdWVzdElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmgKaW5kZXggZTg2MzhkODNmZDFlNDQ3ZjU2
ZTk3NmFlNjAwMzIzZDEwMjRkN2IyOC4uMDNiYjIyNTNiNzE5ODQwYTdmNjNjZWU2MmFhNTY3ZDNm
Zjc5ZWQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQlJlc3VsdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCUmVzdWx0RGF0YS5oCkBAIC01OCw2ICs1OCw3IEBAIGVudW0gY2xhc3MgSURC
UmVzdWx0VHlwZSB7CiAgICAgT3BlbkN1cnNvclN1Y2Nlc3MsCiAgICAgSXRlcmF0ZUN1cnNvclN1
Y2Nlc3MsCiAgICAgUmVuYW1lT2JqZWN0U3RvcmVTdWNjZXNzLAorICAgIFJlbmFtZUluZGV4U3Vj
Y2VzcywKIH07CiAKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewpAQCAtNzcsNiArNzgsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgY2xlYXJPYmplY3RTdG9yZVN1Y2Nlc3MoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgY3Jl
YXRlSW5kZXhTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpOwogICAgIHN0YXRp
YyBJREJSZXN1bHREYXRhIGRlbGV0ZUluZGV4U3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImKTsKKyAgICBzdGF0aWMgSURCUmVzdWx0RGF0YSByZW5hbWVJbmRleFN1Y2Nlc3MoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgcHV0
T3JBZGRTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IElEQktleURh
dGEmKTsKICAgICBzdGF0aWMgSURCUmVzdWx0RGF0YSBnZXRSZWNvcmRTdWNjZXNzKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IElEQkdldFJlc3VsdCYpOwogICAgIHN0YXRpYyBJ
REJSZXN1bHREYXRhIGdldENvdW50U3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
LCB1aW50NjRfdCBjb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmluZGV4IDE4MTM0
MmUzY2VhYTViZjAyNDU5ZGUzMzYxNTcxZjE4YjM3NTY0MzcuLmRjZTRjMzRlZThiMDljMmIwYzhk
NWE3OTczZjUzZTg0MTY0NDEzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC0x
NzQsNiArMTc0LDEzIEBAIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWREZWxldGVJbmRleChj
b25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQogICAgIH0pOwogfQogCit2b2lkIEluUHJv
Y2Vzc0lEQlNlcnZlcjo6ZGlkUmVuYW1lSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0
RGF0YSkKK3sKKyAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVzdWx0RGF0YV0geworICAgICAgICBtX2Nvbm5lY3Rp
b25Ub1NlcnZlci0+ZGlkUmVuYW1lSW5kZXgocmVzdWx0RGF0YSk7CisgICAgfSk7Cit9CisKIHZv
aWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRQdXRPckFkZChjb25zdCBJREJSZXN1bHREYXRhJiBy
ZXN1bHREYXRhKQogewogICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXN1bHREYXRhXSB7CkBAIC0yNzksNiArMjg2
LDEzIEBAIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkZWxldGVJbmRleChjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIHVpbnQ2NF90CiAgICAgfSk7CiB9CiAKK3ZvaWQgSW5Qcm9j
ZXNzSURCU2VydmVyOjpyZW5hbWVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERh
dGEsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRp
c3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3REYXRh
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZV0geworICAg
ICAgICBtX3NlcnZlci0+cmVuYW1lSW5kZXgocmVxdWVzdERhdGEsIG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lKTsKKyAgICB9KTsKK30KKwogdm9pZCBJblBy
b2Nlc3NJREJTZXJ2ZXI6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgY29uc3QgSURCVmFsdWUmIHZhbHVlLCBjb25z
dCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSBvdmVyd3JpdGVNb2RlKQogewog
ICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCByZXF1ZXN0RGF0YSwga2V5RGF0YSwgdmFsdWUsIG92ZXJ3cml0ZU1vZGVd
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9J
blByb2Nlc3NJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAppbmRleCA3NDQwNDNmMjFhMDY5NzkwNDFkNzJiNTIz
YTI2M2VkMjc0ODZhMDk5Li43ODM1NTAzOGYwOWVkNzM4N2I0NjM5ODA2OTA5NGZkMjg5MjBmM2Rm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Q
cm9jZXNzSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCkBAIC02OCw2ICs2OCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgY3JlYXRlSW5kZXgoY29uc3Qg
SURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJJbmRleEluZm8mKSBmaW5hbDsKICAgICB2b2lkIGRl
bGV0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSkgZmluYWw7CisgICAgdm9pZCByZW5hbWVJ
bmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpIGZpbmFs
OwogICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlE
YXRhJiwgY29uc3QgSURCVmFsdWUmLCBjb25zdCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3Zlcndy
aXRlTW9kZSkgZmluYWw7CiAgICAgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEm
LCBjb25zdCBJREJHZXRSZWNvcmREYXRhJikgZmluYWw7CiAgICAgdm9pZCBnZXRDb3VudChjb25z
dCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpIGZpbmFsOwpAQCAtOTQs
NiArOTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IElE
QlJlc3VsdERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGRpZENyZWF0ZUluZGV4KGNvbnN0IElEQlJl
c3VsdERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGRpZERlbGV0ZUluZGV4KGNvbnN0IElEQlJlc3Vs
dERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlbmFtZUluZGV4KGNvbnN0IElEQlJlc3VsdERh
dGEmKSBmaW5hbDsKICAgICB2b2lkIGRpZFB1dE9yQWRkKGNvbnN0IElEQlJlc3VsdERhdGEmKSBm
aW5hbDsKICAgICB2b2lkIGRpZEdldFJlY29yZChjb25zdCBJREJSZXN1bHREYXRhJikgZmluYWw7
CiAgICAgdm9pZCBkaWRHZXRDb3VudChjb25zdCBJREJSZXN1bHREYXRhJikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggODJkYzc0NGFjMzkzOWE3
NDA1YjdmODQxMjQ0Nzc3NTZlZDczZmU3NS4uMzA5ZjM3ZmQ5YmUxMTQxOGQ4NjQyZTk4MzlkYTI4
MjViYzliNGRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApA
QCAtMTI3LDYgKzEyNywxMSBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVs
ZXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdQogICAgIHNlbmQoTWVz
c2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkRGVsZXRlSW5kZXgocmVzdWx0RGF0
YSkpOwogfQogCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkUmVuYW1lSW5kZXgo
Y29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZFJlbmFtZUluZGV4KHJlc3VsdERh
dGEpKTsKK30KKwogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFB1dE9yQWRkKGNv
bnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRQdXRPckFkZChyZXN1bHREYXRhKSk7
CkBAIC0yNjAsNiArMjY1LDExIEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkZWxl
dGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgdWludDY0CiAgICAgRGF0YWJh
c2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5kZWxldGVJbmRleChyZXF1ZXN0LCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIG5hbWUpOwogfQogCit2b2lkIFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6cmVuYW1lSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5p
ZGJTZXJ2ZXIoKS5yZW5hbWVJbmRleChyZXF1ZXN0LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGlu
ZGV4SWRlbnRpZmllciwgbmV3TmFtZSk7Cit9CisKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCS2V5
RGF0YSYga2V5LCBjb25zdCBJREJWYWx1ZSYgdmFsdWUsIHVuc2lnbmVkIG92ZXJ3cml0ZU1vZGUp
CiB7CiAgICAgaWYgKG92ZXJ3cml0ZU1vZGUgIT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEluZGV4
ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlOjpOb092ZXJ3cml0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IGQ1NDgyMDExMWI4MmY2MTRkZmVmZmJmYzJl
NjFkMDUyYTQzYzRhYjkuLjJjOGU0ZGEzNzBiZmE3MTg1NGZlNjVlYTYwZTJlZTA3MDE1YTQ4Mjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtNjgsNiArNjgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklE
QlJlc3VsdERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGRpZENyZWF0ZUluZGV4KGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGRpZERlbGV0ZUluZGV4KGNvbnN0
IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlbmFtZUluZGV4
KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGRpZFB1dE9y
QWRkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGRpZEdl
dFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBk
aWRHZXRDb3VudChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CkBAIC05Nyw2
ICs5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29y
ZTo6SURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgY3JlYXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBX
ZWJDb3JlOjpJREJJbmRleEluZm8mKTsKICAgICB2b2lkIGRlbGV0ZUluZGV4KGNvbnN0IFdlYkNv
cmU6OklEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGluZGV4TmFtZSk7CisgICAgdm9pZCByZW5hbWVJbmRleChjb25zdCBXZWJDb3Jl
OjpJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0
X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogICAgIHZvaWQgcHV0
T3JBZGQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJL
ZXlEYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCVmFsdWUmLCB1bnNpZ25lZCBvdmVyd3JpdGVNb2Rl
KTsKICAgICB2b2lkIGdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNv
bnN0IFdlYkNvcmU6OklEQkdldFJlY29yZERhdGEmKTsKICAgICB2b2lkIGdldENvdW50KGNvbnN0
IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRh
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2Vz
LmluCmluZGV4IDIwYmI1NzU2YmVjMGQ5ODAwOGI4ZWQ3MmJiOTFhMWU4MzYwNzBlNTMuLmQ5ZmFi
ZDc2MjZkODIxZDg3NmRhZjFmYjk0NDY1NjY5ZWI3OGI1ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCkBAIC0zNCw2ICszNCw3IEBA
IG1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCB7CiAgICAgQ2xlYXJPYmplY3RT
dG9yZShXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyKTsKICAgICBDcmVhdGVJbmRleChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0
YSByZXF1ZXN0RGF0YSwgV2ViQ29yZTo6SURCSW5kZXhJbmZvIGluZm8pOwogICAgIERlbGV0ZUlu
ZGV4KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIFN0cmluZyBpbmRleE5hbWUpOworICAgIFJlbmFtZUluZGV4KFdlYkNv
cmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgU3RyaW5nIG5ld05hbWUpOwogICAgIFB1
dE9yQWRkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBXZWJDb3JlOjpJREJL
ZXlEYXRhIGtleSwgV2ViQ29yZTo6SURCVmFsdWUgdmFsdWUsIHVuc2lnbmVkIG92ZXJ3cml0ZU1v
ZGUpOwogICAgIEdldFJlY29yZChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwg
c3RydWN0IFdlYkNvcmU6OklEQkdldFJlY29yZERhdGEgZ2V0UmVjb3JkRGF0YSk7CiAgICAgR2V0
Q291bnQoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIHN0cnVjdCBXZWJDb3Jl
OjpJREJLZXlSYW5nZURhdGEgcmFuZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcAppbmRleCA2ZTY5NGM0YTM0ZDNkYjM1NTRhZjk0NTAxNDU4YzUy
Mjk4ODMwODM0Li43YjNiM2Y4MTYyYmQzZmZhNWU5MDZjYjg2NGNmNzk0YjI1NWUwYTFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMTM4
LDYgKzEzOCwxMSBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlSW5kZXgo
Y29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCB1aQogICAgIHNlbmQoTWVzc2FnZXM6
OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6RGVsZXRlSW5kZXgocmVxdWVzdERhdGEsIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgaW5kZXhOYW1lKSk7CiB9CiAKK3ZvaWQgV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjpyZW5hbWVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpSZW5hbWVJbmRleChyZXF1ZXN0RGF0YSwgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUpKTsKK30KKwogdm9pZCBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgY29uc3QgSURCVmFsdWUmIHZhbHVlLCBjb25z
dCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSBtb2RlKQogewogICAgIHNlbmQo
TWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6UHV0T3JBZGQocmVxdWVzdERhdGEs
IGtleURhdGEsIHZhbHVlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obW9kZSkpKTsKQEAgLTI1Myw2
ICsyNTgsMTEgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZERlbGV0ZUluZGV4
KGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+
ZGlkRGVsZXRlSW5kZXgocmVzdWx0KTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZFJlbmFtZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkKK3sKKyAgICBt
X2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkUmVuYW1lSW5kZXgocmVzdWx0KTsKK30KKwogdm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZFB1dE9yQWRkKGNvbnN0IElEQlJlc3VsdERhdGEm
IHJlc3VsdCkKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkUHV0T3JBZGQocmVzdWx0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCA2
ZDUyM2M2YTY0ZDQ5NmJiMzQ1ZDEwN2ZjMDI4MTMwZmVmYTFkMWU5Li4wOGU4MmI2NWYyNmU4Mjdi
NjEyNDcwN2VlM2ViNzIzM2M1N2QxZDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNs
ZWFyT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgY3JlYXRlSW5kZXgoY29uc3Qg
V2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJJbmRleEluZm8mKSBm
aW5hbDsKICAgICB2b2lkIGRlbGV0ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRh
JiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGluZGV4TmFt
ZSkgZmluYWw7CisgICAgdm9pZCByZW5hbWVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0
RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpIGZpbmFsOwogICAgIHZvaWQgcHV0T3JBZGQo
Y29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRh
JiwgY29uc3QgV2ViQ29yZTo6SURCVmFsdWUmLCBjb25zdCBXZWJDb3JlOjpJbmRleGVkREI6Ok9i
amVjdFN0b3JlT3ZlcndyaXRlTW9kZSkgZmluYWw7CiAgICAgdm9pZCBnZXRSZWNvcmQoY29uc3Qg
V2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJHZXRSZWNvcmREYXRh
JikgZmluYWw7CiAgICAgdm9pZCBnZXRDb3VudChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0
YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpIGZpbmFsOwpAQCAtODYsNiArODcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6
OklEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZENyZWF0ZUluZGV4KGNvbnN0IFdlYkNvcmU6
OklEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZERlbGV0ZUluZGV4KGNvbnN0IFdlYkNvcmU6
OklEQlJlc3VsdERhdGEmKTsKKyAgICB2b2lkIGRpZFJlbmFtZUluZGV4KGNvbnN0IFdlYkNvcmU6
OklEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZFB1dE9yQWRkKGNvbnN0IFdlYkNvcmU6OklE
QlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZEdldFJlY29yZChjb25zdCBXZWJJREJSZXN1bHQm
KTsKICAgICB2b2lkIGRpZEdldENvdW50KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1l
c3NhZ2VzLmluCmluZGV4IDliNDU3ZjVlNTc5MDk0ZTIyMmIzYmRjMzI0YmRiOWFhYjAxMzg0Y2Yu
LjM5ODAwZDEwMWVlYjBlYWU1NjliN2M3NGZlNDNlOTJhNmE3MjMwZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbgpA
QCAtMzMsNiArMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgewog
ICAgIERpZENsZWFyT2JqZWN0U3RvcmUoV2ViQ29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCiAg
ICAgRGlkQ3JlYXRlSW5kZXgoV2ViQ29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCiAgICAgRGlk
RGVsZXRlSW5kZXgoV2ViQ29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCisgICAgRGlkUmVuYW1l
SW5kZXgoV2ViQ29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCiAgICAgRGlkUHV0T3JBZGQoV2Vi
Q29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCiAgICAgRGlkR2V0UmVjb3JkKFdlYktpdDo6V2Vi
SURCUmVzdWx0IHJlc3VsdCkKICAgICBEaWRHZXRDb3VudChXZWJDb3JlOjpJREJSZXN1bHREYXRh
IHJlc3VsdCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAxYjlhZTU3YTZmMTQ2ZDcyNzhhZTY3OGVmZjI0MjM4ZGY0OWIyZjI2
Li42OWFhM2YyYTc2ZGMyZmQ5OTUwNGYwNzRkNjE2NzAxYjdlOTJkYTA4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTYtMTAtMjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEluZGV4ZWREQiAyLjA6IFN1cHBvcnQgSURCSW5kZXggbmFtZSBhc3NpZ25tZW50
LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg4MDY5MzI+IGFuZCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzODA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgt
cmVuYW1lLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1wcml2YXRlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5h
bWUtMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2luZGV4LXJlbmFtZS0xLmpzOiBBZGRlZC4KKworICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL3JlYWRvbmx5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9yZWFkb25seS1wcml2YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvcmVhZG9ubHkuanM6IFJlbW92ZWQgdGhlIHRlc3QgdGhhdCB2ZXJpZmll
cyB0aGF0IGluZGV4IG5hbWVzIGFyZQorICAgICAgICAgIHJlYWRvbmx5IGFzIHRoZXkgYXJlIG5v
IGxvbmdlciByZWFkb25seS4KKwogMjAxNi0xMC0yMCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBs
ZS5jb20+CiAKICAgICAgICAgU1ZHIHNob3VsZCBub3QgcGFpbnQgc2VsZWN0aW9uIHdpdGhpbiBh
IG1hc2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDNhODdkMmRhYWQ2OWI3MjQz
MzY1MTYwODkzNmQ3MDY4OWZhMThjYzcuLjVjNzU3YjY2NDg0ZTJkMzM2MjMxYmFlN2I0NjIyMTA5
MjFkZjQ1M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDE2LTEwLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbmRleGVkREIgMi4wOiBTdXBwb3J0IElEQkluZGV4IG5hbWUgYXNzaWdubWVudC4KKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI4ODA2OTMyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MzgwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleC1y
ZW5hbWUtZXJyb3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmluZGV4LXJlbmFtZS1leHBlY3RlZC50eHQ6CisKIDIwMTYtMTAtMjAgIFph
biBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcG9ydCBXM0Mg
RU1FIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleC1yZW5hbWUtZXJyb3JzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmluZGV4LXJlbmFtZS1lcnJvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDAwYTg1MjhiZDhhZDIyMWM1
YzhjMWYwNDZhNTlkYzQ4OTVlNzhmYTguLmYzYzk4MDg5NjhhOWNjMzI5YTIxOGQxNTBjYTBkZjhm
MzZjZWMxNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4LXJlbmFtZS1lcnJvcnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmluZGV4LXJlbmFtZS1lcnJvcnMtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDggQEAKIAot
RkFJTCBJbmRleGVkREIgZGVsZXRlZCBpbmRleCByZW5hbWUgdGhyb3dzIGFzc2VydF90aHJvd3M6
IGZ1bmN0aW9uICIoKSA9PiBpbmRleC5uYW1lID0gJ3JlbmFtZWRfYnlfYXV0aG9yJyIgZGlkIG5v
dCB0aHJvdwotRkFJTCBJbmRleGVkREIgaW5kZXggcmVuYW1lIHRocm93cyBpbiBhIHJlYWRvbmx5
IHRyYW5zYWN0aW9uIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiBpbmRleC5uYW1lID0g
J3JlbmFtZWRfYnlfYXV0aG9yJyIgZGlkIG5vdCB0aHJvdwotRkFJTCBJbmRleGVkREIgaW5kZXgg
cmVuYW1lIHRocm93cyBpbiBhIHJlYWR3cml0ZSB0cmFuc2FjdGlvbiBhc3NlcnRfdGhyb3dzOiBm
dW5jdGlvbiAiKCkgPT4gaW5kZXgubmFtZSA9ICdyZW5hbWVkX2J5X2F1dGhvciciIGRpZCBub3Qg
dGhyb3cKLUZBSUwgSW5kZXhlZERCIGluZGV4IHJlbmFtZSB0aHJvd3MgaW4gYW4gaW5hY3RpdmUg
dHJhbnNhY3Rpb24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+IGF1dGhvckluZGV4Lm5h
bWUgPSAncmVuYW1lZF9ieV9hdXRob3InIiBkaWQgbm90IHRocm93Ci1GQUlMIEluZGV4ZWREQiBp
bmRleCByZW5hbWUgdG8gdGhlIG5hbWUgb2YgYW5vdGhlciBpbmRleCB0aHJvd3MgYXNzZXJ0X3Ro
cm93czogZnVuY3Rpb24gIigpID0+IGluZGV4Lm5hbWUgPSAnYnlfdGl0bGUnIiBkaWQgbm90IHRo
cm93Ci1GQUlMIEluZGV4ZWREQiBpbmRleCByZW5hbWUgaGFuZGxlcyBleGNlcHRpb25zIHdoZW4g
c3RyaW5naWZ5aW5nIG5hbWVzIGFzc2VydF90aHJvd3M6IElEQk9iamVjdFN0b3JlIHJlbmFtZSBz
aG91bGQgcmUtcmFpc2UgdG9TdHJpbmcoKSBleGNlcHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAg
ICAgICAgICAgICAgaW5kZXgubmFtZSA9IHsKLSAgICAgICAgICAgICAgICB0b1N0Li4uIiBkaWQg
bm90IHRocm93CitQQVNTIEluZGV4ZWREQiBkZWxldGVkIGluZGV4IHJlbmFtZSB0aHJvd3MgCitQ
QVNTIEluZGV4ZWREQiBpbmRleCByZW5hbWUgdGhyb3dzIGluIGEgcmVhZG9ubHkgdHJhbnNhY3Rp
b24gCitQQVNTIEluZGV4ZWREQiBpbmRleCByZW5hbWUgdGhyb3dzIGluIGEgcmVhZHdyaXRlIHRy
YW5zYWN0aW9uIAorRkFJTCBJbmRleGVkREIgaW5kZXggcmVuYW1lIHRocm93cyBpbiBhbiBpbmFj
dGl2ZSB0cmFuc2FjdGlvbiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4gYXV0aG9ySW5k
ZXgubmFtZSA9ICdyZW5hbWVkX2J5X2F1dGhvciciIHRocmV3IG9iamVjdCAiSW52YWxpZFN0YXRl
RXJyb3IgKERPTSBFeGNlcHRpb24gMTEpOiBGYWlsZWQgc2V0IHByb3BlcnR5Li4uIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3I6IHByb3BlcnR5ICJj
b2RlIiBpcyBlcXVhbCB0byAxMSwgZXhwZWN0ZWQgMAorRkFJTCBJbmRleGVkREIgaW5kZXggcmVu
YW1lIHRvIHRoZSBuYW1lIG9mIGFub3RoZXIgaW5kZXggdGhyb3dzIGFzc2VydF90aHJvd3M6IGZ1
bmN0aW9uICIoKSA9PiBpbmRleC5uYW1lID0gJ2J5X3RpdGxlJyIgdGhyZXcgb2JqZWN0ICJJbnZh
bGlkU3RhdGVFcnJvciAoRE9NIEV4Y2VwdGlvbiAxMSk6IEZhaWxlZCBzZXQgcHJvcGVydHkuLi4i
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIENvbnN0cmFpbnRFcnJvcjogcHJvcGVydHkgImNv
ZGUiIGlzIGVxdWFsIHRvIDExLCBleHBlY3RlZCAwCitQQVNTIEluZGV4ZWREQiBpbmRleCByZW5h
bWUgaGFuZGxlcyBleGNlcHRpb25zIHdoZW4gc3RyaW5naWZ5aW5nIG5hbWVzIAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJpbmRleC1yZW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtcmVuYW1lLWV4cGVjdGVkLnR4
dAppbmRleCA0ZWMxNDk3ZDY2YzgzNzk3OTQyZDI4NTBkMWRkYTc2M2I0MDljZGM2Li4zZDFlZGNk
NGMzNDFlM2Q3ZjgzYjkzNzEyNWZiY2EzOTA4OTFjYmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleC1yZW5h
bWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4LXJlbmFtZS1leHBlY3RlZC50eHQKQEAgLTEsMTEg
KzEsMTEgQEAKIAotRkFJTCBJbmRleGVkREIgaW5kZXggcmVuYW1lIGluIG5ldyB0cmFuc2FjdGlv
biBhc3NlcnRfZXF1YWxzOiBJREJJbmRleCBuYW1lIHNob3VsZCBjaGFuZ2UgaW1tZWRpYXRlbHkg
YWZ0ZXIgYSByZW5hbWUgZXhwZWN0ZWQgInJlbmFtZWRfYnlfYXV0aG9yIiBidXQgZ290ICJieV9h
dXRob3IiCi1GQUlMIEluZGV4ZWREQiBpbmRleCByZW5hbWUgaW4gdGhlIHRyYW5zYWN0aW9uIHdo
ZXJlIGl0IGlzIGNyZWF0ZWQgYXNzZXJ0X2VxdWFsczogSURCSW5kZXggbmFtZSBzaG91bGQgY2hh
bmdlIGltbWVkaWF0ZWx5IGFmdGVyIGEgcmVuYW1lIGV4cGVjdGVkICJyZW5hbWVkX2J5X2F1dGhv
ciIgYnV0IGdvdCAiYnlfYXV0aG9yIgorUEFTUyBJbmRleGVkREIgaW5kZXggcmVuYW1lIGluIG5l
dyB0cmFuc2FjdGlvbiAKK1BBU1MgSW5kZXhlZERCIGluZGV4IHJlbmFtZSBpbiB0aGUgdHJhbnNh
Y3Rpb24gd2hlcmUgaXQgaXMgY3JlYXRlZCAKIFBBU1MgSW5kZXhlZERCIGluZGV4IHJlbmFtZSB0
byB0aGUgc2FtZSBuYW1lIHN1Y2NlZWRzIAotRkFJTCBJbmRleGVkREIgaW5kZXggcmVuYW1lIHRv
IHRoZSBuYW1lIG9mIGEgZGVsZXRlZCBpbmRleCBzdWNjZWVkcyBhc3NlcnRfYXJyYXlfZXF1YWxz
OiBJREJPYmplY3RTdG9yZS5pbmRleE5hbWVzIHNob3VsZCBpbW1lZGlhdGVseSByZWZsZWN0IHRo
ZSByZW5hbWUgcHJvcGVydHkgMCwgZXhwZWN0ZWQgImJ5X3RpdGxlIiBidXQgZ290ICJieV9hdXRo
b3IiCi1GQUlMIEluZGV4ZWREQiBpbmRleCBzd2FwcGluZyB2aWEgcmVuYW1lcyBzdWNjZWVkcyBG
YWlsZWQgdG8gZXhlY3V0ZSAnaW5kZXgnIG9uICdJREJPYmplY3RTdG9yZSc6IFRoZSBzcGVjaWZp
ZWQgaW5kZXggd2FzIG5vdCBmb3VuZC4KLUZBSUwgSW5kZXhlZERCIGluZGV4IHJlbmFtZSBzdHJp
bmdpZmllcyBub24tc3RyaW5nIG5hbWVzIGFzc2VydF9lcXVhbHM6IElEQkluZGV4IG5hbWUgc2hv
dWxkIGNoYW5nZSBpbW1lZGlhdGVseSBhZnRlciBhIHJlbmFtZSB0byBhIG51bWJlciBleHBlY3Rl
ZCAiNDIiIGJ1dCBnb3QgImJ5X2F1dGhvciIKLUZBSUwgSW5kZXhlZERCIGluZGV4IGNhbiBiZSBy
ZW5hbWVkIHRvICIiIGFzc2VydF9lcXVhbHM6IElEQkluZGV4IG5hbWUgc2hvdWxkIGNoYW5nZSBp
bW1lZGlhdGVseSBhZnRlciB0aGUgcmVuYW1lIGV4cGVjdGVkICIiIGJ1dCBnb3QgImJ5X2F1dGhv
ciIKLUZBSUwgSW5kZXhlZERCIGluZGV4IGNhbiBiZSByZW5hbWVkIHRvICJcdTAwMDAiIGFzc2Vy
dF9lcXVhbHM6IElEQkluZGV4IG5hbWUgc2hvdWxkIGNoYW5nZSBpbW1lZGlhdGVseSBhZnRlciB0
aGUgcmVuYW1lIGV4cGVjdGVkICJcMCIgYnV0IGdvdCAiYnlfYXV0aG9yIgotRkFJTCBJbmRleGVk
REIgaW5kZXggY2FuIGJlIHJlbmFtZWQgdG8gIlx1REMwMFx1RDgwMCIgYXNzZXJ0X2VxdWFsczog
SURCSW5kZXggbmFtZSBzaG91bGQgY2hhbmdlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSByZW5hbWUg
ZXhwZWN0ZWQgIsOtwrDCgMOtwqDCgCIgYnV0IGdvdCAiYnlfYXV0aG9yIgorUEFTUyBJbmRleGVk
REIgaW5kZXggcmVuYW1lIHRvIHRoZSBuYW1lIG9mIGEgZGVsZXRlZCBpbmRleCBzdWNjZWVkcyAK
K1BBU1MgSW5kZXhlZERCIGluZGV4IHN3YXBwaW5nIHZpYSByZW5hbWVzIHN1Y2NlZWRzIAorUEFT
UyBJbmRleGVkREIgaW5kZXggcmVuYW1lIHN0cmluZ2lmaWVzIG5vbi1zdHJpbmcgbmFtZXMgCitQ
QVNTIEluZGV4ZWREQiBpbmRleCBjYW4gYmUgcmVuYW1lZCB0byAiIiAKK1BBU1MgSW5kZXhlZERC
IGluZGV4IGNhbiBiZSByZW5hbWVkIHRvICJcdTAwMDAiIAorUEFTUyBJbmRleGVkREIgaW5kZXgg
Y2FuIGJlIHJlbmFtZWQgdG8gIlx1REMwMFx1RDgwMCIgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3OGQ2ZDcyYTUyYjI3YzM0NjhiY2RlYjU3NjBhZDY5NWEx
YzZmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaW5kZXgtcmVuYW1lLTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzkgQEAKK1RoaXMg
dGVzdHMgZXhwZWN0YXRpb25zIHdpdGggcmVuYW1pbmcgZXhpc3RpbmcgaW5kZXhlcy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8
IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRl
eGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xk
IHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQorRmFpbGVkIHRvIHJlbmFtZSBkZWxldGVkIGlu
ZGV4OiBJbnZhbGlkU3RhdGVFcnJvciAoRE9NIEV4Y2VwdGlvbiAxMSk6IEZhaWxlZCBzZXQgcHJv
cGVydHkgJ25hbWUnIG9uICdJREJJbmRleCc6IFRoZSBpbmRleCBoYXMgYmVlbiBkZWxldGVkLgor
SW5pdGlhbCBpbmRleCBuYW1lOiBOZXdJbmRleAorQ2F1Z2h0IGV4Y2VwdGlvbiByZW5hbWluZyBp
bmRleCB0byB0aGUgbmFtZSBvZiBhbm90aGVyIGV4aXN0aW5nIGluZGV4OiBJbnZhbGlkU3RhdGVF
cnJvciAoRE9NIEV4Y2VwdGlvbiAxMSk6IEZhaWxlZCBzZXQgcHJvcGVydHkgJ25hbWUnIG9uICdJ
REJJbmRleCc6IFRoZSBvd25pbmcgb2JqZWN0IHN0b3JlIGFscmVhZHkgaGFzIGFuIGluZGV4IG5h
bWVkICdFeGlzdGluZ0luZGV4Jy4KK1JlbmFtZWQgaW5kZXggbmFtZTogUmVuYW1lZEluZGV4CitD
dXJyZW50IGluZGV4IG5hbWUgaW4gYSBuZXcgdHJhbnNhY3Rpb246IFJlbmFtZWRJbmRleAorQ2F1
Z2h0IGV4Y2VwdGlvbiByZW5hbWluZyBpbmRleCBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFuZ2Ug
dHJhbnNhY3Rpb246IEludmFsaWRTdGF0ZUVycm9yIChET00gRXhjZXB0aW9uIDExKTogRmFpbGVk
IHNldCBwcm9wZXJ0eSAnbmFtZScgb24gJ0lEQkluZGV4JzogVGhlIGluZGV4J3MgdHJhbnNhY3Rp
b24gaXMgbm90IGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24uCitDdXJyZW50IGluZGV4TmFt
ZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdFeGlzdGluZ0lu
ZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFu
c2FjdGlvbiBpbmNsdWRlcyAnUmVuYW1lZEluZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVz
IGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUn
OiBmYWxzZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2Fj
dGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiBmYWxzZQorUmVuYW1lZCBpbmRleCB0bzog
QW5vdGhlck5hbWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25kIHVwZ3JhZGUgdHJh
bnNhY3Rpb24gaW5jbHVkZXMgJ0V4aXN0aW5nSW5kZXgnOiB0cnVlCitDdXJyZW50IGluZGV4TmFt
ZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdSZW5hbWVkSW5k
ZXgnOiBmYWxzZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFu
c2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUnOiB0cnVlCitDdXJyZW50IGluZGV4TmFtZXMg
ZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdZZXRBbm90aGVyTmFt
ZSc6IGZhbHNlCitSZW5hbWVkIGluZGV4IGFnYWluIHRvOiBZZXRBbm90aGVyTmFtZQorQ3VycmVu
dCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAn
RXhpc3RpbmdJbmRleCc6IHRydWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25kIHVw
Z3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1JlbmFtZWRJbmRleCc6IGZhbHNlCitDdXJyZW50
IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdB
bm90aGVyTmFtZSc6IGZhbHNlCitDdXJyZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdy
YWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdZZXRBbm90aGVyTmFtZSc6IHRydWUKK0Fib3J0aW5n
IHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uLi4uCitDdXJyZW50IGluZGV4TmFtZXMgZHVyaW5n
IHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdFeGlzdGluZ0luZGV4JzogdHJ1
ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBp
bmNsdWRlcyAnUmVuYW1lZEluZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBz
ZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUnOiBmYWxzZQor
Q3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNs
dWRlcyAnWWV0QW5vdGhlck5hbWUnOiBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1wcml2YXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzhkNmQ3MmE1MmIyN2MzNDY4YmNkZWI1NzYwYWQ2
OTVhMWM2ZjU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL2luZGV4LXJlbmFtZS0xLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzkgQEAKK1RoaXMgdGVzdHMgZXhwZWN0YXRpb25zIHdpdGggcmVuYW1pbmcgZXhpc3RpbmcgaW5k
ZXhlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorSW5pdGlhbCB1cGdyYWRl
IG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQorRmFpbGVkIHRvIHJlbmFt
ZSBkZWxldGVkIGluZGV4OiBJbnZhbGlkU3RhdGVFcnJvciAoRE9NIEV4Y2VwdGlvbiAxMSk6IEZh
aWxlZCBzZXQgcHJvcGVydHkgJ25hbWUnIG9uICdJREJJbmRleCc6IFRoZSBpbmRleCBoYXMgYmVl
biBkZWxldGVkLgorSW5pdGlhbCBpbmRleCBuYW1lOiBOZXdJbmRleAorQ2F1Z2h0IGV4Y2VwdGlv
biByZW5hbWluZyBpbmRleCB0byB0aGUgbmFtZSBvZiBhbm90aGVyIGV4aXN0aW5nIGluZGV4OiBJ
bnZhbGlkU3RhdGVFcnJvciAoRE9NIEV4Y2VwdGlvbiAxMSk6IEZhaWxlZCBzZXQgcHJvcGVydHkg
J25hbWUnIG9uICdJREJJbmRleCc6IFRoZSBvd25pbmcgb2JqZWN0IHN0b3JlIGFscmVhZHkgaGFz
IGFuIGluZGV4IG5hbWVkICdFeGlzdGluZ0luZGV4Jy4KK1JlbmFtZWQgaW5kZXggbmFtZTogUmVu
YW1lZEluZGV4CitDdXJyZW50IGluZGV4IG5hbWUgaW4gYSBuZXcgdHJhbnNhY3Rpb246IFJlbmFt
ZWRJbmRleAorQ2F1Z2h0IGV4Y2VwdGlvbiByZW5hbWluZyBpbmRleCBvdXRzaWRlIG9mIGEgdmVy
c2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb246IEludmFsaWRTdGF0ZUVycm9yIChET00gRXhjZXB0aW9u
IDExKTogRmFpbGVkIHNldCBwcm9wZXJ0eSAnbmFtZScgb24gJ0lEQkluZGV4JzogVGhlIGluZGV4
J3MgdHJhbnNhY3Rpb24gaXMgbm90IGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24uCitDdXJy
ZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVz
ICdFeGlzdGluZ0luZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQg
dXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnUmVuYW1lZEluZGV4JzogdHJ1ZQorQ3VycmVu
dCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAn
QW5vdGhlck5hbWUnOiBmYWxzZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBn
cmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiBmYWxzZQorUmVuYW1l
ZCBpbmRleCB0bzogQW5vdGhlck5hbWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25k
IHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ0V4aXN0aW5nSW5kZXgnOiB0cnVlCitDdXJy
ZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVz
ICdSZW5hbWVkSW5kZXgnOiBmYWxzZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQg
dXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUnOiB0cnVlCitDdXJyZW50
IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdZ
ZXRBbm90aGVyTmFtZSc6IGZhbHNlCitSZW5hbWVkIGluZGV4IGFnYWluIHRvOiBZZXRBbm90aGVy
TmFtZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlv
biBpbmNsdWRlcyAnRXhpc3RpbmdJbmRleCc6IHRydWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJp
bmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1JlbmFtZWRJbmRleCc6IGZh
bHNlCitDdXJyZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9u
IGluY2x1ZGVzICdBbm90aGVyTmFtZSc6IGZhbHNlCitDdXJyZW50IGluZGV4TmFtZXMgZHVyaW5n
IHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdZZXRBbm90aGVyTmFtZSc6IHRy
dWUKK0Fib3J0aW5nIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uLi4uCitDdXJyZW50IGluZGV4
TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdFeGlzdGlu
Z0luZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0
cmFuc2FjdGlvbiBpbmNsdWRlcyAnUmVuYW1lZEluZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5h
bWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5h
bWUnOiBmYWxzZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFu
c2FjdGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiBmYWxzZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEtcHJp
dmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxYmFkNGVmZDcxZjVjYWRkODUzZGY0NWNiMzQwYjBlYzdi
MDY2NjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaW5kZXgtcmVuYW1lLTEtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0PgorZW5hYmxlUHJpdmF0ZUJyb3dzaW5nID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbmRleC1yZW5hbWUtMS5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzZTI2
Yzc5YTE1N2FlOTAxMmZkOTAzZDgxYzI3OTZlYWY2ODNmMzMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEuaHRtbApA
QCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9z
aGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2luZGV4LXJlbmFtZS0xLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5k
ZXgtcmVuYW1lLTEuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2luZGV4LXJlbmFtZS0xLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NzQ4MmFhMDQ1NTAyMjJmOTVi
Zjc5MmM0OGZmNjlkNGFjYTY2YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LXJlbmFtZS0xLmpzCkBAIC0wLDAg
KzEsMTM0IEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBleHBlY3RhdGlvbnMgd2l0aCByZW5h
bWluZyBleGlzdGluZyBpbmRleGVzLiIpOworCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFz
ZSk7CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRlYnVnKG1lc3NhZ2UpOworfQor
Cit2YXIgdGVzdEdlbmVyYXRvcjsKK2Z1bmN0aW9uIG5leHQoKQoreworICAgIHRlc3RHZW5lcmF0
b3IubmV4dCgpOworfQorCitmdW5jdGlvbiBhc3luY05leHQoKQoreworICAgIHNldFRpbWVvdXQo
InRlc3RHZW5lcmF0b3IubmV4dCgpOyIsIDApOworfQorCit2YXIgZGI7Cit2YXIgZGJOYW1lOwor
dmFyIGRiVmVyc2lvbjsKKworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQoreworICAg
IGxvZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xk
VmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisKKyAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisJZGJOYW1lID0gZGIubmFtZTsKKwlkYlZlcnNpb24g
PSBkYi52ZXJzaW9uOworCisJb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgiT2Jq
ZWN0U3RvcmUiKTsKKworCW9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCJFeGlzdGluZ0luZGV4Iiwg
ImZvbyIpOworCQorCWluZGV4VG9EZWxldGUgPSBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgiSW5k
ZXhUb0RlbGV0ZSIsICJiYXIiKTsKKwlvYmplY3RTdG9yZS5kZWxldGVJbmRleCgiSW5kZXhUb0Rl
bGV0ZSIpOworCXRyeSB7CisJCWluZGV4VG9EZWxldGUubmFtZSA9ICJSZW5hbWVkSW5kZXgiOwor
CQlsb2coIldhcyBpbmNvcnJlY3RseSBhYmxlIHRvIHJlbmFtZSBhIGRlbGV0ZWQgaW5kZXgiKTsK
Kwl9IGNhdGNoIChlKSB7CisJCWxvZygiRmFpbGVkIHRvIHJlbmFtZSBkZWxldGVkIGluZGV4OiAi
ICsgZSkKKwl9CisJCisJbmV3SW5kZXggPSBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgiTmV3SW5k
ZXgiLCAiYmFyIik7CisJCisJbG9nKCJJbml0aWFsIGluZGV4IG5hbWU6ICIgKyBuZXdJbmRleC5u
YW1lKTsKKwkKKwl0cnkgeworCQluZXdJbmRleC5uYW1lID0gIkV4aXN0aW5nSW5kZXgiOworCQls
b2coIldhcyBpbmNvcnJlY3RseSBhYmxlIHRvIHJlbmFtZSB0aGlzIGluZGV4IHRvIHRoZSBuYW1l
IG9mIGFub3RoZXIgZXhpc3RpbmcgaW5kZXgiKTsKKwl9IGNhdGNoKGUpIHsKKwkJbG9nKCJDYXVn
aHQgZXhjZXB0aW9uIHJlbmFtaW5nIGluZGV4IHRvIHRoZSBuYW1lIG9mIGFub3RoZXIgZXhpc3Rp
bmcgaW5kZXg6ICIgKyBlKTsKKwl9CisKKwluZXdJbmRleC5uYW1lID0gIlJlbmFtZWRJbmRleCI7
CisJbG9nKCJSZW5hbWVkIGluZGV4IG5hbWU6ICIgKyBuZXdJbmRleC5uYW1lKTsKKworICAgIGV2
ZW50LnRhcmdldC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdEdlbmVyYXRv
ciA9IHRlc3RTdGVwcygpOworICAgICAgICB0ZXN0R2VuZXJhdG9yLm5leHQoKTsKKyAgICB9Owor
fQorCitmdW5jdGlvbiogdGVzdFN0ZXBzKCkKK3sgICAgCisgICAgdHggPSBkYi50cmFuc2FjdGlv
bigiT2JqZWN0U3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgdHgub25jb21wbGV0ZSA9IG5leHQ7
CisgICAgb2JqZWN0U3RvcmUgPSB0eC5vYmplY3RTdG9yZSgiT2JqZWN0U3RvcmUiKTsKKwlpbmRl
eCA9IG9iamVjdFN0b3JlLmluZGV4KCJSZW5hbWVkSW5kZXgiKTsKKyAgICBsb2coIkN1cnJlbnQg
aW5kZXggbmFtZSBpbiBhIG5ldyB0cmFuc2FjdGlvbjogIiArIGluZGV4Lm5hbWUpOworCisJdHJ5
IHsKKwkJaW5kZXgubmFtZSA9ICJuZXdOYW1lIjsKKwkJbG9nKCJXYXMgaW5jb3JyZWN0bHkgYWJs
ZSB0byByZW5hbWUgdGhpcyBpbmRleCBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNh
Y3Rpb24iKTsKKwl9IGNhdGNoKGUpIHsKKwkJbG9nKCJDYXVnaHQgZXhjZXB0aW9uIHJlbmFtaW5n
IGluZGV4IG91dHNpZGUgb2YgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbjogIiArIGUpOwor
CX0KKyAgICAKKyAgICB5aWVsZDsgLy8gRm9yIHRoZSB0cmFuc2FjdGlvbidzIGNvbXBsZXRpb24u
CisKKwlkYi5jbG9zZSgpOworICAgIAorCXVwZ3JhZGVPcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKGRiTmFtZSwgZGJWZXJzaW9uICsgMSk7CisJdXBncmFkZU9wZW5SZXF1ZXN0Lm9uZXJyb3Ig
PSBuZXh0OworCXVwZ3JhZGVPcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
dmVudCkgeworCQlvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vYmplY3RT
dG9yZSgiT2JqZWN0U3RvcmUiKTsKKwkJCisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmlu
ZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnRXhpc3RpbmdJbmRleCc6ICIg
KyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJFeGlzdGluZ0luZGV4IikpOworCQls
b2coIkN1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24g
aW5jbHVkZXMgJ1JlbmFtZWRJbmRleCc6ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNvbnRh
aW5zKCJSZW5hbWVkSW5kZXgiKSk7CisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBz
ZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUnOiAiICsgb2Jq
ZWN0U3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiQW5vdGhlck5hbWUiKSk7CisJCWxvZygiQ3Vy
cmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRl
cyAnWWV0QW5vdGhlck5hbWUnOiAiICsgb2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygi
WWV0QW5vdGhlck5hbWUiKSk7CisKKwkJaW5kZXggPSBvYmplY3RTdG9yZS5pbmRleCgiUmVuYW1l
ZEluZGV4Iik7CisJCWluZGV4Lm5hbWUgPSAiQW5vdGhlck5hbWUiOworCQlsb2coIlJlbmFtZWQg
aW5kZXggdG86ICIgKyBpbmRleC5uYW1lKTsKKwkJCisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVz
IGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnRXhpc3RpbmdJbmRl
eCc6ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJFeGlzdGluZ0luZGV4Iikp
OworCQlsb2coIkN1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNh
Y3Rpb24gaW5jbHVkZXMgJ1JlbmFtZWRJbmRleCc6ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVz
LmNvbnRhaW5zKCJSZW5hbWVkSW5kZXgiKSk7CisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1
cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUnOiAi
ICsgb2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiQW5vdGhlck5hbWUiKSk7CisJCWxv
ZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBp
bmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiAiICsgb2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5jb250
YWlucygiWWV0QW5vdGhlck5hbWUiKSk7CisKKwkJaW5kZXgubmFtZSA9ICJZZXRBbm90aGVyTmFt
ZSI7CisJCWxvZygiUmVuYW1lZCBpbmRleCBhZ2FpbiB0bzogIiArIGluZGV4Lm5hbWUpOworCisJ
CWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlv
biBpbmNsdWRlcyAnRXhpc3RpbmdJbmRleCc6ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNv
bnRhaW5zKCJFeGlzdGluZ0luZGV4IikpOworCQlsb2coIkN1cnJlbnQgaW5kZXhOYW1lcyBkdXJp
bmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1JlbmFtZWRJbmRleCc6ICIg
KyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJSZW5hbWVkSW5kZXgiKSk7CisJCWxv
ZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBp
bmNsdWRlcyAnQW5vdGhlck5hbWUnOiAiICsgb2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5jb250YWlu
cygiQW5vdGhlck5hbWUiKSk7CisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNv
bmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiAiICsgb2Jq
ZWN0U3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiWWV0QW5vdGhlck5hbWUiKSk7CisKKwkJbG9n
KCJBYm9ydGluZyB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbi4uLiIpOworCQlldmVudC50YXJn
ZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKKwl9CisKKwl5aWVsZDsgLy8gRm9yIHRoZSBvcGVuIHJl
cXVlc3QncyBmYWlsdXJlIChkdWUgdG8gYWJvcnRpbmcgdGhlIHZlcnNpb24gY2hhbmdlIHRyYW5z
YWN0aW9uKQorCisJdXBncmFkZU9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJOYW1lKTsK
Kwl1cGdyYWRlT3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKwkJb2Jq
ZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0LnRyYW5zYWN0aW9uKCJPYmplY3RTdG9yZSIp
Lm9iamVjdFN0b3JlKCJPYmplY3RTdG9yZSIpOworCQkKKwkJbG9nKCJDdXJyZW50IGluZGV4TmFt
ZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdFeGlzdGluZ0lu
ZGV4JzogIiArIG9iamVjdFN0b3JlLmluZGV4TmFtZXMuY29udGFpbnMoIkV4aXN0aW5nSW5kZXgi
KSk7CisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFu
c2FjdGlvbiBpbmNsdWRlcyAnUmVuYW1lZEluZGV4JzogIiArIG9iamVjdFN0b3JlLmluZGV4TmFt
ZXMuY29udGFpbnMoIlJlbmFtZWRJbmRleCIpKTsKKwkJbG9nKCJDdXJyZW50IGluZGV4TmFtZXMg
ZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdBbm90aGVyTmFtZSc6
ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJBbm90aGVyTmFtZSIpKTsKKwkJ
bG9nKCJDdXJyZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9u
IGluY2x1ZGVzICdZZXRBbm90aGVyTmFtZSc6ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNv
bnRhaW5zKCJZZXRBbm90aGVyTmFtZSIpKTsKKworCQluZXh0KCk7CisJfQorCQorCXlpZWxkOyAv
LyBUbyBiYWxhbmNlIHRoZSBuZXh0KCkgYWJvdmUuCisJCisgICAgZmluaXNoSlNUZXN0KCk7Cisg
fQorIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LWV4cGVjdGVkLnR4dAppbmRleCAxZTAyNmZiODcxODY0
YmZmYzllOTYwNzgzYjMzOWZmNWRkMzU0MjM5Li5lMjhmMmRiNTk1MGZmYmMwMTAyNTA4MTVmYjJl
YWI0MTk3NTc1N2U3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZWFkb25seS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVhZG9ubHktZXhwZWN0ZWQudHh0CkBAIC0zNSw5ICszNSw2IEBAIHRyeWluZyB0byBzZXQgcmVh
ZG9ubHkgcHJvcGVydHkgY3Vyc29yLnByaW1hcnlLZXkKIGN1cnNvci5wcmltYXJ5S2V5ID0gSW5m
aW5pdHkKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc3RpbGwgZmlyc3QKIGluZGV4ID0gb2Jq
ZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ2ZpcnN0JywgJ2ZpcnN0Jyk7Ci10cnlpbmcgdG8gc2V0IHJl
YWRvbmx5IHByb3BlcnR5IGluZGV4Lm5hbWUKLWluZGV4Lm5hbWUgPSAnYmFyJwotUEFTUyBpbmRl
eC5uYW1lIGlzIHN0aWxsIGZpcnN0CiB0cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IGlu
ZGV4Lm9iamVjdFN0b3JlCiBpbmRleC5vYmplY3RTdG9yZSA9IHRoaXMKIFBBU1MgaW5kZXgub2Jq
ZWN0U3RvcmUgaXMgc3RpbGwgW29iamVjdCBJREJPYmplY3RTdG9yZV0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByaXZhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKaW5kZXggMDUxODc0ZmUwOGMyNTZiMjU3ZDhlNmQxZTU5MzExZGY1NDI0ZmFhMC4uY2Jh
NDVhZTYzMGI3OTJhMzdmZGNjYjM3NjhlYWY2MWZmYTJmMmQwOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJpdmF0ZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTM1LDkgKzM1LDYgQEAgdHJ5aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSBj
dXJzb3IucHJpbWFyeUtleQogY3Vyc29yLnByaW1hcnlLZXkgPSBJbmZpbml0eQogUEFTUyBjdXJz
b3IucHJpbWFyeUtleSBpcyBzdGlsbCBmaXJzdAogaW5kZXggPSBvYmplY3RTdG9yZS5jcmVhdGVJ
bmRleCgnZmlyc3QnLCAnZmlyc3QnKTsKLXRyeWluZyB0byBzZXQgcmVhZG9ubHkgcHJvcGVydHkg
aW5kZXgubmFtZQotaW5kZXgubmFtZSA9ICdiYXInCi1QQVNTIGluZGV4Lm5hbWUgaXMgc3RpbGwg
Zmlyc3QKIHRyeWluZyB0byBzZXQgcmVhZG9ubHkgcHJvcGVydHkgaW5kZXgub2JqZWN0U3RvcmUK
IGluZGV4Lm9iamVjdFN0b3JlID0gdGhpcwogUEFTUyBpbmRleC5vYmplY3RTdG9yZSBpcyBzdGls
bCBbb2JqZWN0IElEQk9iamVjdFN0b3JlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzCmluZGV4IGQzZWEzMmYxMTI4ZDZjMjRlNzg2
MzYyOTFiYTAwM2NhYzg4MTczMDQuLmM3NDNjNThlYzE5OGVjNGE0ODRkNmQ3Y2FlOWZmMDE2MGM3
NWNmY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9yZWFkb25seS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvcmVhZG9ubHkuanMKQEAgLTYzLDcgKzYzLDYgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3IoKQog
ICAgIH0KIAogICAgIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBvYmplY3RTdG9yZS5jcmVh
dGVJbmRleCgnZmlyc3QnLCAnZmlyc3QnKTsiKTsKLSAgICBzZXRSZWFkb25seVByb3BlcnR5KCJp
bmRleC5uYW1lIiwgIidiYXInIik7CiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgiaW5kZXgub2Jq
ZWN0U3RvcmUiLCAidGhpcyIpOwogICAgIHNldFJlYWRvbmx5UHJvcGVydHkoImluZGV4LmtleVBh
dGgiLCAiJ2JhciciKTsKICAgICBzZXRSZWFkb25seVByb3BlcnR5KCJpbmRleC51bmlxdWUiLCAi
dHJ1ZSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292614</attachid>
            <date>2016-10-24 08:51:52 -0700</date>
            <delta_ts>2016-10-24 09:26:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163805-20161024084808.patch</filename>
            <type>text/plain</type>
            <size>94871</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Njk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmExMDU5Nzk4NDRlNDFj
OTBkOTVhYWViZmI0NzEyYzRhZjEwZDVkMy4uZjZjZDEzZWVmOThjNDU3ZGNmMzA3ZWYyMzY2NGFi
ZmE5OGYzYzk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAxNi0xMC0yMSAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5kZXhlZERCIDIuMDog
U3VwcG9ydCBJREJJbmRleCBuYW1lIGFzc2lnbm1lbnQuCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yODgwNjkzMj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjM4MDUKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
IFRlc3RzOiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEtcHJpdmF0ZS5o
dG1sCisgICAgICAgICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1l
LTEuaHRtbAorCisgICAgICAgIFRvdWNoZXMgYSAqbG90KiBvZiBjb2RlIHNpdGVzLCBidXQgbm9u
ZSBvZiB0aGVtIGFyZSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RpbmcuCisgICAgICAgIFRoZXkgYXJl
IGFsbCBqdXN0IGdldHRpbmcgdGhlIG5ldyBuYW1lIHNwcmVhZCBvdXQgdG8gYWxsIG9mIHRoZSB2
YXJpb3VzIG9iamVjdHMgdGhhdCBuZWVkIGl0LgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OnJlbmFt
ZUluZGV4KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oOgorCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCSW5kZXg6OklEQkluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpzZXRO
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4Ojpyb2xsYmFja0luZm9Gb3JWZXJzaW9u
Q2hhbmdlQWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4Lmg6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsOgorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmU6OnJvbGxiYWNrRm9yVmVyc2lvbkNoYW5nZUFib3J0KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQk9iamVjdFN0b3JlOjpyZW5hbWVSZWZlcmVuY2VkSW5kZXgpOgorICAgICAgICAo
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OnJvbGxiYWNrSW5mb0ZvclZlcnNpb25DaGFuZ2VBYm9y
dCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
aDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjppbnRlcm5hbEFib3J0KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpyZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXhPblNlcnZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbjo6ZGlkUmVuYW1lSW5kZXhPblNlcnZlcik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OnJlbmFtZUluZGV4KToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5Lmg6CisKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpyZW5hbWVJ
bmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6ZGlkUmVuYW1lSW5kZXgpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaDoKKworICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbik6CisKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRSZW5hbWVJ
bmRleCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25U
b0NsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnREZWxlZ2F0ZS5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZl
cjo6cmVuYW1lSW5kZXgpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjppbmRleFJlbmFtZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6YWJvcnQpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbi5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlE
QkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6cmVuYW1lSW5kZXgpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlJbmRleC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpNZW1vcnlJbmRleDo6cmVuYW1lKToKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
Ok1lbW9yeU9iamVjdFN0b3JlOjpyZW5hbWVJbmRleCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpyZW5hbWVJbmRleCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oOgor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnJlbmFt
ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1SZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1
ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUmVuYW1lSW5kZXgpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlk
UmVuYW1lSW5kZXgpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24uaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXgpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJ
bmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEluZm86OnJlbmFtZSk6CisKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlSW5mbzo6aW5mb0ZvckV4aXN0aW5nSW5kZXgp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8u
aDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlc3VsdERhdGE6OnJlbmFtZUluZGV4U3VjY2Vzcyk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaDoKKwor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpkaWRSZW5hbWVJbmRleCk6
CisgICAgICAgIChXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OnJlbmFtZUluZGV4KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmg6CisK
IDIwMTYtMTAtMjEgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NT
UyBQYXJzZXJdIE1ha2Ugc3VyZSBzaGFkb3cgdXNlciBhZ2VudCBzaGVldHMgcGFyc2UgaW4gVUFT
aGVldE1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyNzdjOTgwN2UzNTk4YTIyNzg5OTUyNDc1YjllMGQ0MDg4
ZjBhNTFhLi44MzU0ODIwZGJmOTI2Nzg0MDlkNGNhMTdhNTBiOTE0MDIzZDVkYzgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMTAtMjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWREQiAyLjA6IFN1cHBvcnQgSURCSW5kZXggbmFt
ZSBhc3NpZ25tZW50LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg4MDY5MzI+IGFuZCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzODA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRSZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cmVuYW1lSW5kZXgpOgorICAgICAgICAqIERh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAg
ICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQu
bWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyOjpyZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6ZGlkUmVuYW1lSW5kZXgpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
Lm1lc3NhZ2VzLmluOgorCiAyMDE2LTEwLTIxICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxl
LmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgYmFzaWMgcG9pbnRlciBsb2NrIGJlaGF2aW9yIGZv
ciBXZWJLaXQgYW5kIFdlYktpdDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggM2VkN2M3YTg2ZGI4ZTUxYWNiNWQ0Yzg1MDg0MDg2
YzkxYjlkMmY4ZS4uN2U3YTc2YWE3MDg1OTI1MjQzOWI5YWU5YmM2YzFiYWEyOGQ0ZjAzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgogI2luY2x1
ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0
aW9uLmgiCisjaW5jbHVkZSAiSURCSW5kZXguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5o
IgogI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJSZXN1bHREYXRh
LmgiCkBAIC0xMTcsNiArMTE4LDE4IEBAIHZvaWQgSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0
b3JlKElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgY29uc3QgU3RyaW5nJiBuCiAgICAgbV92
ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPnJlbmFtZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlLCBu
ZXdOYW1lKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6cmVuYW1lSW5kZXgoSURCSW5kZXgmIGlu
ZGV4LCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQo
KSA9PSBvcmlnaW5UaHJlYWRJRCgpKTsKKyAgICBBU1NFUlQobV92ZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24pOworICAgIEFTU0VSVChtX2luZm8uaGFzT2JqZWN0U3RvcmUoaW5kZXgub2JqZWN0U3Rv
cmUoKS5pbmZvKCkubmFtZSgpKSk7CisgICAgQVNTRVJUKG1faW5mby5pbmZvRm9yRXhpc3RpbmdP
YmplY3RTdG9yZShpbmRleC5vYmplY3RTdG9yZSgpLmluZm8oKS5uYW1lKCkpLT5oYXNJbmRleChp
bmRleC5pbmZvKCkubmFtZSgpKSk7CisKKyAgICBtX2luZm8uaW5mb0ZvckV4aXN0aW5nT2JqZWN0
U3RvcmUoaW5kZXgub2JqZWN0U3RvcmUoKS5pbmZvKCkubmFtZSgpKS0+aW5mb0ZvckV4aXN0aW5n
SW5kZXgoaW5kZXguaW5mbygpLmlkZW50aWZpZXIoKSktPnJlbmFtZShuZXdOYW1lKTsKKworICAg
IG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5yZW5hbWVJbmRleChpbmRleCwgbmV3TmFtZSk7
Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxJREJPYmplY3RTdG9yZT4+IElEQkRhdGFiYXNlOjpjcmVh
dGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmLCBjb25zdCBEaWN0aW9uYXJ5JikKIHsKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5oCmluZGV4IDdkZTY0NTg4YWM5YTRmMDUzY2FjMWYzMjAzMTMxZGZjYzdl
MGZkOTguLjY1MWMyYTk4MTQxNDc2OTdlMzkxYjcyNjY0NWM5OWUzYjFlNzcxZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApAQCAtNjMsNiAr
NjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbG9zZSgpOwogCiAgICAgdm9pZCByZW5hbWVPYmpl
Y3RTdG9yZShJREJPYmplY3RTdG9yZSYsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CisgICAgdm9p
ZCByZW5hbWVJbmRleChJREJJbmRleCYsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CiAKICAgICAv
LyBFdmVudFRhcmdldAogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJm
YWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gSURCRGF0YWJhc2VFdmVudFRhcmdldEludGVyZmFj
ZVR5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNw
cAppbmRleCAwNDMwYWY0YmZhODU1MWUxZDQ5NWJkNDhjMTc3ZWM0YjFmOTQ0NjA2Li45Nzc2YTJi
Nzk1NDhmYjJlN2VjZWViZmVmMzM4NmUxNzE1OTZiMzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCkBAIC00NSw2ICs0NSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIElEQkluZGV4OjpJREJJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBJREJJbmRleEluZm8mIGluZm8sIElEQk9iamVjdFN0b3JlJiBvYmplY3RT
dG9yZSkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1faW5mbyhpbmZv
KQorICAgICwgbV9vcmlnaW5hbEluZm8oaW5mbykKICAgICAsIG1fb2JqZWN0U3RvcmUob2JqZWN0
U3RvcmUpCiB7CiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX29iamVjdFN0b3JlLnRy
YW5zYWN0aW9uKCkuZGF0YWJhc2UoKS5vcmlnaW5UaHJlYWRJRCgpKTsKQEAgLTc4LDYgKzc5LDM0
IEBAIGNvbnN0IFN0cmluZyYgSURCSW5kZXg6Om5hbWUoKSBjb25zdAogICAgIHJldHVybiBtX2lu
Zm8ubmFtZSgpOwogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBJREJJbmRleDo6c2V0TmFtZShjb25z
dCBTdHJpbmcmIG5hbWUpCit7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX29iamVj
dFN0b3JlLnRyYW5zYWN0aW9uKCkuZGF0YWJhc2UoKS5vcmlnaW5UaHJlYWRJRCgpKTsKKworICAg
IGlmIChtX2RlbGV0ZWQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRF
X0VSUiwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgc2V0IHByb3BlcnR5ICduYW1lJyBvbiAnSURCSW5k
ZXgnOiBUaGUgaW5kZXggaGFzIGJlZW4gZGVsZXRlZC4iKSB9OworCisgICAgaWYgKG1fb2JqZWN0
U3RvcmUuaXNEZWxldGVkKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NU
QVRFX0VSUiwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgc2V0IHByb3BlcnR5ICduYW1lJyBvbiAnSURC
SW5kZXgnOiBUaGUgaW5kZXgncyBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZC4iKSB9Owor
CisgICAgaWYgKCFtX29iamVjdFN0b3JlLnRyYW5zYWN0aW9uKCkuaXNWZXJzaW9uQ2hhbmdlKCkp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiwgQVNDSUlMaXRl
cmFsKCJGYWlsZWQgc2V0IHByb3BlcnR5ICduYW1lJyBvbiAnSURCSW5kZXgnOiBUaGUgaW5kZXgn
cyB0cmFuc2FjdGlvbiBpcyBub3QgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbi4iKSB9Owor
CisgICAgaWYgKCFtX29iamVjdFN0b3JlLnRyYW5zYWN0aW9uKCkuaXNBY3RpdmUoKSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVfRVJSLCBBU0NJSUxpdGVyYWwoIkZh
aWxlZCBzZXQgcHJvcGVydHkgJ25hbWUnIG9uICdJREJJbmRleCc6IFRoZSBpbmRleCdzIHRyYW5z
YWN0aW9uIGlzIG5vdCBhY3RpdmUuIikgfTsKKworICAgIGlmIChtX2luZm8ubmFtZSgpID09IG5h
bWUpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAobV9vYmplY3RTdG9yZS5pbmZvKCku
aGFzSW5kZXgobmFtZSkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRF
X0VSUiwgbWFrZVN0cmluZygiRmFpbGVkIHNldCBwcm9wZXJ0eSAnbmFtZScgb24gJ0lEQkluZGV4
JzogVGhlIG93bmluZyBvYmplY3Qgc3RvcmUgYWxyZWFkeSBoYXMgYW4gaW5kZXggbmFtZWQgJyIs
IG5hbWUsICInLiIpIH07CisKKyAgICBtX29iamVjdFN0b3JlLnRyYW5zYWN0aW9uKCkuZGF0YWJh
c2UoKS5yZW5hbWVJbmRleCgqdGhpcywgbmFtZSk7CisgICAgbV9pbmZvLnJlbmFtZShuYW1lKTsK
KworICAgIHJldHVybiB7IH07Cit9CisKIElEQk9iamVjdFN0b3JlJiBJREJJbmRleDo6b2JqZWN0
U3RvcmUoKQogewogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9vYmplY3RTdG9yZS50
cmFuc2FjdGlvbigpLmRhdGFiYXNlKCkub3JpZ2luVGhyZWFkSUQoKSk7CkBAIC0xMDIsNiArMTMx
LDEyIEBAIGJvb2wgSURCSW5kZXg6Om11bHRpRW50cnkoKSBjb25zdAogICAgIHJldHVybiBtX2lu
Zm8ubXVsdGlFbnRyeSgpOwogfQogCit2b2lkIElEQkluZGV4Ojpyb2xsYmFja0luZm9Gb3JWZXJz
aW9uQ2hhbmdlQWJvcnQoKQoreworICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9vYmpl
Y3RTdG9yZS50cmFuc2FjdGlvbigpLmRhdGFiYXNlKCkub3JpZ2luVGhyZWFkSUQoKSk7CisgICAg
bV9pbmZvID0gbV9vcmlnaW5hbEluZm87Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0
Pj4gSURCSW5kZXg6Om9wZW5DdXJzb3IoRXhlY1N0YXRlJiBleGVjU3RhdGUsIElEQktleVJhbmdl
KiByYW5nZSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcpCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIklEQkluZGV4OjpvcGVuQ3Vyc29yIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXguaAppbmRleCBkYWU2OTViMjA2Y2E2YWViNDMwMGQ2YzY2MzhiMzZj
MWQwZTZjYWU1Li41NmUyYjcwZGI5Y2EyNTU1NWE0OTFhODllOGEwYzEyMWY2NTNkNjYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKQEAgLTQ4LDExICs0
OCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCSW5kZXgoKTsKIAogICAgIGNvbnN0IFN0
cmluZyYgbmFtZSgpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE5hbWUoY29uc3Qg
U3RyaW5nJik7CiAgICAgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlKCk7CiAgICAgY29uc3Qg
SURCS2V5UGF0aCYga2V5UGF0aCgpIGNvbnN0OwogICAgIGJvb2wgdW5pcXVlKCkgY29uc3Q7CiAg
ICAgYm9vbCBtdWx0aUVudHJ5KCkgY29uc3Q7CiAKKyAgICB2b2lkIHJvbGxiYWNrSW5mb0ZvclZl
cnNpb25DaGFuZ2VBYm9ydCgpOworCiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBv
cGVuQ3Vyc29yKEpTQzo6RXhlY1N0YXRlJiwgSURCS2V5UmFuZ2UqLCBjb25zdCBTdHJpbmcmIGRp
cmVjdGlvbik7CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBvcGVuQ3Vyc29yKEpT
Qzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlIGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24p
OwogCkBAIC04Nyw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZp
dHkoKSBjb25zdCBmaW5hbDsKIAogICAgIElEQkluZGV4SW5mbyBtX2luZm87CisgICAgSURCSW5k
ZXhJbmZvIG1fb3JpZ2luYWxJbmZvOwogCiAgICAgYm9vbCBtX2RlbGV0ZWQgeyBmYWxzZSB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGwKaW5kZXgg
OGI3M2JjODEyNzc0YjkxMGIxNWRiNmQzMDRjMTBmOTFhMzUyOTJmYS4uOGMzM2M2NTg1OTRkNzc5
YjgxZGQ4NmMwOTlkMzU4ZTkwZjU1NjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkluZGV4LmlkbApAQCAtMzAsNyArMzAsNyBAQAogICAgIEpTQ3VzdG9tTWFy
a0Z1bmN0aW9uLAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAogXSBpbnRlcmZhY2UgSURCSW5k
ZXggewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICBbU2V0dGVy
TWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgSURCT2JqZWN0U3RvcmUgb2JqZWN0U3RvcmU7CiAgICAgW0ltcGxlbWVudGF0
aW9uUmV0dXJuVHlwZT1JREJLZXlQYXRoXSByZWFkb25seSBhdHRyaWJ1dGUgYW55IGtleVBhdGg7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbXVsdGlFbnRyeTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCBk
NDFkMTI0MGUzYmMzZGJhMzMxOTFiNjYxNDgzNDhjZWEyM2UxNjUxLi5hMDRkYTYxOWU3MjU0MTVh
NTU0YzQzMTUxNTYxNjUxM2NkZWFiZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC01MjYsMTAgKzUyNiwxNCBAQCB2
b2lkIElEQk9iamVjdFN0b3JlOjptYXJrQXNEZWxldGVkKCkKICAgICBtX2RlbGV0ZWQgPSB0cnVl
OwogfQogCi12b2lkIElEQk9iamVjdFN0b3JlOjpyb2xsYmFja0luZm9Gb3JWZXJzaW9uQ2hhbmdl
QWJvcnQoKQordm9pZCBJREJPYmplY3RTdG9yZTo6cm9sbGJhY2tGb3JWZXJzaW9uQ2hhbmdlQWJv
cnQoKQogewogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV90cmFuc2FjdGlvbi0+ZGF0
YWJhc2UoKS5vcmlnaW5UaHJlYWRJRCgpKTsKICAgICBtX2luZm8gPSBtX29yaWdpbmFsSW5mbzsK
KworICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9yZWZlcmVuY2VkSW5kZXhMb2NrKTsKKyAgICBm
b3IgKGF1dG8mIGluZGV4IDogbV9yZWZlcmVuY2VkSW5kZXhlcy52YWx1ZXMoKSkKKyAgICAgICAg
aW5kZXgtPnJvbGxiYWNrSW5mb0ZvclZlcnNpb25DaGFuZ2VBYm9ydCgpOwogfQogCiB2b2lkIElE
Qk9iamVjdFN0b3JlOjp2aXNpdFJlZmVyZW5jZWRJbmRleGVzKFNsb3RWaXNpdG9yJiB2aXNpdG9y
KSBjb25zdApAQCAtNTM5LDYgKzU0MywyMSBAQCB2b2lkIElEQk9iamVjdFN0b3JlOjp2aXNpdFJl
ZmVyZW5jZWRJbmRleGVzKFNsb3RWaXNpdG9yJiB2aXNpdG9yKSBjb25zdAogICAgICAgICB2aXNp
dG9yLmFkZE9wYXF1ZVJvb3QoaW5kZXguZ2V0KCkpOwogfQogCit2b2lkIElEQk9iamVjdFN0b3Jl
OjpyZW5hbWVSZWZlcmVuY2VkSW5kZXgoSURCSW5kZXgmIGluZGV4LCBjb25zdCBTdHJpbmcmIG5l
d05hbWUpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQk9iamVjdFN0b3JlOjpyZW5hbWVSZWZl
cmVuY2VkSW5kZXgiKTsKKworICAgIGF1dG8qIGluZGV4SW5mbyA9IG1faW5mby5pbmZvRm9yRXhp
c3RpbmdJbmRleChpbmRleC5pbmZvKCkuaWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlQoaW5kZXhJ
bmZvKTsKKyAgICBpbmRleEluZm8tPnJlbmFtZShuZXdOYW1lKTsKKworICAgIEFTU0VSVChtX3Jl
ZmVyZW5jZWRJbmRleGVzLmNvbnRhaW5zKGluZGV4LmluZm8oKS5uYW1lKCkpKTsKKyAgICBBU1NF
UlQoIW1fcmVmZXJlbmNlZEluZGV4ZXMuY29udGFpbnMobmV3TmFtZSkpOworICAgIEFTU0VSVCht
X3JlZmVyZW5jZWRJbmRleGVzLmdldChpbmRleC5pbmZvKCkubmFtZSgpKSA9PSAmaW5kZXgpOwor
CisgICAgbV9yZWZlcmVuY2VkSW5kZXhlcy5zZXQobmV3TmFtZSwgbV9yZWZlcmVuY2VkSW5kZXhl
cy50YWtlKGluZGV4LmluZm8oKS5uYW1lKCkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaAppbmRleCA5ZWU2MmQzNzlk
OWExODcwNGE5NjgyMTZjNDQxZWQyMDFjZGFhZjM0Li5hMmNjNGE0NzYzNTcwMzFhZjI2ZmE3Njk5
NTY2YzMyNDM4YTNiMGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmgKQEAgLTkzLDkgKzkzLDEwIEBAIHB1YmxpYzoKIAogICAgIGNv
bnN0IElEQk9iamVjdFN0b3JlSW5mbyYgaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1faW5mbzsgfQog
Ci0gICAgdm9pZCByb2xsYmFja0luZm9Gb3JWZXJzaW9uQ2hhbmdlQWJvcnQoKTsKKyAgICB2b2lk
IHJvbGxiYWNrRm9yVmVyc2lvbkNoYW5nZUFib3J0KCk7CiAKICAgICB2b2lkIHZpc2l0UmVmZXJl
bmNlZEluZGV4ZXMoSlNDOjpTbG90VmlzaXRvciYpIGNvbnN0OworICAgIHZvaWQgcmVuYW1lUmVm
ZXJlbmNlZEluZGV4KElEQkluZGV4JiwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKIAogcHJpdmF0
ZToKICAgICBJREJPYmplY3RTdG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURC
T2JqZWN0U3RvcmVJbmZvJiwgSURCVHJhbnNhY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCAzMmU5NDNhZDIz
YzFkZGM2ZGFkMjYyNDRhM2UxZjEzMWIxZTBmMDc2Li5hNGM4NjYyYWUwYWE0ZWFjNmU4OGNlYWVk
MmMxODY4NWVjYTllNzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0yNzksNyArMjc5LDcgQEAgdm9pZCBJREJUcmFu
c2FjdGlvbjo6aW50ZXJuYWxBYm9ydCgpCiAKICAgICBpZiAoaXNWZXJzaW9uQ2hhbmdlKCkpIHsK
ICAgICAgICAgZm9yIChhdXRvJiBvYmplY3RTdG9yZSA6IG1fcmVmZXJlbmNlZE9iamVjdFN0b3Jl
cy52YWx1ZXMoKSkKLSAgICAgICAgICAgIG9iamVjdFN0b3JlLT5yb2xsYmFja0luZm9Gb3JWZXJz
aW9uQ2hhbmdlQWJvcnQoKTsKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLT5yb2xsYmFja0ZvclZl
cnNpb25DaGFuZ2VBYm9ydCgpOwogICAgIH0KIAogICAgIHRyYW5zaXRpb25lZFRvRmluaXNoaW5n
KEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6QWJvcnRpbmcpOwpAQCAtNjc3LDYgKzY3Nyw0
MCBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRDcmVhdGVJbmRleE9uU2VydmVyKGNvbnN0IElE
QlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiAgICAgYWJvcnREdWVUb0ZhaWxlZFJlcXVlc3QoRE9N
RXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Z2V0RXJyb3JOYW1lKHJlc3VsdERh
dGEuZXJyb3IoKS5jb2RlKCkpLCByZXN1bHREYXRhLmVycm9yKCkubWVzc2FnZSgpKSk7CiB9CiAK
K3ZvaWQgSURCVHJhbnNhY3Rpb246OnJlbmFtZUluZGV4KElEQkluZGV4JiBpbmRleCwgY29uc3Qg
U3RyaW5nJiBuZXdOYW1lKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6
cmVuYW1lSW5kZXgiKTsKKyAgICBBU1NFUlQoaXNWZXJzaW9uQ2hhbmdlKCkpOworICAgIEFTU0VS
VChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkg
PT0gbV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFkSUQoKSk7CisKKyAgICBBU1NFUlQobV9yZWZlcmVu
Y2VkT2JqZWN0U3RvcmVzLmNvbnRhaW5zKGluZGV4Lm9iamVjdFN0b3JlKCkuaW5mbygpLm5hbWUo
KSkpOworICAgIEFTU0VSVChtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuZ2V0KGluZGV4Lm9iamVj
dFN0b3JlKCkuaW5mbygpLm5hbWUoKSkgPT0gJmluZGV4Lm9iamVjdFN0b3JlKCkpOworCisgICAg
aW5kZXgub2JqZWN0U3RvcmUoKS5yZW5hbWVSZWZlcmVuY2VkSW5kZXgoaW5kZXgsIG5ld05hbWUp
OworCisgICAgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyID0gaW5kZXgub2JqZWN0U3Rv
cmUoKS5pbmZvKCkuaWRlbnRpZmllcigpOworICAgIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciA9
IGluZGV4LmluZm8oKS5pZGVudGlmaWVyKCk7CisgICAgYXV0byBvcGVyYXRpb24gPSBJREJDbGll
bnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCAmSURCVHJhbnNhY3Rpb246OmRp
ZFJlbmFtZUluZGV4T25TZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXhPblNlcnZl
ciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUpOworICAg
IHNjaGVkdWxlT3BlcmF0aW9uKFdURk1vdmUob3BlcmF0aW9uKSk7Cit9CisKK3ZvaWQgSURCVHJh
bnNhY3Rpb246OnJlbmFtZUluZGV4T25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJh
dGlvbiYgb3BlcmF0aW9uLCBjb25zdCB1aW50NjRfdCYgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBj
b25zdCB1aW50NjRfdCYgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7
CisgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpyZW5hbWVJbmRleE9uU2VydmVy
Iik7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2RhdGFiYXNlLT5vcmlnaW5UaHJl
YWRJRCgpKTsKKyAgICBBU1NFUlQoaXNWZXJzaW9uQ2hhbmdlKCkpOworCisgICAgbV9kYXRhYmFz
ZS0+Y29ubmVjdGlvblByb3h5KCkucmVuYW1lSW5kZXgob3BlcmF0aW9uLCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSk7Cit9CisKK3ZvaWQgSURCVHJhbnNh
Y3Rpb246OmRpZFJlbmFtZUluZGV4T25TZXJ2ZXIoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0
RGF0YSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OmRpZFJlbmFtZUlu
ZGV4T25TZXJ2ZXIiKTsKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fZGF0YWJhc2Ut
Pm9yaWdpblRocmVhZElEKCkpOworICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0RGF0YSwgcmVzdWx0
RGF0YS50eXBlKCkgPT0gSURCUmVzdWx0VHlwZTo6UmVuYW1lSW5kZXhTdWNjZXNzIHx8IHJlc3Vs
dERhdGEudHlwZSgpID09IElEQlJlc3VsdFR5cGU6OkVycm9yKTsKK30KKwogUmVmPElEQlJlcXVl
c3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0T3BlbkN1cnNvcihFeGVjU3RhdGUmIGV4ZWNTdGF0
ZSwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBjb25zdCBJREJDdXJzb3JJbmZvJiBpbmZv
KQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6cmVxdWVzdE9wZW5DdXJz
b3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5oCmluZGV4IDI2NTc0YThjOTJjZTc4ZTRlZWMwYTQ2Y2Y1NWIyZWVjOWU1ZmY3ZWEuLmVh
NGVmMTRmMzBmNjRkNDU5MzBkNWQxMjRmMjk0MzcyMTM0MzQxYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtMTE1LDYgKzEx
NSw3IEBAIHB1YmxpYzoKICAgICBSZWY8SURCT2JqZWN0U3RvcmU+IGNyZWF0ZU9iamVjdFN0b3Jl
KGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYpOwogICAgIHZvaWQgcmVuYW1lT2JqZWN0U3RvcmUo
SURCT2JqZWN0U3RvcmUmLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxJREJJbmRleD4gY3JlYXRlSW5kZXgoSURCT2JqZWN0U3RvcmUmLCBjb25zdCBJREJJbmRl
eEluZm8mKTsKKyAgICB2b2lkIHJlbmFtZUluZGV4KElEQkluZGV4JiwgY29uc3QgU3RyaW5nJiBu
ZXdOYW1lKTsKIAogICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0UHV0T3JBZGQoSlNDOjpFeGVj
U3RhdGUmLCBJREJPYmplY3RTdG9yZSYsIElEQktleSosIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYs
IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlKTsKICAgICBSZWY8SURCUmVxdWVz
dD4gcmVxdWVzdEdldFJlY29yZChKU0M6OkV4ZWNTdGF0ZSYsIElEQk9iamVjdFN0b3JlJiwgY29u
c3QgSURCR2V0UmVjb3JkRGF0YSYpOwpAQCAtMTc4LDYgKzE3OSw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBjcmVhdGVJbmRleE9uU2VydmVyKElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb24m
LCBjb25zdCBJREJJbmRleEluZm8mKTsKICAgICB2b2lkIGRpZENyZWF0ZUluZGV4T25TZXJ2ZXIo
Y29uc3QgSURCUmVzdWx0RGF0YSYpOwogCisgICAgdm9pZCByZW5hbWVJbmRleE9uU2VydmVyKElE
QkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25zdCB1aW50NjRfdCYgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBjb25zdCB1aW50NjRfdCYgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5ld05hbWUpOworICAgIHZvaWQgZGlkUmVuYW1lSW5kZXhPblNlcnZlcihjb25zdCBJREJS
ZXN1bHREYXRhJik7CisKICAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmVPblNlcnZlcihJREJDbGll
bnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgY29uc3QgdWludDY0X3QmIG9iamVjdFN0b3JlSWRl
bnRpZmllcik7CiAgICAgdm9pZCBkaWRDbGVhck9iamVjdFN0b3JlT25TZXJ2ZXIoSURCUmVxdWVz
dCYsIGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcApp
bmRleCBhYTVmMTkxM2Y4MzBhODk2MjRiNjQyMjVkMWU0ODMxN2U4ZmY5ZmNmLi5jZTc3MjA4ZTAw
N2M4NDdhOWUwZWE0OWYwNDY0ZmQ3NTA2YTlmZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5
LmNwcApAQCAtMTMzLDYgKzEzMywxNCBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6cmVuYW1l
T2JqZWN0U3RvcmUoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgdWludAogICAgIGNh
bGxDb25uZWN0aW9uT25NYWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OnJlbmFtZU9i
amVjdFN0b3JlLCByZXF1ZXN0RGF0YSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lKTsK
IH0KIAordm9pZCBJREJDb25uZWN0aW9uUHJveHk6OnJlbmFtZUluZGV4KFRyYW5zYWN0aW9uT3Bl
cmF0aW9uJiBvcGVyYXRpb24sIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0
X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgY29uc3Qg
SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0aW9uKTsKKyAgICBzYXZlT3BlcmF0aW9u
KG9wZXJhdGlvbik7CisKKyAgICBjYWxsQ29ubmVjdGlvbk9uTWFpblRocmVhZCgmSURCQ29ubmVj
dGlvblRvU2VydmVyOjpyZW5hbWVJbmRleCwgcmVxdWVzdERhdGEsIG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lKTsKK30KKwogdm9pZCBJREJDb25uZWN0aW9u
UHJveHk6OmRlbGV0ZU9iamVjdFN0b3JlKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24s
IGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKQogewogICAgIGNvbnN0IElEQlJlcXVlc3RE
YXRhIHJlcXVlc3REYXRhKG9wZXJhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKaW5kZXgg
MDA1MmE0NGZhYmE4MzlmZGRmNTg0YmNlNDE1YWVlNzU2MTMyMGZiYi4uODQ0ODg1YTg3OTljMDc1
YjJlMDhjYzk1NDMyNzkxMjIwZWQ0ZTk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaApAQCAt
NzgsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBvcGVuQ3Vyc29yKFRyYW5zYWN0aW9uT3Bl
cmF0aW9uJiwgY29uc3QgSURCQ3Vyc29ySW5mbyYpOwogICAgIHZvaWQgaXRlcmF0ZUN1cnNvcihU
cmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNv
dW50KTsKICAgICB2b2lkIHJlbmFtZU9iamVjdFN0b3JlKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwor
ICAgIHZvaWQgcmVuYW1lSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuZXdOYW1lKTsKIAogICAgIHZvaWQgZmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKTsKICAgICB2b2lk
IGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IGQ2YWE4NTgxNjdkOGNhMTVi
OWY0NTM4YTlkNmNhMjkwOWM5YTNiZjYuLmEwNGViZmY5OGJhMGFiMTZiNTQxM2UxMDE1MTgyNzM0
ZjY1M2ViZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC0xNzIsNiAr
MTcyLDIwIEBAIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWREZWxldGVJbmRleChjb25z
dCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQogICAgIG1fcHJveHktPmNvbXBsZXRlT3BlcmF0
aW9uKHJlc3VsdERhdGEpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6cmVuYW1l
SW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
ZXdOYW1lKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OnJl
bmFtZUluZGV4Iik7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIG1fZGVsZWdh
dGUtPnJlbmFtZUluZGV4KHJlcXVlc3REYXRhLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4
SWRlbnRpZmllciwgbmV3TmFtZSk7Cit9CisKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
aWRSZW5hbWVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQoreworICAgIExP
RyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZFJlbmFtZUluZGV4Iik7Cisg
ICAgbV9wcm94eS0+Y29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7Cit9CisKIHZvaWQgSURC
Q29ubmVjdGlvblRvU2VydmVyOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVz
dERhdGEsIGNvbnN0IElEQktleURhdGEmIGtleSwgY29uc3QgSURCVmFsdWUmIHZhbHVlLCBjb25z
dCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSBvdmVyd3JpdGVNb2RlKQogewog
ICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OnB1dE9yQWRkIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggYmUyNjliNmQzM2Q2MGExMTVlOTgwYmY0
ODAwZWE4ZDdiMjU1NjljMC4uZDQ4YTk5MzMzYmNiNWVkZjg4ZDUzZmNjYWEwOGMwM2E4NjI0MDBk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtODAsNiArODAsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZGlkRGVsZXRlSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYpOwog
CisgICAgdm9pZCByZW5hbWVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5ld05hbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVuYW1lSW5kZXgoY29u
c3QgSURCUmVzdWx0RGF0YSYpOworCiAgICAgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJWYWx1ZSYsIGNvbnN0IEluZGV4ZWRE
Qjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRp
ZFB1dE9yQWRkKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVn
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyRGVsZWdhdGUuaAppbmRleCA5Y2U3NTQ5YjYzODhkM2U0YmVmMDU1YWI5MTQ2
OWMwMmEzNWE5ODViLi41NWE2ZjZiMTYyNjYxOTAzMzE1NmFhYzYxNDQzZmNjMGY1NTRiZjViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaApAQCAtNjcsNiAr
NjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJ
REJJbmRleEluZm8mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4KGNvbnN0IElE
QlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGluZGV4TmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW5hbWVJbmRleChjb25zdCBJ
REJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3Qg
aW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwg
Y29uc3QgSURCVmFsdWUmLCBjb25zdCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9k
ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEm
LCBjb25zdCBJREJHZXRSZWNvcmREYXRhJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRDb3Vu
dChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2Fj
dGlvbk9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmgKaW5kZXggYmYwN2JiY2E4NWVkM2UyNmIyYjhkOTU5M2Yw
MDljYmFjNWQzODZmMy4uNGE4ZWZlYmQzZjgwZjllNjI1OGVkNzkwMTkwMWVhYjFlNTZlYmFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5z
YWN0aW9uT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmgKQEAgLTE5NCw2ICsxOTQsMTkgQEAgUmVmUHRy
PFRyYW5zYWN0aW9uT3BlcmF0aW9uPiBjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigKICAgICBy
ZXR1cm4gYWRvcHRSZWYob3BlcmF0aW9uKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgTVAxLCB0
eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAzLCB0eXBl
bmFtZSBQMz4KK1JlZlB0cjxUcmFuc2FjdGlvbk9wZXJhdGlvbj4gY3JlYXRlVHJhbnNhY3Rpb25P
cGVyYXRpb24oCisgICAgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLAorICAgIHZvaWQgKElE
QlRyYW5zYWN0aW9uOjoqY29tcGxldGUpKGNvbnN0IElEQlJlc3VsdERhdGEmKSwKKyAgICB2b2lk
IChJREJUcmFuc2FjdGlvbjo6KnBlcmZvcm0pKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgTVAxLCBN
UDIsIE1QMyksCisgICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCisgICAgY29uc3QgUDImIHBhcmFt
ZXRlcjIsCisgICAgY29uc3QgUDMmIHBhcmFtZXRlcjMpCit7CisgICAgYXV0byBvcGVyYXRpb24g
PSBuZXcgVHJhbnNhY3Rpb25PcGVyYXRpb25JbXBsPE1QMSwgTVAyLCBNUDM+KHRyYW5zYWN0aW9u
LCBjb21wbGV0ZSwgcGVyZm9ybSwgcGFyYW1ldGVyMSwgcGFyYW1ldGVyMiwgcGFyYW1ldGVyMyk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG9wZXJhdGlvbik7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1l
IE1QMSwgdHlwZW5hbWUgUDE+CiBSZWZQdHI8VHJhbnNhY3Rpb25PcGVyYXRpb24+IGNyZWF0ZVRy
YW5zYWN0aW9uT3BlcmF0aW9uKAogICAgIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNr
aW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJC
YWNraW5nU3RvcmUuaAppbmRleCBmOGEyMDM5N2E2YTRmYTliZTYzNTQ0ZGFmOTAzMjU1ZWJjMmJj
ZWU1Li44ZjE3YTJmZTBiODM3M2E2ODUxNDNhMGU0ZTNmYjRhYTAzNzMwMGFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3Jl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tp
bmdTdG9yZS5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElEQkVycm9y
IGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgPSAwOwogICAgIHZp
cnR1YWwgSURCRXJyb3IgY3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYpID0gMDsKICAgICB2aXJ0
dWFsIElEQkVycm9yIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2
NF90IGluZGV4SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgcmVuYW1lSW5k
ZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5ld05hbWUpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGtleUV4aXN0
c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0
YSYsIGJvb2wmIGtleUV4aXN0cykgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlUmFu
Z2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgPSAw
OwogICAgIHZpcnR1YWwgSURCRXJyb3IgYWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBj
b25zdCBJREJLZXlEYXRhJiwgY29uc3QgSURCVmFsdWUmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuY3BwCmluZGV4IDRmOGJlOWFjODVjZmUwOWM3YWE1MThjYmQyN2E3YmViODZl
MWMwOTIuLjUzMDBjMDFjYTkzMzFhZjg5NmRkMDk5ZmFmNjg2M2IyZTc4YTI1YjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9u
VG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC05Myw2ICs5MywxMSBAQCB2b2lkIElEQkNv
bm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVz
dWx0KQogICAgIG1fZGVsZWdhdGUtPmRpZERlbGV0ZUluZGV4KHJlc3VsdCk7CiB9CiAKK3ZvaWQg
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRSZW5hbWVJbmRleChjb25zdCBJREJSZXN1bHREYXRh
JiByZXN1bHQpCit7CisgICAgbV9kZWxlZ2F0ZS0+ZGlkUmVuYW1lSW5kZXgocmVzdWx0KTsKK30K
Kwogdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFB1dE9yQWRkKGNvbnN0IElEQlJlc3Vs
dERhdGEmIHJlc3VsdCkKIHsKICAgICBtX2RlbGVnYXRlLT5kaWRQdXRPckFkZChyZXN1bHQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IDllOGY4ZGM5NjhhZTQwNjhiNjY5OTY1
Y2RhZDQxY2U1ZjVlMjkxYjcuLmUzMDIxYmM2NTE2YjRhMDVhNmQ1NzBlYTNmY2E4ZDY3ZmJlMjhi
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJDb25uZWN0aW9uVG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlkQ2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXN1bHREYXRhJik7
CiAgICAgdm9pZCBkaWRDcmVhdGVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJik7CiAgICAgdm9p
ZCBkaWREZWxldGVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJik7CisgICAgdm9pZCBkaWRSZW5h
bWVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBkaWRQdXRPckFkZChjb25z
dCBJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBkaWRHZXRSZWNvcmQoY29uc3QgSURCUmVzdWx0
RGF0YSYpOwogICAgIHZvaWQgZGlkR2V0Q291bnQoY29uc3QgSURCUmVzdWx0RGF0YSYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaAppbmRleCBmZGJiZmUwOTMx
ZTVkNTI0NTY5MWFmYjU2NGQ2MmVjNjgzMTMwYmVkLi5kNzY3ZjY4NDE3YTQzOTVmNzkwNGFhYjYx
Y2QyZDg1NGExMDZmMDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVs
ZWdhdGUuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZENs
ZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzdWx0RGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ3JlYXRlSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkRGVsZXRlSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVuYW1lSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUHV0T3JBZGQoY29uc3QgSURCUmVzdWx0RGF0YSYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkR2V0UmVjb3JkKGNvbnN0IElEQlJlc3VsdERhdGEmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEdldENvdW50KGNvbnN0IElEQlJlc3VsdERhdGEmKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
Y3BwCmluZGV4IDI4YmQzZWI0MGZkOGZiNDNlYzRiMjEyY2QxOTVmMDU0MWQzNGY1YzYuLmY3M2Vh
MjQzYTg3ODIxYjdlMGNkZjZjMzZjMmE4Y2QyOGU2NjdmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC0yNjAs
NiArMjYwLDE4IEBAIHZvaWQgSURCU2VydmVyOjpkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0
RGF0YSYgcmVxdWVzdERhdGEsIHVpbnQ2NF90IG9iamVjdFN0CiAgICAgdHJhbnNhY3Rpb24tPmRl
bGV0ZUluZGV4KHJlcXVlc3REYXRhLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4TmFtZSk7
CiB9CiAKK3ZvaWQgSURCU2VydmVyOjpyZW5hbWVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5k
ZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgTE9HKEluZGV4ZWRE
QiwgIklEQlNlcnZlcjo6cmVuYW1lSW5kZXgiKTsKKworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBt
X3RyYW5zYWN0aW9ucy5nZXQocmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCkpOwor
ICAgIGlmICghdHJhbnNhY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCh0cmFu
c2FjdGlvbi0+aXNWZXJzaW9uQ2hhbmdlKCkpOworICAgIHRyYW5zYWN0aW9uLT5yZW5hbWVJbmRl
eChyZXF1ZXN0RGF0YSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5l
d05hbWUpOworfQorCiB2b2lkIElEQlNlcnZlcjo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERh
dGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBJREJWYWx1
ZSYgdmFsdWUsIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlIG92ZXJ3cml0ZU1v
ZGUpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlNlcnZlcjo6cHV0T3JBZGQiKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaApp
bmRleCAwNWU0NDJhZTYzMGQxY2U2NjIzZjY5YTA2YTJmOTFhYWUxMmQzNWE3Li5iNTkxOGMwNjdm
MTg5ZGE0MjRhZmJjYjEyY2ViNWIwYjUzMWJmZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCkBAIC03MSw2ICs3MSw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY3JlYXRlSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25z
dCBJREJJbmRleEluZm8mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUluZGV4KGNv
bnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGluZGV4TmFtZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW5hbWVJbmRl
eChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwg
dWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJ
REJLZXlEYXRhJiwgY29uc3QgSURCVmFsdWUmLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3Zlcndy
aXRlTW9kZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVx
dWVzdERhdGEmLCBjb25zdCBJREJHZXRSZWNvcmREYXRhJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0
YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAKaW5k
ZXggMjU0ODMxM2JmMjgxYTJmNTk4MjU3NjA1NDQ1MDUwNzU3OTY3MTU5Yi4uNDgzNDM4NDY3Nzlh
YmMwOWVmNWEyZTE3OWIyM2ExMzBkN2RhZjg5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCkBAIC0xNjAsNiArMTYwLDE2IEBAIHZvaWQgTWVtb3J5
QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlUmVuYW1lZChNZW1vcnlPYmplY3RT
dG9yZSYgb2JqZWN0CiAgICAgbV9vcmlnaW5hbE9iamVjdFN0b3JlTmFtZXMuYWRkKCZvYmplY3RT
dG9yZSwgb2xkTmFtZSk7CiB9CiAKK3ZvaWQgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246
OmluZGV4UmVuYW1lZChNZW1vcnlJbmRleCYgaW5kZXgsIGNvbnN0IFN0cmluZyYgb2xkTmFtZSkK
K3sKKyAgICBBU1NFUlQobV9vYmplY3RTdG9yZXMuY29udGFpbnMoJmluZGV4Lm9iamVjdFN0b3Jl
KCkpKTsKKyAgICBBU1NFUlQobV9pbmZvLm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9u
TW9kZTo6VmVyc2lvbkNoYW5nZSk7CisKKyAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgdGhlIGZp
cnN0IHJlbmFtZSBpbiBhIGdpdmVuIHRyYW5zYWN0aW9uLCBiZWNhdXNlIGlmIHRoZSB0cmFuc2Fj
dGlvbiBpcyBhYm9ydGVkIHdlIHdhbnQKKyAgICAvLyB0byBnbyBiYWNrIHRvIHRoZSBmaXJzdCAn
b2xkTmFtZScKKyAgICBtX29yaWdpbmFsSW5kZXhOYW1lcy5hZGQoJmluZGV4LCBvbGROYW1lKTsK
K30KKwogdm9pZCBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6aW5kZXhDbGVhcmVkKE1l
bW9yeUluZGV4JiBpbmRleCwgc3RkOjp1bmlxdWVfcHRyPEluZGV4VmFsdWVTdG9yZT4mJiB2YWx1
ZVN0b3JlKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9jbGVhcmVkSW5kZXhWYWx1ZVN0b3Jl
cy5hZGQoJmluZGV4LCBudWxscHRyKTsKQEAgLTIwMyw2ICsyMTMsMTAgQEAgdm9pZCBNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6YWJvcnQoKQogCiAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJv
b2w+IGNoYW5nZShtX2lzQWJvcnRpbmcsIHRydWUpOwogCisgICAgZm9yIChhdXRvIGl0ZXJhdG9y
IDogbV9vcmlnaW5hbEluZGV4TmFtZXMpCisgICAgICAgIGl0ZXJhdG9yLmtleS0+cmVuYW1lKGl0
ZXJhdG9yLnZhbHVlKTsKKyAgICBtX29yaWdpbmFsSW5kZXhOYW1lcy5jbGVhcigpOworCiAgICAg
Zm9yIChhdXRvIGl0ZXJhdG9yIDogbV9vcmlnaW5hbE9iamVjdFN0b3JlTmFtZXMpCiAgICAgICAg
IGl0ZXJhdG9yLmtleS0+cmVuYW1lKGl0ZXJhdG9yLnZhbHVlKTsKICAgICBtX29yaWdpbmFsT2Jq
ZWN0U3RvcmVOYW1lcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb24uaAppbmRleCA5OGIyNDY5MDA3ZWY1OGE2NWJjZDk2NDhhODdmZTBlNTEyNzhlMWJh
Li41NzgwZWNmNDdkMGRiYjIxYzUxZDU2Yjc4OWZjYWQ5MGM5OTczYjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaApAQCAtNjUsNiArNjUsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBvYmplY3RTdG9yZURlbGV0ZWQoUmVmPE1lbW9yeU9iamVjdFN0b3JlPiYm
KTsKICAgICB2b2lkIG9iamVjdFN0b3JlQ2xlYXJlZChNZW1vcnlPYmplY3RTdG9yZSYsIHN0ZDo6
dW5pcXVlX3B0cjxLZXlWYWx1ZU1hcD4mJiwgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6c2V0PElEQktl
eURhdGE+PiYmKTsKICAgICB2b2lkIG9iamVjdFN0b3JlUmVuYW1lZChNZW1vcnlPYmplY3RTdG9y
ZSYsIGNvbnN0IFN0cmluZyYgb2xkTmFtZSk7CisgICAgdm9pZCBpbmRleFJlbmFtZWQoTWVtb3J5
SW5kZXgmLCBjb25zdCBTdHJpbmcmIG9sZE5hbWUpOwogICAgIHZvaWQgaW5kZXhDbGVhcmVkKE1l
bW9yeUluZGV4Jiwgc3RkOjp1bmlxdWVfcHRyPEluZGV4VmFsdWVTdG9yZT4mJik7CiAKICAgICB2
b2lkIGFkZE5ld0luZGV4KE1lbW9yeUluZGV4Jik7CkBAIC05Nyw2ICs5OCw3IEBAIHByaXZhdGU6
CiAgICAgSGFzaE1hcDxNZW1vcnlPYmplY3RTdG9yZSosIHN0ZDo6dW5pcXVlX3B0cjxLZXlWYWx1
ZU1hcD4+IG1fY2xlYXJlZEtleVZhbHVlTWFwczsKICAgICBIYXNoTWFwPE1lbW9yeU9iamVjdFN0
b3JlKiwgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6c2V0PElEQktleURhdGE+Pj4gbV9jbGVhcmVkT3Jk
ZXJlZEtleXM7CiAgICAgSGFzaE1hcDxNZW1vcnlPYmplY3RTdG9yZSosIFN0cmluZz4gbV9vcmln
aW5hbE9iamVjdFN0b3JlTmFtZXM7CisgICAgSGFzaE1hcDxNZW1vcnlJbmRleCosIFN0cmluZz4g
bV9vcmlnaW5hbEluZGV4TmFtZXM7CiAgICAgSGFzaE1hcDxNZW1vcnlJbmRleCosIHN0ZDo6dW5p
cXVlX3B0cjxJbmRleFZhbHVlU3RvcmU+PiBtX2NsZWFyZWRJbmRleFZhbHVlU3RvcmVzOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAppbmRleCBkZjI0MGI1ZGJmMzczZmQy
ZmVlZjM1ODRhOTdiZGM5NTQyODUyMzU4Li5hMmJmMjhmZTFmYTk2MTU4NzAwZTE4NDY0MzY2NjVj
MmQ0ZTVmMzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcApAQCAtMjQ4LDYg
KzI0OCw0MiBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhYwogICAgIHJldHVybiBvYmplY3RTdG9y
ZS0+ZGVsZXRlSW5kZXgoKnJhd1RyYW5zYWN0aW9uLCBpbmRleElkZW50aWZpZXIpOwogfQogCitJ
REJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJlbmFtZUluZGV4KGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdO
YW1lKQoreworICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJlbmFt
ZUluZGV4Iik7CisKKyAgICBBU1NFUlQobV9kYXRhYmFzZUluZm8pOworICAgIGF1dG8qIG9iamVj
dFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShv
YmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgIGlmICghb2JqZWN0U3RvcmVJbmZvKQorICAgICAg
ICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvcik7
CisKKyAgICBhdXRvKiBpbmRleEluZm8gPSBvYmplY3RTdG9yZUluZm8tPmluZm9Gb3JFeGlzdGlu
Z0luZGV4KGluZGV4SWRlbnRpZmllcik7CisgICAgaWYgKCFpbmRleEluZm8pCisgICAgICAgIHJl
dHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q29uc3RyYWludEVycm9yKTsKKwor
ICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZGVu
dGlmaWVyKTsKKyAgICBBU1NFUlQodHJhbnNhY3Rpb24pOworICAgIEFTU0VSVCh0cmFuc2FjdGlv
bi0+aXNWZXJzaW9uQ2hhbmdlKCkpOworCisgICAgYXV0byBvYmplY3RTdG9yZSA9IG1fb2JqZWN0
U3RvcmVzQnlJZGVudGlmaWVyLmdldChvYmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgIEFTU0VS
VChvYmplY3RTdG9yZSk7CisgICAgaWYgKCFvYmplY3RTdG9yZSkKKyAgICAgICAgcmV0dXJuIElE
QkVycm9yKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDb25zdHJhaW50RXJyb3IpOworCisgICAgYXV0
byogaW5kZXggPSBvYmplY3RTdG9yZS0+aW5kZXhGb3JJZGVudGlmaWVyKGluZGV4SWRlbnRpZmll
cik7CisgICAgQVNTRVJUKGluZGV4KTsKKyAgICBpZiAoIWluZGV4KQorICAgICAgICByZXR1cm4g
SURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvcik7CisKKyAgICBT
dHJpbmcgb2xkTmFtZSA9IGluZGV4LT5pbmZvKCkubmFtZSgpOworICAgIG9iamVjdFN0b3JlLT5y
ZW5hbWVJbmRleCgqaW5kZXgsIG5ld05hbWUpOworICAgIHRyYW5zYWN0aW9uLT5pbmRleFJlbmFt
ZWQoKmluZGV4LCBvbGROYW1lKTsKKworICAgIGluZGV4SW5mby0+cmVuYW1lKG5ld05hbWUpOwor
CisgICAgcmV0dXJuIElEQkVycm9yKCk7Cit9CisKIHZvaWQgTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpyZW1vdmVPYmplY3RTdG9yZUZvclZlcnNpb25DaGFuZ2VBYm9ydChNZW1vcnlPYmplY3RTdG9y
ZSYgb2JqZWN0U3RvcmUpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6cmVtb3ZlT2JqZWN0U3RvcmVGb3JWZXJzaW9uQ2hhbmdlQWJvcnQiKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNr
aW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlJREJCYWNraW5nU3RvcmUuaAppbmRleCBiNWI5ODFlMjAxZWZkYWU1NDJmNGY3ZDQxNTQ1OTM0
ODcyOWU5NTg0Li5hMTQyNGNkYzhhYzE5NzhiMTJjNzQxYTUwNjNlMjM5MzAzMzRlMzA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURC
QmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAg
ICBJREJFcnJvciBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpIGZp
bmFsOwogICAgIElEQkVycm9yIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mKSBmaW5hbDsKICAg
ICBJREJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRf
dCBpbmRleElkZW50aWZpZXIpIGZpbmFsOworICAgIElEQkVycm9yIHJlbmFtZUluZGV4KGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuZXdOYW1lKSBmaW5hbDsKICAgICBJREJFcnJvciBrZXlFeGlzdHNJbk9iamVjdFN0b3Jl
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBib29sJiBrZXlF
eGlzdHMpIGZpbmFsOwogICAgIElEQkVycm9yIGRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpIGZpbmFsOwogICAgIElEQkVycm9yIGFk
ZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElE
QlZhbHVlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5SW5kZXguaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlJbmRleC5oCmluZGV4IDMwNWZhNmFlNzcyN2RlM2U4MzUxYTE2OWNj
YTYyZTZkZjQzMTdlYmMuLjdlYzQ3Y2VkZWYxNjY4MDYwZmM3NWVkYjY2OWUyNDMxYjhmYzZhYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlJbmRleC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJbmRleC5oCkBAIC02Miw2ICs2Miw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IElEQklu
ZGV4SW5mbyYgaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1faW5mbzsgfQogCisgICAgdm9pZCByZW5h
bWUoY29uc3QgU3RyaW5nJiBuZXdOYW1lKSB7IG1faW5mby5yZW5hbWUobmV3TmFtZSk7IH0KKwog
ICAgIElEQkdldFJlc3VsdCBnZXRSZXN1bHRGb3JLZXlSYW5nZShJbmRleGVkREI6OkluZGV4UmVj
b3JkVHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgY29uc3Q7CiAgICAgdWludDY0X3QgY291
bnRGb3JLZXlSYW5nZShjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RT
dG9yZS5jcHAKaW5kZXggZmM1MTVmMjkxZjc5YThmYWIzODAyMGRhZWY2NTEwODg2MWQ4ZWVjZi4u
NDFlNGY0MDNjOTg4NTA0N2QxYzNlODIxY2RlODRmMmIwNTNmNmQ3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2Jq
ZWN0U3RvcmUuY3BwCkBAIC00NzUsNiArNDc1LDE3IEBAIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29y
KiBNZW1vcnlPYmplY3RTdG9yZTo6bWF5YmVPcGVuQ3Vyc29yKGNvbnN0IElEQkN1cnNvckluZm8m
CiAgICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7CiB9CiAKK3ZvaWQgTWVt
b3J5T2JqZWN0U3RvcmU6OnJlbmFtZUluZGV4KE1lbW9yeUluZGV4JiBpbmRleCwgY29uc3QgU3Ry
aW5nJiBuZXdOYW1lKQoreworICAgIEFTU0VSVChtX2luZGV4ZXNCeU5hbWUuZ2V0KGluZGV4Lmlu
Zm8oKS5uYW1lKCkpID09ICZpbmRleCk7CisgICAgQVNTRVJUKCFtX2luZGV4ZXNCeU5hbWUuY29u
dGFpbnMobmV3TmFtZSkpOworICAgIEFTU0VSVChtX2luZm8uaW5mb0ZvckV4aXN0aW5nSW5kZXgo
aW5kZXguaW5mbygpLm5hbWUoKSkpOworCisgICAgbV9pbmZvLmluZm9Gb3JFeGlzdGluZ0luZGV4
KGluZGV4LmluZm8oKS5uYW1lKCkpLT5yZW5hbWUobmV3TmFtZSk7CisgICAgbV9pbmRleGVzQnlO
YW1lLnNldChuZXdOYW1lLCBtX2luZGV4ZXNCeU5hbWUudGFrZShpbmRleC5pbmZvKCkubmFtZSgp
KSk7CisgICAgaW5kZXgucmVuYW1lKG5ld05hbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBJREJT
ZXJ2ZXIKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuaAppbmRl
eCAzYzc2YWEwYTNhYWIzMDIxNjZjZDNkMzJiM2ZlYTViMWVhNzk2ZjIwLi4wYmY1N2Q5OWI5Zjdh
ODI3YTZhNzUyZjc3YTNkMTBkNzZmZmRlZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuaApAQCAt
OTgsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXliZVJlc3RvcmVEZWxldGVkSW5kZXgo
UmVmPE1lbW9yeUluZGV4PiYmKTsKIAogICAgIHZvaWQgcmVuYW1lKGNvbnN0IFN0cmluZyYgbmV3
TmFtZSkgeyBtX2luZm8ucmVuYW1lKG5ld05hbWUpOyB9CisgICAgdm9pZCByZW5hbWVJbmRleChN
ZW1vcnlJbmRleCYsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CiAKIHByaXZhdGU6CiAgICAgTWVt
b3J5T2JqZWN0U3RvcmUoY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0
b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDAyNjIxNDZmOWQ0ZDdlMGEwMTJjMmMxMzg2MGY3Nzcz
ZjY4NmFiMWEuLmJkNzZlZjRmMTFkOGM5OWYxOWY0NDVhODViYzA0YjJjOGRhMjQwOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJC
YWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0xMjc1LDYgKzEyNzUsNDkgQEAgSURC
RXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWMKICAgICByZXR1cm4geyB9OwogfQogCitJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OnJlbmFtZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQoreworICAg
IExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OnJlbmFtZUluZGV4IC0gb2Jq
ZWN0IHN0b3JlICUiIFBSSXU2NCAiLCBpbmRleCAlIiBQUkl1NjQsIG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgaW5kZXhJZGVudGlmaWVyKTsKKworICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKKyAgICBB
U1NFUlQobV9zcWxpdGVEQi0+aXNPcGVuKCkpOworCisgICAgYXV0byogb2JqZWN0U3RvcmVJbmZv
ID0gbV9kYXRhYmFzZUluZm8tPmluZm9Gb3JFeGlzdGluZ09iamVjdFN0b3JlKG9iamVjdFN0b3Jl
SWRlbnRpZmllcik7CisgICAgaWYgKCFvYmplY3RTdG9yZUluZm8pCisgICAgICAgIHJldHVybiB7
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ291bGQg
bm90IHJlbmFtZSBpbmRleCIpIH07CisKKyAgICBhdXRvKiBpbmRleEluZm8gPSBvYmplY3RTdG9y
ZUluZm8tPmluZm9Gb3JFeGlzdGluZ0luZGV4KGluZGV4SWRlbnRpZmllcik7CisgICAgaWYgKCFp
bmRleEluZm8pCisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3du
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IHJlbmFtZSBpbmRleCIpIH07CisKKyAgICBh
dXRvKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkZW50aWZp
ZXIpOworICAgIGlmICghdHJhbnNhY3Rpb24gfHwgIXRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkp
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0IHRvIHJlbmFtZSBhbiBpbmRleCB3aXRob3V0
IGFuIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIik7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFi
YXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byByZW5h
bWUgYW4gaW5kZXggd2l0aG91dCBhbiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiIpIH07CisgICAg
fQorCisgICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlv
bk1vZGU6OlZlcnNpb25DaGFuZ2UpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0IHRvIHJl
bmFtZSBhbiBpbmRleCBpbiBhIG5vbi12ZXJzaW9uLWNoYW5nZSB0cmFuc2FjdGlvbiIpOworICAg
ICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxp
dGVyYWwoIkF0dGVtcHQgdG8gcmVuYW1lIGFuIGluZGV4IGluIGEgbm9uLXZlcnNpb24tY2hhbmdl
IHRyYW5zYWN0aW9uIikgfTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFNRTGl0ZVN0YXRlbWVu
dCBzcWwoKm1fc3FsaXRlREIsIEFTQ0lJTGl0ZXJhbCgiVVBEQVRFIEluZGV4SW5mbyBTRVQgbmFt
ZSA9ID8gV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGlkID0gPzsiKSk7CisgICAgICAgIGlm
IChzcWwucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3FsLmJpbmRUZXh0
KDEsIG5ld05hbWUpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgy
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3Fs
LmJpbmRJbnQ2NCgzLCBpbmRleElkZW50aWZpZXIpICE9IFNRTElURV9PSworICAgICAgICAgICAg
fHwgc3FsLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICAgICAgTE9HX0VSUk9SKCJD
b3VsZCBub3QgdXBkYXRlIG5hbWUgZm9yIGluZGV4IGlkICglIiBQUklpNjQgIiwgJSIgUFJJaTY0
ICIpIGluIEluZGV4SW5mbyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IGluZGV4SWRlbnRpZmllciwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxh
c3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IHJlbmFtZSBpbmRleCIpIH07
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbmRleEluZm8tPnJlbmFtZShuZXdOYW1lKTsKKwor
ICAgIHJldHVybiB7IH07Cit9CisKIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6a2V5
RXhpc3RzSW5PYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5RGF0YSYg
a2V5RGF0YSwgYm9vbCYga2V5RXhpc3RzKQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUgLSBrZXkgJXMsIG9iamVjdCBz
dG9yZSAlIiBQUkl1NjQsIGtleURhdGEubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG9i
amVjdFN0b3JlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDg3ZGNiOTIz
YzkzYjYyNWViOTU1ODBjNjU0NzA3MzBkODQyYTA0MmIuLjhjMGM5YmVlMjEzNmY1OWNlMjAzYzY5
NDViYTQxNmJkNzFjYTRjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKQEAgLTYy
LDYgKzYyLDcgQEAgcHVibGljOgogICAgIElEQkVycm9yIGNsZWFyT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllcikgZmluYWw7CiAgICAgSURCRXJyb3IgY3JlYXRlSW5kZXgoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
QkluZGV4SW5mbyYpIGZpbmFsOwogICAgIElEQkVycm9yIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllcikgZmluYWw7CisgICAgSURC
RXJyb3IgcmVuYW1lSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5k
ZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpIGZpbmFsOwogICAgIElEQkVycm9y
IGtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3Qg
SURCS2V5RGF0YSYsIGJvb2wmIGtleUV4aXN0cykgZmluYWw7CiAgICAgSURCRXJyb3IgZGVsZXRl
UmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikg
ZmluYWw7CiAgICAgSURCRXJyb3IgYWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBjb25z
dCBJREJLZXlEYXRhJiwgY29uc3QgSURCVmFsdWUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwCmluZGV4IGMyNTY3N2I3YzI2NmZjMWY2NmVkYjllZjEyMGIyODVjZjYyNTc1NmMuLjMw
MmY4MzdmZDliNTg1YzgzNmVhOWE1OTMwZWIyNjhiNDEzNzJmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcApAQCAtODE5LDYgKzgxOSw2MCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpk
aWRQZXJmb3JtRGVsZXRlSW5kZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdAog
ICAgIHBlcmZvcm1FcnJvckNhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IpOwogfQog
Cit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1
aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgRXJyb3JDYWxs
YmFjayBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIExPRyhJ
bmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4Iik7CisKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFja09yRmlyZUVycm9yKGNhbGxiYWNr
KTsKKyAgICBpZiAoIWNhbGxiYWNrSUQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIG9i
amVjdFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9y
ZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgIGlmICghb2JqZWN0U3RvcmVJbmZvKSB7Cisg
ICAgICAgIHBlcmZvcm1FcnJvckNhbGxiYWNrKGNhbGxiYWNrSUQsIHsgSURCRGF0YWJhc2VFeGNl
cHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIHJlbmFtZSBpbmRl
eCBpbiBub24tZXhpc3RhbnQgb2JqZWN0IHN0b3JlIikgfSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBhdXRvKiBpbmRleEluZm8gPSBvYmplY3RTdG9yZUluZm8tPmluZm9Gb3JFeGlz
dGluZ0luZGV4KGluZGV4SWRlbnRpZmllcik7CisgICAgaWYgKCFpbmRleEluZm8pIHsKKyAgICAg
ICAgcGVyZm9ybUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJRCwgeyBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gcmVuYW1lIG5vbi1leGlz
dGFudCBpbmRleCIpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcG9zdERhdGFi
YXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybVJlbmFtZUluZGV4LCBjYWxsYmFja0lELCB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRp
ZmllcigpLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSkp
OworfQorCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUmVuYW1lSW5kZXgodWludDY0
X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRf
dCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKK3sKKyAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAiKGRiKSBVbmlxdWVJREJEYXRh
YmFzZTo6cGVyZm9ybVJlbmFtZUluZGV4Iik7CisKKyAgICBBU1NFUlQobV9iYWNraW5nU3RvcmUp
OworICAgIG1fYmFja2luZ1N0b3JlLT5yZW5hbWVJbmRleCh0cmFuc2FjdGlvbklkZW50aWZpZXIs
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lKTsKKworICAg
IElEQkVycm9yIGVycm9yOworICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1Ro
cmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybVJlbmFtZUluZGV4
LCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4
SWRlbnRpZmllciwgbmV3TmFtZSkpOworfQorCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQ
ZXJmb3JtUmVuYW1lSW5kZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJF
cnJvciYgZXJyb3IsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5k
ZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNl
OjpkaWRQZXJmb3JtUmVuYW1lSW5kZXgiKTsKKworICAgIGlmIChlcnJvci5pc051bGwoKSkgewor
ICAgICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2RhdGFiYXNlSW5mby0+aW5mb0ZvckV4
aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKKyAgICAgICAgQVNTRVJU
KG9iamVjdFN0b3JlSW5mbyk7CisgICAgICAgIGlmIChvYmplY3RTdG9yZUluZm8pIHsKKyAgICAg
ICAgICAgIGF1dG8qIGluZGV4SW5mbyA9IG9iamVjdFN0b3JlSW5mby0+aW5mb0ZvckV4aXN0aW5n
SW5kZXgoaW5kZXhJZGVudGlmaWVyKTsKKyAgICAgICAgICAgIEFTU0VSVChpbmRleEluZm8pOwor
ICAgICAgICAgICAgaW5kZXhJbmZvLT5yZW5hbWUobmV3TmFtZSk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBwZXJmb3JtRXJyb3JDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yKTsK
K30KKwogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERh
dGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBJREJWYWx1
ZSYgdmFsdWUsIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlIG92ZXJ3cml0ZU1v
ZGUsIEtleURhdGFDYWxsYmFjayBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRleCAxOWZhMTUzN2MzNjJhYWZiMGUyZTdkNDg2
ZTViMDE1NTZkNmJhOTAzLi41Y2U2Njg4YjU0NDY3NTJhNDZhODg5ZjlmOTk3NGY1Y2ZjODBjODIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhck9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIEVycm9yQ2FsbGJhY2spOwogICAgIHZvaWQgY3Jl
YXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIGNvbnN0IElEQkluZGV4SW5m
byYsIEVycm9yQ2FsbGJhY2spOwogICAgIHZvaWQgZGVsZXRlSW5kZXgoVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbiYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBpbmRleE5hbWUsIEVycm9yQ2FsbGJhY2spOworICAgIHZvaWQgcmVuYW1lSW5kZXgoVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIEVycm9y
Q2FsbGJhY2spOwogICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25z
dCBJREJLZXlEYXRhJiwgY29uc3QgSURCVmFsdWUmLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3Zl
cndyaXRlTW9kZSwgS2V5RGF0YUNhbGxiYWNrKTsKICAgICB2b2lkIGdldFJlY29yZChjb25zdCBJ
REJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQkdldFJlY29yZERhdGEmLCBHZXRSZXN1bHRDYWxsYmFj
ayk7CiAgICAgdm9pZCBnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktl
eVJhbmdlRGF0YSYsIENvdW50Q2FsbGJhY2spOwpAQCAtMTQ5LDYgKzE1MCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBwZXJmb3JtQ2xlYXJPYmplY3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIHZvaWQgcGVyZm9ybUNyZWF0
ZUluZGV4KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYpOwogICAg
IHZvaWQgcGVyZm9ybURlbGV0ZUluZGV4KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyKTsKKyAgICB2
b2lkIHBlcmZvcm1SZW5hbWVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuZXdOYW1lKTsKICAgICB2b2lkIHBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBjYWxsYmFj
a0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEm
LCBjb25zdCBJREJWYWx1ZSYsIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlKTsK
ICAgICB2b2lkIHBlcmZvcm1HZXRSZWNvcmQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKICAgICB2
b2lkIHBlcmZvcm1HZXRJbmRleFJlY29yZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhl
ZERCOjpJbmRleFJlY29yZFR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwpAQCAtMTY4LDYg
KzE3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRQZXJmb3JtQ2xlYXJPYmplY3RTdG9yZSh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAgICAgdm9pZCBk
aWRQZXJmb3JtQ3JlYXRlSW5kZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJ
REJFcnJvciYsIGNvbnN0IElEQkluZGV4SW5mbyYpOwogICAgIHZvaWQgZGlkUGVyZm9ybURlbGV0
ZUluZGV4KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllcik7Cisg
ICAgdm9pZCBkaWRQZXJmb3JtUmVuYW1lSW5kZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVy
LCBjb25zdCBJREJFcnJvciYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0
X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogICAgIHZvaWQgZGlk
UGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJy
b3ImLCBjb25zdCBJREJLZXlEYXRhJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtR2V0UmVjb3JkKHVp
bnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImLCBjb25zdCBJREJHZXRS
ZXN1bHQmKTsKICAgICB2b2lkIGRpZFBlcmZvcm1HZXRDb3VudCh1aW50NjRfdCBjYWxsYmFja0lk
ZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgdWludDY0X3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcAppbmRleCAyNTJjNTRiYTJmNjY5ZDgxMTkzZDczY2I0
YzFlYmZkZmM2MGE0ODFiLi5mZDFjM2MzZmY3MDMzMzFlNWY2NDIxODQ4YzIwZGFmMTFkZGU2MDBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcApAQCAtMjEy
LDYgKzIxMiwxMyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkRGVsZXRl
SW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YQogICAgIG1fY29ubmVjdGlvblRv
Q2xpZW50LmRpZERlbGV0ZUluZGV4KHJlc3VsdERhdGEpOwogfQogCit2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbjo6ZGlkUmVuYW1lSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVz
dWx0RGF0YSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uOjpkaWRSZW5hbWVJbmRleCIpOworCisgICAgbV9jb25uZWN0aW9uVG9DbGllbnQuZGlkUmVu
YW1lSW5kZXgocmVzdWx0RGF0YSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uLmgKaW5kZXggNTZjZjdkZjY4YTRlZTA0MTZlNDZhYzJiY2NjZTE0ZmJkN2M4ODJlOC4uYTRm
MzViZTQxODEyNjc1ODEyN2Y1NjAxZDhmOTdmY2QzNzk4M2UzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaApAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lk
IGRpZENyZWF0ZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZERlbGV0
ZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKKyAgICB2b2lkIGRpZFJlbmFtZUluZGV4KGNv
bnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgdm9p
ZCBkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgY29uZmlybURpZENsb3NlRnJv
bVNlcnZlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3Bw
CmluZGV4IDBlYzJlYWI2YjIxMjBiNDBiOTQ2MzU4M2I0NmY4OTY2YmI3NWUzYjUuLjA1ODhkN2M5
ZjY0YjU5YjIwNGY1MWM4NGYwNTI2MmI5YWZiNTZkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAKQEAgLTIwNCw2ICsyMDQsMjQgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0
YSYgcmVxdWVzdERhdGEKICAgICB9KTsKIH0KIAordm9pZCBVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uOjpyZW5hbWVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb246OnJlbmFtZUluZGV4Iik7CisKKyAgICBBU1NFUlQoaXNWZXJzaW9u
Q2hhbmdlKCkpOworICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uSW5mby5pZGVudGlmaWVyKCkgPT0g
cmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCkpOworCisgICAgUmVmUHRyPFVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgbV9kYXRh
YmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNlKCkucmVuYW1lSW5kZXgoKnRoaXMsIG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lLCBbdGhpcywgcHJvdGVjdGVkVGhp
cywgcmVxdWVzdERhdGFdKGNvbnN0IElEQkVycm9yJiBlcnJvcikgeworICAgICAgICBMT0coSW5k
ZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXggKGNhbGxi
YWNrKSIpOworICAgICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCisgICAgICAgICAgICBtX2RhdGFi
YXNlQ29ubmVjdGlvbi0+ZGlkUmVuYW1lSW5kZXgoSURCUmVzdWx0RGF0YTo6cmVuYW1lSW5kZXhT
dWNjZXNzKHJlcXVlc3REYXRhLnJlcXVlc3RJZGVudGlmaWVyKCkpKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRpZFJlbmFtZUluZGV4KElEQlJlc3Vs
dERhdGE6OmVycm9yKHJlcXVlc3REYXRhLnJlcXVlc3RJZGVudGlmaWVyKCksIGVycm9yKSk7Cisg
ICAgfSk7Cit9CisKKwogdm9pZCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpwdXRPckFk
ZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleURhdGEmIGtl
eURhdGEsIGNvbnN0IElEQlZhbHVlJiB2YWx1ZSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3
cml0ZU1vZGUgb3ZlcndyaXRlTW9kZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbjo6cHV0T3JBZGQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbi5oCmluZGV4IDhjY2RiNzdhMDc3YmYzMjdmMWJlMzdmOTM3NzcxMjg3
OGJiN2Y2NTAuLjIzMjZiMzBkZTE1MjJhM2NiYmFlMDc5YzY0NDRmYzgzNThjYmE3N2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaApAQCAtNzMsNiArNzMsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRh
JiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNyZWF0ZUluZGV4
KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCSW5kZXhJbmZvJik7CiAgICAgdm9pZCBk
ZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpOworICAgIHZvaWQgcmVuYW1lSW5kZXgo
Y29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVp
bnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKICAgICB2b2lk
IHB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0
IElEQlZhbHVlJiwgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUpOwogICAgIHZv
aWQgZ2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCR2V0UmVjb3JkRGF0
YSYpOwogICAgIHZvaWQgZ2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJL
ZXlSYW5nZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJJbmRleEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJJbmRleEluZm8uaAppbmRleCA4ZWU3OTg1MDAxY2UwMzJkMmIyOTMxY2Uw
YmM3MzFiZjQ2YzU1M2FlLi43ZjA5ZDkyZTBiOTY5Yjc3YjEyNTFmNWZlZTllOTQyZDJjNjJkYjll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
SW5kZXhJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0lEQkluZGV4SW5mby5oCkBAIC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIHVuaXF1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pcXVlOyB9CiAgICAgYm9vbCBtdWx0aUVudHJ5KCkgY29u
c3QgeyByZXR1cm4gbV9tdWx0aUVudHJ5OyB9CiAKKyAgICB2b2lkIHJlbmFtZShjb25zdCBTdHJp
bmcmIG5ld05hbWUpIHsgbV9uYW1lID0gbmV3TmFtZTsgfQorCiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgSURCSW5kZXhJbmZvJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJP
YmplY3RTdG9yZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAKaW5kZXggMjg5MjhhMWQxMDBiYWIwOWFkOThlOWMz
Y2NhNWEyYWI1MjU4ZjMzOC4uM2YxYzg1ZTFkZmQwYjNlMGE5ZThlZDJjZTc1YzM3Mzg1NzE4OWI3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
Qk9iamVjdFN0b3JlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAKQEAgLTg1LDYgKzg1LDE1IEBAIElEQklu
ZGV4SW5mbyogSURCT2JqZWN0U3RvcmVJbmZvOjppbmZvRm9yRXhpc3RpbmdJbmRleChjb25zdCBT
dHJpbmcmIG5hbWUpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0lEQkluZGV4SW5mbyogSURC
T2JqZWN0U3RvcmVJbmZvOjppbmZvRm9yRXhpc3RpbmdJbmRleCh1aW50NjRfdCBpZGVudGlmaWVy
KQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX2luZGV4TWFwLmZpbmQoaWRlbnRpZmllcik7Cisg
ICAgaWYgKGl0ZXJhdG9yID09IG1faW5kZXhNYXAuZW5kKCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgcmV0dXJuICZpdGVyYXRvci0+dmFsdWU7Cit9CisKIElEQk9iamVjdFN0b3Jl
SW5mbyBJREJPYmplY3RTdG9yZUluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB7CiAgICAgSURC
T2JqZWN0U3RvcmVJbmZvIHJlc3VsdCA9IHsgbV9pZGVudGlmaWVyLCBtX25hbWUuaXNvbGF0ZWRD
b3B5KCksIG1fa2V5UGF0aC5pc29sYXRlZENvcHkoKSwgbV9hdXRvSW5jcmVtZW50IH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0
U3RvcmVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
T2JqZWN0U3RvcmVJbmZvLmgKaW5kZXggZTg3OTYxMWVlYTFjNWJhMWIxYjczNTE5ZDMzNzU5NTc1
MzMwZDIyMS4uZGRlYTFlYTIxM2FhNDgzMzFhYmQ2MTM4NmQxNGM2ZmYxY2I0NGIxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0
b3JlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9J
REJPYmplY3RTdG9yZUluZm8uaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
YXNJbmRleChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIGJvb2wgaGFzSW5kZXgodWlu
dDY0X3QgaW5kZXhJZGVudGlmaWVyKSBjb25zdDsKICAgICBJREJJbmRleEluZm8qIGluZm9Gb3JF
eGlzdGluZ0luZGV4KGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgSURCSW5kZXhJbmZvKiBpbmZv
Rm9yRXhpc3RpbmdJbmRleCh1aW50NjRfdCBpZGVudGlmaWVyKTsKIAogICAgIFZlY3RvcjxTdHJp
bmc+IGluZGV4TmFtZXMoKSBjb25zdDsKICAgICBjb25zdCBIYXNoTWFwPHVpbnQ2NF90LCBJREJJ
bmRleEluZm8+JiBpbmRleE1hcCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXhNYXA7IH0KQEAgLTc5
LDcgKzgwLDYgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX21heEluZGV4SUQgeyAwIH07CiAK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBJREJJbmRleEluZm8+IG1faW5kZXhNYXA7Ci0KIH07CiAK
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0RGF0YS5jcHAKaW5kZXggMDc4YzE3Nzlh
Y2YzZjQ4YjdhMzlkZDM5M2NhMGMxMmYwMTE4OWZhMi4uZDkwNjFhYjY1NDY3MGQyMTA5ZTljMzIy
YzI1ZDljOTQyODQ4YWU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmNwcApAQCAtMTU5LDYgKzE1OSwxMSBA
QCBJREJSZXN1bHREYXRhIElEQlJlc3VsdERhdGE6OmRlbGV0ZUluZGV4U3VjY2Vzcyhjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHJlcQogICAgIHJldHVybiB7IElEQlJlc3VsdFR5cGU6OkRl
bGV0ZUluZGV4U3VjY2VzcywgcmVxdWVzdElkZW50aWZpZXIgfTsKIH0KIAorSURCUmVzdWx0RGF0
YSBJREJSZXN1bHREYXRhOjpyZW5hbWVJbmRleFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4geyBJREJSZXN1bHRUeXBl
OjpSZW5hbWVJbmRleFN1Y2Nlc3MsIHJlcXVlc3RJZGVudGlmaWVyIH07Cit9CisKIElEQlJlc3Vs
dERhdGEgSURCUmVzdWx0RGF0YTo6cHV0T3JBZGRTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIHJlc3VsdEtleSkK
IHsKICAgICBJREJSZXN1bHREYXRhIHJlc3VsdChJREJSZXN1bHRUeXBlOjpQdXRPckFkZFN1Y2Nl
c3MsIHJlcXVlc3RJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0RGF0YS5oCmluZGV4IGU4NjM4ZDgzZmQxZTQ0
N2Y1NmU5NzZhZTYwMDMyM2QxMDI0ZDdiMjguLjAzYmIyMjUzYjcxOTg0MGE3ZjYzY2VlNjJhYTU2
N2QzZmY3OWVkMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJSZXN1bHREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaApAQCAtNTgsNiArNTgsNyBAQCBlbnVtIGNsYXNz
IElEQlJlc3VsdFR5cGUgewogICAgIE9wZW5DdXJzb3JTdWNjZXNzLAogICAgIEl0ZXJhdGVDdXJz
b3JTdWNjZXNzLAogICAgIFJlbmFtZU9iamVjdFN0b3JlU3VjY2VzcywKKyAgICBSZW5hbWVJbmRl
eFN1Y2Nlc3MsCiB9OwogCiBuYW1lc3BhY2UgSURCU2VydmVyIHsKQEAgLTc3LDYgKzc4LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBJREJSZXN1bHREYXRhIGNsZWFyT2JqZWN0U3RvcmVTdWNjZXNz
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpOwogICAgIHN0YXRpYyBJREJSZXN1bHREYXRh
IGNyZWF0ZUluZGV4U3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKTsKICAgICBz
dGF0aWMgSURCUmVzdWx0RGF0YSBkZWxldGVJbmRleFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJik7CisgICAgc3RhdGljIElEQlJlc3VsdERhdGEgcmVuYW1lSW5kZXhTdWNjZXNz
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpOwogICAgIHN0YXRpYyBJREJSZXN1bHREYXRh
IHB1dE9yQWRkU3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJREJL
ZXlEYXRhJik7CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgZ2V0UmVjb3JkU3VjY2Vzcyhjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJREJHZXRSZXN1bHQmKTsKICAgICBzdGF0
aWMgSURCUmVzdWx0RGF0YSBnZXRDb3VudFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiwgdWludDY0X3QgY291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcAppbmRleCAx
ODEzNDJlM2NlYWE1YmYwMjQ1OWRlMzM2MTU3MWYxOGIzNzU2NDM3Li5kY2U0YzM0ZWU4YjA5YzJi
MGM4ZDVhNzk3M2Y1M2U4NDE2NDQxMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcApA
QCAtMTc0LDYgKzE3NCwxMyBAQCB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkRGVsZXRlSW5k
ZXgoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKICAgICB9KTsKIH0KIAordm9pZCBJ
blByb2Nlc3NJREJTZXJ2ZXI6OmRpZFJlbmFtZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmIHJl
c3VsdERhdGEpCit7CisgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlc3VsdERhdGFdIHsKKyAgICAgICAgbV9jb25u
ZWN0aW9uVG9TZXJ2ZXItPmRpZFJlbmFtZUluZGV4KHJlc3VsdERhdGEpOworICAgIH0pOworfQor
CiB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkUHV0T3JBZGQoY29uc3QgSURCUmVzdWx0RGF0
YSYgcmVzdWx0RGF0YSkKIHsKICAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVzdWx0RGF0YV0gewpAQCAtMjc5LDYg
KzI4NiwxMyBAQCB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGVsZXRlSW5kZXgoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCB1aW50NjRfdAogICAgIH0pOwogfQogCit2b2lkIElu
UHJvY2Vzc0lEQlNlcnZlcjo6cmVuYW1lSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQoreworICAgIFJ1bkxvb3A6OmN1cnJlbnQo
KS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0
RGF0YSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWVdIHsK
KyAgICAgICAgbV9zZXJ2ZXItPnJlbmFtZUluZGV4KHJlcXVlc3REYXRhLCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSk7CisgICAgfSk7Cit9CisKIHZvaWQg
SW5Qcm9jZXNzSURCU2VydmVyOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVz
dERhdGEsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IElEQlZhbHVlJiB2YWx1ZSwg
Y29uc3QgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgb3ZlcndyaXRlTW9kZSkK
IHsKICAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdERhdGEsIGtleURhdGEsIHZhbHVlLCBvdmVyd3JpdGVN
b2RlXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSW5Qcm9jZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKaW5kZXggNzQ0MDQzZjIxYTA2OTc5MDQxZDcy
YjUyM2EyNjNlZDI3NDg2YTA5OS4uNzgzNTUwMzhmMDllZDczODdiNDYzOTgwNjkwOTRmZDI4OTIw
ZjNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0luUHJvY2Vzc0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaApAQCAtNjgsNiArNjgsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGNyZWF0ZUluZGV4KGNv
bnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCSW5kZXhJbmZvJikgZmluYWw7CiAgICAgdm9p
ZCBkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpIGZpbmFsOworICAgIHZvaWQgcmVu
YW1lSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKSBm
aW5hbDsKICAgICB2b2lkIHB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURC
S2V5RGF0YSYsIGNvbnN0IElEQlZhbHVlJiwgY29uc3QgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92
ZXJ3cml0ZU1vZGUpIGZpbmFsOwogICAgIHZvaWQgZ2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3RE
YXRhJiwgY29uc3QgSURCR2V0UmVjb3JkRGF0YSYpIGZpbmFsOwogICAgIHZvaWQgZ2V0Q291bnQo
Y29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKSBmaW5hbDsKQEAg
LTk0LDYgKzk1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2xlYXJPYmplY3RTdG9yZShjb25z
dCBJREJSZXN1bHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBkaWRDcmVhdGVJbmRleChjb25zdCBJ
REJSZXN1bHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBkaWREZWxldGVJbmRleChjb25zdCBJREJS
ZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9pZCBkaWRSZW5hbWVJbmRleChjb25zdCBJREJSZXN1
bHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBkaWRQdXRPckFkZChjb25zdCBJREJSZXN1bHREYXRh
JikgZmluYWw7CiAgICAgdm9pZCBkaWRHZXRSZWNvcmQoY29uc3QgSURCUmVzdWx0RGF0YSYpIGZp
bmFsOwogICAgIHZvaWQgZGlkR2V0Q291bnQoY29uc3QgSURCUmVzdWx0RGF0YSYpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCmluZGV4IDgyZGM3NDRhYzM5
MzlhNzQwNWI3Zjg0MTI0NDc3NzU2ZWQ3M2ZlNzUuLjMwOWYzN2ZkOWJlMTE0MThkODY0MmU5ODM5
ZGEyODI1YmM5YjRkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5j
cHAKQEAgLTEyNyw2ICsxMjcsMTEgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZERlbGV0ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3UKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZERlbGV0ZUluZGV4KHJlc3Vs
dERhdGEpKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFJlbmFtZUlu
ZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCit7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRSZW5hbWVJbmRleChyZXN1
bHREYXRhKSk7Cit9CisKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRQdXRPckFk
ZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQogewogICAgIHNlbmQo
TWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkUHV0T3JBZGQocmVzdWx0RGF0
YSkpOwpAQCAtMjYwLDYgKzI2NSwxMSBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
ZGVsZXRlSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIHVpbnQ2NAogICAgIERh
dGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuZGVsZXRlSW5kZXgocmVxdWVz
dCwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuYW1lKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQ6OnJlbmFtZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuZXdOYW1lKQoreworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9u
KCkuaWRiU2VydmVyKCkucmVuYW1lSW5kZXgocmVxdWVzdCwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUpOworfQorCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElE
QktleURhdGEmIGtleSwgY29uc3QgSURCVmFsdWUmIHZhbHVlLCB1bnNpZ25lZCBvdmVyd3JpdGVN
b2RlKQogewogICAgIGlmIChvdmVyd3JpdGVNb2RlICE9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihJ
bmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZTo6Tm9PdmVyd3JpdGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaAppbmRleCBkNTQ4MjAxMTFiODJmNjE0ZGZlZmZi
ZmMyZTYxZDA1MmE0M2M0YWI5Li4yYzhlNGRhMzcwYmZhNzE4NTRmZTY1ZWE2MGUyZWUwNzAxNWE0
ODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTY4LDYgKzY4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2xlYXJPYmplY3RTdG9yZShjb25zdCBXZWJDb3Jl
OjpJREJSZXN1bHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBkaWRDcmVhdGVJbmRleChjb25zdCBX
ZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBkaWREZWxldGVJbmRleChj
b25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9pZCBkaWRSZW5hbWVJ
bmRleChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBkaWRQ
dXRPckFkZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBk
aWRHZXRSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwogICAgIHZv
aWQgZGlkR2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwpAQCAt
OTcsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IFdl
YkNvcmU6OklEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsK
ICAgICB2b2lkIGNyZWF0ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29u
c3QgV2ViQ29yZTo6SURCSW5kZXhJbmZvJik7CiAgICAgdm9pZCBkZWxldGVJbmRleChjb25zdCBX
ZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBpbmRleE5hbWUpOworICAgIHZvaWQgcmVuYW1lSW5kZXgoY29uc3QgV2Vi
Q29yZTo6SURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVp
bnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKICAgICB2b2lk
IHB1dE9yQWRkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29uc3QgV2ViQ29yZTo6
SURCS2V5RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQlZhbHVlJiwgdW5zaWduZWQgb3ZlcndyaXRl
TW9kZSk7CiAgICAgdm9pZCBnZXRSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEm
LCBjb25zdCBXZWJDb3JlOjpJREJHZXRSZWNvcmREYXRhJik7CiAgICAgdm9pZCBnZXRDb3VudChj
b25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdl
RGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNz
YWdlcy5pbgppbmRleCAyMGJiNTc1NmJlYzBkOTgwMDhiOGVkNzJiYjkxYTFlODM2MDcwZTUzLi5k
OWZhYmQ3NjI2ZDgyMWQ4NzZkYWYxZmI5NDQ2NTY2OWViNzhiNWRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbgpAQCAtMzQsNiArMzQs
NyBAQCBtZXNzYWdlcyAtPiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQgewogICAgIENsZWFyT2Jq
ZWN0U3RvcmUoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgQ3JlYXRlSW5kZXgoV2ViQ29yZTo6SURCUmVxdWVz
dERhdGEgcmVxdWVzdERhdGEsIFdlYkNvcmU6OklEQkluZGV4SW5mbyBpbmZvKTsKICAgICBEZWxl
dGVJbmRleChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBTdHJpbmcgaW5kZXhOYW1lKTsKKyAgICBSZW5hbWVJbmRleChX
ZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgdWludDY0X3Qgb2JqZWN0U3RvcmVJ
ZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIFN0cmluZyBuZXdOYW1lKTsKICAg
ICBQdXRPckFkZChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgV2ViQ29yZTo6
SURCS2V5RGF0YSBrZXksIFdlYkNvcmU6OklEQlZhbHVlIHZhbHVlLCB1bnNpZ25lZCBvdmVyd3Jp
dGVNb2RlKTsKICAgICBHZXRSZWNvcmQoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERh
dGEsIHN0cnVjdCBXZWJDb3JlOjpJREJHZXRSZWNvcmREYXRhIGdldFJlY29yZERhdGEpOwogICAg
IEdldENvdW50KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBzdHJ1Y3QgV2Vi
Q29yZTo6SURCS2V5UmFuZ2VEYXRhIHJhbmdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggNmU2OTRjNGEzNGQzZGIzNTU0YWY5NDUwMTQ1
OGM1MjI5ODgzMDgzNC4uN2IzYjNmODE2MmJkM2ZmYTVlOTA2Y2I4NjRjZjc5NGIyNTVlMGExZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAg
LTEzOCw2ICsxMzgsMTEgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZUlu
ZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgdWkKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkRlbGV0ZUluZGV4KHJlcXVlc3REYXRhLCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4TmFtZSkpOwogfQogCit2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6cmVuYW1lSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3RE
YXRhLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6UmVuYW1lSW5kZXgocmVxdWVzdERhdGEsIG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lKSk7Cit9CisKIHZvaWQgV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVz
dERhdGEsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IElEQlZhbHVlJiB2YWx1ZSwg
Y29uc3QgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgbW9kZSkKIHsKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OlB1dE9yQWRkKHJlcXVlc3RE
YXRhLCBrZXlEYXRhLCB2YWx1ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1vZGUpKSk7CkBAIC0y
NTMsNiArMjU4LDExIEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWREZWxldGVJ
bmRleChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2
ZXItPmRpZERlbGV0ZUluZGV4KHJlc3VsdCk7CiB9CiAKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpkaWRSZW5hbWVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCit7Cisg
ICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZFJlbmFtZUluZGV4KHJlc3VsdCk7Cit9CisKIHZv
aWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRQdXRPckFkZChjb25zdCBJREJSZXN1bHRE
YXRhJiByZXN1bHQpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZFB1dE9yQWRkKHJl
c3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5k
ZXggNmQ1MjNjNmE2NGQ0OTZiYjM0NWQxMDdmYzAyODEzMGZlZmExZDFlOS4uMDhlODJiNjVmMjZl
ODI3YjYxMjQ3MDdlZTNlYjcyMzNjNTdkMWQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGNyZWF0ZUluZGV4KGNv
bnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCSW5kZXhJbmZv
JikgZmluYWw7CiAgICAgdm9pZCBkZWxldGVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0
RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRl
eE5hbWUpIGZpbmFsOworICAgIHZvaWQgcmVuYW1lSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVx
dWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKSBmaW5hbDsKICAgICB2b2lkIHB1dE9y
QWRkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQlZhbHVlJiwgY29uc3QgV2ViQ29yZTo6SW5kZXhlZERC
OjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUpIGZpbmFsOwogICAgIHZvaWQgZ2V0UmVjb3JkKGNv
bnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCR2V0UmVjb3Jk
RGF0YSYpIGZpbmFsOwogICAgIHZvaWQgZ2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVz
dERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmKSBmaW5hbDsKQEAgLTg2LDYg
Kzg3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2xlYXJPYmplY3RTdG9yZShjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBkaWRDcmVhdGVJbmRleChjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVJbmRleChjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJik7CisgICAgdm9pZCBkaWRSZW5hbWVJbmRleChjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBkaWRQdXRPckFkZChjb25zdCBXZWJDb3Jl
OjpJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBkaWRHZXRSZWNvcmQoY29uc3QgV2ViSURCUmVz
dWx0Jik7CiAgICAgdm9pZCBkaWRHZXRDb3VudChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRh
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5tZXNzYWdlcy5pbgppbmRleCA5YjQ1N2Y1ZTU3OTA5NGUyMjJiM2JkYzMyNGJkYjlhYWIwMTM4
NGNmLi4zOTgwMGQxMDFlZWIwZWFlNTY5YjdjNzRmZTQzZTkyYTZhNzIzMGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMu
aW4KQEAgLTMzLDYgKzMzLDcgQEAgbWVzc2FnZXMgLT4gV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
IHsKICAgICBEaWRDbGVhck9iamVjdFN0b3JlKFdlYkNvcmU6OklEQlJlc3VsdERhdGEgcmVzdWx0
KQogICAgIERpZENyZWF0ZUluZGV4KFdlYkNvcmU6OklEQlJlc3VsdERhdGEgcmVzdWx0KQogICAg
IERpZERlbGV0ZUluZGV4KFdlYkNvcmU6OklEQlJlc3VsdERhdGEgcmVzdWx0KQorICAgIERpZFJl
bmFtZUluZGV4KFdlYkNvcmU6OklEQlJlc3VsdERhdGEgcmVzdWx0KQogICAgIERpZFB1dE9yQWRk
KFdlYkNvcmU6OklEQlJlc3VsdERhdGEgcmVzdWx0KQogICAgIERpZEdldFJlY29yZChXZWJLaXQ6
OldlYklEQlJlc3VsdCByZXN1bHQpCiAgICAgRGlkR2V0Q291bnQoV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSByZXN1bHQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWI5YWU1N2E2ZjE0NmQ3Mjc4YWU2NzhlZmYyNDIzOGRmNDli
MmYyNi4uYTBmN2YxNGVmMTRhYThjNzgzNTk1ODNiZWZkNjFkZjNjNDY4ZDU5OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDE2LTEwLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBJbmRleGVkREIgMi4wOiBTdXBwb3J0IElEQkluZGV4IG5hbWUgYXNzaWdu
bWVudC4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4ODA2OTMyPiBhbmQgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzgwNQorCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
aW5kZXgtcmVuYW1lLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1wcml2
YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRl
eC1yZW5hbWUtMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL2luZGV4LXJlbmFtZS0xLmpzOiBBZGRlZC4KKworICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3JlYWRvbmx5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZWFkb25seS1wcml2YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvcmVhZG9ubHkuanM6IFJlbW92ZWQgdGhlIHRlc3QgdGhhdCB2
ZXJpZmllcyB0aGF0IGluZGV4IG5hbWVzIGFyZQorICAgICAgICAgIHJlYWRvbmx5IGFzIHRoZXkg
YXJlIG5vIGxvbmdlciByZWFkb25seS4KKwogMjAxNi0xMC0yMCAgRGVhbiBKYWNrc29uICA8ZGlu
b0BhcHBsZS5jb20+CiAKICAgICAgICAgU1ZHIHNob3VsZCBub3QgcGFpbnQgc2VsZWN0aW9uIHdp
dGhpbiBhIG1hc2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDNhODdkMmRhYWQ2
OWI3MjQzMzY1MTYwODkzNmQ3MDY4OWZhMThjYzcuLmMxZjA0M2YyNWE1ODBhMzcyZWIxYzJiNTI2
ZjU1MDkxNGZiMmY3OGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDE2LTEwLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbmRleGVkREIgMi4wOiBTdXBwb3J0IElEQkluZGV4IG5hbWUgYXNzaWdubWVudC4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4ODA2OTMyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzgwNQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXgg
Q2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmluZGV4LXJlbmFtZS1lcnJvcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtcmVuYW1lLWV4cGVjdGVkLnR4dDoKKwogMjAxNi0x
MC0yMCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1w
b3J0IFczQyBFTUUgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4LXJlbmFtZS1lcnJvcnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiaW5kZXgtcmVuYW1lLWVycm9ycy1leHBlY3RlZC50eHQKaW5kZXggMDBhODUyOGJk
OGFkMjIxYzVjOGMxZjA0NmE1OWRjNDg5NWU3OGZhOC4uZjNjOTgwODk2OGE5Y2MzMjlhMjE4ZDE1
MGNhMGRmOGYzNmNlYzE2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtcmVuYW1lLWVycm9ycy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXgtcmVuYW1lLWVycm9ycy1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEs
OCBAQAogCi1GQUlMIEluZGV4ZWREQiBkZWxldGVkIGluZGV4IHJlbmFtZSB0aHJvd3MgYXNzZXJ0
X3Rocm93czogZnVuY3Rpb24gIigpID0+IGluZGV4Lm5hbWUgPSAncmVuYW1lZF9ieV9hdXRob3In
IiBkaWQgbm90IHRocm93Ci1GQUlMIEluZGV4ZWREQiBpbmRleCByZW5hbWUgdGhyb3dzIGluIGEg
cmVhZG9ubHkgdHJhbnNhY3Rpb24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+IGluZGV4
Lm5hbWUgPSAncmVuYW1lZF9ieV9hdXRob3InIiBkaWQgbm90IHRocm93Ci1GQUlMIEluZGV4ZWRE
QiBpbmRleCByZW5hbWUgdGhyb3dzIGluIGEgcmVhZHdyaXRlIHRyYW5zYWN0aW9uIGFzc2VydF90
aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiBpbmRleC5uYW1lID0gJ3JlbmFtZWRfYnlfYXV0aG9yJyIg
ZGlkIG5vdCB0aHJvdwotRkFJTCBJbmRleGVkREIgaW5kZXggcmVuYW1lIHRocm93cyBpbiBhbiBp
bmFjdGl2ZSB0cmFuc2FjdGlvbiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4gYXV0aG9y
SW5kZXgubmFtZSA9ICdyZW5hbWVkX2J5X2F1dGhvciciIGRpZCBub3QgdGhyb3cKLUZBSUwgSW5k
ZXhlZERCIGluZGV4IHJlbmFtZSB0byB0aGUgbmFtZSBvZiBhbm90aGVyIGluZGV4IHRocm93cyBh
c3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4gaW5kZXgubmFtZSA9ICdieV90aXRsZSciIGRp
ZCBub3QgdGhyb3cKLUZBSUwgSW5kZXhlZERCIGluZGV4IHJlbmFtZSBoYW5kbGVzIGV4Y2VwdGlv
bnMgd2hlbiBzdHJpbmdpZnlpbmcgbmFtZXMgYXNzZXJ0X3Rocm93czogSURCT2JqZWN0U3RvcmUg
cmVuYW1lIHNob3VsZCByZS1yYWlzZSB0b1N0cmluZygpIGV4Y2VwdGlvbiBmdW5jdGlvbiAiKCkg
PT4gewotICAgICAgICAgICAgICBpbmRleC5uYW1lID0gewotICAgICAgICAgICAgICAgIHRvU3Qu
Li4iIGRpZCBub3QgdGhyb3cKK1BBU1MgSW5kZXhlZERCIGRlbGV0ZWQgaW5kZXggcmVuYW1lIHRo
cm93cyAKK1BBU1MgSW5kZXhlZERCIGluZGV4IHJlbmFtZSB0aHJvd3MgaW4gYSByZWFkb25seSB0
cmFuc2FjdGlvbiAKK1BBU1MgSW5kZXhlZERCIGluZGV4IHJlbmFtZSB0aHJvd3MgaW4gYSByZWFk
d3JpdGUgdHJhbnNhY3Rpb24gCitGQUlMIEluZGV4ZWREQiBpbmRleCByZW5hbWUgdGhyb3dzIGlu
IGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiBh
dXRob3JJbmRleC5uYW1lID0gJ3JlbmFtZWRfYnlfYXV0aG9yJyIgdGhyZXcgb2JqZWN0ICJJbnZh
bGlkU3RhdGVFcnJvciAoRE9NIEV4Y2VwdGlvbiAxMSk6IEZhaWxlZCBzZXQgcHJvcGVydHkuLi4i
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjogcHJv
cGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDExLCBleHBlY3RlZCAwCitGQUlMIEluZGV4ZWREQiBp
bmRleCByZW5hbWUgdG8gdGhlIG5hbWUgb2YgYW5vdGhlciBpbmRleCB0aHJvd3MgYXNzZXJ0X3Ro
cm93czogZnVuY3Rpb24gIigpID0+IGluZGV4Lm5hbWUgPSAnYnlfdGl0bGUnIiB0aHJldyBvYmpl
Y3QgIkludmFsaWRTdGF0ZUVycm9yIChET00gRXhjZXB0aW9uIDExKTogRmFpbGVkIHNldCBwcm9w
ZXJ0eS4uLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gQ29uc3RyYWludEVycm9yOiBwcm9w
ZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTEsIGV4cGVjdGVkIDAKK1BBU1MgSW5kZXhlZERCIGlu
ZGV4IHJlbmFtZSBoYW5kbGVzIGV4Y2VwdGlvbnMgd2hlbiBzdHJpbmdpZnlpbmcgbmFtZXMgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmluZGV4LXJlbmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleC1yZW5hbWUtZXhw
ZWN0ZWQudHh0CmluZGV4IDRlYzE0OTdkNjZjODM3OTc5NDJkMjg1MGQxZGRhNzYzYjQwOWNkYzYu
LjNkMWVkY2Q0YzM0MWUzZDdmODNiOTM3MTI1ZmJjYTM5MDg5MWNiY2EgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmlu
ZGV4LXJlbmFtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtcmVuYW1lLWV4cGVjdGVkLnR4dApA
QCAtMSwxMSArMSwxMSBAQAogCi1GQUlMIEluZGV4ZWREQiBpbmRleCByZW5hbWUgaW4gbmV3IHRy
YW5zYWN0aW9uIGFzc2VydF9lcXVhbHM6IElEQkluZGV4IG5hbWUgc2hvdWxkIGNoYW5nZSBpbW1l
ZGlhdGVseSBhZnRlciBhIHJlbmFtZSBleHBlY3RlZCAicmVuYW1lZF9ieV9hdXRob3IiIGJ1dCBn
b3QgImJ5X2F1dGhvciIKLUZBSUwgSW5kZXhlZERCIGluZGV4IHJlbmFtZSBpbiB0aGUgdHJhbnNh
Y3Rpb24gd2hlcmUgaXQgaXMgY3JlYXRlZCBhc3NlcnRfZXF1YWxzOiBJREJJbmRleCBuYW1lIHNo
b3VsZCBjaGFuZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgYSByZW5hbWUgZXhwZWN0ZWQgInJlbmFtZWRf
YnlfYXV0aG9yIiBidXQgZ290ICJieV9hdXRob3IiCitQQVNTIEluZGV4ZWREQiBpbmRleCByZW5h
bWUgaW4gbmV3IHRyYW5zYWN0aW9uIAorUEFTUyBJbmRleGVkREIgaW5kZXggcmVuYW1lIGluIHRo
ZSB0cmFuc2FjdGlvbiB3aGVyZSBpdCBpcyBjcmVhdGVkIAogUEFTUyBJbmRleGVkREIgaW5kZXgg
cmVuYW1lIHRvIHRoZSBzYW1lIG5hbWUgc3VjY2VlZHMgCi1GQUlMIEluZGV4ZWREQiBpbmRleCBy
ZW5hbWUgdG8gdGhlIG5hbWUgb2YgYSBkZWxldGVkIGluZGV4IHN1Y2NlZWRzIGFzc2VydF9hcnJh
eV9lcXVhbHM6IElEQk9iamVjdFN0b3JlLmluZGV4TmFtZXMgc2hvdWxkIGltbWVkaWF0ZWx5IHJl
ZmxlY3QgdGhlIHJlbmFtZSBwcm9wZXJ0eSAwLCBleHBlY3RlZCAiYnlfdGl0bGUiIGJ1dCBnb3Qg
ImJ5X2F1dGhvciIKLUZBSUwgSW5kZXhlZERCIGluZGV4IHN3YXBwaW5nIHZpYSByZW5hbWVzIHN1
Y2NlZWRzIEZhaWxlZCB0byBleGVjdXRlICdpbmRleCcgb24gJ0lEQk9iamVjdFN0b3JlJzogVGhl
IHNwZWNpZmllZCBpbmRleCB3YXMgbm90IGZvdW5kLgotRkFJTCBJbmRleGVkREIgaW5kZXggcmVu
YW1lIHN0cmluZ2lmaWVzIG5vbi1zdHJpbmcgbmFtZXMgYXNzZXJ0X2VxdWFsczogSURCSW5kZXgg
bmFtZSBzaG91bGQgY2hhbmdlIGltbWVkaWF0ZWx5IGFmdGVyIGEgcmVuYW1lIHRvIGEgbnVtYmVy
IGV4cGVjdGVkICI0MiIgYnV0IGdvdCAiYnlfYXV0aG9yIgotRkFJTCBJbmRleGVkREIgaW5kZXgg
Y2FuIGJlIHJlbmFtZWQgdG8gIiIgYXNzZXJ0X2VxdWFsczogSURCSW5kZXggbmFtZSBzaG91bGQg
Y2hhbmdlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSByZW5hbWUgZXhwZWN0ZWQgIiIgYnV0IGdvdCAi
YnlfYXV0aG9yIgotRkFJTCBJbmRleGVkREIgaW5kZXggY2FuIGJlIHJlbmFtZWQgdG8gIlx1MDAw
MCIgYXNzZXJ0X2VxdWFsczogSURCSW5kZXggbmFtZSBzaG91bGQgY2hhbmdlIGltbWVkaWF0ZWx5
IGFmdGVyIHRoZSByZW5hbWUgZXhwZWN0ZWQgIlwwIiBidXQgZ290ICJieV9hdXRob3IiCi1GQUlM
IEluZGV4ZWREQiBpbmRleCBjYW4gYmUgcmVuYW1lZCB0byAiXHVEQzAwXHVEODAwIiBhc3NlcnRf
ZXF1YWxzOiBJREJJbmRleCBuYW1lIHNob3VsZCBjaGFuZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhl
IHJlbmFtZSBleHBlY3RlZCAiw63CsMKAw63CoMKAIiBidXQgZ290ICJieV9hdXRob3IiCitQQVNT
IEluZGV4ZWREQiBpbmRleCByZW5hbWUgdG8gdGhlIG5hbWUgb2YgYSBkZWxldGVkIGluZGV4IHN1
Y2NlZWRzIAorUEFTUyBJbmRleGVkREIgaW5kZXggc3dhcHBpbmcgdmlhIHJlbmFtZXMgc3VjY2Vl
ZHMgCitQQVNTIEluZGV4ZWREQiBpbmRleCByZW5hbWUgc3RyaW5naWZpZXMgbm9uLXN0cmluZyBu
YW1lcyAKK1BBU1MgSW5kZXhlZERCIGluZGV4IGNhbiBiZSByZW5hbWVkIHRvICIiIAorUEFTUyBJ
bmRleGVkREIgaW5kZXggY2FuIGJlIHJlbmFtZWQgdG8gIlx1MDAwMCIgCitQQVNTIEluZGV4ZWRE
QiBpbmRleCBjYW4gYmUgcmVuYW1lZCB0byAiXHVEQzAwXHVEODAwIiAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LXJlbmFtZS0xLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5h
bWUtMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzAzMmYyNTk5YTY2ZjBiNzM5YTExZmM0ZTgz
OWMxZjNkYTFmYWIzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBA
QAorVGhpcyB0ZXN0cyBleHBlY3RhdGlvbnMgd2l0aCByZW5hbWluZyBleGlzdGluZyBpbmRleGVz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRh
YmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitJbml0aWFsIHVwZ3JhZGUgbmVl
ZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCitGYWlsZWQgdG8gcmVuYW1lIGRl
bGV0ZWQgaW5kZXg6IEludmFsaWRTdGF0ZUVycm9yIChET00gRXhjZXB0aW9uIDExKTogRmFpbGVk
IHNldCBwcm9wZXJ0eSAnbmFtZScgb24gJ0lEQkluZGV4JzogVGhlIGluZGV4IGhhcyBiZWVuIGRl
bGV0ZWQuCitJbml0aWFsIGluZGV4IG5hbWU6IE5ld0luZGV4CitDYXVnaHQgZXhjZXB0aW9uIHJl
bmFtaW5nIGluZGV4IHRvIHRoZSBuYW1lIG9mIGFub3RoZXIgZXhpc3RpbmcgaW5kZXg6IEludmFs
aWRTdGF0ZUVycm9yIChET00gRXhjZXB0aW9uIDExKTogRmFpbGVkIHNldCBwcm9wZXJ0eSAnbmFt
ZScgb24gJ0lEQkluZGV4JzogVGhlIG93bmluZyBvYmplY3Qgc3RvcmUgYWxyZWFkeSBoYXMgYW4g
aW5kZXggbmFtZWQgJ0V4aXN0aW5nSW5kZXgnLgorUmVuYW1lZCB0aGlzIGluZGV4IHRvIHRoZSBz
YW1lIG5hbWUgaXQgYWxyZWFkeSBoYXMsIGl0J3MgbmFtZSBpcyBub3c6IE5ld0luZGV4CitSZW5h
bWVkIGluZGV4IG5hbWU6IFJlbmFtZWRJbmRleAorQ3VycmVudCBpbmRleCBuYW1lIGluIGEgbmV3
IHRyYW5zYWN0aW9uOiBSZW5hbWVkSW5kZXgKK0NhdWdodCBleGNlcHRpb24gcmVuYW1pbmcgaW5k
ZXggb3V0c2lkZSBvZiBhIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uOiBJbnZhbGlkU3RhdGVF
cnJvciAoRE9NIEV4Y2VwdGlvbiAxMSk6IEZhaWxlZCBzZXQgcHJvcGVydHkgJ25hbWUnIG9uICdJ
REJJbmRleCc6IFRoZSBpbmRleCdzIHRyYW5zYWN0aW9uIGlzIG5vdCBhIHZlcnNpb24gY2hhbmdl
IHRyYW5zYWN0aW9uLgorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0
cmFuc2FjdGlvbiBpbmNsdWRlcyAnRXhpc3RpbmdJbmRleCc6IHRydWUKK0N1cnJlbnQgaW5kZXhO
YW1lcyBkdXJpbmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1JlbmFtZWRJ
bmRleCc6IHRydWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25kIHVwZ3JhZGUgdHJh
bnNhY3Rpb24gaW5jbHVkZXMgJ0Fub3RoZXJOYW1lJzogZmFsc2UKK0N1cnJlbnQgaW5kZXhOYW1l
cyBkdXJpbmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1lldEFub3RoZXJO
YW1lJzogZmFsc2UKK1JlbmFtZWQgaW5kZXggdG86IEFub3RoZXJOYW1lCitDdXJyZW50IGluZGV4
TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdFeGlzdGlu
Z0luZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0
cmFuc2FjdGlvbiBpbmNsdWRlcyAnUmVuYW1lZEluZGV4JzogZmFsc2UKK0N1cnJlbnQgaW5kZXhO
YW1lcyBkdXJpbmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ0Fub3RoZXJO
YW1lJzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFu
c2FjdGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiBmYWxzZQorUmVuYW1lZCBpbmRleCBh
Z2FpbiB0bzogWWV0QW5vdGhlck5hbWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25k
IHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ0V4aXN0aW5nSW5kZXgnOiB0cnVlCitDdXJy
ZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVz
ICdSZW5hbWVkSW5kZXgnOiBmYWxzZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQg
dXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUnOiBmYWxzZQorQ3VycmVu
dCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAn
WWV0QW5vdGhlck5hbWUnOiB0cnVlCitBYm9ydGluZyB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlv
bi4uLgorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlv
biBpbmNsdWRlcyAnRXhpc3RpbmdJbmRleCc6IHRydWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJp
bmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1JlbmFtZWRJbmRleCc6IHRy
dWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24g
aW5jbHVkZXMgJ0Fub3RoZXJOYW1lJzogZmFsc2UKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcg
c2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1lldEFub3RoZXJOYW1lJzogZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVu
YW1lLTEtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzAzMmYyNTk5YTY2ZjBiNzM5YTExZmM0ZTgzOWMxZjNkYTFmYWIzYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1w
cml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQwIEBACitUaGlzIHRlc3RzIGV4cGVjdGF0
aW9ucyB3aXRoIHJlbmFtaW5nIGV4aXN0aW5nIGluZGV4ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWRE
Qi5vcGVuKGRibmFtZSkKK0luaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBO
ZXcgdmVyc2lvbiAtIDEKK0ZhaWxlZCB0byByZW5hbWUgZGVsZXRlZCBpbmRleDogSW52YWxpZFN0
YXRlRXJyb3IgKERPTSBFeGNlcHRpb24gMTEpOiBGYWlsZWQgc2V0IHByb3BlcnR5ICduYW1lJyBv
biAnSURCSW5kZXgnOiBUaGUgaW5kZXggaGFzIGJlZW4gZGVsZXRlZC4KK0luaXRpYWwgaW5kZXgg
bmFtZTogTmV3SW5kZXgKK0NhdWdodCBleGNlcHRpb24gcmVuYW1pbmcgaW5kZXggdG8gdGhlIG5h
bWUgb2YgYW5vdGhlciBleGlzdGluZyBpbmRleDogSW52YWxpZFN0YXRlRXJyb3IgKERPTSBFeGNl
cHRpb24gMTEpOiBGYWlsZWQgc2V0IHByb3BlcnR5ICduYW1lJyBvbiAnSURCSW5kZXgnOiBUaGUg
b3duaW5nIG9iamVjdCBzdG9yZSBhbHJlYWR5IGhhcyBhbiBpbmRleCBuYW1lZCAnRXhpc3RpbmdJ
bmRleCcuCitSZW5hbWVkIHRoaXMgaW5kZXggdG8gdGhlIHNhbWUgbmFtZSBpdCBhbHJlYWR5IGhh
cywgaXQncyBuYW1lIGlzIG5vdzogTmV3SW5kZXgKK1JlbmFtZWQgaW5kZXggbmFtZTogUmVuYW1l
ZEluZGV4CitDdXJyZW50IGluZGV4IG5hbWUgaW4gYSBuZXcgdHJhbnNhY3Rpb246IFJlbmFtZWRJ
bmRleAorQ2F1Z2h0IGV4Y2VwdGlvbiByZW5hbWluZyBpbmRleCBvdXRzaWRlIG9mIGEgdmVyc2lv
biBjaGFuZ2UgdHJhbnNhY3Rpb246IEludmFsaWRTdGF0ZUVycm9yIChET00gRXhjZXB0aW9uIDEx
KTogRmFpbGVkIHNldCBwcm9wZXJ0eSAnbmFtZScgb24gJ0lEQkluZGV4JzogVGhlIGluZGV4J3Mg
dHJhbnNhY3Rpb24gaXMgbm90IGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24uCitDdXJyZW50
IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdF
eGlzdGluZ0luZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBn
cmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnUmVuYW1lZEluZGV4JzogdHJ1ZQorQ3VycmVudCBp
bmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5v
dGhlck5hbWUnOiBmYWxzZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFk
ZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiBmYWxzZQorUmVuYW1lZCBp
bmRleCB0bzogQW5vdGhlck5hbWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25kIHVw
Z3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ0V4aXN0aW5nSW5kZXgnOiB0cnVlCitDdXJyZW50
IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdS
ZW5hbWVkSW5kZXgnOiBmYWxzZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBn
cmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUnOiB0cnVlCitDdXJyZW50IGlu
ZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdZZXRB
bm90aGVyTmFtZSc6IGZhbHNlCitSZW5hbWVkIGluZGV4IGFnYWluIHRvOiBZZXRBbm90aGVyTmFt
ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBp
bmNsdWRlcyAnRXhpc3RpbmdJbmRleCc6IHRydWUKK0N1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcg
c2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1JlbmFtZWRJbmRleCc6IGZhbHNl
CitDdXJyZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGlu
Y2x1ZGVzICdBbm90aGVyTmFtZSc6IGZhbHNlCitDdXJyZW50IGluZGV4TmFtZXMgZHVyaW5nIHNl
Y29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdZZXRBbm90aGVyTmFtZSc6IHRydWUK
K0Fib3J0aW5nIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uLi4uCitDdXJyZW50IGluZGV4TmFt
ZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdFeGlzdGluZ0lu
ZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFu
c2FjdGlvbiBpbmNsdWRlcyAnUmVuYW1lZEluZGV4JzogdHJ1ZQorQ3VycmVudCBpbmRleE5hbWVz
IGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUn
OiBmYWxzZQorQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2Fj
dGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEtcHJpdmF0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUxYmFkNGVmZDcxZjVjYWRkODUzZGY0NWNiMzQwYjBlYzdiMDY2
NjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vaW5kZXgtcmVuYW1lLTEtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0PgorZW5hYmxlUHJpdmF0ZUJyb3dzaW5nID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbmRleC1yZW5hbWUtMS5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzZTI2Yzc5
YTE1N2FlOTAxMmZkOTAzZDgxYzI3OTZlYWY2ODNmMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEuaHRtbApAQCAt
MCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFy
ZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2luZGV4LXJlbmFtZS0xLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5kZXgt
cmVuYW1lLTEuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3Vy
Y2VzL2luZGV4LXJlbmFtZS0xLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NjFkOGFmMDJhNDc2N2MyZmJmNDY5
ZGFlOTUzOWQ2MDM2NDhjYWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LXJlbmFtZS0xLmpzCkBAIC0wLDAgKzEs
MTM3IEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBleHBlY3RhdGlvbnMgd2l0aCByZW5hbWlu
ZyBleGlzdGluZyBpbmRleGVzLiIpOworCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7
CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRlYnVnKG1lc3NhZ2UpOworfQorCit2
YXIgdGVzdEdlbmVyYXRvcjsKK2Z1bmN0aW9uIG5leHQoKQoreworICAgIHRlc3RHZW5lcmF0b3Iu
bmV4dCgpOworfQorCitmdW5jdGlvbiBhc3luY05leHQoKQoreworICAgIHNldFRpbWVvdXQoInRl
c3RHZW5lcmF0b3IubmV4dCgpOyIsIDApOworfQorCit2YXIgZGI7Cit2YXIgZGJOYW1lOwordmFy
IGRiVmVyc2lvbjsKKworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQoreworICAgIGxv
ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVy
c2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisKKyAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisJZGJOYW1lID0gZGIubmFtZTsKKwlkYlZlcnNpb24gPSBk
Yi52ZXJzaW9uOworCisJb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgiT2JqZWN0
U3RvcmUiKTsKKworCW9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCJFeGlzdGluZ0luZGV4IiwgImZv
byIpOworCQorCWluZGV4VG9EZWxldGUgPSBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgiSW5kZXhU
b0RlbGV0ZSIsICJiYXIiKTsKKwlvYmplY3RTdG9yZS5kZWxldGVJbmRleCgiSW5kZXhUb0RlbGV0
ZSIpOworCXRyeSB7CisJCWluZGV4VG9EZWxldGUubmFtZSA9ICJSZW5hbWVkSW5kZXgiOworCQls
b2coIldhcyBpbmNvcnJlY3RseSBhYmxlIHRvIHJlbmFtZSBhIGRlbGV0ZWQgaW5kZXgiKTsKKwl9
IGNhdGNoIChlKSB7CisJCWxvZygiRmFpbGVkIHRvIHJlbmFtZSBkZWxldGVkIGluZGV4OiAiICsg
ZSkKKwl9CisJCisJbmV3SW5kZXggPSBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgiTmV3SW5kZXgi
LCAiYmFyIik7CisJCisJbG9nKCJJbml0aWFsIGluZGV4IG5hbWU6ICIgKyBuZXdJbmRleC5uYW1l
KTsKKwkKKwl0cnkgeworCQluZXdJbmRleC5uYW1lID0gIkV4aXN0aW5nSW5kZXgiOworCQlsb2co
IldhcyBpbmNvcnJlY3RseSBhYmxlIHRvIHJlbmFtZSB0aGlzIGluZGV4IHRvIHRoZSBuYW1lIG9m
IGFub3RoZXIgZXhpc3RpbmcgaW5kZXgiKTsKKwl9IGNhdGNoKGUpIHsKKwkJbG9nKCJDYXVnaHQg
ZXhjZXB0aW9uIHJlbmFtaW5nIGluZGV4IHRvIHRoZSBuYW1lIG9mIGFub3RoZXIgZXhpc3Rpbmcg
aW5kZXg6ICIgKyBlKTsKKwl9CisKKwluZXdJbmRleC5uYW1lID0gbmV3SW5kZXgubmFtZTsKKwls
b2coIlJlbmFtZWQgdGhpcyBpbmRleCB0byB0aGUgc2FtZSBuYW1lIGl0IGFscmVhZHkgaGFzLCBp
dCdzIG5hbWUgaXMgbm93OiAiICsgbmV3SW5kZXgubmFtZSk7CisKKwluZXdJbmRleC5uYW1lID0g
IlJlbmFtZWRJbmRleCI7CisJbG9nKCJSZW5hbWVkIGluZGV4IG5hbWU6ICIgKyBuZXdJbmRleC5u
YW1lKTsKKworICAgIGV2ZW50LnRhcmdldC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAg
ICAgdGVzdEdlbmVyYXRvciA9IHRlc3RTdGVwcygpOworICAgICAgICB0ZXN0R2VuZXJhdG9yLm5l
eHQoKTsKKyAgICB9OworfQorCitmdW5jdGlvbiogdGVzdFN0ZXBzKCkKK3sgICAgCisgICAgdHgg
PSBkYi50cmFuc2FjdGlvbigiT2JqZWN0U3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgdHgub25j
b21wbGV0ZSA9IG5leHQ7CisgICAgb2JqZWN0U3RvcmUgPSB0eC5vYmplY3RTdG9yZSgiT2JqZWN0
U3RvcmUiKTsKKwlpbmRleCA9IG9iamVjdFN0b3JlLmluZGV4KCJSZW5hbWVkSW5kZXgiKTsKKyAg
ICBsb2coIkN1cnJlbnQgaW5kZXggbmFtZSBpbiBhIG5ldyB0cmFuc2FjdGlvbjogIiArIGluZGV4
Lm5hbWUpOworCisJdHJ5IHsKKwkJaW5kZXgubmFtZSA9ICJuZXdOYW1lIjsKKwkJbG9nKCJXYXMg
aW5jb3JyZWN0bHkgYWJsZSB0byByZW5hbWUgdGhpcyBpbmRleCBvdXRzaWRlIG9mIGEgdmVyc2lv
biBjaGFuZ2UgdHJhbnNhY3Rpb24iKTsKKwl9IGNhdGNoKGUpIHsKKwkJbG9nKCJDYXVnaHQgZXhj
ZXB0aW9uIHJlbmFtaW5nIGluZGV4IG91dHNpZGUgb2YgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2Fj
dGlvbjogIiArIGUpOworCX0KKyAgICAKKyAgICB5aWVsZDsgLy8gRm9yIHRoZSB0cmFuc2FjdGlv
bidzIGNvbXBsZXRpb24uCisKKwlkYi5jbG9zZSgpOworICAgIAorCXVwZ3JhZGVPcGVuUmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKGRiTmFtZSwgZGJWZXJzaW9uICsgMSk7CisJdXBncmFkZU9wZW5S
ZXF1ZXN0Lm9uZXJyb3IgPSBuZXh0OworCXVwZ3JhZGVPcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihldmVudCkgeworCQlvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgiT2JqZWN0U3RvcmUiKTsKKwkJCisJCWxvZygiQ3VycmVudCBp
bmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnRXhp
c3RpbmdJbmRleCc6ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJFeGlzdGlu
Z0luZGV4IikpOworCQlsb2coIkN1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25kIHVwZ3Jh
ZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1JlbmFtZWRJbmRleCc6ICIgKyBvYmplY3RTdG9yZS5p
bmRleE5hbWVzLmNvbnRhaW5zKCJSZW5hbWVkSW5kZXgiKSk7CisJCWxvZygiQ3VycmVudCBpbmRl
eE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhl
ck5hbWUnOiAiICsgb2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiQW5vdGhlck5hbWUi
KSk7CisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFu
c2FjdGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiAiICsgb2JqZWN0U3RvcmUuaW5kZXhO
YW1lcy5jb250YWlucygiWWV0QW5vdGhlck5hbWUiKSk7CisKKwkJaW5kZXggPSBvYmplY3RTdG9y
ZS5pbmRleCgiUmVuYW1lZEluZGV4Iik7CisJCWluZGV4Lm5hbWUgPSAiQW5vdGhlck5hbWUiOwor
CQlsb2coIlJlbmFtZWQgaW5kZXggdG86ICIgKyBpbmRleC5uYW1lKTsKKwkJCisJCWxvZygiQ3Vy
cmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRl
cyAnRXhpc3RpbmdJbmRleCc6ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJF
eGlzdGluZ0luZGV4IikpOworCQlsb2coIkN1cnJlbnQgaW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25k
IHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1JlbmFtZWRJbmRleCc6ICIgKyBvYmplY3RT
dG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJSZW5hbWVkSW5kZXgiKSk7CisJCWxvZygiQ3VycmVu
dCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAn
QW5vdGhlck5hbWUnOiAiICsgb2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiQW5vdGhl
ck5hbWUiKSk7CisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFk
ZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhlck5hbWUnOiAiICsgb2JqZWN0U3RvcmUu
aW5kZXhOYW1lcy5jb250YWlucygiWWV0QW5vdGhlck5hbWUiKSk7CisKKwkJaW5kZXgubmFtZSA9
ICJZZXRBbm90aGVyTmFtZSI7CisJCWxvZygiUmVuYW1lZCBpbmRleCBhZ2FpbiB0bzogIiArIGlu
ZGV4Lm5hbWUpOworCisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBn
cmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnRXhpc3RpbmdJbmRleCc6ICIgKyBvYmplY3RTdG9y
ZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJFeGlzdGluZ0luZGV4IikpOworCQlsb2coIkN1cnJlbnQg
aW5kZXhOYW1lcyBkdXJpbmcgc2Vjb25kIHVwZ3JhZGUgdHJhbnNhY3Rpb24gaW5jbHVkZXMgJ1Jl
bmFtZWRJbmRleCc6ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJSZW5hbWVk
SW5kZXgiKSk7CisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNvbmQgdXBncmFk
ZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnQW5vdGhlck5hbWUnOiAiICsgb2JqZWN0U3RvcmUuaW5k
ZXhOYW1lcy5jb250YWlucygiQW5vdGhlck5hbWUiKSk7CisJCWxvZygiQ3VycmVudCBpbmRleE5h
bWVzIGR1cmluZyBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnWWV0QW5vdGhl
ck5hbWUnOiAiICsgb2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiWWV0QW5vdGhlck5h
bWUiKSk7CisKKwkJbG9nKCJBYm9ydGluZyB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbi4uLiIp
OworCQlldmVudC50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKKwl9CisKKwl5aWVsZDsgLy8g
Rm9yIHRoZSBvcGVuIHJlcXVlc3QncyBmYWlsdXJlIChkdWUgdG8gYWJvcnRpbmcgdGhlIHZlcnNp
b24gY2hhbmdlIHRyYW5zYWN0aW9uKQorCisJdXBncmFkZU9wZW5SZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJOYW1lKTsKKwl1cGdyYWRlT3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
ZXZlbnQpIHsKKwkJb2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0LnRyYW5zYWN0aW9u
KCJPYmplY3RTdG9yZSIpLm9iamVjdFN0b3JlKCJPYmplY3RTdG9yZSIpOworCQkKKwkJbG9nKCJD
dXJyZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1
ZGVzICdFeGlzdGluZ0luZGV4JzogIiArIG9iamVjdFN0b3JlLmluZGV4TmFtZXMuY29udGFpbnMo
IkV4aXN0aW5nSW5kZXgiKSk7CisJCWxvZygiQ3VycmVudCBpbmRleE5hbWVzIGR1cmluZyBzZWNv
bmQgdXBncmFkZSB0cmFuc2FjdGlvbiBpbmNsdWRlcyAnUmVuYW1lZEluZGV4JzogIiArIG9iamVj
dFN0b3JlLmluZGV4TmFtZXMuY29udGFpbnMoIlJlbmFtZWRJbmRleCIpKTsKKwkJbG9nKCJDdXJy
ZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdyYWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVz
ICdBbm90aGVyTmFtZSc6ICIgKyBvYmplY3RTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJBbm90
aGVyTmFtZSIpKTsKKwkJbG9nKCJDdXJyZW50IGluZGV4TmFtZXMgZHVyaW5nIHNlY29uZCB1cGdy
YWRlIHRyYW5zYWN0aW9uIGluY2x1ZGVzICdZZXRBbm90aGVyTmFtZSc6ICIgKyBvYmplY3RTdG9y
ZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJZZXRBbm90aGVyTmFtZSIpKTsKKworCQluZXh0KCk7CisJ
fQorCQorCXlpZWxkOyAvLyBUbyBiYWxhbmNlIHRoZSBuZXh0KCkgYWJvdmUuCisJCisgICAgZmlu
aXNoSlNUZXN0KCk7CisgfQorIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LWV4cGVjdGVkLnR4dAppbmRl
eCAxZTAyNmZiODcxODY0YmZmYzllOTYwNzgzYjMzOWZmNWRkMzU0MjM5Li5lMjhmMmRiNTk1MGZm
YmMwMTAyNTA4MTVmYjJlYWI0MTk3NTc1N2U3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZWFkb25seS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVhZG9ubHktZXhwZWN0ZWQudHh0CkBAIC0zNSw5ICszNSw2IEBAIHRy
eWluZyB0byBzZXQgcmVhZG9ubHkgcHJvcGVydHkgY3Vyc29yLnByaW1hcnlLZXkKIGN1cnNvci5w
cmltYXJ5S2V5ID0gSW5maW5pdHkKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc3RpbGwgZmly
c3QKIGluZGV4ID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ2ZpcnN0JywgJ2ZpcnN0Jyk7Ci10
cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IGluZGV4Lm5hbWUKLWluZGV4Lm5hbWUgPSAn
YmFyJwotUEFTUyBpbmRleC5uYW1lIGlzIHN0aWxsIGZpcnN0CiB0cnlpbmcgdG8gc2V0IHJlYWRv
bmx5IHByb3BlcnR5IGluZGV4Lm9iamVjdFN0b3JlCiBpbmRleC5vYmplY3RTdG9yZSA9IHRoaXMK
IFBBU1MgaW5kZXgub2JqZWN0U3RvcmUgaXMgc3RpbGwgW29iamVjdCBJREJPYmplY3RTdG9yZV0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByaXZh
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHkt
cHJpdmF0ZS1leHBlY3RlZC50eHQKaW5kZXggMDUxODc0ZmUwOGMyNTZiMjU3ZDhlNmQxZTU5MzEx
ZGY1NDI0ZmFhMC4uY2JhNDVhZTYzMGI3OTJhMzdmZGNjYjM3NjhlYWY2MWZmYTJmMmQwOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJpdmF0ZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHkt
cHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTM1LDkgKzM1LDYgQEAgdHJ5aW5nIHRvIHNldCByZWFk
b25seSBwcm9wZXJ0eSBjdXJzb3IucHJpbWFyeUtleQogY3Vyc29yLnByaW1hcnlLZXkgPSBJbmZp
bml0eQogUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzdGlsbCBmaXJzdAogaW5kZXggPSBvYmpl
Y3RTdG9yZS5jcmVhdGVJbmRleCgnZmlyc3QnLCAnZmlyc3QnKTsKLXRyeWluZyB0byBzZXQgcmVh
ZG9ubHkgcHJvcGVydHkgaW5kZXgubmFtZQotaW5kZXgubmFtZSA9ICdiYXInCi1QQVNTIGluZGV4
Lm5hbWUgaXMgc3RpbGwgZmlyc3QKIHRyeWluZyB0byBzZXQgcmVhZG9ubHkgcHJvcGVydHkgaW5k
ZXgub2JqZWN0U3RvcmUKIGluZGV4Lm9iamVjdFN0b3JlID0gdGhpcwogUEFTUyBpbmRleC5vYmpl
Y3RTdG9yZSBpcyBzdGlsbCBbb2JqZWN0IElEQk9iamVjdFN0b3JlXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzCmluZGV4IGQzZWEz
MmYxMTI4ZDZjMjRlNzg2MzYyOTFiYTAwM2NhYzg4MTczMDQuLmM3NDNjNThlYzE5OGVjNGE0ODRk
NmQ3Y2FlOWZmMDE2MGM3NWNmY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9yZWFkb25seS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvcmVhZG9ubHkuanMKQEAgLTYzLDcgKzYzLDYgQEAgZnVuY3Rpb24g
Y2hlY2tDdXJzb3IoKQogICAgIH0KIAogICAgIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBv
YmplY3RTdG9yZS5jcmVhdGVJbmRleCgnZmlyc3QnLCAnZmlyc3QnKTsiKTsKLSAgICBzZXRSZWFk
b25seVByb3BlcnR5KCJpbmRleC5uYW1lIiwgIidiYXInIik7CiAgICAgc2V0UmVhZG9ubHlQcm9w
ZXJ0eSgiaW5kZXgub2JqZWN0U3RvcmUiLCAidGhpcyIpOwogICAgIHNldFJlYWRvbmx5UHJvcGVy
dHkoImluZGV4LmtleVBhdGgiLCAiJ2JhciciKTsKICAgICBzZXRSZWFkb25seVByb3BlcnR5KCJp
bmRleC51bmlxdWUiLCAidHJ1ZSIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>