<?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>202604</bug_id>
          
          <creation_ts>2019-10-04 14:46:14 -0700</creation_ts>
          <short_desc>Domain relationships in the ITP Database should be inserted in a single query and ignore repeat insert attempts.</short_desc>
          <delta_ts>2019-10-07 16:17:37 -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>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1577017</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-04 14:46:14 -0700</bug_when>
    <thetext>Domain relationships in the ITP Database should be inserted in a single query and ignore repeat insert attempts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577018</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-04 14:46:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/55995831&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577065</commentid>
    <comment_count>2</comment_count>
      <attachid>380264</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-04 16:14:30 -0700</bug_when>
    <thetext>Created attachment 380264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577462</commentid>
    <comment_count>3</comment_count>
      <attachid>380264</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-07 13:30:49 -0700</bug_when>
    <thetext>Comment on attachment 380264
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1738
&gt; +bool ResourceLoadStatisticsDatabaseStore::countSubStatisticsTesting(const RegistrableDomain&amp; subframeDomain, const TopFrameDomain&amp; topFrameDomain)

Please find a better name, this is called &quot;count&quot; and yet returns a boolean instead of an integer. This is confusing.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1768
&gt; +    if (subFrameUnderTopFrameCount.getColumnInt(0) == 1

return (subFrameUnderTopFrameCount.getColumnInt(0) == 1
    &amp;&amp; subresourceUnderTopFrameCount.getColumnInt(0) == 1
    &amp;&amp; subresourceUniqueRedirectsTo.getColumnInt(0) == 1);

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:638
&gt; +            return;

You&apos;re failing to call the completion handler here.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:640
&gt; +        bool isRelationshipOnlyInDatabaseOnce = downcast&lt;ResourceLoadStatisticsDatabaseStore&gt;(*m_statisticsStore.get()).countSubStatisticsTesting(subDomain, topDomain);

You should not need the .get() I think.

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:606
&gt; +    if (!canSendMessage()) {

Not needed, sendWithAsyncReply() should do the right thing already.

&gt; Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:1750
&gt; +    WKRetainPtr&lt;WKStringRef&gt; messageName = adoptWK(WKStringCreateWithUTF8CString(&quot;IsStatisticsOnlyInDatabaseOnce&quot;));

auto

&gt; Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:1751
&gt; +    WKRetainPtr&lt;WKDictionaryRef&gt; messageBody = adoptWK(WKDictionaryCreate(rawKeys.data(), rawValues.data(), rawKeys.size()));

auto

&gt; Tools/WebKitTestRunner/TestInvocation.cpp:1258
&gt; +        WKRetainPtr&lt;WKStringRef&gt; subHostKey = adoptWK(WKStringCreateWithUTF8CString(&quot;SubHost&quot;));

auto

&gt; Tools/WebKitTestRunner/TestInvocation.cpp:1259
&gt; +        WKRetainPtr&lt;WKStringRef&gt; topHostKey = adoptWK(WKStringCreateWithUTF8CString(&quot;TopHost&quot;));

auto

&gt; Tools/WebKitTestRunner/TestInvocation.cpp:1265
&gt; +        WKRetainPtr&lt;WKTypeRef&gt; result = adoptWK(WKBooleanCreate(statisticInDatabaseOnce));

No need for this local variable, just return right away.

&gt; LayoutTests/http/tests/resourceLoadStatistics/many-inserts-only-insert-once-expected.txt:1
&gt; +fake test.

This is surprising.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577497</commentid>
    <comment_count>4</comment_count>
      <attachid>380359</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-07 14:00:45 -0700</bug_when>
    <thetext>Created attachment 380359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577537</commentid>
    <comment_count>5</comment_count>
      <attachid>380359</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-07 15:37:07 -0700</bug_when>
    <thetext>Comment on attachment 380359
Patch

Rejecting attachment 380359 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 380359, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=380359&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=202604&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 380359 from bug 202604.
Fetching: https://bugs.webkit.org/attachment.cgi?id=380359
Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	A	LayoutTests/http/tests/resourceLoadStatistics/many-inserts-only-insert-once-expected.txt
	A	LayoutTests/http/tests/resourceLoadStatistics/many-inserts-only-insert-once.html
	M	LayoutTests/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/LayoutTests/ChangeLog&apos; is out of date
W: f4be6607737832e584d6ba23b1ccf02997d789b2 and refs/remotes/origin/master differ, using rebase:
:040000 040000 3ec1adaa6f75c76fb7becffddc2c5634a28af7bf d3143ee2d72080ff4d75c7d4f0b4a9efb3ab75ba M	LayoutTests
:040000 040000 c0ab4c71d29e60301eab11c5e9afb96ed762d678 c33f1ad251eb0fc2dcd5a42100fe485d0dc0fad0 M	Source
:040000 040000 84fe9d257a3dda72ec3a1886134a1ef6c49e7d59 ce9714c222cdcb45fd489a7b646c3591607e54e5 M	Tools
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	A	LayoutTests/http/tests/resourceLoadStatistics/many-inserts-only-insert-once-expected.txt
	A	LayoutTests/http/tests/resourceLoadStatistics/many-inserts-only-insert-once.html
	M	LayoutTests/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/LayoutTests/ChangeLog&apos; is out of date
W: f4be6607737832e584d6ba23b1ccf02997d789b2 and refs/remotes/origin/master differ, using rebase:
:040000 040000 3ec1adaa6f75c76fb7becffddc2c5634a28af7bf d3143ee2d72080ff4d75c7d4f0b4a9efb3ab75ba M	LayoutTests
:040000 040000 c0ab4c71d29e60301eab11c5e9afb96ed762d678 c33f1ad251eb0fc2dcd5a42100fe485d0dc0fad0 M	Source
:040000 040000 84fe9d257a3dda72ec3a1886134a1ef6c49e7d59 ce9714c222cdcb45fd489a7b646c3591607e54e5 M	Tools
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
From https://git.webkit.org/git/WebKit
   293423b2e3b..9cd68bb2a10  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 250795 = 293423b2e3bc99a3b6b08c9e39c59d8eb89f00e1
r250797 = 368609aca428fc8204b022c574a064ef2eb32b94
r250798 = 27eaa97abcb975632a99166f495de0aa6ad7aa83
r250799 = 9cd68bb2a10e57ff00cd6c464c483b0f2adf559b
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: https://webkit-queues.webkit.org/results/13104128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577552</commentid>
    <comment_count>6</comment_count>
      <attachid>380370</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-07 15:56:58 -0700</bug_when>
    <thetext>Created attachment 380370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577553</commentid>
    <comment_count>7</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-07 15:59:10 -0700</bug_when>
    <thetext>Did a rebase and uploaded again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577556</commentid>
    <comment_count>8</comment_count>
      <attachid>380370</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-07 16:17:36 -0700</bug_when>
    <thetext>Comment on attachment 380370
Patch

Clearing flags on attachment: 380370

Committed r250804: &lt;https://trac.webkit.org/changeset/250804&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577557</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-07 16:17:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380264</attachid>
            <date>2019-10-04 16:14:30 -0700</date>
            <delta_ts>2019-10-07 14:00:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202604-20191004161429.patch</filename>
            <type>text/plain</type>
            <size>109205</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgxMmUzNTZjN2Y5OWI5YjJk
ZTEwNGViYTY3ZDRhMDM5YWYzMDBhZTAuLjQ4ZWE1YjVlNjQyNTlmOTEzOTFiNTUyMzNhMjNjYTRk
ZmUxOTcyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMTktMTAtMDQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9tYWluIHJlbGF0
aW9uc2hpcHMgaW4gdGhlIElUUCBEYXRhYmFzZSBzaG91bGQgYmUgaW5zZXJ0ZWQgaW4gYSBzaW5n
bGUgcXVlcnkgYW5kIGlnbm9yZSByZXBlYXQgaW5zZXJ0IGF0dGVtcHRzLiAoMjAyNjA0KQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNjA0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81NTk5NTgzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIHR3byBj
bGVhbi11cHMgZm9yIHRoZSBJVFAgU1FMaXRlIERhdGFiYXNlIFN0b3JlLgorICAgICAgICBGaXJz
dCwgYnkgdXNpbmcgSU5TRVJUIE9SIElHTk9SRSBhcyBvcHBvc2VkIHRvIElOU0VSVCwgaXQgZWxp
bWluYXRlcworICAgICAgICB0aGUgbmVlZCB0byBjaGVjayBpZiBhIHJlbGF0aW9uc2hpcCBhbHJl
YWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UKKyAgICAgICAgYmVmb3JlIGluc2VydGluZyBpdC4g
U2Vjb25kLCBpbnN0ZWFkIG9mIGxvb3BpbmcgdGhyb3VnaCBkb21haW4gbGlzdHMKKyAgICAgICAg
YW5kIGluc2VydGluZyBlYWNoIHJlbGF0aW9uc2hpcCBhcyBhIHNlcGFyYXRlIHF1ZXJ5LCB0aGlz
IHBhdGNoIG5vdworICAgICAgICBjb252ZXJ0cyBsaXN0cyB0byBhIHN0cmluZyB3aGljaCBTUUxp
dGUgY2FuIHVzZSB0byBpbnNlcnQgbXVsdGlwbGUKKyAgICAgICAgcm93cyBpbnRvIGEgZGF0YWJh
c2UgdXNpbmcgYSBzaW5nbGUgcXVlcnkuCisKKyAgICAgICAgU29tZSBFeGlzdHMgcXVlcmllcyBj
b3VsZCBub3QgYmUgZGVsZXRlZCBiZWNhdXNlIHRoZXkgd2VyZSBiZWluZworICAgICAgICB1c2Vk
IGZvciB0ZXN0aW5nLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyk6CisgICAgICAgIFJlbW92ZWQgb2xkIGlu
c2VydCBxdWVyaWVzIGFuZCByZXBsYWNlZCB0aGVtIHdpdGggcXVlcmllcyBhYmxlIHRvCisgICAg
ICAgIGluc2VydCBzdHJpbmctbGlzdHMgb2YgZG9tYWlucyBpbiBhIHNpbmdsZSBxdWVyeS4gQWxz
byByZW9yZ2FuaXplZAorICAgICAgICB0aGUgcXVlcmllcyBieSBmdW5jdGlvbmFsaXR5IHRvIG1h
a2UgdGhlbSBlYXNpZXIgdG8gZmluZCBhbmQgZWRpdC4KKworICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVh
dGVTY2hlbWEpOgorICAgICAgICBJbiBvcmRlciB0byBwcm9wZXJseSB0YWtlIGFkdmFudGFnZSBv
ZiB0aGUgSU5TRVJUIE9SIElHTk9SRQorICAgICAgICBmdW5jdGlvbmFsaXR5LCB1bmlxdWUgaW5k
aWNlcyBtdXN0IGJlIGVzdGFibGlzaGVkIHNvIHRoZSBTUUxpdGUgdGFibGUKKyAgICAgICAgaXMg
YXdhcmUgb2Ygd2hhdCBwYXR0ZXJucyB0byBsb29rIGZvciB3aGVuIGlnbm9yaW5nIGEgbmV3IGlu
c2VydC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6ZW5zdXJlQW5kbWFrZURvbWFpbkxpc3QpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlz
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjppbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKToKKyAgICAgICAgTG9vcGluZyB0aHJvdWdoIHRo
ZSBkb21haW4gbGlzdCBpcyBubyBsb25nZXIgbmVlZGVkIHdpdGggdGhlIG5ldyBxdWVyeQorICAg
ICAgICBjaGFuZ2VzLiBBZGRpdGlvbmFsbHksIGVuc3VyaW5nIGEgZG9tYWluIGlzIGluIHRoZSBP
YnNlcnZlZCBEb21haW5zCisgICAgICAgIHRhYmxlIG9mIHRoZSBkYXRhYmFzZSBtdXN0IGJlIGRv
bmUgYmVmb3JlIHV0aWxpemluZyBhbnkgaW5zZXJ0aW5nIG9mIAorICAgICAgICByZWxhdGlvbnNo
aXBzIGJlY2F1c2UgdGhlIHJlbGF0aW9uc2hpcCBxdWVyaWVzIHJlbHkgb24gZmV0Y2hpbmcgdGhl
CisgICAgICAgIHRvcEZyYW1lIGRvbWFpbklEIGZyb20gdGhlIE9ic2VydmVkRG9tYWlucyB0YWJs
ZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dDcm9zc1NpdGVMb2Fk
V2l0aExpbmtEZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbik6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4pOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRv
KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKToKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RUbyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSk6CisgICAgICAgIFdpdGggdGhlIGVu
c3VyZSBjaGVjayBiZWluZyBkb25lIG9uY2UgaW4gdGhlIGVuc3VyZUFuZG1ha2VEb21haW5MaXN0
CisgICAgICAgIGZ1bmN0aW9uLCB0aGVzZSBmdW5jdGlvbnMgbm8gbG9uZ2VyIGhhdmUgdG8gbWFr
ZSB0aGF0IGNoZWNrIGJlZm9yZQorICAgICAgICBpbnNlcnRpbmcuCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5o
OgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRh
YmFzZU9uY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgIENoYW5nZXMgaW4gV2VSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUgd2VyZSBmb3IgdGVzdGluZyBvbmx5LiBUaGlzCisgICAgICAgIHBh
dGNoIHVwZGF0ZWQgdGhlIG1lcmdlIHN0YXRpc3RpYyB0ZXN0aW5nIHRvIGFsc28gdGVzdCB0aGlz
IGNoYW5nZSBieQorICAgICAgICBoYXZpbmcgYSB0b3BGcmFtZURvbWFpbiBsaXN0IHdpdGggbW9y
ZSB0aGFuIG9uZSBkb21haW4uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptZXJnZVN0YXRpc3Rp
Y0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNSZWxhdGlv
bnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0
aXN0aWMpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0
YWJhc2VPbmNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om1lcmdlU3RhdGlzdGlj
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVs
YXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjppc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgQWRkZWQgYSBu
ZXcgZnVuY3Rpb24gZm9yIHRlc3RpbmcgdGhhdCB0aGVyZSBhcmUgbm8gcmVwZWF0IGluc2VydHMK
KyAgICAgICAgaW50byB0aGUgZGF0YWJhc2UuIFVwZGF0ZWQgbWVyZ2VTdGF0aXN0aWNzIHRvIHRl
c3QgdGhlIGxpc3QtaW5zZXJ0CisgICAgICAgIGZ1bmN0aW9uYWxpdHkuCisKIDIwMTktMTAtMDQg
IEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBkZXRlcm1p
bmF0aW9uIG9mIHRoZSB0b3AtbGV2ZWwgcmVzb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDg4ZmRiN2U2ZDJjNjRk
MmNkOTNkODUzNzFkZjZhMWQxYzAxNzJlY2UuLjAzMDMxNGZjZGY0NGZlY2U0ODA5YzMwMWRlNGVk
ZTEyOTAyNDNkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtNjIsNTcgKzYyLDU2IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwg
Zm10LCAuLi4pICAoKHZvaWQpMCkKICNlbmRpZgogCisvLyBDT1VOVCBRdWVyaWVzCiBjb25zdGV4
cHIgYXV0byBvYnNlcnZlZERvbWFpbkNvdW50UXVlcnkgPSAiU0VMRUNUIENPVU5UKCopIEZST00g
T2JzZXJ2ZWREb21haW5zIl9zOworY29uc3RleHByIGF1dG8gY291bnRTdWJmcmFtZVVuZGVyVG9w
RnJhbWVRdWVyeSA9ICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBTdWJmcmFtZVVuZGVyVG9wRnJhbWVE
b21haW5zIFdIRVJFIHN1YkZyYW1lRG9tYWluSUQgPSA/IEFORCB0b3BGcmFtZURvbWFpbklEID0g
PzsiX3M7Citjb25zdGV4cHIgYXV0byBjb3VudFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZVF1ZXJ5
ID0gIlNFTEVDVCBDT1VOVCgqKSBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMg
V0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8gQU5EIHRvcEZyYW1lRG9tYWluSUQgPSA/OyJf
czsKK2NvbnN0ZXhwciBhdXRvIGNvdW50U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5
ID0gIlNFTEVDVCBDT1VOVCgqKSBGUk9NIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8gV0hF
UkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8gQU5EIHRvRG9tYWluSUQgPSA/OyJfczsKKworLy8g
SU5TRVJUIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIGluc2VydE9ic2VydmVkRG9tYWluUXVlcnkg
PSAiSU5TRVJUIElOVE8gT2JzZXJ2ZWREb21haW5zIChyZWdpc3RyYWJsZURvbWFpbiwgbGFzdFNl
ZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwiCiAgICAgIm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25U
aW1lLCBncmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVj
b3Jkc1JlbW92ZWQsIHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlv
biwiCiAgICAgInRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkp
IFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPywgPywgPykiX3M7CiBjb25zdGV4cHIgYXV0
byBpbnNlcnRUb3BMZXZlbERvbWFpblF1ZXJ5ID0gIklOU0VSVCBJTlRPIFRvcExldmVsRG9tYWlu
cyBWQUxVRVMgKD8pIl9zOwotY29uc3RleHByIGF1dG8gZG9tYWluSURGcm9tU3RyaW5nUXVlcnkg
PSAiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxl
RG9tYWluID0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIHN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1l
RG9tYWluc1F1ZXJ5ID0gIklOU0VSVCBJTlRPIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9t
YWlucyAoZG9tYWluSUQsIHRvcExldmVsRG9tYWluSUQpICIKLSAgICAiU0VMRUNUID8sIGRvbWFp
bklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID09ID8iX3M7
Ci1jb25zdGV4cHIgYXV0byBzdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNFeGlzdHNR
dWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIFN0b3JhZ2VBY2Nlc3NVbmRlclRv
cEZyYW1lRG9tYWlucyBXSEVSRSBkb21haW5JRCA9ID8gIgotIkFORCB0b3BMZXZlbERvbWFpbklE
ID0gKFNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJs
ZURvbWFpbiA9ID8pKSJfczsKLWNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
VG9RdWVyeSA9ICJJTlNFUlQgSU5UTyBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIChzb3VyY2VE
b21haW5JRCwgdG9Eb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21h
aW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID09ID8iX3M7Ci1jb25zdGV4cHIgYXV0byB0b3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNU
IDEgRlJPTSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIFdIRVJFIHNvdXJjZURvbWFpbklEID0g
PyAiCi0gICAgIkFORCB0b0RvbWFpbklEID0gKFNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVk
RG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8pKSJfczsKLWNvbnN0ZXhwciBhdXRv
IHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5ID0gIklOU0VSVCBJTlRPIFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzRnJvbSAodGFyZ2V0RG9tYWluSUQsIGZyb21Eb21haW5JRCkgIgotICAg
ICJTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFi
bGVEb21haW4gPSA/Il9zOwotY29uc3RleHByIGF1dG8gdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNG
cm9tRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c0Zyb20gV0hFUkUgdGFyZ2V0RG9tYWluSUQgPSA/ICIKLSAgICAiQU5EIGZy
b21Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUg
cmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7Ci1jb25zdGV4cHIgYXV0byB0b3BGcmFtZUxpbmtE
ZWNvcmF0aW9uc0Zyb21RdWVyeSA9ICJJTlNFUlQgSU5UTyBUb3BGcmFtZUxpbmtEZWNvcmF0aW9u
c0Zyb20gKGZyb21Eb21haW5JRCwgdG9Eb21haW5JRCkgIgotICAgICJTRUxFQ1QgPywgZG9tYWlu
SUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwot
Y29uc3RleHByIGF1dG8gdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzUXVlcnkgPSAi
U0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20g
V0hFUkUgZnJvbURvbWFpbklEID0gPyAiCi0gICAgIkFORCB0b0RvbWFpbklEID0gKFNFTEVDVCBk
b21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8p
KSJfczsKLWNvbnN0ZXhwciBhdXRvIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSA9
ICJJTlNFUlQgSU5UTyBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIChzdWJGcmFtZURvbWFp
bklELCB0b3BGcmFtZURvbWFpbklEKSAiCi0gICAgIlNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9i
c2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7Citjb25zdGV4cHIg
YXV0byBzdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSA9ICJJTlNFUlQgT1Ig
SUdOT1JFIElOVE8gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIChkb21haW5JRCwg
dG9wTGV2ZWxEb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5z
IFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9zOworY29uc3RleHByIGF1dG8gdG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgaW50byBUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c1RvIChzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCkgU0VMRUNUID8s
IGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIHdoZXJlIHJlZ2lzdHJhYmxlRG9tYWluIGlu
ICggIl9zOworY29uc3RleHByIGF1dG8gc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5
ID0gIklOU0VSVCBPUiBJR05PUkUgaW50byBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIChz
dWJGcmFtZURvbWFpbklELCB0b3BGcmFtZURvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJP
TSBPYnNlcnZlZERvbWFpbnMgd2hlcmUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25z
dGV4cHIgYXV0byB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSA9ICJJTlNFUlQgT1Ig
SUdOT1JFIElOVE8gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tICh0YXJnZXREb21haW5JRCwg
ZnJvbURvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0byB0b3BGcmFtZUxp
bmtEZWNvcmF0aW9uc0Zyb21RdWVyeSA9ICJJTlNFUlQgT1IgSUdOT1JFIElOVE8gVG9wRnJhbWVM
aW5rRGVjb3JhdGlvbnNGcm9tIChmcm9tRG9tYWluSUQsIHRvRG9tYWluSUQpIFNFTEVDVCA/LCBk
b21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBpbiAo
ICJfczsKK2NvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVy
eSA9ICJJTlNFUlQgT1IgSUdOT1JFIElOVE8gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlu
cyAoc3VicmVzb3VyY2VEb21haW5JRCwgdG9wRnJhbWVEb21haW5JRCkgU0VMRUNUID8sIGRvbWFp
bklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9z
OworY29uc3RleHByIGF1dG8gc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5ID0gIklO
U0VSVCBPUiBJR05PUkUgSU5UTyBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIChzdWJyZXNv
dXJjZURvbWFpbklELCB0b0RvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZl
ZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0
byBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSA9ICJJTlNFUlQgT1IgSUdOT1JF
IElOVE8gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIChzdWJyZXNvdXJjZURvbWFpbklE
LCBmcm9tRG9tYWluSUQpIFNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBX
SEVSRSByZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKKworLy8gRVhJU1RTIFF1ZXJpZXMKIGNv
bnN0ZXhwciBhdXRvIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0c1F1ZXJ5ID0gIlNF
TEVDVCBFWElTVFMgKFNFTEVDVCAxIEZST00gU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucyBX
SEVSRSBzdWJGcmFtZURvbWFpbklEID0gPyAiCiAgICAgIkFORCB0b3BGcmFtZURvbWFpbklEID0g
KFNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURv
bWFpbiA9ID8pKSJfczsKLWNvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbnNRdWVyeSA9ICJJTlNFUlQgSU5UTyBTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
IChzdWJyZXNvdXJjZURvbWFpbklELCB0b3BGcmFtZURvbWFpbklEKSAiCi0gICAgIlNFTEVDVCA/
LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9
ID8iX3M7CiBjb25zdGV4cHIgYXV0byBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5FeGlz
dHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIFN1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbnMgIgogICAgICJXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gPyBBTkQg
dG9wRnJhbWVEb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMg
V0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7Ci1jb25zdGV4cHIgYXV0byBzdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnkgPSAiSU5TRVJUIElOVE8gU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUbyAoc3VicmVzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCkgIgotICAgICJT
RUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVE
b21haW4gPT0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
VG9FeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG8gV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8gIgogICAgICJB
TkQgdG9Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7Ci1jb25zdGV4cHIgYXV0byBzdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSA9ICJJTlNFUlQgSU5UTyBTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c0Zyb20gKHN1YnJlc291cmNlRG9tYWluSUQsIGZyb21Eb21haW5JRCkgIgotICAg
ICJTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFi
bGVEb21haW4gPT0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzRnJvbUV4aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElTVFMgKFNFTEVDVCAxIEZST00gU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgPSA/ICIK
LSAgICAiQU5EIGZyb21Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERv
bWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7Citjb25zdGV4cHIgYXV0byB0
b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChT
RUxFQ1QgMSBGUk9NIFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSBXSEVSRSBmcm9tRG9tYWlu
SUQgPSA/ICIKKyJBTkQgdG9Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZl
ZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7CisKKy8vIFVQREFURSBR
dWVyaWVzCiBjb25zdGV4cHIgYXV0byBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uUXVlcnkgPSAi
VVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaGFkVXNlckludGVyYWN0aW9uID0gPywgbW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSA/ICIKICAgICAiV0hFUkUgcmVnaXN0cmFibGVEb21h
aW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRlTGFzdFNlZW5RdWVyeSA9ICJVUERBVEUg
T2JzZXJ2ZWREb21haW5zIFNFVCBsYXN0U2VlbiA9ID8gV0hFUkUgcmVnaXN0cmFibGVEb21haW4g
PSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRlRGF0YVJlY29yZHNSZW1vdmVkUXVlcnkgPSAi
VVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgZGF0YVJlY29yZHNSZW1vdmVkID0gPyBXSEVSRSBy
ZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7CiBjb25zdGV4cHIgYXV0byB1cGRhdGVQcmV2YWxlbnRS
ZXNvdXJjZVF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGlzUHJldmFsZW50ID0g
PyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBpc1ByZXZh
bGVudFJlc291cmNlUXVlcnkgPSAiU0VMRUNUIGlzUHJldmFsZW50IEZST00gT2JzZXJ2ZWREb21h
aW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIHVwZGF0
ZVZlcnlQcmV2YWxlbnRSZXNvdXJjZVF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VU
IGlzVmVyeVByZXZhbGVudCA9ID8gV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwotY29u
c3RleHByIGF1dG8gaXNWZXJ5UHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJTRUxFQ1QgaXNWZXJ5
UHJldmFsZW50IEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0g
PyJfczsKIGNvbnN0ZXhwciBhdXRvIGNsZWFyUHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJVUERB
VEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1ByZXZhbGVudCA9IDAsIGlzVmVyeVByZXZhbGVudCA9
IDAgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwotY29uc3RleHByIGF1dG8gaGFkVXNl
ckludGVyYWN0aW9uUXVlcnkgPSAiU0VMRUNUIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWUgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFi
bGVEb21haW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRlR3JhbmRmYXRoZXJlZFF1ZXJ5
ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGdyYW5kZmF0aGVyZWQgPSA/IFdIRVJFIHJl
Z2lzdHJhYmxlRG9tYWluID0gPyJfczsKKworCisvLyBTRUxFQ1QgUXVlcmllcworY29uc3RleHBy
IGF1dG8gZG9tYWluSURGcm9tU3RyaW5nUXVlcnkgPSAiU0VMRUNUIGRvbWFpbklEIEZST00gT2Jz
ZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKK2NvbnN0ZXhwciBh
dXRvIGlzUHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJTRUxFQ1QgaXNQcmV2YWxlbnQgRlJPTSBP
YnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOworY29uc3RleHBy
IGF1dG8gaXNWZXJ5UHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJTRUxFQ1QgaXNWZXJ5UHJldmFs
ZW50IEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsK
K2NvbnN0ZXhwciBhdXRvIGhhZFVzZXJJbnRlcmFjdGlvblF1ZXJ5ID0gIlNFTEVDVCBoYWRVc2Vy
SW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lIEZST00gT2JzZXJ2ZWRE
b21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIGlz
R3JhbmRmYXRoZXJlZFF1ZXJ5ID0gIlNFTEVDVCBncmFuZGZhdGhlcmVkIEZST00gT2JzZXJ2ZWRE
b21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIGZp
bmRFeHBpcmVkVXNlckludGVyYWN0aW9uUXVlcnkgPSAiU0VMRUNUIGRvbWFpbklEIEZST00gT2Jz
ZXJ2ZWREb21haW5zIFdIRVJFIGhhZFVzZXJJbnRlcmFjdGlvbiA9IDEgQU5EIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb25UaW1lIDwgPyJfczsKIAorLy8gQ1JFQVRFIFRBQkxFIFF1ZXJpZXMKIGNv
bnN0ZXhwciBhdXRvIGNyZWF0ZU9ic2VydmVkRG9tYWluID0gIkNSRUFURSBUQUJMRSBPYnNlcnZl
ZERvbWFpbnMgKCIKICAgICAiZG9tYWluSUQgSU5URUdFUiBQUklNQVJZIEtFWSwgcmVnaXN0cmFi
bGVEb21haW4gVEVYVCBOT1QgTlVMTCBVTklRVUUgT04gQ09ORkxJQ1QgRkFJTCwgbGFzdFNlZW4g
UkVBTCBOT1QgTlVMTCwgIgogICAgICJoYWRVc2VySW50ZXJhY3Rpb24gSU5URUdFUiBOT1QgTlVM
TCwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgUkVBTCBOT1QgTlVMTCwgZ3JhbmRmYXRo
ZXJlZCBJTlRFR0VSIE5PVCBOVUxMLCAiCkBAIC0xNzYsNiArMTc1LDE3IEBAIGNvbnN0ZXhwciBh
dXRvIGNyZWF0ZVN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSA9ICJDUkVBVEUgVEFCTEUg
U3VicmVzb3VyY2VVCiAgICAgInN1YnJlc291cmNlRG9tYWluSUQgSU5URUdFUiBOT1QgTlVMTCwg
ZnJvbURvbWFpbklEIElOVEVHRVIgTk9UIE5VTEwsICIKICAgICAiRk9SRUlHTiBLRVkoc3VicmVz
b3VyY2VEb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERF
TEVURSBDQVNDQURFLCAiCiAgICAgIkZPUkVJR04gS0VZKGZyb21Eb21haW5JRCkgUkVGRVJFTkNF
UyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFKTsiX3M7CisKKy8v
IENSRUFURSBVTklRVUUgSU5ERVggUXVlcmllcworY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVl
SW5kZXhTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgPSAiQ1JFQVRFIFVOSVFVRSBJ
TkRFWCBJRiBOT1QgRVhJU1RTIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc19kb21h
aW5JRF90b3BMZXZlbERvbWFpbklEIG9uIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlu
cyAoIGRvbWFpbklELCB0b3BMZXZlbERvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1dG8gY3Jl
YXRlVW5pcXVlSW5kZXhUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvID0gIkNSRUFURSBVTklRVUUg
SU5ERVggSUYgTk9UIEVYSVNUUyBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvX3NvdXJjZURvbWFp
bklEX3RvRG9tYWluSUQgb24gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbyAoIHNvdXJjZURvbWFp
bklELCB0b0RvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1Qg
RVhJU1RTIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbV90YXJnZXREb21haW5JRF9mcm9tRG9t
YWluSUQgb24gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tICggdGFyZ2V0RG9tYWluSUQsIGZy
b21Eb21haW5JRCApOyJfczsKK2NvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4VG9wRnJh
bWVMaW5rRGVjb3JhdGlvbnNGcm9tID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNU
UyBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21fZnJvbURvbWFpbklEX3RvRG9tYWluSUQgb24g
VG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tICggZnJvbURvbWFpbklELCB0b0RvbWFpbklEICk7
Il9zOworY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhTdWJmcmFtZVVuZGVyVG9wRnJh
bWVEb21haW5zID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW5zX3N1YkZyYW1lRG9tYWluSURfdG9wRnJhbWVEb21haW5JRCBvbiBT
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zICggc3ViRnJhbWVEb21haW5JRCwgdG9wRnJhbWVE
b21haW5JRCApOyJfczsKK2NvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4U3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lRG9tYWlucyA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElT
VFMgU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc19zdWJyZXNvdXJjZURvbWFpbklEX3Rv
cEZyYW1lRG9tYWluSUQgb24gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyAoIHN1YnJl
c291cmNlRG9tYWluSUQsIHRvcEZyYW1lRG9tYWluSUQgKTsiX3M7Citjb25zdGV4cHIgYXV0byBj
cmVhdGVVbmlxdWVJbmRleFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8gPSAiQ1JFQVRFIFVO
SVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9fc3Vi
cmVzb3VyY2VEb21haW5JRF90b0RvbWFpbklEIG9uIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
VG8gKCBzdWJyZXNvdXJjZURvbWFpbklELCB0b0RvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1
dG8gY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gPSAiQ1JF
QVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbV9zdWJyZXNvdXJjZURvbWFpbklEX2Zyb21Eb21haW5JRCBvbiBTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW5zICggc3VicmVzb3VyY2VEb21haW5JRCwgZnJvbURvbWFpbklEICk7Il9z
OworCiAgICAgCiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
JiBzdG9yZSwgV29ya1F1ZXVlJiB3b3JrUXVldWUsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3Qgc2hv
dWxkSW5jbHVkZUxvY2FsaG9zdCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5UGF0aCwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlKHN0b3JlLCB3b3JrUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhvc3QpCkBAIC0xODQsMjIg
KzE5NCwxMCBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogICAgICwgbV9pbnNlcnRPYnNlcnZl
ZERvbWFpblN0YXRlbWVudChtX2RhdGFiYXNlLCBpbnNlcnRPYnNlcnZlZERvbWFpblF1ZXJ5KQog
ICAgICwgbV9pbnNlcnRUb3BMZXZlbERvbWFpblN0YXRlbWVudChtX2RhdGFiYXNlLCBpbnNlcnRU
b3BMZXZlbERvbWFpblF1ZXJ5KQogICAgICwgbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQo
bV9kYXRhYmFzZSwgZG9tYWluSURGcm9tU3RyaW5nUXVlcnkpCi0gICAgLCBtX3N0b3JhZ2VBY2Nl
c3NVbmRlclRvcEZyYW1lRG9tYWluc1N0YXRlbWVudChtX2RhdGFiYXNlLCBzdG9yYWdlQWNjZXNz
VW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSkKLSAgICAsIG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9w
RnJhbWVEb21haW5zRXhpc3RzU3RhdGVtZW50KG1fZGF0YWJhc2UsIHN0b3JhZ2VBY2Nlc3NVbmRl
clRvcEZyYW1lRG9tYWluc0V4aXN0c1F1ZXJ5KQotICAgICwgbV90b3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c1RvKG1fZGF0YWJhc2UsIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSkKLSAgICAs
IG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb0V4aXN0cyhtX2RhdGFiYXNlLCB0b3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvRXhpc3RzUXVlcnkpCi0gICAgLCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RzRnJvbShtX2RhdGFiYXNlLCB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSkKLSAg
ICAsIG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3RzKG1fZGF0YWJhc2UsIHRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0c1F1ZXJ5KQotICAgICwgbV90b3BGcmFtZUxpbmtE
ZWNvcmF0aW9uc0Zyb20obV9kYXRhYmFzZSwgdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tUXVl
cnkpCiAgICAgLCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbUV4aXN0cyhtX2RhdGFiYXNl
LCB0b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHNRdWVyeSkKLSAgICAsIG1fc3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWlucyhtX2RhdGFiYXNlLCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVE
b21haW5zUXVlcnkpCiAgICAgLCBtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0cyht
X2RhdGFiYXNlLCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5FeGlzdHNRdWVyeSkKLSAgICAs
IG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyhtX2RhdGFiYXNlLCBzdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVEb21haW5zUXVlcnkpCiAgICAgLCBtX3N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZURvbWFpbkV4aXN0cyhtX2RhdGFiYXNlLCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21h
aW5FeGlzdHNRdWVyeSkKLSAgICAsIG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyhtX2Rh
dGFiYXNlLCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnkpCiAgICAgLCBtX3N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMobV9kYXRhYmFzZSwgc3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUb0V4aXN0c1F1ZXJ5KQotICAgICwgbV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0c0Zyb20obV9kYXRhYmFzZSwgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnkp
Ci0gICAgLCBtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0cyhtX2RhdGFiYXNl
LCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHNRdWVyeSkKICAgICAsIG1fbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudChtX2RhdGFiYXNlLCBtb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uUXVlcnkpCiAgICAgLCBtX3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50KG1fZGF0
YWJhc2UsIHVwZGF0ZUxhc3RTZWVuUXVlcnkpCiAgICAgLCBtX3VwZGF0ZURhdGFSZWNvcmRzUmVt
b3ZlZFN0YXRlbWVudChtX2RhdGFiYXNlLCB1cGRhdGVEYXRhUmVjb3Jkc1JlbW92ZWRRdWVyeSkK
QEAgLTI2Miw2ICsyNjAsMjIgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aXNFbXB0eSgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcygpCit7
CisgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4U3Rv
cmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5l
eGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8p
CisgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVj
dXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSkK
KyAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhT
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVj
dXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFp
bnMpCisgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUlu
ZGV4U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbykKKyAgICAgICAgfHwgIW1fZGF0YWJhc2Uu
ZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVE
b21haW5zKSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcyBmYWls
ZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCiBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpjcmVhdGVTY2hlbWEoKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAt
MzE1LDYgKzMyOSw5IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNyZWF0ZVNjaGVtYSgpCiAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNyZWF0ZSBTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gdGFibGUgaW4gZGF0YWJhc2UgKCVpKSAtICVzIiwg
bV9kYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CisgICAgCisgICAgaWYgKCFjcmVhdGVVbmlxdWVJbmRp
Y2VzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
MzI3LDIwICszNDQsOSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpwcmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAgIHx8IG1faW5zZXJ0T2JzZXJ2ZWREb21haW5T
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2luc2VydFRvcExl
dmVsRG9tYWluU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9k
b21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAg
ICB8fCBtX3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1N0YXRlbWVudC5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVE
b21haW5zRXhpc3RzU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwg
bV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAg
ICAgfHwgbV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0sKLSAgICAgICAgfHwgbV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20ucHJlcGFyZSgp
ICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4
aXN0cy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1fc3ViZnJhbWVVbmRlclRv
cEZyYW1lRG9tYWlucy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fc3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAg
ICAgfHwgbV9zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zLnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0sKICAgICAgICAgfHwgbV9zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5FeGlzdHMu
cHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX3N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG8ucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICB8
fCBtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
Ci0gICAgICAgIHx8IG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3RzLnByZXBh
cmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV91cGRhdGVMYXN0U2VlblN0YXRlbWVudC5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fdXBkYXRlRGF0YVJlY29yZHNSZW1v
dmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9tb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKQEAgLTM1
Myw3ICszNTksNiBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpw
cmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAgIHx8IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRl
bWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1faXNHcmFuZGZhdGhlcmVk
U3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9maW5kRXhwaXJl
ZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAg
IHx8IG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgbV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHMucHJlcGFyZSgp
ICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMg
ZmFpbGVkIHRvIHByZXBhcmUsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC00NjUsNiArNDcwLDM3IEBAIE9wdGlvbmFsPHVuc2lnbmVkPiBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQoY29uc3QgUmVnaXN0cmFiCiAgICAgcmV0dXJuIGRv
bWFpbklEOwogfQogCitTdHJpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmVuc3VyZUFuZG1ha2VEb21haW5MaXN0KGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
JiBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKQoreworICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKKyAgICAKKyAgICBmb3IgKGF1dG8mIHRvcEZyYW1lUmVzb3VyY2UgOiBzdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW5zKSB7CisgICAgICAgIAorICAgICAgICAvLyBJbnNlcnQgcXVlcnkg
d2lsbCBmYWlsIGlmIHRvcCBmcmFtZSBkb21haW4gaXMgbm90IGFscmVhZHkgaW4gdGhlIGRhdGFi
YXNlCisgICAgICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWlu
KHRvcEZyYW1lUmVzb3VyY2UpOworICAgICAgICAKKyAgICAgICAgaWYgKCFidWlsZGVyLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyInKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQodG9wRnJhbWVSZXNv
dXJjZS5zdHJpbmcoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCciJyk7CisgICAgfQorCisg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwordm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChjb25zdCBT
dHJpbmcmIHN0YXRlbWVudCwgY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mIHN1YmZy
YW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHVuc2lnbmVkIGRvbWFpbklEKQoreworICAgIFNRTGl0
ZVN0YXRlbWVudCBpbnNlcnRSZWxhdGlvbnNoaXBTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0
cmluZyhzdGF0ZW1lbnQsIGVuc3VyZUFuZG1ha2VEb21haW5MaXN0KHN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbnMpLCAiICk7IikpOworICAgIAorICAgIGlmIChpbnNlcnRSZWxhdGlvbnNoaXBT
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBpbnNlcnRSZWxhdGlv
bnNoaXBTdGF0ZW1lbnQuYmluZEludCgxLCBkb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAg
IHx8IGluc2VydFJlbGF0aW9uc2hpcFN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsK
KyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9u
c2hpcExpc3QgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9Cit9CisKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgbG9hZFN0
YXRpc3RpY3MpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC00NzIsNDEg
KzUwOCwxNCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNl
cnREb21haW5SZWxhdGlvbnNoaXBzKGNvbnN0IFJlc291cgogICAgIAogICAgIGlmICghcmVnaXN0
cmFibGVEb21haW5JRCkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGZvciAoYXV0byYgdG9w
RnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURv
bWFpbnMpIHsKLSAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdG9yYWdlQWNjZXNz
VW5kZXJUb3BGcmFtZURvbWFpbnNFeGlzdHNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9tYWluSUQu
dmFsdWUoKSwgdG9wRnJhbWVEb21haW4pKQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwKG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3RhdGVtZW50LCByZWdp
c3RyYWJsZURvbWFpbklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKTsKLSAgICB9CiAKLSAgICBm
b3IgKGF1dG8mIHRvRG9tYWluIDogbG9hZFN0YXRpc3RpY3MudG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNUbykgewotICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3RvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzVG9FeGlzdHMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9Eb21haW4p
KQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b0RvbWFpbik7Ci0gICAg
fQotICAgIAotICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkgewotICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0
cyhtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0cywgcmVnaXN0cmFibGVEb21haW5J
RC52YWx1ZSgpLCBmcm9tRG9tYWluKSkKLSAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9u
c2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSwgcmVnaXN0cmFibGVEb21haW5JRC52
YWx1ZSgpLCBmcm9tRG9tYWluKTsKLSAgICB9Ci0gICAgCi0gICAgZm9yIChhdXRvJiB0b3BGcmFt
ZURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMpIHsK
LSAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVE
b21haW5FeGlzdHMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4p
KQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3ViZnJhbWVVbmRlclRv
cEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFp
bik7Ci0gICAgfQotICAgIAotICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4gOiBsb2FkU3Rh
dGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zKSB7Ci0gICAgICAgIGlmICgh
cmVsYXRpb25zaGlwRXhpc3RzKG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluRXhpc3Rz
LCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKSkKLSAgICAgICAg
ICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwotICAg
IH0KLSAgICAKLSAgICBmb3IgKGF1dG8mIHRvRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNUbykgewotICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0
cyhtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMsIHJlZ2lzdHJhYmxlRG9tYWlu
SUQudmFsdWUoKSwgdG9Eb21haW4pKQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5JRC52
YWx1ZSgpLCB0b0RvbWFpbik7Ci0gICAgfQotICAgIAotICAgIGZvciAoYXV0byYgZnJvbURvbWFp
biA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSkgewotICAg
ICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbUV4aXN0cywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCBmcm9tRG9tYWluKSkKLSAg
ICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzRnJvbSwgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCBmcm9tRG9tYWluKTsKLSAg
ICB9CisgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChzdG9yYWdlQWNjZXNzVW5kZXJU
b3BGcmFtZURvbWFpbnNRdWVyeSwgbG9hZFN0YXRpc3RpY3Muc3RvcmFnZUFjY2Vzc1VuZGVyVG9w
RnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCkpOworICAgIGluc2VydERv
bWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5LCBsb2Fk
U3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklE
LnZhbHVlKCkpOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tUXVlcnksIGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RzRnJvbSwgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpKTsKKyAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXBMaXN0KHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSwgbG9hZFN0
YXRpc3RpY3Muc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5J
RC52YWx1ZSgpKTsKKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1YnJlc291cmNl
VW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSwgbG9hZFN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpKTsKKyAgICBpbnNl
cnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9RdWVy
eSwgbG9hZFN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVnaXN0cmFi
bGVEb21haW5JRC52YWx1ZSgpKTsKKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5LCBsb2FkU3RhdGlzdGljcy5zdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSk7CiB9
CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJv
bU1lbW9yeVN0b3JlKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZSYgbWVt
b3J5U3RvcmUpCkBAIC05MTcsNyArOTI2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3UKICAg
ICAgICAgYXV0byBzdWJGcmFtZVN0YXR1cyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJl
Z2lzdHJhYmxlRG9tYWluKHN1YkZyYW1lRG9tYWluKTsKICAgICAgICAgQVNTRVJUKHN1YkZyYW1l
U3RhdHVzLmZpcnN0ID09IEFkZGVkUmVjb3JkOjpObyk7CiAgICAgICAgIEFTU0VSVChoYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3ViRnJhbWVEb21haW4sIE9wZXJhdGluZ0RhdGVzV2luZG93OjpMb25n
KSk7Ci0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N0b3JhZ2VBY2Nlc3NVbmRl
clRvcEZyYW1lRG9tYWluc1N0YXRlbWVudCwgc3ViRnJhbWVTdGF0dXMuc2Vjb25kLCB0b3BGcmFt
ZURvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3RvcmFnZUFj
Y2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
KHsgdG9wRnJhbWVEb21haW4gfSksIHN1YkZyYW1lU3RhdHVzLnNlY29uZCk7CiAgICAgfQogCiAg
ICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdU
Rk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xMDAyLDQwICsxMDExLDIzIEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihj
b25zdCBSZWdpc3RyYWJsZURvCiAgICAgaWYgKCFpc01haW5GcmFtZSAmJiAhKGFyZVRhcmdldEFu
ZFRvcEZyYW1lRG9tYWluc1NhbWVTaXRlIHx8IGFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1l
U2l0ZSkpIHsKICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICB1cGRhdGVM
YXN0U2Vlbih0YXJnZXREb21haW4sIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFdhbGxUaW1lOjpub3coKSkpOwotICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7Ci0gICAgICAgIGlmICgh
cmVsYXRpb25zaGlwRXhpc3RzKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzLCB0
YXJnZXRSZXN1bHQuc2Vjb25kLCB0b3BGcmFtZURvbWFpbikpIHsKLSAgICAgICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHRhcmdl
dFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWluKTsKLSAgICAgICAgICAgIHN0YXRpc3RpY3NX
ZXJlVXBkYXRlZCA9IHRydWU7Ci0gICAgICAgIH0KKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwTGlzdChzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zUXVlcnksIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+KHsgdG9wRnJhbWVEb21haW4gfSksIHRhcmdldFJlc3VsdC5zZWNvbmQp
OworICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgIH0KIAogICAgIGlm
IChpc1JlZGlyZWN0ICYmICFhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpIHsKICAg
ICAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9t
YWluUmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
c291cmNlRG9tYWluKTsKICAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVz
b3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKLQotICAg
ICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikp
IHsKLSAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERv
bWFpbik7Ci0gICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJj
ZURvbWFpbikpIHsKLSAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURv
bWFpbik7Ci0gICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7
IHRhcmdldERvbWFpbiB9KSwgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kKTsKKyAgICAg
ICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNGcm9tUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgc291cmNlRG9tYWluIH0p
LCB0YXJnZXRSZXN1bHQuc2Vjb25kKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1
dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JS
ZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOwogICAgICAgICAgICAgYXV0byB0YXJnZXRS
ZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJn
ZXREb21haW4pOwotICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNv
bmQsIHRhcmdldERvbWFpbikpIHsKLSAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlv
bnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJl
c3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7Ci0gICAgICAgICAgICAgICAgc3RhdGlzdGljc1dl
cmVVcGRhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFyZWxh
dGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRh
cmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKLSAgICAgICAgICAgICAgICBpbnNl
cnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRh
cmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7Ci0gICAgICAgICAgICAgICAgc3RhdGlz
dGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5
LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7IHRhcmdldERvbWFpbiB9KSwgcmVkaXJlY3Rp
bmdEb21haW5SZXN1bHQuc2Vjb25kKTsKKyAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9u
c2hpcExpc3Qoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnksIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+KHsgc291cmNlRG9tYWluIH0pLCB0YXJnZXRSZXN1bHQuc2Vjb25kKTsK
ICAgICAgICAgfQorICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgIH0K
IAogICAgIGlmIChzdGF0aXN0aWNzV2VyZVVwZGF0ZWQpCkBAIC0xMDQ4LDExICsxMDQwLDggQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nQ3Jvc3NTaXRlTG9h
ZFdpdGhMaW5rRGVjb3JhdGlvbihjb24KICAgICBBU1NFUlQoZnJvbURvbWFpbiAhPSB0b0RvbWFp
bik7CiAKICAgICBhdXRvIGZyb21Eb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbihmcm9tRG9tYWluKTsKLQotICAgIGlmICghcmVsYXRpb25z
aGlwRXhpc3RzKG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzLCBmcm9tRG9tYWlu
UmVzdWx0LnNlY29uZCwgdG9Eb21haW4pKSB7Ci0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9u
c2hpcChtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSwgZnJvbURvbWFpblJlc3VsdC5zZWNv
bmQsIHRvRG9tYWluKTsKLSAgICAgICAgc2NoZWR1bGVTdGF0aXN0aWNzUHJvY2Vzc2luZ1JlcXVl
c3RJZk5lY2Vzc2FyeSgpOwotICAgIH0KKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0
KHRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbVF1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9t
YWluPih7IHRvRG9tYWluIH0pLCBmcm9tRG9tYWluUmVzdWx0LnNlY29uZCk7CisgICAgc2NoZWR1
bGVTdGF0aXN0aWNzUHJvY2Vzc2luZ1JlcXVlc3RJZk5lY2Vzc2FyeSgpOwogfQogCiB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRVc2VySW50ZXJhY3Rpb24oY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFdh
bGxUaW1lIG1vc3RSZWNlbnRJbnRlcmFjdGlvbikKQEAgLTEyOTksOSArMTI4OCw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbihjb25zdCBTCiAgICAgYXV0byByZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzdWJGcmFtZURvbWFpbik7CiAKICAgICAvLyBGb3Ig
Y29uc2lzdGVuY3ksIG1ha2Ugc3VyZSB3ZSBhbHNvIGhhdmUgYSBzdGF0aXN0aWNzIGVudHJ5IGZv
ciB0aGUgdG9wIGZyYW1lIGRvbWFpbi4KLSAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JS
ZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7Ci0KLSAgICBpbnNlcnREb21haW5SZWxh
dGlvbnNoaXAobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCByZXN1bHQuc2Vjb25kLCB0
b3BGcmFtZURvbWFpbik7CisgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChzdWJmcmFt
ZVVuZGVyVG9wRnJhbWVEb21haW5zUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsg
dG9wRnJhbWVEb21haW4gfSksIHJlc3VsdC5zZWNvbmQpOwogfQogCiB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21h
aW4oY29uc3QgU3ViUmVzb3VyY2VEb21haW4mIHN1YnJlc291cmNlRG9tYWluLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4pCkBAIC0xMzExLDkgKzEyOTgsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVEb21haW4oY29ucwogICAgIGF1dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0
aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc3VicmVzb3VyY2VEb21haW4pOwogCiAgICAgLy8gRm9y
IGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2UgYWxzbyBoYXZlIGEgc3RhdGlzdGljcyBlbnRyeSBm
b3IgdGhlIHRvcCBmcmFtZSBkb21haW4uCi0gICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9y
UmVnaXN0cmFibGVEb21haW4odG9wRnJhbWVEb21haW4pOwotCi0gICAgaW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucywgcmVzdWx0LnNlY29u
ZCwgdG9wRnJhbWVEb21haW4pOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9t
YWluPih7IHRvcEZyYW1lRG9tYWluIH0pLCByZXN1bHQuc2Vjb25kKTsKIH0KIAogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3Qg
UmVkaXJlY3REb21haW4mIHJlZGlyZWN0RG9tYWluKQpAQCAtMTMyMyw5ICsxMzA4LDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKGNvbnN0IFMKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3Rh
dGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHN1YnJlc291cmNlRG9tYWluKTsKIAogICAgIC8v
IEZvciBjb25zaXN0ZW5jeSwgbWFrZSBzdXJlIHdlIGFsc28gaGF2ZSBhIHN0YXRpc3RpY3MgZW50
cnkgZm9yIHRoZSByZWRpcmVjdCBkb21haW4uCi0gICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4ocmVkaXJlY3REb21haW4pOwotCi0gICAgaW5zZXJ0RG9tYWlu
UmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVzdWx0LnNlY29u
ZCwgcmVkaXJlY3REb21haW4pOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWlu
Pih7IHJlZGlyZWN0RG9tYWluIH0pLCByZXN1bHQuc2Vjb25kKTsKIH0KIAogdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dEZyb20oY29uc3QgU3ViUmVzb3VyY2VEb21haW4mIHN1YnJlc291cmNlRG9tYWluLCBjb25zdCBS
ZWRpcmVjdERvbWFpbiYgcmVkaXJlY3REb21haW4pCkBAIC0xMzM1LDkgKzEzMTgsNyBAQCB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0RnJvbShjb25zdAogICAgIGF1dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0
aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc3VicmVzb3VyY2VEb21haW4pOwogCiAgICAgLy8g
Rm9yIGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2UgYWxzbyBoYXZlIGEgc3RhdGlzdGljcyBlbnRy
eSBmb3IgdGhlIHJlZGlyZWN0IGRvbWFpbi4KLSAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVjdERvbWFpbik7Ci0KLSAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlc3VsdC5zZWNv
bmQsIHJlZGlyZWN0RG9tYWluKTsKKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9t
YWluPih7IHJlZGlyZWN0RG9tYWluIH0pLCByZXN1bHQuc2Vjb25kKTsKIH0KIAogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVkaXJlY3RE
b21haW4mIHJlZGlyZWN0RG9tYWluKQpAQCAtMTM0Nyw5ICsxMzI4LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRv
KGNvbnN0IFRvcEYKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0Zv
clJlZ2lzdHJhYmxlRG9tYWluKHRvcEZyYW1lRG9tYWluKTsKIAogICAgIC8vIEZvciBjb25zaXN0
ZW5jeSwgbWFrZSBzdXJlIHdlIGFsc28gaGF2ZSBhIHN0YXRpc3RpY3MgZW50cnkgZm9yIHRoZSBy
ZWRpcmVjdCBkb21haW4uCi0gICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFi
bGVEb21haW4ocmVkaXJlY3REb21haW4pOwotCi0gICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbywgcmVzdWx0LnNlY29uZCwgcmVkaXJlY3REb21h
aW4pOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNUb1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7IHJlZGlyZWN0RG9tYWlu
IH0pLCByZXN1bHQuc2Vjb25kKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oY29uc3QgVG9wRnJhbWVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWRpcmVjdERvbWFpbiYgcmVkaXJlY3REb21h
aW4pCkBAIC0xMzU5LDkgKzEzMzgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBUbwogICAgIGF1
dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
dG9wRnJhbWVEb21haW4pOwogCiAgICAgLy8gRm9yIGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2Ug
YWxzbyBoYXZlIGEgc3RhdGlzdGljcyBlbnRyeSBmb3IgdGhlIHJlZGlyZWN0IGRvbWFpbi4KLSAg
ICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVjdERv
bWFpbik7Ci0KLSAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20sIHJlc3VsdC5zZWNvbmQsIHJlZGlyZWN0RG9tYWluKTsKKyAgICBpbnNlcnRE
b21haW5SZWxhdGlvbnNoaXBMaXN0KHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5LCBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7IHJlZGlyZWN0RG9tYWluIH0pLCByZXN1bHQuc2Vj
b25kKTsKIH0KIAogc3RkOjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpBZGRlZFJlY29yZCwgdW5zaWduZWQ+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQpAQCAtMTc1OCw2ICsxNzM1LDQ1IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZURhdGFSZWNvcmRzUmVtb3Zl
ZChjb25zdCBSZWdpc3RyCiAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1
bHQgPT0gU1FMSVRFX09LKTsKIH0KIAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y291bnRTdWJTdGF0aXN0aWNzVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViZnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbikK
K3sKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc3ViRnJhbWVVbmRlclRvcEZyYW1lQ291bnQobV9kYXRh
YmFzZSwgY291bnRTdWJmcmFtZVVuZGVyVG9wRnJhbWVRdWVyeSk7CisgICAgU1FMaXRlU3RhdGVt
ZW50IHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZUNvdW50KG1fZGF0YWJhc2UsIGNvdW50U3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lUXVlcnkpOworICAgIFNRTGl0ZVN0YXRlbWVudCBzdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvKG1fZGF0YWJhc2UsIGNvdW50U3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNUb1F1ZXJ5KTsKKyAgICAKKyAgICBpZiAoc3ViRnJhbWVVbmRlclRvcEZyYW1lQ291bnQu
cHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVDb3VudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzVG8ucHJlcGFyZSgpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y291bnRTdWJTdGF0aXN0aWNzVGVzdGluZyBmYWlsZWQgdG8g
cHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgaWYgKHN1YkZyYW1lVW5kZXJUb3BGcmFtZUNv
dW50LmJpbmRJbnQoMSwgZG9tYWluSUQoc3ViZnJhbWVEb21haW4pLnZhbHVlKCkpICE9IFNRTElU
RV9PSworICAgICAgICB8fCBzdWJGcmFtZVVuZGVyVG9wRnJhbWVDb3VudC5iaW5kSW50KDIsIGRv
bWFpbklEKHRvcEZyYW1lRG9tYWluKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwg
c3VicmVzb3VyY2VVbmRlclRvcEZyYW1lQ291bnQuYmluZEludCgxLCBkb21haW5JRChzdWJmcmFt
ZURvbWFpbikudmFsdWUoKSkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZUNvdW50LmJpbmRJbnQoMiwgZG9tYWluSUQodG9wRnJhbWVEb21haW4pLnZhbHVl
KCkpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1Rv
LmJpbmRJbnQoMSwgZG9tYWluSUQoc3ViZnJhbWVEb21haW4pLnZhbHVlKCkpICE9IFNRTElURV9P
SworICAgICAgICB8fCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLmJpbmRJbnQoMiwgZG9t
YWluSUQodG9wRnJhbWVEb21haW4pLnZhbHVlKCkpICE9IFNRTElURV9PSykgeworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y291bnRTdWJTdGF0aXN0aWNzVGVzdGluZyBmYWls
ZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgaWYgKHN1YkZyYW1lVW5kZXJUb3BGcmFt
ZUNvdW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XCisgICAgICAgIHx8IHN1YnJlc291cmNlVW5kZXJU
b3BGcmFtZUNvdW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XCisgICAgICAgIHx8IHN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG8uc3RlcCgpICE9IFNRTElURV9ST1cpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAKKyAgICBpZiAoc3ViRnJhbWVVbmRlclRvcEZyYW1lQ291bnQuZ2V0Q29sdW1u
SW50KDApID09IDEKKyAgICAgICAgJiYgc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lQ291bnQuZ2V0
Q29sdW1uSW50KDApID09IDEKKyAgICAgICAgJiYgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNU
by5nZXRDb2x1bW5JbnQoMCkgPT0gMSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCBl
YTdlNjQ5ZmZmNWQxNmFhODRhZTFiZTA1MjZiNmM1OGM1N2QyZTM0Li5hM2RiNGZiNDM4ZjMwMzNj
NzQ3NDAyZmUxZmQ3YjlkZjI4YjZkYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IE9wZXJhdGluZ0RhdGVzV2luZG93KSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0TGFzdFNlZW4o
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzKSBvdmVycmlkZTsKKyAgICBib29sIGNv
dW50U3ViU3RhdGlzdGljc1Rlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWMoY29u
c3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwpAQCAtMTEwLDYgKzExMSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBjbGVhckRhdGFiYXNlQ29udGVudHMoKTsKICAgICBib29sIGluc2VydE9ic2Vy
dmVkRG9tYWluKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICB2b2lkIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOworICAg
IHZvaWQgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChjb25zdCBTdHJpbmcmLCBjb25zdCBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYsIHVuc2lnbmVkKTsKICAgICBib29sIGluc2VydERv
bWFpblJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmLCB1bnNpZ25lZCBkb21h
aW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluKTsKICAgICBib29s
IHJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmLCBPcHRpb25hbDx1
bnNpZ25lZD4gZmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERv
bWFpbikgY29uc3Q7CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRvbWFpbklEKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJikgY29uc3Q7CkBAIC0xNjYsOCArMTY4LDExIEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+
IHJlZ2lzdHJhYmxlRG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IoKSBvdmVycmlkZTsKICAg
ICBib29sIGlzRGF0YWJhc2VTdG9yZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAor
ICAgIGJvb2wgY3JlYXRlVW5pcXVlSW5kaWNlcygpOwogICAgIGJvb2wgY3JlYXRlU2NoZW1hKCk7
CiAgICAgYm9vbCBwcmVwYXJlU3RhdGVtZW50cygpOworICAgIFN0cmluZyBlbnN1cmVBbmRtYWtl
RG9tYWluTGlzdChjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYpOworCiAgICAgCiAg
ICAgY29uc3QgU3RyaW5nIG1fc3RvcmFnZURpcmVjdG9yeVBhdGg7CiAgICAgbXV0YWJsZSBXZWJD
b3JlOjpTUUxpdGVEYXRhYmFzZSBtX2RhdGFiYXNlOwpAQCAtMTc1LDIyICsxODAsMTAgQEAgcHJp
dmF0ZToKICAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9pbnNlcnRPYnNlcnZlZERvbWFp
blN0YXRlbWVudDsKICAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9pbnNlcnRUb3BMZXZl
bERvbWFpblN0YXRlbWVudDsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBt
X2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudDsKLSAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1l
bnQgbV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQ7Ci0gICAgV2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50IG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5z
RXhpc3RzU3RhdGVtZW50OwotICAgIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3RvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzVG87Ci0gICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQg
bV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzOwotICAgIFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbTsKLSAgICBtdXRhYmxlIFdlYkNv
cmU6OlNRTGl0ZVN0YXRlbWVudCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0czsK
LSAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zy
b207CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV90b3BGcmFtZUxpbmtE
ZWNvcmF0aW9uc0Zyb21FeGlzdHM7Ci0gICAgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluczsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudCBtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0czsKLSAgICBXZWJDb3Jl
OjpTUUxpdGVTdGF0ZW1lbnQgbV9zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zOwogICAg
IG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fc3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lRG9tYWluRXhpc3RzOwotICAgIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzVG87CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1l
bnQgbV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzOwotICAgIFdlYkNvcmU6OlNR
TGl0ZVN0YXRlbWVudCBtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbTsKLSAgICBtdXRh
YmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbUV4aXN0czsKICAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9tb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uU3RhdGVtZW50OwogICAgIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3Vw
ZGF0ZUxhc3RTZWVuU3RhdGVtZW50OwogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50IG1fdXBkYXRlRGF0YVJlY29yZHNSZW1vdmVkU3RhdGVtZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCAxMTNkMzUzOGNmYTA5MDMx
OThiYzIwOGI3ODY4MzA5NWI0OTg3MmJjLi4xZmNlMzExOWI3NjBhZGQxNmYyOGJjYzBhZjU1NGRl
NDA3ZjhmNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcApAQCAtNTk2LDExICs1OTYsMTEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4KICAg
ICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1lcmdlU3Rh
dGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJv
b2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVu
dCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFk
VXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wg
aXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwg
dW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAot
ICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCksIHRvcEZy
YW1lRG9tYWluID0gdG9wRnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIGxhc3RTZWVuLCBoYWRV
c2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJl
ZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewor
ICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCksIHRvcEZy
YW1lRG9tYWluMSA9IHRvcEZyYW1lRG9tYWluMS5pc29sYXRlZENvcHkoKSwgdG9wRnJhbWVEb21h
aW4yID0gdG9wRnJhbWVEb21haW4yLmlzb2xhdGVkQ29weSgpLCBsYXN0U2VlbiwgaGFkVXNlcklu
dGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlz
UHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKG1fc3RhdGlzdGljc1N0b3JlKSB7CiAgICAgICAgICAgICBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzIHN0YXRpc3RpYyhkb21haW4pOwogICAgICAgICAgICAgc3RhdGlzdGljLmxhc3RTZWVu
ID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGxhc3RTZWVuLnNlY29uZHMoKSk7CkBAIC02MTEs
MTEgKzYxMSwxNSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bWVyZ2VT
dGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRAogICAgICAgICAgICAgc3RhdGlz
dGljLmlzVmVyeVByZXZhbGVudFJlc291cmNlID0gaXNWZXJ5UHJldmFsZW50OwogICAgICAgICAg
ICAgc3RhdGlzdGljLmRhdGFSZWNvcmRzUmVtb3ZlZCA9IGRhdGFSZWNvcmRzUmVtb3ZlZDsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCF0b3BGcmFtZURvbWFpbi5pc0VtcHR5KCkpIHsK
LSAgICAgICAgICAgICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiB0b3BGcmFtZURvbWFp
bnM7Ci0gICAgICAgICAgICAgICAgdG9wRnJhbWVEb21haW5zLmFkZCh0b3BGcmFtZURvbWFpbik7
Ci0gICAgICAgICAgICAgICAgc3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMg
PSBXVEZNb3ZlKHRvcEZyYW1lRG9tYWlucyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiB0b3BGcmFtZURvbWFpbnM7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmICghdG9wRnJhbWVEb21haW4xLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
ICAgICB0b3BGcmFtZURvbWFpbnMuYWRkKHRvcEZyYW1lRG9tYWluMSk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmICghdG9wRnJhbWVEb21haW4yLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
ICAgICB0b3BGcmFtZURvbWFpbnMuYWRkKHRvcEZyYW1lRG9tYWluMik7CisKKyAgICAgICAgICAg
IHN0YXRpc3RpYy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zID0gV1RGTW92ZSh0b3BGcmFt
ZURvbWFpbnMpOwogCiAgICAgICAgICAgICBWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4g
c3RhdGlzdGljczsKICAgICAgICAgICAgIHN0YXRpc3RpY3MuYXBwZW5kKFdURk1vdmUoc3RhdGlz
dGljKSk7CkBAIC02MjQsNiArNjI4LDIyIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVECiAgICAg
ICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIH0pOwog
fQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aXNSZWxhdGlvbnNoaXBP
bmx5SW5EYXRhYmFzZU9uY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOworCisgICAgcG9zdFRhc2soW3RoaXMsIHN1YkRvbWFpbiA9IHN1YkRvbWFpbi5pc29sYXRl
ZENvcHkoKSwgdG9wRG9tYWluID0gdG9wRG9tYWluLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAg
ICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlIHx8ICFpczxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZT4oKm1fc3RhdGlzdGljc1N0b3JlKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgCisgICAgICAgIGJvb2wgaXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UgPSBk
b3duY2FzdDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZT4oKm1fc3RhdGlzdGlj
c1N0b3JlLmdldCgpKS5jb3VudFN1YlN0YXRpc3RpY3NUZXN0aW5nKHN1YkRvbWFpbiwgdG9wRG9t
YWluKTsKKyAgICAgICAgCisgICAgICAgIHBvc3RUYXNrUmVwbHkoW2lzUmVsYXRpb25zaGlwT25s
eUluRGF0YWJhc2VPbmNlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaXNSZWxh
dGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KICAg
ICAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRQcmV2YWxlbnRSZXNv
dXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggZmIxODEwNTFhNGM0YTU0ZWMzNTVkYmE1MGVmMDY5
NGYyN2VhYjdjZS4uOTJmZTE1N2U2ZDNhMzUxOTg1ZTE5YjcwMTZmZTMyYTM0YzJmMWQ4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMTI5LDcg
KzEyOSw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25z
dCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFn
ZVByb3h5SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAgICAgdm9pZCBzZXRM
YXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFNlY29uZHMgbGFzdFNl
ZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVy
eVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwg
Y29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2Vlbiwg
Ym9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJl
dmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBpc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNl
dFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
cmluZyk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcAppbmRleCAzMzQxYWVkOGMyZWM5NTBlN2ZhMDM0MTI2NDRlOTYyN2ZkMmE1NTVlLi5i
NTgwYTA3NmY5MmVjODRjYjhmYzcwYjBlYmRjMmQzNWU4ZDFkNjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtOTY4LDExICs5Njgs
MTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWEKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3M6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rp
b24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVy
ZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRh
UmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlcklu
dGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFu
ZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWdu
ZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0
d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0g
ICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3Rp
bmcoZG9tYWluLCB0b3BGcmFtZURvbWFpbiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwg
aXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPm1lcmdlU3RhdGlz
dGljRm9yVGVzdGluZyhkb21haW4sIHRvcEZyYW1lRG9tYWluMSwgdG9wRnJhbWVEb21haW4yLCBs
YXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBp
c0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRz
UmVtb3ZlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0gZWxzZSB7CkBAIC0xMDI2LDYgKzEw
MjYsMTkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmEKICAgICB9CiB9CiAKK3ZvaWQgTmV0d29y
a1Byb2Nlc3M6OmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0
aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIGlmIChhdXRvKiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlzUmVsYXRpb25zaGlw
T25seUluRGF0YWJhc2VPbmNlKHN1YkRvbWFpbiwgdG9wRG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0g
dGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDJmNzA0MzA4ZWRmZTk1M2E0YzhlN2Iw
ZDA3MzgwYzFlNDUxZmZiNmQuLjFkYWVhNTdkNjc3NDZhMzAxY2IwNjc0ZDkwNWRhZTlhNzUwZDY1
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTIyOCw2ICsyMjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVz
b3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFBydW5lRW50cmllc0Rvd25UbyhQQUw6
OlNlc3Npb25JRCwgdWludDY0X3QgcHJ1bmVUYXJnZXRDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIGhhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKKyAgICB2b2lkIGlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAg
ICB2b2lkIGhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGdldEFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMpPiYmKTsKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdh
dGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3Qs
IGJvb2wgaXNNYWluRnJhbWUpOwpAQCAtMjQyLDcgKzI0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklELCBT
ZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRm
YXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
LSAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFNlY29uZHMgbGFzdFNl
ZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVy
eVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0
b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFNl
Y29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNl
bnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50
LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TWluaW11bVRpbWVCZXR3ZWVu
RGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NU
ZXN0KFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNTEzNzFkNjcyYzczMTI5OGZlYjEyNjczZGU3MzAwMzU5
MDZiYmQzZi4uYmQzYzI0YTcxNGM4OTZhMmVjNTkwNDE4NzcwMDdhYTY0ZDI0YzU5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC05NCwxMCArOTQsMTEgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIElzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAt
PiAoYm9vbCBpc1ZlcnlQcmV2YWxlbnQpIEFzeW5jCiAgICAgU2V0QWdlQ2FwRm9yQ2xpZW50U2lk
ZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25hbDxTZWNvbmRzPiBzZWNv
bmRzKSAtPiAoKSBBc3luYwogICAgIFNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFNlY29uZHMgc2Vj
b25kcykgLT4gKCkgQXN5bmMKLSAgICBNZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFp
biwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFNlY29uZHMgbGFz
dFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlz
VmVyeVByZXZhbGVudCwgdWludDY0X3QgZGF0YVJlY29yZHNSZW1vdmVkKSAtPiAoKSBBc3luYwor
ICAgIE1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjEsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRv
cEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24s
IFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQs
IGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVj
b3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURv
bWFpbikgLT4gKCkgQXN5bmMKICAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291
cmNlRG9tYWluKSAtPiAoKSBBc3luYwogICAgIEhhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWlu
KSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCisgICAgSXNSZWxhdGlvbnNoaXBP
bmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBzdWJEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERv
bWFpbikgLT4gKGJvb2wgaGFkVXNlckludGVyYWN0aW9uKSBBc3luYwogICAgIEhhc0xvY2FsU3Rv
cmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCiAgICAg
R2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAo
VmVjdG9yPFN0cmluZz4gZG9tYWlucykgQXN5bmMKICAgICBJc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZWRpcmVjdGVkRnJvbURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJl
Y3RlZFRvRG9tYWluKSAtPiAoYm9vbCBpc1JlZGlyZWN0aW5nVG8pIEFzeW5jCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cAppbmRleCA1MTJlMDVjYzg1YmM0ZWUxOGFjNTY4ZmNkMzk4MzcwY2JmZWJhMmVjLi45ZDdmYTdk
MzdjNjZhMWYyZDllYzQ4Yzk3ZTUxYmM2ZmQ3MGE3N2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTEx
OSwxMCArMTE5LDEwIEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RT
ZWVuKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsCiAjZW5kaWYKIH0KIAotdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYg
dG9wRnJhbWVEb21haW4sIGRvdWJsZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24s
IGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwg
Ym9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNv
cmRzUmVtb3ZlZCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc01l
cmdlU3RhdGlzdGljRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFp
bjEsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhh
ZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wg
aXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwg
dW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRh
U3RvcmVTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFdlYktpdDo6dG9J
bXBsKGRhdGFTdG9yZVJlZiktPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJMKCksIFdl
YktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwo
dG9wRnJhbWVEb21haW4pLT5zdHJpbmcoKSksIFNlY29uZHMgeyBsYXN0U2VlbiB9LCBoYWRVc2Vy
SW50ZXJhY3Rpb24sIFNlY29uZHMgeyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uIH0sIGlzR3Jh
bmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1v
dmVkLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChk
YXRhU3RvcmVSZWYpLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6
OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZy
YW1lRG9tYWluMSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFt
ZURvbWFpbjIpLT5zdHJpbmcoKSksIFNlY29uZHMgeyBsYXN0U2VlbiB9LCBoYWRVc2VySW50ZXJh
Y3Rpb24sIFNlY29uZHMgeyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uIH0sIGlzR3JhbmRmYXRo
ZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkLCBb
Y29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Y29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtMjYxLDYgKzI2MSwxNyBAQCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZAogI2VuZGlmCiB9CiAKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0
aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYsIFdLU3RyaW5nUmVmIHN1Ykhvc3QsIFdLU3RyaW5nUmVmIHRvcEhvc3QsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZUZ1bmN0
aW9uIGNhbGxiYWNrKQoreworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisg
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRh
YmFzZU9uY2UoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChzdWJIb3N0KS0+c3RyaW5nKCkpLCBV
UkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBj
YWxsYmFja10oYm9vbCBvbmx5SW5EYXRhYmFzZU9uY2UpIHsKKyAgICAgICAgY2FsbGJhY2sob25s
eUluRGF0YWJhc2VPbmNlLCBjb250ZXh0KTsKKyAgICB9KTsKKyNlbHNlCisgICAgY2FsbGJhY2so
ZmFsc2UsIGNvbnRleHQpOworI2VuZGlmCit9CisKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
ZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSkKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAppbmRleCBmMmExNzgyOTZlYTc5ZWI0ZWY1NTdhYjBl
MDc4YjlhZDZlYTlhYTU1Li5jMWY5OTBiMzVhN2IyNjYyNDE1ZmU2ZjE4ZTkwMjgzOTM4MDg4MmVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuaApAQCAtNTAsNyArNTAsNyBAQCBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZQog
dHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0xhc3RTZWVuRnVuY3Rp
b24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVTZXRTdGF0aXN0aWNzTGFzdFNlZW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9y
ZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgZG91YmxlIHNlY29uZHMsIHZvaWQqIGNvbnRleHQsIFdL
V2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NMYXN0U2VlbkZ1bmN0aW9uIGNvbXBsZXRpb25IYW5k
bGVyKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NNZXJnZVN0
YXRpc3RpY0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwotV0tfRVhQT1JUIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRv
cEZyYW1lRG9tYWluLCBkb3VibGUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBk
b3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJv
b2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jk
c1JlbW92ZWQsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NNZXJn
ZVN0YXRpc3RpY0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKK1dLX0VYUE9SVCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BG
cmFtZURvbWFpbjEsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxhc3RTZWVu
LCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVBy
ZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCB2b2lkKiBjb250ZXh0LCBXS1dl
YnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBjb21wbGV0aW9u
SGFuZGxlcik7CiB0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2VGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9S
VCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29s
IHZhbHVlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2VGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcik7CiB0eXBlZGVmIHZvaWQgKCpX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlRnVuY3Rpb24p
KHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CkBAIC03MCw2ICs3MCw4IEBAIHR5cGVkZWYgdm9pZCAo
KldLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlv
bikodm9pZCoKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
V0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uIGNvbXBsZXRpb25I
YW5kbGVyKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uKShib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbiwg
dm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZUlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbiBjYWxsYmFj
ayk7Cit0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5SW5E
YXRhYmFzZU9uY2VGdW5jdGlvbikoYm9vbCBvbmx5SW5EYXRhYmFzZU9uY2UsIHZvaWQqIGZ1bmN0
aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NPbmx5SW5EYXRhYmFzZU9uY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
V0tTdHJpbmdSZWYgc3ViSG9zdCwgV0tTdHJpbmdSZWYgdG9wSG9zdCwgdm9pZCogY29udGV4dCwg
V0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlRnVuY3Rpb24g
Y2FsbGJhY2spOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGlj
c0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJp
bmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSk7CiB0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3Rv
cmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24pKGJvb2wgaXNHcmFuZGZhdGhlcmVk
LCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3Rv
cmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24gY2FsbGJhY2spOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKaW5kZXggMjc3M2EwNmU1YTUwNDEzZDM0OGU3MTU3MWU1MWJmNmQ4ZDYwOTE5ZC4uMzAwM2E3
MTg3OGFkNzA5M2YxNWM4YWU5ZmExMWYxYzgzMjdhZDM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC01
MzYsOSArNTM2LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRMYXN0U2VlbihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmwKICAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRMYXN0U2VlbihzZXNzaW9uSUQsIHJl
c291cmNlRG9tYWluLCBsYXN0U2VlbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
IAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgU2Vjb25kcyBs
YXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJ
bnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wg
aXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJh
bWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vj
b25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9v
bCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRz
UmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Ok1lcmdl
U3RhdGlzdGljRm9yVGVzdGluZyhzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCB0b3BGcmFtZURv
bWFpbiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRh
UmVjb3Jkc1JlbW92ZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TWVyZ2VTdGF0aXN0aWNGb3JU
ZXN0aW5nKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9tYWluMSwgdG9wRnJh
bWVEb21haW4yLCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQs
IGRhdGFSZWNvcmRzUmVtb3ZlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWlu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC02MDEs
NiArNjAxLDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aGFzSGFkVXNlckludGVyYWN0
aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QKICAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpIYWRVc2VySW50ZXJhY3Rpb24oc2Vzc2lvbklE
LCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BEb21haW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFjYW5TZW5kTWVz
c2FnZSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpJc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShzZXNzaW9uSUQsIHN1
YkRvbWFpbiwgdG9wRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYg
KCFjYW5TZW5kTWVzc2FnZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDJkNmFkYmUzYmEzZDVmY2U1Yzk2
YWVmNjNhZWZiY2Y2ZWYyY2QwNjMuLjA0Y2Q1MTE1ZGE5ZDI4YTNmZGM5ZGY2Nzg5Y2Y2OWQxNjkx
ZWIwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9C
bG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURv
bWFpbj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaGFzSGFkVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgaXNSZWxhdGlvbnNoaXBP
bmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BEb21haW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaGFzTG9jYWxTdG9yYWdlKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgaXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKQEAgLTEx
Myw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vz
c2luZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBtZXJnZVN0
YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJ
bnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3Jh
bmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2ln
bmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBi
b29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9u
LCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2
YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vz
c2lvbklELCBPcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggNjI3
ZDJkOTljYjNlYzcyNzBiODc2N2JhMzA2ZDhmYjUwOWE4YmRjMS4uMjYxOTAxNmIyNGM5ZThmN2E1
ODQ3YTlkYmI2ZjBmNmM1OWYwOWFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE1NTEsNyArMTU1
MSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3QgVVJMJiB1cmws
IFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhCiAgICAgfQogfQogCi12b2lkIFdlYnNpdGVE
YXRhU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCAsIGNvbnN0
IFVSTCYgdG9wRnJhbWVVcmwsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0
aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhl
cmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0
YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhj
b25zdCBVUkwmIHVybCAsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwxLCBjb25zdCBVUkwmIHRvcEZy
YW1lVXJsMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29u
ZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wg
aXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1Jl
bW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAodXJsLnByb3RvY29sSXNBYm91dCgpIHx8IHVybC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTE1NjIsNyArMTU2Miw3IEBAIHZvaWQgV2Vic2l0
ZURhdGFTdG9yZTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFVSTCYgdXJsICwgY29u
c3QgVVJMJiB0b3BGCiAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xz
KCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHByb2Nlc3MgPSBwcm9jZXNzUG9vbC0+bmV0d29ya1By
b2Nlc3MoKSkKLSAgICAgICAgICAgIHByb2Nlc3MtPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyht
X3Nlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB1cmwgfSwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4geyB0b3BGcmFtZVVybCB9LCBsYXN0U2VlbiwgaGFkVXNlckludGVy
YWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJl
dmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgW3Byb2Nlc3NQb29s
LCBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0p
OworICAgICAgICAgICAgcHJvY2Vzcy0+bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKG1fc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9LCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiB7IHRvcEZyYW1lVXJsMSB9LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7
IHRvcEZyYW1lVXJsMiB9LCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50
VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2
YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgW3Byb2Nlc3NQb29sLCBjYWxsYmFja0FnZ3JlZ2F0
b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogICAgIH0KIH0KIApAQCAt
MTY0Niw2ICsxNjQ2LDI0IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6aGFzSGFkVXNlckludGVy
YWN0aW9uKGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2CiAgICAgfQogfQogCit2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKGNv
bnN0IFVSTCYgc3ViVXJsLCBjb25zdCBVUkwmIHRvcFVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOworICAgIAorICAgIGlmIChzdWJVcmwucHJvdG9jb2xJc0Fib3V0KCkgfHwgc3ViVXJs
LmlzRW1wdHkoKSB8fCB0b3BVcmwucHJvdG9jb2xJc0Fib3V0KCkgfHwgdG9wVXJsLmlzRW1wdHko
KSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgCisgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygp
KSB7CisgICAgICAgIGlmIChhdXRvKiBwcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9j
ZXNzKCkpIHsKKyAgICAgICAgICAgIHByb2Nlc3MtPmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJh
c2VPbmNlKG1fc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHN1YlVybCB9
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHRvcFVybCB9LCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgICAgICAgICBBU1NFUlQocHJvY2Vzc1Bvb2xzKCkuc2l6ZSgpID09
IDEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJMJiB1cmwsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDAxODM3ZmVhMDI3NmY0Yjg0YTZh
ZGM0ZGU1MDRlZWQyNTdlYWFkNzIuLjRkNDkwOTFhNzg3YjdmZDVhODNlZjAzZjc2ZmNmY2RjOWNk
NmUxZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBkb21haW5z
KT4mJik7CiAgICAgdm9pZCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJMJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBpc1JlbGF0aW9uc2hpcE9ubHlJ
bkRhdGFiYXNlT25jZShjb25zdCBVUkwmIHN1YlVybCwgY29uc3QgVVJMJiB0b3BVcmwsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNQcmV2YWxlbnRSZXNvdXJj
ZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lk
IGlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhjb25zdCBVUkwmIGhvc3RSZWRpcmVjdGVkRnJv
bSwgY29uc3QgVVJMJiBob3N0UmVkaXJlY3RlZFRvLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihjb25zdCBV
UkwmIHN1YnJlc291cmNlLCBjb25zdCBVUkwmIHRvcEZyYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKQEAgLTE2Myw3ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRV
c2VJVFBEYXRhYmFzZShib29sKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNv
bmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4o
Y29uc3QgVVJMJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2
b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBVUkwmLCBjb25zdCBVUkwmIHRvcEZy
YW1lVXJsLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25k
cyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBp
c1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lcmdlU3RhdGlz
dGljRm9yVGVzdGluZyhjb25zdCBVUkwmLCBjb25zdCBVUkwmIHRvcEZyYW1lVXJsMSwgY29uc3Qg
VVJMJiB0b3BGcmFtZVVybDIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0
aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhl
cmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0
YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1Rlc3QoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNldFBydW5lRW50cmllc0Rvd25UbyhzaXplX3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MTc0ZGM4NmM5ODJjM2JkNTJhMzVmZjYyNmFhNDVmYjEyODQ2ZjY5MS4uYjVjNWM3YzNhOTkyMDE3
YjU0MWNhZDNhNzk5OGM0MGYyNGE4ZTY3OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTEwLTA0ICBLYXRlIENo
ZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIERvbWFpbiByZWxh
dGlvbnNoaXBzIGluIHRoZSBJVFAgRGF0YWJhc2Ugc2hvdWxkIGJlIGluc2VydGVkIGluIGEgc2lu
Z2xlIHF1ZXJ5IGFuZCBpZ25vcmUgcmVwZWF0IGluc2VydCBhdHRlbXB0cy4gKDIwMjYwNCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjYwNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTU5OTU4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlcyB0byB0ZXN0aW5nIGluZnJhc3RydWN0dXJl
IHRvIHRlc3Qgc3VjY2Vzc2Z1bCBsaXN0LW1lcmdpbmcgb2YKKyAgICAgICAgdG9wIGRvbWFpbnMg
aW50byB0aGUgSVRQIFNRTGl0ZSBkYXRhYmFzZSBhbmQgdGVzdCBhZ2FpbnN0IHJlcGVhdAorICAg
ICAgICBpbnNlcnRzLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0
U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6aXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5l
cjo6aXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjppc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2UpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2Vp
dmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE5LTEwLTA0ICBN
YXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGlQYWQgdGVzdGVy
cyBwbGF0Zm9ybSBmb3IgZG93bmxvYWRpbmcgYnVpbGQgcHJvZHVjdCBhbmQgZml4aW5nIHRlc3Rz
IHRvIHJ1bgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNDJhYWQ1NGUzMTEzYTM4M2Y3
MzQ5MTc3NDE1MjE3Y2VkOTkwZDRhZC4uNzYxODEyYjZkMDFjM2M5YjNhMzIyNWU1ZjViZDVhYTBi
YTJjZDU5YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0yOTgsNyArMjk4LDcgQEAg
aW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgc2V0U3RhdGlzdGljc0RlYnVnTW9kZShi
b29sZWFuIHZhbHVlLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZvaWQgc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKERPTVN0cmluZyBob3N0TmFtZSwg
b2JqZWN0IGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0U2Vl
bihET01TdHJpbmcgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzLCBvYmplY3QgY29tcGxldGlvbkhh
bmRsZXIpOwotICAgIHZvaWQgc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKERPTVN0cmluZyBo
b3N0TmFtZSwgRE9NU3RyaW5nIHRvcEZyYW1lRG9tYWluLCBkb3VibGUgbGFzdFNlZW4sIGJvb2xl
YW4gaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwg
Ym9vbGVhbiBpc0dyYW5kZmF0aGVyZWQsIGJvb2xlYW4gaXNQcmV2YWxlbnQsIGJvb2xlYW4gaXNW
ZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBsb25nIGRhdGFSZWNvcmRzUmVtb3ZlZCwgb2JqZWN0IGNv
bXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIHNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhE
T01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFtZURvbWFpbjEsIERPTVN0cmluZyB0
b3BGcmFtZURvbWFpbjIsIGRvdWJsZSBsYXN0U2VlbiwgYm9vbGVhbiBoYWRVc2VySW50ZXJhY3Rp
b24sIGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sZWFuIGlzR3JhbmRmYXRo
ZXJlZCwgYm9vbGVhbiBpc1ByZXZhbGVudCwgYm9vbGVhbiBpc1ZlcnlQcmV2YWxlbnQsIHVuc2ln
bmVkIGxvbmcgZGF0YVJlY29yZHNSZW1vdmVkLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwog
ICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKERPTVN0cmluZyBob3N0TmFt
ZSwgYm9vbGVhbiB2YWx1ZSwgb2JqZWN0IGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHNl
dFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoRE9NU3RyaW5nIGhvc3ROYW1lLCBib29s
ZWFuIHZhbHVlLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIGJvb2xlYW4gaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoRE9NU3RyaW5nIGhvc3ROYW1lKTsKQEAgLTMwOCw2ICsz
MDgsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKERPTVN0cmluZyBob3N0UmVkaXJlY3RlZEZyb20sIERP
TVN0cmluZyBob3N0UmVkaXJlY3RlZFRvKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oRE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFuIHZhbHVlLCBvYmplY3Qg
Y29tcGxldGlvbkhhbmRsZXIpOwogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKERPTVN0cmluZyBob3N0TmFtZSk7CisgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NP
bmx5SW5EYXRhYmFzZU9uY2UoRE9NU3RyaW5nIHN1Ykhvc3QsIERPTVN0cmluZyB0b3BIb3N0KTsK
ICAgICB2b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERPTVN0cmluZyBob3N0TmFtZSwg
Ym9vbGVhbiB2YWx1ZSk7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERP
TVN0cmluZyBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sZWFuIHZh
bHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCmluZGV4IDAxMTA0YWNmODRiYWIxMjdlNTE3M2QzNzkzMmU0Mjk5YWZhM2Mx
NTQuLmJkNjc1ZGEwNGJkNGVhNTRlYjM4ZDUxNWJlYzg5ZDdhMmNkMmYwNGEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApA
QCAtMTQ1NCw3ICsxNDU0LDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNl
dExhc3RTZWVuQ2FsbGJhY2soKQogICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3RhdGlz
dGljc0xhc3RTZWVuQ2FsbGJhY2tJRCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlz
dGljc01lcmdlU3RhdGlzdGljKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BG
cmFtZURvbWFpbiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91
YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29s
IGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNS
ZW1vdmVkLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBUZXN0UnVubmVyOjpz
ZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5n
UmVmIHRvcEZyYW1lRG9tYWluMSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4yLCBkb3VibGUg
bGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJ
bnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wg
aXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIEpTVmFsdWVSZWYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3Rh
dGlzdGljc01lcmdlU3RhdGlzdGljQ2FsbGJhY2tJRCwgY29tcGxldGlvbkhhbmRsZXIpOwogCkBA
IC0xNDY0LDggKzE0NjQsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzTWVyZ2VT
dGF0aXN0aWMoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHQKICAgICBrZXlzLmFw
cGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKSk7
CiAgICAgdmFsdWVzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aEpTU3RyaW5nKGhv
c3ROYW1lKSkpOwogICAgIAotICAgIGtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluIikpKTsKLSAgICB2YWx1ZXMuYXBwZW5kKGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoSlNTdHJpbmcodG9wRnJhbWVEb21haW4pKSk7CisgICAg
a2V5cy5hcHBlbmQoYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVG9wRnJh
bWVEb21haW4xIikpKTsKKyAgICB2YWx1ZXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoSlNTdHJpbmcodG9wRnJhbWVEb21haW4xKSkpOworICAgIAorICAgIGtleXMuYXBwZW5kKGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluMiIpKSk7
CisgICAgdmFsdWVzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aEpTU3RyaW5nKHRv
cEZyYW1lRG9tYWluMikpKTsKIAogICAgIGtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIkxhc3RTZWVuIikpKTsKICAgICB2YWx1ZXMuYXBwZW5kKGFkb3B0
V0soV0tEb3VibGVDcmVhdGUobGFzdFNlZW4pKSk7CkBAIC0xNzI0LDYgKzE3MjcsMzQgQEAgYm9v
bCBUZXN0UnVubmVyOjppc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdS
ZWYgaG9zdE5hbWUpCiAgICAgcmV0dXJuIFdLQm9vbGVhbkdldFZhbHVlKGFkb3B0V0soc3RhdGlj
X2Nhc3Q8V0tCb29sZWFuUmVmPihyZXR1cm5EYXRhKSkuZ2V0KCkpOwogfQogCitib29sIFRlc3RS
dW5uZXI6OmlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShKU1N0cmluZ1JlZiBzdWJIb3N0
LCBKU1N0cmluZ1JlZiB0b3BIb3N0KQoreworICAgIAorICAgIFZlY3RvcjxXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4+IGtleXM7CisgICAgVmVjdG9yPFdLUmV0YWluUHRyPFdLVHlwZVJlZj4+IHZh
bHVlczsKKworICAgIGtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlN1Ykhvc3QiKSkpOworICAgIHZhbHVlcy5hcHBlbmQoYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhKU1N0cmluZyhzdWJIb3N0KSkpOworICAgIAorICAgIGtleXMuYXBwZW5kKGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEhvc3QiKSkpOworICAgIHZhbHVl
cy5hcHBlbmQoYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhKU1N0cmluZyh0b3BIb3N0KSkpOwor
ICAgIAorICAgIFZlY3RvcjxXS1N0cmluZ1JlZj4gcmF3S2V5cyhrZXlzLnNpemUoKSk7CisgICAg
VmVjdG9yPFdLVHlwZVJlZj4gcmF3VmFsdWVzKHZhbHVlcy5zaXplKCkpOworCisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CisgICAgICAgIHJhd0tleXNbaV0g
PSBrZXlzW2ldLmdldCgpOworICAgICAgICByYXdWYWx1ZXNbaV0gPSB2YWx1ZXNbaV0uZ2V0KCk7
CisgICAgfQorCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNTdGF0aXN0aWNzT25seUluRGF0
YWJhc2VPbmNlIikpOworICAgIFdLUmV0YWluUHRyPFdLRGljdGlvbmFyeVJlZj4gbWVzc2FnZUJv
ZHkgPSBhZG9wdFdLKFdLRGljdGlvbmFyeUNyZWF0ZShyYXdLZXlzLmRhdGEoKSwgcmF3VmFsdWVz
LmRhdGEoKSwgcmF3S2V5cy5zaXplKCkpKTsKKyAgICBXS1R5cGVSZWYgcmV0dXJuRGF0YSA9IG51
bGxwdHI7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3Rpbmco
SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksICZyZXR1cm5EYXRhKTsKKyAgICBBU1NFUlQoV0tHZXRU
eXBlSUQocmV0dXJuRGF0YSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBX
S0Jvb2xlYW5HZXRWYWx1ZShhZG9wdFdLKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4ocmV0dXJu
RGF0YSkpLmdldCgpKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzR3JhbmRm
YXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSkKIHsKICAgICBWZWN0b3I8
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+PiBrZXlzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBmMTcwMDEyOTgzMWI2Zjk0
NzA3NjJmMDMwZmVjZDcwMWM0ZDNiYTNiLi4yNTI2NDNmYmEzOTMxNzE4NGM4YTcxZjgzMDA0ZWEw
M2UzMWE3NWZiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzk2LDcgKzM5Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0
YXRpc3RpY3NDYWxsRGlkU2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGVDYWxsYmFjaygp
OwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0xhc3RTZWVuKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBk
b3VibGUgc2Vjb25kcywgSlNWYWx1ZVJlZiBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgdm9pZCBz
dGF0aXN0aWNzQ2FsbERpZFNldExhc3RTZWVuQ2FsbGJhY2soKTsKLSAgICB2b2lkIHNldFN0YXRp
c3RpY3NNZXJnZVN0YXRpc3RpYyhKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJpbmdSZWYgdG9w
RnJhbWVEb21haW4sIGRvdWJsZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGRv
dWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9v
bCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRz
UmVtb3ZlZCwgSlNWYWx1ZVJlZiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBzZXRTdGF0
aXN0aWNzTWVyZ2VTdGF0aXN0aWMoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHRv
cEZyYW1lRG9tYWluMSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4yLCBkb3VibGUgbGFzdFNl
ZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5
UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIEpTVmFsdWVSZWYgY29tcGxl
dGlvbkhhbmRsZXIpOwogICAgIHZvaWQgc3RhdGlzdGljc0NhbGxEaWRTZXRNZXJnZVN0YXRpc3Rp
Y0NhbGxiYWNrKCk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRs
ZXIpOwogICAgIHZvaWQgc3RhdGlzdGljc0NhbGxEaWRTZXRQcmV2YWxlbnRSZXNvdXJjZUNhbGxi
YWNrKCk7CkBAIC00MTAsNiArNDEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSwg
SlNWYWx1ZVJlZiBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgdm9pZCBzdGF0aXN0aWNzQ2FsbERp
ZFNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbkNhbGxiYWNrKCk7CiAgICAgYm9vbCBpc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUpOworICAgIGJvb2wg
aXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKEpTU3RyaW5nUmVmIHN1Ykhvc3QsIEpTU3Ry
aW5nUmVmIHRvcEhvc3QpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzR3Jh
bmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRVc2VJVFBEYXRh
YmFzZShib29sIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKaW5kZXggOWI4MDcxZGE3ZmYzZjk4MDg4MTJmNzU2MTdmMjAwYmE1YjJmYTUxMS4uN2NkMTky
YWUzODM2OTVjMjkxMjc2MzFkMWExNDE0ZjZmMTE1NzkxZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMyNjcsMTAgKzMyNjcsMTAgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLU3RyaW5nUmVmIGhvc3QsIGRvdWJs
ZSBzZWNvbmRzKQogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZFNldExhc3RTZWVuKCk7CiB9
CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1N0
cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbiwgZG91YmxlIGxhc3RTZWVu
LCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVBy
ZXZhbGVudCwgaW50IGRhdGFSZWNvcmRzUmVtb3ZlZCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
dFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0
b3BGcmFtZURvbWFpbjEsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxhc3RT
ZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVy
eVByZXZhbGVudCwgaW50IGRhdGFSZWNvcmRzUmVtb3ZlZCkKIHsKICAgICBSZXNvdXJjZVN0YXRp
c3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0
YVN0b3JlKCksIGhvc3QsIHRvcEZyYW1lRG9tYWluLCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0
aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFs
ZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgJmNvbnRleHQsIHJlc291
cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0
b3JlKCksIGhvc3QsIHRvcEZyYW1lRG9tYWluMSwgdG9wRnJhbWVEb21haW4yLCBsYXN0U2Vlbiwg
aGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0
aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwg
JmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVu
VW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIG1fY3VycmVudEludm9jYXRpb24t
PmRpZE1lcmdlU3RhdGlzdGljKCk7CiB9CkBAIC0zMzU1LDYgKzMzNTUsMTQgQEAgYm9vbCBUZXN0
Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLU3RyaW5nUmVm
IGhvc3QpCiAgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0OwogfQogCitib29sIFRlc3RDb250cm9s
bGVyOjppc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2UoV0tTdHJpbmdSZWYgc3ViSG9zdCwg
V0tTdHJpbmdSZWYgdG9wSG9zdCkKK3sKKyAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0Nv
bnRleHQgY29udGV4dCgqdGhpcyk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNz
T25seUluRGF0YWJhc2VPbmNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHN1
Ykhvc3QsIHRvcEhvc3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFuUmVzdWx0
Q2FsbGJhY2spOworICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKKyAgICBy
ZXR1cm4gY29udGV4dC5yZXN1bHQ7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRp
c3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpCiB7CiAgICAg
V0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoVGVzdENvbnRyb2xs
ZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDZjMmQyZDg4NmUwM2I3N2I2MmJlNTUzOGEyMmI5YjBl
OGQ0YzQxZTQuLjNjNzE1MTkyZmJiYjY3ZTRiYWE1MjVjNWZmZmMxM2NhNDZlYjhmZWMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTIxMCw3ICsyMTAsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUpOwogICAg
IHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLU3RyaW5n
UmVmIGhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1N0cmluZ1Jl
ZiBob3N0TmFtZSwgZG91YmxlIHNlY29uZHMpOwotICAgIHZvaWQgc2V0U3RhdGlzdGljc01lcmdl
U3RhdGlzdGljKFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluLCBk
b3VibGUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQs
IGJvb2wgaXNWZXJ5UHJldmFsZW50LCBpbnQgZGF0YVJlY29yZHNSZW1vdmVkKTsKKyAgICB2b2lk
IHNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1Jl
ZiB0b3BGcmFtZURvbWFpbjEsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxh
c3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlz
VmVyeVByZXZhbGVudCwgaW50IGRhdGFSZWNvcmRzUmVtb3ZlZCk7CiAgICAgdm9pZCBzZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUp
OwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShXS1N0cmluZ1Jl
ZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgU3RyaW5nIGR1bXBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCk7CkBAIC0yMjEsNiArMjIxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZEZy
b20sIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8pOwogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7
CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tTdHJpbmdSZWYg
aG9zdE5hbWUpOworICAgIGJvb2wgaXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKFdLU3Ry
aW5nUmVmIHN1Ykhvc3QsIFdLU3RyaW5nUmVmIHRvcEhvc3QpOwogICAgIHZvaWQgc2V0U3RhdGlz
dGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAg
IGJvb2wgaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFtZSk7CiAg
ICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMmY4YjMwNmUyYzhjODczZmZkMzE3OTYxYzgx
MmM1YmM4ODJiNjNjZC4uZjdlZWI2ZWQzY2ZhYmE0YjUyMGNkNzE1ZmM1OTY0YzMyYmMzODMyNSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTExMDUsNyAr
MTEwNSw4IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2Vp
dmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAKICAgICAgICAgV0tEaWN0aW9uYXJ5
UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4o
bWVzc2FnZUJvZHkpOwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVL
ZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsK
LSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRvcEZyYW1lRG9tYWluS2V5ID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVG9wRnJhbWVEb21haW4iKSk7Cisg
ICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0b3BGcmFtZURvbWFpbjFLZXkgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUb3BGcmFtZURvbWFpbjEiKSk7Cisg
ICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0b3BGcmFtZURvbWFpbjJLZXkgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUb3BGcmFtZURvbWFpbjIiKSk7CiAg
ICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBsYXN0U2VlbktleSA9IGFkb3B0V0soV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkxhc3RTZWVuIikpOwogICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gaGFkVXNlckludGVyYWN0aW9uS2V5ID0gYWRvcHRXSyhXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSGFkVXNlckludGVyYWN0aW9uIikpOwogICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbktleSA9IGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIk1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb24iKSk7CkBAIC0xMTE2LDcgKzExMTcsOCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgog
ICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdGltZXNBY2Nlc3NlZEZpcnN0UGFydHlJ
bnRlcmFjdGlvbktleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRp
bWVzQWNjZXNzZWRGaXJzdFBhcnR5SW50ZXJhY3Rpb24iKSk7CiAKICAgICAgICAgV0tTdHJpbmdS
ZWYgaG9zdE5hbWUgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRl
bUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7Ci0gICAg
ICAgIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB0b3BGcmFt
ZURvbWFpbktleS5nZXQoKSkpOworICAgICAgICBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjEg
PSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHRvcEZyYW1lRG9tYWluMUtleS5nZXQoKSkpOworICAgICAgICBX
S1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjIgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tE
aWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHRvcEZyYW1lRG9t
YWluMktleS5nZXQoKSkpOwogICAgICAgICBXS0RvdWJsZVJlZiBsYXN0U2VlbiA9IHN0YXRpY19j
YXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSwgbGFzdFNlZW5LZXkuZ2V0KCkpKTsKICAgICAgICAgV0tCb29sZWFuUmVmIGhhZFVz
ZXJJbnRlcmFjdGlvbiA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0
SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGhhZFVzZXJJbnRlcmFjdGlvbktleS5n
ZXQoKSkpOwogICAgICAgICBXS0RvdWJsZVJlZiBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uID0g
c3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2Fn
ZUJvZHlEaWN0aW9uYXJ5LCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uS2V5LmdldCgpKSk7CkBA
IC0xMTI1LDcgKzExMjcsNyBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS0Jv
b2xlYW5SZWYgaXNWZXJ5UHJldmFsZW50ID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0Rp
Y3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaXNWZXJ5UHJldmFs
ZW50S2V5LmdldCgpKSk7CiAgICAgICAgIFdLVUludDY0UmVmIGRhdGFSZWNvcmRzUmVtb3ZlZCA9
IHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3Nh
Z2VCb2R5RGljdGlvbmFyeSwgZGF0YVJlY29yZHNSZW1vdmVkS2V5LmdldCgpKSk7CiAgICAgICAg
IAotICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc01lcmdl
U3RhdGlzdGljKGhvc3ROYW1lLCB0b3BGcmFtZURvbWFpbiwgV0tEb3VibGVHZXRWYWx1ZShsYXN0
U2VlbiksIFdLQm9vbGVhbkdldFZhbHVlKGhhZFVzZXJJbnRlcmFjdGlvbiksIFdLRG91YmxlR2V0
VmFsdWUobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiksIFdLQm9vbGVhbkdldFZhbHVlKGlzR3Jh
bmRmYXRoZXJlZCksIFdLQm9vbGVhbkdldFZhbHVlKGlzUHJldmFsZW50KSwgV0tCb29sZWFuR2V0
VmFsdWUoaXNWZXJ5UHJldmFsZW50KSwgV0tVSW50NjRHZXRWYWx1ZShkYXRhUmVjb3Jkc1JlbW92
ZWQpKTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NN
ZXJnZVN0YXRpc3RpYyhob3N0TmFtZSwgdG9wRnJhbWVEb21haW4xLCB0b3BGcmFtZURvbWFpbjIs
IFdLRG91YmxlR2V0VmFsdWUobGFzdFNlZW4pLCBXS0Jvb2xlYW5HZXRWYWx1ZShoYWRVc2VySW50
ZXJhY3Rpb24pLCBXS0RvdWJsZUdldFZhbHVlKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24pLCBX
S0Jvb2xlYW5HZXRWYWx1ZShpc0dyYW5kZmF0aGVyZWQpLCBXS0Jvb2xlYW5HZXRWYWx1ZShpc1By
ZXZhbGVudCksIFdLQm9vbGVhbkdldFZhbHVlKGlzVmVyeVByZXZhbGVudCksIFdLVUludDY0R2V0
VmFsdWUoZGF0YVJlY29yZHNSZW1vdmVkKSk7CiAKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQpAQCAtMTI0OSw2ICsxMjUxLDIxIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdElu
dm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNl
IikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rp
b25hcnlHZXRUeXBlSUQoKSk7CisgICAgICAgIAorICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVz
c2FnZUJvZHlEaWN0aW9uYXJ5ID0gc3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdl
Qm9keSk7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJIb3N0S2V5ID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3ViSG9zdCIpKTsKKyAgICAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRvcEhvc3RLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJUb3BIb3N0IikpOworICAgICAgICAKKyAgICAgICAgV0tTdHJp
bmdSZWYgc3ViSG9zdCA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJ
dGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgc3ViSG9zdEtleS5nZXQoKSkpOworICAg
ICAgICBXS1N0cmluZ1JlZiB0b3BIb3N0ID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGlj
dGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB0b3BIb3N0S2V5Lmdl
dCgpKSk7CisKKyAgICAgICAgYm9vbCBzdGF0aXN0aWNJbkRhdGFiYXNlT25jZSA9IFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5pc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2Uoc3ViSG9z
dCwgdG9wSG9zdCk7CisgICAgICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gcmVzdWx0ID0gYWRv
cHRXSyhXS0Jvb2xlYW5DcmVhdGUoc3RhdGlzdGljSW5EYXRhYmFzZU9uY2UpKTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZCIpKSB7CiAg
ICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0
VHlwZUlEKCkpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MDJkZDY1ZmY3MjFlNGI2MjViOWQ3MWE5MTdi
YTZiZTQ0MGNmYTUyLi43YmNjNzM3NzUzMzA3NDY0YmI3ZWMyNzkxMzQ4ZTI3MDM1NzgxZGQ3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMTAtMDQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9tYWluIHJlbGF0aW9uc2hpcHMgaW4gdGhl
IElUUCBEYXRhYmFzZSBzaG91bGQgYmUgaW5zZXJ0ZWQgaW4gYSBzaW5nbGUgcXVlcnkgYW5kIGln
bm9yZSByZXBlYXQgaW5zZXJ0IGF0dGVtcHRzLiAoMjAyNjA0KQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNjA0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81NTk5NTgzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFZGl0ZWQgdGhlIG1lcmdlLXN0YXRpc3RpY3MgdGVzdHMgdG8gYWxzbyB0ZXN0IHRo
ZSBsaXN0LWluc2VydGlvbgorICAgICAgICBjaGFuZ2UgbWFkZSBpbiB0aGlzIHBhdGNoLiBBbHNv
IGFkZGVkIGEgbmV3IHRlc3QgdG8gZW5zdXJlIHJlcGVhdAorICAgICAgICBpbnNlcnRzIG9ubHkg
cmVzdWx0IGluIG9uZSBlbnRyeSBpbiB0aGUgZGF0YWJhc2UuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWFueS1pbnNlcnRzLW9ubHktaW5zZXJ0LW9uY2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvbWFueS1pbnNlcnRzLW9ubHktaW5zZXJ0LW9uY2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1k
b2VzLW5vdC1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtb3ZlcndyaXRlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtb3ZlcndyaXRlLWRhdGFiYXNlLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1k
b2VzLXBhcnRpYWxseS1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbDoKKwogMjAxOS0xMC0wNCAgVHJ1
aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2xpbmUtc3R5bGVzLzJkLmxp
bmUuY2FwLnJvdW5kLmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21hbnktaW5zZXJ0cy1vbmx5LWluc2VydC1v
bmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9tYW55LWluc2VydHMtb25seS1pbnNlcnQtb25jZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTJlMGJmMjI3Mjg3OTY5YWJiZWYxYTk2YzQzNDc5Yjk1NWYwMWVlOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9t
YW55LWluc2VydHMtb25seS1pbnNlcnQtb25jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorZmFrZSB0ZXN0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB1cmwg
c2V0IGFzIHN1YmZyYW1lCitQQVNTIFJlbGF0aW9uc2hpcHMgYXJlIG9ubHkgaW4gdGhlIGRhdGFi
YXNlIG9uY2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL21hbnktaW5zZXJ0cy1vbmx5LWluc2VydC1vbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWFueS1pbnNlcnRzLW9ubHktaW5zZXJ0
LW9uY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NGNlODFiNGUyOWFkNWE1Y2Y4YzcwM2FlMzEwOTkyNzk3
YjNjNWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL21hbnktaW5zZXJ0cy1vbmx5LWluc2VydC1vbmNlLmh0bWwKQEAgLTAs
MCArMSw3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3IgVGVsZW1ldHJ5IEdlbmVyYXRpb248
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgIGRlc2NyaXB0aW9uKCJmYWtlIHRlc3QuIik7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0b3BGcmFtZVVybCA9ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3ViZnJhbWVVcmwgPSAiaHR0cDovLzEyNy4wLjEuMTo4
MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY2hlY2tDbGFzc2lmaWNhdGlvbkFuZENvbnRpbnVl
KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3Vi
RnJhbWVVbmRlcihzdWJmcmFtZVVybCwgdG9wRnJhbWVVcmwpKSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJ1cmwgZGlkIG5vdCBnZXQgc2V0IGFzIHN1YmZyYW1lLiIpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKHN1YmZy
YW1lVXJsLCB0b3BGcmFtZVVybCkpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoInVybCBkaWQg
bm90IGdldCBzZXQgYXMgcmVkaXJlY3RpbmcgdG8gdG9wIGZyYW1lLiIpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKHN1
YmZyYW1lVXJsLCB0b3BGcmFtZVVybCkpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoInVybCBk
aWQgbm90IGdldCBzZXQgYXMgc3VicmVzb3VyY2UuIik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgdGVzdFBhc3NlZCgidXJsIHNldCBhcyBzdWJmcmFtZSIpOworICAgICAgICAgICAgY2hlY2tD
b3VudFN0YXRpc3RpY3MoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGluc2Vy
dE1hbnlUaW1lcyh1cmwpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKHVybCwgdG9wRnJhbWVVcmwpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4odXJsLCB0b3BGcmFt
ZVVybCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbih1cmwsIHRvcEZyYW1lVXJsKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHVybCwgdG9wRnJhbWVVcmwpOworICAg
ICAgICAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHVybCwgdG9wRnJhbWVVcmwpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4odXJsLCB0b3BGcmFtZVVybCk7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbih1cmwsIHRvcEZyYW1lVXJsKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHVybCwgdG9wRnJhbWVVcmwpOworICAg
ICAgICAKKyAgICAgICAgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RUbyh1cmwsIHRvcEZyYW1lVXJsKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHVybCwgdG9wRnJhbWVV
cmwpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0VG8odXJsLCB0b3BGcmFtZVVybCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyh1cmwsIHRvcEZyYW1lVXJsKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzZXRVcFN0YXRpc3RpY3NBbmRDb250aW51ZSgpIHsKKyAgICAgICAg
aW5zZXJ0TWFueVRpbWVzKHN1YmZyYW1lVXJsKTsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrQ2xhc3NpZmljYXRpb25B
bmRDb250aW51ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0NvdW50U3Rh
dGlzdGljcyhyZXN1bHQpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzT25s
eUluRGF0YWJhc2VPbmNlKHN1YmZyYW1lVXJsLCB0b3BGcmFtZVVybCkpCisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJSZWxhdGlvbnNoaXBzIGFyZSBvbmx5IGluIHRoZSBkYXRhYmFzZSBvbmNlLiIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWxhdGlvbnNoaXBzIGFy
ZSBpbiB0aGUgZGF0YWJhc2UgbW9yZSB0aGFuIG9uY2UuIik7CisKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICBzZXRVcFN0YXRpc3RpY3NBbmRD
b250aW51ZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1ub3Qtb3ZlcndyaXRlLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlz
dGljLWRvZXMtbm90LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sCmluZGV4IDQyNDllZWMzOWUzZjEx
YjVlNDU3ZGJkOGJiOTJlYzdkYmM1ZDhlZGUuLjRkNGEyODM2N2JmNmE0NzIwN2FjYjU5ZmIxYjJh
OTkzYmUwYmM4MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1ub3Qtb3ZlcndyaXRlLWRhdGFiYXNl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L21lcmdlLXN0YXRpc3RpYy1kb2VzLW5vdC1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbApAQCAtMTYs
NyArMTYsNyBAQAogICAgIGNvbnN0IG5ld2VyVGltZXN0YW1wID0gb2xkZXJUaW1lc3RhbXAgKyAx
MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgZnVuY3Rpb24g
aW5zZXJ0U2Vjb25kU3RhdGlzdGljKCkgewotICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
TWVyZ2VTdGF0aXN0aWModXJsLCAiIiwgb2xkZXJUaW1lc3RhbXAsIGZhbHNlLCA5OSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgMCwgZnVuY3Rpb24oKSB7CisgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NNZXJnZVN0YXRpc3RpYyh1cmwsICIiLCAiIiwgb2xkZXJUaW1lc3RhbXAsIGZhbHNlLCA5
OSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsKSkKICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IG92ZXJ3cml0ZSBvbGQgcHJldmFsZW50IHJlc291
cmNlIHZhbHVlLiIpOwogICAgICAgICAgIGVsc2UKQEAgLTQ0LDcgKzQ0LDcgQEAKICAgICB9CiAg
ICAgCiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKHVybCwgIiIsIG5ld2VyVGltZXN0YW1wLCB0
cnVlLCAxMDAsIHRydWUsIHRydWUsIHRydWUsIDEsIGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyh1cmwsICIiLCAiIiwgbmV3ZXJUaW1l
c3RhbXAsIHRydWUsIDEwMCwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgMSwgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJs
KSkKICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtb3ZlcndyaXRlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1vdmVyd3JpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CmluZGV4IGFkY2Y3ZTgwZDc5OTBmODA0NDcwMTRiN2Q1ZTJiYTAyNDI5MzJlMTguLjVmYjFlNGE1
MzA3ZDBmOGNlNGQ2MzBiZWRiODE1MzQzNzBlOGEyNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1v
dmVyd3JpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1vdmVyd3JpdGUt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsOCBAQCBQQVNTIEhvc3Qgb3Zlcndyb3Rl
IG9sZCBwcmV2YWxlbnQgcmVzb3VyY2UgdmFsdWUuCiBQQVNTIEhvc3Qgb3Zlcndyb3RlIG9sZCB2
ZXJ5IHByZXZhbGVudCByZXNvdXJjZSB2YWx1ZS4KIFBBU1MgSG9zdCBvdmVyd3JvdGUgb2xkIHVz
ZXIgaW50ZXJhY3Rpb24gdmFsdWUuCiBQQVNTIEhvc3Qgb3Zlcndyb3RlIG9sZCBncmFuZGZhdGhl
cmVkIHZhbHVlLgotUEFTUyBIb3N0IHNldCBhcyBzdWJmcmFtZSB1bmRlciB0b3AgZnJhbWUuCitQ
QVNTIEhvc3Qgc2V0IGFzIHN1YmZyYW1lIHVuZGVyIHRvcCBmcmFtZTEuCitQQVNTIEhvc3Qgc2V0
IGFzIHN1YmZyYW1lIHVuZGVyIHRvcCBmcmFtZTIuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1vdmVyd3JpdGUt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbAppbmRleCAx
NDEyZTE1Y2M4MGY0ZTdhODNmNDE1NzgwMGQ3YzM0YjA4OWY0ODY0Li4xYTE5OTQ5NDU3ZTJjNzY4
YTQwN2RhMTUwMDI1M2NiYWIyY2JmZmRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtb3ZlcndyaXRl
LWRhdGFiYXNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1kb2VzLW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sCkBA
IC0xMSw1MSArMTEsNTggQEAKICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIGNvbnN0
IHVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOwotICAgIGNvbnN0IHNhbXBsZVRvcEZyYW1l
VVJMID0gImh0dHA6Ly90b3BGcmFtZURvbWFpbjo4MDAwIjsKKyAgICBjb25zdCBzYW1wbGVUb3BG
cmFtZVVSTDEgPSAiaHR0cDovL3RvcEZyYW1lRG9tYWluMTo4MDAwIjsKKyAgICBjb25zdCBzYW1w
bGVUb3BGcmFtZVVSTDIgPSAiaHR0cDovL3RvcEZyYW1lRG9tYWluMjo4MDAwIjsKICAgICBjb25z
dCBvbGRlclRpbWVzdGFtcCA9IE1hdGgucm91bmQoKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAvIDEw
MDApOwogICAgIGNvbnN0IG5ld2VyVGltZXN0YW1wID0gb2xkZXJUaW1lc3RhbXAgKyAxMDsKICAg
ICBjb25zdCBtb3N0UmVjZW50VUlUb1RyaWdnZXJGaXJzdFBhcnR5SW50ZXJhY3Rpb25Db3VudCA9
IG5ld2VyVGltZXN0YW1wICsgOTAwMDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgIGZ1bmN0aW9uIGluc2VydFNlY29uZFN0YXRpc3RpYygpIHsKICAgICAKLSAg
ICAgICAgLy8gc2V0IHRoaXMgcmVzb3VyY2UgYXMgcHJldmFsZW50IHNvIGl0IGlzIGluIHRoZSBz
dGF0aXN0aWNzIHN0b3JlCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHNhbXBsZVRvcEZyYW1lVVJMLCB0cnVlLCBmdW5jdGlvbigpIHsKLSAgICAgICAg
Ci0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKHVy
bCwgc2FtcGxlVG9wRnJhbWVVUkwsIG5ld2VyVGltZXN0YW1wLCB0cnVlLCBtb3N0UmVjZW50VUlU
b1RyaWdnZXJGaXJzdFBhcnR5SW50ZXJhY3Rpb25Db3VudCwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgMSwg
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSh1cmwpKQotICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkhvc3Qgb3Zlcndyb3RlIG9sZCBwcmV2YWxlbnQgcmVzb3VyY2UgdmFsdWUuIik7Ci0gICAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBub3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgLy8gc2V0IHVybDEg
YXMgcHJldmFsZW50IHNvIGl0IGlzIGluIHRoZSBzdGF0aXN0aWNzIHN0b3JlCisgICAgICAgIC8v
IHNldCB1cmwyIGhhdmluZyBVSSBzbyBpdCBpcyBpbiB0aGUgc3RhdGlzdGljcyBzdG9yZQorICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzYW1wbGVUb3BG
cmFtZVVSTDEsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHNhbXBsZVRvcEZyYW1lVVJMMiwgdHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
TWVyZ2VTdGF0aXN0aWModXJsLCBzYW1wbGVUb3BGcmFtZVVSTDEsIHNhbXBsZVRvcEZyYW1lVVJM
MiwgbmV3ZXJUaW1lc3RhbXAsIHRydWUsIG1vc3RSZWNlbnRVSVRvVHJpZ2dlckZpcnN0UGFydHlJ
bnRlcmFjdGlvbkNvdW50LCB0cnVlLCB0cnVlLCB0cnVlLCAxLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh1cmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IG92
ZXJ3cm90ZSBvbGQgcHJldmFsZW50IHJlc291cmNlIHZhbHVlLiIpOworICAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBu
b3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKIAotICAgICAgICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHVybCkpCi0gICAg
ICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBvdmVyd3JvdGUgb2xkIHZlcnkgcHJl
dmFsZW50IHJlc291cmNlIHZhbHVlLiIpOwotICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgbm90IHNldCBhcyB2ZXJ5IHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsKSkKLSAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJIb3N0IG92ZXJ3cm90ZSBvbGQgdXNlciBpbnRlcmFjdGlvbiB2YWx1ZS4iKTsKLSAg
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IG5vdCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7Ci0gICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NHcmFuZGZh
dGhlcmVkKHVybCkpCi0gICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBvdmVy
d3JvdGUgb2xkIGdyYW5kZmF0aGVyZWQgdmFsdWUuIik7Ci0gICAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBub3Qgc2V0IGFzIGdyYW5k
ZmF0aGVyZWQuIik7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHVybCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkhvc3Qgb3Zlcndyb3RlIG9sZCB2ZXJ5IHByZXZhbGVudCByZXNvdXJj
ZSB2YWx1ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgbm90IHNldCBhcyB2ZXJ5IHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmwpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJIb3N0IG92ZXJ3cm90ZSBvbGQgdXNlciBpbnRlcmFjdGlvbiB2YWx1ZS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3Qgbm90IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZCh1cmwpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IG92ZXJ3cm90ZSBvbGQgZ3JhbmRmYXRoZXJlZCB2YWx1ZS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3Qgbm90IHNldCBhcyBncmFuZGZhdGhlcmVkLiIpOwogCi0gICAgICAg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFt
ZVVuZGVyKHVybCwgc2FtcGxlVG9wRnJhbWVVUkwpKQotICAgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIkhvc3Qgc2V0IGFzIHN1YmZyYW1lIHVuZGVyIHRvcCBmcmFtZS4iKTsKLSAgICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IG5vdCBzZXQgYXMgc3ViZnJhbWUgdW5kZXIgdG9wIGZyYW1lLiIpOworICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIodXJsLCBzYW1wbGVUb3BGcmFtZVVSTDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJIb3N0IHNldCBhcyBzdWJmcmFtZSB1bmRlciB0b3AgZnJhbWUxLiIpOworICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBub3Qgc2V0IGFzIHN1YmZyYW1lIHVuZGVyIHRvcCBmcmFtZTEuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
U3ViRnJhbWVVbmRlcih1cmwsIHNhbXBsZVRvcEZyYW1lVVJMMikpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qgc2V0IGFzIHN1YmZyYW1lIHVuZGVyIHRvcCBmcmFt
ZTIuIik7CisgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IG5vdCBzZXQgYXMgc3ViZnJhbWUgdW5kZXIgdG9wIGZyYW1l
Mi4iKTsKIAotICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNl
dFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgIH0pOworICAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5l
clRlc3QoKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGlj
KHVybCwgIiIsIG9sZGVyVGltZXN0YW1wLCBmYWxzZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
MCwgZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdlU3Rh
dGlzdGljKHVybCwgIiIsICIiLCBvbGRlclRpbWVzdGFtcCwgZmFsc2UsIDAsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsKSkKICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3Rh
dGlzdGljLWRvZXMtcGFydGlhbGx5LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1kb2Vz
LXBhcnRpYWxseS1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbAppbmRleCA0NGQxNmQ2MGI4YjA5MjRl
MjVmNDEzOWMwZjg4ODJiNDAzMDJkMDcxLi5hYjNjNzJiNTY0YmYwNjM0NjIzY2VkMGQyYjI3NDE4
ZDgzYTM5YTE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtcGFydGlhbGx5LW92ZXJ3cml0ZS1kYXRh
YmFzZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1wYXJ0aWFsbHktb3ZlcndyaXRlLWRhdGFiYXNlLmh0
bWwKQEAgLTIxLDcgKzIxLDcgQEAKICAgICAgICAgLy8gc2V0IHRoaXMgcmVzb3VyY2UgYXMgcHJl
dmFsZW50IHNvIGl0IGlzIGluIHRoZSBzdGF0aXN0aWNzIHN0b3JlCiAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHNhbXBsZVRvcEZyYW1lVVJMLCB0cnVl
LCBmdW5jdGlvbigpIHsKICAgICAgICAgCi0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc01lcmdlU3RhdGlzdGljKHVybCwgc2FtcGxlVG9wRnJhbWVVUkwsIG5ld2VyVGltZXN0
YW1wLCBmYWxzZSwgbW9zdFJlY2VudFVJVG9UcmlnZ2VyRmlyc3RQYXJ0eUludGVyYWN0aW9uQ291
bnQsIHRydWUsIHRydWUsIHRydWUsIDEsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyh1cmwsIHNhbXBsZVRvcEZyYW1lVVJM
LCAiIiwgbmV3ZXJUaW1lc3RhbXAsIGZhbHNlLCBtb3N0UmVjZW50VUlUb1RyaWdnZXJGaXJzdFBh
cnR5SW50ZXJhY3Rpb25Db3VudCwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgMSwgZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh1cmwpKQogICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qgb3Zlcndy
b3RlIG9sZCBwcmV2YWxlbnQgcmVzb3VyY2UgdmFsdWUuIik7CiAgICAgICAgICAgICAgICAgICBl
bHNlCkBAIC01NSw3ICs1NSw3IEBACiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHJ1blRlc3RS
dW5uZXJUZXN0KCkgewotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNZXJnZVN0YXRp
c3RpYyh1cmwsICIiLCBvbGRlclRpbWVzdGFtcCwgZmFsc2UsIDAsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIDAsIGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNZXJn
ZVN0YXRpc3RpYyh1cmwsICIiLCAiIiwgb2xkZXJUaW1lc3RhbXAsIGZhbHNlLCAwLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybCkpCiAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380359</attachid>
            <date>2019-10-07 14:00:45 -0700</date>
            <delta_ts>2019-10-07 15:56:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202604-20191007140044.patch</filename>
            <type>text/plain</type>
            <size>109123</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgxMmUzNTZjN2Y5OWI5YjJk
ZTEwNGViYTY3ZDRhMDM5YWYzMDBhZTAuLjgyMWU4MTA5MWY2ZjI1NTY0MzVjOTUwMThlOGE3NDE5
N2ZhZGM0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMTktMTAtMDcgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9tYWluIHJlbGF0
aW9uc2hpcHMgaW4gdGhlIElUUCBEYXRhYmFzZSBzaG91bGQgYmUgaW5zZXJ0ZWQgaW4gYSBzaW5n
bGUgcXVlcnkgYW5kIGlnbm9yZSByZXBlYXQgaW5zZXJ0IGF0dGVtcHRzLiAoMjAyNjA0KQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNjA0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81NTk5NTgzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIHR3byBj
bGVhbi11cHMgZm9yIHRoZSBJVFAgU1FMaXRlIERhdGFiYXNlIFN0b3JlLgorICAgICAgICBGaXJz
dCwgYnkgdXNpbmcgSU5TRVJUIE9SIElHTk9SRSBhcyBvcHBvc2VkIHRvIElOU0VSVCwgaXQgZWxp
bWluYXRlcworICAgICAgICB0aGUgbmVlZCB0byBjaGVjayBpZiBhIHJlbGF0aW9uc2hpcCBhbHJl
YWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UKKyAgICAgICAgYmVmb3JlIGluc2VydGluZyBpdC4g
U2Vjb25kLCBpbnN0ZWFkIG9mIGxvb3BpbmcgdGhyb3VnaCBkb21haW4gbGlzdHMKKyAgICAgICAg
YW5kIGluc2VydGluZyBlYWNoIHJlbGF0aW9uc2hpcCBhcyBhIHNlcGFyYXRlIHF1ZXJ5LCB0aGlz
IHBhdGNoIG5vdworICAgICAgICBjb252ZXJ0cyBsaXN0cyB0byBhIHN0cmluZyB3aGljaCBTUUxp
dGUgY2FuIHVzZSB0byBpbnNlcnQgbXVsdGlwbGUKKyAgICAgICAgcm93cyBpbnRvIGEgZGF0YWJh
c2UgdXNpbmcgYSBzaW5nbGUgcXVlcnkuCisKKyAgICAgICAgU29tZSBFeGlzdHMgcXVlcmllcyBj
b3VsZCBub3QgYmUgZGVsZXRlZCBiZWNhdXNlIHRoZXkgd2VyZSBiZWluZworICAgICAgICB1c2Vk
IGZvciB0ZXN0aW5nLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyk6CisgICAgICAgIFJlbW92ZWQgb2xkIGlu
c2VydCBxdWVyaWVzIGFuZCByZXBsYWNlZCB0aGVtIHdpdGggcXVlcmllcyBhYmxlIHRvCisgICAg
ICAgIGluc2VydCBzdHJpbmctbGlzdHMgb2YgZG9tYWlucyBpbiBhIHNpbmdsZSBxdWVyeS4gQWxz
byByZW9yZ2FuaXplZAorICAgICAgICB0aGUgcXVlcmllcyBieSBmdW5jdGlvbmFsaXR5IHRvIG1h
a2UgdGhlbSBlYXNpZXIgdG8gZmluZCBhbmQgZWRpdC4KKworICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVh
dGVTY2hlbWEpOgorICAgICAgICBJbiBvcmRlciB0byBwcm9wZXJseSB0YWtlIGFkdmFudGFnZSBv
ZiB0aGUgSU5TRVJUIE9SIElHTk9SRQorICAgICAgICBmdW5jdGlvbmFsaXR5LCB1bmlxdWUgaW5k
aWNlcyBtdXN0IGJlIGVzdGFibGlzaGVkIHNvIHRoZSBTUUxpdGUgdGFibGUKKyAgICAgICAgaXMg
YXdhcmUgb2Ygd2hhdCBwYXR0ZXJucyB0byBsb29rIGZvciB3aGVuIGlnbm9yaW5nIGEgbmV3IGlu
c2VydC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6ZW5zdXJlQW5kbWFrZURvbWFpbkxpc3QpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlz
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjppbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKToKKyAgICAgICAgTG9vcGluZyB0aHJvdWdoIHRo
ZSBkb21haW4gbGlzdCBpcyBubyBsb25nZXIgbmVlZGVkIHdpdGggdGhlIG5ldyBxdWVyeQorICAg
ICAgICBjaGFuZ2VzLiBBZGRpdGlvbmFsbHksIGVuc3VyaW5nIGEgZG9tYWluIGlzIGluIHRoZSBP
YnNlcnZlZCBEb21haW5zCisgICAgICAgIHRhYmxlIG9mIHRoZSBkYXRhYmFzZSBtdXN0IGJlIGRv
bmUgYmVmb3JlIHV0aWxpemluZyBhbnkgaW5zZXJ0aW5nIG9mIAorICAgICAgICByZWxhdGlvbnNo
aXBzIGJlY2F1c2UgdGhlIHJlbGF0aW9uc2hpcCBxdWVyaWVzIHJlbHkgb24gZmV0Y2hpbmcgdGhl
CisgICAgICAgIHRvcEZyYW1lIGRvbWFpbklEIGZyb20gdGhlIE9ic2VydmVkRG9tYWlucyB0YWJs
ZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dDcm9zc1NpdGVMb2Fk
V2l0aExpbmtEZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbik6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4pOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRv
KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKToKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RUbyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSk6CisgICAgICAgIFdpdGggdGhlIGVu
c3VyZSBjaGVjayBiZWluZyBkb25lIG9uY2UgaW4gdGhlIGVuc3VyZUFuZG1ha2VEb21haW5MaXN0
CisgICAgICAgIGZ1bmN0aW9uLCB0aGVzZSBmdW5jdGlvbnMgbm8gbG9uZ2VyIGhhdmUgdG8gbWFr
ZSB0aGF0IGNoZWNrIGJlZm9yZQorICAgICAgICBpbnNlcnRpbmcuCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5o
OgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRh
YmFzZU9uY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgIENoYW5nZXMgaW4gV2VSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUgd2VyZSBmb3IgdGVzdGluZyBvbmx5LiBUaGlzCisgICAgICAgIHBh
dGNoIHVwZGF0ZWQgdGhlIG1lcmdlIHN0YXRpc3RpYyB0ZXN0aW5nIHRvIGFsc28gdGVzdCB0aGlz
IGNoYW5nZSBieQorICAgICAgICBoYXZpbmcgYSB0b3BGcmFtZURvbWFpbiBsaXN0IHdpdGggbW9y
ZSB0aGFuIG9uZSBkb21haW4uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptZXJnZVN0YXRpc3Rp
Y0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNSZWxhdGlv
bnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0
aXN0aWMpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0
YWJhc2VPbmNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om1lcmdlU3RhdGlzdGlj
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVs
YXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjppc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgQWRkZWQgYSBu
ZXcgZnVuY3Rpb24gZm9yIHRlc3RpbmcgdGhhdCB0aGVyZSBhcmUgbm8gcmVwZWF0IGluc2VydHMK
KyAgICAgICAgaW50byB0aGUgZGF0YWJhc2UuIFVwZGF0ZWQgbWVyZ2VTdGF0aXN0aWNzIHRvIHRl
c3QgdGhlIGxpc3QtaW5zZXJ0CisgICAgICAgIGZ1bmN0aW9uYWxpdHkuCisKIDIwMTktMTAtMDQg
IEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBkZXRlcm1p
bmF0aW9uIG9mIHRoZSB0b3AtbGV2ZWwgcmVzb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDg4ZmRiN2U2ZDJjNjRk
MmNkOTNkODUzNzFkZjZhMWQxYzAxNzJlY2UuLjU1YzNkZmJlZmVhNzE5OTkyNWE0MGVjOWQ3Mjky
ODViYmFkYTQ0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtNjIsNTcgKzYyLDU2IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwg
Zm10LCAuLi4pICAoKHZvaWQpMCkKICNlbmRpZgogCisvLyBDT1VOVCBRdWVyaWVzCiBjb25zdGV4
cHIgYXV0byBvYnNlcnZlZERvbWFpbkNvdW50UXVlcnkgPSAiU0VMRUNUIENPVU5UKCopIEZST00g
T2JzZXJ2ZWREb21haW5zIl9zOworY29uc3RleHByIGF1dG8gY291bnRTdWJmcmFtZVVuZGVyVG9w
RnJhbWVRdWVyeSA9ICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBTdWJmcmFtZVVuZGVyVG9wRnJhbWVE
b21haW5zIFdIRVJFIHN1YkZyYW1lRG9tYWluSUQgPSA/IEFORCB0b3BGcmFtZURvbWFpbklEID0g
PzsiX3M7Citjb25zdGV4cHIgYXV0byBjb3VudFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZVF1ZXJ5
ID0gIlNFTEVDVCBDT1VOVCgqKSBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMg
V0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8gQU5EIHRvcEZyYW1lRG9tYWluSUQgPSA/OyJf
czsKK2NvbnN0ZXhwciBhdXRvIGNvdW50U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5
ID0gIlNFTEVDVCBDT1VOVCgqKSBGUk9NIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8gV0hF
UkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8gQU5EIHRvRG9tYWluSUQgPSA/OyJfczsKKworLy8g
SU5TRVJUIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIGluc2VydE9ic2VydmVkRG9tYWluUXVlcnkg
PSAiSU5TRVJUIElOVE8gT2JzZXJ2ZWREb21haW5zIChyZWdpc3RyYWJsZURvbWFpbiwgbGFzdFNl
ZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwiCiAgICAgIm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25U
aW1lLCBncmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVj
b3Jkc1JlbW92ZWQsIHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlv
biwiCiAgICAgInRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkp
IFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPywgPywgPykiX3M7CiBjb25zdGV4cHIgYXV0
byBpbnNlcnRUb3BMZXZlbERvbWFpblF1ZXJ5ID0gIklOU0VSVCBJTlRPIFRvcExldmVsRG9tYWlu
cyBWQUxVRVMgKD8pIl9zOwotY29uc3RleHByIGF1dG8gZG9tYWluSURGcm9tU3RyaW5nUXVlcnkg
PSAiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxl
RG9tYWluID0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIHN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1l
RG9tYWluc1F1ZXJ5ID0gIklOU0VSVCBJTlRPIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9t
YWlucyAoZG9tYWluSUQsIHRvcExldmVsRG9tYWluSUQpICIKLSAgICAiU0VMRUNUID8sIGRvbWFp
bklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID09ID8iX3M7
Ci1jb25zdGV4cHIgYXV0byBzdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNFeGlzdHNR
dWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIFN0b3JhZ2VBY2Nlc3NVbmRlclRv
cEZyYW1lRG9tYWlucyBXSEVSRSBkb21haW5JRCA9ID8gIgotIkFORCB0b3BMZXZlbERvbWFpbklE
ID0gKFNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJs
ZURvbWFpbiA9ID8pKSJfczsKLWNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
VG9RdWVyeSA9ICJJTlNFUlQgSU5UTyBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIChzb3VyY2VE
b21haW5JRCwgdG9Eb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21h
aW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID09ID8iX3M7Ci1jb25zdGV4cHIgYXV0byB0b3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNU
IDEgRlJPTSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIFdIRVJFIHNvdXJjZURvbWFpbklEID0g
PyAiCi0gICAgIkFORCB0b0RvbWFpbklEID0gKFNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVk
RG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8pKSJfczsKLWNvbnN0ZXhwciBhdXRv
IHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5ID0gIklOU0VSVCBJTlRPIFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzRnJvbSAodGFyZ2V0RG9tYWluSUQsIGZyb21Eb21haW5JRCkgIgotICAg
ICJTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFi
bGVEb21haW4gPSA/Il9zOwotY29uc3RleHByIGF1dG8gdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNG
cm9tRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c0Zyb20gV0hFUkUgdGFyZ2V0RG9tYWluSUQgPSA/ICIKLSAgICAiQU5EIGZy
b21Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUg
cmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7Ci1jb25zdGV4cHIgYXV0byB0b3BGcmFtZUxpbmtE
ZWNvcmF0aW9uc0Zyb21RdWVyeSA9ICJJTlNFUlQgSU5UTyBUb3BGcmFtZUxpbmtEZWNvcmF0aW9u
c0Zyb20gKGZyb21Eb21haW5JRCwgdG9Eb21haW5JRCkgIgotICAgICJTRUxFQ1QgPywgZG9tYWlu
SUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwot
Y29uc3RleHByIGF1dG8gdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzUXVlcnkgPSAi
U0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20g
V0hFUkUgZnJvbURvbWFpbklEID0gPyAiCi0gICAgIkFORCB0b0RvbWFpbklEID0gKFNFTEVDVCBk
b21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8p
KSJfczsKLWNvbnN0ZXhwciBhdXRvIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSA9
ICJJTlNFUlQgSU5UTyBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIChzdWJGcmFtZURvbWFp
bklELCB0b3BGcmFtZURvbWFpbklEKSAiCi0gICAgIlNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9i
c2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7Citjb25zdGV4cHIg
YXV0byBzdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSA9ICJJTlNFUlQgT1Ig
SUdOT1JFIElOVE8gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIChkb21haW5JRCwg
dG9wTGV2ZWxEb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5z
IFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9zOworY29uc3RleHByIGF1dG8gdG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgaW50byBUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c1RvIChzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCkgU0VMRUNUID8s
IGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIHdoZXJlIHJlZ2lzdHJhYmxlRG9tYWluIGlu
ICggIl9zOworY29uc3RleHByIGF1dG8gc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5
ID0gIklOU0VSVCBPUiBJR05PUkUgaW50byBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIChz
dWJGcmFtZURvbWFpbklELCB0b3BGcmFtZURvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJP
TSBPYnNlcnZlZERvbWFpbnMgd2hlcmUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25z
dGV4cHIgYXV0byB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSA9ICJJTlNFUlQgT1Ig
SUdOT1JFIElOVE8gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tICh0YXJnZXREb21haW5JRCwg
ZnJvbURvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0byB0b3BGcmFtZUxp
bmtEZWNvcmF0aW9uc0Zyb21RdWVyeSA9ICJJTlNFUlQgT1IgSUdOT1JFIElOVE8gVG9wRnJhbWVM
aW5rRGVjb3JhdGlvbnNGcm9tIChmcm9tRG9tYWluSUQsIHRvRG9tYWluSUQpIFNFTEVDVCA/LCBk
b21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBpbiAo
ICJfczsKK2NvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVy
eSA9ICJJTlNFUlQgT1IgSUdOT1JFIElOVE8gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlu
cyAoc3VicmVzb3VyY2VEb21haW5JRCwgdG9wRnJhbWVEb21haW5JRCkgU0VMRUNUID8sIGRvbWFp
bklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9z
OworY29uc3RleHByIGF1dG8gc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5ID0gIklO
U0VSVCBPUiBJR05PUkUgSU5UTyBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIChzdWJyZXNv
dXJjZURvbWFpbklELCB0b0RvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZl
ZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0
byBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSA9ICJJTlNFUlQgT1IgSUdOT1JF
IElOVE8gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIChzdWJyZXNvdXJjZURvbWFpbklE
LCBmcm9tRG9tYWluSUQpIFNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBX
SEVSRSByZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKKworLy8gRVhJU1RTIFF1ZXJpZXMKIGNv
bnN0ZXhwciBhdXRvIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0c1F1ZXJ5ID0gIlNF
TEVDVCBFWElTVFMgKFNFTEVDVCAxIEZST00gU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucyBX
SEVSRSBzdWJGcmFtZURvbWFpbklEID0gPyAiCiAgICAgIkFORCB0b3BGcmFtZURvbWFpbklEID0g
KFNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURv
bWFpbiA9ID8pKSJfczsKLWNvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbnNRdWVyeSA9ICJJTlNFUlQgSU5UTyBTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
IChzdWJyZXNvdXJjZURvbWFpbklELCB0b3BGcmFtZURvbWFpbklEKSAiCi0gICAgIlNFTEVDVCA/
LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9
ID8iX3M7CiBjb25zdGV4cHIgYXV0byBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5FeGlz
dHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIFN1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbnMgIgogICAgICJXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gPyBBTkQg
dG9wRnJhbWVEb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMg
V0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7Ci1jb25zdGV4cHIgYXV0byBzdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnkgPSAiSU5TRVJUIElOVE8gU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUbyAoc3VicmVzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCkgIgotICAgICJT
RUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVE
b21haW4gPT0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
VG9FeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG8gV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8gIgogICAgICJB
TkQgdG9Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7Ci1jb25zdGV4cHIgYXV0byBzdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSA9ICJJTlNFUlQgSU5UTyBTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c0Zyb20gKHN1YnJlc291cmNlRG9tYWluSUQsIGZyb21Eb21haW5JRCkgIgotICAg
ICJTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFi
bGVEb21haW4gPT0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzRnJvbUV4aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElTVFMgKFNFTEVDVCAxIEZST00gU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgPSA/ICIK
LSAgICAiQU5EIGZyb21Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERv
bWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7Citjb25zdGV4cHIgYXV0byB0
b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChT
RUxFQ1QgMSBGUk9NIFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSBXSEVSRSBmcm9tRG9tYWlu
SUQgPSA/ICIKKyJBTkQgdG9Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZl
ZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7CisKKy8vIFVQREFURSBR
dWVyaWVzCiBjb25zdGV4cHIgYXV0byBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uUXVlcnkgPSAi
VVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaGFkVXNlckludGVyYWN0aW9uID0gPywgbW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSA/ICIKICAgICAiV0hFUkUgcmVnaXN0cmFibGVEb21h
aW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRlTGFzdFNlZW5RdWVyeSA9ICJVUERBVEUg
T2JzZXJ2ZWREb21haW5zIFNFVCBsYXN0U2VlbiA9ID8gV0hFUkUgcmVnaXN0cmFibGVEb21haW4g
PSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRlRGF0YVJlY29yZHNSZW1vdmVkUXVlcnkgPSAi
VVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgZGF0YVJlY29yZHNSZW1vdmVkID0gPyBXSEVSRSBy
ZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7CiBjb25zdGV4cHIgYXV0byB1cGRhdGVQcmV2YWxlbnRS
ZXNvdXJjZVF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGlzUHJldmFsZW50ID0g
PyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBpc1ByZXZh
bGVudFJlc291cmNlUXVlcnkgPSAiU0VMRUNUIGlzUHJldmFsZW50IEZST00gT2JzZXJ2ZWREb21h
aW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIHVwZGF0
ZVZlcnlQcmV2YWxlbnRSZXNvdXJjZVF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VU
IGlzVmVyeVByZXZhbGVudCA9ID8gV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwotY29u
c3RleHByIGF1dG8gaXNWZXJ5UHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJTRUxFQ1QgaXNWZXJ5
UHJldmFsZW50IEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0g
PyJfczsKIGNvbnN0ZXhwciBhdXRvIGNsZWFyUHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJVUERB
VEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1ByZXZhbGVudCA9IDAsIGlzVmVyeVByZXZhbGVudCA9
IDAgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwotY29uc3RleHByIGF1dG8gaGFkVXNl
ckludGVyYWN0aW9uUXVlcnkgPSAiU0VMRUNUIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWUgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFi
bGVEb21haW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRlR3JhbmRmYXRoZXJlZFF1ZXJ5
ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGdyYW5kZmF0aGVyZWQgPSA/IFdIRVJFIHJl
Z2lzdHJhYmxlRG9tYWluID0gPyJfczsKKworCisvLyBTRUxFQ1QgUXVlcmllcworY29uc3RleHBy
IGF1dG8gZG9tYWluSURGcm9tU3RyaW5nUXVlcnkgPSAiU0VMRUNUIGRvbWFpbklEIEZST00gT2Jz
ZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKK2NvbnN0ZXhwciBh
dXRvIGlzUHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJTRUxFQ1QgaXNQcmV2YWxlbnQgRlJPTSBP
YnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOworY29uc3RleHBy
IGF1dG8gaXNWZXJ5UHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJTRUxFQ1QgaXNWZXJ5UHJldmFs
ZW50IEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsK
K2NvbnN0ZXhwciBhdXRvIGhhZFVzZXJJbnRlcmFjdGlvblF1ZXJ5ID0gIlNFTEVDVCBoYWRVc2Vy
SW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lIEZST00gT2JzZXJ2ZWRE
b21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIGlz
R3JhbmRmYXRoZXJlZFF1ZXJ5ID0gIlNFTEVDVCBncmFuZGZhdGhlcmVkIEZST00gT2JzZXJ2ZWRE
b21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIGZp
bmRFeHBpcmVkVXNlckludGVyYWN0aW9uUXVlcnkgPSAiU0VMRUNUIGRvbWFpbklEIEZST00gT2Jz
ZXJ2ZWREb21haW5zIFdIRVJFIGhhZFVzZXJJbnRlcmFjdGlvbiA9IDEgQU5EIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb25UaW1lIDwgPyJfczsKIAorLy8gQ1JFQVRFIFRBQkxFIFF1ZXJpZXMKIGNv
bnN0ZXhwciBhdXRvIGNyZWF0ZU9ic2VydmVkRG9tYWluID0gIkNSRUFURSBUQUJMRSBPYnNlcnZl
ZERvbWFpbnMgKCIKICAgICAiZG9tYWluSUQgSU5URUdFUiBQUklNQVJZIEtFWSwgcmVnaXN0cmFi
bGVEb21haW4gVEVYVCBOT1QgTlVMTCBVTklRVUUgT04gQ09ORkxJQ1QgRkFJTCwgbGFzdFNlZW4g
UkVBTCBOT1QgTlVMTCwgIgogICAgICJoYWRVc2VySW50ZXJhY3Rpb24gSU5URUdFUiBOT1QgTlVM
TCwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgUkVBTCBOT1QgTlVMTCwgZ3JhbmRmYXRo
ZXJlZCBJTlRFR0VSIE5PVCBOVUxMLCAiCkBAIC0xNzYsNiArMTc1LDE3IEBAIGNvbnN0ZXhwciBh
dXRvIGNyZWF0ZVN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSA9ICJDUkVBVEUgVEFCTEUg
U3VicmVzb3VyY2VVCiAgICAgInN1YnJlc291cmNlRG9tYWluSUQgSU5URUdFUiBOT1QgTlVMTCwg
ZnJvbURvbWFpbklEIElOVEVHRVIgTk9UIE5VTEwsICIKICAgICAiRk9SRUlHTiBLRVkoc3VicmVz
b3VyY2VEb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERF
TEVURSBDQVNDQURFLCAiCiAgICAgIkZPUkVJR04gS0VZKGZyb21Eb21haW5JRCkgUkVGRVJFTkNF
UyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFKTsiX3M7CisKKy8v
IENSRUFURSBVTklRVUUgSU5ERVggUXVlcmllcworY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVl
SW5kZXhTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgPSAiQ1JFQVRFIFVOSVFVRSBJ
TkRFWCBJRiBOT1QgRVhJU1RTIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc19kb21h
aW5JRF90b3BMZXZlbERvbWFpbklEIG9uIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlu
cyAoIGRvbWFpbklELCB0b3BMZXZlbERvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1dG8gY3Jl
YXRlVW5pcXVlSW5kZXhUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvID0gIkNSRUFURSBVTklRVUUg
SU5ERVggSUYgTk9UIEVYSVNUUyBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvX3NvdXJjZURvbWFp
bklEX3RvRG9tYWluSUQgb24gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbyAoIHNvdXJjZURvbWFp
bklELCB0b0RvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1Qg
RVhJU1RTIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbV90YXJnZXREb21haW5JRF9mcm9tRG9t
YWluSUQgb24gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tICggdGFyZ2V0RG9tYWluSUQsIGZy
b21Eb21haW5JRCApOyJfczsKK2NvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4VG9wRnJh
bWVMaW5rRGVjb3JhdGlvbnNGcm9tID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNU
UyBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21fZnJvbURvbWFpbklEX3RvRG9tYWluSUQgb24g
VG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tICggZnJvbURvbWFpbklELCB0b0RvbWFpbklEICk7
Il9zOworY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhTdWJmcmFtZVVuZGVyVG9wRnJh
bWVEb21haW5zID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW5zX3N1YkZyYW1lRG9tYWluSURfdG9wRnJhbWVEb21haW5JRCBvbiBT
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zICggc3ViRnJhbWVEb21haW5JRCwgdG9wRnJhbWVE
b21haW5JRCApOyJfczsKK2NvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4U3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lRG9tYWlucyA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElT
VFMgU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc19zdWJyZXNvdXJjZURvbWFpbklEX3Rv
cEZyYW1lRG9tYWluSUQgb24gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyAoIHN1YnJl
c291cmNlRG9tYWluSUQsIHRvcEZyYW1lRG9tYWluSUQgKTsiX3M7Citjb25zdGV4cHIgYXV0byBj
cmVhdGVVbmlxdWVJbmRleFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8gPSAiQ1JFQVRFIFVO
SVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9fc3Vi
cmVzb3VyY2VEb21haW5JRF90b0RvbWFpbklEIG9uIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
VG8gKCBzdWJyZXNvdXJjZURvbWFpbklELCB0b0RvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1
dG8gY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gPSAiQ1JF
QVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbV9zdWJyZXNvdXJjZURvbWFpbklEX2Zyb21Eb21haW5JRCBvbiBTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW5zICggc3VicmVzb3VyY2VEb21haW5JRCwgZnJvbURvbWFpbklEICk7Il9z
OworCiAgICAgCiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
JiBzdG9yZSwgV29ya1F1ZXVlJiB3b3JrUXVldWUsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3Qgc2hv
dWxkSW5jbHVkZUxvY2FsaG9zdCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5UGF0aCwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlKHN0b3JlLCB3b3JrUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhvc3QpCkBAIC0xODQsMjIg
KzE5NCwxMCBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogICAgICwgbV9pbnNlcnRPYnNlcnZl
ZERvbWFpblN0YXRlbWVudChtX2RhdGFiYXNlLCBpbnNlcnRPYnNlcnZlZERvbWFpblF1ZXJ5KQog
ICAgICwgbV9pbnNlcnRUb3BMZXZlbERvbWFpblN0YXRlbWVudChtX2RhdGFiYXNlLCBpbnNlcnRU
b3BMZXZlbERvbWFpblF1ZXJ5KQogICAgICwgbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQo
bV9kYXRhYmFzZSwgZG9tYWluSURGcm9tU3RyaW5nUXVlcnkpCi0gICAgLCBtX3N0b3JhZ2VBY2Nl
c3NVbmRlclRvcEZyYW1lRG9tYWluc1N0YXRlbWVudChtX2RhdGFiYXNlLCBzdG9yYWdlQWNjZXNz
VW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSkKLSAgICAsIG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9w
RnJhbWVEb21haW5zRXhpc3RzU3RhdGVtZW50KG1fZGF0YWJhc2UsIHN0b3JhZ2VBY2Nlc3NVbmRl
clRvcEZyYW1lRG9tYWluc0V4aXN0c1F1ZXJ5KQotICAgICwgbV90b3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c1RvKG1fZGF0YWJhc2UsIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSkKLSAgICAs
IG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb0V4aXN0cyhtX2RhdGFiYXNlLCB0b3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvRXhpc3RzUXVlcnkpCi0gICAgLCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RzRnJvbShtX2RhdGFiYXNlLCB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSkKLSAg
ICAsIG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3RzKG1fZGF0YWJhc2UsIHRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0c1F1ZXJ5KQotICAgICwgbV90b3BGcmFtZUxpbmtE
ZWNvcmF0aW9uc0Zyb20obV9kYXRhYmFzZSwgdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tUXVl
cnkpCiAgICAgLCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbUV4aXN0cyhtX2RhdGFiYXNl
LCB0b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHNRdWVyeSkKLSAgICAsIG1fc3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWlucyhtX2RhdGFiYXNlLCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVE
b21haW5zUXVlcnkpCiAgICAgLCBtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0cyht
X2RhdGFiYXNlLCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5FeGlzdHNRdWVyeSkKLSAgICAs
IG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyhtX2RhdGFiYXNlLCBzdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVEb21haW5zUXVlcnkpCiAgICAgLCBtX3N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZURvbWFpbkV4aXN0cyhtX2RhdGFiYXNlLCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21h
aW5FeGlzdHNRdWVyeSkKLSAgICAsIG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyhtX2Rh
dGFiYXNlLCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnkpCiAgICAgLCBtX3N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMobV9kYXRhYmFzZSwgc3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUb0V4aXN0c1F1ZXJ5KQotICAgICwgbV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0c0Zyb20obV9kYXRhYmFzZSwgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnkp
Ci0gICAgLCBtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0cyhtX2RhdGFiYXNl
LCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHNRdWVyeSkKICAgICAsIG1fbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudChtX2RhdGFiYXNlLCBtb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uUXVlcnkpCiAgICAgLCBtX3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50KG1fZGF0
YWJhc2UsIHVwZGF0ZUxhc3RTZWVuUXVlcnkpCiAgICAgLCBtX3VwZGF0ZURhdGFSZWNvcmRzUmVt
b3ZlZFN0YXRlbWVudChtX2RhdGFiYXNlLCB1cGRhdGVEYXRhUmVjb3Jkc1JlbW92ZWRRdWVyeSkK
QEAgLTI2Miw2ICsyNjAsMjIgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aXNFbXB0eSgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcygpCit7
CisgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4U3Rv
cmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5l
eGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8p
CisgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVj
dXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSkK
KyAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhT
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVj
dXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFp
bnMpCisgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUlu
ZGV4U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbykKKyAgICAgICAgfHwgIW1fZGF0YWJhc2Uu
ZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVE
b21haW5zKSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcyBmYWls
ZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCiBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpjcmVhdGVTY2hlbWEoKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAt
MzE1LDYgKzMyOSw5IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNyZWF0ZVNjaGVtYSgpCiAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNyZWF0ZSBTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gdGFibGUgaW4gZGF0YWJhc2UgKCVpKSAtICVzIiwg
bV9kYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CisgICAgCisgICAgaWYgKCFjcmVhdGVVbmlxdWVJbmRp
Y2VzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
MzI3LDIwICszNDQsOSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpwcmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAgIHx8IG1faW5zZXJ0T2JzZXJ2ZWREb21haW5T
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2luc2VydFRvcExl
dmVsRG9tYWluU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9k
b21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAg
ICB8fCBtX3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1N0YXRlbWVudC5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVE
b21haW5zRXhpc3RzU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwg
bV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAg
ICAgfHwgbV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0sKLSAgICAgICAgfHwgbV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20ucHJlcGFyZSgp
ICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4
aXN0cy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1fc3ViZnJhbWVVbmRlclRv
cEZyYW1lRG9tYWlucy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fc3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAg
ICAgfHwgbV9zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zLnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0sKICAgICAgICAgfHwgbV9zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5FeGlzdHMu
cHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX3N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG8ucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICB8
fCBtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
Ci0gICAgICAgIHx8IG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3RzLnByZXBh
cmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV91cGRhdGVMYXN0U2VlblN0YXRlbWVudC5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fdXBkYXRlRGF0YVJlY29yZHNSZW1v
dmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9tb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKQEAgLTM1
Myw3ICszNTksNiBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpw
cmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAgIHx8IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRl
bWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1faXNHcmFuZGZhdGhlcmVk
U3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9maW5kRXhwaXJl
ZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAg
IHx8IG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgbV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHMucHJlcGFyZSgp
ICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMg
ZmFpbGVkIHRvIHByZXBhcmUsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC00NjUsNiArNDcwLDM3IEBAIE9wdGlvbmFsPHVuc2lnbmVkPiBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQoY29uc3QgUmVnaXN0cmFiCiAgICAgcmV0dXJuIGRv
bWFpbklEOwogfQogCitTdHJpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmVuc3VyZUFuZE1ha2VEb21haW5MaXN0KGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
JiBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKQoreworICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKKyAgICAKKyAgICBmb3IgKGF1dG8mIHRvcEZyYW1lUmVzb3VyY2UgOiBzdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW5zKSB7CisgICAgICAgIAorICAgICAgICAvLyBJbnNlcnQgcXVlcnkg
d2lsbCBmYWlsIGlmIHRvcCBmcmFtZSBkb21haW4gaXMgbm90IGFscmVhZHkgaW4gdGhlIGRhdGFi
YXNlCisgICAgICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWlu
KHRvcEZyYW1lUmVzb3VyY2UpOworICAgICAgICAKKyAgICAgICAgaWYgKCFidWlsZGVyLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyInKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQodG9wRnJhbWVSZXNv
dXJjZS5zdHJpbmcoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCciJyk7CisgICAgfQorCisg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwordm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChjb25zdCBT
dHJpbmcmIHN0YXRlbWVudCwgY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mIHN1YmZy
YW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHVuc2lnbmVkIGRvbWFpbklEKQoreworICAgIFNRTGl0
ZVN0YXRlbWVudCBpbnNlcnRSZWxhdGlvbnNoaXBTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0
cmluZyhzdGF0ZW1lbnQsIGVuc3VyZUFuZE1ha2VEb21haW5MaXN0KHN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbnMpLCAiICk7IikpOworICAgIAorICAgIGlmIChpbnNlcnRSZWxhdGlvbnNoaXBT
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBpbnNlcnRSZWxhdGlv
bnNoaXBTdGF0ZW1lbnQuYmluZEludCgxLCBkb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAg
IHx8IGluc2VydFJlbGF0aW9uc2hpcFN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsK
KyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9u
c2hpcExpc3QgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9Cit9CisKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgbG9hZFN0
YXRpc3RpY3MpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC00NzIsNDEg
KzUwOCwxNCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNl
cnREb21haW5SZWxhdGlvbnNoaXBzKGNvbnN0IFJlc291cgogICAgIAogICAgIGlmICghcmVnaXN0
cmFibGVEb21haW5JRCkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGZvciAoYXV0byYgdG9w
RnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURv
bWFpbnMpIHsKLSAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdG9yYWdlQWNjZXNz
VW5kZXJUb3BGcmFtZURvbWFpbnNFeGlzdHNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9tYWluSUQu
dmFsdWUoKSwgdG9wRnJhbWVEb21haW4pKQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwKG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3RhdGVtZW50LCByZWdp
c3RyYWJsZURvbWFpbklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKTsKLSAgICB9CiAKLSAgICBm
b3IgKGF1dG8mIHRvRG9tYWluIDogbG9hZFN0YXRpc3RpY3MudG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNUbykgewotICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3RvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzVG9FeGlzdHMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9Eb21haW4p
KQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b0RvbWFpbik7Ci0gICAg
fQotICAgIAotICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkgewotICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0
cyhtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0cywgcmVnaXN0cmFibGVEb21haW5J
RC52YWx1ZSgpLCBmcm9tRG9tYWluKSkKLSAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9u
c2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSwgcmVnaXN0cmFibGVEb21haW5JRC52
YWx1ZSgpLCBmcm9tRG9tYWluKTsKLSAgICB9Ci0gICAgCi0gICAgZm9yIChhdXRvJiB0b3BGcmFt
ZURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMpIHsK
LSAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVE
b21haW5FeGlzdHMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4p
KQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3ViZnJhbWVVbmRlclRv
cEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFp
bik7Ci0gICAgfQotICAgIAotICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4gOiBsb2FkU3Rh
dGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zKSB7Ci0gICAgICAgIGlmICgh
cmVsYXRpb25zaGlwRXhpc3RzKG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluRXhpc3Rz
LCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKSkKLSAgICAgICAg
ICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwotICAg
IH0KLSAgICAKLSAgICBmb3IgKGF1dG8mIHRvRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNUbykgewotICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0
cyhtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMsIHJlZ2lzdHJhYmxlRG9tYWlu
SUQudmFsdWUoKSwgdG9Eb21haW4pKQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5JRC52
YWx1ZSgpLCB0b0RvbWFpbik7Ci0gICAgfQotICAgIAotICAgIGZvciAoYXV0byYgZnJvbURvbWFp
biA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSkgewotICAg
ICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbUV4aXN0cywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCBmcm9tRG9tYWluKSkKLSAg
ICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzRnJvbSwgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCBmcm9tRG9tYWluKTsKLSAg
ICB9CisgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChzdG9yYWdlQWNjZXNzVW5kZXJU
b3BGcmFtZURvbWFpbnNRdWVyeSwgbG9hZFN0YXRpc3RpY3Muc3RvcmFnZUFjY2Vzc1VuZGVyVG9w
RnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCkpOworICAgIGluc2VydERv
bWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5LCBsb2Fk
U3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklE
LnZhbHVlKCkpOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tUXVlcnksIGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RzRnJvbSwgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpKTsKKyAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXBMaXN0KHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSwgbG9hZFN0
YXRpc3RpY3Muc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5J
RC52YWx1ZSgpKTsKKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1YnJlc291cmNl
VW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSwgbG9hZFN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpKTsKKyAgICBpbnNl
cnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9RdWVy
eSwgbG9hZFN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVnaXN0cmFi
bGVEb21haW5JRC52YWx1ZSgpKTsKKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5LCBsb2FkU3RhdGlzdGljcy5zdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSk7CiB9
CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJv
bU1lbW9yeVN0b3JlKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZSYgbWVt
b3J5U3RvcmUpCkBAIC05MTcsNyArOTI2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3UKICAg
ICAgICAgYXV0byBzdWJGcmFtZVN0YXR1cyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJl
Z2lzdHJhYmxlRG9tYWluKHN1YkZyYW1lRG9tYWluKTsKICAgICAgICAgQVNTRVJUKHN1YkZyYW1l
U3RhdHVzLmZpcnN0ID09IEFkZGVkUmVjb3JkOjpObyk7CiAgICAgICAgIEFTU0VSVChoYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3ViRnJhbWVEb21haW4sIE9wZXJhdGluZ0RhdGVzV2luZG93OjpMb25n
KSk7Ci0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N0b3JhZ2VBY2Nlc3NVbmRl
clRvcEZyYW1lRG9tYWluc1N0YXRlbWVudCwgc3ViRnJhbWVTdGF0dXMuc2Vjb25kLCB0b3BGcmFt
ZURvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3RvcmFnZUFj
Y2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
KHsgdG9wRnJhbWVEb21haW4gfSksIHN1YkZyYW1lU3RhdHVzLnNlY29uZCk7CiAgICAgfQogCiAg
ICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdU
Rk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xMDAyLDQwICsxMDExLDIzIEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihj
b25zdCBSZWdpc3RyYWJsZURvCiAgICAgaWYgKCFpc01haW5GcmFtZSAmJiAhKGFyZVRhcmdldEFu
ZFRvcEZyYW1lRG9tYWluc1NhbWVTaXRlIHx8IGFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1l
U2l0ZSkpIHsKICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICB1cGRhdGVM
YXN0U2Vlbih0YXJnZXREb21haW4sIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFdhbGxUaW1lOjpub3coKSkpOwotICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7Ci0gICAgICAgIGlmICgh
cmVsYXRpb25zaGlwRXhpc3RzKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzLCB0
YXJnZXRSZXN1bHQuc2Vjb25kLCB0b3BGcmFtZURvbWFpbikpIHsKLSAgICAgICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHRhcmdl
dFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWluKTsKLSAgICAgICAgICAgIHN0YXRpc3RpY3NX
ZXJlVXBkYXRlZCA9IHRydWU7Ci0gICAgICAgIH0KKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwTGlzdChzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zUXVlcnksIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+KHsgdG9wRnJhbWVEb21haW4gfSksIHRhcmdldFJlc3VsdC5zZWNvbmQp
OworICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgIH0KIAogICAgIGlm
IChpc1JlZGlyZWN0ICYmICFhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpIHsKICAg
ICAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9t
YWluUmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
c291cmNlRG9tYWluKTsKICAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVz
b3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKLQotICAg
ICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikp
IHsKLSAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERv
bWFpbik7Ci0gICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJj
ZURvbWFpbikpIHsKLSAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURv
bWFpbik7Ci0gICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7
IHRhcmdldERvbWFpbiB9KSwgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kKTsKKyAgICAg
ICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNGcm9tUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgc291cmNlRG9tYWluIH0p
LCB0YXJnZXRSZXN1bHQuc2Vjb25kKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1
dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JS
ZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOwogICAgICAgICAgICAgYXV0byB0YXJnZXRS
ZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJn
ZXREb21haW4pOwotICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNv
bmQsIHRhcmdldERvbWFpbikpIHsKLSAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlv
bnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJl
c3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7Ci0gICAgICAgICAgICAgICAgc3RhdGlzdGljc1dl
cmVVcGRhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFyZWxh
dGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRh
cmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKLSAgICAgICAgICAgICAgICBpbnNl
cnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRh
cmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7Ci0gICAgICAgICAgICAgICAgc3RhdGlz
dGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5
LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7IHRhcmdldERvbWFpbiB9KSwgcmVkaXJlY3Rp
bmdEb21haW5SZXN1bHQuc2Vjb25kKTsKKyAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9u
c2hpcExpc3Qoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnksIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+KHsgc291cmNlRG9tYWluIH0pLCB0YXJnZXRSZXN1bHQuc2Vjb25kKTsK
ICAgICAgICAgfQorICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgIH0K
IAogICAgIGlmIChzdGF0aXN0aWNzV2VyZVVwZGF0ZWQpCkBAIC0xMDQ4LDExICsxMDQwLDggQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nQ3Jvc3NTaXRlTG9h
ZFdpdGhMaW5rRGVjb3JhdGlvbihjb24KICAgICBBU1NFUlQoZnJvbURvbWFpbiAhPSB0b0RvbWFp
bik7CiAKICAgICBhdXRvIGZyb21Eb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbihmcm9tRG9tYWluKTsKLQotICAgIGlmICghcmVsYXRpb25z
aGlwRXhpc3RzKG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzLCBmcm9tRG9tYWlu
UmVzdWx0LnNlY29uZCwgdG9Eb21haW4pKSB7Ci0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9u
c2hpcChtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSwgZnJvbURvbWFpblJlc3VsdC5zZWNv
bmQsIHRvRG9tYWluKTsKLSAgICAgICAgc2NoZWR1bGVTdGF0aXN0aWNzUHJvY2Vzc2luZ1JlcXVl
c3RJZk5lY2Vzc2FyeSgpOwotICAgIH0KKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0
KHRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbVF1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9t
YWluPih7IHRvRG9tYWluIH0pLCBmcm9tRG9tYWluUmVzdWx0LnNlY29uZCk7CisgICAgc2NoZWR1
bGVTdGF0aXN0aWNzUHJvY2Vzc2luZ1JlcXVlc3RJZk5lY2Vzc2FyeSgpOwogfQogCiB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRVc2VySW50ZXJhY3Rpb24oY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFdh
bGxUaW1lIG1vc3RSZWNlbnRJbnRlcmFjdGlvbikKQEAgLTEyOTksOSArMTI4OCw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbihjb25zdCBTCiAgICAgYXV0byByZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzdWJGcmFtZURvbWFpbik7CiAKICAgICAvLyBGb3Ig
Y29uc2lzdGVuY3ksIG1ha2Ugc3VyZSB3ZSBhbHNvIGhhdmUgYSBzdGF0aXN0aWNzIGVudHJ5IGZv
ciB0aGUgdG9wIGZyYW1lIGRvbWFpbi4KLSAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JS
ZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7Ci0KLSAgICBpbnNlcnREb21haW5SZWxh
dGlvbnNoaXAobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCByZXN1bHQuc2Vjb25kLCB0
b3BGcmFtZURvbWFpbik7CisgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChzdWJmcmFt
ZVVuZGVyVG9wRnJhbWVEb21haW5zUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsg
dG9wRnJhbWVEb21haW4gfSksIHJlc3VsdC5zZWNvbmQpOwogfQogCiB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21h
aW4oY29uc3QgU3ViUmVzb3VyY2VEb21haW4mIHN1YnJlc291cmNlRG9tYWluLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4pCkBAIC0xMzExLDkgKzEyOTgsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVEb21haW4oY29ucwogICAgIGF1dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0
aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc3VicmVzb3VyY2VEb21haW4pOwogCiAgICAgLy8gRm9y
IGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2UgYWxzbyBoYXZlIGEgc3RhdGlzdGljcyBlbnRyeSBm
b3IgdGhlIHRvcCBmcmFtZSBkb21haW4uCi0gICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9y
UmVnaXN0cmFibGVEb21haW4odG9wRnJhbWVEb21haW4pOwotCi0gICAgaW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucywgcmVzdWx0LnNlY29u
ZCwgdG9wRnJhbWVEb21haW4pOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9t
YWluPih7IHRvcEZyYW1lRG9tYWluIH0pLCByZXN1bHQuc2Vjb25kKTsKIH0KIAogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3Qg
UmVkaXJlY3REb21haW4mIHJlZGlyZWN0RG9tYWluKQpAQCAtMTMyMyw5ICsxMzA4LDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKGNvbnN0IFMKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3Rh
dGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHN1YnJlc291cmNlRG9tYWluKTsKIAogICAgIC8v
IEZvciBjb25zaXN0ZW5jeSwgbWFrZSBzdXJlIHdlIGFsc28gaGF2ZSBhIHN0YXRpc3RpY3MgZW50
cnkgZm9yIHRoZSByZWRpcmVjdCBkb21haW4uCi0gICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4ocmVkaXJlY3REb21haW4pOwotCi0gICAgaW5zZXJ0RG9tYWlu
UmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVzdWx0LnNlY29u
ZCwgcmVkaXJlY3REb21haW4pOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWlu
Pih7IHJlZGlyZWN0RG9tYWluIH0pLCByZXN1bHQuc2Vjb25kKTsKIH0KIAogdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dEZyb20oY29uc3QgU3ViUmVzb3VyY2VEb21haW4mIHN1YnJlc291cmNlRG9tYWluLCBjb25zdCBS
ZWRpcmVjdERvbWFpbiYgcmVkaXJlY3REb21haW4pCkBAIC0xMzM1LDkgKzEzMTgsNyBAQCB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0RnJvbShjb25zdAogICAgIGF1dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0
aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc3VicmVzb3VyY2VEb21haW4pOwogCiAgICAgLy8g
Rm9yIGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2UgYWxzbyBoYXZlIGEgc3RhdGlzdGljcyBlbnRy
eSBmb3IgdGhlIHJlZGlyZWN0IGRvbWFpbi4KLSAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVjdERvbWFpbik7Ci0KLSAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlc3VsdC5zZWNv
bmQsIHJlZGlyZWN0RG9tYWluKTsKKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9t
YWluPih7IHJlZGlyZWN0RG9tYWluIH0pLCByZXN1bHQuc2Vjb25kKTsKIH0KIAogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVkaXJlY3RE
b21haW4mIHJlZGlyZWN0RG9tYWluKQpAQCAtMTM0Nyw5ICsxMzI4LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRv
KGNvbnN0IFRvcEYKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0Zv
clJlZ2lzdHJhYmxlRG9tYWluKHRvcEZyYW1lRG9tYWluKTsKIAogICAgIC8vIEZvciBjb25zaXN0
ZW5jeSwgbWFrZSBzdXJlIHdlIGFsc28gaGF2ZSBhIHN0YXRpc3RpY3MgZW50cnkgZm9yIHRoZSBy
ZWRpcmVjdCBkb21haW4uCi0gICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFi
bGVEb21haW4ocmVkaXJlY3REb21haW4pOwotCi0gICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbywgcmVzdWx0LnNlY29uZCwgcmVkaXJlY3REb21h
aW4pOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNUb1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7IHJlZGlyZWN0RG9tYWlu
IH0pLCByZXN1bHQuc2Vjb25kKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oY29uc3QgVG9wRnJhbWVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWRpcmVjdERvbWFpbiYgcmVkaXJlY3REb21h
aW4pCkBAIC0xMzU5LDkgKzEzMzgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBUbwogICAgIGF1
dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
dG9wRnJhbWVEb21haW4pOwogCiAgICAgLy8gRm9yIGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2Ug
YWxzbyBoYXZlIGEgc3RhdGlzdGljcyBlbnRyeSBmb3IgdGhlIHJlZGlyZWN0IGRvbWFpbi4KLSAg
ICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVjdERv
bWFpbik7Ci0KLSAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20sIHJlc3VsdC5zZWNvbmQsIHJlZGlyZWN0RG9tYWluKTsKKyAgICBpbnNlcnRE
b21haW5SZWxhdGlvbnNoaXBMaXN0KHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5LCBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7IHJlZGlyZWN0RG9tYWluIH0pLCByZXN1bHQuc2Vj
b25kKTsKIH0KIAogc3RkOjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpBZGRlZFJlY29yZCwgdW5zaWduZWQ+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQpAQCAtMTc1OCw2ICsxNzM1LDQwIEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZURhdGFSZWNvcmRzUmVtb3Zl
ZChjb25zdCBSZWdpc3RyCiAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1
bHQgPT0gU1FMSVRFX09LKTsKIH0KIAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6aXNDb3JyZWN0U3ViU3RhdGlzdGljc0NvdW50KGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJmcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWlu
KQoreworICAgIFNRTGl0ZVN0YXRlbWVudCBzdWJGcmFtZVVuZGVyVG9wRnJhbWVDb3VudChtX2Rh
dGFiYXNlLCBjb3VudFN1YmZyYW1lVW5kZXJUb3BGcmFtZVF1ZXJ5KTsKKyAgICBTUUxpdGVTdGF0
ZW1lbnQgc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lQ291bnQobV9kYXRhYmFzZSwgY291bnRTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVRdWVyeSk7CisgICAgU1FMaXRlU3RhdGVtZW50IHN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzVG8obV9kYXRhYmFzZSwgY291bnRTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0c1RvUXVlcnkpOworICAgIAorICAgIGlmIChzdWJGcmFtZVVuZGVyVG9wRnJhbWVDb3Vu
dC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN1YnJlc291cmNlVW5kZXJUb3BG
cmFtZUNvdW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdHNUby5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb3VudFN1YlN0YXRpc3RpY3NUZXN0aW5nIGZhaWxlZCB0
byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBpZiAoc3ViRnJhbWVVbmRlclRvcEZyYW1l
Q291bnQuYmluZEludCgxLCBkb21haW5JRChzdWJmcmFtZURvbWFpbikudmFsdWUoKSkgIT0gU1FM
SVRFX09LCisgICAgICAgIHx8IHN1YkZyYW1lVW5kZXJUb3BGcmFtZUNvdW50LmJpbmRJbnQoMiwg
ZG9tYWluSUQodG9wRnJhbWVEb21haW4pLnZhbHVlKCkpICE9IFNRTElURV9PSworICAgICAgICB8
fCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVDb3VudC5iaW5kSW50KDEsIGRvbWFpbklEKHN1YmZy
YW1lRG9tYWluKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lQ291bnQuYmluZEludCgyLCBkb21haW5JRCh0b3BGcmFtZURvbWFpbikudmFs
dWUoKSkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
VG8uYmluZEludCgxLCBkb21haW5JRChzdWJmcmFtZURvbWFpbikudmFsdWUoKSkgIT0gU1FMSVRF
X09LCisgICAgICAgIHx8IHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8uYmluZEludCgyLCBk
b21haW5JRCh0b3BGcmFtZURvbWFpbikudmFsdWUoKSkgIT0gU1FMSVRFX09LKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb3VudFN1YlN0YXRpc3RpY3NUZXN0aW5nIGZh
aWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBpZiAoc3ViRnJhbWVVbmRlclRvcEZy
YW1lQ291bnQuc3RlcCgpICE9IFNRTElURV9ST1cKKyAgICAgICAgfHwgc3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lQ291bnQuc3RlcCgpICE9IFNRTElURV9ST1cKKyAgICAgICAgfHwgc3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNUby5zdGVwKCkgIT0gU1FMSVRFX1JPVykKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIHJldHVybiAoc3ViRnJhbWVVbmRlclRvcEZyYW1lQ291bnQuZ2V0
Q29sdW1uSW50KDApID09IDEgJiYgc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lQ291bnQuZ2V0Q29s
dW1uSW50KDApID09IDEgJiYgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUby5nZXRDb2x1bW5J
bnQoMCkgPT0gMSk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRl
eCBlYTdlNjQ5ZmZmNWQxNmFhODRhZTFiZTA1MjZiNmM1OGM1N2QyZTM0Li5lOTY3MTZkM2NlNzU5
ODA2YjlkOWM3M2UzYjZiNTQxNDI5MWNhYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIE9wZXJhdGluZ0RhdGVzV2luZG93KSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0TGFzdFNl
ZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzKSBvdmVycmlkZTsKKyAgICBib29s
IGlzQ29ycmVjdFN1YlN0YXRpc3RpY3NDb3VudChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBtZXJnZVN0YXRpc3Rp
Yyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CkBAIC0xMTAsNiArMTExLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNsZWFyRGF0YWJhc2VDb250ZW50cygpOwogICAgIGJvb2wgaW5zZXJ0
T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIHZvaWQg
aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7
CisgICAgdm9pZCBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KGNvbnN0IFN0cmluZyYsIGNv
bnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiwgdW5zaWduZWQpOwogICAgIGJvb2wgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYsIHVuc2lnbmVk
IGRvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4pOwogICAg
IGJvb2wgcmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYsIE9wdGlv
bmFsPHVuc2lnbmVkPiBmaXJzdERvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vj
b25kRG9tYWluKSBjb25zdDsKICAgICBPcHRpb25hbDx1bnNpZ25lZD4gZG9tYWluSUQoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKQEAgLTE2Niw4ICsxNjgsMTEgQEAgcHJpdmF0ZToK
ICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVt
b3ZlPj4gcmVnaXN0cmFibGVEb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvcigpIG92ZXJyaWRl
OwogICAgIGJvb2wgaXNEYXRhYmFzZVN0b3JlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogCisgICAgYm9vbCBjcmVhdGVVbmlxdWVJbmRpY2VzKCk7CiAgICAgYm9vbCBjcmVhdGVTY2hl
bWEoKTsKICAgICBib29sIHByZXBhcmVTdGF0ZW1lbnRzKCk7CisgICAgU3RyaW5nIGVuc3VyZUFu
ZE1ha2VEb21haW5MaXN0KGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik7CisKICAg
ICAKICAgICBjb25zdCBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsKICAgICBtdXRhYmxl
IFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlIG1fZGF0YWJhc2U7CkBAIC0xNzUsMjIgKzE4MCwxMCBA
QCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2luc2VydE9ic2VydmVk
RG9tYWluU3RhdGVtZW50OwogICAgIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2luc2VydFRv
cExldmVsRG9tYWluU3RhdGVtZW50OwogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50IG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50OwotICAgIFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudCBtX3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1N0YXRlbWVudDsKLSAg
ICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURv
bWFpbnNFeGlzdHNTdGF0ZW1lbnQ7Ci0gICAgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fdG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNUbzsKLSAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRl
bWVudCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHM7Ci0gICAgV2ViQ29yZTo6U1FM
aXRlU3RhdGVtZW50IG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tOwotICAgIG11dGFibGUg
V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tRXhp
c3RzOwotICAgIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3RvcEZyYW1lTGlua0RlY29yYXRp
b25zRnJvbTsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3RvcEZyYW1l
TGlua0RlY29yYXRpb25zRnJvbUV4aXN0czsKLSAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQg
bV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOwogICAgIG11dGFibGUgV2ViQ29yZTo6U1FM
aXRlU3RhdGVtZW50IG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzOwotICAgIFdl
YkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3N1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnM7
CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9zdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW5FeGlzdHM7Ci0gICAgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fc3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbzsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudCBtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHM7Ci0gICAgV2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50IG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tOwotICAg
IG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fc3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNGcm9tRXhpc3RzOwogICAgIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX21vc3RSZWNl
bnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQ7CiAgICAgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50
IG1fdXBkYXRlTGFzdFNlZW5TdGF0ZW1lbnQ7CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVT
dGF0ZW1lbnQgbV91cGRhdGVEYXRhUmVjb3Jkc1JlbW92ZWRTdGF0ZW1lbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDExM2QzNTM4Y2Zh
MDkwMzE5OGJjMjA4Yjc4NjgzMDk1YjQ5ODcyYmMuLmVhMDBiYzE0ODhjMDg5YThiZTA2MmJiYjZj
OWQyYTZmMDI5YTE1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuY3BwCkBAIC01OTYsMTEgKzU5NiwxMSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFp
bgogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bWVy
Z2VTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgU2Vjb25kcyBsYXN0U2Vlbiwg
Ym9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJl
dmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9v
bCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwg
Ym9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFs
ZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogCi0gICAgcG9zdFRhc2soW3RoaXMsIGRvbWFpbiA9IGRvbWFpbi5pc29sYXRlZENvcHkoKSwg
dG9wRnJhbWVEb21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgbGFzdFNlZW4s
IGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZh
dGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQs
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJs
ZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIGRvbWFpbiA9IGRvbWFpbi5pc29sYXRlZENvcHkoKSwg
dG9wRnJhbWVEb21haW4xID0gdG9wRnJhbWVEb21haW4xLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFt
ZURvbWFpbjIgPSB0b3BGcmFtZURvbWFpbjIuaXNvbGF0ZWRDb3B5KCksIGxhc3RTZWVuLCBoYWRV
c2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJl
ZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewog
ICAgICAgICBpZiAobV9zdGF0aXN0aWNzU3RvcmUpIHsKICAgICAgICAgICAgIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3Mgc3RhdGlzdGljKGRvbWFpbik7CiAgICAgICAgICAgICBzdGF0aXN0aWMubGFz
dFNlZW4gPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobGFzdFNlZW4uc2Vjb25kcygpKTsKQEAg
LTYxMSwxMSArNjExLDE1IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpt
ZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVECiAgICAgICAgICAgICBz
dGF0aXN0aWMuaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UgPSBpc1ZlcnlQcmV2YWxlbnQ7CiAgICAg
ICAgICAgICBzdGF0aXN0aWMuZGF0YVJlY29yZHNSZW1vdmVkID0gZGF0YVJlY29yZHNSZW1vdmVk
OwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIXRvcEZyYW1lRG9tYWluLmlzRW1wdHko
KSkgewotICAgICAgICAgICAgICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IHRvcEZyYW1l
RG9tYWluczsKLSAgICAgICAgICAgICAgICB0b3BGcmFtZURvbWFpbnMuYWRkKHRvcEZyYW1lRG9t
YWluKTsKLSAgICAgICAgICAgICAgICBzdGF0aXN0aWMuc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWlucyA9IFdURk1vdmUodG9wRnJhbWVEb21haW5zKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IHRvcEZyYW1lRG9tYWluczsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgaWYgKCF0b3BGcmFtZURvbWFpbjEuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIHRvcEZyYW1lRG9tYWlucy5hZGQodG9wRnJhbWVEb21haW4xKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgaWYgKCF0b3BGcmFtZURvbWFpbjIuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIHRvcEZyYW1lRG9tYWlucy5hZGQodG9wRnJhbWVEb21haW4yKTsKKworICAgICAg
ICAgICAgc3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgPSBXVEZNb3ZlKHRv
cEZyYW1lRG9tYWlucyk7CiAKICAgICAgICAgICAgIFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzPiBzdGF0aXN0aWNzOwogICAgICAgICAgICAgc3RhdGlzdGljcy5hcHBlbmQoV1RGTW92ZShz
dGF0aXN0aWMpKTsKQEAgLTYyNCw2ICs2MjgsMjQgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZUQK
ICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAg
fSk7CiB9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjppc1JlbGF0aW9u
c2hpcE9ubHlJbkRhdGFiYXNlT25jZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CisKKyAgICBwb3N0VGFzayhbdGhpcywgc3ViRG9tYWluID0gc3ViRG9tYWluLmlz
b2xhdGVkQ29weSgpLCB0b3BEb21haW4gPSB0b3BEb21haW4uaXNvbGF0ZWRDb3B5KCksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUgfHwgIWlzPFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlPigqbV9zdGF0aXN0aWNzU3RvcmUpKSB7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGJvb2wgaXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UgPSBk
b3duY2FzdDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZT4oKm1fc3RhdGlzdGlj
c1N0b3JlKS5pc0NvcnJlY3RTdWJTdGF0aXN0aWNzQ291bnQoc3ViRG9tYWluLCB0b3BEb21haW4p
OworICAgICAgICAKKyAgICAgICAgcG9zdFRhc2tSZXBseShbaXNSZWxhdGlvbnNoaXBPbmx5SW5E
YXRhYmFzZU9uY2UsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpc1JlbGF0aW9u
c2hpcE9ubHlJbkRhdGFiYXNlT25jZSk7CisgICAgICAgIH0pOworICAgIH0pOworfQogICAgIAog
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNl
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaAppbmRleCBmYjE4MTA1MWE0YzRhNTRlYzM1NWRiYTUwZWYwNjk0ZjI3
ZWFiN2NlLi45MmZlMTU3ZTZkM2EzNTE5ODVlMTliNzAxNmZlMzJhMzRjMmYxZDg4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0xMjksNyArMTI5
LDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1
YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlUHJv
eHlJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAgICB2b2lkIHNldExhc3RT
ZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgU2Vjb25kcyBsYXN0U2Vlbiwg
Ym9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJl
dmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29s
IGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBi
b29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxl
bnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIGlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BE
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0UHJl
dmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCmluZGV4IDMzNDFhZWQ4YzJlYzk1MGU3ZmEwMzQxMjY0NGU5NjI3ZmQyYTU1NWUuLmI1ODBh
MDc2ZjkyZWM4NGNiOGZjNzBiMGViZGMyZDM1ZThkMWQ2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC05NjgsMTEgKzk2OCwxMSBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwg
U2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwg
Ym9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNv
cmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBOZXR3b3JrUHJvY2Vzczo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJh
Y3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0
aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBk
YXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhk
b21haW4sIHRvcEZyYW1lRG9tYWluLCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1Zl
cnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bWVyZ2VTdGF0aXN0aWNG
b3JUZXN0aW5nKGRvbWFpbiwgdG9wRnJhbWVEb21haW4xLCB0b3BGcmFtZURvbWFpbjIsIGxhc3RT
ZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3Jh
bmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1v
dmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSBlbHNlIHsKQEAgLTEwMjYsNiArMTAyNiwx
OSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpoYWRVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYQogICAgIH0KIH0KIAordm9pZCBOZXR3b3JrUHJv
Y2Vzczo6aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMt
Pm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
KQorICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNSZWxhdGlvbnNoaXBPbmx5
SW5EYXRhYmFzZU9uY2Uoc3ViRG9tYWluLCB0b3BEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgfQorfQorCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpjbGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlz
LT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMmY3MDQzMDhlZGZlOTUzYTRjOGU3YjBkMDcz
ODBjMWU0NTFmZmI2ZC4uMWRhZWE1N2Q2Nzc0NmEzMDFjYjA2NzRkOTA1ZGFlOWE3NTBkNjU1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAt
MjI4LDYgKzIyOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJj
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJ1bmVFbnRyaWVzRG93blRvKFBBTDo6U2Vz
c2lvbklELCB1aW50NjRfdCBwcnVuZVRhcmdldENvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgaGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwor
ICAgIHZvaWQgaXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZv
aWQgaGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgZ2V0QWxsU3Rv
cmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
VmVjdG9yPFN0cmluZz4gZG9tYWlucyk+JiYpOwogICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9u
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9v
bCBpc01haW5GcmFtZSk7CkBAIC0yNDIsNyArMjQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQsIFNlY29u
ZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhl
cmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAg
IHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgU2Vjb25kcyBsYXN0U2Vlbiwg
Ym9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJl
dmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZy
YW1lRG9tYWluMSwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25k
cyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJv
b2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRh
UmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3Qo
UEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgppbmRleCA1MTM3MWQ2NzJjNzMxMjk4ZmViMTI2NzNkZTczMDAzNTkwNmJi
ZDNmLi5iZDNjMjRhNzE0Yzg5NmEyZWM1OTA0MTg3NzAwN2FhNjRkMjRjNTlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTk0LDEwICs5NCwxMSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgSXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4pIC0+IChi
b29sIGlzVmVyeVByZXZhbGVudCkgQXN5bmMKICAgICBTZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29v
a2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMp
IC0+ICgpIEFzeW5jCiAgICAgU2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgU2Vjb25kcyBzZWNvbmRz
KSAtPiAoKSBBc3luYwotICAgIE1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgU2Vjb25kcyBsYXN0U2Vl
biwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5
UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCisgICAg
TWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHRvcEZyYW1lRG9tYWluMSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vj
b25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9v
bCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVpbnQ2NF90IGRhdGFSZWNvcmRz
UmVtb3ZlZCkgLT4gKCkgQXN5bmMKICAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWlu
KSAtPiAoKSBBc3luYwogICAgIFNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VE
b21haW4pIC0+ICgpIEFzeW5jCiAgICAgSGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+
IChib29sIGhhZFVzZXJJbnRlcmFjdGlvbikgQXN5bmMKKyAgICBJc1JlbGF0aW9uc2hpcE9ubHlJ
bkRhdGFiYXNlT25jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHN1YkRvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRG9tYWlu
KSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCiAgICAgSGFzTG9jYWxTdG9yYWdl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVz
b3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRlcmFjdGlvbikgQXN5bmMKICAgICBHZXRB
bGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0
b3I8U3RyaW5nPiBkb21haW5zKSBBc3luYwogICAgIElzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
byhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJl
ZGlyZWN0ZWRGcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVk
VG9Eb21haW4pIC0+IChib29sIGlzUmVkaXJlY3RpbmdUbykgQXN5bmMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmlu
ZGV4IDUxMmUwNWNjODViYzRlZTE4YWM1NjhmY2QzOTgzNzBjYmZlYmEyZWMuLjlkN2ZhN2QzN2M2
NmExZjJkOWVjNDhjOTdlNTFiYzZmZDcwYTc3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtMTE5LDEw
ICsxMTksMTAgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTGFzdFNlZW4o
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwKICNlbmRpZgogfQogCi12b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BG
cmFtZURvbWFpbiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91
YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29s
IGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNS
ZW1vdmVkLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzTWVyZ2VT
dGF0aXN0aWNGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMSwg
V0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4yLCBkb3VibGUgbGFzdFNlZW4sIGJvb2wgaGFkVXNl
ckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dy
YW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNp
Z25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpY0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewog
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKS0+bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFVSTChVUkwoKSwgV2ViS2l0
Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BG
cmFtZURvbWFpbiktPnN0cmluZygpKSwgU2Vjb25kcyB7IGxhc3RTZWVuIH0sIGhhZFVzZXJJbnRl
cmFjdGlvbiwgU2Vjb25kcyB7IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24gfSwgaXNHcmFuZGZh
dGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQs
IFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFT
dG9yZVJlZiktPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVE
b21haW4xKS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1lRG9t
YWluMiktPnN0cmluZygpKSwgU2Vjb25kcyB7IGxhc3RTZWVuIH0sIGhhZFVzZXJJbnRlcmFjdGlv
biwgU2Vjb25kcyB7IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24gfSwgaXNHcmFuZGZhdGhlcmVk
LCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsIFtjb250
ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250
ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC0yNjEsNiArMjYxLDE3IEBAIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkCiAjZW5kaWYKIH0KIAordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NPbmx5SW5EYXRhYmFzZU9uY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
V0tTdHJpbmdSZWYgc3ViSG9zdCwgV0tTdHJpbmdSZWYgdG9wSG9zdCwgdm9pZCogY29udGV4dCwg
V0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlRnVuY3Rpb24g
Y2FsbGJhY2spCit7CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBX
ZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNl
T25jZShVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHN1Ykhvc3QpLT5zdHJpbmcoKSksIFVSTChV
UkwoKSwgV2ViS2l0Ojp0b0ltcGwodG9wSG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxi
YWNrXShib29sIG9ubHlJbkRhdGFiYXNlT25jZSkgeworICAgICAgICBjYWxsYmFjayhvbmx5SW5E
YXRhYmFzZU9uY2UsIGNvbnRleHQpOworICAgIH0pOworI2Vsc2UKKyAgICBjYWxsYmFjayhmYWxz
ZSwgY29udGV4dCk7CisjZW5kaWYKK30KKwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBX
S1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5oCmluZGV4IGYyYTE3ODI5NmVhNzllYjRlZjU1N2FiMGUwNzhi
OWFkNmVhOWFhNTUuLmMxZjk5MGIzNWE3YjI2NjI0MTVmZTZmMThlOTAyODM5MzgwODgyZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5oCkBAIC01MCw3ICs1MCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlCiB0eXBl
ZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzTGFzdFNlZW5GdW5jdGlvbiko
dm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcywgdm9pZCogY29udGV4dCwgV0tXZWJz
aXRlRGF0YVN0b3JlU3RhdGlzdGljc0xhc3RTZWVuRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIp
OwogdHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc01lcmdlU3RhdGlz
dGljRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19FWFBPUlQgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoV0tXZWJzaXRlRGF0YVN0
b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJh
bWVEb21haW4sIGRvdWJsZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGRvdWJs
ZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBp
c1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc01lcmdlU3Rh
dGlzdGljRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOworV0tfRVhQT1JUIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1l
RG9tYWluMSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4yLCBkb3VibGUgbGFzdFNlZW4sIGJv
b2wgaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwg
Ym9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFs
ZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZVN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpY0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5k
bGVyKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZUZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFs
dWUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vi
c2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2VGdW5jdGlvbikodm9p
ZCogZnVuY3Rpb25Db250ZXh0KTsKQEAgLTcwLDYgKzcwLDggQEAgdHlwZWRlZiB2b2lkICgqV0tX
ZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uKSh2
b2lkKgogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0
cmluZ1JlZiBob3N0LCBib29sIHZhbHVlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3Rv
cmVTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uRnVuY3Rpb24gY29tcGxldGlvbkhhbmRs
ZXIpOwogdHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uRnVuY3Rpb24pKGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uLCB2b2lk
KiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFT
dG9yZUlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uIGNhbGxiYWNrKTsK
K3R5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc09ubHlJbkRhdGFi
YXNlT25jZUZ1bmN0aW9uKShib29sIG9ubHlJbkRhdGFiYXNlT25jZSwgdm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc09u
bHlJbkRhdGFiYXNlT25jZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0
cmluZ1JlZiBzdWJIb3N0LCBXS1N0cmluZ1JlZiB0b3BIb3N0LCB2b2lkKiBjb250ZXh0LCBXS1dl
YnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2VGdW5jdGlvbiBjYWxs
YmFjayk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3Jh
bmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0LCBib29sIHZhbHVlKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlz
U3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5jdGlvbikoYm9vbCBpc0dyYW5kZmF0aGVyZWQsIHZv
aWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlz
U3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5jdGlvbiBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCAyNzczYTA2ZTVhNTA0MTNkMzQ4ZTcxNTcxZTUxYmY2ZDhkNjA5MTlkLi41MGM0MGE1ZGY2
NTdhYmQzYWMzNmE0MTVjYjdjZDE5MTYyOTUzY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTUzNiw5
ICs1MzYsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldExhc3RTZWVuKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibAogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldExhc3RTZWVuKHNlc3Npb25JRCwgcmVzb3Vy
Y2VEb21haW4sIGxhc3RTZWVuKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBTZWNvbmRzIGxhc3RT
ZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1Zl
cnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRz
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlz
UHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1v
dmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TWVyZ2VTdGF0
aXN0aWNGb3JUZXN0aW5nKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9tYWlu
LCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9u
LCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNv
cmRzUmVtb3ZlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpNZXJnZVN0YXRpc3RpY0ZvclRlc3Rp
bmcoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4xLCB0b3BGcmFtZURv
bWFpbjIsIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0
YVJlY29yZHNSZW1vdmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTYwMSw2ICs2
MDEsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpoYXNIYWRVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkhhZFVzZXJJbnRlcmFjdGlvbihzZXNzaW9uSUQsIHJl
c291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25j
ZShzZXNzaW9uSUQsIHN1YkRvbWFpbiwgdG9wRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNsZWFyVXNlckludGVyYWN0
aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJl
c291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDJkNmFk
YmUzYmEzZDVmY2U1Yzk2YWVmNjNhZWZiY2Y2ZWYyY2QwNjMuLjA0Y2Q1MTE1ZGE5ZDI4YTNmZGM5
ZGY2Nzg5Y2Y2OWQxNjkxZWIwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCB1cGRhdGVQcmV2
YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3Rv
cjxSZWdpc3RyYWJsZURvbWFpbj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgaGFzSGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQg
aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BE
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaGFzTG9j
YWxTdG9yYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNHcmFuZGZhdGhlcmVkKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKQEAgLTExMyw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2dVc2VySW50
ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0g
ICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBTZWNvbmRzIGxhc3RTZWVu
LCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0
aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQ
cmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9w
RnJhbWVEb21haW4xLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNv
bmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50
VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwg
Ym9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVD
b29raWVzKFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklE
LCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0R3Jh
bmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29s
IGlzR3JhbmRmYXRoZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKaW5kZXggNjI3ZDJkOTljYjNlYzcyNzBiODc2N2JhMzA2ZDhmYjUwOWE4YmRjMS4uMjYx
OTAxNmIyNGM5ZThmN2E1ODQ3YTlkYmI2ZjBmNmM1OWYwOWFkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
QEAgLTE1NTEsNyArMTU1MSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TGFzdFNlZW4o
Y29uc3QgVVJMJiB1cmwsIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhCiAgICAgfQogfQog
Ci12b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBV
UkwmIHVybCAsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJv
b2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVu
dCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6Om1lcmdlU3RhdGlz
dGljRm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCAsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwxLCBj
b25zdCBVUkwmIHRvcEZyYW1lVXJsMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5k
ZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25l
ZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAodXJsLnByb3RvY29sSXNBYm91dCgpIHx8IHVybC5pc0Vt
cHR5KCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTE1NjIsNyArMTU2Miw3
IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0
IFVSTCYgdXJsICwgY29uc3QgVVJMJiB0b3BGCiAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29s
IDogcHJvY2Vzc1Bvb2xzKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHByb2Nlc3MgPSBwcm9jZXNz
UG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkKLSAgICAgICAgICAgIHByb2Nlc3MtPm1lcmdlU3RhdGlz
dGljRm9yVGVzdGluZyhtX3Nlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB1
cmwgfSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB0b3BGcmFtZVVybCB9LCBsYXN0U2Vl
biwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5k
ZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3Zl
ZCwgW3Byb2Nlc3NQb29sLCBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3Iu
Y29weVJlZigpXSB7IH0pOworICAgICAgICAgICAgcHJvY2Vzcy0+bWVyZ2VTdGF0aXN0aWNGb3JU
ZXN0aW5nKG1fc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9LCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHRvcEZyYW1lVXJsMSB9LCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB7IHRvcEZyYW1lVXJsMiB9LCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0
aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFs
ZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgW3Byb2Nlc3NQb29sLCBj
YWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwog
ICAgIH0KIH0KIApAQCAtMTY0Niw2ICsxNjQ2LDI0IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2
CiAgICAgfQogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmlzUmVsYXRpb25zaGlwT25seUlu
RGF0YWJhc2VPbmNlKGNvbnN0IFVSTCYgc3ViVXJsLCBjb25zdCBVUkwmIHRvcFVybCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIAorICAgIGlmIChzdWJVcmwucHJvdG9jb2xJc0Fi
b3V0KCkgfHwgc3ViVXJsLmlzRW1wdHkoKSB8fCB0b3BVcmwucHJvdG9jb2xJc0Fib3V0KCkgfHwg
dG9wVXJsLmlzRW1wdHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6
IHByb2Nlc3NQb29scygpKSB7CisgICAgICAgIGlmIChhdXRvKiBwcm9jZXNzID0gcHJvY2Vzc1Bv
b2wtPm5ldHdvcmtQcm9jZXNzKCkpIHsKKyAgICAgICAgICAgIHByb2Nlc3MtPmlzUmVsYXRpb25z
aGlwT25seUluRGF0YWJhc2VPbmNlKG1fc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiB7IHN1YlVybCB9LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHRvcFVybCB9LCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgICAgICBBU1NFUlQocHJvY2Vzc1Bv
b2xzKCkuc2l6ZSgpID09IDEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
Cit9CisKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3Qg
VVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDAxODM3
ZmVhMDI3NmY0Yjg0YTZhZGM0ZGU1MDRlZWQyNTdlYWFkNzIuLjRkNDkwOTFhNzg3YjdmZDVhODNl
ZjAzZjc2ZmNmY2RjOWNkNmUxZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJMJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVz
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0
cmluZz4mJiBkb21haW5zKT4mJik7CiAgICAgdm9pZCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29u
c3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBpc1Jl
bGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShjb25zdCBVUkwmIHN1YlVybCwgY29uc3QgVVJM
JiB0b3BVcmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNQ
cmV2YWxlbnRSZXNvdXJjZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhjb25zdCBVUkwmIGhv
c3RSZWRpcmVjdGVkRnJvbSwgY29uc3QgVVJMJiBob3N0UmVkaXJlY3RlZFRvLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3Vy
Y2VVbmRlcihjb25zdCBVUkwmIHN1YnJlc291cmNlLCBjb25zdCBVUkwmIHRvcEZyYW1lLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKQEAgLTE2Myw3ICsxNjQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sKTsKICAgICB2b2lkIHNldEdyYW5kZmF0
aGVyaW5nVGltZShTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0TGFzdFNlZW4oY29uc3QgVVJMJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKLSAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBVUkwmLCBj
b25zdCBVUkwmIHRvcEZyYW1lVXJsLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRl
cmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRm
YXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVk
IGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2
b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBVUkwmLCBjb25zdCBVUkwmIHRvcEZy
YW1lVXJsMSwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJv
b2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVu
dCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChi
b29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0SXNSdW5uaW5n
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldFBydW5lRW50cmllc0Rvd25UbyhzaXplX3QsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggMTc0ZGM4NmM5ODJjM2JkNTJhMzVmZjYyNmFhNDVmYjEyODQ2ZjY5MS4u
NmE2ZTU4NzY3NWEyYTUxODc2MWFlNGFiYWEzODlkMDg0Yjk4OTE0YyAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5
LTEwLTA3ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAg
ICAgIERvbWFpbiByZWxhdGlvbnNoaXBzIGluIHRoZSBJVFAgRGF0YWJhc2Ugc2hvdWxkIGJlIGlu
c2VydGVkIGluIGEgc2luZ2xlIHF1ZXJ5IGFuZCBpZ25vcmUgcmVwZWF0IGluc2VydCBhdHRlbXB0
cy4gKDIwMjYwNCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjYwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU5OTU4MzE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlcyB0byB0ZXN0aW5n
IGluZnJhc3RydWN0dXJlIHRvIHRlc3Qgc3VjY2Vzc2Z1bCBsaXN0LW1lcmdpbmcgb2YKKyAgICAg
ICAgdG9wIGRvbWFpbnMgaW50byB0aGUgSVRQIFNRTGl0ZSBkYXRhYmFzZSBhbmQgdGVzdCBhZ2Fp
bnN0IHJlcGVhdAorICAgICAgICBpbnNlcnRzLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKToKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKToKKyAgICAgICAg
KFdUUjo6VGVzdFJ1bm5lcjo6aXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2UpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9j
YXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgor
CiAyMDE5LTEwLTA0ICBNYXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IGlQYWQgdGVzdGVycyBwbGF0Zm9ybSBmb3IgZG93bmxvYWRpbmcgYnVpbGQgcHJvZHVjdCBh
bmQgZml4aW5nIHRlc3RzIHRvIHJ1bgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNDJh
YWQ1NGUzMTEzYTM4M2Y3MzQ5MTc3NDE1MjE3Y2VkOTkwZDRhZC4uNzYxODEyYjZkMDFjM2M5YjNh
MzIyNWU1ZjViZDVhYTBiYTJjZDU5YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0y
OTgsNyArMjk4LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgc2V0U3RhdGlz
dGljc0RlYnVnTW9kZShib29sZWFuIHZhbHVlLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwog
ICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKERPTVN0
cmluZyBob3N0TmFtZSwgb2JqZWN0IGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NMYXN0U2VlbihET01TdHJpbmcgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzLCBvYmpl
Y3QgY29tcGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgc2V0U3RhdGlzdGljc01lcmdlU3RhdGlz
dGljKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3RyaW5nIHRvcEZyYW1lRG9tYWluLCBkb3VibGUg
bGFzdFNlZW4sIGJvb2xlYW4gaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbiwgYm9vbGVhbiBpc0dyYW5kZmF0aGVyZWQsIGJvb2xlYW4gaXNQcmV2YWxl
bnQsIGJvb2xlYW4gaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBsb25nIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgb2JqZWN0IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIHNldFN0YXRpc3RpY3NN
ZXJnZVN0YXRpc3RpYyhET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFtZURvbWFp
bjEsIERPTVN0cmluZyB0b3BGcmFtZURvbWFpbjIsIGRvdWJsZSBsYXN0U2VlbiwgYm9vbGVhbiBo
YWRVc2VySW50ZXJhY3Rpb24sIGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29s
ZWFuIGlzR3JhbmRmYXRoZXJlZCwgYm9vbGVhbiBpc1ByZXZhbGVudCwgYm9vbGVhbiBpc1ZlcnlQ
cmV2YWxlbnQsIHVuc2lnbmVkIGxvbmcgZGF0YVJlY29yZHNSZW1vdmVkLCBvYmplY3QgY29tcGxl
dGlvbkhhbmRsZXIpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKERP
TVN0cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2YWx1ZSwgb2JqZWN0IGNvbXBsZXRpb25IYW5kbGVy
KTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoRE9NU3RyaW5n
IGhvc3ROYW1lLCBib29sZWFuIHZhbHVlLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwogICAg
IGJvb2xlYW4gaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoRE9NU3RyaW5nIGhvc3ROYW1l
KTsKQEAgLTMwOCw2ICszMDgsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgYm9vbGVh
biBpc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKERPTVN0cmluZyBob3N0UmVk
aXJlY3RlZEZyb20sIERPTVN0cmluZyBob3N0UmVkaXJlY3RlZFRvKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oRE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFu
IHZhbHVlLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIGJvb2xlYW4gaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKERPTVN0cmluZyBob3N0TmFtZSk7CisgICAgYm9vbGVh
biBpc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2UoRE9NU3RyaW5nIHN1Ykhvc3QsIERPTVN0
cmluZyB0b3BIb3N0KTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERPTVN0
cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2YWx1ZSk7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NH
cmFuZGZhdGhlcmVkKERPTVN0cmluZyBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRVc2VJVFBEYXRh
YmFzZShib29sZWFuIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDAxMTA0YWNmODRiYWIxMjdlNTE3M2Qz
NzkzMmU0Mjk5YWZhM2MxNTQuLjZhM2EzMWExOWU5MmU2MDVmNjNhNjUyZjE3OGIyNmFiYWI1NzA4
MjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcApAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzdGF0
aXN0aWNzQ2FsbERpZFNldExhc3RTZWVuQ2FsbGJhY2soKQogICAgIGNhbGxUZXN0UnVubmVyQ2Fs
bGJhY2soU2V0U3RhdGlzdGljc0xhc3RTZWVuQ2FsbGJhY2tJRCk7CiB9CiAKLXZvaWQgVGVzdFJ1
bm5lcjo6c2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBK
U1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJ
bnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFu
ZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWdu
ZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoSlNTdHJpbmdSZWYgaG9z
dE5hbWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVE
b21haW4yLCBkb3VibGUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQ
cmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92
ZWQsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY2FjaGVUZXN0UnVubmVy
Q2FsbGJhY2soU2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljQ2FsbGJhY2tJRCwgY29tcGxldGlv
bkhhbmRsZXIpOwogCkBAIC0xNDY0LDggKzE0NjQsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRT
dGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVm
IHQKICAgICBrZXlzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJIb3N0TmFtZSIpKSk7CiAgICAgdmFsdWVzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aEpTU3RyaW5nKGhvc3ROYW1lKSkpOwogICAgIAotICAgIGtleXMuYXBwZW5kKGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluIikpKTsKLSAgICB2
YWx1ZXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoSlNTdHJpbmcodG9wRnJhbWVE
b21haW4pKSk7CisgICAga2V5cy5hcHBlbmQoYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiVG9wRnJhbWVEb21haW4xIikpKTsKKyAgICB2YWx1ZXMuYXBwZW5kKGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoSlNTdHJpbmcodG9wRnJhbWVEb21haW4xKSkpOworICAgIAorICAg
IGtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZy
YW1lRG9tYWluMiIpKSk7CisgICAgdmFsdWVzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aEpTU3RyaW5nKHRvcEZyYW1lRG9tYWluMikpKTsKIAogICAgIGtleXMuYXBwZW5kKGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkxhc3RTZWVuIikpKTsKICAgICB2YWx1
ZXMuYXBwZW5kKGFkb3B0V0soV0tEb3VibGVDcmVhdGUobGFzdFNlZW4pKSk7CkBAIC0xNzI0LDYg
KzE3MjcsMzQgQEAgYm9vbCBUZXN0UnVubmVyOjppc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUpCiAgICAgcmV0dXJuIFdLQm9vbGVhbkdldFZhbHVl
KGFkb3B0V0soc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihyZXR1cm5EYXRhKSkuZ2V0KCkpOwog
fQogCitib29sIFRlc3RSdW5uZXI6OmlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShKU1N0
cmluZ1JlZiBzdWJIb3N0LCBKU1N0cmluZ1JlZiB0b3BIb3N0KQoreworICAgIAorICAgIFZlY3Rv
cjxXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4+IGtleXM7CisgICAgVmVjdG9yPFdLUmV0YWluUHRy
PFdLVHlwZVJlZj4+IHZhbHVlczsKKworICAgIGtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlN1Ykhvc3QiKSkpOworICAgIHZhbHVlcy5hcHBlbmQoYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhKU1N0cmluZyhzdWJIb3N0KSkpOworICAgIAorICAgIGtl
eXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEhvc3Qi
KSkpOworICAgIHZhbHVlcy5hcHBlbmQoYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhKU1N0cmlu
Zyh0b3BIb3N0KSkpOworICAgIAorICAgIFZlY3RvcjxXS1N0cmluZ1JlZj4gcmF3S2V5cyhrZXlz
LnNpemUoKSk7CisgICAgVmVjdG9yPFdLVHlwZVJlZj4gcmF3VmFsdWVzKHZhbHVlcy5zaXplKCkp
OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIHJhd0tleXNbaV0gPSBrZXlzW2ldLmdldCgpOworICAgICAgICByYXdWYWx1ZXNbaV0gPSB2
YWx1ZXNbaV0uZ2V0KCk7CisgICAgfQorCisgICAgYXV0byBtZXNzYWdlTmFtZSA9IGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNl
T25jZSIpKTsKKyAgICBhdXRvIG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0RpY3Rpb25hcnlDcmVh
dGUocmF3S2V5cy5kYXRhKCksIHJhd1ZhbHVlcy5kYXRhKCksIHJhd0tleXMuc2l6ZSgpKSk7Cisg
ICAgV0tUeXBlUmVmIHJldHVybkRhdGEgPSBudWxscHRyOworICAgIFdLQnVuZGxlUGFnZVBvc3RT
eW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5w
YWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCAmcmV0
dXJuRGF0YSk7CisgICAgQVNTRVJUKFdLR2V0VHlwZUlEKHJldHVybkRhdGEpID09IFdLQm9vbGVh
bkdldFR5cGVJRCgpKTsKKyAgICByZXR1cm4gV0tCb29sZWFuR2V0VmFsdWUoYWRvcHRXSyhzdGF0
aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KHJldHVybkRhdGEpKS5nZXQoKSk7Cit9CisKIHZvaWQgVGVz
dFJ1bm5lcjo6c2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUs
IGJvb2wgdmFsdWUpCiB7CiAgICAgVmVjdG9yPFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPj4ga2V5
czsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKaW5kZXggZjE3MDAxMjk4MzFiNmY5NDcwNzYyZjAzMGZlY2Q3MDFjNGQzYmEzYi4uMjUy
NjQzZmJhMzkzMTcxODRjOGE3MWY4MzAwNGVhMDNlMzFhNzVmYiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM5Niw3ICsz
OTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJl
c291cmNlRm9yRGVidWdNb2RlQ2FsbGJhY2soKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0
U2VlbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgZG91YmxlIHNlY29uZHMsIEpTVmFsdWVSZWYgY29t
cGxldGlvbkhhbmRsZXIpOwogICAgIHZvaWQgc3RhdGlzdGljc0NhbGxEaWRTZXRMYXN0U2VlbkNh
bGxiYWNrKCk7Ci0gICAgdm9pZCBzZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoSlNTdHJpbmdS
ZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluLCBkb3VibGUgbGFzdFNlZW4s
IGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJl
dmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIEpTVmFsdWVSZWYgY29tcGxldGlv
bkhhbmRsZXIpOworICAgIHZvaWQgc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKEpTU3RyaW5n
UmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjEsIEpTU3RyaW5nUmVmIHRv
cEZyYW1lRG9tYWluMiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwg
ZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBi
b29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29y
ZHNSZW1vdmVkLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHN0YXRp
c3RpY3NDYWxsRGlkU2V0TWVyZ2VTdGF0aXN0aWNDYWxsYmFjaygpOwogICAgIHZvaWQgc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVl
LCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHN0YXRpc3RpY3NDYWxs
RGlkU2V0UHJldmFsZW50UmVzb3VyY2VDYWxsYmFjaygpOwpAQCAtNDEwLDYgKzQxMCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJp
bmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIp
OwogICAgIHZvaWQgc3RhdGlzdGljc0NhbGxEaWRTZXRIYXNIYWRVc2VySW50ZXJhY3Rpb25DYWxs
YmFjaygpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3Ry
aW5nUmVmIGhvc3ROYW1lKTsKKyAgICBib29sIGlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25j
ZShKU1N0cmluZ1JlZiBzdWJIb3N0LCBKU1N0cmluZ1JlZiB0b3BIb3N0KTsKICAgICB2b2lkIHNl
dFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVl
KTsKICAgICBib29sIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5h
bWUpOwogICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDliODA3MWRhN2ZmM2Y5ODA4ODEy
Zjc1NjE3ZjIwMGJhNWIyZmE1MTEuLjdjZDE5MmFlMzgzNjk1YzI5MTI3NjMxZDFhMTQxNGY2ZjEx
NTc5MWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0z
MjY3LDEwICszMjY3LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NMYXN0
U2VlbihXS1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcykKICAgICBtX2N1cnJlbnRJbnZv
Y2F0aW9uLT5kaWRTZXRMYXN0U2VlbigpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRT
dGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9w
RnJhbWVEb21haW4sIGRvdWJsZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGRv
dWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9v
bCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIGludCBkYXRhUmVjb3Jkc1JlbW92
ZWQpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoV0tT
dHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4xLCBXS1N0cmluZ1JlZiB0
b3BGcmFtZURvbWFpbjIsIGRvdWJsZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24s
IGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwg
Ym9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIGludCBkYXRhUmVjb3Jkc1Jl
bW92ZWQpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQo
KnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3Rp
YyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCB0b3BGcmFtZURvbWFp
biwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVj
b3Jkc1JlbW92ZWQsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJh
Y2spOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhU
ZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCB0b3BGcmFtZURvbWFpbjEs
IHRvcEZyYW1lRG9tYWluMiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJl
dmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NW
b2lkUmVzdWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0
KTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRNZXJnZVN0YXRpc3RpYygpOwogfQpAQCAt
MzM1NSw2ICszMzU1LDE0IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1JlZiBob3N0KQogICAgIHJldHVybiBjb250ZXh0LnJl
c3VsdDsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzT25seUluRGF0YWJh
c2VPbmNlKFdLU3RyaW5nUmVmIHN1Ykhvc3QsIFdLU3RyaW5nUmVmIHRvcEhvc3QpCit7CisgICAg
UmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOworICAgIFdL
V2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShUZXN0Q29udHJv
bGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBzdWJIb3N0LCB0b3BIb3N0LCAmY29udGV4dCwgcmVz
b3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250
ZXh0LmRvbmUsIG5vVGltZW91dCk7CisgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0OworfQorCiB2
b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1Jl
ZiBob3N0LCBib29sIHZhbHVlKQogewogICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NHcmFuZGZhdGhlcmVkKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3Qs
IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA2YzJk
MmQ4ODZlMDNiNzdiNjJiZTU1MzhhMjJiOWIwZThkNGM0MWU0Li4zYzcxNTE5MmZiYmI2N2U0YmFh
NTI1YzVmZmZjMTNjYTQ2ZWI4ZmVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCkBAIC0yMTAsNyArMjEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c0RlYnVnTW9kZShib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZUZvckRlYnVnTW9kZShXS1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRT
dGF0aXN0aWNzTGFzdFNlZW4oV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzKTsK
LSAgICB2b2lkIHNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1N0cmluZ1JlZiBob3N0LCBX
S1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJ
bnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFu
ZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgaW50IGRh
dGFSZWNvcmRzUmVtb3ZlZCk7CisgICAgdm9pZCBzZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMo
V0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4xLCBXS1N0cmluZ1Jl
ZiB0b3BGcmFtZURvbWFpbjIsIGRvdWJsZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rp
b24sIGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIGludCBkYXRhUmVjb3Jk
c1JlbW92ZWQpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLU3Ry
aW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NWZXJ5
UHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAg
IFN0cmluZyBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwpAQCAtMjIxLDYgKzIyMSw3IEBA
IHB1YmxpYzoKICAgICBib29sIGlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
V0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRGcm9tLCBXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3Rl
ZFRvKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tTdHJp
bmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKFdLU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAgICBib29sIGlzU3RhdGlz
dGljc09ubHlJbkRhdGFiYXNlT25jZShXS1N0cmluZ1JlZiBzdWJIb3N0LCBXS1N0cmluZ1JlZiB0
b3BIb3N0KTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVm
IGhvc3ROYW1lLCBib29sIHZhbHVlKTsKICAgICBib29sIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVy
ZWQoV0tTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9v
bCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4
IDJmOGIzMDZlMmM4Yzg3M2ZmZDMxNzk2MWM4MTJjNWJjODgyYjYzY2QuLjBkMTJlNzA0NGQ1MDEy
Mzk2MmU0YzJlMDMzZTE3MGVjYTUxMWRlYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCkBAIC0xMTA1LDcgKzExMDUsOCBAQCBXS1JldGFpblB0cjxXS1R5cGVS
ZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVj
dGVkQgogCiAgICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBz
dGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKICAgICAgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IGhvc3ROYW1lS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiSG9zdE5hbWUiKSk7Ci0gICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiB0b3BGcmFtZURvbWFpbktleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlRvcEZyYW1lRG9tYWluIikpOworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdG9wRnJhbWVEb21haW4xS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVG9wRnJhbWVEb21haW4xIikpOworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdG9wRnJhbWVEb21haW4yS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVG9wRnJhbWVEb21haW4yIikpOwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbGFzdFNlZW5LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJM
YXN0U2VlbiIpKTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhhZFVzZXJJbnRl
cmFjdGlvbktleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkhhZFVz
ZXJJbnRlcmFjdGlvbiIpKTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJNb3N0UmVjZW50VXNlckludGVyYWN0aW9uIikpOwpAQCAtMTExNiw3ICsxMTE3LDgg
QEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHRpbWVzQWNjZXNzZWRGaXJzdFBhcnR5SW50ZXJhY3Rpb25LZXkgPSBhZG9wdFdLKFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUaW1lc0FjY2Vzc2VkRmlyc3RQYXJ0eUludGVyYWN0
aW9uIikpOwogCiAgICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8V0tT
dHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5
LCBob3N0TmFtZUtleS5nZXQoKSkpOwotICAgICAgICBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFp
biA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgdG9wRnJhbWVEb21haW5LZXkuZ2V0KCkpKTsKKyAgICAgICAg
V0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4xID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdL
RGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB0b3BGcmFtZURv
bWFpbjFLZXkuZ2V0KCkpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4yID0g
c3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2Fn
ZUJvZHlEaWN0aW9uYXJ5LCB0b3BGcmFtZURvbWFpbjJLZXkuZ2V0KCkpKTsKICAgICAgICAgV0tE
b3VibGVSZWYgbGFzdFNlZW4gPSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5
R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGxhc3RTZWVuS2V5LmdldCgpKSk7
CiAgICAgICAgIFdLQm9vbGVhblJlZiBoYWRVc2VySW50ZXJhY3Rpb24gPSBzdGF0aWNfY2FzdDxX
S0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCBoYWRVc2VySW50ZXJhY3Rpb25LZXkuZ2V0KCkpKTsKICAgICAgICAgV0tEb3VibGVSZWYg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiA9IHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0Rp
Y3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbktleS5nZXQoKSkpOwpAQCAtMTEyNSw3ICsxMTI3LDcgQEAgV0tSZXRhaW5Q
dHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2Fn
ZUZyb21JbmplY3RlZEIKICAgICAgICAgV0tCb29sZWFuUmVmIGlzVmVyeVByZXZhbGVudCA9IHN0
YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdl
Qm9keURpY3Rpb25hcnksIGlzVmVyeVByZXZhbGVudEtleS5nZXQoKSkpOwogICAgICAgICBXS1VJ
bnQ2NFJlZiBkYXRhUmVjb3Jkc1JlbW92ZWQgPSBzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tE
aWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGRhdGFSZWNvcmRz
UmVtb3ZlZEtleS5nZXQoKSkpOwogICAgICAgICAKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhob3N0TmFtZSwgdG9wRnJhbWVE
b21haW4sIFdLRG91YmxlR2V0VmFsdWUobGFzdFNlZW4pLCBXS0Jvb2xlYW5HZXRWYWx1ZShoYWRV
c2VySW50ZXJhY3Rpb24pLCBXS0RvdWJsZUdldFZhbHVlKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b24pLCBXS0Jvb2xlYW5HZXRWYWx1ZShpc0dyYW5kZmF0aGVyZWQpLCBXS0Jvb2xlYW5HZXRWYWx1
ZShpc1ByZXZhbGVudCksIFdLQm9vbGVhbkdldFZhbHVlKGlzVmVyeVByZXZhbGVudCksIFdLVUlu
dDY0R2V0VmFsdWUoZGF0YVJlY29yZHNSZW1vdmVkKSk7CisgICAgICAgIFRlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoaG9zdE5hbWUsIHRvcEZy
YW1lRG9tYWluMSwgdG9wRnJhbWVEb21haW4yLCBXS0RvdWJsZUdldFZhbHVlKGxhc3RTZWVuKSwg
V0tCb29sZWFuR2V0VmFsdWUoaGFkVXNlckludGVyYWN0aW9uKSwgV0tEb3VibGVHZXRWYWx1ZSht
b3N0UmVjZW50VXNlckludGVyYWN0aW9uKSwgV0tCb29sZWFuR2V0VmFsdWUoaXNHcmFuZGZhdGhl
cmVkKSwgV0tCb29sZWFuR2V0VmFsdWUoaXNQcmV2YWxlbnQpLCBXS0Jvb2xlYW5HZXRWYWx1ZShp
c1ZlcnlQcmV2YWxlbnQpLCBXS1VJbnQ2NEdldFZhbHVlKGRhdGFSZWNvcmRzUmVtb3ZlZCkpOwog
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAgLTEyNDksNiArMTI1MSwyMCBAQCBX
S1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAg
ICAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIklz
U3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZSIpKSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5
cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOworICAgICAgICAK
KyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19j
YXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBhdXRvIHN1Ykhvc3RL
ZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTdWJIb3N0IikpOwor
ICAgICAgICBhdXRvIHRvcEhvc3RLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJUb3BIb3N0IikpOworICAgICAgICAKKyAgICAgICAgV0tTdHJpbmdSZWYgc3ViSG9z
dCA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgc3ViSG9zdEtleS5nZXQoKSkpOworICAgICAgICBXS1N0cmlu
Z1JlZiB0b3BIb3N0ID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0
ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB0b3BIb3N0S2V5LmdldCgpKSk7CisKKyAg
ICAgICAgYm9vbCBzdGF0aXN0aWNJbkRhdGFiYXNlT25jZSA9IFRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5pc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2Uoc3ViSG9zdCwgdG9wSG9zdCk7
CisgICAgICAgIHJldHVybiBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShzdGF0aXN0aWNJbkRhdGFi
YXNlT25jZSkpOworICAgIH0KKyAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkIikpIHsKICAgICAg
ICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBl
SUQoKSk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcwMmRkNjVmZjcyMWU0YjYyNWI5ZDcxYTkxN2JhNmJl
NDQwY2ZhNTIuLmVjYzlkOWNjOTlmODBlMmUyZTg3OTBmNTQ5MGJkMTU2M2QyOWFkM2IgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxOS0xMC0wNyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hl
bmV5QGFwcGxlLmNvbT4KKworICAgICAgICBEb21haW4gcmVsYXRpb25zaGlwcyBpbiB0aGUgSVRQ
IERhdGFiYXNlIHNob3VsZCBiZSBpbnNlcnRlZCBpbiBhIHNpbmdsZSBxdWVyeSBhbmQgaWdub3Jl
IHJlcGVhdCBpbnNlcnQgYXR0ZW1wdHMuICgyMDI2MDQpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI2MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU1OTk1ODMxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVkaXRlZCB0aGUgbWVyZ2Utc3RhdGlzdGljcyB0ZXN0cyB0byBhbHNvIHRlc3QgdGhlIGxp
c3QtaW5zZXJ0aW9uCisgICAgICAgIGNoYW5nZSBtYWRlIGluIHRoaXMgcGF0Y2guIEFsc28gYWRk
ZWQgYSBuZXcgdGVzdCB0byBlbnN1cmUgcmVwZWF0CisgICAgICAgIGluc2VydHMgb25seSByZXN1
bHQgaW4gb25lIGVudHJ5IGluIHRoZSBkYXRhYmFzZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tYW55LWluc2VydHMtb25seS1pbnNlcnQtb25jZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9tYW55LWluc2VydHMtb25seS1pbnNlcnQtb25jZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMt
bm90LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1vdmVyd3JpdGUtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMt
cGFydGlhbGx5LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sOgorCiAyMDE5LTEwLTA0ICBUcnVpdHQg
U2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvbGluZS1zdHlsZXMvMmQubGluZS5j
YXAucm91bmQuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWFueS1pbnNlcnRzLW9ubHktaW5zZXJ0LW9uY2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL21hbnktaW5zZXJ0cy1vbmx5LWluc2VydC1vbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hYTI4MDUyMDUyMThjOTAwNjUzMDA2NzRkYmNjNGJiODg1NGU0NTI2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21hbnkt
aW5zZXJ0cy1vbmx5LWluc2VydC1vbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitU
ZXN0cyB0aGF0IG1hbnkgaW5zZXJ0cyBpbnRvIHRoZSBkYXRhYmFzZSBvbmx5IHJlc3VsdCBpbiBv
bmUgcm93LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB1cmwgc2V0IGFz
IHN1YmZyYW1lCitQQVNTIFJlbGF0aW9uc2hpcHMgYXJlIG9ubHkgaW4gdGhlIGRhdGFiYXNlIG9u
Y2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L21hbnktaW5zZXJ0cy1vbmx5LWluc2VydC1vbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWFueS1pbnNlcnRzLW9ubHktaW5zZXJ0LW9uY2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMDE5YjBkNjI3NzM5MjhjY2U3ZWJmMDZmZWYwNGQxN2NlZTdhYzI4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL21hbnktaW5zZXJ0cy1vbmx5LWluc2VydC1vbmNlLmh0bWwKQEAgLTAsMCArMSw3
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICAgICAgPHRpdGxlPlRlc3RzIHRoYXQgbWFueSBpbnNlcnRzIGludG8gdGhl
IGRhdGFiYXNlIG9ubHkgcmVzdWx0IGluIG9uZSByb3cuPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCBtYW55IGluc2VydHMgaW50byB0aGUgZGF0YWJhc2Ugb25seSByZXN1
bHQgaW4gb25lIHJvdy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IHRvcEZyYW1lVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBz
dWJmcmFtZVVybCA9ICJodHRwOi8vMTI3LjAuMS4xOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlv
biBjaGVja0NsYXNzaWZpY2F0aW9uQW5kQ29udGludWUoKSB7CisgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKHN1YmZyYW1lVXJsLCB0
b3BGcmFtZVVybCkpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoInVybCBkaWQgbm90IGdldCBz
ZXQgYXMgc3ViZnJhbWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oc3ViZnJhbWVVcmwsIHRvcEZyYW1lVXJsKSkgewor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgidXJsIGRpZCBub3QgZ2V0IHNldCBhcyByZWRpcmVjdGlu
ZyB0byB0b3AgZnJhbWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoc3ViZnJhbWVVcmwsIHRvcEZyYW1lVXJsKSkg
eworICAgICAgICAgICAgdGVzdEZhaWxlZCgidXJsIGRpZCBub3QgZ2V0IHNldCBhcyBzdWJyZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJ1cmwgc2V0IGFz
IHN1YmZyYW1lIik7CisgICAgICAgICAgICBjaGVja0NvdW50U3RhdGlzdGljcygpOworICAgICAg
ICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5zZXJ0TWFueVRpbWVzKHVybCkgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4odXJs
LCB0b3BGcmFtZVVybCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbih1cmwsIHRvcEZyYW1lVXJsKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHVybCwgdG9wRnJhbWVV
cmwpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJh
bWVPcmlnaW4odXJsLCB0b3BGcmFtZVVybCk7CisgICAgICAgIAorICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4odXJsLCB0b3BGcmFt
ZVVybCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZU9yaWdpbih1cmwsIHRvcEZyYW1lVXJsKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHVybCwgdG9wRnJhbWVVcmwp
OworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4odXJsLCB0b3BGcmFtZVVybCk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHVybCwg
dG9wRnJhbWVVcmwpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0VG8odXJsLCB0b3BGcmFtZVVybCk7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyh1cmwsIHRvcEZyYW1lVXJs
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKHVybCwgdG9wRnJhbWVVcmwpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFVwU3Rh
dGlzdGljc0FuZENvbnRpbnVlKCkgeworICAgICAgICBpbnNlcnRNYW55VGltZXMoc3ViZnJhbWVV
cmwpOworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tDbGFzc2lmaWNhdGlvbkFuZENvbnRpbnVlKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ291bnRTdGF0aXN0aWNzKHJlc3VsdCkgeworICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2Uoc3ViZnJhbWVV
cmwsIHRvcEZyYW1lVXJsKSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlJlbGF0aW9uc2hpcHMg
YXJlIG9ubHkgaW4gdGhlIGRhdGFiYXNlIG9uY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlJlbGF0aW9uc2hpcHMgYXJlIGluIHRoZSBkYXRhYmFzZSBtb3JlIHRo
YW4gb25jZS4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgIH0KKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsK
KyAgICAgICAgICAgIHNldFVwU3RhdGlzdGljc0FuZENvbnRpbnVlKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1kb2Vz
LW5vdC1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1ub3Qtb3ZlcndyaXRlLWRh
dGFiYXNlLmh0bWwKaW5kZXggNDI0OWVlYzM5ZTNmMTFiNWU0NTdkYmQ4YmI5MmVjN2RiYzVkOGVk
ZS4uNGQ0YTI4MzY3YmY2YTQ3MjA3YWNiNTlmYjFiMmE5OTNiZTBiYzgxMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRp
c3RpYy1kb2VzLW5vdC1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtbm90
LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgY29uc3QgbmV3
ZXJUaW1lc3RhbXAgPSBvbGRlclRpbWVzdGFtcCArIDEwOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICBmdW5jdGlvbiBpbnNlcnRTZWNvbmRTdGF0aXN0aWMoKSB7
Ci0gICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyh1cmwsICIiLCBv
bGRlclRpbWVzdGFtcCwgZmFsc2UsIDk5LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBmdW5jdGlv
bigpIHsKKyAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKHVybCwg
IiIsICIiLCBvbGRlclRpbWVzdGFtcCwgZmFsc2UsIDk5LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAw
LCBmdW5jdGlvbigpIHsKICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh1cmwpKQogICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBu
b3Qgb3ZlcndyaXRlIG9sZCBwcmV2YWxlbnQgcmVzb3VyY2UgdmFsdWUuIik7CiAgICAgICAgICAg
ZWxzZQpAQCAtNDQsNyArNDQsNyBAQAogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBydW5UZXN0
UnVubmVyVGVzdCgpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0
aXN0aWModXJsLCAiIiwgbmV3ZXJUaW1lc3RhbXAsIHRydWUsIDEwMCwgdHJ1ZSwgdHJ1ZSwgdHJ1
ZSwgMSwgZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdl
U3RhdGlzdGljKHVybCwgIiIsICIiLCBuZXdlclRpbWVzdGFtcCwgdHJ1ZSwgMTAwLCB0cnVlLCB0
cnVlLCB0cnVlLCAxLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmwpKQogICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1z
dGF0aXN0aWMtZG9lcy1vdmVyd3JpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1kb2Vz
LW92ZXJ3cml0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKaW5kZXggYWRjZjdlODBkNzk5MGY4MDQ0
NzAxNGI3ZDVlMmJhMDI0MjkzMmUxOC4uNWZiMWU0YTUzMDdkMGY4Y2U0ZDYzMGJlZGI4MTUzNDM3
MGU4YTI2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1kb2VzLW92ZXJ3cml0ZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L21lcmdlLXN0YXRpc3RpYy1kb2VzLW92ZXJ3cml0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTcsNyArNyw4IEBAIFBBU1MgSG9zdCBvdmVyd3JvdGUgb2xkIHByZXZhbGVudCByZXNvdXJjZSB2
YWx1ZS4KIFBBU1MgSG9zdCBvdmVyd3JvdGUgb2xkIHZlcnkgcHJldmFsZW50IHJlc291cmNlIHZh
bHVlLgogUEFTUyBIb3N0IG92ZXJ3cm90ZSBvbGQgdXNlciBpbnRlcmFjdGlvbiB2YWx1ZS4KIFBB
U1MgSG9zdCBvdmVyd3JvdGUgb2xkIGdyYW5kZmF0aGVyZWQgdmFsdWUuCi1QQVNTIEhvc3Qgc2V0
IGFzIHN1YmZyYW1lIHVuZGVyIHRvcCBmcmFtZS4KK1BBU1MgSG9zdCBzZXQgYXMgc3ViZnJhbWUg
dW5kZXIgdG9wIGZyYW1lMS4KK1BBU1MgSG9zdCBzZXQgYXMgc3ViZnJhbWUgdW5kZXIgdG9wIGZy
YW1lMi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L21lcmdlLXN0YXRpc3RpYy1kb2VzLW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1kb2Vz
LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sCmluZGV4IDE0MTJlMTVjYzgwZjRlN2E4M2Y0MTU3ODAw
ZDdjMzRiMDg5ZjQ4NjQuLjFhMTk5NDk0NTdlMmM3NjhhNDA3ZGExNTAwMjUzY2JhYjJjYmZmZGMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGlj
LWRvZXMtb3ZlcndyaXRlLWRhdGFiYXNlLmh0bWwKQEAgLTExLDUxICsxMSw1OCBAQAogICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgY29uc3QgdXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCI7Ci0gICAgY29uc3Qgc2FtcGxlVG9wRnJhbWVVUkwgPSAiaHR0cDovL3RvcEZyYW1lRG9t
YWluOjgwMDAiOworICAgIGNvbnN0IHNhbXBsZVRvcEZyYW1lVVJMMSA9ICJodHRwOi8vdG9wRnJh
bWVEb21haW4xOjgwMDAiOworICAgIGNvbnN0IHNhbXBsZVRvcEZyYW1lVVJMMiA9ICJodHRwOi8v
dG9wRnJhbWVEb21haW4yOjgwMDAiOwogICAgIGNvbnN0IG9sZGVyVGltZXN0YW1wID0gTWF0aC5y
b3VuZCgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMCk7CiAgICAgY29uc3QgbmV3ZXJUaW1l
c3RhbXAgPSBvbGRlclRpbWVzdGFtcCArIDEwOwogICAgIGNvbnN0IG1vc3RSZWNlbnRVSVRvVHJp
Z2dlckZpcnN0UGFydHlJbnRlcmFjdGlvbkNvdW50ID0gbmV3ZXJUaW1lc3RhbXAgKyA5MDAwMDsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgZnVuY3Rpb24gaW5z
ZXJ0U2Vjb25kU3RhdGlzdGljKCkgewogICAgIAotICAgICAgICAvLyBzZXQgdGhpcyByZXNvdXJj
ZSBhcyBwcmV2YWxlbnQgc28gaXQgaXMgaW4gdGhlIHN0YXRpc3RpY3Mgc3RvcmUKLSAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc2FtcGxlVG9wRnJhbWVV
UkwsIHRydWUsIGZ1bmN0aW9uKCkgewotICAgICAgICAKLSAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWModXJsLCBzYW1wbGVUb3BGcmFtZVVSTCwgbmV3
ZXJUaW1lc3RhbXAsIHRydWUsIG1vc3RSZWNlbnRVSVRvVHJpZ2dlckZpcnN0UGFydHlJbnRlcmFj
dGlvbkNvdW50LCB0cnVlLCB0cnVlLCB0cnVlLCAxLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybCkp
Ci0gICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBvdmVyd3JvdGUgb2xkIHBy
ZXZhbGVudCByZXNvdXJjZSB2YWx1ZS4iKTsKLSAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IG5vdCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAvLyBzZXQgdXJsMSBhcyBwcmV2YWxlbnQgc28gaXQgaXMgaW4g
dGhlIHN0YXRpc3RpY3Mgc3RvcmUKKyAgICAgICAgLy8gc2V0IHVybDIgaGF2aW5nIFVJIHNvIGl0
IGlzIGluIHRoZSBzdGF0aXN0aWNzIHN0b3JlCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHNhbXBsZVRvcEZyYW1lVVJMMSwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc2FtcGxlVG9wRnJhbWVVUkwyLCB0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyh1cmwsIHNhbXBs
ZVRvcEZyYW1lVVJMMSwgc2FtcGxlVG9wRnJhbWVVUkwyLCBuZXdlclRpbWVzdGFtcCwgdHJ1ZSwg
bW9zdFJlY2VudFVJVG9UcmlnZ2VyRmlyc3RQYXJ0eUludGVyYWN0aW9uQ291bnQsIHRydWUsIHRy
dWUsIHRydWUsIDEsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qgb3Zlcndyb3RlIG9sZCBwcmV2YWxlbnQgcmVz
b3VyY2UgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IG5vdCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOwogCi0gICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NW
ZXJ5UHJldmFsZW50UmVzb3VyY2UodXJsKSkKLSAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJIb3N0IG92ZXJ3cm90ZSBvbGQgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UgdmFsdWUuIik7
Ci0gICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBub3Qgc2V0IGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1
cmwpKQotICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qgb3Zlcndyb3RlIG9s
ZCB1c2VyIGludGVyYWN0aW9uIHZhbHVlLiIpOwotICAgICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgbm90IGxvZ2dlZCBmb3IgdXNlciBp
bnRlcmFjdGlvbi4iKTsKLSAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQodXJsKSkKLSAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IG92ZXJ3cm90ZSBvbGQgZ3JhbmRmYXRoZXJlZCB2
YWx1ZS4iKTsKLSAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IG5vdCBzZXQgYXMgZ3JhbmRmYXRoZXJlZC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UodXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBvdmVy
d3JvdGUgb2xkIHZlcnkgcHJldmFsZW50IHJlc291cmNlIHZhbHVlLiIpOworICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBub3Qgc2V0IGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qgb3Zlcndy
b3RlIG9sZCB1c2VyIGludGVyYWN0aW9uIHZhbHVlLiIpOworICAgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBub3QgbG9n
Z2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NHcmFuZGZhdGhl
cmVkKHVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qgb3Zl
cndyb3RlIG9sZCBncmFuZGZhdGhlcmVkIHZhbHVlLiIpOworICAgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBub3Qgc2V0
IGFzIGdyYW5kZmF0aGVyZWQuIik7CiAKLSAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIodXJsLCBzYW1wbGVUb3BGcmFt
ZVVSTCkpCi0gICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBzZXQgYXMgc3Vi
ZnJhbWUgdW5kZXIgdG9wIGZyYW1lLiIpOwotICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgbm90IHNldCBhcyBzdWJmcmFtZSB1bmRl
ciB0b3AgZnJhbWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcih1cmwsIHNhbXBsZVRvcEZyYW1lVVJM
MSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qgc2V0IGFzIHN1
YmZyYW1lIHVuZGVyIHRvcCBmcmFtZTEuIik7CisgICAgICAgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IG5vdCBzZXQgYXMgc3Vi
ZnJhbWUgdW5kZXIgdG9wIGZyYW1lMS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKHVybCwgc2FtcGxl
VG9wRnJhbWVVUkwyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9z
dCBzZXQgYXMgc3ViZnJhbWUgdW5kZXIgdG9wIGZyYW1lMi4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgbm90
IHNldCBhcyBzdWJmcmFtZSB1bmRlciB0b3AgZnJhbWUyLiIpOwogCi0gICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
IH0pOwotICAgICAgICAgfSk7CisgICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0K
ICAgICAKICAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWModXJsLCAiIiwgb2xkZXJUaW1lc3RhbXAs
IGZhbHNlLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWModXJsLCAiIiwgIiIsIG9sZGVy
VGltZXN0YW1wLCBmYWxzZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh1cmwpKQogICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1wYXJ0aWFsbHktb3Zl
cndyaXRlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtcGFydGlhbGx5LW92ZXJ3cml0ZS1kYXRh
YmFzZS5odG1sCmluZGV4IDQ0ZDE2ZDYwYjhiMDkyNGUyNWY0MTM5YzBmODg4MmI0MDMwMmQwNzEu
LmFiM2M3MmI1NjRiZjA2MzQ2MjNjZWQwZDJiMjc0MThkODNhMzlhMTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0
aWMtZG9lcy1wYXJ0aWFsbHktb3ZlcndyaXRlLWRhdGFiYXNlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1kb2Vz
LXBhcnRpYWxseS1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbApAQCAtMjEsNyArMjEsNyBAQAogICAg
ICAgICAvLyBzZXQgdGhpcyByZXNvdXJjZSBhcyBwcmV2YWxlbnQgc28gaXQgaXMgaW4gdGhlIHN0
YXRpc3RpY3Mgc3RvcmUKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc2FtcGxlVG9wRnJhbWVVUkwsIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAK
LSAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWModXJs
LCBzYW1wbGVUb3BGcmFtZVVSTCwgbmV3ZXJUaW1lc3RhbXAsIGZhbHNlLCBtb3N0UmVjZW50VUlU
b1RyaWdnZXJGaXJzdFBhcnR5SW50ZXJhY3Rpb25Db3VudCwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgMSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdl
U3RhdGlzdGljKHVybCwgc2FtcGxlVG9wRnJhbWVVUkwsICIiLCBuZXdlclRpbWVzdGFtcCwgZmFs
c2UsIG1vc3RSZWNlbnRVSVRvVHJpZ2dlckZpcnN0UGFydHlJbnRlcmFjdGlvbkNvdW50LCB0cnVl
LCB0cnVlLCB0cnVlLCAxLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBvdmVyd3JvdGUgb2xkIHByZXZhbGVudCByZXNvdXJj
ZSB2YWx1ZS4iKTsKICAgICAgICAgICAgICAgICAgIGVsc2UKQEAgLTU1LDcgKzU1LDcgQEAKICAg
ICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7Ci0gICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKHVybCwgIiIsIG9sZGVyVGltZXN0
YW1wLCBmYWxzZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZnVuY3Rpb24oKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKHVybCwgIiIsICIiLCBv
bGRlclRpbWVzdGFtcCwgZmFsc2UsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodXJsKSkKICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380370</attachid>
            <date>2019-10-07 15:56:58 -0700</date>
            <delta_ts>2019-10-07 16:17:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202604-20191007155657.patch</filename>
            <type>text/plain</type>
            <size>109119</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY2MDZjNGFkOTM4MDIwNDdh
MDg4MDZjMjg4NzQyZGZhMmU2OThhYjMuLjAyYjc4Yzk5ZmUxYjM3OWQxMmIwNTJkMmZjOWU4ZWNl
YjNhZGVjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMTktMTAtMDcgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9tYWluIHJlbGF0
aW9uc2hpcHMgaW4gdGhlIElUUCBEYXRhYmFzZSBzaG91bGQgYmUgaW5zZXJ0ZWQgaW4gYSBzaW5n
bGUgcXVlcnkgYW5kIGlnbm9yZSByZXBlYXQgaW5zZXJ0IGF0dGVtcHRzLiAoMjAyNjA0KQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNjA0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81NTk5NTgzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJp
cyBEdW1lei4gCisgICAgICAgIAorICAgICAgICBUaGlzIHBhdGNoIGFkZHJlc3NlcyB0d28gY2xl
YW4tdXBzIGZvciB0aGUgSVRQIFNRTGl0ZSBEYXRhYmFzZSBTdG9yZS4KKyAgICAgICAgRmlyc3Qs
IGJ5IHVzaW5nIElOU0VSVCBPUiBJR05PUkUgYXMgb3Bwb3NlZCB0byBJTlNFUlQsIGl0IGVsaW1p
bmF0ZXMKKyAgICAgICAgdGhlIG5lZWQgdG8gY2hlY2sgaWYgYSByZWxhdGlvbnNoaXAgYWxyZWFk
eSBleGlzdHMgaW4gdGhlIGRhdGFiYXNlCisgICAgICAgIGJlZm9yZSBpbnNlcnRpbmcgaXQuIFNl
Y29uZCwgaW5zdGVhZCBvZiBsb29waW5nIHRocm91Z2ggZG9tYWluIGxpc3RzCisgICAgICAgIGFu
ZCBpbnNlcnRpbmcgZWFjaCByZWxhdGlvbnNoaXAgYXMgYSBzZXBhcmF0ZSBxdWVyeSwgdGhpcyBw
YXRjaCBub3cKKyAgICAgICAgY29udmVydHMgbGlzdHMgdG8gYSBzdHJpbmcgd2hpY2ggU1FMaXRl
IGNhbiB1c2UgdG8gaW5zZXJ0IG11bHRpcGxlCisgICAgICAgIHJvd3MgaW50byBhIGRhdGFiYXNl
IHVzaW5nIGEgc2luZ2xlIHF1ZXJ5LgorCisgICAgICAgIFNvbWUgRXhpc3RzIHF1ZXJpZXMgY291
bGQgbm90IGJlIGRlbGV0ZWQgYmVjYXVzZSB0aGV5IHdlcmUgYmVpbmcKKyAgICAgICAgdXNlZCBm
b3IgdGVzdGluZy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMpOgorICAgICAgICBSZW1vdmVkIG9sZCBpbnNl
cnQgcXVlcmllcyBhbmQgcmVwbGFjZWQgdGhlbSB3aXRoIHF1ZXJpZXMgYWJsZSB0bworICAgICAg
ICBpbnNlcnQgc3RyaW5nLWxpc3RzIG9mIGRvbWFpbnMgaW4gYSBzaW5nbGUgcXVlcnkuIEFsc28g
cmVvcmdhbml6ZWQKKyAgICAgICAgdGhlIHF1ZXJpZXMgYnkgZnVuY3Rpb25hbGl0eSB0byBtYWtl
IHRoZW0gZWFzaWVyIHRvIGZpbmQgYW5kIGVkaXQuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVuaXF1ZUluZGljZXMpOgorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRl
U2NoZW1hKToKKyAgICAgICAgSW4gb3JkZXIgdG8gcHJvcGVybHkgdGFrZSBhZHZhbnRhZ2Ugb2Yg
dGhlIElOU0VSVCBPUiBJR05PUkUKKyAgICAgICAgZnVuY3Rpb25hbGl0eSwgdW5pcXVlIGluZGlj
ZXMgbXVzdCBiZSBlc3RhYmxpc2hlZCBzbyB0aGUgU1FMaXRlIHRhYmxlCisgICAgICAgIGlzIGF3
YXJlIG9mIHdoYXQgcGF0dGVybnMgdG8gbG9vayBmb3Igd2hlbiBpZ25vcmluZyBhIG5ldyBpbnNl
cnQuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmVuc3VyZUFuZG1ha2VEb21haW5MaXN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyk6CisgICAgICAgIExvb3BpbmcgdGhyb3VnaCB0aGUg
ZG9tYWluIGxpc3QgaXMgbm8gbG9uZ2VyIG5lZWRlZCB3aXRoIHRoZSBuZXcgcXVlcnkKKyAgICAg
ICAgY2hhbmdlcy4gQWRkaXRpb25hbGx5LCBlbnN1cmluZyBhIGRvbWFpbiBpcyBpbiB0aGUgT2Jz
ZXJ2ZWQgRG9tYWlucworICAgICAgICB0YWJsZSBvZiB0aGUgZGF0YWJhc2UgbXVzdCBiZSBkb25l
IGJlZm9yZSB1dGlsaXppbmcgYW55IGluc2VydGluZyBvZiAKKyAgICAgICAgcmVsYXRpb25zaGlw
cyBiZWNhdXNlIHRoZSByZWxhdGlvbnNoaXAgcXVlcmllcyByZWx5IG9uIGZldGNoaW5nIHRoZQor
ICAgICAgICB0b3BGcmFtZSBkb21haW5JRCBmcm9tIHRoZSBPYnNlcnZlZERvbWFpbnMgdGFibGUu
CisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nQ3Jvc3NTaXRlTG9hZFdp
dGhMaW5rRGVjb3JhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4pOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyk6
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpz
ZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
VG8pOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20pOgorICAgICAgICBXaXRoIHRoZSBlbnN1
cmUgY2hlY2sgYmVpbmcgZG9uZSBvbmNlIGluIHRoZSBlbnN1cmVBbmRtYWtlRG9tYWluTGlzdAor
ICAgICAgICBmdW5jdGlvbiwgdGhlc2UgZnVuY3Rpb25zIG5vIGxvbmdlciBoYXZlIHRvIG1ha2Ug
dGhhdCBjaGVjayBiZWZvcmUKKyAgICAgICAgaW5zZXJ0aW5nLgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoK
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJh
c2VPbmNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICBDaGFuZ2VzIGluIFdlUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlIHdlcmUgZm9yIHRlc3Rpbmcgb25seS4gVGhpcworICAgICAgICBwYXRj
aCB1cGRhdGVkIHRoZSBtZXJnZSBzdGF0aXN0aWMgdGVzdGluZyB0byBhbHNvIHRlc3QgdGhpcyBj
aGFuZ2UgYnkKKyAgICAgICAgaGF2aW5nIGEgdG9wRnJhbWVEb21haW4gbGlzdCB3aXRoIG1vcmUg
dGhhbiBvbmUgZG9tYWluLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bWVyZ2VTdGF0aXN0aWNG
b3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmlzUmVsYXRpb25z
aGlwT25seUluRGF0YWJhc2VPbmNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYu
Y3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01lcmdlU3RhdGlz
dGljKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc09ubHlJbkRhdGFi
YXNlT25jZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjptZXJnZVN0YXRpc3RpY0Zv
clRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1JlbGF0
aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgIEFkZGVkIGEgbmV3
IGZ1bmN0aW9uIGZvciB0ZXN0aW5nIHRoYXQgdGhlcmUgYXJlIG5vIHJlcGVhdCBpbnNlcnRzCisg
ICAgICAgIGludG8gdGhlIGRhdGFiYXNlLiBVcGRhdGVkIG1lcmdlU3RhdGlzdGljcyB0byB0ZXN0
IHRoZSBsaXN0LWluc2VydAorICAgICAgICBmdW5jdGlvbmFsaXR5LgorCiAyMDE5LTEwLTA3ICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIExh
eWVyaW5nIHZpb2xhdGlvbiBpbiBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5j
aGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKaW5kZXggODhmZGI3ZTZkMmM2NGQyY2Q5M2Q4NTM3MWRmNmExZDFjMDE3MmVjZS4u
NTVjM2RmYmVmZWE3MTk5OTI1YTQwZWM5ZDcyOTI4NWJiYWRhNDQxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC02Miw1
NyArNjIsNTYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAjZGVmaW5lIFJFTEVBU0VfTE9H
X0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCBmbXQsIC4uLikgICgodm9pZCkwKQogI2VuZGlm
CiAKKy8vIENPVU5UIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIG9ic2VydmVkRG9tYWluQ291bnRR
dWVyeSA9ICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBPYnNlcnZlZERvbWFpbnMiX3M7Citjb25zdGV4
cHIgYXV0byBjb3VudFN1YmZyYW1lVW5kZXJUb3BGcmFtZVF1ZXJ5ID0gIlNFTEVDVCBDT1VOVCgq
KSBGUk9NIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViRnJhbWVEb21haW5J
RCA9ID8gQU5EIHRvcEZyYW1lRG9tYWluSUQgPSA/OyJfczsKK2NvbnN0ZXhwciBhdXRvIGNvdW50
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lUXVlcnkgPSAiU0VMRUNUIENPVU5UKCopIEZST00gU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0g
PyBBTkQgdG9wRnJhbWVEb21haW5JRCA9ID87Il9zOworY29uc3RleHByIGF1dG8gY291bnRTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnkgPSAiU0VMRUNUIENPVU5UKCopIEZST00gU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gPyBB
TkQgdG9Eb21haW5JRCA9ID87Il9zOworCisvLyBJTlNFUlQgUXVlcmllcwogY29uc3RleHByIGF1
dG8gaW5zZXJ0T2JzZXJ2ZWREb21haW5RdWVyeSA9ICJJTlNFUlQgSU5UTyBPYnNlcnZlZERvbWFp
bnMgKHJlZ2lzdHJhYmxlRG9tYWluLCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCIKICAg
ICAibW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIGdyYW5kZmF0aGVyZWQsIGlzUHJldmFs
ZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgdGltZXNBY2Nlc3NlZEFz
Rmlyc3RQYXJ0eUR1ZVRvVXNlckludGVyYWN0aW9uLCIKICAgICAidGltZXNBY2Nlc3NlZEFzRmly
c3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSkgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/
LCA/LCA/LCA/KSJfczsKIGNvbnN0ZXhwciBhdXRvIGluc2VydFRvcExldmVsRG9tYWluUXVlcnkg
PSAiSU5TRVJUIElOVE8gVG9wTGV2ZWxEb21haW5zIFZBTFVFUyAoPykiX3M7Ci1jb25zdGV4cHIg
YXV0byBkb21haW5JREZyb21TdHJpbmdRdWVyeSA9ICJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNl
cnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwotY29uc3RleHByIGF1
dG8gc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zUXVlcnkgPSAiSU5TRVJUIElOVE8g
U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIChkb21haW5JRCwgdG9wTGV2ZWxEb21h
aW5JRCkgIgotICAgICJTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgcmVnaXN0cmFibGVEb21haW4gPT0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIHN0b3JhZ2VBY2Nl
c3NVbmRlclRvcEZyYW1lRG9tYWluc0V4aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElTVFMgKFNFTEVD
VCAxIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklE
ID0gPyAiCi0iQU5EIHRvcExldmVsRG9tYWluSUQgPSAoU0VMRUNUIGRvbWFpbklEIEZST00gT2Jz
ZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPykpIl9zOwotY29uc3RleHBy
IGF1dG8gdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5ID0gIklOU0VSVCBJTlRPIFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzVG8gKHNvdXJjZURvbWFpbklELCB0b0RvbWFpbklEKSBTRUxFQ1Qg
PywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4g
PT0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHNR
dWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RzVG8gV0hFUkUgc291cmNlRG9tYWluSUQgPSA/ICIKLSAgICAiQU5EIHRvRG9tYWluSUQgPSAo
U0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9t
YWluID0gPykpIl9zOwotY29uc3RleHByIGF1dG8gdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9t
UXVlcnkgPSAiSU5TRVJUIElOVE8gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tICh0YXJnZXRE
b21haW5JRCwgZnJvbURvbWFpbklEKSAiCi0gICAgIlNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9i
c2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7Ci1jb25zdGV4cHIg
YXV0byB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJ
U1RTIChTRUxFQ1QgMSBGUk9NIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSBXSEVSRSB0YXJn
ZXREb21haW5JRCA9ID8gIgotICAgICJBTkQgZnJvbURvbWFpbklEID0gKFNFTEVDVCBkb21haW5J
RCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8pKSJfczsK
LWNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbVF1ZXJ5ID0gIklOU0VS
VCBJTlRPIFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSAoZnJvbURvbWFpbklELCB0b0RvbWFp
bklEKSAiCi0gICAgIlNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVS
RSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7Ci1jb25zdGV4cHIgYXV0byB0b3BGcmFtZUxpbmtE
ZWNvcmF0aW9uc0Zyb21FeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9N
IFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSBXSEVSRSBmcm9tRG9tYWluSUQgPSA/ICIKLSAg
ICAiQU5EIHRvRG9tYWluSUQgPSAoU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5z
IFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPykpIl9zOwotY29uc3RleHByIGF1dG8gc3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5ID0gIklOU0VSVCBJTlRPIFN1YmZyYW1lVW5kZXJU
b3BGcmFtZURvbWFpbnMgKHN1YkZyYW1lRG9tYWluSUQsIHRvcEZyYW1lRG9tYWluSUQpICIKLSAg
ICAiU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJh
YmxlRG9tYWluID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIHN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZy
YW1lRG9tYWluc1F1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgSU5UTyBTdG9yYWdlQWNjZXNzVW5k
ZXJUb3BGcmFtZURvbWFpbnMgKGRvbWFpbklELCB0b3BMZXZlbERvbWFpbklEKSBTRUxFQ1QgPywg
ZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gaW4g
KCAiX3M7Citjb25zdGV4cHIgYXV0byB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnkgPSAi
SU5TRVJUIE9SIElHTk9SRSBpbnRvIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8gKHNvdXJjZURv
bWFpbklELCB0b0RvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFp
bnMgd2hlcmUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0byBzdWJm
cmFtZVVuZGVyVG9wRnJhbWVEb21haW5zUXVlcnkgPSAiSU5TRVJUIE9SIElHTk9SRSBpbnRvIFN1
YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgKHN1YkZyYW1lRG9tYWluSUQsIHRvcEZyYW1lRG9t
YWluSUQpIFNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyB3aGVyZSByZWdp
c3RyYWJsZURvbWFpbiBpbiAoICJfczsKK2NvbnN0ZXhwciBhdXRvIHRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzRnJvbVF1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgSU5UTyBUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20gKHRhcmdldERvbWFpbklELCBmcm9tRG9tYWluSUQpIFNFTEVDVCA/LCBkb21h
aW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBpbiAoICJf
czsKK2NvbnN0ZXhwciBhdXRvIHRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbVF1ZXJ5ID0gIklO
U0VSVCBPUiBJR05PUkUgSU5UTyBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20gKGZyb21Eb21h
aW5JRCwgdG9Eb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5z
IFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9zOworY29uc3RleHByIGF1dG8gc3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgSU5UTyBT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zIChzdWJyZXNvdXJjZURvbWFpbklELCB0b3BG
cmFtZURvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0byBzdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnkgPSAiSU5TRVJUIE9SIElHTk9SRSBJTlRPIFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzVG8gKHN1YnJlc291cmNlRG9tYWluSUQsIHRvRG9tYWluSUQpIFNF
TEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURv
bWFpbiBpbiAoICJfczsKK2NvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbVF1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgSU5UTyBTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0c0Zyb20gKHN1YnJlc291cmNlRG9tYWluSUQsIGZyb21Eb21haW5JRCkgU0VMRUNUID8sIGRv
bWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIGluICgg
Il9zOworCisvLyBFWElTVFMgUXVlcmllcwogY29uc3RleHByIGF1dG8gc3ViZnJhbWVVbmRlclRv
cEZyYW1lRG9tYWluRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBT
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIHN1YkZyYW1lRG9tYWluSUQgPSA/ICIK
ICAgICAiQU5EIHRvcEZyYW1lRG9tYWluSUQgPSAoU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2
ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPykpIl9zOwotY29uc3RleHByIGF1
dG8gc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5ID0gIklOU0VSVCBJTlRPIFN1
YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgKHN1YnJlc291cmNlRG9tYWluSUQsIHRvcEZy
YW1lRG9tYWluSUQpICIKLSAgICAiU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21h
aW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIHN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElTVFMgKFNF
TEVDVCAxIEZST00gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyAiCiAgICAgIldIRVJF
IHN1YnJlc291cmNlRG9tYWluSUQgPSA/IEFORCB0b3BGcmFtZURvbWFpbklEID0gKFNFTEVDVCBk
b21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8p
KSJfczsKLWNvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSA9
ICJJTlNFUlQgSU5UTyBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIChzdWJyZXNvdXJjZURv
bWFpbklELCB0b0RvbWFpbklEKSAiCi0gICAgIlNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2Vy
dmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9PSA/Il9zOwogY29uc3RleHByIGF1
dG8gc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0V4aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElT
VFMgKFNFTEVDVCAxIEZST00gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyBXSEVSRSBzdWJy
ZXNvdXJjZURvbWFpbklEID0gPyAiCiAgICAgIkFORCB0b0RvbWFpbklEID0gKFNFTEVDVCBkb21h
aW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8pKSJf
czsKLWNvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5ID0g
IklOU0VSVCBJTlRPIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSAoc3VicmVzb3VyY2VE
b21haW5JRCwgZnJvbURvbWFpbklEKSAiCi0gICAgIlNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9i
c2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9PSA/Il9zOwotY29uc3RleHBy
IGF1dG8gc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3RzUXVlcnkgPSAiU0VMRUNU
IEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gV0hF
UkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8gIgotICAgICJBTkQgZnJvbURvbWFpbklEID0gKFNF
TEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFp
biA9ID8pKSJfczsKK2NvbnN0ZXhwciBhdXRvIHRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbUV4
aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElTVFMgKFNFTEVDVCAxIEZST00gVG9wRnJhbWVMaW5rRGVj
b3JhdGlvbnNGcm9tIFdIRVJFIGZyb21Eb21haW5JRCA9ID8gIgorIkFORCB0b0RvbWFpbklEID0g
KFNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURv
bWFpbiA9ID8pKSJfczsKKworLy8gVVBEQVRFIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25RdWVyeSA9ICJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBo
YWRVc2VySW50ZXJhY3Rpb24gPSA/LCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA9ID8g
IgogICAgICJXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7CiBjb25zdGV4cHIgYXV0byB1
cGRhdGVMYXN0U2VlblF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGxhc3RTZWVu
ID0gPyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7CiBjb25zdGV4cHIgYXV0byB1cGRh
dGVEYXRhUmVjb3Jkc1JlbW92ZWRRdWVyeSA9ICJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBk
YXRhUmVjb3Jkc1JlbW92ZWQgPSA/IFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNv
bnN0ZXhwciBhdXRvIHVwZGF0ZVByZXZhbGVudFJlc291cmNlUXVlcnkgPSAiVVBEQVRFIE9ic2Vy
dmVkRG9tYWlucyBTRVQgaXNQcmV2YWxlbnQgPSA/IFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0g
PyJfczsKLWNvbnN0ZXhwciBhdXRvIGlzUHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJTRUxFQ1Qg
aXNQcmV2YWxlbnQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4g
PSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRlVmVyeVByZXZhbGVudFJlc291cmNlUXVlcnkg
PSAiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaXNWZXJ5UHJldmFsZW50ID0gPyBXSEVSRSBy
ZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBpc1ZlcnlQcmV2YWxlbnRS
ZXNvdXJjZVF1ZXJ5ID0gIlNFTEVDVCBpc1ZlcnlQcmV2YWxlbnQgRlJPTSBPYnNlcnZlZERvbWFp
bnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8gY2xlYXJQ
cmV2YWxlbnRSZXNvdXJjZVF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGlzUHJl
dmFsZW50ID0gMCwgaXNWZXJ5UHJldmFsZW50ID0gMCBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9
ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBoYWRVc2VySW50ZXJhY3Rpb25RdWVyeSA9ICJTRUxFQ1Qg
aGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSBGUk9NIE9i
c2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7CiBjb25zdGV4cHIg
YXV0byB1cGRhdGVHcmFuZGZhdGhlcmVkUXVlcnkgPSAiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBT
RVQgZ3JhbmRmYXRoZXJlZCA9ID8gV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOworCisK
Ky8vIFNFTEVDVCBRdWVyaWVzCitjb25zdGV4cHIgYXV0byBkb21haW5JREZyb21TdHJpbmdRdWVy
eSA9ICJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFi
bGVEb21haW4gPSA/Il9zOworY29uc3RleHByIGF1dG8gaXNQcmV2YWxlbnRSZXNvdXJjZVF1ZXJ5
ID0gIlNFTEVDVCBpc1ByZXZhbGVudCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3Ry
YWJsZURvbWFpbiA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZVF1ZXJ5ID0gIlNFTEVDVCBpc1ZlcnlQcmV2YWxlbnQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOworY29uc3RleHByIGF1dG8gaGFkVXNlckludGVy
YWN0aW9uUXVlcnkgPSAiU0VMRUNUIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVzZXJJ
bnRlcmFjdGlvblRpbWUgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21h
aW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8gaXNHcmFuZGZhdGhlcmVkUXVlcnkgPSAiU0VMRUNU
IGdyYW5kZmF0aGVyZWQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21h
aW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25RdWVy
eSA9ICJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgaGFkVXNlcklu
dGVyYWN0aW9uID0gMSBBTkQgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPCA/Il9zOwog
CisvLyBDUkVBVEUgVEFCTEUgUXVlcmllcwogY29uc3RleHByIGF1dG8gY3JlYXRlT2JzZXJ2ZWRE
b21haW4gPSAiQ1JFQVRFIFRBQkxFIE9ic2VydmVkRG9tYWlucyAoIgogICAgICJkb21haW5JRCBJ
TlRFR0VSIFBSSU1BUlkgS0VZLCByZWdpc3RyYWJsZURvbWFpbiBURVhUIE5PVCBOVUxMIFVOSVFV
RSBPTiBDT05GTElDVCBGQUlMLCBsYXN0U2VlbiBSRUFMIE5PVCBOVUxMLCAiCiAgICAgImhhZFVz
ZXJJbnRlcmFjdGlvbiBJTlRFR0VSIE5PVCBOVUxMLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9u
VGltZSBSRUFMIE5PVCBOVUxMLCBncmFuZGZhdGhlcmVkIElOVEVHRVIgTk9UIE5VTEwsICIKQEAg
LTE3Niw2ICsxNzUsMTcgQEAgY29uc3RleHByIGF1dG8gY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNGcm9tID0gIkNSRUFURSBUQUJMRSBTdWJyZXNvdXJjZVUKICAgICAic3VicmVzb3Vy
Y2VEb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBmcm9tRG9tYWluSUQgSU5URUdFUiBOT1QgTlVM
TCwgIgogICAgICJGT1JFSUdOIEtFWShzdWJyZXNvdXJjZURvbWFpbklEKSBSRUZFUkVOQ0VTIE9i
c2VydmVkRG9tYWlucyhkb21haW5JRCkgT04gREVMRVRFIENBU0NBREUsICIKICAgICAiRk9SRUlH
TiBLRVkoZnJvbURvbWFpbklEKSBSRUZFUkVOQ0VTIE9ic2VydmVkRG9tYWlucyhkb21haW5JRCkg
T04gREVMRVRFIENBU0NBREUpOyJfczsKKworLy8gQ1JFQVRFIFVOSVFVRSBJTkRFWCBRdWVyaWVz
Citjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZy
YW1lRG9tYWlucyA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElTVFMgU3RvcmFnZUFj
Y2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zX2RvbWFpbklEX3RvcExldmVsRG9tYWluSUQgb24gU3Rv
cmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zICggZG9tYWluSUQsIHRvcExldmVsRG9tYWlu
SUQgKTsiX3M7Citjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzVG8gPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzVG9fc291cmNlRG9tYWluSURfdG9Eb21haW5JRCBvbiBUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvICggc291cmNlRG9tYWluSUQsIHRvRG9tYWluSUQgKTsiX3M7Citjb25z
dGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSA9
ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElTVFMgVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNGcm9tX3RhcmdldERvbWFpbklEX2Zyb21Eb21haW5JRCBvbiBUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c0Zyb20gKCB0YXJnZXREb21haW5JRCwgZnJvbURvbWFpbklEICk7Il9zOworY29uc3RleHBy
IGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20gPSAiQ1JF
QVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJv
bV9mcm9tRG9tYWluSURfdG9Eb21haW5JRCBvbiBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20g
KCBmcm9tRG9tYWluSUQsIHRvRG9tYWluSUQgKTsiX3M7Citjb25zdGV4cHIgYXV0byBjcmVhdGVV
bmlxdWVJbmRleFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgPSAiQ1JFQVRFIFVOSVFVRSBJ
TkRFWCBJRiBOT1QgRVhJU1RTIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNfc3ViRnJhbWVE
b21haW5JRF90b3BGcmFtZURvbWFpbklEIG9uIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMg
KCBzdWJGcmFtZURvbWFpbklELCB0b3BGcmFtZURvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1
dG8gY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zID0gIkNS
RUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVE
b21haW5zX3N1YnJlc291cmNlRG9tYWluSURfdG9wRnJhbWVEb21haW5JRCBvbiBTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVEb21haW5zICggc3VicmVzb3VyY2VEb21haW5JRCwgdG9wRnJhbWVEb21h
aW5JRCApOyJfczsKK2NvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4U3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdHNUbyA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElTVFMgU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb19zdWJyZXNvdXJjZURvbWFpbklEX3RvRG9tYWluSUQg
b24gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyAoIHN1YnJlc291cmNlRG9tYWluSUQsIHRv
RG9tYWluSUQgKTsiX3M7Citjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElT
VFMgU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tX3N1YnJlc291cmNlRG9tYWluSURfZnJv
bURvbWFpbklEIG9uIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgKCBzdWJyZXNvdXJj
ZURvbWFpbklELCBmcm9tRG9tYWluSUQgKTsiX3M7CisKICAgICAKIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUmIHN0b3JlLCBXb3JrUXVldWUmIHdvcmtRdWV1
ZSwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBjb25zdCBT
dHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnlQYXRoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAg
ICAgOiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoc3RvcmUsIHdvcmtRdWV1ZSwgc2hvdWxk
SW5jbHVkZUxvY2FsaG9zdCkKQEAgLTE4NCwyMiArMTk0LDEwIEBAIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShX
ZWJSZXNvCiAgICAgLCBtX2luc2VydE9ic2VydmVkRG9tYWluU3RhdGVtZW50KG1fZGF0YWJhc2Us
IGluc2VydE9ic2VydmVkRG9tYWluUXVlcnkpCiAgICAgLCBtX2luc2VydFRvcExldmVsRG9tYWlu
U3RhdGVtZW50KG1fZGF0YWJhc2UsIGluc2VydFRvcExldmVsRG9tYWluUXVlcnkpCiAgICAgLCBt
X2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudChtX2RhdGFiYXNlLCBkb21haW5JREZyb21TdHJp
bmdRdWVyeSkKLSAgICAsIG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3RhdGVt
ZW50KG1fZGF0YWJhc2UsIHN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5KQot
ICAgICwgbV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNFeGlzdHNTdGF0ZW1lbnQo
bV9kYXRhYmFzZSwgc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zRXhpc3RzUXVlcnkp
Ci0gICAgLCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8obV9kYXRhYmFzZSwgdG9wRnJhbWVV
bmlxdWVSZWRpcmVjdHNUb1F1ZXJ5KQotICAgICwgbV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
RXhpc3RzKG1fZGF0YWJhc2UsIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHNRdWVyeSkK
LSAgICAsIG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tKG1fZGF0YWJhc2UsIHRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5KQotICAgICwgbV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c0Zyb21FeGlzdHMobV9kYXRhYmFzZSwgdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3Rz
UXVlcnkpCi0gICAgLCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbShtX2RhdGFiYXNlLCB0
b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21RdWVyeSkKICAgICAsIG1fdG9wRnJhbWVMaW5rRGVj
b3JhdGlvbnNGcm9tRXhpc3RzKG1fZGF0YWJhc2UsIHRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJv
bUV4aXN0c1F1ZXJ5KQotICAgICwgbV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKG1fZGF0
YWJhc2UsIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSkKICAgICAsIG1fc3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzKG1fZGF0YWJhc2UsIHN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbkV4aXN0c1F1ZXJ5KQotICAgICwgbV9zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVE
b21haW5zKG1fZGF0YWJhc2UsIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSkK
ICAgICAsIG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzKG1fZGF0YWJhc2Us
IHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0c1F1ZXJ5KQotICAgICwgbV9zdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKG1fZGF0YWJhc2UsIHN1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG9RdWVyeSkKICAgICAsIG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0V4aXN0
cyhtX2RhdGFiYXNlLCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzUXVlcnkpCi0g
ICAgLCBtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbShtX2RhdGFiYXNlLCBzdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSkKLSAgICAsIG1fc3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNGcm9tRXhpc3RzKG1fZGF0YWJhc2UsIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbUV4aXN0c1F1ZXJ5KQogICAgICwgbV9tb3N0UmVjZW50VXNlckludGVyYWN0aW9uU3RhdGVt
ZW50KG1fZGF0YWJhc2UsIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25RdWVyeSkKICAgICAsIG1f
dXBkYXRlTGFzdFNlZW5TdGF0ZW1lbnQobV9kYXRhYmFzZSwgdXBkYXRlTGFzdFNlZW5RdWVyeSkK
ICAgICAsIG1fdXBkYXRlRGF0YVJlY29yZHNSZW1vdmVkU3RhdGVtZW50KG1fZGF0YWJhc2UsIHVw
ZGF0ZURhdGFSZWNvcmRzUmVtb3ZlZFF1ZXJ5KQpAQCAtMjYyLDYgKzI2MCwyMiBAQCBib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppc0VtcHR5KCkgY29uc3QKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCitib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjcmVhdGVVbmlxdWVJbmRpY2VzKCkKK3sKKyAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0
ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFp
bnMpCisgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUlu
ZGV4VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbykKKyAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhl
Y3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20p
CisgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4
VG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVj
dXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMp
CisgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucykKKyAgICAgICAgfHwgIW1fZGF0YWJhc2Uu
ZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
c1RvKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJ
bmRleFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMpKSB7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjcmVhdGVVbmlxdWVJbmRpY2VzIGZhaWxlZCB0byBleGVjdXRlLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVNjaGVtYSgpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC0zMTUsNiArMzI5LDkgQEAgYm9vbCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2NoZW1hKCkKICAgICAgICAgTE9H
X0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSB0
YWJsZSBpbiBkYXRhYmFzZSAoJWkpIC0gJXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvcigpLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyAg
ICAKKyAgICBpZiAoIWNyZWF0ZVVuaXF1ZUluZGljZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMjcsMjAgKzM0NCw5IEBAIGJvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKCkKICAgICAg
ICAgfHwgbV9pbnNlcnRPYnNlcnZlZERvbWFpblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LCiAgICAgICAgIHx8IG1faW5zZXJ0VG9wTGV2ZWxEb21haW5TdGF0ZW1lbnQucHJlcGFyZSgp
ICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9w
RnJhbWVEb21haW5zU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwg
bV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNFeGlzdHNTdGF0ZW1lbnQucHJlcGFy
ZSgpICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8u
cHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX3RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RzVG9FeGlzdHMucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX3RvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzRnJvbS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1f
dG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
LSAgICAgICAgfHwgbV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLnByZXBhcmUoKSAhPSBT
UUxJVEVfT0sKICAgICAgICAgfHwgbV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5FeGlzdHMu
cHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX3N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZURvbWFpbnMucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0cy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAg
ICAgIHx8IG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUby5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LCiAgICAgICAgIHx8IG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0V4aXN0cy5wcmVw
YXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dHNGcm9tLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8
fCBtX3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAg
ICAgfHwgbV91cGRhdGVEYXRhUmVjb3Jkc1JlbW92ZWRTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNR
TElURV9PSwogICAgICAgICB8fCBtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQu
cHJlcGFyZSgpICE9IFNRTElURV9PSwpAQCAtMzUzLDcgKzM1OSw2IEBAIGJvb2wgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKCkKICAgICAgICAg
fHwgbV91cGRhdGVHcmFuZGZhdGhlcmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgbV9pc0dyYW5kZmF0aGVyZWRTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElU
RV9PSwogICAgICAgICB8fCBtX2ZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnBy
ZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV90b3BGcmFtZUxpbmtEZWNvcmF0aW9u
c0Zyb20ucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3RvcEZyYW1lTGlua0Rl
Y29yYXRpb25zRnJvbUV4aXN0cy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVz
c2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQ2NSw2ICs0NzAsMzcgQEAgT3B0aW9uYWw8
dW5zaWduZWQ+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JRChj
b25zdCBSZWdpc3RyYWIKICAgICByZXR1cm4gZG9tYWluSUQ7CiB9CiAKK1N0cmluZyBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlQW5kTWFrZURvbWFpbkxpc3QoY29u
c3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnMpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIAorICAgIGZvciAoYXV0byYg
dG9wRnJhbWVSZXNvdXJjZSA6IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMpIHsKKyAgICAg
ICAgCisgICAgICAgIC8vIEluc2VydCBxdWVyeSB3aWxsIGZhaWwgaWYgdG9wIGZyYW1lIGRvbWFp
biBpcyBub3QgYWxyZWFkeSBpbiB0aGUgZGF0YWJhc2UKKyAgICAgICAgZW5zdXJlUmVzb3VyY2VT
dGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odG9wRnJhbWVSZXNvdXJjZSk7CisgICAgICAg
IAorICAgICAgICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnIicpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCh0b3BGcmFtZVJlc291cmNlLnN0cmluZygpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyInKTsKKyAgICB9CisKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRE
b21haW5SZWxhdGlvbnNoaXBMaXN0KGNvbnN0IFN0cmluZyYgc3RhdGVtZW50LCBjb25zdCBIYXNo
U2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucywgdW5z
aWduZWQgZG9tYWluSUQpCit7CisgICAgU1FMaXRlU3RhdGVtZW50IGluc2VydFJlbGF0aW9uc2hp
cFN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKHN0YXRlbWVudCwgZW5zdXJlQW5kTWFr
ZURvbWFpbkxpc3Qoc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucyksICIgKTsiKSk7CisgICAg
CisgICAgaWYgKGluc2VydFJlbGF0aW9uc2hpcFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LCisgICAgICAgIHx8IGluc2VydFJlbGF0aW9uc2hpcFN0YXRlbWVudC5iaW5kSW50KDEsIGRv
bWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgaW5zZXJ0UmVsYXRpb25zaGlwU3RhdGVt
ZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCBmYWlsZWQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKwogdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyhjb25zdCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBsb2FkU3RhdGlzdGljcykKIHsKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKQEAgLTQ3Miw0MSArNTA4LDE0IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3Qg
UmVzb3VyCiAgICAgCiAgICAgaWYgKCFyZWdpc3RyYWJsZURvbWFpbklEKQogICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgZm9yIChhdXRvJiB0b3BGcmFtZURvbWFpbiA6IGxvYWRTdGF0aXN0aWNz
LnN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucykgewotICAgICAgICBpZiAoIXJlbGF0
aW9uc2hpcEV4aXN0cyhtX3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc0V4aXN0c1N0
YXRlbWVudCwgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFpbikpCi0g
ICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdG9yYWdlQWNjZXNzVW5kZXJU
b3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9w
RnJhbWVEb21haW4pOwotICAgIH0KIAotICAgIGZvciAoYXV0byYgdG9Eb21haW4gOiBsb2FkU3Rh
dGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKSB7Ci0gICAgICAgIGlmICghcmVsYXRp
b25zaGlwRXhpc3RzKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb0V4aXN0cywgcmVnaXN0cmFi
bGVEb21haW5JRC52YWx1ZSgpLCB0b0RvbWFpbikpCi0gICAgICAgICAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFp
bklELnZhbHVlKCksIHRvRG9tYWluKTsKLSAgICB9Ci0gICAgCi0gICAgZm9yIChhdXRvJiBmcm9t
RG9tYWluIDogbG9hZFN0YXRpc3RpY3MudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tKSB7Ci0g
ICAgICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNG
cm9tRXhpc3RzLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIGZyb21Eb21haW4pKQotICAg
ICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIGZyb21Eb21haW4pOwotICAgIH0K
LSAgICAKLSAgICBmb3IgKGF1dG8mIHRvcEZyYW1lRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucykgewotICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4
aXN0cyhtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0cywgcmVnaXN0cmFibGVEb21h
aW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFpbikpCi0gICAgICAgICAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXAobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURv
bWFpbklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKTsKLSAgICB9Ci0gICAgCi0gICAgZm9yIChh
dXRvJiB0b3BGcmFtZURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5kZXJUb3BG
cmFtZURvbWFpbnMpIHsKLSAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVEb21haW5FeGlzdHMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUo
KSwgdG9wRnJhbWVEb21haW4pKQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52
YWx1ZSgpLCB0b3BGcmFtZURvbWFpbik7Ci0gICAgfQotICAgIAotICAgIGZvciAoYXV0byYgdG9E
b21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKSB7Ci0g
ICAgICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dHNUb0V4aXN0cywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b0RvbWFpbikpCi0gICAg
ICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIHRvRG9tYWluKTsKLSAgICB9Ci0g
ICAgCi0gICAgZm9yIChhdXRvJiBmcm9tRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNGcm9tKSB7Ci0gICAgICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3Rz
KG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3RzLCByZWdpc3RyYWJsZURvbWFp
bklELnZhbHVlKCksIGZyb21Eb21haW4pKQotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFp
bklELnZhbHVlKCksIGZyb21Eb21haW4pOwotICAgIH0KKyAgICBpbnNlcnREb21haW5SZWxhdGlv
bnNoaXBMaXN0KHN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5LCBsb2FkU3Rh
dGlzdGljcy5zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9t
YWluSUQudmFsdWUoKSk7CisgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnksIGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSk7CisgICAgaW5zZXJ0RG9tYWlu
UmVsYXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSwgbG9hZFN0
YXRpc3RpY3MudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklE
LnZhbHVlKCkpOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3ViZnJhbWVVbmRl
clRvcEZyYW1lRG9tYWluc1F1ZXJ5LCBsb2FkU3RhdGlzdGljcy5zdWJmcmFtZVVuZGVyVG9wRnJh
bWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCkpOworICAgIGluc2VydERvbWFp
blJlbGF0aW9uc2hpcExpc3Qoc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5LCBs
b2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJs
ZURvbWFpbklELnZhbHVlKCkpOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5LCBsb2FkU3RhdGlzdGljcy5zdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCkpOworICAgIGlu
c2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9t
UXVlcnksIGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSwgcmVn
aXN0cmFibGVEb21haW5JRC52YWx1ZSgpKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlJiBtZW1vcnlTdG9yZSkKQEAgLTkxNyw3ICs5MjYsNyBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdQogICAgICAgICBhdXRvIHN1YkZyYW1lU3RhdHVzID0g
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc3ViRnJhbWVEb21h
aW4pOwogICAgICAgICBBU1NFUlQoc3ViRnJhbWVTdGF0dXMuZmlyc3QgPT0gQWRkZWRSZWNvcmQ6
Ok5vKTsKICAgICAgICAgQVNTRVJUKGhhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZURvbWFp
biwgT3BlcmF0aW5nRGF0ZXNXaW5kb3c6OkxvbmcpKTsKLSAgICAgICAgaW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwKG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3RhdGVtZW50LCBz
dWJGcmFtZVN0YXR1cy5zZWNvbmQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9t
YWluUmVsYXRpb25zaGlwTGlzdChzdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVy
eSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyB0b3BGcmFtZURvbWFpbiB9KSwgc3ViRnJh
bWVTdGF0dXMuc2Vjb25kKTsKICAgICB9CiAKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5h
bChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1l
SUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
QEAgLTEwMDIsNDAgKzEwMTEsMjMgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8KICAgICBpZiAo
IWlzTWFpbkZyYW1lICYmICEoYXJlVGFyZ2V0QW5kVG9wRnJhbWVEb21haW5zU2FtZVNpdGUgfHwg
YXJlVGFyZ2V0QW5kU291cmNlRG9tYWluc1NhbWVTaXRlKSkgewogICAgICAgICBhdXRvIHRhcmdl
dFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRh
cmdldERvbWFpbik7CiAgICAgICAgIHVwZGF0ZUxhc3RTZWVuKHRhcmdldERvbWFpbiwgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljczo6cmVkdWNlVGltZVJlc29sdXRpb24oV2FsbFRpbWU6Om5vdygpKSk7
Ci0gICAgICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRv
cEZyYW1lRG9tYWluKTsKLSAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJmcmFt
ZVVuZGVyVG9wRnJhbWVEb21haW5FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1l
RG9tYWluKSkgewotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWlucywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgdG9wRnJhbWVEb21h
aW4pOwotICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKLSAgICAgICAg
fQorICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbnNRdWVyeSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyB0b3BGcmFtZURv
bWFpbiB9KSwgdGFyZ2V0UmVzdWx0LnNlY29uZCk7CisgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBk
YXRlZCA9IHRydWU7CiAgICAgfQogCiAgICAgaWYgKGlzUmVkaXJlY3QgJiYgIWFyZVRhcmdldEFu
ZFNvdXJjZURvbWFpbnNTYW1lU2l0ZSkgewogICAgICAgICBpZiAoaXNNYWluRnJhbWUpIHsKICAg
ICAgICAgICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0
YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOwogICAgICAgICAgICAg
YXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbih0YXJnZXREb21haW4pOwotCi0gICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4
aXN0cyhtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMsIHJlZGlyZWN0aW5nRG9tYWlu
UmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKSkgewotICAgICAgICAgICAgICAgIGluc2VydERv
bWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZGlyZWN0aW5n
RG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKTsKLSAgICAgICAgICAgICAgICBzdGF0
aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBp
ZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0
cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKSkgewotICAgICAgICAgICAgICAg
IGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSwg
dGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKTsKLSAgICAgICAgICAgICAgICBzdGF0
aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnks
IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgdGFyZ2V0RG9tYWluIH0pLCByZWRpcmVjdGlu
Z0RvbWFpblJlc3VsdC5zZWNvbmQpOworICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSwgSGFzaFNldDxSZWdpc3Ry
YWJsZURvbWFpbj4oeyBzb3VyY2VEb21haW4gfSksIHRhcmdldFJlc3VsdC5zZWNvbmQpOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXV0byByZWRpcmVjdGluZ0RvbWFpblJlc3VsdCA9
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHNvdXJjZURvbWFp
bik7CiAgICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlz
dGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7Ci0gICAgICAgICAgICBpZiAo
IXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMs
IHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKSkgewotICAgICAg
ICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG8sIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKTsK
LSAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9t
YWluKSkgewotICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSwgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9t
YWluKTsKLSAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChzdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
KHsgdGFyZ2V0RG9tYWluIH0pLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQpOworICAg
ICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChzdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0c0Zyb21RdWVyeSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyBzb3VyY2VEb21h
aW4gfSksIHRhcmdldFJlc3VsdC5zZWNvbmQpOwogICAgICAgICB9CisgICAgICAgIHN0YXRpc3Rp
Y3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgfQogCiAgICAgaWYgKHN0YXRpc3RpY3NXZXJlVXBk
YXRlZCkKQEAgLTEwNDgsMTEgKzEwNDAsOCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpsb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKGNvbgogICAg
IEFTU0VSVChmcm9tRG9tYWluICE9IHRvRG9tYWluKTsKIAogICAgIGF1dG8gZnJvbURvbWFpblJl
c3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGZyb21E
b21haW4pOwotCi0gICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZUxpbmtEZWNv
cmF0aW9uc0Zyb21FeGlzdHMsIGZyb21Eb21haW5SZXN1bHQuc2Vjb25kLCB0b0RvbWFpbikpIHsK
LSAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlv
bnNGcm9tLCBmcm9tRG9tYWluUmVzdWx0LnNlY29uZCwgdG9Eb21haW4pOwotICAgICAgICBzY2hl
ZHVsZVN0YXRpc3RpY3NQcm9jZXNzaW5nUmVxdWVzdElmTmVjZXNzYXJ5KCk7Ci0gICAgfQorICAg
IGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9t
UXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgdG9Eb21haW4gfSksIGZyb21Eb21h
aW5SZXN1bHQuc2Vjb25kKTsKKyAgICBzY2hlZHVsZVN0YXRpc3RpY3NQcm9jZXNzaW5nUmVxdWVz
dElmTmVjZXNzYXJ5KCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnNldFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
LCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgV2FsbFRpbWUgbW9zdFJlY2VudEludGVyYWN0aW9u
KQpAQCAtMTI5OSw5ICsxMjg4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKGNvbnN0IFMKICAgICBhdXRv
IHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHN1
YkZyYW1lRG9tYWluKTsKIAogICAgIC8vIEZvciBjb25zaXN0ZW5jeSwgbWFrZSBzdXJlIHdlIGFs
c28gaGF2ZSBhIHN0YXRpc3RpY3MgZW50cnkgZm9yIHRoZSB0b3AgZnJhbWUgZG9tYWluLgotICAg
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRvcEZyYW1lRG9t
YWluKTsKLQotICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbnMsIHJlc3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICBpbnNlcnRE
b21haW5SZWxhdGlvbnNoaXBMaXN0KHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSwg
SGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyB0b3BGcmFtZURvbWFpbiB9KSwgcmVzdWx0LnNl
Y29uZCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNl
dFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYg
c3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbikK
QEAgLTEzMTEsOSArMTI5OCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihjb25zCiAgICAgYXV0byBy
ZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzdWJy
ZXNvdXJjZURvbWFpbik7CiAKICAgICAvLyBGb3IgY29uc2lzdGVuY3ksIG1ha2Ugc3VyZSB3ZSBh
bHNvIGhhdmUgYSBzdGF0aXN0aWNzIGVudHJ5IGZvciB0aGUgdG9wIGZyYW1lIGRvbWFpbi4KLSAg
ICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURv
bWFpbik7Ci0KLSAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW5zLCByZXN1bHQuc2Vjb25kLCB0b3BGcmFtZURvbWFpbik7CisgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
UXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgdG9wRnJhbWVEb21haW4gfSksIHJl
c3VsdC5zZWNvbmQpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgU3ViUmVzb3VyY2VEb21h
aW4mIHN1YnJlc291cmNlRG9tYWluLCBjb25zdCBSZWRpcmVjdERvbWFpbiYgcmVkaXJlY3REb21h
aW4pCkBAIC0xMzIzLDkgKzEzMDgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgUwogICAgIGF1
dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
c3VicmVzb3VyY2VEb21haW4pOwogCiAgICAgLy8gRm9yIGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUg
d2UgYWxzbyBoYXZlIGEgc3RhdGlzdGljcyBlbnRyeSBmb3IgdGhlIHJlZGlyZWN0IGRvbWFpbi4K
LSAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVj
dERvbWFpbik7Ci0KLSAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c1RvLCByZXN1bHQuc2Vjb25kLCByZWRpcmVjdERvbWFpbik7CisgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdChzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvUXVl
cnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgcmVkaXJlY3REb21haW4gfSksIHJlc3Vs
dC5zZWNvbmQpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBTdWJSZXNvdXJjZURvbWFp
biYgc3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZGlyZWN0RG9tYWluJiByZWRpcmVjdERvbWFp
bikKQEAgLTEzMzUsOSArMTMxOCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKGNvbnN0CiAgICAgYXV0
byByZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihz
dWJyZXNvdXJjZURvbWFpbik7CiAKICAgICAvLyBGb3IgY29uc2lzdGVuY3ksIG1ha2Ugc3VyZSB3
ZSBhbHNvIGhhdmUgYSBzdGF0aXN0aWNzIGVudHJ5IGZvciB0aGUgcmVkaXJlY3QgZG9tYWluLgot
ICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHJlZGlyZWN0
RG9tYWluKTsKLQotICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzRnJvbSwgcmVzdWx0LnNlY29uZCwgcmVkaXJlY3REb21haW4pOworICAgIGlu
c2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9t
UXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgcmVkaXJlY3REb21haW4gfSksIHJl
c3VsdC5zZWNvbmQpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgVG9wRnJhbWVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBjb25zdCBSZWRpcmVjdERvbWFpbiYgcmVkaXJlY3REb21haW4pCkBAIC0x
MzQ3LDkgKzEzMjgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgVG9wRgogICAgIGF1dG8gcmVzdWx0
ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odG9wRnJhbWVE
b21haW4pOwogCiAgICAgLy8gRm9yIGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2UgYWxzbyBoYXZl
IGEgc3RhdGlzdGljcyBlbnRyeSBmb3IgdGhlIHJlZGlyZWN0IGRvbWFpbi4KLSAgICBlbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVjdERvbWFpbik7Ci0K
LSAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
LCByZXN1bHQuc2Vjb25kLCByZWRpcmVjdERvbWFpbik7CisgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnksIEhhc2hTZXQ8UmVnaXN0
cmFibGVEb21haW4+KHsgcmVkaXJlY3REb21haW4gfSksIHJlc3VsdC5zZWNvbmQpOwogfQogCiB2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0RnJvbShjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNvbnN0
IFJlZGlyZWN0RG9tYWluJiByZWRpcmVjdERvbWFpbikKQEAgLTEzNTksOSArMTMzOCw3IEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RGcm9tKGNvbnN0IFRvCiAgICAgYXV0byByZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0
YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7CiAKICAgICAvLyBG
b3IgY29uc2lzdGVuY3ksIG1ha2Ugc3VyZSB3ZSBhbHNvIGhhdmUgYSBzdGF0aXN0aWNzIGVudHJ5
IGZvciB0aGUgcmVkaXJlY3QgZG9tYWluLgotICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0Zv
clJlZ2lzdHJhYmxlRG9tYWluKHJlZGlyZWN0RG9tYWluKTsKLQotICAgIGluc2VydERvbWFpblJl
bGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSwgcmVzdWx0LnNlY29uZCwg
cmVkaXJlY3REb21haW4pOworICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsg
cmVkaXJlY3REb21haW4gfSksIHJlc3VsdC5zZWNvbmQpOwogfQogCiBzdGQ6OnBhaXI8UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OkFkZGVkUmVjb3JkLCB1bnNpZ25lZD4gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCkBA
IC0xNzU4LDYgKzE3MzUsNDAgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6dXBkYXRlRGF0YVJlY29yZHNSZW1vdmVkKGNvbnN0IFJlZ2lzdHIKICAgICBBU1NFUlRf
VU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOwogfQogCitib29s
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppc0NvcnJlY3RTdWJTdGF0aXN0
aWNzQ291bnQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YmZyYW1lRG9tYWluLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4pCit7CisgICAgU1FMaXRlU3RhdGVtZW50IHN1
YkZyYW1lVW5kZXJUb3BGcmFtZUNvdW50KG1fZGF0YWJhc2UsIGNvdW50U3ViZnJhbWVVbmRlclRv
cEZyYW1lUXVlcnkpOworICAgIFNRTGl0ZVN0YXRlbWVudCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVDb3VudChtX2RhdGFiYXNlLCBjb3VudFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZVF1ZXJ5KTsK
KyAgICBTUUxpdGVTdGF0ZW1lbnQgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyhtX2RhdGFi
YXNlLCBjb3VudFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSk7CisgICAgCisgICAg
aWYgKHN1YkZyYW1lVW5kZXJUb3BGcmFtZUNvdW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAg
ICAgICAgfHwgc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lQ291bnQucHJlcGFyZSgpICE9IFNRTElU
RV9PSworICAgICAgICB8fCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLnByZXBhcmUoKSAh
PSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nl
c3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvdW50
U3ViU3RhdGlzdGljc1Rlc3RpbmcgZmFpbGVkIHRvIHByZXBhcmUsIGVycm9yIG1lc3NhZ2U6ICV7
cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAor
ICAgIGlmIChzdWJGcmFtZVVuZGVyVG9wRnJhbWVDb3VudC5iaW5kSW50KDEsIGRvbWFpbklEKHN1
YmZyYW1lRG9tYWluKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3ViRnJhbWVV
bmRlclRvcEZyYW1lQ291bnQuYmluZEludCgyLCBkb21haW5JRCh0b3BGcmFtZURvbWFpbikudmFs
dWUoKSkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZUNv
dW50LmJpbmRJbnQoMSwgZG9tYWluSUQoc3ViZnJhbWVEb21haW4pLnZhbHVlKCkpICE9IFNRTElU
RV9PSworICAgICAgICB8fCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVDb3VudC5iaW5kSW50KDIs
IGRvbWFpbklEKHRvcEZyYW1lRG9tYWluKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAg
fHwgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUby5iaW5kSW50KDEsIGRvbWFpbklEKHN1YmZy
YW1lRG9tYWluKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdHNUby5iaW5kSW50KDIsIGRvbWFpbklEKHRvcEZyYW1lRG9tYWluKS52YWx1
ZSgpKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNvdW50U3ViU3RhdGlzdGljc1Rlc3RpbmcgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6
ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IAorICAgIGlmIChzdWJGcmFtZVVuZGVyVG9wRnJhbWVDb3VudC5zdGVwKCkgIT0gU1FMSVRFX1JP
VworICAgICAgICB8fCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVDb3VudC5zdGVwKCkgIT0gU1FM
SVRFX1JPVworICAgICAgICB8fCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLnN0ZXAoKSAh
PSBTUUxJVEVfUk9XKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIChz
dWJGcmFtZVVuZGVyVG9wRnJhbWVDb3VudC5nZXRDb2x1bW5JbnQoMCkgPT0gMSAmJiBzdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVDb3VudC5nZXRDb2x1bW5JbnQoMCkgPT0gMSAmJiBzdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvLmdldENvbHVtbkludCgwKSA9PSAxKTsKK30KKworCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IGVhN2U2NDlmZmY1ZDE2YWE4NGFlMWJlMDUy
NmI2YzU4YzU3ZDJlMzQuLmU5NjcxNmQzY2U3NTk4MDZiOWQ5YzczZTNiNmI1NDE0MjkxY2FiZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZS5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzSGFkVXNlckludGVy
YWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgT3BlcmF0aW5nRGF0ZXNXaW5kb3cpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IFNlY29uZHMpIG92ZXJyaWRlOworICAgIGJvb2wgaXNDb3JyZWN0U3ViU3RhdGlzdGljc0NvdW50
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mKTsKIAogcHJp
dmF0ZToKICAgICB2b2lkIG1lcmdlU3RhdGlzdGljKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MmKTsKQEAgLTExMCw2ICsxMTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJEYXRhYmFz
ZUNvbnRlbnRzKCk7CiAgICAgYm9vbCBpbnNlcnRPYnNlcnZlZERvbWFpbihjb25zdCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgdm9pZCBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKGNv
bnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKKyAgICB2b2lkIGluc2VydERvbWFpblJlbGF0
aW9uc2hpcExpc3QoY29uc3QgU3RyaW5nJiwgY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFp
bj4mLCB1bnNpZ25lZCk7CiAgICAgYm9vbCBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAoV2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50JiwgdW5zaWduZWQgZG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BGcmFtZURvbWFpbik7CiAgICAgYm9vbCByZWxhdGlvbnNoaXBFeGlzdHMoV2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50JiwgT3B0aW9uYWw8dW5zaWduZWQ+IGZpcnN0RG9tYWluSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4pIGNvbnN0OwogICAgIE9wdGlv
bmFsPHVuc2lnbmVkPiBkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0OwpA
QCAtMTY2LDggKzE2OCwxMSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVnaXN0
cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+PiByZWdpc3RyYWJsZURvbWFpbnNUb1Jl
bW92ZVdlYnNpdGVEYXRhRm9yKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0RhdGFiYXNlU3RvcmUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKKyAgICBib29sIGNyZWF0ZVVuaXF1ZUlu
ZGljZXMoKTsKICAgICBib29sIGNyZWF0ZVNjaGVtYSgpOwogICAgIGJvb2wgcHJlcGFyZVN0YXRl
bWVudHMoKTsKKyAgICBTdHJpbmcgZW5zdXJlQW5kTWFrZURvbWFpbkxpc3QoY29uc3QgSGFzaFNl
dDxSZWdpc3RyYWJsZURvbWFpbj4mKTsKKwogICAgIAogICAgIGNvbnN0IFN0cmluZyBtX3N0b3Jh
Z2VEaXJlY3RvcnlQYXRoOwogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2UgbV9k
YXRhYmFzZTsKQEAgLTE3NSwyMiArMTgwLDEwIEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6U1FM
aXRlU3RhdGVtZW50IG1faW5zZXJ0T2JzZXJ2ZWREb21haW5TdGF0ZW1lbnQ7CiAgICAgV2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50IG1faW5zZXJ0VG9wTGV2ZWxEb21haW5TdGF0ZW1lbnQ7CiAgICAg
bXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9kb21haW5JREZyb21TdHJpbmdTdGF0
ZW1lbnQ7Ci0gICAgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fc3RvcmFnZUFjY2Vzc1VuZGVy
VG9wRnJhbWVEb21haW5zU3RhdGVtZW50OwotICAgIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBt
X3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc0V4aXN0c1N0YXRlbWVudDsKLSAgICBX
ZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvOwotICAg
IG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNUb0V4aXN0czsKLSAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV90b3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c0Zyb207Ci0gICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV90
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHM7Ci0gICAgV2ViQ29yZTo6U1FMaXRlU3Rh
dGVtZW50IG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tOwogICAgIG11dGFibGUgV2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50IG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzOwot
ICAgIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnM7CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9zdWJmcmFtZVVuZGVy
VG9wRnJhbWVEb21haW5FeGlzdHM7Ci0gICAgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fc3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluczsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudCBtX3N1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0czsKLSAgICBX
ZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvOwog
ICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fc3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNUb0V4aXN0czsKLSAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9zdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb207Ci0gICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0
ZW1lbnQgbV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHM7CiAgICAgV2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50IG1fbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudDsK
ICAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV91cGRhdGVMYXN0U2VlblN0YXRlbWVudDsK
ICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3VwZGF0ZURhdGFSZWNvcmRz
UmVtb3ZlZFN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKaW5kZXggMTEzZDM1MzhjZmEwOTAzMTk4YmMyMDhiNzg2ODMwOTViNDk4NzJi
Yy4uZWEwMGJjMTQ4OGMwODlhOGJlMDYyYmJiNmM5ZDJhNmYwMjlhMTUzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTU5NiwxMSArNTk2
LDExIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRMYXN0U2Vlbihj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vj
b25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9v
bCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRz
UmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVz
dGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25k
cyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBp
c1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBwb3N0VGFzayhbdGhpcywgZG9t
YWluID0gZG9tYWluLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFtZURvbWFpbiA9IHRvcEZyYW1lRG9t
YWluLmlzb2xhdGVkQ29weSgpLCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQ
cmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgZG9t
YWluID0gZG9tYWluLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFtZURvbWFpbjEgPSB0b3BGcmFtZURv
bWFpbjEuaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lRG9tYWluMiA9IHRvcEZyYW1lRG9tYWluMi5p
c29sYXRlZENvcHkoKSwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFs
ZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9y
ZSkgewogICAgICAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBzdGF0aXN0aWMoZG9tYWlu
KTsKICAgICAgICAgICAgIHN0YXRpc3RpYy5sYXN0U2VlbiA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhsYXN0U2Vlbi5zZWNvbmRzKCkpOwpAQCAtNjExLDExICs2MTEsMTUgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhjb25z
dCBSZWdpc3RyYWJsZUQKICAgICAgICAgICAgIHN0YXRpc3RpYy5pc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZSA9IGlzVmVyeVByZXZhbGVudDsKICAgICAgICAgICAgIHN0YXRpc3RpYy5kYXRhUmVjb3Jk
c1JlbW92ZWQgPSBkYXRhUmVjb3Jkc1JlbW92ZWQ7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGlmICghdG9wRnJhbWVEb21haW4uaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgSGFzaFNl
dDxSZWdpc3RyYWJsZURvbWFpbj4gdG9wRnJhbWVEb21haW5zOwotICAgICAgICAgICAgICAgIHRv
cEZyYW1lRG9tYWlucy5hZGQodG9wRnJhbWVEb21haW4pOwotICAgICAgICAgICAgICAgIHN0YXRp
c3RpYy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zID0gV1RGTW92ZSh0b3BGcmFtZURvbWFp
bnMpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFp
bj4gdG9wRnJhbWVEb21haW5zOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIXRvcEZy
YW1lRG9tYWluMS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgdG9wRnJhbWVEb21haW5zLmFk
ZCh0b3BGcmFtZURvbWFpbjEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIXRvcEZy
YW1lRG9tYWluMi5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgdG9wRnJhbWVEb21haW5zLmFk
ZCh0b3BGcmFtZURvbWFpbjIpOworCisgICAgICAgICAgICBzdGF0aXN0aWMuc3ViZnJhbWVVbmRl
clRvcEZyYW1lRG9tYWlucyA9IFdURk1vdmUodG9wRnJhbWVEb21haW5zKTsKIAogICAgICAgICAg
ICAgVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+IHN0YXRpc3RpY3M7CiAgICAgICAgICAg
ICBzdGF0aXN0aWNzLmFwcGVuZChXVEZNb3ZlKHN0YXRpc3RpYykpOwpAQCAtNjI0LDYgKzYyOCwy
NCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bWVyZ2VTdGF0aXN0aWNG
b3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRAogICAgICAgICBwb3N0VGFza1JlcGx5KFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KKwordm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIHBvc3RUYXNrKFt0
aGlzLCBzdWJEb21haW4gPSBzdWJEb21haW4uaXNvbGF0ZWRDb3B5KCksIHRvcERvbWFpbiA9IHRv
cERvbWFpbi5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9y
ZSB8fCAhaXM8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU+KCptX3N0YXRpc3Rp
Y3NTdG9yZSkpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBpc1JlbGF0
aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZSA9IGRvd25jYXN0PFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlPigqbV9zdGF0aXN0aWNzU3RvcmUpLmlzQ29ycmVjdFN1YlN0YXRpc3Rp
Y3NDb3VudChzdWJEb21haW4sIHRvcERvbWFpbik7CisgICAgICAgIAorICAgICAgICBwb3N0VGFz
a1JlcGx5KFtpc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKTsKKyAg
ICAgICAgfSk7CisgICAgfSk7Cit9CiAgICAgCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRv
bWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGZiMTgx
MDUxYTRjNGE1NGVjMzU1ZGJhNTBlZjA2OTRmMjdlYWI3Y2UuLjkyZmUxNTdlNmQzYTM1MTk4NWUx
OWI3MDE2ZmUzMmEzNGMyZjFkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmgKQEAgLTEyOSw3ICsxMjksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpOwogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93bik+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4m
LCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgbWVyZ2VT
dGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vj
b25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9v
bCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRz
UmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lcmdlU3Rh
dGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURv
bWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRz
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlz
UHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1v
dmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgaXNSZWxhdGlvbnNo
aXBPbmx5SW5EYXRhYmFzZU9uY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRW
ZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMzM0MWFlZDhjMmVjOTUwZTdm
YTAzNDEyNjQ0ZTk2MjdmZDJhNTU1ZS4uYjU4MGEwNzZmOTJlYzg0Y2I4ZmM3MGIwZWJkYzJkMzVl
OGQxZDY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKQEAgLTk2OCwxMSArOTY4LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldExh
c3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21hCiAg
ICAgfQogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjptZXJnZVN0YXRpc3RpY0ZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFNlY29uZHMgbGFzdFNl
ZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVy
eVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjptZXJn
ZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRz
IGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9v
bCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBu
ZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAg
ICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVz
b3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy0+bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKGRvbWFpbiwgdG9wRnJhbWVEb21haW4sIGxhc3RT
ZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3Jh
bmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1v
dmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgICAgICByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoZG9tYWluLCB0b3BGcmFtZURv
bWFpbjEsIHRvcEZyYW1lRG9tYWluMiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNW
ZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAg
ICB9IGVsc2UgewpAQCAtMTAyNiw2ICsxMDI2LDE5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6Omhh
ZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
CiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjppc1JlbGF0aW9uc2hpcE9ubHlJbkRh
dGFiYXNlT25jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BEb21haW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYg
KGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkg
eworICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNz
aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgICAgICByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5pc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShzdWJEb21haW4sIHRv
cERvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsK
KyAgICB9Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyVXNlckludGVyYWN0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlm
IChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRl
eCAyZjcwNDMwOGVkZmU5NTNhNGM4ZTdiMGQwNzM4MGMxZTQ1MWZmYjZkLi4xZGFlYTU3ZDY3NzQ2
YTMwMWNiMDY3NGQ5MDVkYWU5YTc1MGQ2NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0yMjgsNiArMjI4LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBz
ZXRQcnVuZUVudHJpZXNEb3duVG8oUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHBydW5lVGFyZ2V0
Q291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYWRVc2VySW50
ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBpc1JlbGF0aW9uc2hpcE9ubHlJ
bkRhdGFiYXNlT25jZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1
YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBoYXNMb2NhbFN0b3JhZ2UoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Np
b25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiBkb21haW5zKT4mJik7
CiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IE5hdmln
YXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9t
RG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKTsKQEAgLTI0Miw3ICsy
NDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJl
c291cmNlcyhQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCwgU2Vj
b25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldExhc3RTZWVu
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vj
b25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9v
bCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRz
UmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lcmdlU3Rh
dGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBUb3BGcmFtZURv
bWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRl
cmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRm
YXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVk
IGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25J
RCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wg
dmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRJc1J1bm5p
bmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDUxMzcxZDY3
MmM3MzEyOThmZWIxMjY3M2RlNzMwMDM1OTA2YmJkM2YuLmJkM2MyNGE3MTRjODk2YTJlYzU5MDQx
ODc3MDA3YWE2NGQyNGM1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtOTQsMTAgKzk0LDExIEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBJc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHRhcmdldERvbWFpbikgLT4gKGJvb2wgaXNWZXJ5UHJldmFsZW50KSBBc3luYwog
ICAgIFNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgT3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcykgLT4gKCkgQXN5bmMKICAgICBTZXRMYXN0U2Vl
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJl
c291cmNlRG9tYWluLCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgTWVyZ2VTdGF0
aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRv
cEZyYW1lRG9tYWluLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwg
U2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwg
Ym9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVpbnQ2NF90IGRhdGFSZWNv
cmRzUmVtb3ZlZCkgLT4gKCkgQXN5bmMKKyAgICBNZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJj
ZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4xLCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4s
IGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVBy
ZXZhbGVudCwgdWludDY0X3QgZGF0YVJlY29yZHNSZW1vdmVkKSAtPiAoKSBBc3luYwogICAgIFNl
dFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCiAgICAgU2V0UHJldmFs
ZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKICAgICBIYWRV
c2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKGJvb2wgaGFkVXNlckludGVyYWN0aW9uKSBB
c3luYworICAgIElzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b3BEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRlcmFjdGlv
bikgQXN5bmMKICAgICBIYXNMb2NhbFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKGJvb2wgaGFkVXNl
ckludGVyYWN0aW9uKSBBc3luYwogICAgIEdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMpIEFzeW5jCiAg
ICAgSXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKGJvb2wgaXNSZWRpcmVj
dGluZ1RvKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggNTEyZTA1Y2M4NWJjNGVlMThhYzU2OGZj
ZDM5ODM3MGNiZmViYTJlYy4uOWQ3ZmE3ZDM3YzY2YTFmMmQ5ZWM0OGM5N2U1MWJjNmZkNzBhNzdh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0
YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuY3BwCkBAIC0xMTksMTAgKzExOSwxMCBAQCB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLAogI2VuZGlmCiB9CiAKLXZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGlj
c01lcmdlU3RhdGlzdGljKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3Ry
aW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluLCBkb3VibGUgbGFzdFNlZW4s
IGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJl
dmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIHZvaWQqIGNvbnRleHQsIFdLV2Vi
c2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpY0Z1bmN0aW9uIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0
aWMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwg
V0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4xLCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjIs
IGRvdWJsZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGRvdWJsZSBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgdm9p
ZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc01lcmdlU3RhdGlzdGljRnVu
Y3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5tZXJnZVN0YXRpc3Rp
Y0ZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBV
UkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1lRG9tYWluKS0+c3RyaW5nKCkpLCBTZWNv
bmRzIHsgbGFzdFNlZW4gfSwgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIHsgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvbiB9LCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQ
cmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVy
XSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+bWVyZ2VTdGF0aXN0aWNGb3JU
ZXN0aW5nKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVS
TCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFtZURvbWFpbjEpLT5zdHJpbmcoKSksIFVSTChVUkwo
KSwgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVEb21haW4yKS0+c3RyaW5nKCkpLCBTZWNvbmRzIHsg
bGFzdFNlZW4gfSwgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIHsgbW9zdFJlY2VudFVzZXJJ
bnRlcmFjdGlvbiB9LCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxl
bnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTI2
MSw2ICsyNjEsMTcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGQKICNlbmRpZgogfQogCit2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBzdWJIb3N0LCBXS1N0cmlu
Z1JlZiB0b3BIb3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NPbmx5SW5EYXRhYmFzZU9uY2VGdW5jdGlvbiBjYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZikt
PmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0lt
cGwoc3ViSG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BIb3N0
KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgb25seUluRGF0YWJhc2VPbmNl
KSB7CisgICAgICAgIGNhbGxiYWNrKG9ubHlJbkRhdGFiYXNlT25jZSwgY29udGV4dCk7CisgICAg
fSk7CisjZWxzZQorICAgIGNhbGxiYWNrKGZhbHNlLCBjb250ZXh0KTsKKyNlbmRpZgorfQorCiB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUp
CiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKaW5kZXgg
ZjJhMTc4Mjk2ZWE3OWViNGVmNTU3YWIwZTA3OGI5YWQ2ZWE5YWE1NS4uYzFmOTkwYjM1YTdiMjY2
MjQxNWZlNmYxOGU5MDI4MzkzODA4ODJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTUwLDcgKzUwLDcgQEAg
V0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlRm9yRGUKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NMYXN0U2VlbkZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tf
RVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGRvdWJsZSBz
ZWNvbmRzLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzTGFzdFNl
ZW5GdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcik7CiB0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVE
YXRhU3RvcmVTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NN
ZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmlu
Z1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbiwgZG91YmxlIGxhc3RTZWVuLCBi
b29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24s
IGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZh
bGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNp
dGVEYXRhU3RvcmVTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBjb21wbGV0aW9uSGFu
ZGxlcik7CitXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWVy
Z2VTdGF0aXN0aWMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdS
ZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4xLCBXS1N0cmluZ1JlZiB0b3BGcmFt
ZURvbWFpbjIsIGRvdWJsZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGRvdWJs
ZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBp
c1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc01lcmdlU3Rh
dGlzdGljRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOwogdHlwZWRlZiB2b2lkICgqV0tXZWJz
aXRlRGF0YVN0b3JlU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRnVuY3Rpb24pKHZvaWQqIGZ1
bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
ZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRl
RGF0YVN0b3JlU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRnVuY3Rpb24gY29tcGxldGlvbkhh
bmRsZXIpOwogdHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1ZlcnlQ
cmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwpAQCAtNzAs
NiArNzAsOCBAQCB0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uRnVuY3Rpb24pKHZvaWQqCiBXS19FWFBPUlQgdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUsIHZv
aWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb25GdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcik7CiB0eXBlZGVmIHZvaWQgKCpXS1dlYnNp
dGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbikoYm9v
bCBoYXNIYWRVc2VySW50ZXJhY3Rpb24sIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBP
UlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwg
dm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uRnVuY3Rpb24gY2FsbGJhY2spOwordHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0
YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlRnVuY3Rpb24pKGJvb2wgb25seUlu
RGF0YWJhc2VPbmNlLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIHN1Ykhvc3QsIFdLU3RyaW5nUmVm
IHRvcEhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc09u
bHlJbkRhdGFiYXNlT25jZUZ1bmN0aW9uIGNhbGxiYWNrKTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpOwogdHlwZWRl
ZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZEZ1bmN0
aW9uKShib29sIGlzR3JhbmRmYXRoZXJlZCwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VY
UE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZEZ1bmN0
aW9uIGNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDI3NzNhMDZlNWE1MDQxM2QzNDhlNzE1
NzFlNTFiZjZkOGQ2MDkxOWQuLjUwYzQwYTVkZjY1N2FiZDNhYzM2YTQxNWNiN2NkMTkxNjI5NTNj
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTM2LDkgKzUzNiw5IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U2V0TGFzdFNlZW4oc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgbGFzdFNlZW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bWVy
Z2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4sIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9u
LCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVk
LCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJl
Y29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9v
bCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwg
Ym9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFs
ZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpNZXJnZVN0YXRpc3RpY0ZvclRlc3Rpbmcoc2Vzc2lvbklELCBy
ZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rp
b24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxl
bnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6Ok1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhzZXNzaW9uSUQsIHJlc291cmNlRG9tYWlu
LCB0b3BGcmFtZURvbWFpbjEsIHRvcEZyYW1lRG9tYWluMiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRl
cmFjdGlvbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1By
ZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Y2xlYXJQ
cmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQpAQCAtNjAxLDYgKzYwMSwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SGFk
VXNlckludGVyYWN0aW9uKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWxhdGlv
bnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Oklz
UmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKHNlc3Npb25JRCwgc3ViRG9tYWluLCB0b3BE
b21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNz
YWdlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggMmQ2YWRiZTNiYTNkNWZjZTVjOTZhZWY2M2FlZmJjZjZl
ZjJjZDA2My4uMDRjZDUxMTVkYTlkMjhhM2ZkYzlkZjY3ODljZjY5ZDE2OTFlYjAzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcpPiYmKTsKICAgICB2b2lkIHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zv
cihQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNIYWRVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBpc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNl
T25jZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAgICAgdm9pZCBoYXNMb2NhbFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CiAgICAgdm9pZCBpc0dyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBp
c1ByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwpAQCAtMTEzLDcgKzExNCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vz
c2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNl
ZW4oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBT
ZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBi
b29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29y
ZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVyZ2VT
dGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlcklu
dGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFu
ZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWdu
ZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
bmFsPFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0
Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA2MjdkMmQ5OWNiM2VjNzI3
MGI4NzY3YmEzMDZkOGZiNTA5YThiZGMxLi4yNjE5MDE2YjI0YzllOGY3YTU4NDdhOWRiYjZmMGY2
YzU5ZjA5YWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTU1MSw3ICsxNTUxLDcgQEAgdm9pZCBX
ZWJzaXRlRGF0YVN0b3JlOjpzZXRMYXN0U2Vlbihjb25zdCBVUkwmIHVybCwgU2Vjb25kcyBzZWNv
bmRzLCBDb21wbGV0aW9uSGEKICAgICB9CiB9CiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6bWVy
Z2VTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFVSTCYgdXJsICwgY29uc3QgVVJMJiB0b3BGcmFt
ZVVybCwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQ
cmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92
ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFVSTCYgdXJs
ICwgY29uc3QgVVJMJiB0b3BGcmFtZVVybDEsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwyLCBTZWNv
bmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50
VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwg
Ym9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICh1cmwu
cHJvdG9jb2xJc0Fib3V0KCkgfHwgdXJsLmlzRW1wdHkoKSkgewogICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwpAQCAtMTU2Miw3ICsxNTYyLDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpt
ZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgVVJMJiB1cmwgLCBjb25zdCBVUkwmIHRvcEYK
IAogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgewogICAgICAg
ICBpZiAoYXV0byogcHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQotICAg
ICAgICAgICAgcHJvY2Vzcy0+bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKG1fc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiB7IHRvcEZyYW1lVXJsIH0sIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVy
eVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkLCBbcHJvY2Vzc1Bvb2wsIGNhbGxiYWNrQWdn
cmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgICAgICAg
ICBwcm9jZXNzLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcobV9zZXNzaW9uSUQsIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH0sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsg
dG9wRnJhbWVVcmwxIH0sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgdG9wRnJhbWVVcmwy
IH0sIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJl
Y29yZHNSZW1vdmVkLCBbcHJvY2Vzc1Bvb2wsIGNhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNr
QWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CiAgICAgfQogfQogCkBAIC0xNjQ2LDYgKzE2NDYs
MjQgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3Qg
VVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHYKICAgICB9CiB9CiAKK3ZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoY29uc3QgVVJMJiBzdWJV
cmwsIGNvbnN0IFVSTCYgdG9wVXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAg
CisgICAgaWYgKHN1YlVybC5wcm90b2NvbElzQWJvdXQoKSB8fCBzdWJVcmwuaXNFbXB0eSgpIHx8
IHRvcFVybC5wcm90b2NvbElzQWJvdXQoKSB8fCB0b3BVcmwuaXNFbXB0eSgpKSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAK
KyAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpIHsKKyAgICAgICAg
aWYgKGF1dG8qIHByb2Nlc3MgPSBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkgeworICAg
ICAgICAgICAgcHJvY2Vzcy0+aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UobV9zZXNz
aW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgc3ViVXJsIH0sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHsgdG9wVXJsIH0sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICAgICAgICAgIEFTU0VSVChwcm9jZXNzUG9vbHMoKS5zaXplKCkgPT0gMSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMDE4MzdmZWEwMjc2ZjRiODRhNmFkYzRkZTUwNGVlZDI1
N2VhYWQ3Mi4uNGQ0OTA5MWE3ODdiN2ZkNWE4M2VmMDNmNzZmY2ZjZGM5Y2Q2ZTFlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaApAQCAtMTQ3LDYgKzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvZ1VzZXJJbnRl
cmFjdGlvbihjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpPiYmKTsKICAgICB2
b2lkIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNl
KGNvbnN0IFVSTCYgc3ViVXJsLCBjb25zdCBVUkwmIHRvcFVybCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBpc1ByZXZhbGVudFJlc291cmNlKGNvbnN0IFVSTCYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKGNvbnN0IFVSTCYgaG9zdFJlZGlyZWN0ZWRGcm9tLCBjb25zdCBVUkwm
IGhvc3RSZWRpcmVjdGVkVG8sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAg
IHZvaWQgaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKGNvbnN0IFVSTCYgc3VicmVzb3Vy
Y2UsIGNvbnN0IFVSTCYgdG9wRnJhbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwpAQCAtMTYzLDcgKzE2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNl
KGJvb2wpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBVUkwmLCBT
ZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgbWVyZ2VTdGF0
aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwsIFNlY29u
ZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBi
b29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5n
KGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgdG9wRnJhbWVVcmwxLCBjb25zdCBVUkwmIHRvcEZyYW1l
VXJsMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQ
cmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92
ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXROb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChi
b29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJ1bmVFbnRy
aWVzRG93blRvKHNpemVfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4OTRlZTgxNzRkODcx
OTE0MDIxMjNiZTQ0MmE2Y2ZiZDAwYWJiOWFjLi5lN2JiNWUwZDkyNWIxOTc5NjBjZTcyZDliOThl
ZWI5MzMxNzY1Y2UzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTktMTAtMDcgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9tYWluIHJlbGF0aW9uc2hpcHMgaW4g
dGhlIElUUCBEYXRhYmFzZSBzaG91bGQgYmUgaW5zZXJ0ZWQgaW4gYSBzaW5nbGUgcXVlcnkgYW5k
IGlnbm9yZSByZXBlYXQgaW5zZXJ0IGF0dGVtcHRzLiAoMjAyNjA0KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNjA0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NTk5NTgzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4gCisK
KyAgICAgICAgVXBkYXRlcyB0byB0ZXN0aW5nIGluZnJhc3RydWN0dXJlIHRvIHRlc3Qgc3VjY2Vz
c2Z1bCBsaXN0LW1lcmdpbmcgb2YKKyAgICAgICAgdG9wIGRvbWFpbnMgaW50byB0aGUgSVRQIFNR
TGl0ZSBkYXRhYmFzZSBhbmQgdGVzdCBhZ2FpbnN0IHJlcGVhdAorICAgICAgICBpbnNlcnRzLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc01lcmdl
U3RhdGlzdGljKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6aXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6aXNTdGF0aXN0aWNz
T25seUluRGF0YWJhc2VPbmNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NN
ZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc1N0YXRpc3Rp
Y3NPbmx5SW5EYXRhYmFzZU9uY2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE5LTEwLTA3ICBNYXR0IExld2lzICA8amxl
d2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgQnJpbmcgdXAgcXVldWVzIGZvciBDYXRhbGluYQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNDJhYWQ1NGUzMTEzYTM4M2Y3MzQ5MTc3NDE1
MjE3Y2VkOTkwZDRhZC4uNzYxODEyYjZkMDFjM2M5YjNhMzIyNWU1ZjViZDVhYTBiYTJjZDU5YyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0yOTgsNyArMjk4LDcgQEAgaW50ZXJmYWNl
IFRlc3RSdW5uZXIgewogICAgIHZvaWQgc2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sZWFuIHZh
bHVlLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKERPTVN0cmluZyBob3N0TmFtZSwgb2JqZWN0IGNv
bXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0U2VlbihET01TdHJp
bmcgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwot
ICAgIHZvaWQgc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKERPTVN0cmluZyBob3N0TmFtZSwg
RE9NU3RyaW5nIHRvcEZyYW1lRG9tYWluLCBkb3VibGUgbGFzdFNlZW4sIGJvb2xlYW4gaGFkVXNl
ckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbGVhbiBp
c0dyYW5kZmF0aGVyZWQsIGJvb2xlYW4gaXNQcmV2YWxlbnQsIGJvb2xlYW4gaXNWZXJ5UHJldmFs
ZW50LCB1bnNpZ25lZCBsb25nIGRhdGFSZWNvcmRzUmVtb3ZlZCwgb2JqZWN0IGNvbXBsZXRpb25I
YW5kbGVyKTsKKyAgICB2b2lkIHNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhET01TdHJpbmcg
aG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFtZURvbWFpbjEsIERPTVN0cmluZyB0b3BGcmFtZURv
bWFpbjIsIGRvdWJsZSBsYXN0U2VlbiwgYm9vbGVhbiBoYWRVc2VySW50ZXJhY3Rpb24sIGRvdWJs
ZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sZWFuIGlzR3JhbmRmYXRoZXJlZCwgYm9v
bGVhbiBpc1ByZXZhbGVudCwgYm9vbGVhbiBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGxvbmcg
ZGF0YVJlY29yZHNSZW1vdmVkLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZvaWQg
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKERPTVN0cmluZyBob3N0TmFtZSwgYm9vbGVh
biB2YWx1ZSwgb2JqZWN0IGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHNldFN0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoRE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFuIHZhbHVl
LCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UoRE9NU3RyaW5nIGhvc3ROYW1lKTsKQEAgLTMwOCw2ICszMDgsNyBAQCBp
bnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKERPTVN0cmluZyBob3N0UmVkaXJlY3RlZEZyb20sIERPTVN0cmluZyBo
b3N0UmVkaXJlY3RlZFRvKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oRE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFuIHZhbHVlLCBvYmplY3QgY29tcGxldGlv
bkhhbmRsZXIpOwogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KERPTVN0cmluZyBob3N0TmFtZSk7CisgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NPbmx5SW5EYXRh
YmFzZU9uY2UoRE9NU3RyaW5nIHN1Ykhvc3QsIERPTVN0cmluZyB0b3BIb3N0KTsKICAgICB2b2lk
IHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERPTVN0cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2
YWx1ZSk7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERPTVN0cmluZyBo
b3N0TmFtZSk7CiAgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sZWFuIHZhbHVlKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCmluZGV4IDAxMTA0YWNmODRiYWIxMjdlNTE3M2QzNzkzMmU0Mjk5YWZhM2MxNTQuLjZhM2Ez
MWExOWU5MmU2MDVmNjNhNjUyZjE3OGIyNmFiYWI1NzA4MjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTQ1NCw3
ICsxNDU0LDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldExhc3RTZWVu
Q2FsbGJhY2soKQogICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3RhdGlzdGljc0xhc3RT
ZWVuQ2FsbGJhY2tJRCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc01lcmdl
U3RhdGlzdGljKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BGcmFtZURvbWFp
biwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFs
ZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBK
U1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0
aWNzTWVyZ2VTdGF0aXN0aWMoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHRvcEZy
YW1lRG9tYWluMSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4yLCBkb3VibGUgbGFzdFNlZW4s
IGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJl
dmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIEpTVmFsdWVSZWYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgY2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3RhdGlzdGljc01l
cmdlU3RhdGlzdGljQ2FsbGJhY2tJRCwgY29tcGxldGlvbkhhbmRsZXIpOwogCkBAIC0xNDY0LDgg
KzE0NjQsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMo
SlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHQKICAgICBrZXlzLmFwcGVuZChhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKSk7CiAgICAgdmFs
dWVzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aEpTU3RyaW5nKGhvc3ROYW1lKSkp
OwogICAgIAotICAgIGtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlRvcEZyYW1lRG9tYWluIikpKTsKLSAgICB2YWx1ZXMuYXBwZW5kKGFkb3B0V0soV0tT
dHJpbmdDcmVhdGVXaXRoSlNTdHJpbmcodG9wRnJhbWVEb21haW4pKSk7CisgICAga2V5cy5hcHBl
bmQoYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVG9wRnJhbWVEb21haW4x
IikpKTsKKyAgICB2YWx1ZXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoSlNTdHJp
bmcodG9wRnJhbWVEb21haW4xKSkpOworICAgIAorICAgIGtleXMuYXBwZW5kKGFkb3B0V0soV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluMiIpKSk7CisgICAgdmFs
dWVzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aEpTU3RyaW5nKHRvcEZyYW1lRG9t
YWluMikpKTsKIAogICAgIGtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkxhc3RTZWVuIikpKTsKICAgICB2YWx1ZXMuYXBwZW5kKGFkb3B0V0soV0tEb3Vi
bGVDcmVhdGUobGFzdFNlZW4pKSk7CkBAIC0xNzI0LDYgKzE3MjcsMzQgQEAgYm9vbCBUZXN0UnVu
bmVyOjppc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5h
bWUpCiAgICAgcmV0dXJuIFdLQm9vbGVhbkdldFZhbHVlKGFkb3B0V0soc3RhdGljX2Nhc3Q8V0tC
b29sZWFuUmVmPihyZXR1cm5EYXRhKSkuZ2V0KCkpOwogfQogCitib29sIFRlc3RSdW5uZXI6Omlz
U3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShKU1N0cmluZ1JlZiBzdWJIb3N0LCBKU1N0cmlu
Z1JlZiB0b3BIb3N0KQoreworICAgIAorICAgIFZlY3RvcjxXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4+IGtleXM7CisgICAgVmVjdG9yPFdLUmV0YWluUHRyPFdLVHlwZVJlZj4+IHZhbHVlczsKKwor
ICAgIGtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN1
Ykhvc3QiKSkpOworICAgIHZhbHVlcy5hcHBlbmQoYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhK
U1N0cmluZyhzdWJIb3N0KSkpOworICAgIAorICAgIGtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEhvc3QiKSkpOworICAgIHZhbHVlcy5hcHBlbmQo
YWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhKU1N0cmluZyh0b3BIb3N0KSkpOworICAgIAorICAg
IFZlY3RvcjxXS1N0cmluZ1JlZj4gcmF3S2V5cyhrZXlzLnNpemUoKSk7CisgICAgVmVjdG9yPFdL
VHlwZVJlZj4gcmF3VmFsdWVzKHZhbHVlcy5zaXplKCkpOworCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CisgICAgICAgIHJhd0tleXNbaV0gPSBrZXlzW2ld
LmdldCgpOworICAgICAgICByYXdWYWx1ZXNbaV0gPSB2YWx1ZXNbaV0uZ2V0KCk7CisgICAgfQor
CisgICAgYXV0byBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIklzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZSIpKTsKKyAgICBhdXRvIG1lc3Nh
Z2VCb2R5ID0gYWRvcHRXSyhXS0RpY3Rpb25hcnlDcmVhdGUocmF3S2V5cy5kYXRhKCksIHJhd1Zh
bHVlcy5kYXRhKCksIHJhd0tleXMuc2l6ZSgpKSk7CisgICAgV0tUeXBlUmVmIHJldHVybkRhdGEg
PSBudWxscHRyOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0
aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5h
bWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCAmcmV0dXJuRGF0YSk7CisgICAgQVNTRVJUKFdL
R2V0VHlwZUlEKHJldHVybkRhdGEpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICByZXR1
cm4gV0tCb29sZWFuR2V0VmFsdWUoYWRvcHRXSyhzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KHJl
dHVybkRhdGEpKS5nZXQoKSk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0dy
YW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpCiB7CiAgICAgVmVj
dG9yPFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPj4ga2V5czsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggZjE3MDAxMjk4MzFi
NmY5NDcwNzYyZjAzMGZlY2Q3MDFjNGQzYmEzYi4uMjUyNjQzZmJhMzkzMTcxODRjOGE3MWY4MzAw
NGVhMDNlMzFhNzVmYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM5Niw3ICszOTYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlQ2FsbGJh
Y2soKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0U2VlbihKU1N0cmluZ1JlZiBob3N0TmFt
ZSwgZG91YmxlIHNlY29uZHMsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZv
aWQgc3RhdGlzdGljc0NhbGxEaWRTZXRMYXN0U2VlbkNhbGxiYWNrKCk7Ci0gICAgdm9pZCBzZXRT
dGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVm
IHRvcEZyYW1lRG9tYWluLCBkb3VibGUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9u
LCBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQs
IGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVj
b3Jkc1JlbW92ZWQsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgc2V0
U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1Jl
ZiB0b3BGcmFtZURvbWFpbjEsIEpTU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxh
c3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlz
VmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBKU1ZhbHVlUmVmIGNv
bXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHN0YXRpc3RpY3NDYWxsRGlkU2V0TWVyZ2VTdGF0
aXN0aWNDYWxsYmFjaygpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25I
YW5kbGVyKTsKICAgICB2b2lkIHN0YXRpc3RpY3NDYWxsRGlkU2V0UHJldmFsZW50UmVzb3VyY2VD
YWxsYmFjaygpOwpAQCAtNDEwLDYgKzQxMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFs
dWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZvaWQgc3RhdGlzdGljc0Nh
bGxEaWRTZXRIYXNIYWRVc2VySW50ZXJhY3Rpb25DYWxsYmFjaygpOwogICAgIGJvb2wgaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAgICBi
b29sIGlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShKU1N0cmluZ1JlZiBzdWJIb3N0LCBK
U1N0cmluZ1JlZiB0b3BIb3N0KTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVk
KEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKTsKICAgICBib29sIGlzU3RhdGlzdGlj
c0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0VXNlSVRQ
RGF0YWJhc2UoYm9vbCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDliODA3MWRhN2ZmM2Y5ODA4ODEyZjc1NjE3ZjIwMGJhNWIyZmE1MTEuLjdj
ZDE5MmFlMzgzNjk1YzI5MTI3NjMxZDFhMTQxNGY2ZjExNTc5MWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMjY3LDEwICszMjY3LDEwIEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1N0cmluZ1JlZiBob3N0LCBk
b3VibGUgc2Vjb25kcykKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRTZXRMYXN0U2Vlbigp
OwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMo
V0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4sIGRvdWJsZSBsYXN0
U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1Zl
cnlQcmV2YWxlbnQsIGludCBkYXRhUmVjb3Jkc1JlbW92ZWQpCit2b2lkIFRlc3RDb250cm9sbGVy
OjpzZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdS
ZWYgdG9wRnJhbWVEb21haW4xLCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjIsIGRvdWJsZSBs
YXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGRvdWJsZSBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBp
c1ZlcnlQcmV2YWxlbnQsIGludCBkYXRhUmVjb3Jkc1JlbW92ZWQpCiB7CiAgICAgUmVzb3VyY2VT
dGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0
ZURhdGFTdG9yZSgpLCBob3N0LCB0b3BGcmFtZURvbWFpbiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRl
cmFjdGlvbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1By
ZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsICZjb250ZXh0LCBy
ZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURh
dGFTdG9yZSgpLCBob3N0LCB0b3BGcmFtZURvbWFpbjEsIHRvcEZyYW1lRG9tYWluMiwgbGFzdFNl
ZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFu
ZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92
ZWQsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOwogICAg
IHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKICAgICBtX2N1cnJlbnRJbnZvY2F0
aW9uLT5kaWRNZXJnZVN0YXRpc3RpYygpOwogfQpAQCAtMzM1NSw2ICszMzU1LDE0IEBAIGJvb2wg
VGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1N0cmlu
Z1JlZiBob3N0KQogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KIAorYm9vbCBUZXN0Q29u
dHJvbGxlcjo6aXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKFdLU3RyaW5nUmVmIHN1Ykhv
c3QsIFdLU3RyaW5nUmVmIHRvcEhvc3QpCit7CisgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJh
Y2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlz
dGljc09ubHlJbkRhdGFiYXNlT25jZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgp
LCBzdWJIb3N0LCB0b3BIb3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJl
c3VsdENhbGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7Cisg
ICAgcmV0dXJuIGNvbnRleHQucmVzdWx0OworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRT
dGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKQogewog
ICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFRlc3RDb250
cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA2YzJkMmQ4ODZlMDNiNzdiNjJiZTU1MzhhMjJi
OWIwZThkNGM0MWU0Li4zYzcxNTE5MmZiYmI2N2U0YmFhNTI1YzVmZmZjMTNjYTQ2ZWI4ZmVjIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0yMTAsNyArMjEwLDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sIHZhbHVlKTsK
ICAgICB2b2lkIHNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShXS1N0
cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzTGFzdFNlZW4oV0tTdHJp
bmdSZWYgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzKTsKLSAgICB2b2lkIHNldFN0YXRpc3RpY3NN
ZXJnZVN0YXRpc3RpYyhXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFp
biwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFs
ZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgaW50IGRhdGFSZWNvcmRzUmVtb3ZlZCk7CisgICAg
dm9pZCBzZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJp
bmdSZWYgdG9wRnJhbWVEb21haW4xLCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjIsIGRvdWJs
ZSBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGRvdWJsZSBtb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9v
bCBpc1ZlcnlQcmV2YWxlbnQsIGludCBkYXRhUmVjb3Jkc1JlbW92ZWQpOwogICAgIHZvaWQgc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZh
bHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tTdHJp
bmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAgIFN0cmluZyBkdW1wUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpOwpAQCAtMjIxLDYgKzIyMSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0
ZWRGcm9tLCBXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZFRvKTsKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFs
dWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLU3RyaW5n
UmVmIGhvc3ROYW1lKTsKKyAgICBib29sIGlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShX
S1N0cmluZ1JlZiBzdWJIb3N0LCBXS1N0cmluZ1JlZiB0b3BIb3N0KTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKTsK
ICAgICBib29sIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdE5hbWUp
OwogICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDJmOGIzMDZlMmM4Yzg3M2ZmZDMxNzk2
MWM4MTJjNWJjODgyYjYzY2QuLjBkMTJlNzA0NGQ1MDEyMzk2MmU0YzJlMDMzZTE3MGVjYTUxMWRl
YWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMTA1
LDcgKzExMDUsOCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogCiAgICAgICAgIFdLRGljdGlv
bmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlS
ZWY+KG1lc3NhZ2VCb2R5KTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhvc3RO
YW1lS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSG9zdE5hbWUi
KSk7Ci0gICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0b3BGcmFtZURvbWFpbktleSA9
IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluIikp
OworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdG9wRnJhbWVEb21haW4xS2V5ID0g
YWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVG9wRnJhbWVEb21haW4xIikp
OworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdG9wRnJhbWVEb21haW4yS2V5ID0g
YWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVG9wRnJhbWVEb21haW4yIikp
OwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbGFzdFNlZW5LZXkgPSBhZG9wdFdL
KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJMYXN0U2VlbiIpKTsKICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhhZFVzZXJJbnRlcmFjdGlvbktleSA9IGFkb3B0V0soV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkhhZFVzZXJJbnRlcmFjdGlvbiIpKTsKICAgICAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25LZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uIikpOwpAQCAtMTExNiw3ICsxMTE3LDggQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVm
PiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3Rl
ZEIKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRpbWVzQWNjZXNzZWRGaXJzdFBh
cnR5SW50ZXJhY3Rpb25LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJUaW1lc0FjY2Vzc2VkRmlyc3RQYXJ0eUludGVyYWN0aW9uIikpOwogCiAgICAgICAgIFdLU3Ry
aW5nUmVmIGhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdl
dEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBob3N0TmFtZUtleS5nZXQoKSkpOwot
ICAgICAgICBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbiA9IHN0YXRpY19jYXN0PFdLU3RyaW5n
UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgdG9w
RnJhbWVEb21haW5LZXkuZ2V0KCkpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21h
aW4xID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXko
bWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB0b3BGcmFtZURvbWFpbjFLZXkuZ2V0KCkpKTsKKyAgICAg
ICAgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4yID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB0b3BGcmFt
ZURvbWFpbjJLZXkuZ2V0KCkpKTsKICAgICAgICAgV0tEb3VibGVSZWYgbGFzdFNlZW4gPSBzdGF0
aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9k
eURpY3Rpb25hcnksIGxhc3RTZWVuS2V5LmdldCgpKSk7CiAgICAgICAgIFdLQm9vbGVhblJlZiBo
YWRVc2VySW50ZXJhY3Rpb24gPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFy
eUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBoYWRVc2VySW50ZXJhY3Rpb25L
ZXkuZ2V0KCkpKTsKICAgICAgICAgV0tEb3VibGVSZWYgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
biA9IHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbktleS5nZXQoKSkp
OwpAQCAtMTEyNSw3ICsxMTI3LDcgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAg
V0tCb29sZWFuUmVmIGlzVmVyeVByZXZhbGVudCA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4o
V0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGlzVmVyeVBy
ZXZhbGVudEtleS5nZXQoKSkpOwogICAgICAgICBXS1VJbnQ2NFJlZiBkYXRhUmVjb3Jkc1JlbW92
ZWQgPSBzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleSht
ZXNzYWdlQm9keURpY3Rpb25hcnksIGRhdGFSZWNvcmRzUmVtb3ZlZEtleS5nZXQoKSkpOwogICAg
ICAgICAKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NN
ZXJnZVN0YXRpc3RpYyhob3N0TmFtZSwgdG9wRnJhbWVEb21haW4sIFdLRG91YmxlR2V0VmFsdWUo
bGFzdFNlZW4pLCBXS0Jvb2xlYW5HZXRWYWx1ZShoYWRVc2VySW50ZXJhY3Rpb24pLCBXS0RvdWJs
ZUdldFZhbHVlKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24pLCBXS0Jvb2xlYW5HZXRWYWx1ZShp
c0dyYW5kZmF0aGVyZWQpLCBXS0Jvb2xlYW5HZXRWYWx1ZShpc1ByZXZhbGVudCksIFdLQm9vbGVh
bkdldFZhbHVlKGlzVmVyeVByZXZhbGVudCksIFdLVUludDY0R2V0VmFsdWUoZGF0YVJlY29yZHNS
ZW1vdmVkKSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0
aWNzTWVyZ2VTdGF0aXN0aWMoaG9zdE5hbWUsIHRvcEZyYW1lRG9tYWluMSwgdG9wRnJhbWVEb21h
aW4yLCBXS0RvdWJsZUdldFZhbHVlKGxhc3RTZWVuKSwgV0tCb29sZWFuR2V0VmFsdWUoaGFkVXNl
ckludGVyYWN0aW9uKSwgV0tEb3VibGVHZXRWYWx1ZShtb3N0UmVjZW50VXNlckludGVyYWN0aW9u
KSwgV0tCb29sZWFuR2V0VmFsdWUoaXNHcmFuZGZhdGhlcmVkKSwgV0tCb29sZWFuR2V0VmFsdWUo
aXNQcmV2YWxlbnQpLCBXS0Jvb2xlYW5HZXRWYWx1ZShpc1ZlcnlQcmV2YWxlbnQpLCBXS1VJbnQ2
NEdldFZhbHVlKGRhdGFSZWNvcmRzUmVtb3ZlZCkpOwogCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KQEAgLTEyNDksNiArMTI1MSwyMCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIklzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNl
T25jZSIpKSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tE
aWN0aW9uYXJ5R2V0VHlwZUlEKCkpOworICAgICAgICAKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVm
IG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVz
c2FnZUJvZHkpOworICAgICAgICBhdXRvIHN1Ykhvc3RLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJTdWJIb3N0IikpOworICAgICAgICBhdXRvIHRvcEhvc3RLZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUb3BIb3N0IikpOworICAg
ICAgICAKKyAgICAgICAgV0tTdHJpbmdSZWYgc3ViSG9zdCA9IHN0YXRpY19jYXN0PFdLU3RyaW5n
UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgc3Vi
SG9zdEtleS5nZXQoKSkpOworICAgICAgICBXS1N0cmluZ1JlZiB0b3BIb3N0ID0gc3RhdGljX2Nh
c3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0
aW9uYXJ5LCB0b3BIb3N0S2V5LmdldCgpKSk7CisKKyAgICAgICAgYm9vbCBzdGF0aXN0aWNJbkRh
dGFiYXNlT25jZSA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5pc1N0YXRpc3RpY3NPbmx5
SW5EYXRhYmFzZU9uY2Uoc3ViSG9zdCwgdG9wSG9zdCk7CisgICAgICAgIHJldHVybiBhZG9wdFdL
KFdLQm9vbGVhbkNyZWF0ZShzdGF0aXN0aWNJbkRhdGFiYXNlT25jZSkpOworICAgIH0KKyAgICAK
ICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0
YXRpc3RpY3NHcmFuZGZhdGhlcmVkIikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1l
c3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CiAgICAgICAgIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDEyYjZkZDAzZWFlMDA0ZmY4YTc3MGQ4YjYwYmIzMWNmOWI0ZjgxM2QuLjU2YWIzNmU0YmE3NTU5
NjVkOWNlZDNmYTc4NzIzNmZiZGNhZmE5OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0x
MC0wNyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAg
ICBEb21haW4gcmVsYXRpb25zaGlwcyBpbiB0aGUgSVRQIERhdGFiYXNlIHNob3VsZCBiZSBpbnNl
cnRlZCBpbiBhIHNpbmdsZSBxdWVyeSBhbmQgaWdub3JlIHJlcGVhdCBpbnNlcnQgYXR0ZW1wdHMu
ICgyMDI2MDQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDI2MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1OTk1ODMxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIEVkaXRlZCB0aGUgbWVyZ2Utc3RhdGlz
dGljcyB0ZXN0cyB0byBhbHNvIHRlc3QgdGhlIGxpc3QtaW5zZXJ0aW9uCisgICAgICAgIGNoYW5n
ZSBtYWRlIGluIHRoaXMgcGF0Y2guIEFsc28gYWRkZWQgYSBuZXcgdGVzdCB0byBlbnN1cmUgcmVw
ZWF0CisgICAgICAgIGluc2VydHMgb25seSByZXN1bHQgaW4gb25lIGVudHJ5IGluIHRoZSBkYXRh
YmFzZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tYW55
LWluc2VydHMtb25seS1pbnNlcnQtb25jZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tYW55LWluc2VydHMtb25seS1pbnNl
cnQtb25jZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtbm90LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0
aXN0aWMtZG9lcy1vdmVyd3JpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1vdmVy
d3JpdGUtZGF0YWJhc2UuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtcGFydGlhbGx5LW92ZXJ3cml0ZS1kYXRhYmFz
ZS5odG1sOgorCiAyMDE5LTEwLTA3ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgog
CiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IG1fdHJhbnNhY3Rpb25PcGVyYXRpb25zSW5Qcm9n
cmVzc1F1ZXVlLmZpcnN0KCkgPT0gJm9wZXJhdGlvbiBpbiBJREJUcmFuc2FjdGlvbjo6b3BlcmF0
aW9uQ29tcGxldGVkT25DbGllbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tYW55LWluc2VydHMtb25seS1pbnNlcnQtb25jZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bWFueS1pbnNlcnRzLW9ubHktaW5zZXJ0LW9uY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFh
MjgwNTIwNTIxOGM5MDA2NTMwMDY3NGRiY2M0YmI4ODU0ZTQ1MjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWFueS1pbnNl
cnRzLW9ubHktaW5zZXJ0LW9uY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Rz
IHRoYXQgbWFueSBpbnNlcnRzIGludG8gdGhlIGRhdGFiYXNlIG9ubHkgcmVzdWx0IGluIG9uZSBy
b3cuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHVybCBzZXQgYXMgc3Vi
ZnJhbWUKK1BBU1MgUmVsYXRpb25zaGlwcyBhcmUgb25seSBpbiB0aGUgZGF0YWJhc2Ugb25jZS4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWFu
eS1pbnNlcnRzLW9ubHktaW5zZXJ0LW9uY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tYW55LWluc2VydHMtb25seS1pbnNlcnQtb25jZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMwMTliMGQ2Mjc3MzkyOGNjZTdlYmYwNmZlZjA0ZDE3Y2VlN2FjMjgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvbWFueS1pbnNlcnRzLW9ubHktaW5zZXJ0LW9uY2UuaHRtbApAQCAtMCwwICsxLDc1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgICAgICA8dGl0bGU+VGVzdHMgdGhhdCBtYW55IGluc2VydHMgaW50byB0aGUgZGF0
YWJhc2Ugb25seSByZXN1bHQgaW4gb25lIHJvdy48L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
KyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IG1hbnkgaW5zZXJ0cyBpbnRvIHRoZSBkYXRhYmFzZSBvbmx5IHJlc3VsdCBp
biBvbmUgcm93LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdG9w
RnJhbWVVcmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YmZy
YW1lVXJsID0gImh0dHA6Ly8xMjcuMC4xLjE6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNo
ZWNrQ2xhc3NpZmljYXRpb25BbmRDb250aW51ZSgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoc3ViZnJhbWVVcmwsIHRvcEZy
YW1lVXJsKSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgidXJsIGRpZCBub3QgZ2V0IHNldCBh
cyBzdWJmcmFtZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhzdWJmcmFtZVVybCwgdG9wRnJhbWVVcmwpKSB7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJ1cmwgZGlkIG5vdCBnZXQgc2V0IGFzIHJlZGlyZWN0aW5nIHRv
IHRvcCBmcmFtZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihzdWJmcmFtZVVybCwgdG9wRnJhbWVVcmwpKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJ1cmwgZGlkIG5vdCBnZXQgc2V0IGFzIHN1YnJlc291cmNl
LiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoInVybCBzZXQgYXMgc3Vi
ZnJhbWUiKTsKKyAgICAgICAgICAgIGNoZWNrQ291bnRTdGF0aXN0aWNzKCk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBmdW5jdGlvbiBpbnNlcnRNYW55VGltZXModXJsKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbih1cmwsIHRv
cEZyYW1lVXJsKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2luKHVybCwgdG9wRnJhbWVVcmwpOworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4odXJsLCB0b3BGcmFtZVVybCk7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbih1cmwsIHRvcEZyYW1lVXJsKTsKKyAgICAgICAgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbih1cmwsIHRvcEZyYW1lVXJs
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luKHVybCwgdG9wRnJhbWVVcmwpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4odXJsLCB0b3BGcmFtZVVybCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbih1cmwsIHRvcEZyYW1lVXJsKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8odXJsLCB0b3BG
cmFtZVVybCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RUbyh1cmwsIHRvcEZyYW1lVXJsKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHVybCwgdG9wRnJhbWVVcmwpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8odXJsLCB0b3BGcmFtZVVybCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0VXBTdGF0aXN0
aWNzQW5kQ29udGludWUoKSB7CisgICAgICAgIGluc2VydE1hbnlUaW1lcyhzdWJmcmFtZVVybCk7
CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHND
YWxsYmFjayhjaGVja0NsYXNzaWZpY2F0aW9uQW5kQ29udGludWUpOworICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gY2hlY2tDb3VudFN0YXRpc3RpY3MocmVzdWx0KSB7CisgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShzdWJmcmFtZVVybCwg
dG9wRnJhbWVVcmwpKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVsYXRpb25zaGlwcyBhcmUg
b25seSBpbiB0aGUgZGF0YWJhc2Ugb25jZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiUmVsYXRpb25zaGlwcyBhcmUgaW4gdGhlIGRhdGFiYXNlIG1vcmUgdGhhbiBv
bmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAg
ICAgICAgICAgc2V0VXBTdGF0aXN0aWNzQW5kQ29udGludWUoKTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtbm90
LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1kb2VzLW5vdC1vdmVyd3JpdGUtZGF0YWJh
c2UuaHRtbAppbmRleCA0MjQ5ZWVjMzllM2YxMWI1ZTQ1N2RiZDhiYjkyZWM3ZGJjNWQ4ZWRlLi40
ZDRhMjgzNjdiZjZhNDcyMDdhY2I1OWZiMWIyYTk5M2JlMGJjODExIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGlj
LWRvZXMtbm90LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1ub3Qtb3Zl
cndyaXRlLWRhdGFiYXNlLmh0bWwKQEAgLTE2LDcgKzE2LDcgQEAKICAgICBjb25zdCBuZXdlclRp
bWVzdGFtcCA9IG9sZGVyVGltZXN0YW1wICsgMTA7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgIGZ1bmN0aW9uIGluc2VydFNlY29uZFN0YXRpc3RpYygpIHsKLSAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKHVybCwgIiIsIG9sZGVy
VGltZXN0YW1wLCBmYWxzZSwgOTksIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGZ1bmN0aW9uKCkg
eworICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWModXJsLCAiIiwg
IiIsIG9sZGVyVGltZXN0YW1wLCBmYWxzZSwgOTksIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGZ1
bmN0aW9uKCkgewogICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHVybCkpCiAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5vdCBv
dmVyd3JpdGUgb2xkIHByZXZhbGVudCByZXNvdXJjZSB2YWx1ZS4iKTsKICAgICAgICAgICBlbHNl
CkBAIC00NCw3ICs0NCw3IEBACiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5u
ZXJUZXN0KCkgewotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3Rp
Yyh1cmwsICIiLCBuZXdlclRpbWVzdGFtcCwgdHJ1ZSwgMTAwLCB0cnVlLCB0cnVlLCB0cnVlLCAx
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0
aXN0aWModXJsLCAiIiwgIiIsIG5ld2VyVGltZXN0YW1wLCB0cnVlLCAxMDAsIHRydWUsIHRydWUs
IHRydWUsIDEsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybCkpCiAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRp
c3RpYy1kb2VzLW92ZXJ3cml0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtb3Zl
cndyaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dAppbmRleCBhZGNmN2U4MGQ3OTkwZjgwNDQ3MDE0
YjdkNWUyYmEwMjQyOTMyZTE4Li41ZmIxZTRhNTMwN2QwZjhjZTRkNjMwYmVkYjgxNTM0MzcwZThh
MjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtb3ZlcndyaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVy
Z2Utc3RhdGlzdGljLWRvZXMtb3ZlcndyaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtNyw3
ICs3LDggQEAgUEFTUyBIb3N0IG92ZXJ3cm90ZSBvbGQgcHJldmFsZW50IHJlc291cmNlIHZhbHVl
LgogUEFTUyBIb3N0IG92ZXJ3cm90ZSBvbGQgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UgdmFsdWUu
CiBQQVNTIEhvc3Qgb3Zlcndyb3RlIG9sZCB1c2VyIGludGVyYWN0aW9uIHZhbHVlLgogUEFTUyBI
b3N0IG92ZXJ3cm90ZSBvbGQgZ3JhbmRmYXRoZXJlZCB2YWx1ZS4KLVBBU1MgSG9zdCBzZXQgYXMg
c3ViZnJhbWUgdW5kZXIgdG9wIGZyYW1lLgorUEFTUyBIb3N0IHNldCBhcyBzdWJmcmFtZSB1bmRl
ciB0b3AgZnJhbWUxLgorUEFTUyBIb3N0IHNldCBhcyBzdWJmcmFtZSB1bmRlciB0b3AgZnJhbWUy
LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVy
Z2Utc3RhdGlzdGljLWRvZXMtb3ZlcndyaXRlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtb3Zl
cndyaXRlLWRhdGFiYXNlLmh0bWwKaW5kZXggMTQxMmUxNWNjODBmNGU3YTgzZjQxNTc4MDBkN2Mz
NGIwODlmNDg2NC4uMWExOTk0OTQ1N2UyYzc2OGE0MDdkYTE1MDAyNTNjYmFiMmNiZmZkYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21l
cmdlLXN0YXRpc3RpYy1kb2VzLW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9l
cy1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbApAQCAtMTEsNTEgKzExLDU4IEBACiAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CiAKICAgICBjb25zdCB1cmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKLSAgICBjb25zdCBzYW1wbGVUb3BGcmFtZVVSTCA9ICJodHRwOi8vdG9wRnJhbWVEb21haW46
ODAwMCI7CisgICAgY29uc3Qgc2FtcGxlVG9wRnJhbWVVUkwxID0gImh0dHA6Ly90b3BGcmFtZURv
bWFpbjE6ODAwMCI7CisgICAgY29uc3Qgc2FtcGxlVG9wRnJhbWVVUkwyID0gImh0dHA6Ly90b3BG
cmFtZURvbWFpbjI6ODAwMCI7CiAgICAgY29uc3Qgb2xkZXJUaW1lc3RhbXAgPSBNYXRoLnJvdW5k
KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAwKTsKICAgICBjb25zdCBuZXdlclRpbWVzdGFt
cCA9IG9sZGVyVGltZXN0YW1wICsgMTA7CiAgICAgY29uc3QgbW9zdFJlY2VudFVJVG9UcmlnZ2Vy
Rmlyc3RQYXJ0eUludGVyYWN0aW9uQ291bnQgPSBuZXdlclRpbWVzdGFtcCArIDkwMDAwOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICBmdW5jdGlvbiBpbnNlcnRT
ZWNvbmRTdGF0aXN0aWMoKSB7CiAgICAgCi0gICAgICAgIC8vIHNldCB0aGlzIHJlc291cmNlIGFz
IHByZXZhbGVudCBzbyBpdCBpcyBpbiB0aGUgc3RhdGlzdGljcyBzdG9yZQotICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzYW1wbGVUb3BGcmFtZVVSTCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIAotICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyh1cmwsIHNhbXBsZVRvcEZyYW1lVVJMLCBuZXdlclRp
bWVzdGFtcCwgdHJ1ZSwgbW9zdFJlY2VudFVJVG9UcmlnZ2VyRmlyc3RQYXJ0eUludGVyYWN0aW9u
Q291bnQsIHRydWUsIHRydWUsIHRydWUsIDEsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsKSkKLSAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IG92ZXJ3cm90ZSBvbGQgcHJldmFs
ZW50IHJlc291cmNlIHZhbHVlLiIpOwotICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgbm90IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgIC8vIHNldCB1cmwxIGFzIHByZXZhbGVudCBzbyBpdCBpcyBpbiB0aGUg
c3RhdGlzdGljcyBzdG9yZQorICAgICAgICAvLyBzZXQgdXJsMiBoYXZpbmcgVUkgc28gaXQgaXMg
aW4gdGhlIHN0YXRpc3RpY3Mgc3RvcmUKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc2FtcGxlVG9wRnJhbWVVUkwxLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzYW1wbGVUb3BGcmFtZVVSTDIsIHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKHVybCwgc2FtcGxlVG9w
RnJhbWVVUkwxLCBzYW1wbGVUb3BGcmFtZVVSTDIsIG5ld2VyVGltZXN0YW1wLCB0cnVlLCBtb3N0
UmVjZW50VUlUb1RyaWdnZXJGaXJzdFBhcnR5SW50ZXJhY3Rpb25Db3VudCwgdHJ1ZSwgdHJ1ZSwg
dHJ1ZSwgMSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBvdmVyd3JvdGUgb2xkIHByZXZhbGVudCByZXNvdXJj
ZSB2YWx1ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgbm90IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CiAKLSAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQ
cmV2YWxlbnRSZXNvdXJjZSh1cmwpKQotICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
Ikhvc3Qgb3Zlcndyb3RlIG9sZCB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZSB2YWx1ZS4iKTsKLSAg
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IG5vdCBzZXQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybCkp
Ci0gICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBvdmVyd3JvdGUgb2xkIHVz
ZXIgaW50ZXJhY3Rpb24gdmFsdWUuIik7Ci0gICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBub3QgbG9nZ2VkIGZvciB1c2VyIGludGVy
YWN0aW9uLiIpOwotICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZCh1cmwpKQotICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qgb3Zlcndyb3RlIG9sZCBncmFuZGZhdGhlcmVkIHZhbHVl
LiIpOwotICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3Qgbm90IHNldCBhcyBncmFuZGZhdGhlcmVkLiIpOworICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh1
cmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IG92ZXJ3cm90
ZSBvbGQgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UgdmFsdWUuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IG5v
dCBzZXQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJs
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBvdmVyd3JvdGUg
b2xkIHVzZXIgaW50ZXJhY3Rpb24gdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IG5vdCBsb2dnZWQg
Zm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQo
dXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBvdmVyd3Jv
dGUgb2xkIGdyYW5kZmF0aGVyZWQgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IG5vdCBzZXQgYXMg
Z3JhbmRmYXRoZXJlZC4iKTsKIAotICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcih1cmwsIHNhbXBsZVRvcEZyYW1lVVJM
KSkKLSAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IHNldCBhcyBzdWJmcmFt
ZSB1bmRlciB0b3AgZnJhbWUuIik7Ci0gICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBub3Qgc2V0IGFzIHN1YmZyYW1lIHVuZGVyIHRv
cCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKHVybCwgc2FtcGxlVG9wRnJhbWVVUkwxKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBzZXQgYXMgc3ViZnJh
bWUgdW5kZXIgdG9wIGZyYW1lMS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgbm90IHNldCBhcyBzdWJmcmFt
ZSB1bmRlciB0b3AgZnJhbWUxLiIpOworICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIodXJsLCBzYW1wbGVUb3BG
cmFtZVVSTDIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IHNl
dCBhcyBzdWJmcmFtZSB1bmRlciB0b3AgZnJhbWUyLiIpOworICAgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBub3Qgc2V0
IGFzIHN1YmZyYW1lIHVuZGVyIHRvcCBmcmFtZTIuIik7CiAKLSAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICB9KTsKKyAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAgICAgfQogICAg
IAogICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewotICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyh1cmwsICIiLCBvbGRlclRpbWVzdGFtcCwgZmFs
c2UsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyh1cmwsICIiLCAiIiwgb2xkZXJUaW1l
c3RhbXAsIGZhbHNlLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVy
bCkpCiAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1kb2VzLXBhcnRpYWxseS1vdmVyd3Jp
dGUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9tZXJnZS1zdGF0aXN0aWMtZG9lcy1wYXJ0aWFsbHktb3ZlcndyaXRlLWRhdGFiYXNl
Lmh0bWwKaW5kZXggNDRkMTZkNjBiOGIwOTI0ZTI1ZjQxMzljMGY4ODgyYjQwMzAyZDA3MS4uYWIz
YzcyYjU2NGJmMDYzNDYyM2NlZDBkMmIyNzQxOGQ4M2EzOWExNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL21lcmdlLXN0YXRpc3RpYy1k
b2VzLXBhcnRpYWxseS1vdmVyd3JpdGUtZGF0YWJhc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbWVyZ2Utc3RhdGlzdGljLWRvZXMtcGFy
dGlhbGx5LW92ZXJ3cml0ZS1kYXRhYmFzZS5odG1sCkBAIC0yMSw3ICsyMSw3IEBACiAgICAgICAg
IC8vIHNldCB0aGlzIHJlc291cmNlIGFzIHByZXZhbGVudCBzbyBpdCBpcyBpbiB0aGUgc3RhdGlz
dGljcyBzdG9yZQogICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzYW1wbGVUb3BGcmFtZVVSTCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgIAotICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyh1cmwsIHNh
bXBsZVRvcEZyYW1lVVJMLCBuZXdlclRpbWVzdGFtcCwgZmFsc2UsIG1vc3RSZWNlbnRVSVRvVHJp
Z2dlckZpcnN0UGFydHlJbnRlcmFjdGlvbkNvdW50LCB0cnVlLCB0cnVlLCB0cnVlLCAxLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0
aXN0aWModXJsLCBzYW1wbGVUb3BGcmFtZVVSTCwgIiIsIG5ld2VyVGltZXN0YW1wLCBmYWxzZSwg
bW9zdFJlY2VudFVJVG9UcmlnZ2VyRmlyc3RQYXJ0eUludGVyYWN0aW9uQ291bnQsIHRydWUsIHRy
dWUsIHRydWUsIDEsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsKSkKICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IG92ZXJ3cm90ZSBvbGQgcHJldmFsZW50IHJlc291cmNlIHZh
bHVlLiIpOwogICAgICAgICAgICAgICAgICAgZWxzZQpAQCAtNTUsNyArNTUsNyBAQAogICAgIH0K
ICAgICAKICAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWModXJsLCAiIiwgb2xkZXJUaW1lc3RhbXAs
IGZhbHNlLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWModXJsLCAiIiwgIiIsIG9sZGVy
VGltZXN0YW1wLCBmYWxzZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh1cmwpKQogICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>