<?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>209761</bug_id>
          
          <creation_ts>2020-03-30 13:19:45 -0700</creation_ts>
          <short_desc>Experimental: Enforce SameSite=strict for domains classified as bounce trackers</short_desc>
          <delta_ts>2020-04-10 15:28:14 -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>
          
          <blocked>210362</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1635675</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-30 13:19:45 -0700</bug_when>
    <thetext>Domains that are classified as bounce trackers and hit a certain threshold of unique top frame redirects should have their cookies rewritten as SameSite=strict.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635676</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-30 13:19:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/59394943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635697</commentid>
    <comment_count>2</comment_count>
      <attachid>394957</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-30 13:46:44 -0700</bug_when>
    <thetext>Created attachment 394957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635767</commentid>
    <comment_count>3</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-30 15:05:56 -0700</bug_when>
    <thetext>Ugh. The tests are failing on mac-wk2 because that bot is on a version of macOS which lacks the CFNetwork APIs. I&apos;ll update the expectations file accordingly before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635778</commentid>
    <comment_count>4</comment_count>
      <attachid>394957</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-03-30 15:20:47 -0700</bug_when>
    <thetext>Comment on attachment 394957
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1653
&gt; +        return;

Probably need to call the completionHandler here in case of a database I/O error.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1718
&gt;          ASSERT_NOT_REACHED();

Nice catch!

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:2068
&gt; +    result = ensureResourceStatisticsForRegistrableDomain(redirectDomain);

This is not necessary, it is done already in ResourceLoadStatisticsDatabaseStore::ensureAndMakeDomainList.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:2280
&gt; +

Nice! :)

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:455
&gt; +                RELEASE_LOG_INFO_IF(debugLoggingEnabled(), ITPDebug, &quot;Did set %&quot; PUBLIC_LOG_STRING &quot; as making a top frame redirect to %&quot; PUBLIC_LOG_STRING &quot;.&quot;, sourceDomain.string().utf8().data(), targetDomain.string().utf8().data());

Did you mean to add logging even if the if-statement is false?

&gt; LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database.html:33
&gt; +            finishJSTest();

setEnableFeature(false, finishJSTest)?

&gt; LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database.html:49
&gt; +            finishJSTest();

Ditto.

&gt; LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to.html:49
&gt; +            finishJSTest();

Ditto

&gt; LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to.html:74
&gt; +            finishJSTest();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635867</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-30 17:13:31 -0700</bug_when>
    <thetext>(In reply to katherine_cheney from comment #4)
&gt; Comment on attachment 394957 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394957&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1653
&gt; &gt; +        return;
&gt; 
&gt; Probably need to call the completionHandler here in case of a database I/O
&gt; error.

Good catch! Will fix.

&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1718
&gt; &gt;          ASSERT_NOT_REACHED();
&gt; 
&gt; Nice catch!

Yeah, I was working my way thorough existing functionality to design mine and came across this copy pasta.

&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:2068
&gt; &gt; +    result = ensureResourceStatisticsForRegistrableDomain(redirectDomain);
&gt; 
&gt; This is not necessary, it is done already in
&gt; ResourceLoadStatisticsDatabaseStore::ensureAndMakeDomainList.

I kind of suspected that since we hadn&apos;t seen issues in testing. I&apos;ll just remove the comment then.

&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:2280
&gt; &gt; +
&gt; 
&gt; Nice! :)

Yes, I find this part especially nice.

&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:455
&gt; &gt; +                RELEASE_LOG_INFO_IF(debugLoggingEnabled(), ITPDebug, &quot;Did set %&quot; PUBLIC_LOG_STRING &quot; as making a top frame redirect to %&quot; PUBLIC_LOG_STRING &quot;.&quot;, sourceDomain.string().utf8().data(), targetDomain.string().utf8().data());
&gt; 
&gt; Did you mean to add logging even if the if-statement is false?

Yes, since the two if statements are only false if the entry already exists and I wanted the log to show the event for any developer looking.

&gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database.html:33
&gt; &gt; +            finishJSTest();
&gt; 
&gt; setEnableFeature(false, finishJSTest)?

Good catch!

&gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database.html:49
&gt; &gt; +            finishJSTest();
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to.html:49
&gt; &gt; +            finishJSTest();
&gt; 
&gt; Ditto
&gt; 
&gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to.html:74
&gt; &gt; +            finishJSTest();
&gt; 
&gt; Ditto.

Thanks for the review! I&apos;ll fix all the relevant things. (And thanks for the help on the DB query stuff.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635875</commentid>
    <comment_count>6</comment_count>
      <attachid>394993</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-30 17:36:41 -0700</bug_when>
    <thetext>Created attachment 394993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635892</commentid>
    <comment_count>7</comment_count>
      <attachid>394993</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-03-30 18:11:08 -0700</bug_when>
    <thetext>Comment on attachment 394993
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1740
&gt; +        RELEASE_LOG_ERROR_IF_ALLOWED(m_sessionID, &quot;%p - ResourceLoadStatisticsDatabaseStore::clearUserInteraction failed to bind, error message: %{private}s&quot;, this, m_database.lastErrorMsg());

Oops! :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635903</commentid>
    <comment_count>8</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-30 18:41:53 -0700</bug_when>
    <thetext>Thanks, Brent! I&apos;ll put it on the queue given that the ios-wk2 bot was happy with the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635904</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-30 18:42:57 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635906</commentid>
    <comment_count>10</comment_count>
      <attachid>395001</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-30 18:47:49 -0700</bug_when>
    <thetext>Created attachment 395001
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635919</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-30 19:45:44 -0700</bug_when>
    <thetext>Committed r259275: &lt;https://trac.webkit.org/changeset/259275&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395001.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394957</attachid>
            <date>2020-03-30 13:46:44 -0700</date>
            <delta_ts>2020-03-30 17:36:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209761-20200330134643.patch</filename>
            <type>text/plain</type>
            <size>77234</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFkMWQ1YTZjODhkMmRk
Njk1NGJmNjc0NTc5NjBjYmY5ZjY1ODVkNC4uNjRkY2VhYTM4NDk3NzgyOTE5NGQxN2UxYjA4NGU2
ODE4ZDRlNGQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTAzLTMwICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGVyaW1lbnRhbDog
RW5mb3JjZSBTYW1lU2l0ZT1zdHJpY3QgZm9yIGRvbWFpbnMgY2xhc3NpZmllZCBhcyBib3VuY2Ug
dHJhY2tlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwOTc2MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTkzOTQ5NDM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBleHBlcmltZW50YWwgZmVh
dHVyZSBpcyBwYXJ0IG9mIEludGVsbGlnZW50IFRyYWNraW5nIFByZXZlbnRpb24gYW5kIG9ubHkg
ZW5hYmxlZCBpZgorICAgICAgICBJVFAgKFJlc291cmNlIExvYWQgU3RhdGlzdGljcykgYXJlLiBB
IG5ldyBlbnVtIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkCisgICAg
ICAgIGNvbnRyb2xzIHRoZSBuZXcgYmVoYXZpb3Igd2l0aCBkZWZhdWx0IHNldHRpbmcgV2ViQ29y
ZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vLgorCisgICAgICAgIFRoZSBm
ZWF0dXJlcyBrZWVwcyBhIHNlcGFyYXRlIGNvdW50IG9mIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
VG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQKKyAgICAgICAgd2hpY2ggYnVpbGRzIHVw
IHRvIGEgdGhyZXNob2xkLiBPbmNlIGEgZG9tYWluIGdvZXMgYWJvdmUgdGhlIHRocmVzaG9sZCwg
aXRzIGNvb2tpZXMgYXJlCisgICAgICAgIHJld3JpdHRlbiBhcyBTYW1lU2l0ZT1zdHJpY3QgYW5k
IHRoZSB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50CisgICAgICAgIGNvdW50ZXIgZm9yIHRoYXQgZG9tYWluIGlzIHJlc2V0LCBlZmZlY3RpdmVs
eSBnaXZpbmcgdGhlIGRvbWFpbiBhIG5ldyBjaGFuY2UgdG8gY2hhbmdlIGl0cworICAgICAgICBi
ZWhhdmlvci4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0czogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNp
dGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9l
bmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0
cy10by5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oOgor
ICAgICAgICAgICAgTmV3IGZpZWxkIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVT
aXRlU3RyaWN0RW5mb3JjZW1lbnQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAg
ICAgICBOZXcgZW51bSBTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZC4KKwogMjAyMC0w
My0zMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBJbmRleGVk
REI6IGRlc3Ryb3kgVW5pcXVlSURCRGF0YWJhc2Ugd2hlbiBpdCdzIG5vdCB1c2VkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDhhMTBmY2U0YmQ4NzBkOGI5NTgwMWI4YWM4MzVjNTg0ZGZiNjUyZmYuLjZjM2Q4ZmJmMjU0
MDMwNWIwNjI5ZmU2YjRhMWJkNDI5YTdiNmNiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODUgQEAK
KzIwMjAtMDMtMzAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgRXhwZXJpbWVudGFsOiBFbmZvcmNlIFNhbWVTaXRlPXN0cmljdCBmb3IgZG9tYWlucyBjbGFz
c2lmaWVkIGFzIGJvdW5jZSB0cmFja2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTM5NDk0
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlzIHBhcnQgb2YgSW50ZWxsaWdlbnQgVHJhY2tpbmcgUHJl
dmVudGlvbiBhbmQgb25seSBlbmFibGVkIGlmCisgICAgICAgIElUUCAoUmVzb3VyY2UgTG9hZCBT
dGF0aXN0aWNzKSBhcmUuIEEgbmV3IGVudW0gV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEVuYWJsZWQKKyAgICAgICAgY29udHJvbHMgdGhlIG5ldyBiZWhhdmlvciB3aXRoIGRlZmF1
bHQgc2V0dGluZyBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6Tm8u
CisKKyAgICAgICAgVGhlIGZlYXR1cmVzIGtlZXBzIGEgc2VwYXJhdGUgY291bnQgb2YgdG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudAorICAgICAg
ICB3aGljaCBidWlsZHMgdXAgdG8gYSB0aHJlc2hvbGQuIE9uY2UgYSBkb21haW4gZ29lcyBhYm92
ZSB0aGUgdGhyZXNob2xkLCBpdHMgY29va2llcyBhcmUKKyAgICAgICAgcmV3cml0dGVuIGFzIFNh
bWVTaXRlPXN0cmljdCBhbmQgdGhlIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVT
aXRlU3RyaWN0RW5mb3JjZW1lbnQKKyAgICAgICAgY291bnRlciBmb3IgdGhhdCBkb21haW4gaXMg
cmVzZXQsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZG9tYWluIGEgbmV3IGNoYW5jZSB0byBjaGFu
Z2UgaXRzCisgICAgICAgIGJlaGF2aW9yLgorCisgICAgICAgIFRlc3QgaW5mcmFzdHJ1Y3R1cmUg
aXMgYWRkZWQgdG8gYWxsb3cgZm9yIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
Y3JlYXRlVW5pcXVlSW5kaWNlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEpOgorICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
cyk6CisgICAgICAgIChXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpzZXRUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmU6OnNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcik6CisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVnaXN0cmFibGVEb21haW5z
VG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRT
YW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aXNTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxl
ZCBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnNldFNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0
ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvcjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFG
b3I6OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZEVuYmxl
U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICAgICBBZGRlZCBTZXRTaG91bGRFbmJsZVNh
bWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nLgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246
Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmZvcndh
cmRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU2Vzc2lvbjo6ZGVsZXRlQW5kUmVzdHJpY3RXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9t
YWlucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRTaG91bGRFbmJsZVNh
bWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAg
ICAgICAgICBJUEMgaW5zdHJ1Y3Rpb25zIHRvIGZpbmQgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudEVuYWJsZWQgaW4KKyAgICAgICAgICAgIFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmguIAorICAgICAgICAqIFNoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycy5oOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlh
bWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmg6CisgICAgICAgIChB
UEk6Ok5hdmlnYXRpb246OnNldElzTG9hZGVkV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAg
ICAoQVBJOjpOYXZpZ2F0aW9uOjppc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkIGNvbnN0KToK
KyAgICAgICAgICAgIEtlZXBzIHRyYWNrIG9mIGhvdyBhIG5hdmlnYXRpb24gb2NjdXJzIHRvIG1h
a2Ugc3VyZSB0aGF0CisgICAgICAgICAgICBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlv
bigpIGNhbiBjYXB0dXJlIG5hdmlnYXRpb25zIGluaXRpYXRlZCBieSB0aGUKKyAgICAgICAgICAg
IHVzZXIgdGhyb3VnaCB0aGUgaG9zdGluZyBhcHBsaWNhdGlvbi4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURh
dGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50Rm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQp
OgorICAgICAgICAgICAgU2VlIGNvbW1lbnQgYWJvdmUgZm9yIEFQSTo6TmF2aWdhdGlvbi4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgICAgIFNlZSBjb21tZW50IGFib3ZlIGZvciBBUEk6Ok5hdmlnYXRpb24u
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NTaG91bGRFbmJsZVNh
bWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAyMDIwLTAzLTMwICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IHNob3VsZCB0YWtlIGEgZm9y
ZWdyb3VuZCBhc3NlcnRpb24gZm9yIG9mZnNjcmVlbiBsb2FkcyB3aGVuIHRoZSBhcHAgaXMgZm9y
ZWdyb3VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3MuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LmgKaW5kZXggNTk3ZTVjMTQ5YTExMjI0YjlhNDBiOGU1NzcyNjdmZGI5OGExYTIwMS4uZDU4N2E1
MTQxZjM4ZWY4YmM3MDhlZTc3ZTc4MWNmMGY1YmQwMjY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCkBAIC03OSw2ICs3OSw3IEBAIHN0cnVj
dCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsKIAogICAgIC8vIFRvcCBmcmFtZSBzdGF0cwogICAg
IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG87Cisg
ICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4gdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1Np
bmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudDsKICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9t
YWluPiB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb207CiAgICAgSGFzaFNldDxSZWdpc3RyYWJs
ZURvbWFpbj4gdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tOwogICAgIGJvb2wgZ290TGlua0Rl
Y29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2UgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCmluZGV4IDI1YThlYWJkNDdhNWM3MzIzZjY1OGYxNmMzNGRjYWExZGNiZDAzMjEu
LmE4Njc2ZDk3YzNjYWI5NzNjMTMyMzVkZjg5NmMyZGQ3YWRhZWI1YWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLnlhbWwKQEAgLTkxMCw2ICs5MTAsOSBAQCBpc0ZpcnN0UGFydHlXZWJzaXRlRGF0
YVJlbW92YWxMaXZlT25UZXN0aW5nRW5hYmxlZDoKIGlzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbFJlcHJvVGVzdGluZ0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKK2lzU2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKIGlzTG9nZ2VkSW5B
UElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCA4ODVmZjg3
ZTc2ZTg4NDY4YWE3ODViMzRhYThmMjUxMDIwOTZlZDk2Li4xMzkxZGVkNGQ4OGVkYjI3NjAyZjY5
YzA2ZDJmYTEzODBkYjgyN2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTc4LDYgKzc4LDcgQEAgZW51
bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgOiBib29sOwogZW51bSBjbGFzcyBJbmNsdWRlSHR0cE9ubHlDb29r
aWVzIDogYm9vbDsKIGVudW0gY2xhc3MgVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA6IHVp
bnQ4X3QgeyBBbGwsIEFsbE9uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0aW9uLCBPbmx5QWNjb3Jk
aW5nVG9QZXJEb21haW5Qb2xpY3kgfTsKK2VudW0gY2xhc3MgU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEVuYWJsZWQgOiBib29sIHsgWWVzLCBObyB9OwogZW51bSBjbGFzcyBGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZSA6IHVpbnQ4X3QgeyBBbGxCdXRDb29raWVzLCBOb25lLCBBbGxC
dXRDb29raWVzTGl2ZU9uVGVzdGluZ1RpbWVvdXQsIEFsbEJ1dENvb2tpZXNSZXByb1Rlc3RpbmdU
aW1lb3V0IH07CiBlbnVtIGNsYXNzIFNob3VsZEFza0lUUCA6IGJvb2wgeyBObywgWWVzIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
Y3BwCmluZGV4IGRjNmZmZjJhMTk4MjI5YmNhMjM2M2Q5NjM4ZGE5MTkwYmNmODI5MWQuLjQzMDNk
ZjdmMmI0OThmY2E2MzZkODlmMGU1M2EyODAzZjBiNWUzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtODAsNiArODAs
NyBAQCBjb25zdGV4cHIgYXV0byBpbnNlcnRPYnNlcnZlZERvbWFpblF1ZXJ5ID0gIklOU0VSVCBJ
TlRPIE9ic2VydmVkRG9tYWlucyAocmVnaXN0cgogY29uc3RleHByIGF1dG8gaW5zZXJ0VG9wTGV2
ZWxEb21haW5RdWVyeSA9ICJJTlNFUlQgSU5UTyBUb3BMZXZlbERvbWFpbnMgVkFMVUVTICg/KSJf
czsKIGNvbnN0ZXhwciBhdXRvIHN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5
ID0gIklOU0VSVCBPUiBJR05PUkUgSU5UTyBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFp
bnMgKGRvbWFpbklELCB0b3BMZXZlbERvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBP
YnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7CiBjb25zdGV4
cHIgYXV0byB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnkgPSAiSU5TRVJUIE9SIElHTk9S
RSBpbnRvIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8gKHNvdXJjZURvbWFpbklELCB0b0RvbWFp
bklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgd2hlcmUgcmVnaXN0
cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0byB0b3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50UXVlcnkgPSAiSU5TRVJUIE9SIElH
Tk9SRSBpbnRvIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnQgKHNvdXJjZURvbWFpbklELCB0b0RvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQg
RlJPTSBPYnNlcnZlZERvbWFpbnMgd2hlcmUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7CiBj
b25zdGV4cHIgYXV0byB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSA9ICJJTlNFUlQg
T1IgSUdOT1JFIElOVE8gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tICh0YXJnZXREb21haW5J
RCwgZnJvbURvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMg
V0hFUkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7CiBjb25zdGV4cHIgYXV0byB0b3BGcmFt
ZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzUXVlcnkgPSAiSU5TRVJUIE9SIElHTk9SRSBpbnRvIFRv
cEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHMgKHRvcEZyYW1lRG9tYWluSUQsIHN1YnJlc291
cmNlRG9tYWluSUQpIFNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyB3aGVy
ZSByZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKIGNvbnN0ZXhwciBhdXRvIHN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgSU5UTyBTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gKHN1YnJlc291cmNlRG9tYWluSUQsIGZyb21Eb21haW5J
RCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJh
YmxlRG9tYWluIGluICggIl9zOwpAQCAtMTM3LDYgKzEzOCw3IEBAIGNvbnN0IGNoYXIqIHRhYmxl
c1tdID0gewogICAgICJUb3BMZXZlbERvbWFpbnMiLAogICAgICJTdG9yYWdlQWNjZXNzVW5kZXJU
b3BGcmFtZURvbWFpbnMiLAogICAgICJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIiwKKyAgICAi
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudCIs
CiAgICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSIsCiAgICAgIlRvcEZyYW1lTGlua0Rl
Y29yYXRpb25zRnJvbSIsCiAgICAgIlRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHMiLApA
QCAtMTgyLDcgKzE4NCwxMiBAQCBjb25zdGV4cHIgYXV0byBjcmVhdGVUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c1RvID0gIkNSRUFURSBUQUJMRSBUb3BGcmFtZVVuaXF1ZVJlZAogICAgICJzb3VyY2VE
b21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCB0b0RvbWFpbklEIElOVEVHRVIgTk9UIE5VTEwsICIK
ICAgICAiRk9SRUlHTiBLRVkoc291cmNlRG9tYWluSUQpIFJFRkVSRU5DRVMgVG9wTGV2ZWxEb21h
aW5zKHRvcExldmVsRG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFLCAiCiAgICAgIkZPUkVJR04g
S0VZKHRvRG9tYWluSUQpIFJFRkVSRU5DRVMgVG9wTGV2ZWxEb21haW5zKHRvcExldmVsRG9tYWlu
SUQpIE9OIERFTEVURSBDQVNDQURFKTsiX3M7Ci0gICAgCisKK2NvbnN0ZXhwciBhdXRvIGNyZWF0
ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQg
PSAiQ1JFQVRFIFRBQkxFIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnQgKCIKKyAgICAic291cmNlRG9tYWluSUQgSU5URUdFUiBOT1QgTlVMTCwg
dG9Eb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCAiCisgICAgIkZPUkVJR04gS0VZKHNvdXJjZURv
bWFpbklEKSBSRUZFUkVOQ0VTIFRvcExldmVsRG9tYWlucyh0b3BMZXZlbERvbWFpbklEKSBPTiBE
RUxFVEUgQ0FTQ0FERSwgIgorICAgICJGT1JFSUdOIEtFWSh0b0RvbWFpbklEKSBSRUZFUkVOQ0VT
IFRvcExldmVsRG9tYWlucyh0b3BMZXZlbERvbWFpbklEKSBPTiBERUxFVEUgQ0FTQ0FERSk7Il9z
OworCiBjb25zdGV4cHIgYXV0byBjcmVhdGVUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gPSAi
Q1JFQVRFIFRBQkxFIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSAoIgogICAgICJ0YXJnZXRE
b21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBmcm9tRG9tYWluSUQgSU5URUdFUiBOT1QgTlVMTCwg
IgogICAgICJGT1JFSUdOIEtFWSh0YXJnZXREb21haW5JRCkgUkVGRVJFTkNFUyBUb3BMZXZlbERv
bWFpbnModG9wTGV2ZWxEb21haW5JRCkgT04gREVMRVRFIENBU0NBREUsICIKQEAgLTIyMSw2ICsy
MjgsNyBAQCBjb25zdGV4cHIgYXV0byBjcmVhdGVTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zy
b20gPSAiQ1JFQVRFIFRBQkxFIFN1YnJlc291cmNlVQogLy8gQ1JFQVRFIFVOSVFVRSBJTkRFWCBR
dWVyaWVzCiBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFN0b3JhZ2VBY2Nlc3NVbmRl
clRvcEZyYW1lRG9tYWlucyA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElTVFMgU3Rv
cmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zX2RvbWFpbklEX3RvcExldmVsRG9tYWluSUQg
b24gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zICggZG9tYWluSUQsIHRvcExldmVs
RG9tYWluSUQgKTsiX3M7CiBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzVG8gPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9fc291cmNlRG9tYWluSURfdG9Eb21haW5JRCBvbiBUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c1RvICggc291cmNlRG9tYWluSUQsIHRvRG9tYWluSUQgKTsiX3M7
Citjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
VG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQgPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJ
RiBOT1QgRVhJU1RTIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRfc291cmNlRG9tYWluSURfdG9Eb21haW5JRCBvbiBUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50ICggc291cmNlRG9tYWluSUQs
IHRvRG9tYWluSUQgKTsiX3M7CiBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbSA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElT
VFMgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tX3RhcmdldERvbWFpbklEX2Zyb21Eb21haW5J
RCBvbiBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gKCB0YXJnZXREb21haW5JRCwgZnJvbURv
bWFpbklEICk7Il9zOwogY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhUb3BGcmFtZUxp
bmtEZWNvcmF0aW9uc0Zyb20gPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFRv
cEZyYW1lTGlua0RlY29yYXRpb25zRnJvbV90b0RvbWFpbklEX2Zyb21Eb21haW5JRCBvbiBUb3BG
cmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20gKCB0b0RvbWFpbklELCBmcm9tRG9tYWluSUQgKTsiX3M7
CiBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0
eVNjcmlwdHMgPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFRvcEZyYW1lTG9h
ZGVkVGhpcmRQYXJ0eVNjcmlwdHNfdG9wRnJhbWVEb21haW5JRF9zdWJyZXNvdXJjZURvbWFpbklE
IG9uIFRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHMgKCB0b3BGcmFtZURvbWFpbklELCBz
dWJyZXNvdXJjZURvbWFpbklEICk7Il9zOwpAQCAtNDExLDYgKzQxOSw3IEBAIGJvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVuaXF1ZUluZGljZXMoKQogewog
ICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFN0b3Jh
Z2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucykKICAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhl
Y3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKQor
ICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQpCiAg
ICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4VG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tKQogICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRl
Q29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSkKICAg
ICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhUb3BG
cmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzKQpAQCAtNDQ4LDYgKzQ1NywxMSBAQCBib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEoKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21t
YW5kKGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnQpKSB7CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNyZWF0ZSBUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50IHRhYmxlIGlu
IGRhdGFiYXNlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UubGFzdEVycm9yKCksIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYg
KCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
RnJvbSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIFRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzRnJvbSB0YWJsZSBpbiBkYXRhYmFzZSAoJWkpIC0gJXMiLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtNjkxLDYgKzcwNSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyCiAKICAg
ICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1l
RG9tYWluc1F1ZXJ5LCBsb2FkU3RhdGlzdGljcy5zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURv
bWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSk7CiAgICAgaW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnksIGxvYWRTdGF0aXN0
aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUo
KSk7CisgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50UXVlcnksIGxvYWRTdGF0aXN0aWNz
LnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQs
IHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSk7CiAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSwgbG9hZFN0YXRpc3RpY3Mu
dG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCkp
OwogICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3ViZnJhbWVVbmRlclRvcEZyYW1l
RG9tYWluc1F1ZXJ5LCBsb2FkU3RhdGlzdGljcy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5z
LCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCkpOwogICAgIGluc2VydERvbWFpblJlbGF0aW9u
c2hpcExpc3Qoc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5LCBsb2FkU3RhdGlz
dGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklE
LnZhbHVlKCkpOwpAQCAtMTU5MCw2ICsxNjA1LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8K
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RzVG9RdWVyeSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyB0YXJnZXREb21haW4gfSks
ICpyZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQpOworICAgICAgICAgICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudFF1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7
IHRhcmdldERvbWFpbiB9KSwgKnJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCk7CisgICAg
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElU
UERlYnVnLCAiRGlkIHNldCAlIiBQVUJMSUNfTE9HX1NUUklORyAiIGFzIG1ha2luZyBhIHRvcCBm
cmFtZSByZWRpcmVjdCB0byAlIiBQVUJMSUNfTE9HX1NUUklORyAiLiIsIHNvdXJjZURvbWFpbi5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0YXJnZXREb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CiAgICAgICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyBz
b3VyY2VEb21haW4gfSksICp0YXJnZXRSZXN1bHQuc2Vjb25kKTsKICAgICAgICAgICAgICAgICBz
dGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQpAQCAtMTYyNiw2ICsx
NjQzLDI3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0Ny
b3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oY29uCiAgICAgICAgIHNldElzU2NoZWR1bGVk
Rm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwodG9Eb21haW4sIHRydWUpOwogfQogCit2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byB0YXJn
ZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihk
b21haW4pOworICAgIGlmICghdGFyZ2V0UmVzdWx0LnNlY29uZCkgeworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VT
YW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50IHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQg
aW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFNR
TGl0ZVN0YXRlbWVudCByZW1vdmVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGUobV9kYXRhYmFzZSwg
IkRFTEVURSBGUk9NIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnQgV0hFUkUgc291cmNlRG9tYWluSUQgPSA/Iik7CisgICAgaWYgKHJlbW92ZVJl
ZGlyZWN0c1RvU2luY2VTYW1lU2l0ZS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8
IHJlbW92ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZS5iaW5kSW50KDEsICp0YXJnZXRSZXN1bHQu
c2Vjb25kKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgcmVtb3ZlUmVkaXJlY3RzVG9TaW5jZVNh
bWVTaXRlLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Y2xlYXJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9
cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisgICAgCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwog
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0
aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIGJvb2wgaGFkVXNlckludGVyYWN0
aW9uLCBXYWxsVGltZSBtb3N0UmVjZW50SW50ZXJhY3Rpb24pCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CkBAIC0xNjc2LDcgKzE3MTQsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3Ry
YWJsZQogICAgIGlmIChyZW1vdmVTdG9yYWdlQWNjZXNzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgcmVtb3ZlU3RvcmFnZUFjY2Vzcy5iaW5kSW50KDEsICp0YXJnZXRSZXN1bHQu
c2Vjb25kKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgcmVtb3ZlU3RvcmFnZUFjY2Vzcy5zdGVw
KCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmxvZ1VzZXJJbnRlcmFjdGlvbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwcml2
YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5k
LCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKQEAgLTIwMjIs
OCArMjA2MCwxNiBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpz
ZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgVG9wRgogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvIHdhcyBub3QgY29t
cGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICAvLyBGb3IgY29uc2lzdGVuY3ksIG1ha2Ugc3VyZSB3ZSBhbHNvIGhh
dmUgYSBzdGF0aXN0aWNzIGVudHJ5IGZvciB0aGUgcmVkaXJlY3QgZG9tYWluLgorCiAgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnks
IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgcmVkaXJlY3REb21haW4gfSksICpyZXN1bHQu
c2Vjb25kKTsKKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRRdWVyeSwgSGFzaFNldDxS
ZWdpc3RyYWJsZURvbWFpbj4oeyByZWRpcmVjdERvbWFpbiB9KSwgKnJlc3VsdC5zZWNvbmQpOwor
CisgICAgLy8gRm9yIGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2UgYWxzbyBoYXZlIGEgc3RhdGlz
dGljcyBlbnRyeSBmb3IgdGhlIHJlZGlyZWN0IGRvbWFpbi4KKyAgICByZXN1bHQgPSBlbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVjdERvbWFpbik7Cisg
ICAgaWYgKCFyZXN1bHQuc2Vjb25kKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8gd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRv
IGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQog
fQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IGNvbnN0IFJlZGlyZWN0RG9tYWluJiByZWRpcmVjdERvbWFpbikKQEAgLTIyMzAsNyArMjI3Niw4
IEBAIFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6RG9tYWluRGF0
YT4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhCiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAgICAgCiAgICAgVmVjdG9yPERvbWFpbkRhdGE+IHJlc3VsdHM7Ci0gICAgU1FMaXRlU3Rh
dGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VMRUNUIGRvbWFpbklELCByZWdpc3RyYWJs
ZURvbWFpbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIGhhZFVzZXJJbnRlcmFjdGlv
biwgZ3JhbmRmYXRoZXJlZCwgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCBG
Uk9NIE9ic2VydmVkRG9tYWlucyJfcyk7CisgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCht
X2RhdGFiYXNlLCAiU0VMRUNUIGRvbWFpbklELCByZWdpc3RyYWJsZURvbWFpbiwgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWUsIGhhZFVzZXJJbnRlcmFjdGlvbiwgZ3JhbmRmYXRoZXJlZCwg
aXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgY291bnRPZlRvcEZyYW1lUmVk
aXJlY3RzIEZST00gT2JzZXJ2ZWREb21haW5zIExFRlQgSk9JTiAoU0VMRUNUIHNvdXJjZURvbWFp
bklELCBDT1VOVCgqKSBhcyBjb3VudE9mVG9wRnJhbWVSZWRpcmVjdHMgZnJvbSBUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50IEdST1VQIEJZIHNv
dXJjZURvbWFpbklEKSBhcyB6IE9OIHouc291cmNlRG9tYWluSUQgPSBkb21haW5JRCJfcyk7CisK
ICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAgICAgIHJldHVy
biByZXN1bHRzOwogICAgIApAQCAtMjI0MSw2ICsyMjg4LDcgQEAgVmVjdG9yPFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpEb21haW5EYXRhPiBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGEKICAgICAgICAgICAgICwgc3RhdGVtZW50LmdldENvbHVtbkludCgzKSA/IHRydWUgOiBm
YWxzZQogICAgICAgICAgICAgLCBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDQpID8gdHJ1ZSA6IGZh
bHNlCiAgICAgICAgICAgICAsIHN0YXRlbWVudC5nZXRDb2x1bW5JbnQoNSkgPyB0cnVlIDogZmFs
c2UKKyAgICAgICAgICAgICwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXRlbWVudC5nZXRDb2x1
bW5JbnQoNikpCiAgICAgICAgIH0pOwogICAgIH0KICAgICAKQEAgLTIzNTMsNiArMjQwMSwxOSBA
QCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVB
bGxCdXRDb29raWVzRm9yKGNvbnN0IERvbQogICAgIHJldHVybiBpc1JlbW92YWxFbmFibGVkICYm
ICFpc1Jlc291cmNlR3JhbmRmYXRoZXJlZCAmJiAhaGFzSGFkVW5leHBpcmVkUmVjZW50VXNlcklu
dGVyYWN0aW9uKHJlc291cmNlU3RhdGlzdGljLCB3aW5kb3cpOwogfQogCitib29sIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRFbmZvcmNlU2FtZVNpdGVTdHJpY3RG
b3IoRG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0aWMsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFu
ZGZhdGhlcmluZykKK3sKKyAgICBpZiAoIWlzU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJs
ZWQoKSB8fCAoc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyAmJiByZXNvdXJjZVN0YXRpc3Rp
Yy5ncmFuZGZhdGhlcmVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKHJlc291
cmNlU3RhdGlzdGljLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnQgPiBwYXJhbWV0ZXJzKCkubWluaW11bVRvcEZyYW1lUmVkaXJlY3RzRm9yU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudCkgeworICAgICAgICBjbGVhclRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQocmVzb3VyY2VTdGF0aXN0aWMu
cmVnaXN0cmFibGVEb21haW4sIFtdIHsgfSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKwogUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJl
c3RyaWN0V2Vic2l0ZURhdGFGb3IgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yKCkKIHsK
ICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTIzNzYsOSArMjQzNywxNSBAQCBS
ZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvciBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhcwogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vic2l0
ZURhdGFGb3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkgewogICAg
ICAgICAgICAgdG9EZWxldGVPclJlc3RyaWN0Rm9yLmRvbWFpbnNUb0RlbGV0ZUFsbENvb2tpZXNG
b3IuYXBwZW5kKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7CiAgICAgICAgICAgICB0b0Rl
bGV0ZU9yUmVzdHJpY3RGb3IuZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFG
b3IuYXBwZW5kKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9y
R3JhbmRmYXRoZXJpbmcpKSB7Ci0gICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RGb3IuZG9t
YWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0YXRpc3RpYy5y
ZWdpc3RyYWJsZURvbWFpbik7Ci0gICAgICAgICAgICBzZXRJc1NjaGVkdWxlZEZvckFsbEJ1dENv
b2tpZURhdGFSZW1vdmFsKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgZmFsc2UpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHNob3VsZFJlbW92ZUFsbEJ1dENvb2tpZXNG
b3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkgeworICAgICAgICAg
ICAgICAgIHRvRGVsZXRlT3JSZXN0cmljdEZvci5kb21haW5zVG9EZWxldGVBbGxOb25Db29raWVX
ZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAg
ICAgICAgICAgICBzZXRJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsKHN0YXRp
c3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKHNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcihzdGF0aXN0aWMsIHNob3VsZENo
ZWNrRm9yR3JhbmRmYXRoZXJpbmcpKSB7CisgICAgICAgICAgICAgICAgdG9EZWxldGVPclJlc3Ry
aWN0Rm9yLmRvbWFpbnNUb0VuZm9yY2VTYW1lU2l0ZVN0cmljdEZvci5hcHBlbmQoc3RhdGlzdGlj
LnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPX0lG
KGRlYnVnTG9nZ2luZ0VuYWJsZWQoKSwgSVRQRGVidWcsICJTY2hlZHVsZWQgJSIgUFVCTElDX0xP
R19TVFJJTkcgIiB0byBoYXZlIGl0cyBjb29raWVzIHNldCB0byBTYW1lU2l0ZT1zdHJpY3QuIiwg
c3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChzaG91bGRDbGVhckdyYW5kZmF0aGVy
aW5nICYmIHN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKQogICAgICAgICAgICAgZG9tYWluSURzVG9D
bGVhckdyYW5kZmF0aGVyaW5nLmFwcGVuZChzdGF0aXN0aWMuZG9tYWluSUQpOwpAQCAtMjY2OCw2
ICsyNzM1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVz
b3VyY2VUb1N0cmluZyhTdHJpbmdCdWlsZGVyJiBidWlsZGUKIAogICAgIC8vIFRvcCBmcmFtZSBz
dGF0cwogICAgIGFwcGVuZFN1YlN0YXRpc3RpY0xpc3QoYnVpbGRlciwgIlRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzVG8iLCBkb21haW4pOworICAgIGFwcGVuZFN1YlN0YXRpc3RpY0xpc3QoYnVpbGRl
ciwgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnQiLCBkb21haW4pOwogICAgIGFwcGVuZFN1YlN0YXRpc3RpY0xpc3QoYnVpbGRlciwgIlRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbSIsIGRvbWFpbik7CiAgICAgYXBwZW5kU3ViU3RhdGlzdGlj
TGlzdChidWlsZGVyLCAiVG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tIiwgZG9tYWluKTsKICAg
ICBhcHBlbmRTdWJTdGF0aXN0aWNMaXN0KGJ1aWxkZXIsICJUb3BGcmFtZUxvYWRlZFRoaXJkUGFy
dHlTY3JpcHRzIiwgZG9tYWluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggN2ZjMDNmYWZmZDUyOTNjYWZiZDEwMmUzNDE0YzY3
YzMwMzYwYWNjNC4uNjIzMGEyYjZhMjAyZDI3ZGRlNzZjODc1ZWRmOWE3NmUyNDUzODhkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgK
QEAgLTEyNSw5ICsxMjUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNz
KFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24o
Y29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5h
dmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUsIFNl
Y29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQb3RlbnRpYWxs
eUluaXRpYXRlZEJ5VXNlcikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24o
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgbG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihjb25zdCBO
YXZpZ2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mKSBvdmVycmlkZTsK
KyAgICB2b2lkIGNsZWFyVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudChjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKKyAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJh
Y3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgb3Zl
cnJpZGU7CiAKQEAgLTE3OCw2ICsxNzksNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIGhhZFVz
ZXJJbnRlcmFjdGlvbjsKICAgICAgICAgYm9vbCBncmFuZGZhdGhlcmVkOwogICAgICAgICBib29s
IGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw7CisgICAgICAgIHVuc2lnbmVk
IHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQ7
CiAgICAgfTsKICAgICBWZWN0b3I8RG9tYWluRGF0YT4gZG9tYWlucygpIGNvbnN0OwogICAgIGJv
b2wgaGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKGNvbnN0IERvbWFpbkRhdGEm
LCBPcGVyYXRpbmdEYXRlc1dpbmRvdyk7CkBAIC0yMTUsNiArMjE3LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnBhaXI8QWRkZWRSZWNvcmQsIE9wdGlvbmFsPHVuc2lnbmVkPj4gZW5zdXJlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4m
KSBXQVJOX1VOVVNFRF9SRVRVUk47CiAgICAgYm9vbCBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0
YUZvcihjb25zdCBEb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5n
KTsKICAgICBib29sIHNob3VsZFJlbW92ZUFsbEJ1dENvb2tpZXNGb3IoY29uc3QgRG9tYWluRGF0
YSYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyk7CisgICAgYm9vbCBzaG91bGRF
bmZvcmNlU2FtZVNpdGVTdHJpY3RGb3IoRG9tYWluRGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JH
cmFuZGZhdGhlcmluZyk7CiAgICAgUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0
V2Vic2l0ZURhdGFGb3IgcmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0
ZURhdGFGb3IoKSBvdmVycmlkZTsKICAgICBib29sIGlzRGF0YWJhc2VTdG9yZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmNwcAppbmRleCAxMjVhZWExYTNjMWY4ODdkMGMzYmY2ZmY5NzM1
MzY4OTJjZTNhNTM1Li4zYWE1ZjYxZWE3MjdkOTBjMzExYzNmMjk5MmM0MWY5OGJlM2M2MmU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNw
cApAQCAtNDUwLDYgKzQ1MCw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEb21hCiAgICAgICAgICAg
ICBpZiAoaXNSZWRpcmVjdCB8fCB3YXNOYXZpZ2F0ZWRBZnRlclNob3J0RGVsYXlXaXRob3V0VXNl
ckludGVyYWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgaWYgKHJlZGlyZWN0aW5nRG9tYWluU3Rh
dGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLmFkZCh0YXJnZXREb21haW4pLmlzTmV3
RW50cnkpCiAgICAgICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7
CisgICAgICAgICAgICAgICAgaWYgKHJlZGlyZWN0aW5nRG9tYWluU3RhdGlzdGljcy50b3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50LmFkZCh0YXJn
ZXREb21haW4pLmlzTmV3RW50cnkpCisgICAgICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJl
VXBkYXRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1
Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiRGlkIHNldCAlIiBQVUJMSUNfTE9HX1NUUklO
RyAiIGFzIG1ha2luZyBhIHRvcCBmcmFtZSByZWRpcmVjdCB0byAlIiBQVUJMSUNfTE9HX1NUUklO
RyAiLiIsIHNvdXJjZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0YXJnZXREb21haW4u
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgYXV0byYgdGFyZ2V0U3Rh
dGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRh
cmdldERvbWFpbik7CiAgICAgICAgICAgICAgICAgaWYgKHRhcmdldFN0YXRpc3RpY3MudG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNGcm9tLmFkZChzb3VyY2VEb21haW4pLmlzTmV3RW50cnkpCiAgICAg
ICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CkBAIC02ODgsNiAr
NjkxLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNldFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RUbyhjb25zdCBUb3BGcmEKIAogICAgIGF1dG8mIHN0YXRpc3RpY3Mg
PSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURv
bWFpbik7CiAgICAgc3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLmFkZChyZWRp
cmVjdERvbWFpbik7CisgICAgc3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2lu
Y2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50LmFkZChyZWRpcmVjdERvbWFpbik7CiAgICAgLy8g
Rm9yIGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2UgYWxzbyBoYXZlIGEgc3RhdGlzdGljcyBlbnRy
eSBmb3IgdGhlIHJlZGlyZWN0IGRvbWFpbi4KICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVjdERvbWFpbik7CiB9CkBAIC05MTQsNiArOTE4LDE5
IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpzaG91bGRSZW1vdmVB
bGxCdXRDb29raWVzRm9yKFJlc291cmNlTG9hCiAgICAgcmV0dXJuIGlzUmVtb3ZhbEVuYWJsZWQg
JiYgIWlzUmVzb3VyY2VHcmFuZGZhdGhlcmVkICYmICFoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2Vy
SW50ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0aWMsIHdpbmRvdyk7CiB9CiAKK2Jvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpzaG91bGRFbmZvcmNlU2FtZVNpdGVTdHJpY3RG
b3IoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgcmVzb3VyY2VTdGF0aXN0aWMsIGJvb2wgc2hvdWxk
Q2hlY2tGb3JHcmFuZGZhdGhlcmluZykKK3sKKyAgICBpZiAoIWlzU2FtZVNpdGVTdHJpY3RFbmZv
cmNlbWVudEVuYWJsZWQoKSB8fCAoc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyAmJiByZXNv
dXJjZVN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKHJlc291cmNlU3RhdGlzdGljLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNh
bWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQuc2l6ZSgpID4gcGFyYW1ldGVycygpLm1pbmltdW1Ub3BG
cmFtZVJlZGlyZWN0c0ZvclNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQpIHsKKyAgICAgICAgcmVz
b3VyY2VTdGF0aXN0aWMudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudC5jbGVhcigpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIFJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmlj
dFdlYnNpdGVEYXRhRm9yIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVnaXN0
cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IoKQogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtOTMyLDkgKzk0OSwxNiBAQCBSZWdpc3RyYWJs
ZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvciBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5UwogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3Io
c3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkgewogICAgICAgICAgICAg
dG9EZWxldGVPclJlc3RyaWN0Rm9yLmRvbWFpbnNUb0RlbGV0ZUFsbENvb2tpZXNGb3IuYXBwZW5k
KHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7CiAgICAgICAgICAgICB0b0RlbGV0ZU9yUmVz
dHJpY3RGb3IuZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuYXBwZW5k
KHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7Ci0gICAgICAgIH0gZWxzZSBpZiAoc2hvdWxk
UmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3JhbmRmYXRo
ZXJpbmcpKSB7Ci0gICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RGb3IuZG9tYWluc1RvRGVs
ZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0YXRpc3RpYy5yZWdpc3RyYWJs
ZURvbWFpbik7Ci0gICAgICAgICAgICBzdGF0aXN0aWMuZ290TGlua0RlY29yYXRpb25Gcm9tUHJl
dmFsZW50UmVzb3VyY2UgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlm
IChzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JH
cmFuZGZhdGhlcmluZykpIHsKKyAgICAgICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RGb3Iu
ZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0YXRpc3Rp
Yy5yZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgICAgICAgICAgc3RhdGlzdGljLmdvdExpbmtE
ZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlID0gZmFsc2U7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBpZiAoc2hvdWxkRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yKHN0YXRpc3RpYywg
c2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpIHsKKyAgICAgICAgICAgICAgICB0b0RlbGV0
ZU9yUmVzdHJpY3RGb3IuZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yLmFwcGVuZChz
dGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4pOworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIlNjaGVkdWxlZCAlIiBQ
VUJMSUNfTE9HX1NUUklORyAiIHRvIGhhdmUgaXRzIGNvb2tpZXMgc2V0IHRvIFNhbWVTaXRlPXN0
cmljdC4iLCBzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmIChzaG91bGRDbGVh
ckdyYW5kZmF0aGVyaW5nICYmIHN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IDVjOGE0NmRjYTMz
ZmEyMzNlZDZjMWQ5OGFlNjQ1YjM4ODY5MzQwZDcuLjhkNjc2NjRlMDBkNmIzMWM3NDFmODcyODI0
MWE3Yzg2ZDkzMmQ2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFz
SGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKFJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
LCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRSZW1vdmVBbGxX
ZWJzaXRlRGF0YUZvcihSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVja0Zv
ckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKICAgICBib29sIHNob3VsZFJlbW92ZUFsbEJ1dENvb2tp
ZXNGb3IoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZh
dGhlcmluZykgY29uc3Q7CisgICAgYm9vbCBzaG91bGRFbmZvcmNlU2FtZVNpdGVTdHJpY3RGb3Io
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmlu
Zyk7CiAgICAgdm9pZCBpbmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9yRG9tYWlucyhIYXNo
U2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFByZXZhbGVu
dFJlc291cmNlKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNl
KTsKICAgICB1bnNpZ25lZCByZWN1cnNpdmVseUdldEFsbERvbWFpbnNUaGF0SGF2ZVJlZGlyZWN0
ZWRUb1RoaXNEb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIEhhc2hTZXQ8UmVk
aXJlY3RlZFRvRG9tYWluPiYsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGMzY2RhOWI3
MWQzOGRiZmVjYzViZjQyMzJjZWY4NGEyM2U1ZjA3NTEuLmZhNmZlYTdmM2IwZDYwZGFiNGU3NGYx
MDk2Mzc2NjM1NzA2MjcyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKQEAgLTE2NCw2ICsxNjQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRS
ZXNvdXJjZUZvckRlYnVnTW9kZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIHZvaWQg
c2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlIG1vZGUpIHsgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0gbW9k
ZTsgfTsKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFy
dHlDb29raWVCbG9ja2luZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX3RoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGU7IH07CisgICAgdm9pZCBzZXRTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5h
YmxlZChXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkKSB7
IG1fc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBlbmFibGVkOyB9OworICAgIGJv
b2wgaXNTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPT0gV2ViQ29yZTo6U2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudEVuYWJsZWQ6OlllczsgfTsKICAgICB2b2lkIHNldEZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlKFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlIG1vZGUpIHsgbV9maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IG1vZGU7IH0K
IAogICAgIHZpcnR1YWwgYm9vbCBhcmVBbGxUaGlyZFBhcnR5Q29va2llc0Jsb2NrZWRVbmRlcihj
b25zdCBUb3BGcmFtZURvbWFpbiYpID0gMDsKQEAgLTIyNSw2ICsyMjcsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIFNlY29uZHMgbWluRGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZFRvTm90
QmVBUmVkaXJlY3QgeyA1X3MgfTsKICAgICAgICAgYm9vbCBzaG91bGROb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkIHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBzaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCB7IHRydWUgfTsKKyAgICAgICAg
c2l6ZV90IG1pbmltdW1Ub3BGcmFtZVJlZGlyZWN0c0ZvclNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnQgeyAxMCB9OwogICAgICAgICBib29sIHNob3VsZFN1Ym1pdFRlbGVtZXRyeSB7IHRydWUgfTsK
ICAgICAgICAgYm9vbCBpc1J1bm5pbmdUZXN0IHsgZmFsc2UgfTsKICAgICB9OwpAQCAtMjc2LDYg
KzI3OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RlYnVnTG9nZ2luZ0VuYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9kZWJ1Z01vZGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBXZWJDb3Jl
OjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB9OworICAg
IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIG1fc2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudEVuYWJsZWQgeyBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50
RW5hYmxlZDo6Tm8gfTsKICAgICBib29sIG1fZGF0YVJlY29yZHNCZWluZ1JlbW92ZWQgeyBmYWxz
ZSB9OwogICAgIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QgbV9zaG91bGRJbmNsdWRlTG9jYWxob3N0
IHsgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6WWVzIH07CiAgICAgV2ViQ29yZTo6Rmlyc3RQYXJ0
eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgbV9maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9k
ZSB7IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlOjpBbGxCdXRDb29r
aWVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
CmluZGV4IDIzNmRmNjY0ZTJjOWNlZDhhMTZiMThmYmQ4YmYxMjkzZDA5YjQ5YjYuLjA4ZWRlNmM3
YzNjNDEyY2Y3MzM0MjM0ZWE2NDc5YjkxMGFmMTA0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC01OTksNiArNTk5LDIxIEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmdNb2RlKFRoaXJkUGFydHlDCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpzZXRTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZChTYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkKQoreworICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcG9zdFRhc2soW3RoaXMsIGVuYWJsZWRdKCkgeworICAgICAgICBpZiAoIW1fc3RhdGlz
dGljc1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc3RhdGlzdGljc1N0
b3JlLT5zZXRTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZChlbmFibGVkKTsKKyAgICB9
KTsKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldEZpcnN0UGFy
dHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
IG1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGNjNGU3YWQ3NTkxMjk3OGM2MmY4OWJlODIyNDM0
NDczODE0NDMxOTUuLjM1YjgzMDM3OTA2YmE2NmM0N2VhZTE0NDZmMGJhZTBjNGRhYWIxNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTgwLDgg
KzgwLDkgQEAgc3RydWN0IFJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNp
dGVEYXRhRm9yIHsKICAgICBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFp
bnNUb0RlbGV0ZUFsbENvb2tpZXNGb3I7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluPiBkb21haW5zVG9EZWxldGVBbGxCdXRIdHRwT25seUNvb2tpZXNGb3I7CiAgICAgVmVj
dG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zVG9EZWxldGVBbGxOb25Db29r
aWVXZWJzaXRlRGF0YUZvcjsKLSAgICBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJp
Y3RXZWJzaXRlRGF0YUZvciBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGRvbWFpbnNU
b0RlbGV0ZUFsbENvb2tpZXNGb3IuaXNvbGF0ZWRDb3B5KCksIGRvbWFpbnNUb0RlbGV0ZUFsbEJ1
dEh0dHBPbmx5Q29va2llc0Zvci5pc29sYXRlZENvcHkoKSwgZG9tYWluc1RvRGVsZXRlQWxsTm9u
Q29va2llV2Vic2l0ZURhdGFGb3IuaXNvbGF0ZWRDb3B5KCkgfTsgfQotICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0IHsgcmV0dXJuIGRvbWFpbnNUb0RlbGV0ZUFsbENvb2tpZXNGb3IuaXNFbXB0eSgp
ICYmIGRvbWFpbnNUb0RlbGV0ZUFsbEJ1dEh0dHBPbmx5Q29va2llc0Zvci5pc0VtcHR5KCkgJiYg
ZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuaXNFbXB0eSgpOyB9Cisg
ICAgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zVG9FbmZvcmNlU2Ft
ZVNpdGVTdHJpY3RGb3I7CisgICAgUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0
V2Vic2l0ZURhdGFGb3IgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4geyBkb21haW5zVG9E
ZWxldGVBbGxDb29raWVzRm9yLmlzb2xhdGVkQ29weSgpLCBkb21haW5zVG9EZWxldGVBbGxCdXRI
dHRwT25seUNvb2tpZXNGb3IuaXNvbGF0ZWRDb3B5KCksIGRvbWFpbnNUb0RlbGV0ZUFsbE5vbkNv
b2tpZVdlYnNpdGVEYXRhRm9yLmlzb2xhdGVkQ29weSgpLCBkb21haW5zVG9FbmZvcmNlU2FtZVNp
dGVTdHJpY3RGb3IuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0
IHsgcmV0dXJuIGRvbWFpbnNUb0RlbGV0ZUFsbENvb2tpZXNGb3IuaXNFbXB0eSgpICYmIGRvbWFp
bnNUb0RlbGV0ZUFsbEJ1dEh0dHBPbmx5Q29va2llc0Zvci5pc0VtcHR5KCkgJiYgZG9tYWluc1Rv
RGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuaXNFbXB0eSgpICYmIGRvbWFpbnNUb0Vu
Zm9yY2VTYW1lU2l0ZVN0cmljdEZvci5pc0VtcHR5KCk7IH0KIH07CiAKIGNsYXNzIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6
Ok1haW4+IHsKQEAgLTI3NCw2ICsyNzUsNyBAQCBzdHJ1Y3QgVGhpcmRQYXJ0eURhdGEgewogCiAg
ICAgdm9pZCBoYXNDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmdNb2RlKFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUpOworICAgIHZvaWQg
c2V0U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQoV2ViQ29yZTo6U2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudEVuYWJsZWQpOwogICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGUoV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJv
Y2VzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCmluZGV4IGE4M2E3ZTEwMmI0MzkyNDcwODI5OWRhMWNmODU4MjU2OWRhMzVhY2IuLjJm
MjQ2NmRiOTlhMWUwMTRkMGUwMjg4NDBmOGVhMDI4ZWFjOWJjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0xMjk0LDYgKzEyOTQs
MTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2ll
c0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2UKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwog
fQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6U2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vz
c2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCisgICAgICAgIG5ldHdvcmtT
ZXNzaW9uLT5zZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQoZW5hYmxlZCk7
CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRGaXJzdFBhcnR5V2Vic2l0
ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdv
cmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDQxYTdhZmNjNzNi
Y2QzZjA0MWFmMDk0ODZlZjQ3ZDVlN2Y0OTgyODguLjVkNGU4NDk1ZGViYjhlNTIyZDc3OTdlZGZm
MTMzZTdjNjg0YTIzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKQEAgLTI2NCw2ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0lUUERh
dGFiYXNlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJVFBEYXRhYmFzZUVuYWJsZWQ7IH0K
ICAgICB2b2lkIHNldFNob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhib29sLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0U2hvdWxkQmxvY2tUaGlyZFBh
cnR5Q29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9p
ZCBzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklELCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6Rmlyc3RQ
YXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNzljODc1NjEwNDJhNDFm
ZTg5MzAxNDg3ZDQ1N2Y5MTFhODY3MWE2OC4uZGZkNjI0NDI0OWNjZmIwOGRhY2MwN2JiNmIxNTc2
MzhjOGFlMGE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNDAsNiArMTQwLDcgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEhhc0lzb2xhdGVkU2Vzc2lv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRv
bWFpbikgLT4gKGJvb2wgaGFzSXNvbGF0ZWRTZXNzaW9uKSBBc3luYwogICAgIFNldFNob3VsZERv
d25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhib29sIGVuYWJsZWQpIC0+ICgpIEFzeW5jCiAgICAg
U2V0U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZSBibG9ja2luZ01vZGUpIC0+ICgpIEFzeW5jCisgICAgU2V0U2hvdWxkRW5ibGVTYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVu
dW06Ym9vbCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVk
KSAtPiAoKSBBc3luYwogICAgIFNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpG
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlKSAtPiAoKSBBc3luYwogICAgIFNl
dFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikgLT4gKCkgQXN5bmMKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApp
bmRleCAwZTBjMjYzYTMzN2EyYjgyMmI2MTQyOWE2YTAwZTlmMDJkMTBhMjc3Li4zYTgwYjc0YWZh
NTdkMTQ5MmQ4ZjdkN2I3YTQyMTZlMGY0OGY1M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtODYsNiArODYsNyBAQCBOZXR3b3Jr
U2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBj
b25zdCBOZXR3b3JrU2VzcwogICAgICwgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJl
dmFsZW50UmVzb3VyY2UocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
cy5tYW51YWxQcmV2YWxlbnRSZXNvdXJjZSkKICAgICAsIG1fZW5hYmxlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0xvZ1Rlc3RpbmdFdmVudChwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
YXJhbWV0ZXJzLmVuYWJsZUxvZ1Rlc3RpbmdFdmVudCkKICAgICAsIG1fdGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJz
LnRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUpCisgICAgLCBtX3NhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMuc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQpCiAgICAgLCBtX2ZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bh
cmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUpCiAjZW5kaWYKICAgICAs
IG1fYWRDbGlja0F0dHJpYnV0aW9uKG1ha2VVbmlxdWVSZWY8QWRDbGlja0F0dHJpYnV0aW9uTWFu
YWdlcj4ocGFyYW1ldGVycy5zZXNzaW9uSUQpKQpAQCAtMjAwLDYgKzIwMSw3IEBAIHZvaWQgTmV0
d29ya1Nlc3Npb246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpmb3J3YXJkUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1NldHRpbmdzKCkKIHsKICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNl
dFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUobV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdN
b2RlKTsKKyAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkKG1fc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQpOwogICAg
IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3Zh
bE1vZGUobV9maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSwgW10geyB9KTsKIH0KIApA
QCAtMjI1LDYgKzIyNywxMiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpub3RpZnlQYWdlU3RhdGlz
dGljc1RlbGVtZXRyeUZpbmlzaGVkKHVuc2lnbmVkIG51bWJlck9mUHJldgogCiB2b2lkIE5ldHdv
cmtTZXNzaW9uOjpkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21h
aW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgUmVnaXN0cmFibGVEb21h
aW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3ImJiBkb21haW5zLCBib29sIHNob3Vs
ZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFzaFNldDxSZWdpc3Ry
YWJsZURvbWFpbj4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoYXV0byogc3Rv
cmFnZVNlc3Npb24gPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkgeworICAgICAgICBmb3IgKGF1
dG8mIGRvbWFpbiA6IGRvbWFpbnMuZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yKQor
ICAgICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnNldEFsbENvb2tpZXNUb1NhbWVTaXRlU3RyaWN0
KGRvbWFpbiwgW10geyB9KTsKKyAgICB9CisgICAgZG9tYWlucy5kb21haW5zVG9FbmZvcmNlU2Ft
ZVNpdGVTdHJpY3RGb3IuY2xlYXIoKTsKKwogICAgIG1fbmV0d29ya1Byb2Nlc3MtPmRlbGV0ZUFu
ZFJlc3RyaWN0V2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMobV9zZXNzaW9uSUQsIGRh
dGFUeXBlcywgV1RGTW92ZShkb21haW5zKSwgc2hvdWxkTm90aWZ5UGFnZSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCkBAIC0yNTAsNiArMjU4LDE0IEBAIHZvaWQgTmV0d29ya1Nl
c3Npb246OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoVGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nTW9kCiAgICAgaWYgKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICAgICAgbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKGJs
b2NraW5nTW9kZSk7CiB9CisKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnNldFNob3VsZEVuYmxlU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudChXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50
RW5hYmxlZCBlbmFibGVkKQoreworICAgIEFTU0VSVChtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mp
OworICAgIG1fc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBlbmFibGVkOworICAg
IGlmIChtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MpCisgICAgICAgIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy0+c2V0U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQoZW5hYmxlZCk7Cit9
CiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIAogdm9pZCBOZXR3
b3JrU2Vzc2lvbjo6c3RvcmVBZENsaWNrQXR0cmlidXRpb24oV2ViQ29yZTo6QWRDbGlja0F0dHJp
YnV0aW9uJiYgYWRDbGlja0F0dHJpYnV0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGM5YTE3ZGExMDJjZGU2ZDVhMjQ1ZGQ1YmY0ZTdi
YTNiYjFlNTc4YTEuLjQ2MzQyOTM1Mzc3MTExYWViYjI4NDdkY2E4MGRkZTViNDk3MmYyNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTEw
NCw2ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGREb3duZ3JhZGVSZWZlcnJl
ckZvclRlc3RpbmcoYm9vbCk7CiAgICAgYm9vbCBzaG91bGREb3duZ3JhZGVSZWZlcnJlcigpIGNv
bnN0OwogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShXZWJDb3JlOjpU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKTsKKyAgICB2b2lkIHNldFNob3VsZEVuYmxlU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudChXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50
RW5hYmxlZCk7CiAjZW5kaWYKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaGFzQXBwQm91bmRTZXNz
aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTE2MSw2ICsxNjIsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgYm9vbCBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZl
bnQ7CiAgICAgYm9vbCBtX2Rvd25ncmFkZVJlZmVycmVyIHsgdHJ1ZSB9OwogICAgIFdlYkNvcmU6
OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdN
b2RlIHsgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTo6QWxsIH07CisgICAg
V2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgbV9zYW1lU2l0ZVN0cmlj
dEVuZm9yY2VtZW50RW5hYmxlZCB7IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRF
bmFibGVkOjpObyB9OwogICAgIFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlIG1fZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgeyBXZWJDb3JlOjpGaXJzdFBh
cnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTo6QWxsQnV0Q29va2llcyB9OwogI2VuZGlmCiAgICAg
Ym9vbCBtX2lzU3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDI5OTI4MDY0M2Q0Njg3MzgzOTQ2
YTBlNDQzNzM0MDgxMmNkZmQ2YjguLjQ0NDRmMzFmN2U4YmM0ODZhNzJkNGE4OGU1ZTI1MmUxYmM2
MTExYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNjI4
LDYgKzYyOCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29y
ZTo6VGV4dENoZWNraW5nVHlwZSc6IFsnPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSc6IFsnPFdlYkNvcmUvVGV4dEluZGljYXRv
ci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSc6
IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10sCisgICAgICAgICdXZWJDb3Jl
OjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCc6IFsnPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURh
dGFSZW1vdmFsTW9kZSc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpVc2VkTGVnYWN5VExTJzogWyc8V2ViQ29yZS9SZXNvdXJjZVJlc3Bv
bnNlQmFzZS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJzogWyc8
V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmgKaW5kZXggZWFiMThh
NDYwYjEzMzRhNzlmMTZhMGM3YTQ4NTkzNWViMWQzNzNjNC4uZjQ5NzYwOTM1ODdlNGI4ZmIzZDVi
YTA5ZmY5YjljMDRlM2QyZjhlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5oCkBAIC00NCw2ICs0NCw3IEBAIHN0
cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyB7CiAgICAgYm9vbCBlbmFibGVE
ZWJ1Z01vZGUgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CiAgICAgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB0aGlyZFBhcnR5Q29v
a2llQmxvY2tpbmdNb2RlIHsgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTo6
QWxsIH07CisgICAgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgc2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgeyBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50RW5hYmxlZDo6Tm8gfTsKICNlbmRpZgogICAgIFdlYkNvcmU6OkZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlIGZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIHsg
V2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU6OkFsbEJ1dENvb2tpZXMg
fTsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBtYW51YWxQcmV2YWxlbnRSZXNvdXJj
ZSB7IH07CkBAIC01OSw2ICs2MCw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycyB7CiAgICAgICAgIGVuY29kZXIgPDwgZW5hYmxlRGVidWdNb2RlOwogI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgICAgIGVuY29kZXIgPDwgdGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZTsKKyAgICAgICAgZW5jb2RlciA8PCBzYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50RW5hYmxlZDsKICNlbmRpZgogICAgICAgICBlbmNvZGVyIDw8IGZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlOwogICAgICAgICBlbmNvZGVyIDw8IG1hbnVhbFByZXZhbGVu
dFJlc291cmNlOwpAQCAtMTA2LDYgKzEwOCwxMSBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMgewogICAgICAgICBkZWNvZGVyID4+IHRoaXJkUGFydHlDb29raWVCbG9j
a2luZ01vZGU7CiAgICAgICAgIGlmICghdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSkKICAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ+IHNhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnRFbmFibGVkOworICAgICAgICBkZWNvZGVyID4+IHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRFbmFibGVkOworICAgICAgICBpZiAoIXNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVk
KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgogCiAgICAgICAgIE9w
dGlvbmFsPFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlPiBmaXJzdFBh
cnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKQEAgLTEyOCw2ICsxMzUsNyBAQCBzdHJ1Y3QgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgewogICAgICAgICAgICAgV1RGTW92ZSgqZW5h
YmxlRGVidWdNb2RlKSwKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAg
ICAgICAgICAgV1RGTW92ZSgqdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSksCisgICAgICAg
ICAgICBXVEZNb3ZlKCpzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCksCiAjZW5kaWYK
ICAgICAgICAgICAgIFdURk1vdmUoKmZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKSwK
ICAgICAgICAgICAgIFdURk1vdmUoKm1hbnVhbFByZXZhbGVudFJlc291cmNlKSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGFhMjk2OWYxYzlmYWE2YTNkYzZl
MjliZjQxNWVjMzkxNWZjZWJhNDIuLmM2ZmRkYjYxMjBmMmM5NThiMzAyMTU1MjIyMGI4OTkxZmFi
MzIyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlh
bWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTky
OCw2ICsxOTI4LDEzIEBAIElzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbFJlcHJvVGVzdGlu
Z0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlJlbW92ZSBhbGwgbm9uLWNv
b2tpZSB3ZWJzaXRlIGRhdGEgYWZ0ZXIganVzdCAzMCBzZWNvbmRzIG9mIG5vIHVzZXIgaW50ZXJh
Y3Rpb24gd2hlbiBJbnRlbGxpZ2VudCBUcmFja2luZyBQcmV2ZW50aW9uIGlzIGVuYWJsZWQiCiAg
IGNhdGVnb3J5OiBpbnRlcm5hbAogCitJc1NhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVk
OgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5h
bWU6ICJTYW1lU2l0ZSBzdHJpY3QgZW5mb3JjZW1lbnQgKElUUCkiCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIkVuYWJsZSBTYW1lU2l0ZSBzdHJpY3QgZW5mb3JjZW1lbnQgdG8gbWl0aWdh
dGUgYm91bmNlIHRyYWNraW5nIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisKIElzTG9nZ2Vk
SW5BUElFbmFibGVkOgogICAgIHR5cGU6IGJvb2wKICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAppbmRleCA5ZDk3Yjgy
ZTZlYTk5ZTdhMzFjMjY1NGQ1M2Q1M2I2N2ZkYjg4ZDJlLi44OGIxZjU2ZDBlZjExNWIyZmNmNDY3
OGZhYTZhYmQ0OTFmOTZjZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uLmgKQEAgLTE1Niw2ICsxNTYsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEZv
cmVncm91bmRBY3Rpdml0eShzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVy
OjpGb3JlZ3JvdW5kQWN0aXZpdHk+JiYgYWN0aXZpdHkpIHsgbV9mb3JlZ3JvdW5kQWN0aXZpdHkg
PSBXVEZNb3ZlKGFjdGl2aXR5KTsgfQogCisgICAgdm9pZCBzZXRJc0xvYWRlZFdpdGhOYXZpZ2F0
aW9uU2hhcmVkKGJvb2wgdmFsdWUpIHsgbV9pc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkID0g
dmFsdWU7IH0KKyAgICBib29sIGlzTG9hZGVkV2l0aE5hdmlnYXRpb25TaGFyZWQoKSBjb25zdCB7
IHJldHVybiBtX2lzTG9hZGVkV2l0aE5hdmlnYXRpb25TaGFyZWQ7IH0KKwogcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBOYXZpZ2F0aW9uKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0YXRlJik7CiAgICAg
TmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGZyb21JdGVtKTsKQEAg
LTE3OCw2ICsxODEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VyQ29udGVudEV4dGVuc2lv
bnNFbmFibGVkIHsgdHJ1ZSB9OwogICAgIFdlYktpdDo6V2ViQ29udGVudE1vZGUgbV9lZmZlY3Rp
dmVDb250ZW50TW9kZSB7IFdlYktpdDo6V2ViQ29udGVudE1vZGU6OlJlY29tbWVuZGVkIH07CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6Rm9yZWdyb3VuZEFj
dGl2aXR5PiBtX2ZvcmVncm91bmRBY3Rpdml0eTsKKyAgICBib29sIG1faXNMb2FkZWRXaXRoTmF2
aWdhdGlvblNoYXJlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuY3BwCmluZGV4IDk3YWZjYWI2ODU3MmYxOTRjODk3MjlmZDI2OGM4NTg5YjcyNmEwMGIuLjY1
NzZlNmY3OGU0NzVlMjU2OWZjMzk3MzI1MWE1Zjg2NThlZTM4YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApA
QCAtNjA2LDYgKzYwNiw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1Jlc2V0
VG9Db25zaXN0ZW50U3RhdGUoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhCiAgICAgc3RvcmUucmVz
ZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoW2NhbGxiYWNrQWdn
cmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CiAgICAgc3RvcmUu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGlu
Zyh0cnVlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYo
KV0geyB9KTsKICAgICBzdG9yZS5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoZmFsc2UsIGZhbHNlLCBbY2FsbGJhY2tBZ2dyZWdh
dG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKKyAgICBzdG9yZS5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50
Rm9yVGVzdGluZyh0cnVlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9y
LmNvcHlSZWYoKV0geyB9KTsKICAgICBzdG9yZS5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmly
c3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKGZhbHNlLCBbY2FsbGJhY2tB
Z2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKICAgICBzdG9y
ZS5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNh
bGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CiAgICAgc3RvcmUuc2NoZWR1bGVDbGVh
ckluTWVtb3J5QW5kUGVyc2lzdGVudChXZWJLaXQ6OlNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGlj
czo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigp
XSB7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZjk4NTU4OWQyOTIxY2VlNjg3YzA3NDUzYTczNDll
Njk5OTdmNmNkMS4uZjg1ZTk4YjYxYzYwODRjM2RhN2ExNjI1NWUxMDEzNTM1ZjgxMTkzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCkBAIC0xMTU2LDYgKzExNTYsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Np
b24KICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRT
aG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyhzZXNzaW9uSUQsIGJsb2NraW5n
TW9kZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZv
cmNlbWVudEVuYWJsZWQgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3Rp
bmcoc2Vzc2lvbklELCBlbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQor
CiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlIG1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
aW5kZXggMjQwYzM1NzFlMTM3ODI4Zjg1YThhMmI1NTliZDM1ZWFiOTkxNWE5NC4uYWVmYzQ2MGVl
ZjFlMzBjM2QwMDZiYTRjZWE2MDEwM2NlMGFlMDA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE3Myw2ICsx
NzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBoYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CiAgICAgdm9pZCBzZXRTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcoYm9v
bCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3VsZEJsb2Nr
VGhpcmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpUaGly
ZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgc2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJs
ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRGaXJzdFBhcnR5
V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6
OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0VG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IDFjOGNjMGZjY2JiODg4MDBlYTg4Zjg5ODU5NTIwNjc1YjE0OTJhN2UuLjk3ZGEx
ZWUwNzE1ZDcxYmRkNTRjOGVhZWRhYjE5ZWM0YTVkYmUyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTMzMCw2ICsxMzMwLDggQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXMKIAogICAgIHByZWNvbm5lY3RUbyh1cmwpOwogCisgICAgbmF2aWdhdGlvbi5z
ZXRJc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKHRydWUpOworCiAjaWYgSEFWRShTQU5EQk9Y
X0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9LRU4pCiAgICAgaWYg
KCFwcm9jZXNzLT5pc0xhdW5jaGluZygpIHx8ICF1cmwuaXNMb2NhbEZpbGUoKSkKICAgICAgICAg
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRl
cnMpLCB3ZWJQYWdlSUQpOwpAQCAtNTE3OCw4ICs1MTgwLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXMKIAogICAgIGF1dG8gdXNlckluaXRpYXRlZEFjdGl2aXR5ID0gcHJvY2Vzcy0+dXNlcklu
aXRpYXRlZEFjdGl2aXR5KG5hdmlnYXRpb25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVu
dGlmaWVyKTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIGF1dG8g
d2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIgPSBuYXZpZ2F0aW9uLT5pc0xvYWRlZFdpdGhO
YXZpZ2F0aW9uU2hhcmVkKCkgfHwgdXNlckluaXRpYXRlZEFjdGl2aXR5OwogICAgIGlmICghc2Vz
c2lvbklEKCkuaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgbG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1l
LCBVUkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVz
cG9uc2UudXJsKCksICEhdXNlckluaXRpYXRlZEFjdGl2aXR5KTsKKyAgICAgICAgbG9nRnJhbWVO
YXZpZ2F0aW9uKGZyYW1lLCBVUkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVl
c3QsIHJlZGlyZWN0UmVzcG9uc2UudXJsKCksIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2Vy
KTsKICNlbmRpZgogCiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDI0NWY1ZWI5ZGVmODI2YjU2ZGI4NDFkM2E4
N2ZiNzRiMTFiNDE4ODkuLjI5NWE0OWU3YzVkNzA5YjZhMTdjMzcxOGU0YmJjOGY2MDY3YzZjMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTYwMCw2
ICs2MDAsNyBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0
d29ya1Byb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2l0aAogICAgIFdlYkNvcmU6OlRoaXJkUGFy
dHlDb29raWVCbG9ja2luZ01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA9IFdlYkNv
cmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbDsKICNlbmRpZgogICAgIFdlYkNv
cmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIGZpcnN0UGFydHlXZWJzaXRlRGF0
YVJlbW92YWxNb2RlID0gV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU6
OkFsbEJ1dENvb2tpZXM7CisgICAgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVu
YWJsZWQgc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBXZWJDb3JlOjpTYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6Tm87CiAgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gbWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OwogICAgIFdFQl9QUk9DRVNTX1BPT0xf
QURESVRJT05TXzIKICAgICBpZiAod2l0aFdlYnNpdGVEYXRhU3RvcmUpIHsKQEAgLTYxMyw2ICs2
MTQsNyBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29y
a1Byb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2l0aAogICAgICAgICAgICAgZW5hYmxlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVEZWJ1Z01vZGU7CiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICAgICAgICAgIHRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGUgPSBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKKyAgICAgICAgICAg
IHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnNhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnRFbmFibGVkOwogI2VuZGlmCiAgICAgICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFS
ZW1vdmFsTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVycy5maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKICAgICAgICAg
ICAgIG1hbnVhbFByZXZhbGVudFJlc291cmNlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLm1hbnVhbFByZXZhbGVudFJlc291cmNlOwpA
QCAtNjM3LDYgKzYzOSw3IEBAIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpl
bnN1cmVOZXR3b3JrUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoCiAgICAgICAgICAgICBl
bmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlID0gbmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmVuYWJsZURlYnVnTW9kZTsK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgICAgICAgICAgdGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy50aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwor
ICAgICAgICAgICAgc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuc2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ7CiAjZW5kaWYKICAgICAgICAgICAgIGZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
OwogICAgICAgICAgICAgbWFudWFsUHJldmFsZW50UmVzb3VyY2UgPSBuZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMubWFudWFsUHJldmFsZW50
UmVzb3VyY2U7CkBAIC02NzUsNiArNjc4LDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJv
Y2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdpdGgKICAg
ICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgICAgICB0aGlyZFBhcnR5Q29va2llQmxvY2tp
bmdNb2RlLAorICAgICAgICBzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwKICNlbmRp
ZgogICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSwKICAgICAgICAgbWFu
dWFsUHJldmFsZW50UmVzb3VyY2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0K
aW5kZXggNjUyZjQ3ZTA4ODdmOGM3OGNiNTgyODAzNjBkMzM1MjcwY2M1OWI4Yy4uMjM3OGI4Zjlh
YWI2NzA5YzVlNjI3OWRkOTUzMmM1MTZkMjQ2Y2FkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRh
U3RvcmVDb2NvYS5tbQpAQCAtOTksMTAgKzk5LDE1IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgIE5TVXNlckRlZmF1bHRzICpk
ZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107CiAgICAgYm9v
bCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiA9IGZhbHNlOwogICAgIGJvb2wgZW5hYmxlUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IGZhbHNlOworICAgIGF1dG8gc2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50RW5hYmxlZDo6Tm87CiAgICAgYXV0byBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9k
ZSA9IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlOjpBbGxCdXRDb29r
aWVzOwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSB7IH07CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlID0g
W2RlZmF1bHRzIGJvb2xGb3JLZXk6QCJJVFBEZWJ1Z01vZGUiXTsKKworICAgIGlmIChbZGVmYXVs
dHMgYm9vbEZvcktleTpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkV4cGVyaW1lbnRhbCVA
IiwgV2ViUHJlZmVyZW5jZXNLZXk6OmlzU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWRL
ZXkoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpXV0pCisgICAgICAgIHNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkID0gV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJs
ZWQ6OlllczsKKwogICAgIGlmIChbZGVmYXVsdHMgYm9vbEZvcktleTpbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAIkV4cGVyaW1lbnRhbCVAIiwgV2ViUHJlZmVyZW5jZXNLZXk6OmlzRmlyc3RQ
YXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbERpc2FibGVkS2V5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQo
KV1dKQogICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IFdlYkNvcmU6
OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlOjpOb25lOwogICAgIGVsc2UgewpAQCAt
MTgxLDYgKzE4Niw3IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3Rv
cmU6OnBhcmFtZXRlcnMoKQogICAgICAgICBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLAogICAgICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWdNb2RlLAogICAgICAgICB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKCksCisgICAgICAg
IHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLAogICAgICAgICBmaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZSwKICAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UpLAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4
IDRhZThlZTk3NTQyZTIwNzQ0MDY0NjgyZTkyYmY0MDc4NTE5Njc1NjYuLmVkZTY3MjllYjVjOTBi
YjNmMTE0MzJmZDJmZTRlZGRiNDQwYWFhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xODQ3LDYg
KzE4NDcsMTcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0ZvclQKICAgICB9CiB9CiAKK3ZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEVuYmxlU2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoYm9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBmbGFnID0gZW5h
YmxlZCA/IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOjpZZXMgOiBX
ZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6Tm87CisKKyAgICBhdXRv
IGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vz
c1Bvb2xzKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bv
b2wtPm5ldHdvcmtQcm9jZXNzKCkpCisgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2V0U2hv
dWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhtX3Nlc3Npb25JRCwg
ZmxhZywgW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCld
IHsgfSk7CisgICAgfQorfQorCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoYm9v
bCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNy
ZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMTMzNmQ5
ZWYxOWQ2ODZhYzc1OWU1MzliNDc0ZmYxOWY3ZmViNmRhYy4uMjQ4NTViZTNjODNhNThhZDAwYzg1
ODZkYjdjN2FlNTAxZGRhM2Q2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTk1LDYgKzE5NSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGhhc0lzb2xhdGVkU2Vzc2lvbkZvclRlc3RpbmcoY29uc3QgVVJMJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7CiAgICAgdm9pZCBzZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKGJvb2ws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoYm9vbCBlbmFi
bGVkLCBib29sIG9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NTaG91
bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKGJvb2wgZW5hYmxlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoYm9vbCBl
bmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1RvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhjb25zdCBV
UkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIFdlYkNvcmU6OlRoaXJkUGFy
dHlDb29raWVCbG9ja2luZ01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDkzOGMwZDc5MjE5ZTkyMmQ2ZDI0YzA1NWI3ZTZiMGRiNTlhNjllMjUuLmM0YWRl
ZDQ1ZDFhOTNhMTZlNWFmMTgyNGM5NTZmMTQ3YWNhNzFmNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMC0wMy0zMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBFeHBlcmltZW50YWw6IEVuZm9yY2UgU2FtZVNpdGU9c3RyaWN0IGZvciBkb21haW5zIGNs
YXNzaWZpZWQgYXMgYm91bmNlIHRyYWNrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3NjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5Mzk0
OTQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0
LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJh
bWUtdW5pcXVlLXJlZGlyZWN0cy10by1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1i
YXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sOiBBZGRlZC4KKwogMjAy
MC0wMy0zMCAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXZpc2lvbiBieSB6ZXJvIGluIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUNvbHVtbkNvdW50QW5k
V2lkdGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVl
LXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQt
b24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEwMGIxODUzYWQzNTE3MzM2Yjg3YzdjNDMwM2YwMjdlNDAyN2FlZDcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRp
cmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIGZv
ciBTYW1lU2l0ZT1zdHJpY3QgZW5mb3JjZW1lbnQgYmFzZWQgb24gdG9wIGZyYW1lIHVuaXF1ZSBy
ZWRpcmVjdHMgdG8uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvb2tp
ZSB3YXMgbm90IFNhbWVTaXRlPXN0cmljdCBiZWZvcmUgdGVzdC4KK1BBU1MgQ29va2llIHdhcyBT
YW1lU2l0ZT1zdHJpY3QgYWZ0ZXIgZmlyc3QgdGVzdC4KK1BBU1MgQ29va2llIHdhcyBub3QgU2Ft
ZVNpdGU9c3RyaWN0IGFmdGVyIHNlY29uZCB0ZXN0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNl
ZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUt
c3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGIyYmExNjMzYzFkMGM4NmU5MDhhYjEzZTQ1M2E1MDFmNWM2MzFmMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVl
LXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIFNhbWVTaXRl
PXN0cmljdCBlbmZvcmNlbWVudCBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0
by4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRl
c3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDov
LyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBmdW5jdGlvbiBzZXRNdWx0aXBsZVRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5KSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1Bh
cnR5LCAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJo
dHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8x
MjcuMC4wLjQ6ODAwMC90ZW1wIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Rv
cEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEyNy4wLjAu
NTo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVV
bmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC42OjgwMDAv
dGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjc6ODAwMC90ZW1wIik7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RU
byhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEyNy4wLjAuODo4MDAwL3RlbXAiKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGly
ZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC45OjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQ
YXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjEwOjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwg
Imh0dHA6Ly8xMjcuMC4wLjExOjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6
Ly8xMjcuMC4wLjEyOjgwMDAvdGVtcCIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbXBsZXRl
VGVzdCgpIHsKKyAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOwor
ICAgICAgICBpZiAoY29va2llcy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlNob3VsZCBoYXZlIGV4YWN0bHkgb25lIGNvb2tpZSBiZWZvcmUgdGVzdCBidXQgZm91bmQg
IiArIGNvb2tpZXMubGVuZ3RoICsgIiBjb29raWVzLiIpOworICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29v
a2llc1swXS5pc1NhbWVTaXRlU3RyaWN0KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2ll
IHdhcyBTYW1lU2l0ZT1zdHJpY3QgYWZ0ZXIgc2Vjb25kIHRlc3QuIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSB3YXMgbm90IFNhbWVTaXRlPXN0cmljdCBh
ZnRlciBzZWNvbmQgdGVzdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNlY29uZFN0ZXAoKSB7CisgICAg
ICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKGNv
b2tpZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2
ZSBleGFjdGx5IG9uZSBjb29raWUgYmVmb3JlIHRlc3QgYnV0IGZvdW5kICIgKyBjb29raWVzLmxl
bmd0aCArICIgY29va2llcy4iKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvb2tpZXNbMF0uaXNTYW1l
U2l0ZVN0cmljdCkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSB3YXMgU2FtZVNpdGU9
c3RyaWN0IGFmdGVyIGZpcnN0IHRlc3QuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvb2tpZSB3YXMgbm90IFNhbWVTaXRlPXN0cmljdCBhZnRlciBmaXJzdCB0ZXN0
LiIpOworCisgICAgICAgIC8vIFNldCB0aGUgY29va2llIGFnYWluIHRvIHJlc2V0IGl0cyBTYW1l
U2l0ZSBzdGF0dXMuCisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJjbGllbnRTaWRlQ29va2ll
PTEiOworCisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiY2xpZW50U2lkZUNv
b2tpZT0xIjsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSk7CisKKyAgICAgICAgbGV0IGNvb2tpZXMgPSBp
bnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBpZiAoY29va2llcy5sZW5ndGggIT09IDEp
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGV4YWN0bHkgb25lIGNvb2tp
ZSBiZWZvcmUgdGVzdCBidXQgZm91bmQgIiArIGNvb2tpZXMubGVuZ3RoICsgIiBjb29raWVzLiIp
OworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoY29va2llc1swXS5pc1NhbWVTaXRlU3RyaWN0KQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQ29va2llIHdhcyBTYW1lU2l0ZT1zdHJpY3QgYmVmb3JlIHRlc3Qu
Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSB3YXMgbm90
IFNhbWVTaXRlPXN0cmljdCBiZWZvcmUgdGVzdC4iKTsKKworICAgICAgICBzZXRNdWx0aXBsZVRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsKTsKKworICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soc2Vjb25kU3Rl
cCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1blRlc3Qo
KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5m
b3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUt
cmVkaXJlY3RzLXRvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDBiMTg1M2FkMzUxNzMzNmI4
N2M3YzQzMDNmMDI3ZTQwMjdhZWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0LWJh
c2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitUZXN0cyBmb3IgU2FtZVNpdGU9c3RyaWN0IGVuZm9yY2VtZW50IGJhc2VkIG9u
IHRvcCBmcmFtZSB1bmlxdWUgcmVkaXJlY3RzIHRvLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBDb29raWUgd2FzIG5vdCBTYW1lU2l0ZT1zdHJpY3QgYmVmb3JlIHRlc3Qu
CitQQVNTIENvb2tpZSB3YXMgU2FtZVNpdGU9c3RyaWN0IGFmdGVyIGZpcnN0IHRlc3QuCitQQVNT
IENvb2tpZSB3YXMgbm90IFNhbWVTaXRlPXN0cmljdCBhZnRlciBzZWNvbmQgdGVzdC4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1z
YW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNl
LXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNmN2IwNTE3Yjc2OTYzODNjZDg1NDM1ZWIwNTJmOTFhYjIwNzAyNTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1
ZS1yZWRpcmVjdHMtdG8uaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBTYW1lU2l0ZT1zdHJpY3Qg
ZW5mb3JjZW1lbnQgYmFzZWQgb24gdG9wIGZyYW1lIHVuaXF1ZSByZWRpcmVjdHMgdG8uIik7Cisg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9z
dFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgZnVuY3Rpb24gc2V0TXVsdGlwbGVUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSkgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEy
Ny4wLjAuMzo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC40
OjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90
ZW1wIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVk
aXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEyNy4wLjAuNjo4MDAwL3RlbXAiKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRv
KHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC43OjgwMDAvdGVtcCIpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJl
Y3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjg6ODAwMC90ZW1wIik7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1Bh
cnR5LCAiaHR0cDovLzEyNy4wLjAuOTo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJo
dHRwOi8vMTI3LjAuMC4xMDo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8v
MTI3LjAuMC4xMTo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAu
MC4xMjo4MDAwL3RlbXAiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7
CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAg
aWYgKGNvb2tpZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91
bGQgaGF2ZSBleGFjdGx5IG9uZSBjb29raWUgYmVmb3JlIHRlc3QgYnV0IGZvdW5kICIgKyBjb29r
aWVzLmxlbmd0aCArICIgY29va2llcy4iKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvb2tpZXNbMF0u
aXNTYW1lU2l0ZVN0cmljdCkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSB3YXMgU2Ft
ZVNpdGU9c3RyaWN0IGFmdGVyIHNlY29uZCB0ZXN0LiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJDb29raWUgd2FzIG5vdCBTYW1lU2l0ZT1zdHJpY3QgYWZ0ZXIgc2Vj
b25kIHRlc3QuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZWNvbmRTdGVwKCkgeworICAgICAgICBsZXQg
Y29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgIGlmIChjb29raWVzLmxl
bmd0aCAhPT0gMSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgZXhhY3Rs
eSBvbmUgY29va2llIGJlZm9yZSB0ZXN0IGJ1dCBmb3VuZCAiICsgY29va2llcy5sZW5ndGggKyAi
IGNvb2tpZXMuIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb29raWVzWzBdLmlzU2FtZVNpdGVTdHJp
Y3QpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgd2FzIFNhbWVTaXRlPXN0cmljdCBh
ZnRlciBmaXJzdCB0ZXN0LiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb29raWUgd2FzIG5vdCBTYW1lU2l0ZT1zdHJpY3QgYWZ0ZXIgZmlyc3QgdGVzdC4iKTsKKwor
ICAgICAgICAvLyBTZXQgdGhlIGNvb2tpZSBhZ2FpbiB0byByZXNldCBpdHMgU2FtZVNpdGUgc3Rh
dHVzLgorICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiY2xpZW50U2lkZUNvb2tpZT0xIjsKKwor
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9j
ZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gImNsaWVudFNpZGVDb29raWU9MSI7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN0YXRpc3RpY3NVcmwsIHRydWUpOworCisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxz
LmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKGNvb2tpZXMubGVuZ3RoICE9PSAxKSB7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBleGFjdGx5IG9uZSBjb29raWUgYmVmb3Jl
IHRlc3QgYnV0IGZvdW5kICIgKyBjb29raWVzLmxlbmd0aCArICIgY29va2llcy4iKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKGNvb2tpZXNbMF0uaXNTYW1lU2l0ZVN0cmljdCkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvb2tpZSB3YXMgU2FtZVNpdGU9c3RyaWN0IGJlZm9yZSB0ZXN0LiIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgd2FzIG5vdCBTYW1lU2l0
ZT1zdHJpY3QgYmVmb3JlIHRlc3QuIik7CisKKyAgICAgICAgc2V0TXVsdGlwbGVUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKHNlY29uZFN0ZXApOworCisg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHMoKTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVu
ZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394993</attachid>
            <date>2020-03-30 17:36:41 -0700</date>
            <delta_ts>2020-03-30 18:47:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209761-20200330173640.patch</filename>
            <type>text/plain</type>
            <size>80286</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhmZjAxMmZmYjJjZjA4
ZmRmODk0YzRmNGQ4ZmZkN2YyN2I2NWZhNi4uZWFjMjZjZTQzNDliOWVkNjkyMzdlYzRjNjQzNmM4
MmNmZmUwZjkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTAzLTMwICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGVyaW1lbnRhbDog
RW5mb3JjZSBTYW1lU2l0ZT1zdHJpY3QgZm9yIGRvbWFpbnMgY2xhc3NpZmllZCBhcyBib3VuY2Ug
dHJhY2tlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwOTc2MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTkzOTQ5NDM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBleHBlcmltZW50YWwgZmVh
dHVyZSBpcyBwYXJ0IG9mIEludGVsbGlnZW50IFRyYWNraW5nIFByZXZlbnRpb24gYW5kIG9ubHkg
ZW5hYmxlZCBpZgorICAgICAgICBJVFAgKFJlc291cmNlIExvYWQgU3RhdGlzdGljcykgYXJlLiBB
IG5ldyBlbnVtIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkCisgICAg
ICAgIGNvbnRyb2xzIHRoZSBuZXcgYmVoYXZpb3Igd2l0aCBkZWZhdWx0IHNldHRpbmcgV2ViQ29y
ZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vLgorCisgICAgICAgIFRoZSBm
ZWF0dXJlcyBrZWVwcyBhIHNlcGFyYXRlIGNvdW50IG9mIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
VG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQKKyAgICAgICAgd2hpY2ggYnVpbGRzIHVw
IHRvIGEgdGhyZXNob2xkLiBPbmNlIGEgZG9tYWluIGdvZXMgYWJvdmUgdGhlIHRocmVzaG9sZCwg
aXRzIGNvb2tpZXMgYXJlCisgICAgICAgIHJld3JpdHRlbiBhcyBTYW1lU2l0ZT1zdHJpY3QgYW5k
IHRoZSB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50CisgICAgICAgIGNvdW50ZXIgZm9yIHRoYXQgZG9tYWluIGlzIHJlc2V0LCBlZmZlY3RpdmVs
eSBnaXZpbmcgdGhlIGRvbWFpbiBhIG5ldyBjaGFuY2UgdG8gY2hhbmdlIGl0cworICAgICAgICBi
ZWhhdmlvci4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0czogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNp
dGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9l
bmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0
cy10by5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oOgor
ICAgICAgICAgICAgTmV3IGZpZWxkIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVT
aXRlU3RyaWN0RW5mb3JjZW1lbnQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAg
ICAgICBOZXcgZW51bSBTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZC4KKwogMjAyMC0w
My0zMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBz
Y3JvbGxJbnRvVmlldygpIGVycm9uZW91c2x5IHNjcm9sbHMgbm9uLWNvbnRhaW5pbmcgYmxvY2sg
c2Nyb2xsZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmZGEyNmIxNzY2OTljYjIwOTgxNzg1ODJjNmYzOWNlOWM3
YTkxMWEuLmJiYWM1YmI0NmNkZjZjMDg3NmQxNTA3YTMzM2QwMjg0YjgxNmNiMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsODUgQEAKKzIwMjAtMDMtMzAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CisKKyAgICAgICAgRXhwZXJpbWVudGFsOiBFbmZvcmNlIFNhbWVTaXRlPXN0cmlj
dCBmb3IgZG9tYWlucyBjbGFzc2lmaWVkIGFzIGJvdW5jZSB0cmFja2VycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzYxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81OTM5NDk0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlzIHBhcnQgb2YgSW50ZWxs
aWdlbnQgVHJhY2tpbmcgUHJldmVudGlvbiBhbmQgb25seSBlbmFibGVkIGlmCisgICAgICAgIElU
UCAoUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzKSBhcmUuIEEgbmV3IGVudW0gV2ViQ29yZTo6U2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQKKyAgICAgICAgY29udHJvbHMgdGhlIG5ldyBi
ZWhhdmlvciB3aXRoIGRlZmF1bHQgc2V0dGluZyBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9y
Y2VtZW50RW5hYmxlZDo6Tm8uCisKKyAgICAgICAgVGhlIGZlYXR1cmVzIGtlZXBzIGEgc2VwYXJh
dGUgY291bnQgb2YgdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudAorICAgICAgICB3aGljaCBidWlsZHMgdXAgdG8gYSB0aHJlc2hvbGQuIE9uY2Ug
YSBkb21haW4gZ29lcyBhYm92ZSB0aGUgdGhyZXNob2xkLCBpdHMgY29va2llcyBhcmUKKyAgICAg
ICAgcmV3cml0dGVuIGFzIFNhbWVTaXRlPXN0cmljdCBhbmQgdGhlIHRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQKKyAgICAgICAgY291bnRlciBm
b3IgdGhhdCBkb21haW4gaXMgcmVzZXQsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZG9tYWluIGEg
bmV3IGNoYW5jZSB0byBjaGFuZ2UgaXRzCisgICAgICAgIGJlaGF2aW9yLgorCisgICAgICAgIFRl
c3QgaW5mcmFzdHJ1Y3R1cmUgaXMgYWRkZWQgdG8gYWxsb3cgZm9yIGxheW91dCB0ZXN0cy4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcyk6CisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEpOgorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwcyk6CisgICAgICAgIChXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZv
cik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6
cmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpzZXRTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aXNTYW1lU2l0ZVN0cmlj
dEVuZm9yY2VtZW50RW5hYmxlZCBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpSZWdpc3Ry
YWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvcjo6aXNvbGF0ZWRDb3B5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJl
c3RyaWN0V2Vic2l0ZURhdGFGb3I6OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OnNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICAgICBBZGRl
ZCBTZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb246OmZvcndhcmRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0dGluZ3MpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6ZGVsZXRlQW5kUmVzdHJpY3RXZWJzaXRlRGF0
YUZvclJlZ2lzdHJhYmxlRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHk6CisgICAgICAgICAgICBJUEMgaW5zdHJ1Y3Rpb25zIHRvIGZpbmQgV2ViQ29y
ZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgaW4KKyAgICAgICAgICAgIFdlYkNv
cmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmguIAorICAgICAgICAqIFNoYXJlZC9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uLmg6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246OnNldElzTG9hZGVkV2l0aE5hdmlnYXRp
b25TaGFyZWQpOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjppc0xvYWRlZFdpdGhOYXZpZ2F0
aW9uU2hhcmVkIGNvbnN0KToKKyAgICAgICAgICAgIEtlZXBzIHRyYWNrIG9mIGhvdyBhIG5hdmln
YXRpb24gb2NjdXJzIHRvIG1ha2Ugc3VyZSB0aGF0CisgICAgICAgICAgICBXZWJQYWdlUHJveHk6
OmxvZ0ZyYW1lTmF2aWdhdGlvbigpIGNhbiBjYXB0dXJlIG5hdmlnYXRpb25zIGluaXRpYXRlZCBi
eSB0aGUKKyAgICAgICAgICAgIHVzZXIgdGhyb3VnaCB0aGUgaG9zdGluZyBhcHBsaWNhdGlvbi4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkRW5ibGVTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAgICAgU2VlIGNvbW1lbnQgYWJvdmUgZm9yIEFQ
STo6TmF2aWdhdGlvbi4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgICAgIFNlZSBjb21tZW50IGFib3ZlIGZv
ciBBUEk6Ok5hdmlnYXRpb24uCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9y
ZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAyMDIw
LTAzLTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0
IHNob3VsZCB0YWtlIGEgZm9yZWdyb3VuZCBhc3NlcnRpb24gZm9yIG9mZnNjcmVlbiBsb2FkcyB3
aGVuIHRoZSBhcHAgaXMgZm9yZWdyb3VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLmgKaW5kZXggNTk3ZTVjMTQ5YTExMjI0YjlhNDBiOGU1NzcyNjdm
ZGI5OGExYTIwMS4uZDU4N2E1MTQxZjM4ZWY4YmM3MDhlZTc3ZTc4MWNmMGY1YmQwMjY5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCkBAIC03
OSw2ICs3OSw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsKIAogICAgIC8vIFRv
cCBmcmFtZSBzdGF0cwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IHRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzVG87CisgICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4gdG9wRnJhbWVV
bmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudDsKICAgICBIYXNo
U2V0PFJlZ2lzdHJhYmxlRG9tYWluPiB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb207CiAgICAg
SGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4gdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tOwog
ICAgIGJvb2wgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2UgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDI1YThlYWJkNDdhNWM3MzIzZjY1OGYx
NmMzNGRjYWExZGNiZDAzMjEuLmE4Njc2ZDk3YzNjYWI5NzNjMTMyMzVkZjg5NmMyZGQ3YWRhZWI1
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTkxMCw2ICs5MTAsOSBAQCBpc0Zp
cnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxMaXZlT25UZXN0aW5nRW5hYmxlZDoKIGlzRmlyc3RQ
YXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbFJlcHJvVGVzdGluZ0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZh
bHNlCiAKK2lzU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6CisgIGluaXRpYWw6IGZh
bHNlCisKIGlzTG9nZ2VkSW5BUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaAppbmRleCA4ODVmZjg3ZTc2ZTg4NDY4YWE3ODViMzRhYThmMjUxMDIwOTZlZDk2Li4xMzkx
ZGVkNGQ4OGVkYjI3NjAyZjY5YzA2ZDJmYTEzODBkYjgyN2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAg
LTc4LDYgKzc4LDcgQEAgZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhf
dDsKIGVudW0gY2xhc3MgSW5jbHVkZVNlY3VyZUNvb2tpZXMgOiBib29sOwogZW51bSBjbGFzcyBJ
bmNsdWRlSHR0cE9ubHlDb29raWVzIDogYm9vbDsKIGVudW0gY2xhc3MgVGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZSA6IHVpbnQ4X3QgeyBBbGwsIEFsbE9uU2l0ZXNXaXRob3V0VXNlckludGVy
YWN0aW9uLCBPbmx5QWNjb3JkaW5nVG9QZXJEb21haW5Qb2xpY3kgfTsKK2VudW0gY2xhc3MgU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgOiBib29sIHsgWWVzLCBObyB9OwogZW51bSBj
bGFzcyBGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA6IHVpbnQ4X3QgeyBBbGxCdXRD
b29raWVzLCBOb25lLCBBbGxCdXRDb29raWVzTGl2ZU9uVGVzdGluZ1RpbWVvdXQsIEFsbEJ1dENv
b2tpZXNSZXByb1Rlc3RpbmdUaW1lb3V0IH07CiBlbnVtIGNsYXNzIFNob3VsZEFza0lUUCA6IGJv
b2wgeyBObywgWWVzIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IGI0YWIyMTNjNjY5ZmU3ZWIzNmI2OTY3OWVhZDIy
YzkxNmQzYjYzYWMuLjcyZGI5OWI4MzMzZDNhNThjMTc1M2IwODYyM2ZkM2E5YmJmMTFjMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcApAQCAtODEsNiArODEsNyBAQCBjb25zdGV4cHIgYXV0byBpbnNlcnRPYnNlcnZlZERvbWFp
blF1ZXJ5ID0gIklOU0VSVCBJTlRPIE9ic2VydmVkRG9tYWlucyAocmVnaXN0cgogY29uc3RleHBy
IGF1dG8gaW5zZXJ0VG9wTGV2ZWxEb21haW5RdWVyeSA9ICJJTlNFUlQgSU5UTyBUb3BMZXZlbERv
bWFpbnMgVkFMVUVTICg/KSJfczsKIGNvbnN0ZXhwciBhdXRvIHN0b3JhZ2VBY2Nlc3NVbmRlclRv
cEZyYW1lRG9tYWluc1F1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgSU5UTyBTdG9yYWdlQWNjZXNz
VW5kZXJUb3BGcmFtZURvbWFpbnMgKGRvbWFpbklELCB0b3BMZXZlbERvbWFpbklEKSBTRUxFQ1Qg
PywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4g
aW4gKCAiX3M7CiBjb25zdGV4cHIgYXV0byB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnkg
PSAiSU5TRVJUIE9SIElHTk9SRSBpbnRvIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8gKHNvdXJj
ZURvbWFpbklELCB0b0RvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERv
bWFpbnMgd2hlcmUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0byB0
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50UXVl
cnkgPSAiSU5TRVJUIE9SIElHTk9SRSBpbnRvIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5j
ZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQgKHNvdXJjZURvbWFpbklELCB0b0RvbWFpbklEKSBT
RUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgd2hlcmUgcmVnaXN0cmFibGVE
b21haW4gaW4gKCAiX3M7CiBjb25zdGV4cHIgYXV0byB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zy
b21RdWVyeSA9ICJJTlNFUlQgT1IgSUdOT1JFIElOVE8gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNG
cm9tICh0YXJnZXREb21haW5JRCwgZnJvbURvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJP
TSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7CiBjb25z
dGV4cHIgYXV0byB0b3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzUXVlcnkgPSAiSU5TRVJU
IE9SIElHTk9SRSBpbnRvIFRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHMgKHRvcEZyYW1l
RG9tYWluSUQsIHN1YnJlc291cmNlRG9tYWluSUQpIFNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9i
c2VydmVkRG9tYWlucyB3aGVyZSByZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKIGNvbnN0ZXhw
ciBhdXRvIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5ID0gIklOU0VSVCBPUiBJ
R05PUkUgSU5UTyBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gKHN1YnJlc291cmNlRG9t
YWluSUQsIGZyb21Eb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21h
aW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9zOwpAQCAtMTM4LDYgKzEzOSw3IEBA
IGNvbnN0IGNoYXIqIHRhYmxlc1tdID0gewogICAgICJUb3BMZXZlbERvbWFpbnMiLAogICAgICJT
dG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMiLAogICAgICJUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c1RvIiwKKyAgICAiVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudCIsCiAgICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSIsCiAg
ICAgIlRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSIsCiAgICAgIlRvcEZyYW1lTG9hZGVkVGhp
cmRQYXJ0eVNjcmlwdHMiLApAQCAtMTgzLDcgKzE4NSwxMiBAQCBjb25zdGV4cHIgYXV0byBjcmVh
dGVUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvID0gIkNSRUFURSBUQUJMRSBUb3BGcmFtZVVuaXF1
ZVJlZAogICAgICJzb3VyY2VEb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCB0b0RvbWFpbklEIElO
VEVHRVIgTk9UIE5VTEwsICIKICAgICAiRk9SRUlHTiBLRVkoc291cmNlRG9tYWluSUQpIFJFRkVS
RU5DRVMgVG9wTGV2ZWxEb21haW5zKHRvcExldmVsRG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURF
LCAiCiAgICAgIkZPUkVJR04gS0VZKHRvRG9tYWluSUQpIFJFRkVSRU5DRVMgVG9wTGV2ZWxEb21h
aW5zKHRvcExldmVsRG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFKTsiX3M7Ci0gICAgCisKK2Nv
bnN0ZXhwciBhdXRvIGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRl
U3RyaWN0RW5mb3JjZW1lbnQgPSAiQ1JFQVRFIFRBQkxFIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
VG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQgKCIKKyAgICAic291cmNlRG9tYWluSUQg
SU5URUdFUiBOT1QgTlVMTCwgdG9Eb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCAiCisgICAgIkZP
UkVJR04gS0VZKHNvdXJjZURvbWFpbklEKSBSRUZFUkVOQ0VTIFRvcExldmVsRG9tYWlucyh0b3BM
ZXZlbERvbWFpbklEKSBPTiBERUxFVEUgQ0FTQ0FERSwgIgorICAgICJGT1JFSUdOIEtFWSh0b0Rv
bWFpbklEKSBSRUZFUkVOQ0VTIFRvcExldmVsRG9tYWlucyh0b3BMZXZlbERvbWFpbklEKSBPTiBE
RUxFVEUgQ0FTQ0FERSk7Il9zOworCiBjb25zdGV4cHIgYXV0byBjcmVhdGVUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c0Zyb20gPSAiQ1JFQVRFIFRBQkxFIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJv
bSAoIgogICAgICJ0YXJnZXREb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBmcm9tRG9tYWluSUQg
SU5URUdFUiBOT1QgTlVMTCwgIgogICAgICJGT1JFSUdOIEtFWSh0YXJnZXREb21haW5JRCkgUkVG
RVJFTkNFUyBUb3BMZXZlbERvbWFpbnModG9wTGV2ZWxEb21haW5JRCkgT04gREVMRVRFIENBU0NB
REUsICIKQEAgLTIyMiw2ICsyMjksNyBAQCBjb25zdGV4cHIgYXV0byBjcmVhdGVTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c0Zyb20gPSAiQ1JFQVRFIFRBQkxFIFN1YnJlc291cmNlVQogLy8gQ1JF
QVRFIFVOSVFVRSBJTkRFWCBRdWVyaWVzCiBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRl
eFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucyA9ICJDUkVBVEUgVU5JUVVFIElOREVY
IElGIE5PVCBFWElTVFMgU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zX2RvbWFpbklE
X3RvcExldmVsRG9tYWluSUQgb24gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zICgg
ZG9tYWluSUQsIHRvcExldmVsRG9tYWluSUQgKTsiX3M7CiBjb25zdGV4cHIgYXV0byBjcmVhdGVV
bmlxdWVJbmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8gPSAiQ1JFQVRFIFVOSVFVRSBJTkRF
WCBJRiBOT1QgRVhJU1RTIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9fc291cmNlRG9tYWluSURf
dG9Eb21haW5JRCBvbiBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvICggc291cmNlRG9tYWluSUQs
IHRvRG9tYWluSUQgKTsiX3M7Citjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQgPSAiQ1JF
QVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9T
aW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRfc291cmNlRG9tYWluSURfdG9Eb21haW5JRCBv
biBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50
ICggc291cmNlRG9tYWluSUQsIHRvRG9tYWluSUQgKTsiX3M7CiBjb25zdGV4cHIgYXV0byBjcmVh
dGVVbmlxdWVJbmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSA9ICJDUkVBVEUgVU5JUVVF
IElOREVYIElGIE5PVCBFWElTVFMgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tX3RhcmdldERv
bWFpbklEX2Zyb21Eb21haW5JRCBvbiBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gKCB0YXJn
ZXREb21haW5JRCwgZnJvbURvbWFpbklEICk7Il9zOwogY29uc3RleHByIGF1dG8gY3JlYXRlVW5p
cXVlSW5kZXhUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20gPSAiQ1JFQVRFIFVOSVFVRSBJTkRF
WCBJRiBOT1QgRVhJU1RTIFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbV90b0RvbWFpbklEX2Zy
b21Eb21haW5JRCBvbiBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20gKCB0b0RvbWFpbklELCBm
cm9tRG9tYWluSUQgKTsiX3M7CiBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFRvcEZy
YW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHMgPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1Qg
RVhJU1RTIFRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHNfdG9wRnJhbWVEb21haW5JRF9z
dWJyZXNvdXJjZURvbWFpbklEIG9uIFRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHMgKCB0
b3BGcmFtZURvbWFpbklELCBzdWJyZXNvdXJjZURvbWFpbklEICk7Il9zOwpAQCAtNDEyLDYgKzQy
MCw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVu
aXF1ZUluZGljZXMoKQogewogICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVh
dGVVbmlxdWVJbmRleFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucykKICAgICAgICAg
fHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChj
cmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnQpCiAgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNy
ZWF0ZVVuaXF1ZUluZGV4VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tKQogICAgICAgICB8fCAh
bV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lTGlua0Rl
Y29yYXRpb25zRnJvbSkKICAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3Jl
YXRlVW5pcXVlSW5kZXhUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzKQpAQCAtNDQ5LDYg
KzQ1OCwxMSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVh
dGVTY2hlbWEoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgaWYgKCFtX2Rh
dGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5j
ZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQpKSB7CisgICAgICAgIExPR19FUlJPUigiQ291bGQg
bm90IGNyZWF0ZSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50IHRhYmxlIGluIGRhdGFiYXNlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UubGFzdEVy
cm9yKCksIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCiAgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3Qg
Y3JlYXRlIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSB0YWJsZSBpbiBkYXRhYmFzZSAoJWkp
IC0gJXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjkyLDYgKzcwNiw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcHMo
Y29uc3QgUmVzb3VyCiAKICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN0b3JhZ2VB
Y2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5LCBsb2FkU3RhdGlzdGljcy5zdG9yYWdlQWNj
ZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSk7CiAg
ICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
UXVlcnksIGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJh
YmxlRG9tYWluSUQudmFsdWUoKSk7CisgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50UXVl
cnksIGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRl
U3RyaWN0RW5mb3JjZW1lbnQsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSk7CiAgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVy
eSwgbG9hZFN0YXRpc3RpY3MudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJs
ZURvbWFpbklELnZhbHVlKCkpOwogICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5LCBsb2FkU3RhdGlzdGljcy5zdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCkpOwogICAgIGlu
c2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlu
c1F1ZXJ5LCBsb2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zLCBy
ZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCkpOwpAQCAtMTYxMiw2ICsxNjI3LDggQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNv
bnN0IFJlZ2lzdHJhYmxlRG8KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4o
eyB0YXJnZXREb21haW4gfSksICpyZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQpOworICAg
ICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudFF1ZXJ5LCBIYXNoU2V0PFJl
Z2lzdHJhYmxlRG9tYWluPih7IHRhcmdldERvbWFpbiB9KSwgKnJlZGlyZWN0aW5nRG9tYWluUmVz
dWx0LnNlY29uZCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xv
Z2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiRGlkIHNldCAlIiBQVUJMSUNfTE9HX1NUUklORyAi
IGFzIG1ha2luZyBhIHRvcCBmcmFtZSByZWRpcmVjdCB0byAlIiBQVUJMSUNfTE9HX1NUUklORyAi
LiIsIHNvdXJjZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0YXJnZXREb21haW4uc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSwgSGFzaFNldDxSZWdp
c3RyYWJsZURvbWFpbj4oeyBzb3VyY2VEb21haW4gfSksICp0YXJnZXRSZXN1bHQuc2Vjb25kKTsK
ICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAgICAg
ICAgfQpAQCAtMTY0OCw2ICsxNjY1LDI4IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmxvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oY29uCiAgICAg
ICAgIHNldElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwodG9Eb21haW4sIHRy
dWUpOwogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVh
clRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OworCisgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JS
ZWdpc3RyYWJsZURvbWFpbihkb21haW4pOworICAgIGlmICghdGFyZ2V0UmVzdWx0LnNlY29uZCkg
eworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50IHdhcyBub3QgY29tcGxl
dGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFNRTGl0ZVN0YXRl
bWVudCByZW1vdmVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGUobV9kYXRhYmFzZSwgIkRFTEVURSBG
Uk9NIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnQgV0hFUkUgc291cmNlRG9tYWluSUQgPSA/Iik7CisgICAgaWYgKHJlbW92ZVJlZGlyZWN0c1Rv
U2luY2VTYW1lU2l0ZS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHJlbW92ZVJl
ZGlyZWN0c1RvU2luY2VTYW1lU2l0ZS5iaW5kSW50KDEsICp0YXJnZXRSZXN1bHQuc2Vjb25kKSAh
PSBTUUxJVEVfT0sKKyAgICAgICAgfHwgcmVtb3ZlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlLnN0
ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Y2xlYXJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9y
Y2VtZW50IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICB9CisgICAgCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0aW9uKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBXYWxs
VGltZSBtb3N0UmVjZW50SW50ZXJhY3Rpb24pCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CkBAIC0xNjk4LDcgKzE3MzcsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZQogICAg
IGlmIChyZW1vdmVTdG9yYWdlQWNjZXNzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAg
fHwgcmVtb3ZlU3RvcmFnZUFjY2Vzcy5iaW5kSW50KDEsICp0YXJnZXRSZXN1bHQuc2Vjb25kKSAh
PSBTUUxJVEVfT0sKICAgICAgICAgfHwgcmVtb3ZlU3RvcmFnZUFjY2Vzcy5zdGVwKCkgIT0gU1FM
SVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Np
b25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ1VzZXJJ
bnRlcmFjdGlvbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5kLCBlcnJvciBt
ZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKQEAgLTIwNDQsOCArMjA4Myw5
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RUbyhjb25zdCBUb3BGCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8gd2FzIG5vdCBjb21wbGV0ZWQgZHVl
IHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIC8vIEZvciBjb25zaXN0ZW5jeSwgbWFrZSBzdXJlIHdlIGFsc28gaGF2ZSBhIHN0YXRp
c3RpY3MgZW50cnkgZm9yIHRoZSByZWRpcmVjdCBkb21haW4uCisKICAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXBMaXN0KHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSwgSGFzaFNldDxS
ZWdpc3RyYWJsZURvbWFpbj4oeyByZWRpcmVjdERvbWFpbiB9KSwgKnJlc3VsdC5zZWNvbmQpOwor
ICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNU
b1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudFF1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxl
RG9tYWluPih7IHJlZGlyZWN0RG9tYWluIH0pLCAqcmVzdWx0LnNlY29uZCk7CiB9CiAKIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RGcm9tKGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVk
aXJlY3REb21haW4mIHJlZGlyZWN0RG9tYWluKQpAQCAtMjI1Nyw3ICsyMjk3LDggQEAgVmVjdG9y
PFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpEb21haW5EYXRhPiBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGEKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAK
ICAgICBWZWN0b3I8RG9tYWluRGF0YT4gcmVzdWx0czsKLSAgICBTUUxpdGVTdGF0ZW1lbnQgc3Rh
dGVtZW50KG1fZGF0YWJhc2UsICJTRUxFQ1QgZG9tYWluSUQsIHJlZ2lzdHJhYmxlRG9tYWluLCBt
b3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSwgaGFkVXNlckludGVyYWN0aW9uLCBncmFuZGZh
dGhlcmVkLCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsIEZST00gT2JzZXJ2
ZWREb21haW5zIl9zKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2Us
ICJTRUxFQ1QgZG9tYWluSUQsIHJlZ2lzdHJhYmxlRG9tYWluLCBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uVGltZSwgaGFkVXNlckludGVyYWN0aW9uLCBncmFuZGZhdGhlcmVkLCBpc1NjaGVkdWxl
ZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBjb3VudE9mVG9wRnJhbWVSZWRpcmVjdHMgRlJP
TSBPYnNlcnZlZERvbWFpbnMgTEVGVCBKT0lOIChTRUxFQ1Qgc291cmNlRG9tYWluSUQsIENPVU5U
KCopIGFzIGNvdW50T2ZUb3BGcmFtZVJlZGlyZWN0cyBmcm9tIFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQgR1JPVVAgQlkgc291cmNlRG9tYWlu
SUQpIGFzIHogT04gei5zb3VyY2VEb21haW5JRCA9IGRvbWFpbklEIl9zKTsKKwogICAgIGlmIChz
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAgICAgICAgcmV0dXJuIHJlc3VsdHM7
CiAgICAgCkBAIC0yMjY4LDYgKzIzMDksNyBAQCBWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OkRvbWFpbkRhdGE+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYQogICAg
ICAgICAgICAgLCBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDMpID8gdHJ1ZSA6IGZhbHNlCiAgICAg
ICAgICAgICAsIHN0YXRlbWVudC5nZXRDb2x1bW5JbnQoNCkgPyB0cnVlIDogZmFsc2UKICAgICAg
ICAgICAgICwgc3RhdGVtZW50LmdldENvbHVtbkludCg1KSA/IHRydWUgOiBmYWxzZQorICAgICAg
ICAgICAgLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RhdGVtZW50LmdldENvbHVtbkludCg2KSkK
ICAgICAgICAgfSk7CiAgICAgfQogICAgIApAQCAtMjM4MCw2ICsyNDIyLDE5IEBAIGJvb2wgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbEJ1dENvb2tp
ZXNGb3IoY29uc3QgRG9tCiAgICAgcmV0dXJuIGlzUmVtb3ZhbEVuYWJsZWQgJiYgIWlzUmVzb3Vy
Y2VHcmFuZGZhdGhlcmVkICYmICFoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24o
cmVzb3VyY2VTdGF0aXN0aWMsIHdpbmRvdyk7CiB9CiAKK2Jvb2wgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcihEb21haW5E
YXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5n
KQoreworICAgIGlmICghaXNTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCgpIHx8IChz
aG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nICYmIHJlc291cmNlU3RhdGlzdGljLmdyYW5kZmF0
aGVyZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAocmVzb3VyY2VTdGF0aXN0
aWMudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dCA+IHBhcmFtZXRlcnMoKS5taW5pbXVtVG9wRnJhbWVSZWRpcmVjdHNGb3JTYW1lU2l0ZVN0cmlj
dEVuZm9yY2VtZW50KSB7CisgICAgICAgIGNsZWFyVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1Np
bmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudChyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJs
ZURvbWFpbiwgW10geyB9KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0
dXJuIGZhbHNlOworfQorCiBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJz
aXRlRGF0YUZvciBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVnaXN0cmFi
bGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IoKQogewogICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMjQwMyw5ICsyNDU4LDE1IEBAIFJlZ2lzdHJhYmxl
RG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzCiAgICAgICAgIGlmIChzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihz
dGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpKSB7CiAgICAgICAgICAgICB0
b0RlbGV0ZU9yUmVzdHJpY3RGb3IuZG9tYWluc1RvRGVsZXRlQWxsQ29va2llc0Zvci5hcHBlbmQo
c3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICAgICAgICAgIHRvRGVsZXRlT3JSZXN0
cmljdEZvci5kb21haW5zVG9EZWxldGVBbGxOb25Db29raWVXZWJzaXRlRGF0YUZvci5hcHBlbmQo
c3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKLSAgICAgICAgfSBlbHNlIGlmIChzaG91bGRS
ZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhl
cmluZykpIHsKLSAgICAgICAgICAgIHRvRGVsZXRlT3JSZXN0cmljdEZvci5kb21haW5zVG9EZWxl
dGVBbGxOb25Db29raWVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RhdGlzdGljLnJlZ2lzdHJhYmxl
RG9tYWluKTsKLSAgICAgICAgICAgIHNldElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJl
bW92YWwoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLCBmYWxzZSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0
aWMsIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpKSB7CisgICAgICAgICAgICAgICAgdG9E
ZWxldGVPclJlc3RyaWN0Rm9yLmRvbWFpbnNUb0RlbGV0ZUFsbE5vbkNvb2tpZVdlYnNpdGVEYXRh
Rm9yLmFwcGVuZChzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4pOworICAgICAgICAgICAgICAg
IHNldElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwoc3RhdGlzdGljLnJlZ2lz
dHJhYmxlRG9tYWluLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc2hv
dWxkRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFu
ZGZhdGhlcmluZykpIHsKKyAgICAgICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RGb3IuZG9t
YWluc1RvRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yLmFwcGVuZChzdGF0aXN0aWMucmVnaXN0cmFi
bGVEb21haW4pOworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYoZGVidWdMb2dn
aW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIlNjaGVkdWxlZCAlIiBQVUJMSUNfTE9HX1NUUklORyAi
IHRvIGhhdmUgaXRzIGNvb2tpZXMgc2V0IHRvIFNhbWVTaXRlPXN0cmljdC4iLCBzdGF0aXN0aWMu
cmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZENsZWFyR3JhbmRmYXRoZXJpbmcgJiYgc3Rh
dGlzdGljLmdyYW5kZmF0aGVyZWQpCiAgICAgICAgICAgICBkb21haW5JRHNUb0NsZWFyR3JhbmRm
YXRoZXJpbmcuYXBwZW5kKHN0YXRpc3RpYy5kb21haW5JRCk7CkBAIC0yNjk1LDYgKzI3NTYsNyBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXNvdXJjZVRvU3Ry
aW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZQogCiAgICAgLy8gVG9wIGZyYW1lIHN0YXRzCiAgICAg
YXBwZW5kU3ViU3RhdGlzdGljTGlzdChidWlsZGVyLCAiVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNU
byIsIGRvbWFpbik7CisgICAgYXBwZW5kU3ViU3RhdGlzdGljTGlzdChidWlsZGVyLCAiVG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudCIsIGRvbWFp
bik7CiAgICAgYXBwZW5kU3ViU3RhdGlzdGljTGlzdChidWlsZGVyLCAiVG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdHNGcm9tIiwgZG9tYWluKTsKICAgICBhcHBlbmRTdWJTdGF0aXN0aWNMaXN0KGJ1aWxk
ZXIsICJUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20iLCBkb21haW4pOwogICAgIGFwcGVuZFN1
YlN0YXRpc3RpY0xpc3QoYnVpbGRlciwgIlRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHMi
LCBkb21haW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaAppbmRleCA3ZmMwM2ZhZmZkNTI5M2NhZmJkMTAyZTM0MTRjNjdjMzAzNjBhY2M0
Li42MjMwYTJiNmEyMDJkMjdkZGU3NmM4NzVlZGY5YTc2ZTI0NTM4OGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMTI1LDkg
KzEyNSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVE
b21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
KT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZp
Z2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJv
bURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxh
eUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVk
QnlVc2VyKSBvdmVycmlkZTsKLSAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BG
cmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBsb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKGNvbnN0IE5hdmlnYXRlZEZy
b21Eb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYpIG92ZXJyaWRlOworICAgIHZvaWQg
Y2xlYXJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50KGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKIAorICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyVXNl
ckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICBib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIE9wZXJhdGluZ0RhdGVzV2luZG93KSBvdmVycmlkZTsKIApA
QCAtMTc4LDYgKzE3OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgaGFkVXNlckludGVyYWN0
aW9uOwogICAgICAgICBib29sIGdyYW5kZmF0aGVyZWQ7CiAgICAgICAgIGJvb2wgaXNTY2hlZHVs
ZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDsKKyAgICAgICAgdW5zaWduZWQgdG9wRnJhbWVV
bmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudDsKICAgICB9Owog
ICAgIFZlY3RvcjxEb21haW5EYXRhPiBkb21haW5zKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNIYWRV
bmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oY29uc3QgRG9tYWluRGF0YSYsIE9wZXJhdGlu
Z0RhdGVzV2luZG93KTsKQEAgLTIxNSw2ICsyMTcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6cGFp
cjxBZGRlZFJlY29yZCwgT3B0aW9uYWw8dW5zaWduZWQ+PiBlbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIFdBUk5fVU5V
U0VEX1JFVFVSTjsKICAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0
IERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpOwogICAgIGJv
b2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0Zvcihjb25zdCBEb21haW5EYXRhJiwgYm9vbCBz
aG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKTsKKyAgICBib29sIHNob3VsZEVuZm9yY2VTYW1l
U2l0ZVN0cmljdEZvcihEb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKTsKICAgICBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0
YUZvciByZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvcigp
IG92ZXJyaWRlOwogICAgIGJvb2wgaXNEYXRhYmFzZVN0b3JlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmUuY3BwCmluZGV4IGVhOTE2OTE1ZWY1MGFhN2NkYTQ3ZWMzMDM5NjZiZjQ3NGVhZDYx
MWMuLjA1MjgwZjE4NTFhZDk2NGU1YjNhZjgxMDc4NmI4OTRjNWIwNzE2NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCkBAIC00NzQs
NiArNDc0LDkgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmxvZ0Zy
YW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWEKICAgICAgICAgICAgIGlmIChpc1Jl
ZGlyZWN0IHx8IHdhc05hdmlnYXRlZEFmdGVyU2hvcnREZWxheVdpdGhvdXRVc2VySW50ZXJhY3Rp
b24pIHsKICAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3RpbmdEb21haW5TdGF0aXN0aWNzLnRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8uYWRkKHRhcmdldERvbWFpbikuaXNOZXdFbnRyeSkKICAg
ICAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBpZiAocmVkaXJlY3RpbmdEb21haW5TdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQuYWRkKHRhcmdldERvbWFpbiku
aXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPX0lGKGRlYnVnTG9nZ2luZ0Vu
YWJsZWQoKSwgSVRQRGVidWcsICJEaWQgc2V0ICUiIFBVQkxJQ19MT0dfU1RSSU5HICIgYXMgbWFr
aW5nIGEgdG9wIGZyYW1lIHJlZGlyZWN0IHRvICUiIFBVQkxJQ19MT0dfU1RSSU5HICIuIiwgc291
cmNlRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRhcmdldERvbWFpbi5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgICAgICBhdXRvJiB0YXJnZXRTdGF0aXN0aWNzID0g
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWlu
KTsKICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0U3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20uYWRkKHNvdXJjZURvbWFpbikuaXNOZXdFbnRyeSkKICAgICAgICAgICAgICAg
ICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKQEAgLTcxMiw2ICs3MTUsNyBAQCB2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdFRvKGNvbnN0IFRvcEZyYQogCiAgICAgYXV0byYgc3RhdGlzdGljcyA9IGVuc3VyZVJl
c291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRvcEZyYW1lRG9tYWluKTsKICAg
ICBzdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8uYWRkKHJlZGlyZWN0RG9tYWlu
KTsKKyAgICBzdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRl
U3RyaWN0RW5mb3JjZW1lbnQuYWRkKHJlZGlyZWN0RG9tYWluKTsKICAgICAvLyBGb3IgY29uc2lz
dGVuY3ksIG1ha2Ugc3VyZSB3ZSBhbHNvIGhhdmUgYSBzdGF0aXN0aWNzIGVudHJ5IGZvciB0aGUg
cmVkaXJlY3QgZG9tYWluLgogICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJh
YmxlRG9tYWluKHJlZGlyZWN0RG9tYWluKTsKIH0KQEAgLTk0Myw2ICs5NDcsMTkgQEAgYm9vbCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNob3VsZFJlbW92ZUFsbEJ1dENvb2tp
ZXNGb3IoUmVzb3VyY2VMb2EKICAgICByZXR1cm4gaXNSZW1vdmFsRW5hYmxlZCAmJiAhaXNSZXNv
dXJjZUdyYW5kZmF0aGVyZWQgJiYgIWhhc0hhZFVuZXhwaXJlZFJlY2VudFVzZXJJbnRlcmFjdGlv
bihyZXNvdXJjZVN0YXRpc3RpYywgd2luZG93KTsKIH0KIAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OnNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcihSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0Zvckdy
YW5kZmF0aGVyaW5nKQoreworICAgIGlmICghaXNTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5h
YmxlZCgpIHx8IChzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nICYmIHJlc291cmNlU3RhdGlz
dGljLmdyYW5kZmF0aGVyZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAocmVz
b3VyY2VTdGF0aXN0aWMudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudC5zaXplKCkgPiBwYXJhbWV0ZXJzKCkubWluaW11bVRvcEZyYW1lUmVkaXJl
Y3RzRm9yU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudCkgeworICAgICAgICByZXNvdXJjZVN0YXRp
c3RpYy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50LmNsZWFyKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBm
YWxzZTsKK30KKwogUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURh
dGFGb3IgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZWdpc3RyYWJsZURvbWFp
bnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvcigpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CkBAIC05NjEsOSArOTc4LDE2IEBAIFJlZ2lzdHJhYmxlRG9tYWluc1Rv
RGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTCiAgICAgICAgIGlmIChzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihzdGF0aXN0aWMs
IHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpKSB7CiAgICAgICAgICAgICB0b0RlbGV0ZU9y
UmVzdHJpY3RGb3IuZG9tYWluc1RvRGVsZXRlQWxsQ29va2llc0Zvci5hcHBlbmQoc3RhdGlzdGlj
LnJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICAgICAgICAgIHRvRGVsZXRlT3JSZXN0cmljdEZvci5k
b21haW5zVG9EZWxldGVBbGxOb25Db29raWVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RhdGlzdGlj
LnJlZ2lzdHJhYmxlRG9tYWluKTsKLSAgICAgICAgfSBlbHNlIGlmIChzaG91bGRSZW1vdmVBbGxC
dXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpIHsK
LSAgICAgICAgICAgIHRvRGVsZXRlT3JSZXN0cmljdEZvci5kb21haW5zVG9EZWxldGVBbGxOb25D
b29raWVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsK
LSAgICAgICAgICAgIHN0YXRpc3RpYy5nb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNv
dXJjZSA9IGZhbHNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHNob3VsZFJl
bW92ZUFsbEJ1dENvb2tpZXNGb3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKSkgeworICAgICAgICAgICAgICAgIHRvRGVsZXRlT3JSZXN0cmljdEZvci5kb21haW5zVG9E
ZWxldGVBbGxOb25Db29raWVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RhdGlzdGljLnJlZ2lzdHJh
YmxlRG9tYWluKTsKKyAgICAgICAgICAgICAgICBzdGF0aXN0aWMuZ290TGlua0RlY29yYXRpb25G
cm9tUHJldmFsZW50UmVzb3VyY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChzaG91bGRFbmZvcmNlU2FtZVNpdGVTdHJpY3RGb3Ioc3RhdGlzdGljLCBzaG91bGRDaGVj
a0ZvckdyYW5kZmF0aGVyaW5nKSkgeworICAgICAgICAgICAgICAgIHRvRGVsZXRlT3JSZXN0cmlj
dEZvci5kb21haW5zVG9FbmZvcmNlU2FtZVNpdGVTdHJpY3RGb3IuYXBwZW5kKHN0YXRpc3RpYy5y
ZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihk
ZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiU2NoZWR1bGVkICUiIFBVQkxJQ19MT0df
U1RSSU5HICIgdG8gaGF2ZSBpdHMgY29va2llcyBzZXQgdG8gU2FtZVNpdGU9c3RyaWN0LiIsIHN0
YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKHNob3VsZENsZWFyR3JhbmRmYXRo
ZXJpbmcgJiYgc3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKaW5kZXggNWM4YTQ2ZGNhMzNmYTIzM2VkNmMx
ZDk4YWU2NDViMzg4NjkzNDBkNy4uOGQ2NzY2NGUwMGQ2YjMxYzc0MWY4NzI4MjQxYTdjODZkOTMy
ZDYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmUuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNIYWRVbmV4cGly
ZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIE9wZXJhdGlu
Z0RhdGVzV2luZG93KSBjb25zdDsKICAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRh
Rm9yKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRo
ZXJpbmcpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBj
b25zdDsKKyAgICBib29sIHNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcihSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKTsKICAgICB2
b2lkIGluY3JlbWVudFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVnaXN0
cmFibGVEb21haW4+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2Uo
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwogICAgIHVu
c2lnbmVkIHJlY3Vyc2l2ZWx5R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhpc0Rv
bWFpbihjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgSGFzaFNldDxSZWRpcmVjdGVkVG9E
b21haW4+JiwgdW5zaWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscykgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggZTcwNjM1NDJmMDA1ZmRhNzE3
ZjlhNDVhNDk1MTFmNjUzMjlmNWZmYy4uNDc4MTRmMzk1ZTg5ODM0ZTIyODgwM2I3MmVlNWY4YmY2
ZjEzZGJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAt
MTY1LDYgKzE2NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9y
RGVidWdNb2RlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CiAgICAgdm9pZCBzZXRUaGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlKFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01v
ZGUgbW9kZSkgeyBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSBtb2RlOyB9OwogICAg
IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZTsgfTsKKyAgICB2b2lkIHNldFNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkKFdlYkNv
cmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQpIHsgbV9zYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCA9IGVuYWJsZWQ7IH07CisgICAgYm9vbCBpc1NhbWVT
aXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50RW5hYmxlZCA9PSBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50RW5hYmxlZDo6WWVzOyB9OwogICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGUoV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgbW9kZSkg
eyBtX2ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlID0gbW9kZTsgfQogCiAgICAgdmly
dHVhbCBib29sIGFyZUFsbFRoaXJkUGFydHlDb29raWVzQmxvY2tlZFVuZGVyKGNvbnN0IFRvcEZy
YW1lRG9tYWluJikgPSAwOwpAQCAtMjI1LDYgKzIyNyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
U2Vjb25kcyBtaW5EZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkVG9Ob3RCZUFSZWRpcmVj
dCB7IDVfcyB9OwogICAgICAgICBib29sIHNob3VsZE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQgeyBmYWxzZSB9OwogICAgICAgICBib29sIHNob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsIHsgdHJ1ZSB9OworICAgICAgICBzaXplX3QgbWlu
aW11bVRvcEZyYW1lUmVkaXJlY3RzRm9yU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudCB7IDEwIH07
CiAgICAgICAgIGJvb2wgc2hvdWxkU3VibWl0VGVsZW1ldHJ5IHsgdHJ1ZSB9OwogICAgICAgICBi
b29sIGlzUnVubmluZ1Rlc3QgeyBmYWxzZSB9OwogICAgIH07CkBAIC0yNzgsNiArMjgxLDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fZGVidWdMb2dnaW5nRW5hYmxlZCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2RlYnVnTW9kZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OlRoaXJkUGFy
dHlDb29raWVCbG9ja2luZ01vZGUgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHsgV2Vi
Q29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTo6QWxsIH07CisgICAgV2ViQ29yZTo6
U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgbV9zYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50RW5hYmxlZCB7IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOjpO
byB9OwogICAgIGJvb2wgbV9kYXRhUmVjb3Jkc0JlaW5nUmVtb3ZlZCB7IGZhbHNlIH07CiAgICAg
U2hvdWxkSW5jbHVkZUxvY2FsaG9zdCBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3QgeyBTaG91bGRJ
bmNsdWRlTG9jYWxob3N0OjpZZXMgfTsKICAgICBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURh
dGFSZW1vdmFsTW9kZSBtX2ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIHsgV2ViQ29y
ZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU6OkFsbEJ1dENvb2tpZXMgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggMjM2
ZGY2NjRlMmM5Y2VkOGExNmIxOGZiZDhiZjEyOTNkMDliNDliNi4uMDhlZGU2YzdjM2M0MTJjZjcz
MzQyMzRlYTY0NzliOTEwYWYxMDQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTU5OSw2ICs1OTksMjEgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoVGhp
cmRQYXJ0eUMKICAgICB9KTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNldFNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkKFNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkIGVuYWJsZWQpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKKworICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0
VGFzayhbdGhpcywgZW5hYmxlZF0oKSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPnNldFNh
bWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkKGVuYWJsZWQpOworICAgIH0pOworfQorCiB2
b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Rmlyc3RQYXJ0eVdlYnNpdGVE
YXRhUmVtb3ZhbE1vZGUoRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgbW9kZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmgKaW5kZXggY2M0ZTdhZDc1OTEyOTc4YzYyZjg5YmU4MjI0MzQ0NzM4MTQ0MzE5
NS4uMzViODMwMzc5MDZiYTY2YzQ3ZWFlMTQ0NmYwYmFlMGM0ZGFhYjE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtODAsOCArODAsOSBAQCBz
dHJ1Y3QgUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3Ig
ewogICAgIFZlY3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1RvRGVsZXRl
QWxsQ29va2llc0ZvcjsKICAgICBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRv
bWFpbnNUb0RlbGV0ZUFsbEJ1dEh0dHBPbmx5Q29va2llc0ZvcjsKICAgICBWZWN0b3I8V2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNUb0RlbGV0ZUFsbE5vbkNvb2tpZVdlYnNpdGVE
YXRhRm9yOwotICAgIFJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVE
YXRhRm9yIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgZG9tYWluc1RvRGVsZXRlQWxs
Q29va2llc0Zvci5pc29sYXRlZENvcHkoKSwgZG9tYWluc1RvRGVsZXRlQWxsQnV0SHR0cE9ubHlD
b29raWVzRm9yLmlzb2xhdGVkQ29weSgpLCBkb21haW5zVG9EZWxldGVBbGxOb25Db29raWVXZWJz
aXRlRGF0YUZvci5pc29sYXRlZENvcHkoKSB9OyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gZG9tYWluc1RvRGVsZXRlQWxsQ29va2llc0Zvci5pc0VtcHR5KCkgJiYgZG9tYWlu
c1RvRGVsZXRlQWxsQnV0SHR0cE9ubHlDb29raWVzRm9yLmlzRW1wdHkoKSAmJiBkb21haW5zVG9E
ZWxldGVBbGxOb25Db29raWVXZWJzaXRlRGF0YUZvci5pc0VtcHR5KCk7IH0KKyAgICBWZWN0b3I8
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNUb0VuZm9yY2VTYW1lU2l0ZVN0cmlj
dEZvcjsKKyAgICBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0
YUZvciBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGRvbWFpbnNUb0RlbGV0ZUFsbENv
b2tpZXNGb3IuaXNvbGF0ZWRDb3B5KCksIGRvbWFpbnNUb0RlbGV0ZUFsbEJ1dEh0dHBPbmx5Q29v
a2llc0Zvci5pc29sYXRlZENvcHkoKSwgZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0
ZURhdGFGb3IuaXNvbGF0ZWRDb3B5KCksIGRvbWFpbnNUb0VuZm9yY2VTYW1lU2l0ZVN0cmljdEZv
ci5pc29sYXRlZENvcHkoKSB9OyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4g
ZG9tYWluc1RvRGVsZXRlQWxsQ29va2llc0Zvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRGVsZXRl
QWxsQnV0SHR0cE9ubHlDb29raWVzRm9yLmlzRW1wdHkoKSAmJiBkb21haW5zVG9EZWxldGVBbGxO
b25Db29raWVXZWJzaXRlRGF0YUZvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRW5mb3JjZVNhbWVT
aXRlU3RyaWN0Rm9yLmlzRW1wdHkoKTsgfQogfTsKIAogY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4gewpA
QCAtMjc0LDYgKzI3NSw3IEBAIHN0cnVjdCBUaGlyZFBhcnR5RGF0YSB7CiAKICAgICB2b2lkIGhh
c0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIHNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoV2Vi
Q29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSk7CisgICAgdm9pZCBzZXRTYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZChXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50RW5hYmxlZCk7CiAgICAgdm9pZCBzZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9k
ZShXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5k
ZXggYjUwM2E3N2QyZjhkMDhhMWM5MGQyMTZiYjk2MjhlNzA0YjlkYmJlMC4uZjBjODg5ODlkZTJl
MzA5Mzc5MmI4MmJkYjY2MGM1NWUwZjUyYWU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTEyOTQsNiArMTI5NCwxNSBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCBzZQogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmlj
dEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhp
cy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKKyAgICAgICAgbmV0d29ya1Nlc3Npb24tPnNl
dFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudChlbmFibGVkKTsKKyAgICBlbHNl
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIG1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24g
PSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggOWY3YTdmOWU0M2Q3YmVmYzM1ZjNj
NmViMDc0MzRhOWI0NmRkMmExMS4uZWQ1ZTExZmNiMDYxZjZlY2IzYmZiZDg3Y2U4M2VmMjU3NTYz
MzEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtMjY1LDYgKzI2NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzSVRQRGF0YWJhc2VFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0lUUERhdGFiYXNlRW5hYmxlZDsgfQogICAgIHZvaWQg
c2V0U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKGJvb2wsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVz
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFNob3Vs
ZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQs
IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3Zh
bE1vZGVGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0
ZURhdGFSZW1vdmFsTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA3OWM4NzU2MTA0MmE0MWZlODkzMDE0ODdk
NDU3ZjkxMWE4NjcxYTY4Li5kZmQ2MjQ0MjQ5Y2NmYjA4ZGFjYzA3YmI2YjE1NzYzOGM4YWUwYTRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE0MCw2ICsxNDAsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgSGFzSXNvbGF0ZWRTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAo
Ym9vbCBoYXNJc29sYXRlZFNlc3Npb24pIEFzeW5jCiAgICAgU2V0U2hvdWxkRG93bmdyYWRlUmVm
ZXJyZXJGb3JUZXN0aW5nKGJvb2wgZW5hYmxlZCkgLT4gKCkgQXN5bmMKICAgICBTZXRTaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIGJsb2Nr
aW5nTW9kZSkgLT4gKCkgQXN5bmMKKyAgICBTZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgZW51bTpib29sIFdl
YkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQpIC0+ICgpIEFz
eW5jCiAgICAgU2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlIG1vZGUpIC0+ICgpIEFzeW5jCiAgICAgU2V0VG9TYW1lU2l0
ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoKSBBc3luYwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDc0OGJk
ODRmNjQ3ODU3NDM5ODZiYWZiZjI4ZDc1N2M2NDg4YjI5ZTYuLjZjMjRjNThlNmI2YTBjZTY4YjA1
MTcyNTI4NjM5ZDRiMWJiMjhlY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC04Niw2ICs4Niw3IEBAIE5ldHdvcmtTZXNzaW9uOjpO
ZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdv
cmtTZXNzCiAgICAgLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNv
dXJjZShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLm1hbnVhbFBy
ZXZhbGVudFJlc291cmNlKQogICAgICwgbV9lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTG9n
VGVzdGluZ0V2ZW50KHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMu
ZW5hYmxlTG9nVGVzdGluZ0V2ZW50KQogICAgICwgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdN
b2RlKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMudGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZSkKKyAgICAsIG1fc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVu
YWJsZWQocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5zYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCkKICAgICAsIG1fZmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGUocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5m
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSkKICNlbmRpZgogICAgICwgbV9hZENsaWNr
QXR0cmlidXRpb24obWFrZVVuaXF1ZVJlZjxBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyPihuZXR3
b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQpKQpAQCAtMjAwLDYgKzIwMSw3IEBAIHZv
aWQgTmV0d29ya1Nlc3Npb246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpmb3J3YXJkUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1NldHRpbmdzKCkKIHsKICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MtPnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUobV90aGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlKTsKKyAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkKG1fc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQp
OwogICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGUobV9maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSwgW10geyB9KTsK
IH0KIApAQCAtMjI1LDYgKzIyNywxMiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpub3RpZnlQYWdl
U3RhdGlzdGljc1RlbGVtZXRyeUZpbmlzaGVkKHVuc2lnbmVkIG51bWJlck9mUHJldgogCiB2b2lk
IE5ldHdvcmtTZXNzaW9uOjpkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFi
bGVEb21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgUmVnaXN0cmFi
bGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3ImJiBkb21haW5zLCBib29s
IHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFzaFNldDxS
ZWdpc3RyYWJsZURvbWFpbj4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoYXV0
byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkgeworICAgICAgICBm
b3IgKGF1dG8mIGRvbWFpbiA6IGRvbWFpbnMuZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRlU3RyaWN0
Rm9yKQorICAgICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnNldEFsbENvb2tpZXNUb1NhbWVTaXRl
U3RyaWN0KGRvbWFpbiwgW10geyB9KTsKKyAgICB9CisgICAgZG9tYWlucy5kb21haW5zVG9FbmZv
cmNlU2FtZVNpdGVTdHJpY3RGb3IuY2xlYXIoKTsKKwogICAgIG1fbmV0d29ya1Byb2Nlc3MtPmRl
bGV0ZUFuZFJlc3RyaWN0V2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMobV9zZXNzaW9u
SUQsIGRhdGFUeXBlcywgV1RGTW92ZShkb21haW5zKSwgc2hvdWxkTm90aWZ5UGFnZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCkBAIC0yNTAsNiArMjU4LDE0IEBAIHZvaWQgTmV0
d29ya1Nlc3Npb246OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoVGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nTW9kCiAgICAgaWYgKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICAg
ICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdN
b2RlKGJsb2NraW5nTW9kZSk7CiB9CisKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnNldFNob3VsZEVu
YmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudChXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9y
Y2VtZW50RW5hYmxlZCBlbmFibGVkKQoreworICAgIEFTU0VSVChtX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MpOworICAgIG1fc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBlbmFibGVk
OworICAgIGlmIChtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MpCisgICAgICAgIG1fcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+c2V0U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQoZW5hYmxl
ZCk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIAogdm9p
ZCBOZXR3b3JrU2Vzc2lvbjo6c3RvcmVBZENsaWNrQXR0cmlidXRpb24oV2ViQ29yZTo6QWRDbGlj
a0F0dHJpYnV0aW9uJiYgYWRDbGlja0F0dHJpYnV0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGM5YTE3ZGExMDJjZGU2ZDVhMjQ1ZGQ1
YmY0ZTdiYTNiYjFlNTc4YTEuLjQ2MzQyOTM1Mzc3MTExYWViYjI4NDdkY2E4MGRkZTViNDk3MmYy
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgK
QEAgLTEwNCw2ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGREb3duZ3JhZGVS
ZWZlcnJlckZvclRlc3RpbmcoYm9vbCk7CiAgICAgYm9vbCBzaG91bGREb3duZ3JhZGVSZWZlcnJl
cigpIGNvbnN0OwogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShXZWJD
b3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKTsKKyAgICB2b2lkIHNldFNob3VsZEVu
YmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudChXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9y
Y2VtZW50RW5hYmxlZCk7CiAjZW5kaWYKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaGFzQXBwQm91
bmRTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTE2MSw2ICsxNjIsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0
aW5nRXZlbnQ7CiAgICAgYm9vbCBtX2Rvd25ncmFkZVJlZmVycmVyIHsgdHJ1ZSB9OwogICAgIFdl
YkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgbV90aGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlIHsgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTo6QWxsIH07
CisgICAgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgbV9zYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCB7IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnRFbmFibGVkOjpObyB9OwogICAgIFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJl
bW92YWxNb2RlIG1fZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgeyBXZWJDb3JlOjpG
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTo6QWxsQnV0Q29va2llcyB9OwogI2VuZGlm
CiAgICAgYm9vbCBtX2lzU3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkIHsgZmFsc2UgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDI5OTI4MDY0M2Q0Njg3
MzgzOTQ2YTBlNDQzNzM0MDgxMmNkZmQ2YjguLjQ0NDRmMzFmN2U4YmM0ODZhNzJkNGE4OGU1ZTI1
MmUxYmM2MTExYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpA
QCAtNjI4LDYgKzYyOCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAn
V2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZSc6IFsnPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSc6IFsnPFdlYkNvcmUvVGV4dElu
ZGljYXRvci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZSc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10sCisgICAgICAgICdX
ZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCc6IFsnPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZSc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpVc2VkTGVnYWN5VExTJzogWyc8V2ViQ29yZS9SZXNvdXJj
ZVJlc3BvbnNlQmFzZS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVz
JzogWyc8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmgKaW5kZXgg
ZWFiMThhNDYwYjEzMzRhNzlmMTZhMGM3YTQ4NTkzNWViMWQzNzNjNC4uZjQ5NzYwOTM1ODdlNGI4
ZmIzZDViYTA5ZmY5YjljMDRlM2QyZjhlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5oCkBAIC00NCw2ICs0NCw3
IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyB7CiAgICAgYm9vbCBl
bmFibGVEZWJ1Z01vZGUgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCiAgICAgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB0aGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlIHsgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZTo6QWxsIH07CisgICAgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJs
ZWQgc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgeyBXZWJDb3JlOjpTYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6Tm8gfTsKICNlbmRpZgogICAgIFdlYkNvcmU6OkZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIGZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlIHsgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU6OkFsbEJ1dENv
b2tpZXMgfTsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBtYW51YWxQcmV2YWxlbnRS
ZXNvdXJjZSB7IH07CkBAIC01OSw2ICs2MCw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVycyB7CiAgICAgICAgIGVuY29kZXIgPDwgZW5hYmxlRGVidWdNb2RlOwogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgICAgIGVuY29kZXIgPDwgdGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKKyAgICAgICAgZW5jb2RlciA8PCBzYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50RW5hYmxlZDsKICNlbmRpZgogICAgICAgICBlbmNvZGVyIDw8IGZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlOwogICAgICAgICBlbmNvZGVyIDw8IG1hbnVhbFBy
ZXZhbGVudFJlc291cmNlOwpAQCAtMTA2LDYgKzEwOCwxMSBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnMgewogICAgICAgICBkZWNvZGVyID4+IHRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGU7CiAgICAgICAgIGlmICghdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8
V2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ+IHNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRFbmFibGVkOworICAgICAgICBkZWNvZGVyID4+IHNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkOworICAgICAgICBpZiAoIXNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRF
bmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgogCiAgICAg
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlPiBm
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKQEAgLTEyOCw2ICsxMzUsNyBAQCBzdHJ1
Y3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgewogICAgICAgICAgICAgV1RGTW92
ZSgqZW5hYmxlRGVidWdNb2RlKSwKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQogICAgICAgICAgICAgV1RGTW92ZSgqdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSksCisg
ICAgICAgICAgICBXVEZNb3ZlKCpzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCksCiAj
ZW5kaWYKICAgICAgICAgICAgIFdURk1vdmUoKmZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlKSwKICAgICAgICAgICAgIFdURk1vdmUoKm1hbnVhbFByZXZhbGVudFJlc291cmNlKSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGFhMjk2OWYxYzlmYWE2
YTNkYzZlMjliZjQxNWVjMzkxNWZjZWJhNDIuLmM2ZmRkYjYxMjBmMmM5NThiMzAyMTU1MjIyMGI4
OTkxZmFiMzIyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApA
QCAtMTkyOCw2ICsxOTI4LDEzIEBAIElzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbFJlcHJv
VGVzdGluZ0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlJlbW92ZSBhbGwg
bm9uLWNvb2tpZSB3ZWJzaXRlIGRhdGEgYWZ0ZXIganVzdCAzMCBzZWNvbmRzIG9mIG5vIHVzZXIg
aW50ZXJhY3Rpb24gd2hlbiBJbnRlbGxpZ2VudCBUcmFja2luZyBQcmV2ZW50aW9uIGlzIGVuYWJs
ZWQiCiAgIGNhdGVnb3J5OiBpbnRlcm5hbAogCitJc1NhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJTYW1lU2l0ZSBzdHJpY3QgZW5mb3JjZW1lbnQgKElUUCkiCisgIGh1bWFuUmVh
ZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBTYW1lU2l0ZSBzdHJpY3QgZW5mb3JjZW1lbnQgdG8g
bWl0aWdhdGUgYm91bmNlIHRyYWNraW5nIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisKIElz
TG9nZ2VkSW5BUElFbmFibGVkOgogICAgIHR5cGU6IGJvb2wKICAgICBkZWZhdWx0VmFsdWU6IGZh
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAppbmRleCA5
ZDk3YjgyZTZlYTk5ZTdhMzFjMjY1NGQ1M2Q1M2I2N2ZkYjg4ZDJlLi44OGIxZjU2ZDBlZjExNWIy
ZmNmNDY3OGZhYTZhYmQ0OTFmOTZjZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElOYXZpZ2F0aW9uLmgKQEAgLTE1Niw2ICsxNTYsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldEZvcmVncm91bmRBY3Rpdml0eShzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpQcm9jZXNzVGhy
b3R0bGVyOjpGb3JlZ3JvdW5kQWN0aXZpdHk+JiYgYWN0aXZpdHkpIHsgbV9mb3JlZ3JvdW5kQWN0
aXZpdHkgPSBXVEZNb3ZlKGFjdGl2aXR5KTsgfQogCisgICAgdm9pZCBzZXRJc0xvYWRlZFdpdGhO
YXZpZ2F0aW9uU2hhcmVkKGJvb2wgdmFsdWUpIHsgbV9pc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hh
cmVkID0gdmFsdWU7IH0KKyAgICBib29sIGlzTG9hZGVkV2l0aE5hdmlnYXRpb25TaGFyZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzTG9hZGVkV2l0aE5hdmlnYXRpb25TaGFyZWQ7IH0KKwogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBOYXZpZ2F0aW9uKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0YXRlJik7
CiAgICAgTmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGZyb21JdGVt
KTsKQEAgLTE3OCw2ICsxODEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VyQ29udGVudEV4
dGVuc2lvbnNFbmFibGVkIHsgdHJ1ZSB9OwogICAgIFdlYktpdDo6V2ViQ29udGVudE1vZGUgbV9l
ZmZlY3RpdmVDb250ZW50TW9kZSB7IFdlYktpdDo6V2ViQ29udGVudE1vZGU6OlJlY29tbWVuZGVk
IH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6Rm9yZWdy
b3VuZEFjdGl2aXR5PiBtX2ZvcmVncm91bmRBY3Rpdml0eTsKKyAgICBib29sIG1faXNMb2FkZWRX
aXRoTmF2aWdhdGlvblNoYXJlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwCmluZGV4IDk3YWZjYWI2ODU3MmYxOTRjODk3MjlmZDI2OGM4NTg5YjcyNmEw
MGIuLjY1NzZlNmY3OGU0NzVlMjU2OWZjMzk3MzI1MWE1Zjg2NThlZTM4YzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmNwcApAQCAtNjA2LDYgKzYwNiw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhCiAgICAgc3Rv
cmUucmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoW2NhbGxi
YWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CiAgICAg
c3RvcmUuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJlZmVycmVyRm9y
VGVzdGluZyh0cnVlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNv
cHlSZWYoKV0geyB9KTsKICAgICBzdG9yZS5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxk
QmxvY2tUaGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoZmFsc2UsIGZhbHNlLCBbY2FsbGJhY2tB
Z2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKKyAgICBzdG9y
ZS5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9y
Y2VtZW50Rm9yVGVzdGluZyh0cnVlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dy
ZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKICAgICBzdG9yZS5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKGZhbHNlLCBbY2Fs
bGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKICAg
ICBzdG9yZS5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoW2NhbGxiYWNrQWdncmVnYXRv
ciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CiAgICAgc3RvcmUuc2NoZWR1
bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChXZWJLaXQ6OlNob3VsZEdyYW5kZmF0aGVyU3Rh
dGlzdGljczo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29w
eVJlZigpXSB7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZjk4NTU4OWQyOTIxY2VlNjg3YzA3NDUz
YTczNDllNjk5OTdmNmNkMS4uZjg1ZTk4YjYxYzYwODRjM2RhN2ExNjI1NWUxMDEzNTM1ZjgxMTkz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTU2LDYgKzExNTYsMTEgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyhQQUw6
OlNlc3Npb24KICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyhzZXNzaW9uSUQsIGJs
b2NraW5nTW9kZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZv
clRlc3Rpbmcoc2Vzc2lvbklELCBlbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0
YVJlbW92YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZpcnN0UGFy
dHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIG1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKaW5kZXggMjQwYzM1NzFlMTM3ODI4Zjg1YThhMmI1NTliZDM1ZWFiOTkxNWE5NC4uYWVm
YzQ2MGVlZjFlMzBjM2QwMDZiYTRjZWE2MDEwM2NlMGFlMDA0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE3
Myw2ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBoYXNJc29sYXRlZFNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3Rp
bmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3Vs
ZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3Jl
OjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHZvaWQgc2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdl
YkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IGQzNTIwMTVhYTk5ZTdkNjU5OGUwZDcwZjViOGFiNzViYWZkNjZlZDQu
LjI2YzY5N2JhMTdhYjY3M2VhOGViNTE2YTEzNDUzNjhkMTM3ZmRjNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTMzMCw2ICsxMzMwLDggQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXMKIAogICAgIHByZWNvbm5lY3RUbyh1cmwpOwogCisgICAgbmF2aWdh
dGlvbi5zZXRJc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKHRydWUpOworCiAjaWYgSEFWRShT
QU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9LRU4pCiAg
ICAgaWYgKCFwcm9jZXNzLT5pc0xhdW5jaGluZygpIHx8ICF1cmwuaXNMb2NhbEZpbGUoKSkKICAg
ICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBh
cmFtZXRlcnMpLCB3ZWJQYWdlSUQpOwpAQCAtNTE2OCw4ICs1MTcwLDkgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXMKIAogICAgIGF1dG8gdXNlckluaXRpYXRlZEFjdGl2aXR5ID0gcHJvY2Vzcy0+
dXNlckluaXRpYXRlZEFjdGl2aXR5KG5hdmlnYXRpb25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9r
ZW5JZGVudGlmaWVyKTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAg
IGF1dG8gd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIgPSBuYXZpZ2F0aW9uLT5pc0xvYWRl
ZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKCkgfHwgdXNlckluaXRpYXRlZEFjdGl2aXR5OwogICAgIGlm
ICghc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgbG9nRnJhbWVOYXZpZ2F0aW9u
KGZyYW1lLCBVUkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGly
ZWN0UmVzcG9uc2UudXJsKCksICEhdXNlckluaXRpYXRlZEFjdGl2aXR5KTsKKyAgICAgICAgbG9n
RnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSks
IHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UudXJsKCksIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVk
QnlVc2VyKTsKICNlbmRpZgogCiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDI0NWY1ZWI5ZGVmODI2YjU2ZGI4
NDFkM2E4N2ZiNzRiMTFiNDE4ODkuLjI5NWE0OWU3YzVkNzA5YjZhMTdjMzcxOGU0YmJjOGY2MDY3
YzZjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTYwMCw2ICs2MDAsNyBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5z
dXJlTmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2l0aAogICAgIFdlYkNvcmU6OlRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA9
IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbDsKICNlbmRpZgogICAg
IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIGZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlID0gV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3Zh
bE1vZGU6OkFsbEJ1dENvb2tpZXM7CisgICAgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEVuYWJsZWQgc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBXZWJDb3JlOjpT
YW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6Tm87CiAgICAgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gbWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OwogICAgIFdFQl9QUk9DRVNT
X1BPT0xfQURESVRJT05TXzIKICAgICBpZiAod2l0aFdlYnNpdGVEYXRhU3RvcmUpIHsKQEAgLTYx
Myw2ICs2MTQsNyBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJl
TmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2l0aAogICAgICAgICAgICAgZW5hYmxl
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVEZWJ1Z01vZGU7CiAjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICAgICAgICAgIHRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGUgPSBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKKyAgICAg
ICAgICAgIHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkID0gbmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRFbmFibGVkOwogI2VuZGlmCiAgICAgICAgICAgICBmaXJzdFBhcnR5V2Vic2l0
ZURhdGFSZW1vdmFsTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGFyYW1ldGVycy5maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKICAg
ICAgICAgICAgIG1hbnVhbFByZXZhbGVudFJlc291cmNlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLm1hbnVhbFByZXZhbGVudFJlc291
cmNlOwpAQCAtNjM3LDYgKzYzOSw3IEBAIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQ
b29sOjplbnN1cmVOZXR3b3JrUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoCiAgICAgICAg
ICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlID0gbmV0d29ya1Nlc3Np
b25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmVuYWJsZURlYnVn
TW9kZTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgICAgICAgICAg
dGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy50aGlyZFBhcnR5Q29va2llQmxvY2tpbmdN
b2RlOworICAgICAgICAgICAgc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBuZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuc2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ7CiAjZW5kaWYKICAgICAgICAgICAgIGZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlOwogICAgICAgICAgICAgbWFudWFsUHJldmFsZW50UmVzb3VyY2UgPSBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMubWFudWFsUHJl
dmFsZW50UmVzb3VyY2U7CkBAIC02NzUsNiArNjc4LDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYg
V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdp
dGgKICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgICAgICB0aGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlLAorICAgICAgICBzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwK
ICNlbmRpZgogICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSwKICAgICAg
ICAgbWFudWFsUHJldmFsZW50UmVzb3VyY2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29j
b2EubW0KaW5kZXggMDE2ZDEyYzkwMWEwOGY2NWFmZWUwYmZjZGE2YWI3ZDBjOWUyODMwOS4uOTZm
ZjQ0YzUzZjc2MWJlNGFmOTM5ZDI2MjRlYmRlMGRiZTAxMjQ2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNp
dGVEYXRhU3RvcmVDb2NvYS5tbQpAQCAtOTksMTAgKzk5LDE1IEBAIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgIE5TVXNlckRlZmF1
bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107CiAg
ICAgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiA9IGZhbHNlOwogICAgIGJvb2wgZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IGZhbHNlOworICAgIGF1dG8gc2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50RW5hYmxlZDo6Tm87CiAgICAgYXV0byBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZSA9IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlOjpBbGxC
dXRDb29raWVzOwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlTG9hZFN0
YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSB7IH07CiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdN
b2RlID0gW2RlZmF1bHRzIGJvb2xGb3JLZXk6QCJJVFBEZWJ1Z01vZGUiXTsKKworICAgIGlmIChb
ZGVmYXVsdHMgYm9vbEZvcktleTpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkV4cGVyaW1l
bnRhbCVAIiwgV2ViUHJlZmVyZW5jZXNLZXk6OmlzU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVu
YWJsZWRLZXkoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpXV0pCisgICAgICAgIHNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkID0gV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dEVuYWJsZWQ6OlllczsKKwogICAgIGlmIChbZGVmYXVsdHMgYm9vbEZvcktleTpbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIkV4cGVyaW1lbnRhbCVAIiwgV2ViUHJlZmVyZW5jZXNLZXk6Omlz
Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbERpc2FibGVkS2V5KCkuY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKV1dKQogICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IFdl
YkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlOjpOb25lOwogICAgIGVsc2Ug
ewpAQCAtMTgxLDYgKzE4Niw3IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVE
YXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgICAgICBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLAogICAgICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWdNb2RlLAogICAgICAgICB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKCksCisg
ICAgICAgIHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLAogICAgICAgICBmaXJzdFBh
cnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSwKICAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UpLAogICAgIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CmluZGV4IDRhZThlZTk3NTQyZTIwNzQ0MDY0NjgyZTkyYmY0MDc4NTE5Njc1NjYuLmVkZTY3Mjll
YjVjOTBiYjNmMTE0MzJmZDJmZTRlZGRiNDQwYWFhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0x
ODQ3LDYgKzE4NDcsMTcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0ZvclQKICAgICB9CiB9CiAKK3Zv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEVuYmxl
U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoYm9vbCBlbmFibGVkLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBmbGFn
ID0gZW5hYmxlZCA/IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOjpZ
ZXMgOiBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6Tm87CisKKyAg
ICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDog
cHJvY2Vzc1Bvb2xzKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gcHJv
Y2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCisgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+
c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhtX3Nlc3Np
b25JRCwgZmxhZywgW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5
UmVmKCldIHsgfSk7CisgICAgfQorfQorCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3Rp
bmcoYm9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0
b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXgg
NDUzZDhmMWViN2NiN2Y1N2IwZmNhMTRjMTRkNzQwZDE1YTdkMjk4MS4uOGRlZDk3OGNlMWY2MTk5
MGIwYTFjYWQwYjY2YTk2MDk5ZDFhZjhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTk1LDYgKzE5NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhc0lzb2xhdGVkU2Vzc2lvbkZvclRlc3RpbmcoY29uc3Qg
VVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7CiAgICAgdm9pZCBz
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5n
KGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoYm9v
bCBlbmFibGVkLCBib29sIG9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKGJvb2wgZW5h
YmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3Rpbmco
Ym9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhj
b25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIFdlYkNvcmU6OlRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDNhZmMwOWIwYThlYjhlZWVhN2E0MzczNTIzYzMzMTE4MWIwY2VlOWMu
LjNhYTBkZjU3YmMwYWY5NzFlNWE3Y2YyMmE4OWVkNGMzZjg3ZTRlZDIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAyMC0wMy0zMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4K
KworICAgICAgICBFeHBlcmltZW50YWw6IEVuZm9yY2UgU2FtZVNpdGU9c3RyaWN0IGZvciBkb21h
aW5zIGNsYXNzaWZpZWQgYXMgYm91bmNlIHRyYWNrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3NjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU5Mzk0OTQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUt
c3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUt
cmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10
b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0
cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgICAgIE5l
dyB0ZXN0IGNhc2VzIG1hcmtlZCBhcyBwYXNzIGZvciBDYXRhbGluYSsgYmFzZWQgb24gQ0ZOZXR3
b3JrIEFQSSBhdmFpbGFiaWxpdHkuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAgICAgTmV3IHRlc3QgY2FzZXMgbWFya2VkIGFzIHBhc3MgZm9y
IENhdGFsaW5hKyBiYXNlZCBvbiBDRk5ldHdvcmsgQVBJIGF2YWlsYWJpbGl0eS4KKyAgICAgICAg
KiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgICAgIE5ldyB0ZXN0IGNh
c2VzIG1hcmtlZCBhcyBza2lwIGR1ZSB0byBDRk5ldHdvcmsgQVBJIGF2YWlsYWJpbGl0eS4KKwog
MjAyMC0wMy0zMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBzY3JvbGxJbnRvVmlldygpIGVycm9uZW91c2x5IHNjcm9sbHMgbm9uLWNvbnRhaW5pbmcg
YmxvY2sgc2Nyb2xsZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZy
YW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3Ry
aWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMDBiMTg1M2FkMzUxNzMzNmI4N2M3YzQzMDNmMDI3ZTQwMjdh
ZWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11
bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBA
CitUZXN0cyBmb3IgU2FtZVNpdGU9c3RyaWN0IGVuZm9yY2VtZW50IGJhc2VkIG9uIHRvcCBmcmFt
ZSB1bmlxdWUgcmVkaXJlY3RzIHRvLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBDb29raWUgd2FzIG5vdCBTYW1lU2l0ZT1zdHJpY3QgYmVmb3JlIHRlc3QuCitQQVNTIENv
b2tpZSB3YXMgU2FtZVNpdGU9c3RyaWN0IGFmdGVyIGZpcnN0IHRlc3QuCitQQVNTIENvb2tpZSB3
YXMgbm90IFNhbWVTaXRlPXN0cmljdCBhZnRlciBzZWNvbmQgdGVzdC4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1z
dHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNl
LXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYTMzMjMyMDdkZTk5YTY0MGE0MDA5ZGI1MDA3MDlj
Zjk3NDY3MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZy
YW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDk4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZv
ciBTYW1lU2l0ZT1zdHJpY3QgZW5mb3JjZW1lbnQgYmFzZWQgb24gdG9wIGZyYW1lIHVuaXF1ZSBy
ZWRpcmVjdHMgdG8uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBo
b3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJs
ID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgZnVuY3Rpb24gc2V0
TXVsdGlwbGVUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSkgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVk
aXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIik7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGlu
Z1BhcnR5LCAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHks
ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6
Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEyNy4w
LjAuNjo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJh
bWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC43Ojgw
MDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjg6ODAwMC90ZW1w
Iik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEyNy4wLjAuOTo4MDAwL3RlbXAiKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJl
ZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC4xMDo4MDAwL3RlbXAiKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0
aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC4xMTo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFy
dHksICJodHRwOi8vMTI3LjAuMC4xMjo4MDAwL3RlbXAiKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENv
b2tpZXMoKTsKKyAgICAgICAgaWYgKGNvb2tpZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBleGFjdGx5IG9uZSBjb29raWUgYmVmb3JlIHRlc3Qg
YnV0IGZvdW5kICIgKyBjb29raWVzLmxlbmd0aCArICIgY29va2llcy4iKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29va2llc1swXS5pc1NhbWVTaXRlU3RyaWN0
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIHdhcyBTYW1lU2l0ZT1zdHJpY3QgYWZ0
ZXIgc2Vjb25kIHRlc3QuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
IkNvb2tpZSB3YXMgbm90IFNhbWVTaXRlPXN0cmljdCBhZnRlciBzZWNvbmQgdGVzdC4iKTsKKwor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHNlY29uZFN0ZXAoKSB7CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJu
YWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKGNvb2tpZXMubGVuZ3RoICE9PSAxKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBleGFjdGx5IG9uZSBjb29raWUgYmVm
b3JlIHRlc3QgYnV0IGZvdW5kICIgKyBjb29raWVzLmxlbmd0aCArICIgY29va2llcy4iKTsKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKGNvb2tpZXNbMF0uaXNTYW1lU2l0ZVN0cmljdCkKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvb2tpZSB3YXMgU2FtZVNpdGU9c3RyaWN0IGFmdGVyIGZpcnN0IHRlc3Qu
Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSB3YXMgbm90
IFNhbWVTaXRlPXN0cmljdCBhZnRlciBmaXJzdCB0ZXN0LiIpOworCisgICAgICAgIC8vIFNldCB0
aGUgY29va2llIGFnYWluIHRvIHJlc2V0IGl0cyBTYW1lU2l0ZSBzdGF0dXMuCisgICAgICAgIGRv
Y3VtZW50LmNvb2tpZSA9ICJjbGllbnRTaWRlQ29va2llPTEiOworCisgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRl
c3QpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAg
ICBkb2N1bWVudC5jb29raWUgPSAiY2xpZW50U2lkZUNvb2tpZT0xIjsKKworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwg
dHJ1ZSk7CisKKyAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOwor
ICAgICAgICBpZiAoY29va2llcy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlNob3VsZCBoYXZlIGV4YWN0bHkgb25lIGNvb2tpZSBiZWZvcmUgdGVzdCBidXQgZm91bmQg
IiArIGNvb2tpZXMubGVuZ3RoICsgIiBjb29raWVzLiIpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChjb29raWVzWzBdLmlzU2FtZVNpdGVTdHJpY3QpCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJDb29raWUgd2FzIFNhbWVTaXRlPXN0cmljdCBiZWZvcmUgdGVzdC4i
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIHdhcyBub3Qg
U2FtZVNpdGU9c3RyaWN0IGJlZm9yZSB0ZXN0LiIpOworCisgICAgICAgIHNldE11bHRpcGxlVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhzZWNvbmRTdGVw
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09
IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykg
eworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuVGVzdCgp
OworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZv
cmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10
by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1y
ZWRpcmVjdHMtdG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwMGIxODUzYWQzNTE3MzM2Yjg3
YzdjNDMwM2YwMjdlNDAyN2FlZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFz
ZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIGZvciBTYW1lU2l0ZT1zdHJpY3QgZW5mb3JjZW1lbnQgYmFzZWQgb24g
dG9wIGZyYW1lIHVuaXF1ZSByZWRpcmVjdHMgdG8uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIENvb2tpZSB3YXMgbm90IFNhbWVTaXRlPXN0cmljdCBiZWZvcmUgdGVzdC4K
K1BBU1MgQ29va2llIHdhcyBTYW1lU2l0ZT1zdHJpY3QgYWZ0ZXIgZmlyc3QgdGVzdC4KK1BBU1Mg
Q29va2llIHdhcyBub3QgU2FtZVNpdGU9c3RyaWN0IGFmdGVyIHNlY29uZCB0ZXN0LgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNh
bWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Ut
c2FtZXNpdGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjVlZmEzOTdiMDI0NjFkZmMxM2ExOTg2MjFkNWQzMDhiMjM0NmNlNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVl
LXJlZGlyZWN0cy10by5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIFNhbWVTaXRlPXN0cmljdCBl
bmZvcmNlbWVudCBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4iKTsKKyAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBmdW5jdGlvbiBzZXRNdWx0aXBsZVRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0
cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3
LjAuMC4zOjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjQ6
ODAwMC90ZW1wIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3Rl
bXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRp
cmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC42OjgwMDAvdGVtcCIpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8o
cmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjc6ODAwMC90ZW1wIik7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVj
dGluZ1BhcnR5LCAiaHR0cDovLzEyNy4wLjAuODo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFy
dHksICJodHRwOi8vMTI3LjAuMC45OjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0
dHA6Ly8xMjcuMC4wLjEwOjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8x
MjcuMC4wLjExOjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4w
LjEyOjgwMDAvdGVtcCIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsK
KyAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBp
ZiAoY29va2llcy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3Vs
ZCBoYXZlIGV4YWN0bHkgb25lIGNvb2tpZSBiZWZvcmUgdGVzdCBidXQgZm91bmQgIiArIGNvb2tp
ZXMubGVuZ3RoICsgIiBjb29raWVzLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmIChjb29raWVzWzBdLmlzU2FtZVNpdGVTdHJpY3QpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb29raWUgd2FzIFNhbWVTaXRlPXN0cmljdCBhZnRlciBzZWNvbmQgdGVzdC4iKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIHdhcyBub3QgU2Ft
ZVNpdGU9c3RyaWN0IGFmdGVyIHNlY29uZCB0ZXN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25k
U3RlcCgpIHsKKyAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOwor
ICAgICAgICBpZiAoY29va2llcy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlNob3VsZCBoYXZlIGV4YWN0bHkgb25lIGNvb2tpZSBiZWZvcmUgdGVzdCBidXQgZm91bmQg
IiArIGNvb2tpZXMubGVuZ3RoICsgIiBjb29raWVzLiIpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChjb29raWVzWzBdLmlzU2FtZVNpdGVTdHJpY3QpCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJDb29raWUgd2FzIFNhbWVTaXRlPXN0cmljdCBhZnRlciBmaXJzdCB0
ZXN0LiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgd2Fz
IG5vdCBTYW1lU2l0ZT1zdHJpY3QgYWZ0ZXIgZmlyc3QgdGVzdC4iKTsKKworICAgICAgICAvLyBT
ZXQgdGhlIGNvb2tpZSBhZ2FpbiB0byByZXNldCBpdHMgU2FtZVNpdGUgc3RhdHVzLgorICAgICAg
ICBkb2N1bWVudC5jb29raWUgPSAiY2xpZW50U2lkZUNvb2tpZT0xIjsKKworICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxl
dGVUZXN0KTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGlj
c0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gImNsaWVudFNpZGVDb29raWU9MSI7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NV
cmwsIHRydWUpOworCisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMo
KTsKKyAgICAgICAgaWYgKGNvb2tpZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJTaG91bGQgaGF2ZSBleGFjdGx5IG9uZSBjb29raWUgYmVmb3JlIHRlc3QgYnV0IGZv
dW5kICIgKyBjb29raWVzLmxlbmd0aCArICIgY29va2llcy4iKTsKKyAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KGNvb2tpZXNbMF0uaXNTYW1lU2l0ZVN0cmljdCkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNv
b2tpZSB3YXMgU2FtZVNpdGU9c3RyaWN0IGJlZm9yZSB0ZXN0LiIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgd2FzIG5vdCBTYW1lU2l0ZT1zdHJpY3QgYmVm
b3JlIHRlc3QuIik7CisKKyAgICAgICAgc2V0TXVsdGlwbGVUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
VG8oc3RhdGlzdGljc1VybCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGlj
c0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKHNlY29uZFN0ZXApOworCisgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9
CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAg
ICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkMDZlOTk2NzA1ZWRmYjdiNTZhNjMy
N2M5ODUxNzZjMjU1NGUwMzY3Li45MmEyYTgzYzUyNWFhZTI2N2U2YTE5MzdhNmE1Yzc3ZTlmMzgz
Y2MyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjc0
NCw2ICsyNzQ0LDggQEAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJl
ZmVycmVyLXRvLW9yaWdpbi1mb3ItdGhpcmQtcGFydHktcmVxdWUKIAogIyBUaGUgU2FtZVNpdGUg
Y29va2llIEFQSSBpcyBvbmx5IGF2YWlsYWJsZSBpbiBtYWNPUyBDYXRhbGluYSBhbmQgYWJvdmUs
IGFuZCB0aHVzIHNraXBwZWQgZm9yIFdLMiBpbiBnZW5lcmFsLgogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NldC1hbGwtY29va2llcy10by1zYW1lLXNpdGUtc3RyaWN0Lmh0bWwg
WyBQYXNzIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVz
aXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sIFsg
UGFzcyBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0
ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2Uu
aHRtbCBbIFBhc3MgXQogCiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFj
Y2Vzcy11bmRlci1vcGVuZXIuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy5odG1sIFsg
UGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggOWUyMGQwMDQ1MzEwNTZlZWJjMDViMGE2MzEyMDY5NWNjYzVhM2U3OS4uYTgwYmJjNjMx
N2MxMTk4MjZhNGY1MzMzOWFlMWE4YWJkZmFlOTdiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzEzLDYgKzcxMyw4IEBAIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50
LXJlc291cmNlLmh0bWwKIAogIyBUaGUgU2FtZVNpdGUgY29va2llIEFQSSBpcyBvbmx5IGF2YWls
YWJsZSBpbiBtYWNPUyBDYXRhbGluYSBhbmQgYWJvdmUuCiBbIENhdGFsaW5hKyBdIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtYWxsLWNvb2tpZXMtdG8tc2FtZS1zaXRlLXN0
cmljdC5odG1sIFsgUGFzcyBdCitbIENhdGFsaW5hKyBdIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5p
cXVlLXJlZGlyZWN0cy10by5odG1sIFsgUGFzcyBdCitbIENhdGFsaW5hKyBdIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10
b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIFsgUGFzcyBdCiAKICMg
U2tpcHBlZCBpbiBnZW5lcmFsIGV4cGVjdGF0aW9ucyBzaW5jZSB0aGV5IG9ubHkgd29yayBvbiBp
T1MgYW5kIE1hYywgV0syLgogbWVkaWEvZGVhY3RpdmF0ZS1hdWRpby1zZXNzaW9uLmh0bWwgWyBQ
YXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGNm
MjAyYzg5YTc0N2RmNTc4NzE2YjA3ZDk0MDk0ODJlYTFlZjAwZi4uYWYzODc4YzA3MTkyMmYyZmI1
MDg1Y2JmZmM5OTRiZmE1YTExYmYzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTczNSw2ICs3MzUsOCBAQCBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MgWyBQYXNzIF0KIAogIyBUaGUgU2FtZVNpdGUgY29va2llIEFQSSBpcyBvbmx5IGF2
YWlsYWJsZSBpbiBtYWNPUyBDYXRhbGluYSBhbmQgYWJvdmUuCiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2V0LWFsbC1jb29raWVzLXRvLXNhbWUtc2l0ZS1zdHJpY3QuaHRtbCBb
IFNraXAgXQoraHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNp
dGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwgWyBT
a2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRl
LXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5o
dG1sIFsgU2tpcCBdCiAKIGh0dHAvdGVzdHMvd2Vic29ja2V0L2Nvbm5lY3Rpb24tcmVmdXNhbC1p
bi1mcmFtZS1yZXNvdXJjZS1sb2FkLXN0YXRpc3RpY3MuaHRtbCBbIFBhc3MgXQogIyBUaGVzZSBh
cmUgb25seSBzdXBwb3J0ZWQgYmVoaW5kIGEgY29tcGlsZSB0aW1lIGZsYWcgaW4gbWFjT1MgSGln
aCBTaWVycmEgKyBpT1MgMTEsIGFuZCBhYm92ZS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395001</attachid>
            <date>2020-03-30 18:47:49 -0700</date>
            <delta_ts>2020-03-30 19:45:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209761-20200330184748.patch</filename>
            <type>text/plain</type>
            <size>80325</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhmZjAxMmZmYjJjZjA4
ZmRmODk0YzRmNGQ4ZmZkN2YyN2I2NWZhNi4uYTA1ZTM4NWUxNDczZmFiYWEwMzE1ZDU4ZDg0MDFi
MDQ1YjQxMzMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTAzLTMwICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGVyaW1lbnRhbDog
RW5mb3JjZSBTYW1lU2l0ZT1zdHJpY3QgZm9yIGRvbWFpbnMgY2xhc3NpZmllZCBhcyBib3VuY2Ug
dHJhY2tlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwOTc2MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTkzOTQ5NDM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbSBhbmQgS2F0ZSBDaGVuZXkgKGluZm9ybWFsKS4KKworICAg
ICAgICBUaGlzIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGlzIHBhcnQgb2YgSW50ZWxsaWdlbnQgVHJh
Y2tpbmcgUHJldmVudGlvbiBhbmQgb25seSBlbmFibGVkIGlmCisgICAgICAgIElUUCAoUmVzb3Vy
Y2UgTG9hZCBTdGF0aXN0aWNzKSBhcmUuIEEgbmV3IGVudW0gV2ViQ29yZTo6U2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudEVuYWJsZWQKKyAgICAgICAgY29udHJvbHMgdGhlIG5ldyBiZWhhdmlvciB3
aXRoIGRlZmF1bHQgc2V0dGluZyBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5h
YmxlZDo6Tm8uCisKKyAgICAgICAgVGhlIGZlYXR1cmVzIGtlZXBzIGEgc2VwYXJhdGUgY291bnQg
b2YgdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dAorICAgICAgICB3aGljaCBidWlsZHMgdXAgdG8gYSB0aHJlc2hvbGQuIE9uY2UgYSBkb21haW4g
Z29lcyBhYm92ZSB0aGUgdGhyZXNob2xkLCBpdHMgY29va2llcyBhcmUKKyAgICAgICAgcmV3cml0
dGVuIGFzIFNhbWVTaXRlPXN0cmljdCBhbmQgdGhlIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9T
aW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQKKyAgICAgICAgY291bnRlciBmb3IgdGhhdCBk
b21haW4gaXMgcmVzZXQsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZG9tYWluIGEgbmV3IGNoYW5j
ZSB0byBjaGFuZ2UgaXRzCisgICAgICAgIGJlaGF2aW9yLgorCisgICAgICAgIFRlc3RzOiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFz
ZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNp
dGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwKKwor
ICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg6CisgICAgICAgICAgICBO
ZXcgZmllbGQgdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZv
cmNlbWVudC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgICAgIE5ldyBlbnVt
IFNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLgorCiAyMDIwLTAzLTMwICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIHNjcm9sbEludG9WaWV3
KCkgZXJyb25lb3VzbHkgc2Nyb2xscyBub24tY29udGFpbmluZyBibG9jayBzY3JvbGxlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNGZkYTI2YjE3NjY5OWNiMjA5ODE3ODU4MmM2ZjM5Y2U5YzdhOTExYS4uNTQyOWM4
YTFjNzhhN2UwYjdiNGYyNTE5OTZlNDIyOGFmNjY0MmYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4
NSBAQAorMjAyMC0wMy0zMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBFeHBlcmltZW50YWw6IEVuZm9yY2UgU2FtZVNpdGU9c3RyaWN0IGZvciBkb21haW5z
IGNsYXNzaWZpZWQgYXMgYm91bmNlIHRyYWNrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3NjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5
Mzk0OTQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0gYW5kIEthdGUgQ2hl
bmV5IChpbmZvcm1hbCkuCisKKyAgICAgICAgVGhpcyBleHBlcmltZW50YWwgZmVhdHVyZSBpcyBw
YXJ0IG9mIEludGVsbGlnZW50IFRyYWNraW5nIFByZXZlbnRpb24gYW5kIG9ubHkgZW5hYmxlZCBp
ZgorICAgICAgICBJVFAgKFJlc291cmNlIExvYWQgU3RhdGlzdGljcykgYXJlLiBBIG5ldyBlbnVt
IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkCisgICAgICAgIGNvbnRy
b2xzIHRoZSBuZXcgYmVoYXZpb3Igd2l0aCBkZWZhdWx0IHNldHRpbmcgV2ViQ29yZTo6U2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vLgorCisgICAgICAgIFRoZSBmZWF0dXJlcyBr
ZWVwcyBhIHNlcGFyYXRlIGNvdW50IG9mIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNh
bWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQKKyAgICAgICAgd2hpY2ggYnVpbGRzIHVwIHRvIGEgdGhy
ZXNob2xkLiBPbmNlIGEgZG9tYWluIGdvZXMgYWJvdmUgdGhlIHRocmVzaG9sZCwgaXRzIGNvb2tp
ZXMgYXJlCisgICAgICAgIHJld3JpdHRlbiBhcyBTYW1lU2l0ZT1zdHJpY3QgYW5kIHRoZSB0b3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50CisgICAg
ICAgIGNvdW50ZXIgZm9yIHRoYXQgZG9tYWluIGlzIHJlc2V0LCBlZmZlY3RpdmVseSBnaXZpbmcg
dGhlIGRvbWFpbiBhIG5ldyBjaGFuY2UgdG8gY2hhbmdlIGl0cworICAgICAgICBiZWhhdmlvci4K
KworICAgICAgICBUZXN0IGluZnJhc3RydWN0dXJlIGlzIGFkZGVkIHRvIGFsbG93IGZvciBsYXlv
dXQgdGVzdHMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVuaXF1ZUluZGljZXMpOgorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRl
U2NoZW1hKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcHMpOgorICAgICAgICAoV2ViS2l0OjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omxv
Z0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKToKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpzaG91bGRFbmZvcmNlU2Ft
ZVNpdGVTdHJpY3RGb3IpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6OnJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVE
YXRhRm9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omlz
U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgY29uc3QpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKFdl
YktpdDo6UmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3I6
Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlZ2lzdHJhYmxlRG9tYWlu
c1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yOjppc0VtcHR5IGNvbnN0KToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRG
b3JUZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAg
ICAgICAgICAgQWRkZWQgU2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9y
VGVzdGluZy4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpmb3J3YXJkUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nl
dHRpbmdzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmRlbGV0ZUFuZFJlc3Ry
aWN0V2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrU2Vzc2lvbjo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAgICAgSVBDIGluc3RydWN0aW9ucyB0
byBmaW5kIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIGluCisgICAg
ICAgICAgICBXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oLiAKKyAgICAgICAgKiBTaGFy
ZWQvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbi5oOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjpzZXRJc0xvYWRl
ZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6aXNMb2Fk
ZWRXaXRoTmF2aWdhdGlvblNoYXJlZCBjb25zdCk6CisgICAgICAgICAgICBLZWVwcyB0cmFjayBv
ZiBob3cgYSBuYXZpZ2F0aW9uIG9jY3VycyB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICAgICAg
V2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oKSBjYW4gY2FwdHVyZSBuYXZpZ2F0aW9u
cyBpbml0aWF0ZWQgYnkgdGhlCisgICAgICAgICAgICB1c2VyIHRocm91Z2ggdGhlIGhvc3Rpbmcg
YXBwbGljYXRpb24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNo
b3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojps
b2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgICAgIFNlZSBjb21tZW50
IGFib3ZlIGZvciBBUEk6Ok5hdmlnYXRpb24uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICAgICBTZWUgY29t
bWVudCBhYm92ZSBmb3IgQVBJOjpOYXZpZ2F0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVO
ZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dl
YnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6cGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9y
VGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaDoKKwogMjAyMC0wMy0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYktpdCBzaG91bGQgdGFrZSBhIGZvcmVncm91bmQgYXNzZXJ0aW9uIGZvciBvZmZz
Y3JlZW4gbG9hZHMgd2hlbiB0aGUgYXBwIGlzIGZvcmVncm91bmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCmluZGV4IDU5N2U1YzE0OWExMTIyNGI5
YTQwYjhlNTc3MjY3ZmRiOThhMWEyMDEuLmQ1ODdhNTE0MWYzOGVmOGJjNzA4ZWU3N2U3ODFjZjBm
NWJkMDI2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MuaApAQCAtNzksNiArNzksNyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB7
CiAKICAgICAvLyBUb3AgZnJhbWUgc3RhdHMKICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWlu
PiB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvOworICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21h
aW4+IHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnQ7CiAgICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4gdG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNGcm9tOwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IHRvcEZyYW1lTGlua0RlY29y
YXRpb25zRnJvbTsKICAgICBib29sIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291
cmNlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAyNWE4ZWFiZDQ3
YTVjNzMyM2Y2NThmMTZjMzRkY2FhMWRjYmQwMzIxLi5hODY3NmQ5N2MzY2FiOTczYzEzMjM1ZGY4
OTZjMmRkN2FkYWViNWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC05MTAsNiAr
OTEwLDkgQEAgaXNGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTGl2ZU9uVGVzdGluZ0VuYWJs
ZWQ6CiBpc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxSZXByb1Rlc3RpbmdFbmFibGVkOgog
ICBpbml0aWFsOiBmYWxzZQogCitpc1NhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOgor
ICBpbml0aWFsOiBmYWxzZQorCiBpc0xvZ2dlZEluQVBJRW5hYmxlZDoKICAgaW5pdGlhbDogZmFs
c2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggODg1ZmY4N2U3NmU4ODQ2OGFhNzg1YjM0YWE4ZjI1MTAy
MDk2ZWQ5Ni4uMTM5MWRlZDRkODhlZGIyNzYwMmY2OWMwNmQyZmExMzgwZGI4MjdkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oCkBAIC03OCw2ICs3OCw3IEBAIGVudW0gY2xhc3MgSFRUUENvb2tpZUFjY2VwdFBv
bGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIDogYm9vbDsK
IGVudW0gY2xhc3MgSW5jbHVkZUh0dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgOiB1aW50OF90IHsgQWxsLCBBbGxPblNpdGVzV2l0
aG91dFVzZXJJbnRlcmFjdGlvbiwgT25seUFjY29yZGluZ1RvUGVyRG9tYWluUG9saWN5IH07Citl
bnVtIGNsYXNzIFNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIDogYm9vbCB7IFllcywg
Tm8gfTsKIGVudW0gY2xhc3MgRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgOiB1aW50
OF90IHsgQWxsQnV0Q29va2llcywgTm9uZSwgQWxsQnV0Q29va2llc0xpdmVPblRlc3RpbmdUaW1l
b3V0LCBBbGxCdXRDb29raWVzUmVwcm9UZXN0aW5nVGltZW91dCB9OwogZW51bSBjbGFzcyBTaG91
bGRBc2tJVFAgOiBib29sIHsgTm8sIFllcyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCBiNGFiMjEzYzY2OWZlN2Vi
MzZiNjk2NzllYWQyMmM5MTZkM2I2M2FjLi43MmRiOTliODMzM2QzYTU4YzE3NTNiMDg2MjNmZDNh
OWJiZjExYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZS5jcHAKQEAgLTgxLDYgKzgxLDcgQEAgY29uc3RleHByIGF1dG8gaW5zZXJ0
T2JzZXJ2ZWREb21haW5RdWVyeSA9ICJJTlNFUlQgSU5UTyBPYnNlcnZlZERvbWFpbnMgKHJlZ2lz
dHIKIGNvbnN0ZXhwciBhdXRvIGluc2VydFRvcExldmVsRG9tYWluUXVlcnkgPSAiSU5TRVJUIElO
VE8gVG9wTGV2ZWxEb21haW5zIFZBTFVFUyAoPykiX3M7CiBjb25zdGV4cHIgYXV0byBzdG9yYWdl
QWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSA9ICJJTlNFUlQgT1IgSUdOT1JFIElOVE8g
U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIChkb21haW5JRCwgdG9wTGV2ZWxEb21h
aW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lz
dHJhYmxlRG9tYWluIGluICggIl9zOwogY29uc3RleHByIGF1dG8gdG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNUb1F1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgaW50byBUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c1RvIChzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZS
T00gT2JzZXJ2ZWREb21haW5zIHdoZXJlIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9zOworY29u
c3RleHByIGF1dG8gdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudFF1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgaW50byBUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50IChzb3VyY2VEb21haW5JRCwg
dG9Eb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIHdoZXJl
IHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9zOwogY29uc3RleHByIGF1dG8gdG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tUXVlcnkgPSAiSU5TRVJUIE9SIElHTk9SRSBJTlRPIFRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzRnJvbSAodGFyZ2V0RG9tYWluSUQsIGZyb21Eb21haW5JRCkgU0VMRUNUID8s
IGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIGlu
ICggIl9zOwogY29uc3RleHByIGF1dG8gdG9wRnJhbWVMb2FkZWRUaGlyZFBhcnR5U2NyaXB0c1F1
ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgaW50byBUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3Jp
cHRzICh0b3BGcmFtZURvbWFpbklELCBzdWJyZXNvdXJjZURvbWFpbklEKSBTRUxFQ1QgPywgZG9t
YWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgd2hlcmUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAi
X3M7CiBjb25zdGV4cHIgYXV0byBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSA9
ICJJTlNFUlQgT1IgSUdOT1JFIElOVE8gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIChz
dWJyZXNvdXJjZURvbWFpbklELCBmcm9tRG9tYWluSUQpIFNFTEVDVCA/LCBkb21haW5JRCBGUk9N
IE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKQEAgLTEz
OCw2ICsxMzksNyBAQCBjb25zdCBjaGFyKiB0YWJsZXNbXSA9IHsKICAgICAiVG9wTGV2ZWxEb21h
aW5zIiwKICAgICAiU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIiwKICAgICAiVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNUbyIsCisgICAgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9T
aW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQiLAogICAgICJUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c0Zyb20iLAogICAgICJUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20iLAogICAgICJUb3BG
cmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzIiwKQEAgLTE4Myw3ICsxODUsMTIgQEAgY29uc3Rl
eHByIGF1dG8gY3JlYXRlVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbyA9ICJDUkVBVEUgVEFCTEUg
VG9wRnJhbWVVbmlxdWVSZWQKICAgICAic291cmNlRG9tYWluSUQgSU5URUdFUiBOT1QgTlVMTCwg
dG9Eb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCAiCiAgICAgIkZPUkVJR04gS0VZKHNvdXJjZURv
bWFpbklEKSBSRUZFUkVOQ0VTIFRvcExldmVsRG9tYWlucyh0b3BMZXZlbERvbWFpbklEKSBPTiBE
RUxFVEUgQ0FTQ0FERSwgIgogICAgICJGT1JFSUdOIEtFWSh0b0RvbWFpbklEKSBSRUZFUkVOQ0VT
IFRvcExldmVsRG9tYWlucyh0b3BMZXZlbERvbWFpbklEKSBPTiBERUxFVEUgQ0FTQ0FERSk7Il9z
OwotICAgIAorCitjb25zdGV4cHIgYXV0byBjcmVhdGVUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
U2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50ID0gIkNSRUFURSBUQUJMRSBUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50ICgiCisgICAgInNv
dXJjZURvbWFpbklEIElOVEVHRVIgTk9UIE5VTEwsIHRvRG9tYWluSUQgSU5URUdFUiBOT1QgTlVM
TCwgIgorICAgICJGT1JFSUdOIEtFWShzb3VyY2VEb21haW5JRCkgUkVGRVJFTkNFUyBUb3BMZXZl
bERvbWFpbnModG9wTGV2ZWxEb21haW5JRCkgT04gREVMRVRFIENBU0NBREUsICIKKyAgICAiRk9S
RUlHTiBLRVkodG9Eb21haW5JRCkgUkVGRVJFTkNFUyBUb3BMZXZlbERvbWFpbnModG9wTGV2ZWxE
b21haW5JRCkgT04gREVMRVRFIENBU0NBREUpOyJfczsKKwogY29uc3RleHByIGF1dG8gY3JlYXRl
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tID0gIkNSRUFURSBUQUJMRSBUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c0Zyb20gKCIKICAgICAidGFyZ2V0RG9tYWluSUQgSU5URUdFUiBOT1QgTlVMTCwg
ZnJvbURvbWFpbklEIElOVEVHRVIgTk9UIE5VTEwsICIKICAgICAiRk9SRUlHTiBLRVkodGFyZ2V0
RG9tYWluSUQpIFJFRkVSRU5DRVMgVG9wTGV2ZWxEb21haW5zKHRvcExldmVsRG9tYWluSUQpIE9O
IERFTEVURSBDQVNDQURFLCAiCkBAIC0yMjIsNiArMjI5LDcgQEAgY29uc3RleHByIGF1dG8gY3Jl
YXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tID0gIkNSRUFURSBUQUJMRSBTdWJyZXNv
dXJjZVUKIC8vIENSRUFURSBVTklRVUUgSU5ERVggUXVlcmllcwogY29uc3RleHByIGF1dG8gY3Jl
YXRlVW5pcXVlSW5kZXhTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgPSAiQ1JFQVRF
IFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9t
YWluc19kb21haW5JRF90b3BMZXZlbERvbWFpbklEIG9uIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZy
YW1lRG9tYWlucyAoIGRvbWFpbklELCB0b3BMZXZlbERvbWFpbklEICk7Il9zOwogY29uc3RleHBy
IGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvID0gIkNSRUFU
RSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvX3Nv
dXJjZURvbWFpbklEX3RvRG9tYWluSUQgb24gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbyAoIHNv
dXJjZURvbWFpbklELCB0b0RvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1dG8gY3JlYXRlVW5p
cXVlSW5kZXhUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9y
Y2VtZW50ID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50X3NvdXJjZURvbWFpbklE
X3RvRG9tYWluSUQgb24gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudCAoIHNvdXJjZURvbWFpbklELCB0b0RvbWFpbklEICk7Il9zOwogY29uc3Rl
eHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gPSAi
Q1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
RnJvbV90YXJnZXREb21haW5JRF9mcm9tRG9tYWluSUQgb24gVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNGcm9tICggdGFyZ2V0RG9tYWluSUQsIGZyb21Eb21haW5JRCApOyJfczsKIGNvbnN0ZXhwciBh
dXRvIGNyZWF0ZVVuaXF1ZUluZGV4VG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tID0gIkNSRUFU
RSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21f
dG9Eb21haW5JRF9mcm9tRG9tYWluSUQgb24gVG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tICgg
dG9Eb21haW5JRCwgZnJvbURvbWFpbklEICk7Il9zOwogY29uc3RleHByIGF1dG8gY3JlYXRlVW5p
cXVlSW5kZXhUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzID0gIkNSRUFURSBVTklRVUUg
SU5ERVggSUYgTk9UIEVYSVNUUyBUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzX3RvcEZy
YW1lRG9tYWluSURfc3VicmVzb3VyY2VEb21haW5JRCBvbiBUb3BGcmFtZUxvYWRlZFRoaXJkUGFy
dHlTY3JpcHRzICggdG9wRnJhbWVEb21haW5JRCwgc3VicmVzb3VyY2VEb21haW5JRCApOyJfczsK
QEAgLTQxMiw2ICs0MjAsNyBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjcmVhdGVVbmlxdWVJbmRpY2VzKCkKIHsKICAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0
ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFp
bnMpCiAgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUlu
ZGV4VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbykKKyAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhl
Y3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2lu
Y2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50KQogICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVj
dXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkK
ICAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhU
b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20pCiAgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1
dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4VG9wRnJhbWVMb2FkZWRUaGlyZFBhcnR5U2NyaXB0
cykKQEAgLTQ0OSw2ICs0NTgsMTEgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y3JlYXRlU2NoZW1hKCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAor
ICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50KSkgeworICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudCB0YWJsZSBpbiBkYXRhYmFzZSAoJWkpIC0gJXMiLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFu
ZChjcmVhdGVUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20pKSB7CiAgICAgICAgIExPR19FUlJP
UigiQ291bGQgbm90IGNyZWF0ZSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gdGFibGUgaW4g
ZGF0YWJhc2UgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTY5Miw2ICs3MDYsNyBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21haW5S
ZWxhdGlvbnNoaXBzKGNvbnN0IFJlc291cgogCiAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
TGlzdChzdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSwgbG9hZFN0YXRpc3Rp
Y3Muc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklE
LnZhbHVlKCkpOwogICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNUb1F1ZXJ5LCBsb2FkU3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c1RvLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCkpOworICAgIGluc2VydERvbWFpblJlbGF0
aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudFF1ZXJ5LCBsb2FkU3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
U2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50LCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVl
KCkpOwogICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNGcm9tUXVlcnksIGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJv
bSwgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpKTsKICAgICBpbnNlcnREb21haW5SZWxhdGlv
bnNoaXBMaXN0KHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNRdWVyeSwgbG9hZFN0YXRpc3Rp
Y3Muc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1
ZSgpKTsKICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbnNRdWVyeSwgbG9hZFN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpKTsKQEAgLTE2MTIsNiArMTYy
Nyw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1l
TmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvUXVlcnksIEhhc2hTZXQ8UmVnaXN0
cmFibGVEb21haW4+KHsgdGFyZ2V0RG9tYWluIH0pLCAqcmVkaXJlY3RpbmdEb21haW5SZXN1bHQu
c2Vjb25kKTsKKyAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRRdWVy
eSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyB0YXJnZXREb21haW4gfSksICpyZWRpcmVj
dGluZ0RvbWFpblJlc3VsdC5zZWNvbmQpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lO
Rk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIkRpZCBzZXQgJSIgUFVCTElD
X0xPR19TVFJJTkcgIiBhcyBtYWtpbmcgYSB0b3AgZnJhbWUgcmVkaXJlY3QgdG8gJSIgUFVCTElD
X0xPR19TVFJJTkcgIi4iLCBzb3VyY2VEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdGFy
Z2V0RG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnks
IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgc291cmNlRG9tYWluIH0pLCAqdGFyZ2V0UmVz
dWx0LnNlY29uZCk7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1
ZTsKICAgICAgICAgICAgIH0KQEAgLTE2NDgsNiArMTY2NSwyOCBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0
aW9uKGNvbgogICAgICAgICBzZXRJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFs
KHRvRG9tYWluLCB0cnVlKTsKIH0KIAordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y2xlYXJUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmlj
dEVuZm9yY2VtZW50KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VT
dGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oZG9tYWluKTsKKyAgICBpZiAoIXRhcmdldFJl
c3VsdC5zZWNvbmQpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nl
c3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFy
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudCB3
YXMgbm90IGNvbXBsZXRlZCBkdWUgdG8gZmFpbGVkIGluc2VydCBhdHRlbXB0IiwgdGhpcyk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBTUUxpdGVTdGF0ZW1lbnQgcmVtb3ZlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlKG1fZGF0YWJh
c2UsICJERUxFVEUgRlJPTSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50IFdIRVJFIHNvdXJjZURvbWFpbklEID0gPyIpOworICAgIGlmIChyZW1v
dmVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGUucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAg
ICB8fCByZW1vdmVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGUuYmluZEludCgxLCAqdGFyZ2V0UmVz
dWx0LnNlY29uZCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHJlbW92ZVJlZGlyZWN0c1RvU2lu
Y2VTYW1lU2l0ZS5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNsZWFyVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudCBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwcml2
YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIAorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9
CisKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFVzZXJJbnRl
cmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBib29sIGhhZFVzZXJJbnRl
cmFjdGlvbiwgV2FsbFRpbWUgbW9zdFJlY2VudEludGVyYWN0aW9uKQogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMTY5OCw3ICsxNzM3LDcgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVn
aXN0cmFibGUKICAgICBpZiAocmVtb3ZlU3RvcmFnZUFjY2Vzcy5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LCiAgICAgICAgIHx8IHJlbW92ZVN0b3JhZ2VBY2Nlc3MuYmluZEludCgxLCAqdGFyZ2V0UmVz
dWx0LnNlY29uZCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHJlbW92ZVN0b3JhZ2VBY2Nlc3Mu
c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7
cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbiBmYWlsZWQgdG8g
YmluZCwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCkBAIC0y
MDQ0LDggKzIwODMsOSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgVG9wRgogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvIHdhcyBub3Qg
Y29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICAvLyBGb3IgY29uc2lzdGVuY3ksIG1ha2Ugc3VyZSB3ZSBhbHNv
IGhhdmUgYSBzdGF0aXN0aWNzIGVudHJ5IGZvciB0aGUgcmVkaXJlY3QgZG9tYWluLgorCiAgICAg
aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvUXVl
cnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgcmVkaXJlY3REb21haW4gfSksICpyZXN1
bHQuc2Vjb25kKTsKKyAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRRdWVyeSwgSGFzaFNl
dDxSZWdpc3RyYWJsZURvbWFpbj4oeyByZWRpcmVjdERvbWFpbiB9KSwgKnJlc3VsdC5zZWNvbmQp
OwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIGNvbnN0IFJlZGlyZWN0RG9tYWluJiByZWRpcmVjdERvbWFpbikKQEAgLTIyNTcsNyArMjI5
Nyw4IEBAIFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6RG9tYWlu
RGF0YT4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhCiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgCiAgICAgVmVjdG9yPERvbWFpbkRhdGE+IHJlc3VsdHM7Ci0gICAgU1FMaXRl
U3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VMRUNUIGRvbWFpbklELCByZWdpc3Ry
YWJsZURvbWFpbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIGhhZFVzZXJJbnRlcmFj
dGlvbiwgZ3JhbmRmYXRoZXJlZCwgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3Zh
bCBGUk9NIE9ic2VydmVkRG9tYWlucyJfcyk7CisgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVu
dChtX2RhdGFiYXNlLCAiU0VMRUNUIGRvbWFpbklELCByZWdpc3RyYWJsZURvbWFpbiwgbW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIGhhZFVzZXJJbnRlcmFjdGlvbiwgZ3JhbmRmYXRoZXJl
ZCwgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgY291bnRPZlRvcEZyYW1l
UmVkaXJlY3RzIEZST00gT2JzZXJ2ZWREb21haW5zIExFRlQgSk9JTiAoU0VMRUNUIHNvdXJjZURv
bWFpbklELCBDT1VOVCgqKSBhcyBjb3VudE9mVG9wRnJhbWVSZWRpcmVjdHMgZnJvbSBUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50IEdST1VQIEJZ
IHNvdXJjZURvbWFpbklEKSBhcyB6IE9OIHouc291cmNlRG9tYWluSUQgPSBkb21haW5JRCJfcyk7
CisKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAgICAgIHJl
dHVybiByZXN1bHRzOwogICAgIApAQCAtMjI2OCw2ICsyMzA5LDcgQEAgVmVjdG9yPFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpEb21haW5EYXRhPiBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGEKICAgICAgICAgICAgICwgc3RhdGVtZW50LmdldENvbHVtbkludCgzKSA/IHRydWUg
OiBmYWxzZQogICAgICAgICAgICAgLCBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDQpID8gdHJ1ZSA6
IGZhbHNlCiAgICAgICAgICAgICAsIHN0YXRlbWVudC5nZXRDb2x1bW5JbnQoNSkgPyB0cnVlIDog
ZmFsc2UKKyAgICAgICAgICAgICwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXRlbWVudC5nZXRD
b2x1bW5JbnQoNikpCiAgICAgICAgIH0pOwogICAgIH0KICAgICAKQEAgLTIzODAsNiArMjQyMiwx
OSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1v
dmVBbGxCdXRDb29raWVzRm9yKGNvbnN0IERvbQogICAgIHJldHVybiBpc1JlbW92YWxFbmFibGVk
ICYmICFpc1Jlc291cmNlR3JhbmRmYXRoZXJlZCAmJiAhaGFzSGFkVW5leHBpcmVkUmVjZW50VXNl
ckludGVyYWN0aW9uKHJlc291cmNlU3RhdGlzdGljLCB3aW5kb3cpOwogfQogCitib29sIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRFbmZvcmNlU2FtZVNpdGVTdHJp
Y3RGb3IoRG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0aWMsIGJvb2wgc2hvdWxkQ2hlY2tGb3JH
cmFuZGZhdGhlcmluZykKK3sKKyAgICBpZiAoIWlzU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVu
YWJsZWQoKSB8fCAoc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyAmJiByZXNvdXJjZVN0YXRp
c3RpYy5ncmFuZGZhdGhlcmVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKHJl
c291cmNlU3RhdGlzdGljLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnQgPiBwYXJhbWV0ZXJzKCkubWluaW11bVRvcEZyYW1lUmVkaXJlY3RzRm9y
U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudCkgeworICAgICAgICBjbGVhclRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQocmVzb3VyY2VTdGF0aXN0
aWMucmVnaXN0cmFibGVEb21haW4sIFtdIHsgfSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVP
clJlc3RyaWN0V2Vic2l0ZURhdGFGb3IgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yKCkK
IHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTI0MDMsOSArMjQ1OCwxNSBA
QCBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvciBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhcwogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vi
c2l0ZURhdGFGb3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkgewog
ICAgICAgICAgICAgdG9EZWxldGVPclJlc3RyaWN0Rm9yLmRvbWFpbnNUb0RlbGV0ZUFsbENvb2tp
ZXNGb3IuYXBwZW5kKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7CiAgICAgICAgICAgICB0
b0RlbGV0ZU9yUmVzdHJpY3RGb3IuZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURh
dGFGb3IuYXBwZW5kKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7Ci0gICAgICAgIH0gZWxz
ZSBpZiAoc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNr
Rm9yR3JhbmRmYXRoZXJpbmcpKSB7Ci0gICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RGb3Iu
ZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0YXRpc3Rp
Yy5yZWdpc3RyYWJsZURvbWFpbik7Ci0gICAgICAgICAgICBzZXRJc1NjaGVkdWxlZEZvckFsbEJ1
dENvb2tpZURhdGFSZW1vdmFsKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgZmFsc2UpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHNob3VsZFJlbW92ZUFsbEJ1dENvb2tp
ZXNGb3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkgeworICAgICAg
ICAgICAgICAgIHRvRGVsZXRlT3JSZXN0cmljdEZvci5kb21haW5zVG9EZWxldGVBbGxOb25Db29r
aWVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAg
ICAgICAgICAgICAgICBzZXRJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsKHN0
YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKHNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcihzdGF0aXN0aWMsIHNob3Vs
ZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpKSB7CisgICAgICAgICAgICAgICAgdG9EZWxldGVPclJl
c3RyaWN0Rm9yLmRvbWFpbnNUb0VuZm9yY2VTYW1lU2l0ZVN0cmljdEZvci5hcHBlbmQoc3RhdGlz
dGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZP
X0lGKGRlYnVnTG9nZ2luZ0VuYWJsZWQoKSwgSVRQRGVidWcsICJTY2hlZHVsZWQgJSIgUFVCTElD
X0xPR19TVFJJTkcgIiB0byBoYXZlIGl0cyBjb29raWVzIHNldCB0byBTYW1lU2l0ZT1zdHJpY3Qu
Iiwgc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChzaG91bGRDbGVhckdyYW5kZmF0
aGVyaW5nICYmIHN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKQogICAgICAgICAgICAgZG9tYWluSURz
VG9DbGVhckdyYW5kZmF0aGVyaW5nLmFwcGVuZChzdGF0aXN0aWMuZG9tYWluSUQpOwpAQCAtMjY5
NSw2ICsyNzU2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cmVzb3VyY2VUb1N0cmluZyhTdHJpbmdCdWlsZGVyJiBidWlsZGUKIAogICAgIC8vIFRvcCBmcmFt
ZSBzdGF0cwogICAgIGFwcGVuZFN1YlN0YXRpc3RpY0xpc3QoYnVpbGRlciwgIlRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzVG8iLCBkb21haW4pOworICAgIGFwcGVuZFN1YlN0YXRpc3RpY0xpc3QoYnVp
bGRlciwgIlRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnQiLCBkb21haW4pOwogICAgIGFwcGVuZFN1YlN0YXRpc3RpY0xpc3QoYnVpbGRlciwgIlRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSIsIGRvbWFpbik7CiAgICAgYXBwZW5kU3ViU3RhdGlz
dGljTGlzdChidWlsZGVyLCAiVG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tIiwgZG9tYWluKTsK
ICAgICBhcHBlbmRTdWJTdGF0aXN0aWNMaXN0KGJ1aWxkZXIsICJUb3BGcmFtZUxvYWRlZFRoaXJk
UGFydHlTY3JpcHRzIiwgZG9tYWluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggN2ZjMDNmYWZmZDUyOTNjYWZiZDEwMmUzNDE0
YzY3YzMwMzYwYWNjNC4uNjIzMGEyYjZhMjAyZDI3ZGRlNzZjODc1ZWRmOWE3NmUyNDUzODhkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmgKQEAgLTEyNSw5ICsxMjUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNj
ZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRp
b24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0
IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUs
IFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQb3RlbnRp
YWxseUluaXRpYXRlZEJ5VXNlcikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rp
b24oY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgbG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihjb25z
dCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNsZWFyVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudChjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAKKyAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BG
cmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNIYWRVc2VySW50
ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykg
b3ZlcnJpZGU7CiAKQEAgLTE3OCw2ICsxNzksNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIGhh
ZFVzZXJJbnRlcmFjdGlvbjsKICAgICAgICAgYm9vbCBncmFuZGZhdGhlcmVkOwogICAgICAgICBi
b29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw7CisgICAgICAgIHVuc2ln
bmVkIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnQ7CiAgICAgfTsKICAgICBWZWN0b3I8RG9tYWluRGF0YT4gZG9tYWlucygpIGNvbnN0OwogICAg
IGJvb2wgaGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKGNvbnN0IERvbWFpbkRh
dGEmLCBPcGVyYXRpbmdEYXRlc1dpbmRvdyk7CkBAIC0yMTUsNiArMjE3LDcgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnBhaXI8QWRkZWRSZWNvcmQsIE9wdGlvbmFsPHVuc2lnbmVkPj4gZW5zdXJlUmVz
b3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mKSBXQVJOX1VOVVNFRF9SRVRVUk47CiAgICAgYm9vbCBzaG91bGRSZW1vdmVBbGxXZWJzaXRl
RGF0YUZvcihjb25zdCBEb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKTsKICAgICBib29sIHNob3VsZFJlbW92ZUFsbEJ1dENvb2tpZXNGb3IoY29uc3QgRG9tYWlu
RGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyk7CisgICAgYm9vbCBzaG91
bGRFbmZvcmNlU2FtZVNpdGVTdHJpY3RGb3IoRG9tYWluRGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tG
b3JHcmFuZGZhdGhlcmluZyk7CiAgICAgUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3Ry
aWN0V2Vic2l0ZURhdGFGb3IgcmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vi
c2l0ZURhdGFGb3IoKSBvdmVycmlkZTsKICAgICBib29sIGlzRGF0YWJhc2VTdG9yZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAppbmRleCBlYTkxNjkxNWVmNTBhYTdjZGE0N2VjMzAz
OTY2YmY0NzRlYWQ2MTFjLi4wNTI4MGYxODUxYWQ5NjRlNWIzYWY4MTA3ODZiODk0YzViMDcxNjY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
LmNwcApAQCAtNDc0LDYgKzQ3NCw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEb21hCiAgICAgICAg
ICAgICBpZiAoaXNSZWRpcmVjdCB8fCB3YXNOYXZpZ2F0ZWRBZnRlclNob3J0RGVsYXlXaXRob3V0
VXNlckludGVyYWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgaWYgKHJlZGlyZWN0aW5nRG9tYWlu
U3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLmFkZCh0YXJnZXREb21haW4pLmlz
TmV3RW50cnkpCiAgICAgICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgaWYgKHJlZGlyZWN0aW5nRG9tYWluU3RhdGlzdGljcy50b3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50LmFkZCh0
YXJnZXREb21haW4pLmlzTmV3RW50cnkpCisgICAgICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NX
ZXJlVXBkYXRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihk
ZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiRGlkIHNldCAlIiBQVUJMSUNfTE9HX1NU
UklORyAiIGFzIG1ha2luZyBhIHRvcCBmcmFtZSByZWRpcmVjdCB0byAlIiBQVUJMSUNfTE9HX1NU
UklORyAiLiIsIHNvdXJjZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0YXJnZXREb21h
aW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgYXV0byYgdGFyZ2V0
U3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWlu
KHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICAgICAgaWYgKHRhcmdldFN0YXRpc3RpY3MudG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmFkZChzb3VyY2VEb21haW4pLmlzTmV3RW50cnkpCiAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CkBAIC03MTIs
NiArNzE1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNldFRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhjb25zdCBUb3BGcmEKIAogICAgIGF1dG8mIHN0YXRpc3Rp
Y3MgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFt
ZURvbWFpbik7CiAgICAgc3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLmFkZChy
ZWRpcmVjdERvbWFpbik7CisgICAgc3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
U2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50LmFkZChyZWRpcmVjdERvbWFpbik7CiAgICAg
Ly8gRm9yIGNvbnNpc3RlbmN5LCBtYWtlIHN1cmUgd2UgYWxzbyBoYXZlIGEgc3RhdGlzdGljcyBl
bnRyeSBmb3IgdGhlIHJlZGlyZWN0IGRvbWFpbi4KICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbihyZWRpcmVjdERvbWFpbik7CiB9CkBAIC05NDMsNiArOTQ3
LDE5IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpzaG91bGRSZW1v
dmVBbGxCdXRDb29raWVzRm9yKFJlc291cmNlTG9hCiAgICAgcmV0dXJuIGlzUmVtb3ZhbEVuYWJs
ZWQgJiYgIWlzUmVzb3VyY2VHcmFuZGZhdGhlcmVkICYmICFoYXNIYWRVbmV4cGlyZWRSZWNlbnRV
c2VySW50ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0aWMsIHdpbmRvdyk7CiB9CiAKK2Jvb2wgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpzaG91bGRFbmZvcmNlU2FtZVNpdGVTdHJp
Y3RGb3IoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgcmVzb3VyY2VTdGF0aXN0aWMsIGJvb2wgc2hv
dWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykKK3sKKyAgICBpZiAoIWlzU2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudEVuYWJsZWQoKSB8fCAoc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyAmJiBy
ZXNvdXJjZVN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKHJlc291cmNlU3RhdGlzdGljLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5j
ZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQuc2l6ZSgpID4gcGFyYW1ldGVycygpLm1pbmltdW1U
b3BGcmFtZVJlZGlyZWN0c0ZvclNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQpIHsKKyAgICAgICAg
cmVzb3VyY2VTdGF0aXN0aWMudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudC5jbGVhcigpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0
cmljdFdlYnNpdGVEYXRhRm9yIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVn
aXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IoKQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtOTYxLDkgKzk3OCwxNiBAQCBSZWdpc3Ry
YWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvciBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5UwogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFG
b3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkgewogICAgICAgICAg
ICAgdG9EZWxldGVPclJlc3RyaWN0Rm9yLmRvbWFpbnNUb0RlbGV0ZUFsbENvb2tpZXNGb3IuYXBw
ZW5kKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7CiAgICAgICAgICAgICB0b0RlbGV0ZU9y
UmVzdHJpY3RGb3IuZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuYXBw
ZW5kKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7Ci0gICAgICAgIH0gZWxzZSBpZiAoc2hv
dWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3JhbmRm
YXRoZXJpbmcpKSB7Ci0gICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RGb3IuZG9tYWluc1Rv
RGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0YXRpc3RpYy5yZWdpc3Ry
YWJsZURvbWFpbik7Ci0gICAgICAgICAgICBzdGF0aXN0aWMuZ290TGlua0RlY29yYXRpb25Gcm9t
UHJldmFsZW50UmVzb3VyY2UgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGlmIChzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tG
b3JHcmFuZGZhdGhlcmluZykpIHsKKyAgICAgICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RG
b3IuZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0YXRp
c3RpYy5yZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgICAgICAgICAgc3RhdGlzdGljLmdvdExp
bmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlID0gZmFsc2U7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBpZiAoc2hvdWxkRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yKHN0YXRpc3Rp
Yywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpIHsKKyAgICAgICAgICAgICAgICB0b0Rl
bGV0ZU9yUmVzdHJpY3RGb3IuZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yLmFwcGVu
ZChzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4pOworICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIlNjaGVkdWxlZCAl
IiBQVUJMSUNfTE9HX1NUUklORyAiIHRvIGhhdmUgaXRzIGNvb2tpZXMgc2V0IHRvIFNhbWVTaXRl
PXN0cmljdC4iLCBzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmIChzaG91bGRD
bGVhckdyYW5kZmF0aGVyaW5nICYmIHN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IDVjOGE0NmRj
YTMzZmEyMzNlZDZjMWQ5OGFlNjQ1YjM4ODY5MzQwZDcuLjhkNjc2NjRlMDBkNmIzMWM3NDFmODcy
ODI0MWE3Yzg2ZDkzMmQ2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MmLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRSZW1vdmVB
bGxXZWJzaXRlRGF0YUZvcihSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVj
a0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKICAgICBib29sIHNob3VsZFJlbW92ZUFsbEJ1dENv
b2tpZXNGb3IoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFu
ZGZhdGhlcmluZykgY29uc3Q7CisgICAgYm9vbCBzaG91bGRFbmZvcmNlU2FtZVNpdGVTdHJpY3RG
b3IoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhl
cmluZyk7CiAgICAgdm9pZCBpbmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9yRG9tYWlucyhI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFByZXZh
bGVudFJlc291cmNlKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBSZXNvdXJjZUxvYWRQcmV2YWxl
bmNlKTsKICAgICB1bnNpZ25lZCByZWN1cnNpdmVseUdldEFsbERvbWFpbnNUaGF0SGF2ZVJlZGly
ZWN0ZWRUb1RoaXNEb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIEhhc2hTZXQ8
UmVkaXJlY3RlZFRvRG9tYWluPiYsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGU3MDYz
NTQyZjAwNWZkYTcxN2Y5YTQ1YTQ5NTExZjY1MzI5ZjVmZmMuLjQ3ODE0ZjM5NWU4OTgzNGUyMjg4
MDNiNzJlZTVmOGJmNmYxM2RiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmgKQEAgLTE2NSw2ICsxNjUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxl
bnRSZXNvdXJjZUZvckRlYnVnTW9kZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIHZv
aWQgc2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShXZWJDb3JlOjpUaGlyZFBhcnR5Q29v
a2llQmxvY2tpbmdNb2RlIG1vZGUpIHsgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0g
bW9kZTsgfTsKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJk
UGFydHlDb29raWVCbG9ja2luZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX3RoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGU7IH07CisgICAgdm9pZCBzZXRTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50
RW5hYmxlZChXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVk
KSB7IG1fc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPSBlbmFibGVkOyB9OworICAg
IGJvb2wgaXNTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgPT0gV2ViQ29yZTo6U2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6OlllczsgfTsKICAgICB2b2lkIHNldEZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlKFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlIG1vZGUpIHsgbV9maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IG1vZGU7
IH0KIAogICAgIHZpcnR1YWwgYm9vbCBhcmVBbGxUaGlyZFBhcnR5Q29va2llc0Jsb2NrZWRVbmRl
cihjb25zdCBUb3BGcmFtZURvbWFpbiYpID0gMDsKQEAgLTIyNSw2ICsyMjcsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIFNlY29uZHMgbWluRGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZFRv
Tm90QmVBUmVkaXJlY3QgeyA1X3MgfTsKICAgICAgICAgYm9vbCBzaG91bGROb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkIHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBzaG91bGRD
bGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCB7IHRydWUgfTsKKyAgICAg
ICAgc2l6ZV90IG1pbmltdW1Ub3BGcmFtZVJlZGlyZWN0c0ZvclNhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnQgeyAxMCB9OwogICAgICAgICBib29sIHNob3VsZFN1Ym1pdFRlbGVtZXRyeSB7IHRydWUg
fTsKICAgICAgICAgYm9vbCBpc1J1bm5pbmdUZXN0IHsgZmFsc2UgfTsKICAgICB9OwpAQCAtMjc4
LDYgKzI4MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RlYnVnTG9nZ2luZ0VuYWJsZWQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9kZWJ1Z01vZGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBXZWJD
b3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB9Owor
ICAgIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIG1fc2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgeyBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50RW5hYmxlZDo6Tm8gfTsKICAgICBib29sIG1fZGF0YVJlY29yZHNCZWluZ1JlbW92ZWQgeyBm
YWxzZSB9OwogICAgIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QgbV9zaG91bGRJbmNsdWRlTG9jYWxo
b3N0IHsgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6WWVzIH07CiAgICAgV2ViQ29yZTo6Rmlyc3RQ
YXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgbV9maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFs
TW9kZSB7IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlOjpBbGxCdXRD
b29raWVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwCmluZGV4IDIzNmRmNjY0ZTJjOWNlZDhhMTZiMThmYmQ4YmYxMjkzZDA5YjQ5YjYuLjA4ZWRl
NmM3YzNjNDEyY2Y3MzM0MjM0ZWE2NDc5YjkxMGFmMTA0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC01OTksNiArNTk5LDIxIEBAIHZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlKFRoaXJkUGFydHlDCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzZXRTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZChTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkKQoreworICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgcG9zdFRhc2soW3RoaXMsIGVuYWJsZWRdKCkgeworICAgICAgICBpZiAoIW1fc3Rh
dGlzdGljc1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc3RhdGlzdGlj
c1N0b3JlLT5zZXRTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZChlbmFibGVkKTsKKyAg
ICB9KTsKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldEZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlIG1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGNjNGU3YWQ3NTkxMjk3OGM2MmY4OWJlODIy
NDM0NDczODE0NDMxOTUuLjM1YjgzMDM3OTA2YmE2NmM0N2VhZTE0NDZmMGJhZTBjNGRhYWIxNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTgw
LDggKzgwLDkgQEAgc3RydWN0IFJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdl
YnNpdGVEYXRhRm9yIHsKICAgICBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRv
bWFpbnNUb0RlbGV0ZUFsbENvb2tpZXNGb3I7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluPiBkb21haW5zVG9EZWxldGVBbGxCdXRIdHRwT25seUNvb2tpZXNGb3I7CiAgICAg
VmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zVG9EZWxldGVBbGxOb25D
b29raWVXZWJzaXRlRGF0YUZvcjsKLSAgICBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVz
dHJpY3RXZWJzaXRlRGF0YUZvciBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGRvbWFp
bnNUb0RlbGV0ZUFsbENvb2tpZXNGb3IuaXNvbGF0ZWRDb3B5KCksIGRvbWFpbnNUb0RlbGV0ZUFs
bEJ1dEh0dHBPbmx5Q29va2llc0Zvci5pc29sYXRlZENvcHkoKSwgZG9tYWluc1RvRGVsZXRlQWxs
Tm9uQ29va2llV2Vic2l0ZURhdGFGb3IuaXNvbGF0ZWRDb3B5KCkgfTsgfQotICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0IHsgcmV0dXJuIGRvbWFpbnNUb0RlbGV0ZUFsbENvb2tpZXNGb3IuaXNFbXB0
eSgpICYmIGRvbWFpbnNUb0RlbGV0ZUFsbEJ1dEh0dHBPbmx5Q29va2llc0Zvci5pc0VtcHR5KCkg
JiYgZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuaXNFbXB0eSgpOyB9
CisgICAgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zVG9FbmZvcmNl
U2FtZVNpdGVTdHJpY3RGb3I7CisgICAgUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3Ry
aWN0V2Vic2l0ZURhdGFGb3IgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4geyBkb21haW5z
VG9EZWxldGVBbGxDb29raWVzRm9yLmlzb2xhdGVkQ29weSgpLCBkb21haW5zVG9EZWxldGVBbGxC
dXRIdHRwT25seUNvb2tpZXNGb3IuaXNvbGF0ZWRDb3B5KCksIGRvbWFpbnNUb0RlbGV0ZUFsbE5v
bkNvb2tpZVdlYnNpdGVEYXRhRm9yLmlzb2xhdGVkQ29weSgpLCBkb21haW5zVG9FbmZvcmNlU2Ft
ZVNpdGVTdHJpY3RGb3IuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNv
bnN0IHsgcmV0dXJuIGRvbWFpbnNUb0RlbGV0ZUFsbENvb2tpZXNGb3IuaXNFbXB0eSgpICYmIGRv
bWFpbnNUb0RlbGV0ZUFsbEJ1dEh0dHBPbmx5Q29va2llc0Zvci5pc0VtcHR5KCkgJiYgZG9tYWlu
c1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuaXNFbXB0eSgpICYmIGRvbWFpbnNU
b0VuZm9yY2VTYW1lU2l0ZVN0cmljdEZvci5pc0VtcHR5KCk7IH0KIH07CiAKIGNsYXNzIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUsIFdURjo6RGVzdHJ1Y3Rpb25UaHJl
YWQ6Ok1haW4+IHsKQEAgLTI3NCw2ICsyNzUsNyBAQCBzdHJ1Y3QgVGhpcmRQYXJ0eURhdGEgewog
CiAgICAgdm9pZCBoYXNDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlKFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUpOworICAgIHZv
aWQgc2V0U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQoV2ViQ29yZTo6U2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEVuYWJsZWQpOwogICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVdlYnNpdGVE
YXRhUmVtb3ZhbE1vZGUoV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3Jr
UHJvY2VzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IGI1MDNhNzdkMmY4ZDA4YTFjOTBkMjE2YmI5NjI4ZTcwNGI5ZGJiZTAu
LmYwYzg4OTg5ZGUyZTMwOTM3OTJiODJiZGI2NjBjNTVlMGY1MmFlNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0xMjk0LDYgKzEy
OTQsMTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29v
a2llc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2UKICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBuZXR3b3Jr
U2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCisgICAgICAgIG5ldHdv
cmtTZXNzaW9uLT5zZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQoZW5hYmxl
ZCk7CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBjb21wbGV0
aW9uSGFuZGxlcigpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5l
dHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDlmN2E3Zjll
NDNkN2JlZmMzNWYzYzZlYjA3NDM0YTliNDZkZDJhMTEuLmVkNWUxMWZjYjA2MWY2ZWNiM2JmYmQ4
N2NlODNlZjI1NzU2MzMxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmgKQEAgLTI2NSw2ICsyNjUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0lU
UERhdGFiYXNlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJVFBEYXRhYmFzZUVuYWJsZWQ7
IH0KICAgICB2b2lkIHNldFNob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhib29sLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0U2hvdWxkQmxvY2tUaGly
ZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlRoaXJkUGFy
dHlDb29raWVCbG9ja2luZ01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklELCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6Rmly
c3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBzZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNzljODc1NjEwNDJh
NDFmZTg5MzAxNDg3ZDQ1N2Y5MTFhODY3MWE2OC4uZGZkNjI0NDI0OWNjZmIwOGRhY2MwN2JiNmIx
NTc2MzhjOGFlMGE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNDAsNiArMTQwLDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEhhc0lzb2xhdGVkU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IGRvbWFpbikgLT4gKGJvb2wgaGFzSXNvbGF0ZWRTZXNzaW9uKSBBc3luYwogICAgIFNldFNob3Vs
ZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhib29sIGVuYWJsZWQpIC0+ICgpIEFzeW5jCiAg
ICAgU2V0U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSBibG9ja2luZ01vZGUpIC0+ICgpIEFzeW5jCisgICAgU2V0U2hvdWxkRW5ibGVTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGVudW06Ym9vbCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFi
bGVkKSAtPiAoKSBBc3luYwogICAgIFNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlKSAtPiAoKSBBc3luYwogICAg
IFNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikgLT4gKCkgQXN5bmMKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cAppbmRleCA3NDhiZDg0ZjY0Nzg1NzQzOTg2YmFmYmYyOGQ3NTdjNjQ4OGIyOWU2Li42YzI0YzU4
ZTZiNmEwY2U2OGIwNTE3MjUyODYzOWQ0YjFiYjI4ZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtODYsNiArODYsNyBAQCBOZXR3
b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
LCBjb25zdCBOZXR3b3JrU2VzcwogICAgICwgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFs
UHJldmFsZW50UmVzb3VyY2UocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycy5tYW51YWxQcmV2YWxlbnRSZXNvdXJjZSkKICAgICAsIG1fZW5hYmxlUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudChwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzLmVuYWJsZUxvZ1Rlc3RpbmdFdmVudCkKICAgICAsIG1fdGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nTW9kZShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzLnRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUpCisgICAgLCBtX3NhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRFbmFibGVkKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnMuc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQpCiAgICAgLCBtX2ZpcnN0UGFy
dHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUpCiAjZW5kaWYKICAg
ICAsIG1fYWRDbGlja0F0dHJpYnV0aW9uKG1ha2VVbmlxdWVSZWY8QWRDbGlja0F0dHJpYnV0aW9u
TWFuYWdlcj4obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklEKSkKQEAgLTIwMCw2
ICsyMDEsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpyZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRp
c3RpY1N0b3JlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKQogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6
Zm9yd2FyZFJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXR0aW5ncygpCiB7CiAgICAgbV9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLT5zZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKG1fdGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nTW9kZSk7CisgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5z
ZXRTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZChtX3NhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnRFbmFibGVkKTsKICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldEZpcnN0UGFy
dHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKG1fZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1v
ZGUsIFtdIHsgfSk7CiB9CiAKQEAgLTIyNSw2ICsyMjcsMTIgQEAgdm9pZCBOZXR3b3JrU2Vzc2lv
bjo6bm90aWZ5UGFnZVN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hlZCh1bnNpZ25lZCBudW1iZXJP
ZlByZXYKIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6ZGVsZXRlQW5kUmVzdHJpY3RXZWJzaXRlRGF0
YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlw
ZXMsIFJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yJiYg
ZG9tYWlucywgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CisgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkp
IHsKKyAgICAgICAgZm9yIChhdXRvJiBkb21haW4gOiBkb21haW5zLmRvbWFpbnNUb0VuZm9yY2VT
YW1lU2l0ZVN0cmljdEZvcikKKyAgICAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5zZXRBbGxDb29r
aWVzVG9TYW1lU2l0ZVN0cmljdChkb21haW4sIFtdIHsgfSk7CisgICAgfQorICAgIGRvbWFpbnMu
ZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yLmNsZWFyKCk7CisKICAgICBtX25ldHdv
cmtQcm9jZXNzLT5kZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21h
aW5zKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIFdURk1vdmUoZG9tYWlucyksIHNob3VsZE5vdGlm
eVBhZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApAQCAtMjUwLDYgKzI1OCwx
NCBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
KFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZAogICAgIGlmIChtX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MpCiAgICAgICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nTW9kZShibG9ja2luZ01vZGUpOwogfQorCit2b2lkIE5ldHdvcmtTZXNzaW9u
OjpzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQoV2ViQ29yZTo6U2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCkKK3sKKyAgICBBU1NFUlQobV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKTsKKyAgICBtX3NhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFi
bGVkID0gZW5hYmxlZDsKKyAgICBpZiAobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQorICAgICAg
ICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRF
bmFibGVkKGVuYWJsZWQpOworfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OnN0b3JlQWRDbGlja0F0dHJpYnV0aW9uKFdl
YkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCBjOWExN2RhMTAy
Y2RlNmQ1YTI0NWRkNWJmNGU3YmEzYmIxZTU3OGExLi40NjM0MjkzNTM3NzExMWFlYmIyODQ3ZGNh
ODBkZGU1YjQ5NzJmMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hv
dWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKGJvb2wpOwogICAgIGJvb2wgc2hvdWxkRG93
bmdyYWRlUmVmZXJyZXIoKSBjb25zdDsKICAgICB2b2lkIHNldFRoaXJkUGFydHlDb29raWVCbG9j
a2luZ01vZGUoV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSk7CisgICAgdm9p
ZCBzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQoV2ViQ29yZTo6U2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQpOwogI2VuZGlmCiAgICAgCiAgICAgdmlydHVhbCBi
b29sIGhhc0FwcEJvdW5kU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xNjEs
NiArMTYyLDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9lbmFibGVSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTG9nVGVzdGluZ0V2ZW50OwogICAgIGJvb2wgbV9kb3duZ3JhZGVSZWZlcnJlciB7IHRy
dWUgfTsKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIG1fdGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU6OkFsbCB9OworICAgIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFi
bGVkIG1fc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgeyBXZWJDb3JlOjpTYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6Tm8gfTsKICAgICBXZWJDb3JlOjpGaXJzdFBhcnR5
V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtX2ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
IHsgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU6OkFsbEJ1dENvb2tp
ZXMgfTsKICNlbmRpZgogICAgIGJvb2wgbV9pc1N0YWxlV2hpbGVSZXZhbGlkYXRlRW5hYmxlZCB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAy
OTkyODA2NDNkNDY4NzM4Mzk0NmEwZTQ0MzczNDA4MTJjZGZkNmI4Li40NDQ0ZjMxZjdlOGJjNDg2
YTcyZDRhODhlNWUyNTJlMWJjNjExMWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTYyOCw2ICs2MjgsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBl
KToKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1R5cGUnOiBbJzxXZWJDb3JlL1RleHRD
aGVja2luZy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEnOiBbJzxX
ZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGUnOiBbJzxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPidd
LAorICAgICAgICAnV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQnOiBb
JzxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUnOiBbJzxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6VXNlZExlZ2FjeVRMUyc6IFsnPFdl
YkNvcmUvUmVzb3VyY2VSZXNwb25zZUJhc2UuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlZpZXdw
b3J0QXR0cmlidXRlcyc6IFsnPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4nXSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycy5oCmluZGV4IGVhYjE4YTQ2MGIxMzM0YTc5ZjE2YTBjN2E0ODU5MzVlYjFkMzczYzQuLmY0
OTc2MDkzNTg3ZTRiOGZiM2Q1YmEwOWZmOWI5YzA0ZTNkMmY4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaApA
QCAtNDQsNiArNDQsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMg
ewogICAgIGJvb2wgZW5hYmxlRGVidWdNb2RlIHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGU6OkFsbCB9OworICAgIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkIHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIHsgV2ViQ29y
ZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vIH07CiAjZW5kaWYKICAgICBX
ZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBmaXJzdFBhcnR5V2Vic2l0
ZURhdGFSZW1vdmFsTW9kZSB7IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlOjpBbGxCdXRDb29raWVzIH07CiAgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gbWFu
dWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OwpAQCAtNTksNiArNjAsNyBAQCBzdHJ1Y3QgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgewogICAgICAgICBlbmNvZGVyIDw8IGVuYWJsZURl
YnVnTW9kZTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgICAgICBl
bmNvZGVyIDw8IHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU7CisgICAgICAgIGVuY29kZXIg
PDwgc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ7CiAjZW5kaWYKICAgICAgICAgZW5j
b2RlciA8PCBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKICAgICAgICAgZW5jb2Rl
ciA8PCBtYW51YWxQcmV2YWxlbnRSZXNvdXJjZTsKQEAgLTEwNiw2ICsxMDgsMTEgQEAgc3RydWN0
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHsKICAgICAgICAgZGVjb2RlciA+PiB0
aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwogICAgICAgICBpZiAoIXRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGUpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkPiBz
YW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDsKKyAgICAgICAgZGVjb2RlciA+PiBzYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDsKKyAgICAgICAgaWYgKCFzYW1lU2l0ZVN0cmlj
dEVuZm9yY2VtZW50RW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAj
ZW5kaWYKIAogICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFS
ZW1vdmFsTW9kZT4gZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU7CkBAIC0xMjgsNiAr
MTM1LDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHsKICAgICAg
ICAgICAgIFdURk1vdmUoKmVuYWJsZURlYnVnTW9kZSksCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKICAgICAgICAgICAgIFdURk1vdmUoKnRoaXJkUGFydHlDb29raWVCbG9j
a2luZ01vZGUpLAorICAgICAgICAgICAgV1RGTW92ZSgqc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dEVuYWJsZWQpLAogI2VuZGlmCiAgICAgICAgICAgICBXVEZNb3ZlKCpmaXJzdFBhcnR5V2Vic2l0
ZURhdGFSZW1vdmFsTW9kZSksCiAgICAgICAgICAgICBXVEZNb3ZlKCptYW51YWxQcmV2YWxlbnRS
ZXNvdXJjZSksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBh
YTI5NjlmMWM5ZmFhNmEzZGM2ZTI5YmY0MTVlYzM5MTVmY2ViYTQyLi5jNmZkZGI2MTIwZjJjOTU4
YjMwMjE1NTIyMjBiODk5MWZhYjMyMmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKQEAgLTE5MjgsNiArMTkyOCwxMyBAQCBJc0ZpcnN0UGFydHlXZWJzaXRlRGF0
YVJlbW92YWxSZXByb1Rlc3RpbmdFbmFibGVkOgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246
ICJSZW1vdmUgYWxsIG5vbi1jb29raWUgd2Vic2l0ZSBkYXRhIGFmdGVyIGp1c3QgMzAgc2Vjb25k
cyBvZiBubyB1c2VyIGludGVyYWN0aW9uIHdoZW4gSW50ZWxsaWdlbnQgVHJhY2tpbmcgUHJldmVu
dGlvbiBpcyBlbmFibGVkIgogICBjYXRlZ29yeTogaW50ZXJuYWwKIAorSXNTYW1lU2l0ZVN0cmlj
dEVuZm9yY2VtZW50RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNl
CisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU2FtZVNpdGUgc3RyaWN0IGVuZm9yY2VtZW50IChJVFAp
IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2FtZVNpdGUgc3RyaWN0IGVu
Zm9yY2VtZW50IHRvIG1pdGlnYXRlIGJvdW5jZSB0cmFja2luZyIKKyAgY2F0ZWdvcnk6IGV4cGVy
aW1lbnRhbAorCiBJc0xvZ2dlZEluQVBJRW5hYmxlZDoKICAgICB0eXBlOiBib29sCiAgICAgZGVm
YXVsdFZhbHVlOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSU5hdmlnYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uLmgKaW5kZXggOWQ5N2I4MmU2ZWE5OWU3YTMxYzI2NTRkNTNkNTNiNjdmZGI4OGQyZS4uODhi
MWY1NmQwZWYxMTViMmZjZjQ2NzhmYWE2YWJkNDkxZjk2Y2VlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCkBAIC0xNTYsNiArMTU2LDkgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzZXRGb3JlZ3JvdW5kQWN0aXZpdHkoc3RkOjp1bmlxdWVfcHRyPFdlYktp
dDo6UHJvY2Vzc1Rocm90dGxlcjo6Rm9yZWdyb3VuZEFjdGl2aXR5PiYmIGFjdGl2aXR5KSB7IG1f
Zm9yZWdyb3VuZEFjdGl2aXR5ID0gV1RGTW92ZShhY3Rpdml0eSk7IH0KIAorICAgIHZvaWQgc2V0
SXNMb2FkZWRXaXRoTmF2aWdhdGlvblNoYXJlZChib29sIHZhbHVlKSB7IG1faXNMb2FkZWRXaXRo
TmF2aWdhdGlvblNoYXJlZCA9IHZhbHVlOyB9CisgICAgYm9vbCBpc0xvYWRlZFdpdGhOYXZpZ2F0
aW9uU2hhcmVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVk
OyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmln
YXRpb25TdGF0ZSYpOwogICAgIE5hdmlnYXRpb24oV2ViS2l0OjpXZWJOYXZpZ2F0aW9uU3RhdGUm
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiBmcm9tSXRlbSk7CkBAIC0xNzgsNiArMTgxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
dXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCB7IHRydWUgfTsKICAgICBXZWJLaXQ6OldlYkNv
bnRlbnRNb2RlIG1fZWZmZWN0aXZlQ29udGVudE1vZGUgeyBXZWJLaXQ6OldlYkNvbnRlbnRNb2Rl
OjpSZWNvbW1lbmRlZCB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlByb2Nlc3NUaHJv
dHRsZXI6OkZvcmVncm91bmRBY3Rpdml0eT4gbV9mb3JlZ3JvdW5kQWN0aXZpdHk7CisgICAgYm9v
bCBtX2lzTG9hZGVkV2l0aE5hdmlnYXRpb25TaGFyZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCA5N2FmY2FiNjg1NzJmMTk0Yzg5NzI5ZmQy
NjhjODU4OWI3MjZhMDBiLi42NTc2ZTZmNzhlNDc1ZTI1NjlmYzM5NzMyNTFhNWY4NjU4ZWUzOGM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTYwNiw2ICs2MDYsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYQogICAgIHN0b3JlLnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JU
ZXN0aW5nKFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigp
XSB7IH0pOwogICAgIHN0b3JlLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NTaG91bGREb3duZ3Jh
ZGVSZWZlcnJlckZvclRlc3RpbmcodHJ1ZSwgW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNr
QWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CiAgICAgc3RvcmUuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nKGZhbHNlLCBmYWxz
ZSwgW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsg
fSk7CisgICAgc3RvcmUuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEVuYmxlU2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcodHJ1ZSwgW2NhbGxiYWNrQWdncmVnYXRvciA9
IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CiAgICAgc3RvcmUuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGlu
ZyhmYWxzZSwgW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVm
KCldIHsgfSk7CiAgICAgc3RvcmUucmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFtjYWxs
YmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogICAg
IHN0b3JlLnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoV2ViS2l0OjpTaG91bGRH
cmFuZGZhdGhlclN0YXRpc3RpY3M6Ok5vLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tB
Z2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGY5ODU1ODlkMjky
MWNlZTY4N2MwNzQ1M2E3MzQ5ZTY5OTk3ZjZjZDEuLmY4NWU5OGI2MWM2MDg0YzNkYTdhMTYyNTVl
MTAxMzUzNWY4MTE5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTE1Niw2ICsxMTU2LDExIEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0Zv
clRlc3RpbmcoUEFMOjpTZXNzaW9uCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6U2V0U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0ZvclRlc3Rpbmco
c2Vzc2lvbklELCBibG9ja2luZ01vZGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmlj
dEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6
OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRGb3JUZXN0aW5nKHNlc3Npb25JRCwgZW5hYmxlZCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRGaXJzdFBh
cnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVz
c2FnZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDI0MGMzNTcxZTEzNzgyOGY4NWE4YTJiNTU5YmQzNWVh
Yjk5MTVhOTQuLmFlZmM0NjBlZWYxZTMwYzNkMDA2YmE0Y2VhNjAxMDNjZTBhZTAwNGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCkBAIC0xNzMsNiArMTczLDcgQEAgcHVibGljOgogICAgIHZvaWQgaGFzSXNvbGF0ZWRT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0U2hvdWxkRG93bmdyYWRlUmVm
ZXJyZXJGb3JUZXN0aW5nKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCwgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgc2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklELCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFRvU2FtZVNpdGVTdHJpY3RD
b29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkMzUyMDE1YWE5OWU3ZDY1OThlMGQ3MGY1Yjhh
Yjc1YmFmZDY2ZWQ0Li4yNmM2OTdiYTE3YWI2NzNlYThlYjUxNmExMzQ1MzY4ZDEzN2ZkYzViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEzMzAsNiArMTMz
MCw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAKICAgICBwcmVjb25uZWN0VG8odXJsKTsK
IAorICAgIG5hdmlnYXRpb24uc2V0SXNMb2FkZWRXaXRoTmF2aWdhdGlvblNoYXJlZCh0cnVlKTsK
KwogI2lmIEhBVkUoU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX0FV
RElUX1RPS0VOKQogICAgIGlmICghcHJvY2Vzcy0+aXNMYXVuY2hpbmcoKSB8fCAhdXJsLmlzTG9j
YWxGaWxlKCkpCiAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRS
ZXF1ZXN0KGxvYWRQYXJhbWV0ZXJzKSwgd2ViUGFnZUlEKTsKQEAgLTUxNjgsOCArNTE3MCw5IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAKICAgICBhdXRvIHVzZXJJbml0aWF0ZWRBY3Rpdml0
eSA9IHByb2Nlc3MtPnVzZXJJbml0aWF0ZWRBY3Rpdml0eShuYXZpZ2F0aW9uQWN0aW9uRGF0YS51
c2VyR2VzdHVyZVRva2VuSWRlbnRpZmllcik7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyAgICBhdXRvIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyID0gbmF2aWdh
dGlvbi0+aXNMb2FkZWRXaXRoTmF2aWdhdGlvblNoYXJlZCgpIHx8IHVzZXJJbml0aWF0ZWRBY3Rp
dml0eTsKICAgICBpZiAoIXNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCi0gICAgICAgIGxvZ0Zy
YW1lTmF2aWdhdGlvbihmcmFtZSwgVVJMKFVSTCgpLCBtX3BhZ2VMb2FkU3RhdGUudXJsKCkpLCBy
ZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLnVybCgpLCAhIXVzZXJJbml0aWF0ZWRBY3Rpdml0eSk7
CisgICAgICAgIGxvZ0ZyYW1lTmF2aWdhdGlvbihmcmFtZSwgVVJMKFVSTCgpLCBtX3BhZ2VMb2Fk
U3RhdGUudXJsKCkpLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLnVybCgpLCB3YXNQb3RlbnRp
YWxseUluaXRpYXRlZEJ5VXNlcik7CiAjZW5kaWYKIAogICAgIGlmIChtX3BvbGljeUNsaWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAyNDVmNWVi
OWRlZjgyNmI1NmRiODQxZDNhODdmYjc0YjExYjQxODg5Li4yOTVhNDllN2M1ZDcwOWI2YTE3YzM3
MThlNGJiYzhmNjA2N2M2YzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCkBAIC02MDAsNiArNjAwLDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJv
Y2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdpdGgKICAg
ICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGUgPSBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOjpBbGw7
CiAjZW5kaWYKICAgICBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBm
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlOjpBbGxCdXRDb29raWVzOworICAgIFdlYkNvcmU6OlNhbWVTaXRl
U3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVk
ID0gV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vOwogICAgIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG1hbnVhbFByZXZhbGVudFJlc291cmNlIHsgfTsKICAg
ICBXRUJfUFJPQ0VTU19QT09MX0FERElUSU9OU18yCiAgICAgaWYgKHdpdGhXZWJzaXRlRGF0YVN0
b3JlKSB7CkBAIC02MTMsNiArNjE0LDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJvY2Vz
c1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdpdGgKICAgICAg
ICAgICAgIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPSBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZW5hYmxlRGVi
dWdNb2RlOwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgICAgICAg
ICB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU7CisgICAgICAgICAgICBzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCA9IG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5z
YW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDsKICNlbmRpZgogICAgICAgICAgICAgZmly
c3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgPSBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
cmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGU7CiAgICAgICAgICAgICBtYW51YWxQcmV2YWxlbnRSZXNvdXJjZSA9IG5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5tYW51YWxQ
cmV2YWxlbnRSZXNvdXJjZTsKQEAgLTYzNyw2ICs2MzksNyBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5
JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSog
d2l0aAogICAgICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9
IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
cy5lbmFibGVEZWJ1Z01vZGU7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
ICAgICAgICAgICAgIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSBuZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMudGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nTW9kZTsKKyAgICAgICAgICAgIHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRF
bmFibGVkID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
YXJhbWV0ZXJzLnNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOwogI2VuZGlmCiAgICAg
ICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IG5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5maXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZTsKICAgICAgICAgICAgIG1hbnVhbFByZXZhbGVudFJlc291cmNl
ID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzLm1hbnVhbFByZXZhbGVudFJlc291cmNlOwpAQCAtNjc1LDYgKzY3OCw3IEBAIE5ldHdvcmtQ
cm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3b3JrUHJvY2VzcyhXZWJzaXRl
RGF0YVN0b3JlKiB3aXRoCiAgICAgICAgIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1
Z01vZGUsCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICAgICAgdGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSwKKyAgICAgICAgc2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEVuYWJsZWQsCiAjZW5kaWYKICAgICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3Zh
bE1vZGUsCiAgICAgICAgIG1hbnVhbFByZXZhbGVudFJlc291cmNlLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0
ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IDAxNmQxMmM5MDFhMDhmNjVhZmVlMGJmY2RhNmFiN2Qw
YzllMjgzMDkuLjk2ZmY0NGM1M2Y3NjFiZTRhZjkzOWQyNjI0ZWJkZTBkYmUwMTI0NmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVE
YXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTk5LDEwICs5OSwxNSBAQCBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAg
ICBOU1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdOwogICAgIGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBmYWxzZTsK
ICAgICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPSBmYWxzZTsK
KyAgICBhdXRvIHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkID0gV2ViQ29yZTo6U2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vOwogICAgIGF1dG8gZmlyc3RQYXJ0eVdl
YnNpdGVEYXRhUmVtb3ZhbE1vZGUgPSBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZTo6QWxsQnV0Q29va2llczsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OwogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZSA9IFtkZWZhdWx0cyBib29sRm9yS2V5OkAiSVRQRGVidWdNb2RlIl07
CisKKyAgICBpZiAoW2RlZmF1bHRzIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCJFeHBlcmltZW50YWwlQCIsIFdlYlByZWZlcmVuY2VzS2V5Ojppc1NhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRFbmFibGVkS2V5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1dKQorICAgICAg
ICBzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCA9IFdlYkNvcmU6OlNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkOjpZZXM7CisKICAgICBpZiAoW2RlZmF1bHRzIGJvb2xGb3JL
ZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJFeHBlcmltZW50YWwlQCIsIFdlYlByZWZl
cmVuY2VzS2V5Ojppc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxEaXNhYmxlZEtleSgpLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCldXSkKICAgICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGUgPSBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTo6Tm9u
ZTsKICAgICBlbHNlIHsKQEAgLTE4MSw2ICsxODYsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAgICAgc2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKICAgICAgICAgZW5hYmxlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKICAgICAgICAgdGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSgpLAorICAgICAgICBzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwKICAg
ICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsCiAgICAgICAgIFdURk1vdmUo
cmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlKSwKICAgICB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAppbmRleCA0YWU4ZWU5NzU0MmUyMDc0NDA2NDY4MmU5MmJmNDA3ODUxOTY3
NTY2Li5lZGU2NzI5ZWI1YzkwYmIzZjExNDMyZmQyZmU0ZWRkYjQ0MGFhYWY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcApAQCAtMTg0Nyw2ICsxODQ3LDE3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNGb3JUCiAg
ICAgfQogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKGJvb2wgZW5h
YmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGF1dG8gZmxhZyA9IGVuYWJsZWQgPyBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50RW5hYmxlZDo6WWVzIDogV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJs
ZWQ6Ok5vOworCisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0
b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgZm9yIChhdXRvJiBw
cm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKSB7CisgICAgICAgIGlmIChhdXRvKiBuZXR3b3Jr
UHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQorICAgICAgICAgICAgbmV0
d29ya1Byb2Nlc3MtPnNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRl
c3RpbmcobV9zZXNzaW9uSUQsIGZsYWcsIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0Fn
Z3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworICAgIH0KK30KKwogdm9pZCBXZWJzaXRlRGF0YVN0
b3JlOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3Zh
bE1vZGVGb3JUZXN0aW5nKGJvb2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2Fs
bGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCmluZGV4IDQ1M2Q4ZjFlYjdjYjdmNTdiMGZjYTE0YzE0ZDc0MGQxNWE3ZDI5ODEuLjhk
ZWQ5NzhjZTFmNjE5OTBiMGExY2FkMGI2NmE5NjA5OWQxYWY4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAg
LTE5NSw2ICsxOTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBoYXNJc29sYXRlZFNlc3Npb25Gb3JU
ZXN0aW5nKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGNvbnN0
OwogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJlZmVy
cmVyRm9yVGVzdGluZyhib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNG
b3JUZXN0aW5nKGJvb2wgZW5hYmxlZCwgYm9vbCBvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJh
Y3Rpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVz
dGluZyhib29sIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1v
ZGVGb3JUZXN0aW5nKGJvb2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUb1NhbWVTaXRlU3RyaWN0Q29va2ll
c0ZvclRlc3RpbmcoY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYWZjMDliMGE4ZWI4ZWVlYTdhNDM3MzUyM2Mz
MzExODFiMGNlZTljLi41MjBjYzE2NzQ2ZjkzNjdkNzM0YTA0MmU1MjM1OGQ3ZDczYmIwMDg3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDMtMzAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwZXJpbWVudGFsOiBFbmZvcmNlIFNhbWVTaXRlPXN0
cmljdCBmb3IgZG9tYWlucyBjbGFzc2lmaWVkIGFzIGJvdW5jZSB0cmFja2VycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzYxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81OTM5NDk0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxn
aGFtIGFuZCBLYXRlIENoZW5leSAoaW5mb3JtYWwpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0LWJhc2VkLW9uLXRv
cC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2Ft
ZXNpdGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJl
ZGlyZWN0cy10by1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3At
ZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgICAgIE5ldyB0ZXN0IGNhc2VzIG1hcmtl
ZCBhcyBwYXNzIGZvciBDYXRhbGluYSsgYmFzZWQgb24gQ0ZOZXR3b3JrIEFQSSBhdmFpbGFiaWxp
dHkuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAgICAgTmV3IHRlc3QgY2FzZXMgbWFya2VkIGFzIHBhc3MgZm9yIENhdGFsaW5hKyBiYXNlZCBv
biBDRk5ldHdvcmsgQVBJIGF2YWlsYWJpbGl0eS4KKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgICAgIE5ldyB0ZXN0IGNhc2VzIG1hcmtlZCBhcyBza2lw
IGR1ZSB0byBDRk5ldHdvcmsgQVBJIGF2YWlsYWJpbGl0eS4KKwogMjAyMC0wMy0zMCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBzY3JvbGxJbnRvVmll
dygpIGVycm9uZW91c2x5IHNjcm9sbHMgbm9uLWNvbnRhaW5pbmcgYmxvY2sgc2Nyb2xsZXJzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVj
dHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1m
cmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMDBiMTg1M2FkMzUxNzMzNmI4N2M3YzQzMDNmMDI3ZTQwMjdhZWQ3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9y
Y2Utc2FtZXNpdGUtc3RyaWN0LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRv
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyBmb3IgU2FtZVNp
dGU9c3RyaWN0IGVuZm9yY2VtZW50IGJhc2VkIG9uIHRvcCBmcmFtZSB1bmlxdWUgcmVkaXJlY3Rz
IHRvLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb29raWUgd2FzIG5v
dCBTYW1lU2l0ZT1zdHJpY3QgYmVmb3JlIHRlc3QuCitQQVNTIENvb2tpZSB3YXMgU2FtZVNpdGU9
c3RyaWN0IGFmdGVyIGZpcnN0IHRlc3QuCitQQVNTIENvb2tpZSB3YXMgbm90IFNhbWVTaXRlPXN0
cmljdCBhZnRlciBzZWNvbmQgdGVzdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9w
LWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1i
YXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQwYTMzMjMyMDdkZTk5YTY0MGE0MDA5ZGI1MDA3MDljZjk3NDY3MjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVj
dHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDk4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBTYW1lU2l0ZT1zdHJpY3Qg
ZW5mb3JjZW1lbnQgYmFzZWQgb24gdG9wIGZyYW1lIHVuaXF1ZSByZWRpcmVjdHMgdG8uIik7Cisg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9z
dFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgZnVuY3Rpb24gc2V0TXVsdGlwbGVUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSkgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEy
Ny4wLjAuMzo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC40
OjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90
ZW1wIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVk
aXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEyNy4wLjAuNjo4MDAwL3RlbXAiKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRv
KHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC43OjgwMDAvdGVtcCIpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJl
Y3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjg6ODAwMC90ZW1wIik7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1Bh
cnR5LCAiaHR0cDovLzEyNy4wLjAuOTo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJo
dHRwOi8vMTI3LjAuMC4xMDo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8v
MTI3LjAuMC4xMTo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAu
MC4xMjo4MDAwL3RlbXAiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7
CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAg
aWYgKGNvb2tpZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91
bGQgaGF2ZSBleGFjdGx5IG9uZSBjb29raWUgYmVmb3JlIHRlc3QgYnV0IGZvdW5kICIgKyBjb29r
aWVzLmxlbmd0aCArICIgY29va2llcy4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoY29va2llc1swXS5pc1NhbWVTaXRlU3RyaWN0KQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQ29va2llIHdhcyBTYW1lU2l0ZT1zdHJpY3QgYWZ0ZXIgc2Vjb25kIHRlc3QuIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSB3YXMgbm90IFNh
bWVTaXRlPXN0cmljdCBhZnRlciBzZWNvbmQgdGVzdC4iKTsKKworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNlY29u
ZFN0ZXAoKSB7CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsK
KyAgICAgICAgaWYgKGNvb2tpZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJTaG91bGQgaGF2ZSBleGFjdGx5IG9uZSBjb29raWUgYmVmb3JlIHRlc3QgYnV0IGZvdW5k
ICIgKyBjb29raWVzLmxlbmd0aCArICIgY29va2llcy4iKTsKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNv
b2tpZXNbMF0uaXNTYW1lU2l0ZVN0cmljdCkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tp
ZSB3YXMgU2FtZVNpdGU9c3RyaWN0IGFmdGVyIGZpcnN0IHRlc3QuIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSB3YXMgbm90IFNhbWVTaXRlPXN0cmljdCBh
ZnRlciBmaXJzdCB0ZXN0LiIpOworCisgICAgICAgIC8vIFNldCB0aGUgY29va2llIGFnYWluIHRv
IHJlc2V0IGl0cyBTYW1lU2l0ZSBzdGF0dXMuCisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJj
bGllbnRTaWRlQ29va2llPTEiOworCisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUg
PSAiY2xpZW50U2lkZUNvb2tpZT0xIjsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSk7CisKKyAgICAgICAg
bGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBpZiAoY29va2ll
cy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGV4
YWN0bHkgb25lIGNvb2tpZSBiZWZvcmUgdGVzdCBidXQgZm91bmQgIiArIGNvb2tpZXMubGVuZ3Ro
ICsgIiBjb29raWVzLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChjb29raWVzWzBdLmlzU2FtZVNpdGVTdHJpY3QpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b29raWUgd2FzIFNhbWVTaXRlPXN0cmljdCBiZWZvcmUgdGVzdC4iKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIHdhcyBub3QgU2FtZVNpdGU9c3RyaWN0IGJl
Zm9yZSB0ZXN0LiIpOworCisgICAgICAgIHNldE11bHRpcGxlVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKHN0YXRpc3RpY3NVcmwpOworCisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhzZWNvbmRTdGVwKTsKKworICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAg
fQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmlj
dC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1l
c2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmEwMGIxODUzYWQzNTE3MzM2Yjg3YzdjNDMwM2YwMjdlNDAyN2Fl
ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24tdG9wLWZyYW1lLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIGZv
ciBTYW1lU2l0ZT1zdHJpY3QgZW5mb3JjZW1lbnQgYmFzZWQgb24gdG9wIGZyYW1lIHVuaXF1ZSBy
ZWRpcmVjdHMgdG8uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvb2tp
ZSB3YXMgbm90IFNhbWVTaXRlPXN0cmljdCBiZWZvcmUgdGVzdC4KK1BBU1MgQ29va2llIHdhcyBT
YW1lU2l0ZT1zdHJpY3QgYWZ0ZXIgZmlyc3QgdGVzdC4KK1BBU1MgQ29va2llIHdhcyBub3QgU2Ft
ZVNpdGU9c3RyaWN0IGFmdGVyIHNlY29uZCB0ZXN0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNl
ZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0LWJh
c2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVl
ZmEzOTdiMDI0NjFkZmMxM2ExOTg2MjFkNWQzMDhiMjM0NmNlNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNh
bWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1s
CkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgZm9yIFNhbWVTaXRlPXN0cmljdCBlbmZvcmNlbWVudCBiYXNlZCBv
biB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAg
IGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1w
IjsKKyAgICBmdW5jdGlvbiBzZXRNdWx0aXBsZVRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRp
cmVjdGluZ1BhcnR5KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1l
VW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDovLzEyNy4wLjAuMjo4MDAw
L3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCIp
OworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIik7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRp
cmVjdGluZ1BhcnR5LCAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5n
UGFydHksICJodHRwOi8vMTI3LjAuMC42OjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwg
Imh0dHA6Ly8xMjcuMC4wLjc6ODAwMC90ZW1wIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhyZWRpcmVjdGluZ1BhcnR5LCAiaHR0cDov
LzEyNy4wLjAuODo4MDAwL3RlbXAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHJlZGlyZWN0aW5nUGFydHksICJodHRwOi8vMTI3LjAu
MC45OjgwMDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjEwOjgw
MDAvdGVtcCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjExOjgwMDAvdGVt
cCIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0VG8ocmVkaXJlY3RpbmdQYXJ0eSwgImh0dHA6Ly8xMjcuMC4wLjEyOjgwMDAvdGVtcCIpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgbGV0IGNvb2tp
ZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBpZiAoY29va2llcy5sZW5ndGgg
IT09IDEpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGV4YWN0bHkgb25l
IGNvb2tpZSBiZWZvcmUgdGVzdCBidXQgZm91bmQgIiArIGNvb2tpZXMubGVuZ3RoICsgIiBjb29r
aWVzLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb29raWVz
WzBdLmlzU2FtZVNpdGVTdHJpY3QpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgd2Fz
IFNhbWVTaXRlPXN0cmljdCBhZnRlciBzZWNvbmQgdGVzdC4iKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIHdhcyBub3QgU2FtZVNpdGU9c3RyaWN0IGFmdGVy
IHNlY29uZCB0ZXN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25kU3RlcCgpIHsKKyAgICAgICAg
bGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBpZiAoY29va2ll
cy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGV4
YWN0bHkgb25lIGNvb2tpZSBiZWZvcmUgdGVzdCBidXQgZm91bmQgIiArIGNvb2tpZXMubGVuZ3Ro
ICsgIiBjb29raWVzLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChjb29raWVzWzBdLmlzU2FtZVNpdGVTdHJpY3QpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJD
b29raWUgd2FzIFNhbWVTaXRlPXN0cmljdCBhZnRlciBmaXJzdCB0ZXN0LiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgd2FzIG5vdCBTYW1lU2l0ZT1zdHJp
Y3QgYWZ0ZXIgZmlyc3QgdGVzdC4iKTsKKworICAgICAgICAvLyBTZXQgdGhlIGNvb2tpZSBhZ2Fp
biB0byByZXNldCBpdHMgU2FtZVNpdGUgc3RhdHVzLgorICAgICAgICBkb2N1bWVudC5jb29raWUg
PSAiY2xpZW50U2lkZUNvb2tpZT0xIjsKKworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29v
a2llID0gImNsaWVudFNpZGVDb29raWU9MSI7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUpOworCisgICAg
ICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKGNv
b2tpZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2
ZSBleGFjdGx5IG9uZSBjb29raWUgYmVmb3JlIHRlc3QgYnV0IGZvdW5kICIgKyBjb29raWVzLmxl
bmd0aCArICIgY29va2llcy4iKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvb2tpZXNbMF0uaXNTYW1l
U2l0ZVN0cmljdCkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSB3YXMgU2FtZVNpdGU9
c3RyaWN0IGJlZm9yZSB0ZXN0LiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJDb29raWUgd2FzIG5vdCBTYW1lU2l0ZT1zdHJpY3QgYmVmb3JlIHRlc3QuIik7CisKKyAg
ICAgICAgc2V0TXVsdGlwbGVUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCk7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKHNlY29uZFN0ZXApOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBkMDZlOTk2NzA1ZWRmYjdiNTZhNjMyN2M5ODUxNzZjMjU1NGUwMzY3
Li45MmEyYTgzYzUyNWFhZTI2N2U2YTE5MzdhNmE1Yzc3ZTlmMzgzY2MyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjc0NCw2ICsyNzQ0LDggQEAgaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1m
b3ItdGhpcmQtcGFydHktcmVxdWUKIAogIyBUaGUgU2FtZVNpdGUgY29va2llIEFQSSBpcyBvbmx5
IGF2YWlsYWJsZSBpbiBtYWNPUyBDYXRhbGluYSBhbmQgYWJvdmUsIGFuZCB0aHVzIHNraXBwZWQg
Zm9yIFdLMiBpbiBnZW5lcmFsLgogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nl
dC1hbGwtY29va2llcy10by1zYW1lLXNpdGUtc3RyaWN0Lmh0bWwgWyBQYXNzIF0KK2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1v
bi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sIFsgUGFzcyBdCitodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5mb3JjZS1zYW1lc2l0ZS1zdHJpY3QtYmFzZWQtb24t
dG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbCBbIFBhc3MgXQogCiBo
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXIu
aHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nl
c3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy5odG1sIFsgUGFzcyBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWUyMGQwMDQ1MzEw
NTZlZWJjMDViMGE2MzEyMDY5NWNjYzVhM2U3OS4uYTgwYmJjNjMxN2MxMTk4MjZhNGY1MzMzOWFl
MWE4YWJkZmFlOTdiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNzEzLDYgKzcxMyw4IEBAIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLmh0bWwKIAog
IyBUaGUgU2FtZVNpdGUgY29va2llIEFQSSBpcyBvbmx5IGF2YWlsYWJsZSBpbiBtYWNPUyBDYXRh
bGluYSBhbmQgYWJvdmUuCiBbIENhdGFsaW5hKyBdIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zZXQtYWxsLWNvb2tpZXMtdG8tc2FtZS1zaXRlLXN0cmljdC5odG1sIFsgUGFzcyBd
CitbIENhdGFsaW5hKyBdIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNl
LXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5o
dG1sIFsgUGFzcyBdCitbIENhdGFsaW5hKyBdIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJl
ZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIFsgUGFzcyBdCiAKICMgU2tpcHBlZCBpbiBnZW5lcmFs
IGV4cGVjdGF0aW9ucyBzaW5jZSB0aGV5IG9ubHkgd29yayBvbiBpT1MgYW5kIE1hYywgV0syLgog
bWVkaWEvZGVhY3RpdmF0ZS1hdWRpby1zZXNzaW9uLmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGNmMjAyYzg5YTc0N2RmNTc4NzE2
YjA3ZDk0MDk0ODJlYTFlZjAwZi4uYWYzODc4YzA3MTkyMmYyZmI1MDg1Y2JmZmM5OTRiZmE1YTEx
YmYzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTcz
NSw2ICs3MzUsOCBAQCBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MgWyBQYXNzIF0K
IAogIyBUaGUgU2FtZVNpdGUgY29va2llIEFQSSBpcyBvbmx5IGF2YWlsYWJsZSBpbiBtYWNPUyBD
YXRhbGluYSBhbmQgYWJvdmUuCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0
LWFsbC1jb29raWVzLXRvLXNhbWUtc2l0ZS1zdHJpY3QuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuZm9yY2Utc2FtZXNpdGUtc3RyaWN0LWJhc2VkLW9u
LXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmZvcmNlLXNhbWVzaXRlLXN0cmljdC1iYXNlZC1vbi10
b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIFsgU2tpcCBdCiAKIGh0
dHAvdGVzdHMvd2Vic29ja2V0L2Nvbm5lY3Rpb24tcmVmdXNhbC1pbi1mcmFtZS1yZXNvdXJjZS1s
b2FkLXN0YXRpc3RpY3MuaHRtbCBbIFBhc3MgXQogIyBUaGVzZSBhcmUgb25seSBzdXBwb3J0ZWQg
YmVoaW5kIGEgY29tcGlsZSB0aW1lIGZsYWcgaW4gbWFjT1MgSGlnaCBTaWVycmEgKyBpT1MgMTEs
IGFuZCBhYm92ZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>