<?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>231553</bug_id>
          
          <creation_ts>2021-10-11 21:13:56 -0700</creation_ts>
          <short_desc>PCM: Cherry-picking patch for branch (Oct 2021)</short_desc>
          <delta_ts>2023-07-20 15:17:02 -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>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ahmad.saleem792</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1802959</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-11 21:13:56 -0700</bug_when>
    <thetext>This is just a bug to allow for review of a branch-specific patch. It won&apos;t apply to trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802960</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-11 21:14:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/84130892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802961</commentid>
    <comment_count>2</comment_count>
      <attachid>440883</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-11 21:16:41 -0700</bug_when>
    <thetext>Created attachment 440883
Cherry-pick patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802974</commentid>
    <comment_count>3</comment_count>
      <attachid>440883</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-11 21:46:56 -0700</bug_when>
    <thetext>Comment on attachment 440883
Cherry-pick patch

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

&gt; LayoutTests/ChangeLog:7
&gt; +        Plus a fix of an API test that was timing out.

Could you describe this change more?  What part of the patch is this?  Why was it needed?  What was missed before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803120</commentid>
    <comment_count>4</comment_count>
      <attachid>440883</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-12 08:15:15 -0700</bug_when>
    <thetext>Comment on attachment 440883
Cherry-pick patch

New patch with explanation for the fixed test case coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803121</commentid>
    <comment_count>5</comment_count>
      <attachid>440935</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-12 08:16:08 -0700</bug_when>
    <thetext>Created attachment 440935
Patch with better explanation of the fix for the test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803123</commentid>
    <comment_count>6</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-12 08:17:41 -0700</bug_when>
    <thetext>See the Tools change log for the updated description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803127</commentid>
    <comment_count>7</comment_count>
      <attachid>440935</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-12 08:37:52 -0700</bug_when>
    <thetext>Comment on attachment 440935
Patch with better explanation of the fix for the test case.

This is good.  The parts of the original change in PrivateClickMeasurementManagerInterface and PrivateClickMeasurementManagerProxy are not needed because those abstractions don&apos;t exist on the branch, but this does all the functional change of the original.  The included interface simplification does not change behavior.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803148</commentid>
    <comment_count>8</comment_count>
      <attachid>440935</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-12 08:55:22 -0700</bug_when>
    <thetext>Comment on attachment 440935
Patch with better explanation of the fix for the test case.

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

LGTM

&gt; Source/WebKit/NetworkProcess/NetworkSession.h:140
&gt; +    void setPrivateClickMeasurementAppBundleIDForTesting(String&amp;&amp; appBundleIDForTesting);

unnecessary parameter name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803235</commentid>
    <comment_count>9</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-12 10:59:16 -0700</bug_when>
    <thetext>(In reply to Kate Cheney from comment #8)
&gt; Comment on attachment 440935 [details]
&gt; Patch with better explanation of the fix for the test case.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=440935&amp;action=review
&gt; 
&gt; LGTM
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.h:140
&gt; &gt; +    void setPrivateClickMeasurementAppBundleIDForTesting(String&amp;&amp; appBundleIDForTesting);
&gt; 
&gt; unnecessary parameter name.

Fixed.

Thanks, both of you! I appreciate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1967512</commentid>
    <comment_count>10</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2023-07-20 15:17:02 -0700</bug_when>
    <thetext>https://github.com/WebKit/WebKit/commit/7e3e09e3a5dc31e552aa7c25b6564843a1e0a192

https://github.com/WebKit/WebKit/commit/c7bf306e019750880dd49d5514db782c51059c16

^ Seems to landed as above commit, if I am not wrong.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440883</attachid>
            <date>2021-10-11 21:16:41 -0700</date>
            <delta_ts>2021-10-12 08:15:15 -0700</delta_ts>
            <desc>Cherry-pick patch</desc>
            <filename>radar84130892_cherry-pick.patch</filename>
            <type>text/plain</type>
            <size>67612</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMWQ1NGE5YzZmNDMuLjgwYzExYTk1MGU2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIxLTEwLTExICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIENoZXJyeS1waWNraW5nIG9mOgorICAgICAgICAtIGh0dHBzOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8yODMzMTYvd2Via2l0LCA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+CisgICAg
ICAgIC0gaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI4MjEwOS93ZWJraXQsIDxy
ZGFyOi8vcHJvYmxlbS84Mjg0MTg0ND4KKworICAgICAgICBQbHVzIGEgZml4IG9mIGFuIEFQSSB0
ZXN0IHRoYXQgd2FzIHRpbWluZyBvdXQuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBs
ZS1hcHAtYnVuZGxlLWlkcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAodGVhckRvd25B
bmRGaW5pc2gpOgorCiAyMDIxLTEwLTExICBBbGFuIENvb24gIDxhbGFuY29vbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQ2hlcnJ5LXBpY2sgcjI4Mjg4NC4gcmRhcjovL3Byb2JsZW0vODM5NTQ5MjYK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mYTNh
NWY0OTAyMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDM1IEBACitUZXN0cyBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHdpdGggbXVs
dGlwbGUgYXBwIGJ1bmRsZSBJRHMsIG1ha2luZyBzdXJlIG9ubHkgdGhlIG1hdGNoaW5nIElEIGlz
IGNvbnNpZGVyZWQgYSBtYXRjaC4KKworCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
MS0tPicKKy0tLS0tLS0tCitBdHRyaWJ1dGlvbiByZWNlaXZlZC4KK0hUVFBfSE9TVDogMTI3LjAu
MC4xOjgwMDAKK0NvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgorUkVRVUVTVF9VUkk6IC9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5weT9yZWNp
cGllbnQ9Q2xpY2tTb3VyY2UKK05vIGNvb2tpZXMgaW4gYXR0cmlidXRpb24gcmVxdWVzdC4KK1Jl
cXVlc3QgYm9keToKK3sic291cmNlX2VuZ2FnZW1lbnRfdHlwZSI6ImNsaWNrIiwic291cmNlX3Np
dGUiOiIxMjcuMC4wLjEiLCJzb3VyY2VfaWQiOjMzLCJhdHRyaWJ1dGVkX29uX3NpdGUiOiJsb2Nh
bGhvc3QiLCJ0cmlnZ2VyX2RhdGEiOjEyLCJ2ZXJzaW9uIjoyfQorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorQXR0cmlidXRpb24gcmVjZWl2ZWQuCitIVFRQ
X0hPU1Q6IGxvY2FsaG9zdDo4MDAwCitDb250ZW50IHR5cGU6IGFwcGxpY2F0aW9uL2pzb24KK1JF
UVVFU1RfVVJJOiAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25S
ZXBvcnQucHk/cmVjaXBpZW50PUNsaWNrRGVzdGluYXRpb24KK05vIGNvb2tpZXMgaW4gYXR0cmli
dXRpb24gcmVxdWVzdC4KK1JlcXVlc3QgYm9keToKK3sic291cmNlX2VuZ2FnZW1lbnRfdHlwZSI6
ImNsaWNrIiwic291cmNlX3NpdGUiOiIxMjcuMC4wLjEiLCJzb3VyY2VfaWQiOjMzLCJhdHRyaWJ1
dGVkX29uX3NpdGUiOiJsb2NhbGhvc3QiLCJ0cmlnZ2VyX2RhdGEiOjEyLCJ2ZXJzaW9uIjoyfQor
CitVbmF0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2Ugc2l0ZTogMTI3LjAuMC4xCitBdHRyaWJ1dGUg
b24gc2l0ZTogbG9jYWxob3N0CitTb3VyY2UgSUQ6IDIzCitObyBhdHRyaWJ1dGlvbiB0cmlnZ2Vy
IGRhdGEuCitBcHBsaWNhdGlvbiBidW5kbGUgaWRlbnRpZmllcjogdGVzdEJ1bmRsZUlECmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211
bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZDQ3MDM0N2MwMDMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211
bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwKQEAgLTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBd
IC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNl
dFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHByaXZh
dGUgY2xpY2sgbWVhc3VyZW1lbnQgd2l0aCBtdWx0aXBsZSBhcHAgYnVuZGxlIElEcywgbWFraW5n
IHN1cmUgb25seSB0aGUgbWF0Y2hpbmcgSUQgaXMgY29uc2lkZXJlZCBhIG1hdGNoLjwvZGl2Pgor
PGEgaWQ9InRhcmdldExpbmsxIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbD9zdGVwVHdvIiBhdHRy
aWJ1dGlvbnNvdXJjZWlkPTIzIGF0dHJpYnV0aW9uZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCI+TGluazE8L2E+PGJyPgorPGEgaWQ9InRhcmdldExpbmsyIiBocmVmPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRs
ZS1pZHMuaHRtbD9zdGVwRm91ciIgYXR0cmlidXRpb25zb3VyY2VpZD0zMyBhdHRyaWJ1dGlvbmRl
c3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbmsyPC9hPjxicj4KKzxkaXYgaWQ9
Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0g
KG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKKyAgICBjb25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJy
ZW50VGltZU1pbGxpcyAtIChNYXRoLmZsb29yKGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkg
KiAxMDAwMDAwKTsKKyAgICBjb25zdCBub25jZSA9IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0
aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZh
dGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAg
IHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAv
IDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9m
ZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2Vu
dGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsK
KyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAg
ICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmwsIG9ubG9hZENh
bGxiYWNrKSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJsOworICAgICAg
ICBpZiAob25sb2FkQ2FsbGJhY2spCisgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9
IG9ubG9hZENhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFt
ZUVsZW1lbnQpOworICAgIH0KKworICAgIGxldCByZXBvcnRzUmVjZWl2ZWQgPSAwOworICAgIGZ1
bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCkgeworICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rMSIpKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0TGluazIiKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworCisgICAgICAgIC8vIENs
aWNrIHNvdXJjZS4KKyAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnB5P3Rp
bWVvdXRfbXM9MjAwMCZyZWNpcGllbnQ9Q2xpY2tTb3VyY2Umbm9uY2U9IiArIG5vbmNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHJlcG9ydHNSZWNlaXZlZCsrOworICAgICAgICAgICAgaWYg
KHJlcG9ydHNSZWNlaXZlZCA+PSAyKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgLy8gQ2xpY2sgZGVzdGluYXRpb24uCisgICAgICAgIGFwcGVu
ZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jl
c291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5weT90aW1lb3V0X21zPTIwMDAmcmVjaXBpZW50PUNs
aWNrRGVzdGluYXRpb24mbm9uY2U9IiArIG5vbmNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHJlcG9ydHNSZWNlaXZlZCsrOworICAgICAgICAgICAgaWYgKHJlcG9ydHNSZWNlaXZlZCA+PSAy
KQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikg
eworICAgICAgICAgICAgICAgIC8vIFN0ZXAgMjogR28gYmFjayB0byB0aGUgc291cmNlLgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWw/
c3RlcFRocmVlIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJj
aCA9PT0gIj9zdGVwVGhyZWUiKSB7CisgICAgICAgICAgICAgICAgLy8gU3RlcCAzOiBDaGFuZ2Ug
dGhlIGFwcCBidW5kbGUgSUQgYW5kIGNsaWNrIHRoZSBzZWNvbmQgbGluay4KKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JU
ZXN0aW5nKCIiKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsy
Iik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/
c3RlcEZvdXIiKSB7CisgICAgICAgICAgICAgICAgLy8gU3RlcCA0OiBDb252ZXJ0LgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blJlcG9ydFVSTHNGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucHk/cmVjaXBpZW50PUNsaWNr
U291cmNlJm5vbmNlPSIgKyBub25jZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5weT9yZWNpcGllbnQ9Q2xp
Y2tEZXN0aW5hdGlvbiZub25jZT0iICsgbm9uY2UpOworICAgICAgICAgICAgICAgIGxldCBpbWFn
ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAg
ICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnB5P2NvbnZlcnNpb25E
YXRhPTEyJm5vbmNlPSIgKyBub25jZTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQg
PSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5k
RmluaXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIC8vIFN0ZXAgMTogQ2hhbmdlIHRoZSBhcHAgYnVuZGxlIElEIGFuZCBjbGlj
ayB0aGUgZmlyc3QgbGluay4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKCJ0ZXN0QnVuZGxlSUQiKTsKKyAg
ICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsxIik7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJj
ZXMvdXRpbC5qcwppbmRleCBlN2MzY2Q4OGM0MjguLjJhNjMzNjE0MmFhNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
dXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3Jlc291cmNlcy91dGlsLmpzCkBAIC0xNSw2ICsxNSw3IEBAIGZ1bmN0aW9uIHRlYXJEb3du
QW5kRmluaXNoKCkgewogICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZygiIiwgIiIpOwogICAgICAgICB0ZXN0
UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0
aW5nKCIiKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRv
a2VuUHVibGljS2V5VVJMRm9yVGVzdGluZygiIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoIiIpOwogICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjA0MTMzMWUz
NjBjLi5iZDI2MmU5ZDQ0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMC0x
MSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDaGVycnkt
cGlja2luZyBvZjoKKyAgICAgICAgLSBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MjgzMzE2L3dlYmtpdCwgPHJkYXI6Ly9wcm9ibGVtLzgzNTE2NTI4PgorICAgICAgICAtIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yODIxMDkvd2Via2l0LCA8cmRhcjovL3Byb2Js
ZW0vODI4NDE4NDQ+CisKKyAgICAgICAgUGx1cyBhIGZpeCBvZiBhbiBBUEkgdGVzdCB0aGF0IHdh
cyB0aW1pbmcgb3V0LgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbAorCisgICAgICAgICogbG9hZGVy
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZyk6
CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg6CisKIDIwMjEtMTAt
MTEgIEFsYW4gQ29vbiAgPGFsYW5jb29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVycnktcGlj
ayByMjgyODg0LiByZGFyOi8vcHJvYmxlbS84Mzk1NDkyNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggNWQ5ZTBhYjFjZDQzLi4w
ZGZlZDA0MWNkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcApAQCAtMTQzLDYgKzE0MywxMSBAQCBib29sIFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpoYXNQcmV2aW91c2x5QmVlblJlcG9ydGVkKCkKICAgICByZXR1cm4gIW1fdGlt
ZXNUb1NlbmQuc291cmNlRWFybGllc3RUaW1lVG9TZW5kIHx8ICFtX3RpbWVzVG9TZW5kLmRlc3Rp
bmF0aW9uRWFybGllc3RUaW1lVG9TZW5kOwogfQogCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJpbmcm
IGFwcEJ1bmRsZUlERm9yVGVzdGluZykKK3sKKyAgICBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SUQgPSBhcHBCdW5kbGVJREZvclRlc3Rpbmc7Cit9CisKIHN0YXRpYyBTZWNvbmRzIHJhbmRvbWx5
QmV0d2VlblR3ZW50eUZvdXJBbmRGb3J0eUVpZ2h0SG91cnMoKQogewogICAgIHJldHVybiAyNF9o
ICsgU2Vjb25kcyhyYW5kb21OdW1iZXIoKSAqICgyNF9oKS52YWx1ZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXggMDZiYmZmN2M1
MDQ3Li5kYWUyNDM0NGYyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5oCkBAIC0zNDEsNiArMzQxLDcgQEAgcHVibGljOgogICAgIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4mIGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGE7IH0KICAgICB2
b2lkIHNldEF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhKSB7IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoYXR0cmlidXRp
b25UcmlnZ2VyRGF0YSk7IH0KICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQ7IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURGb3JUZXN0
aW5nKGNvbnN0IFN0cmluZyYpOwogCiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNjcmlwdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlRGVzY3JpcHRpb247IH0KICAgICBjb25zdCBTdHJp
bmcmIHB1cmNoYXNlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHVyY2hhc2VyOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGFjNTE4NzliMzQxYS4uOTIyZGI4YjEyYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisy
MDIxLTEwLTExICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAg
IENoZXJyeS1waWNraW5nIG9mOgorICAgICAgICAtIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8yODMzMTYvd2Via2l0LCA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+CisgICAgICAg
IC0gaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI4MjEwOS93ZWJraXQsIDxyZGFy
Oi8vcHJvYmxlbS84Mjg0MTg0ND4KKworICAgICAgICBQbHVzIGEgZml4IG9mIGFuIEFQSSB0ZXN0
IHRoYXQgd2FzIHRpbWluZyBvdXQuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBDTTo6RGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAg
ICAgICBOb3cgdGFrZXMgYW4gYXBwIGJ1bmRsZSBJRCBzdXBwbGllZCBmcm9tIHRoZSBuZXR3b3Jr
IHNlc3Npb24gYW5kCisgICAgICAgICAgICBpbmNsdWRlcyBpdCBpbiB0aGUgZGF0YWJhc2UgcXVl
cnkgdG8gZmluZCBtYXRjaGluZyBlbnRyaWVzLiBJZiBhbmQKKyAgICAgICAgICAgIGF0dHJpYnV0
aW9uIHdhcyBzYXZlZCB3aXRoIGFwcCBidW5kbGUgSUQgWFlaLCBpdCBzaG91bGQgb25seSBiZQor
ICAgICAgICAgICAgYmUgY29udmVydGVkIGluIGFuIGFwcGxpY2F0aW9uIHdpdGggYXBwIGJ1bmRs
ZSBJRCBYWVouCisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsbHMgUENN
OjpEYXRhYmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKKyAgICAgICAgICAgIHdo
aWNoIG5lZWRzIHRoZSBhcHAgYnVuZGxlIElEIHNvIHRoYXQgSUQgaXMgZm9yd2FyZGVkIHRocm91
Z2guCisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OnJlbW92ZVVuYXR0cmlidXRlZCk6
CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBj
b25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjpjbGVhclNlbnRB
dHRyaWJ1dGlvbik6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5k
bGUgSUQgaW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNl
OjptYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbik6CisgICAgICAgICAgICBBbHNvIG5lZWRz
IHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAo
V2ViS2l0OjpQQ006OkRhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UpOgorICAgICAg
ICAgICAgQWxzbyBuZWVkcyB0byB0YWtlIHRoZSBhcHAgYnVuZGxlIElEIGludG8gY29uc2lkZXJh
dGlvbi4KKyAgICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6ZWFybGllc3RUaW1lc1RvU2Vu
ZCk6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50
byBjb25zaWRlcmF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgICAgICBO
b3cgdGFrZXMgYSBSZWdpc3RyYWJsZURvbWFpbiBhbmQgYSBVUkwgaW5zdGVhZCBvZiBhIFJlc291
cmNlUmVxdWVzdCAocjI4MjEwOSkuCisgICAgICAgICAgICBOb3cgdGFrZXMgYW4gQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyIChyMjgzMzE2KS4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6YXR0cmlidXRlKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyOjpjbGVhcik6CisgICAgICAgICAgICBDbGVhcnMgdGhlIHRlc3Qgc2V0dGlu
ZyBmb3IgYXBwIGJ1bmRsZSBJRC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Om1lc3Nh
Z2VUeXBlU2VuZHNSZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGVjb2RlTWVzc2FnZUFu
ZFNlbmRUb01hbmFnZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5h
Z2VyUHJveHk6OmhhbmRsZUF0dHJpYnV0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5h
Z2VyUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5n
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006OlN0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UENNRnJhdWRQcmV2ZW50aW9u
VmFsdWVzRm9yVGVzdGluZyk6CisgICAgICAgIChXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGVGb3JUZXN0aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMjEtMTAtMTEgIEFsYW4g
Q29vbiAgPGFsYW5jb29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVycnktcGljayByMjgzMTk0
LiByZGFyOi8vcHJvYmxlbS84Mzk1MzQzMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA2ODVjNzNmMGQyYWIuLmE0Mjc3OGE2NmNkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTI2NzAsNiArMjY3MCwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQQ01GcmF1ZFBy
ZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3NpbwogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgU3RyaW5nJiYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3
b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQorICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXVEZNb3ZlKGFwcEJ1bmRsZUlERm9yVGVz
dGluZykpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiYmIGxvYWRl
cikKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKGxvYWRlci0+c2Vz
c2lvbklEKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCmluZGV4IDc3NThmOTYwYTg0Ny4uZDY1NTk4MWI0Y2FjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNTAsNiArMzUwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9y
dFVSTHNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBVUkwmJiBzb3VyY2VVUkwsIFVSTCYmIGRl
c3RpbmF0aW9uVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFBy
ZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1bmxpbmth
YmxlVG9rZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmlu
ZyYmIGtleUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQs
IFN0cmluZyYmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdl
UXVvdGFNYW5hZ2VyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZDc5OTc0NTFjNDU0Li4yMWZkNjU4MzNhZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMTcxLDYgKzE3MSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgc291
cmNlVVJMLCBVUkwgZGVzdGluYXRpb25VUkwpIC0+ICgpIEFzeW5jCiAgICAgTWFya1ByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKSAtPiAoKSBBc3luYwogICAgIFNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgc2VjcmV0VG9rZW4sIFN0cmluZyB1
bmxpbmthYmxlVG9rZW4sIFN0cmluZyBzaWduYXR1cmUsIFN0cmluZyBrZXlJRCkgLT4gKCkgQXN5
bmMKKyAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBhcHBCdW5kbGVJREZvclRlc3RpbmcpIC0+
ICgpIEFzeW5jCiAgICAgR2V0TG9jYWxTdG9yYWdlT3JpZ2luRGV0YWlscyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXI6Ok9yaWdpbkRldGFpbHM+IGRldGFpbHMpIEFzeW5jCiAKICAgICBTZXRTZXJ2aWNlV29ya2Vy
RmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyhTZWNvbmRzIHNlY29uZHMpIC0+ICgpIFN5bmNocm9ub3Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmlu
ZGV4IDY0ZjkxNTFlMTU4My4uYzBiNGUzMzAwN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDIsOCArNDIsMTAgQEAKICNpbmNs
dWRlICJXZWJTb2NrZXRUYXNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ29j
b2EuaCIKICNlbmRpZgogI2lmIFVTRShTT1VQKQpAQCAtMzE4LDcgKzMyMCwxMiBAQCB2b2lkIE5l
dHdvcmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVl
c3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQog
ewotICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuaGFuZGxlQXR0cmlidXRpb24oV1RGTW92
ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwgcmVkaXJlY3RSZXF1ZXN0KTsK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvIGFwcEJ1bmRsZUlEID0gV2ViQ29yZTo6YXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIGF1dG8gYXBwQnVuZGxlSUQg
PSBTdHJpbmcoKTsKKyNlbmRpZgorICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuaGFuZGxl
QXR0cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwg
UmVnaXN0cmFibGVEb21haW4ocmVkaXJlY3RSZXF1ZXN0LnVybCgpKSwgcmVkaXJlY3RSZXF1ZXN0
LmZpcnN0UGFydHlGb3JDb29raWVzKCksIGFwcEJ1bmRsZUlEKTsKIH0KIAogdm9pZCBOZXR3b3Jr
U2Vzc2lvbjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTM4Miw2ICszODksMTQgQEAgdm9p
ZCBOZXR3b3JrU2Vzc2lvbjo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlh
dGVseSgpCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5zdGFydFRpbWVyKDBfcyk7CiB9
CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVu
ZGxlSURGb3JUZXN0aW5nKFN0cmluZyYmIGFwcEJ1bmRsZUlERm9yVGVzdGluZykKK3sKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBSRUxFQVNFX0FTU0VSVChpc1J1bm5pbmdUZXN0KFdlYkNvcmU6
OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpKSk7CisjZW5kaWYKKyAgICBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCgpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JU
ZXN0aW5nKFdURk1vdmUoYXBwQnVuZGxlSURGb3JUZXN0aW5nKSk7Cit9CisKIHZvaWQgTmV0d29y
a1Nlc3Npb246OmFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBs
b2FkZXIpCiB7CiAgICAgQVNTRVJUKG1fc2Vzc2lvbklEID09IGxvYWRlci0+c2Vzc2lvbklEKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4
IGNkNDU4Y2NiMTA5Yi4uODg0YTllMzcxNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0xMzcsNiArMTM3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRl
c3RpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0
aW5nKFN0cmluZyYmIHVubGlua2FibGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmlu
ZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5SUQpOwogICAgIHZvaWQgZmlyZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseSgpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoU3RyaW5nJiYgYXBwQnVuZGxlSURGb3JU
ZXN0aW5nKTsKIAogICAgIHZvaWQgYWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNl
TG9hZGVyPiYmKTsKICAgICB2b2lkIHJlbW92ZUtlcHRBbGl2ZUxvYWQoTmV0d29ya1Jlc291cmNl
TG9hZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAppbmRleCBiZjk3YTIzMjUxZDkuLjc2NDQ2
OTZmNjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwCkBAIC00MiwxOCArNDIsMTggQEAgY29u
c3RleHByIGF1dG8gaW5zZXJ0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVy
eSA9ICJJTlNFUlQgT1IgUkVQTEEKICAgICAic291cmNlSUQsIHRpbWVPZkFkQ2xpY2ssIHRva2Vu
LCBzaWduYXR1cmUsIGtleUlELCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSBWQUxVRVMgKD8s
ID8sID8sID8sID8sID8sID8sID8pIl9zOwogY29uc3RleHByIGF1dG8gaW5zZXJ0QXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKHNvdXJjZVNpdGVEb21haW5JRCwgZGVz
dGluYXRpb25TaXRlRG9tYWluSUQsICIKICAgICAic291cmNlSUQsIGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEsIHByaW9yaXR5LCB0aW1lT2ZBZENsaWNrLCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJj
ZSwgdG9rZW4sIHNpZ25hdHVyZSwga2V5SUQsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRp
b24sIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywg
PywgPywgPywgPywgPywgPykiX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kVW5hdHRyaWJ1dGVkUXVl
cnkgPSAiU0VMRUNUICogRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBX
SEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9
ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZS
T00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21h
aW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBh
dXRvIHJlbW92ZVVuYXR0cmlidXRlZFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRVbmF0dHJp
YnV0ZWRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURv
bWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4
cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9
ID8iX3M7Citjb25zdGV4cHIgYXV0byByZW1vdmVVbmF0dHJpYnV0ZWRRdWVyeSA9ICJERUxFVEUg
RlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRl
RG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSUQgPSA/Il9zOwogY29uc3RleHByIGF1dG8gYWxsQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkgPSAiU0VMRUNUICosIE1JTihlYXJsaWVzdFRpbWVU
b1NlbmRUb1NvdXJjZSwgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbikgYXMgbWluVmFs
ICIKICAgICAiRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgZWFy
bGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgSVMgTk9UIE5VTEwgQU5EIGVhcmxpZXN0VGltZVRvU2Vu
ZFRvRGVzdGluYXRpb24gSVMgTk9UIE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVh
cmxpZXN0VGltZVRvU2VuZFRvU291cmNlIGFzIG1pblZhbCBGUk9NIEF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBXSEVSRSBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIElT
IE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVz
dGluYXRpb24gYXMgbWluVmFsIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
IFdIRVJFIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlIElTIE5VTEwgT1JERVIgQlkgbWluVmFs
Il9zOwogY29uc3RleHByIGF1dG8gYWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvbnNRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50Il9zOwogY29uc3RleHByIGF1dG8gY2xlYXJFeHBpcmVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJERUxFVEUgRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBXSEVSRSA/ID4gdGltZU9mQWRDbGljayJfczsKLWNvbnN0ZXhwciBhdXRv
IG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZVF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlID0gbnVsbCBX
SEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9
ID8iX3M7Ci1jb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5
ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0
VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9
ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIGVh
cmxpZXN0VGltZXNUb1NlbmRRdWVyeSA9ICJTRUxFQ1QgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3Vy
Y2UsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gRlJPTSBBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGlu
YXRpb25TaXRlRG9tYWluSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gbWFya1JlcG9ydEFzU2Vu
dFRvU291cmNlUXVlcnkgPSAiVVBEQVRFIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCBTRVQgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVE
b21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBw
bGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50
VG9EZXN0aW5hdGlvblF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNv
dXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQg
c291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBlYXJsaWVz
dFRpbWVzVG9TZW5kUXVlcnkgPSAiU0VMRUNUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlLCBl
YXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9u
U2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7CiBj
b25zdGV4cHIgYXV0byBkb21haW5JREZyb21TdHJpbmdRdWVyeSA9ICJTRUxFQ1QgZG9tYWluSUQg
RlJPTSBQQ01PYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwog
Y29uc3RleHByIGF1dG8gZG9tYWluU3RyaW5nRnJvbURvbWFpbklEUXVlcnkgPSAiU0VMRUNUIHJl
Z2lzdHJhYmxlRG9tYWluIEZST00gUENNT2JzZXJ2ZWREb21haW5zIFdIRVJFIGRvbWFpbklEID0g
PyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50ID0gIkNSRUFURSBUQUJMRSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCAoIgpAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtBbGxVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKQogICAgIH0KIH0K
IAotc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6QXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50Pj4gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291
cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUpCitzdGQ6OnBhaXI8c3RkOjpvcHRp
b25hbDxEYXRhYmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6
Om9wdGlvbmFsPERhdGFiYXNlOjpBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+PiBE
YXRhYmFzZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRl
c3RpbmF0aW9uU2l0ZSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CiAgICAgYXV0byBzb3VyY2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChzb3VyY2VTaXRlLnJlZ2lz
dHJhYmxlRG9tYWluKTsKQEAgLTI0Nyw3ICsyNDcsOCBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25h
bDxEYXRhYmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9w
dAogICAgIGF1dG8gZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3Bl
ZFN0YXRlbWVudChtX2ZpbmRVbmF0dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRVbmF0dHJpYnV0ZWRR
dWVyeSwgImZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFmaW5kVW5h
dHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29w
ZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09L
Ci0gICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwg
KmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgfHwgZmlu
ZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRl
RG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVkU2NvcGVk
U3RhdGVtZW50LT5iaW5kVGV4dCgzLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpICE9IFNR
TElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgIiVwIC0gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kVW5h
dHRyaWJ1dGVkUXVlcnksIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIH0KQEAgLTI1NSw3ICsyNTYsOCBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxE
YXRhYmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdAog
ICAgIGF1dG8gZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0
ZW1lbnQobV9maW5kQXR0cmlidXRlZFN0YXRlbWVudCwgZmluZEF0dHJpYnV0ZWRRdWVyeSwgImZp
bmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFmaW5kQXR0cmlidXRlZFNj
b3BlZFN0YXRlbWVudAogICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+
YmluZEludCgxLCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwg
ZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0
ZURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgfHwgZmluZEF0dHJpYnV0ZWRTY29w
ZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgfHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0
KDMsIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikgIT0gU1FMSVRFX09LKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiJXAgLSBEYXRhYmFz
ZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50IGZpbmRBdHRyaWJ1dGVkUXVlcnksIGVycm9y
IG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTI3MSw3
ICsyNzMsNyBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6VW5hdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdAogICAgIHJldHVybiBzdGQ6Om1ha2Vf
cGFpcih1bmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgYXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50KTsKIH0KIAotc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1
Z0luZm8+IERhdGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwg
Y29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGlu
YXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKK3N0
ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
blNlY29uZHNVbnRpbFNlbmREYXRhPiwgRGVidWdJbmZvPiBEYXRhYmFzZTo6YXR0cmlidXRlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBj
b25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogCkBAIC0yOTAsNyArMjkyLDcgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGEK
IAogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNl
bmREYXRhIHNlY29uZHNVbnRpbFNlbmQgeyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9Owog
Ci0gICAgYXV0byBhdHRyaWJ1dGlvbiA9IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3Vy
Y2VTaXRlLCBkZXN0aW5hdGlvblNpdGUpOworICAgIGF1dG8gYXR0cmlidXRpb24gPSBmaW5kUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIpOwogICAgIGF1dG8mIHByZXZpb3VzbHlVbmF0dHJpYnV0ZWQg
PSBhdHRyaWJ1dGlvbi5maXJzdDsKICAgICBhdXRvJiBwcmV2aW91c2x5QXR0cmlidXRlZCA9IGF0
dHJpYnV0aW9uLnNlY29uZDsKIApAQCAtMzQ5LDYgKzM1MSw3IEBAIHZvaWQgRGF0YWJhc2U6OnJl
bW92ZVVuYXR0cmlidXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYgYXR0cmlidXRpb24pCiAg
ICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5k
SW50KDEsICpzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29w
ZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBhdHRyaWJ1dGlv
bi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBz
Y29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6OnJlbW92
ZVVuYXR0cmlidXRlZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC01MjEsNiArNTI0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRp
b24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGkKIAogICAgIGF1
dG8gc291cmNlU2l0ZURvbWFpbklEID0gZG9tYWluSUQoYXR0cmlidXRpb24uc291cmNlU2l0ZSgp
LnJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICBhdXRvIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0g
ZG9tYWluSUQoYXR0cmlidXRpb24uZGVzdGluYXRpb25TaXRlKCkucmVnaXN0cmFibGVEb21haW4p
OworICAgIGF1dG8gc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9IGF0dHJpYnV0aW9uLnNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSUQoKTsKIAogICAgIGlmICghc291cmNlU2l0ZURvbWFpbklEIHx8
ICFkZXN0aW5hdGlvblNpdGVEb21haW5JRCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTMxLDcgKzUz
NSw3IEBAIHZvaWQgRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtYXJrUmVw
b3J0QXNTZW50VG9Tb3VyY2UoKnNvdXJjZVNpdGVEb21haW5JRCwgKmRlc3RpbmF0aW9uU2l0ZURv
bWFpbklEKTsKKyAgICAgICAgbWFya1JlcG9ydEFzU2VudFRvU291cmNlKCpzb3VyY2VTaXRlRG9t
YWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCwgc291cmNlQXBwbGljYXRpb25CdW5kbGVJ
RCk7CiAgICAgICAgIHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCA9IHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25SZXBvcnRFbmRwb2ludDo6RGVzdGluYXRpb246CkBAIC01MzksNyArNTQzLDcgQEAgdm9pZCBE
YXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQmJiBhdHRyaWJ1dGkKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIG1hcmtSZXBvcnRBc1NlbnRUb0Rl
c3RpbmF0aW9uKCpzb3VyY2VTaXRlRG9tYWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCk7
CisgICAgICAgIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKCpzb3VyY2VTaXRlRG9tYWlu
SUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCwgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCk7
CiAgICAgICAgIGRlc3RpbmF0aW9uRWFybGllc3RUaW1lVG9TZW5kID0gc3RkOjpudWxsb3B0Owog
ICAgIH0KIApAQCAtNTQ3LDE3ICs1NTEsMTggQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0
cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGkKICAg
ICBpZiAoZGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQgfHwgc291cmNlRWFybGllc3RUaW1l
VG9TZW5kKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGNsZWFyQXR0cmlidXRlZFN0YXRl
bWVudCA9IG1fZGF0YWJhc2UucHJlcGFyZVN0YXRlbWVudCgiREVMRVRFIEZST00gQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5E
IGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfcyk7CisgICAgYXV0byBjbGVhckF0dHJpYnV0
ZWRTdGF0ZW1lbnQgPSBtX2RhdGFiYXNlLnByZXBhcmVTdGF0ZW1lbnQoIkRFTEVURSBGUk9NIEF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQg
PSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9u
QnVuZGxlSUQgPSA/Il9zKTsKICAgICBpZiAoIWNsZWFyQXR0cmlidXRlZFN0YXRlbWVudAogICAg
ICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVE
b21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVu
dC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAg
ICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIHNvdXJjZUFwcGxp
Y2F0aW9uQnVuZGxlSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRT
dGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6OmNsZWFyU2VudEF0
dHJpYnV0aW9uIGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19T
VFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CiAKLXZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1Nl
bnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVzdGlu
YXRpb25Eb21haW5JRCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCkKK3ZvaWQgRGF0YWJhc2U6Om1h
cmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21h
aW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCwgY29uc3Qg
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKQog
ewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGF1dG8gc2NvcGVkU3RhdGVt
ZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRp
b25TdGF0ZW1lbnQsIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uUXVlcnksICJtYXJrUmVw
b3J0QXNTZW50VG9EZXN0aW5hdGlvbiJfcyk7CkBAIC01NjUsMTMgKzU3MCwxNCBAQCB2b2lkIERh
dGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3Vy
Y2VTaXRlRG9tYWluSUQsCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2Nv
cGVkU3RhdGVtZW50LT5iaW5kSW50KDEsIHNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCBkZXN0aW5hdGlvblNpdGVE
b21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRl
eHQoMywgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8
IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0YWJhc2U6Om1hcmtSZXBv
cnRBc1NlbnRUb0Rlc3RpbmF0aW9uLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklO
RywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIH0KIH0KIAotdm9pZCBEYXRhYmFzZTo6bWFya1JlcG9ydEFzU2VudFRvU291cmNl
KFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCBk
ZXN0aW5hdGlvblNpdGVEb21haW5JRCkKK3ZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRU
b1NvdXJjZShTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9t
YWluSUQgZGVzdGluYXRpb25TaXRlRG9tYWluSUQsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciYgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKICAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0
YXRlbWVudChtX21hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZVN0YXRlbWVudCwgbWFya1JlcG9ydEFz
U2VudFRvU291cmNlUXVlcnksICJtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UiX3MpOwpAQCAtNTc5
LDYgKzU4NSw3IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3Vy
Y2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpCiAgICAgaWYgKCFzY29wZWRTdGF0
ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsIHNvdXJjZVNpdGVE
b21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZElu
dCgyLCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNj
b3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9E
T05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50
LCAiRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZSwgZXJyb3IgbWVzc2FnZTogJSIg
UFVCTElDX0xPR19TVFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU5OSw2ICs2MDYsNyBAQCBzdGQ6OnBhaXI8c3RkOjpv
cHRpb25hbDxEYXRhYmFzZTo6U291cmNlRWFybGllc3RUaW1lVG9TZW5kPiwgc3RkOjpvcHRpb25h
bDxEYXRhYgogICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IHNjb3BlZFN0YXRl
bWVudC0+YmluZEludCgxLCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAg
ICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5J
RCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywg
YXR0cmlidXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCgpKSAhPSBTUUxJVEVfT0sKICAg
ICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkRhdGFiYXNlOjpl
YXJsaWVzdFRpbWVzVG9TZW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50RGF0YWJhc2UuaAppbmRleCA1N2MzZTRiNGM5ZjQuLmVkN2VmN2Y5NTdhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERhdGFiYXNlLmgKQEAgLTQxLDEwICs0MSwxMiBAQCBwdWJsaWM6CiAgICAgRGF0YWJh
c2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KTsKICAgICB2aXJ0dWFsIH5EYXRhYmFz
ZSgpOwogICAgIAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmlu
ZzsKKwogICAgIHN0YXRpYyB2b2lkIGludGVycnVwdEFsbERhdGFiYXNlcygpOwogCiAgICAgdm9p
ZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7Ci0gICAg
c3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0ZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CisgICAgc3RkOjpwYWlyPHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25k
c1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwg
Y29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGlu
YXRpb25TaXRlJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiwgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAg
VmVjdG9yPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBhbGxBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4pOwogICAgIHZv
aWQgY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKQEAgLTY1LDExICs2Nywx
MSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjcmVhdGVTY2hlbWEoKSBmaW5hbDsKICAgICB2b2lk
IGRlc3Ryb3lTdGF0ZW1lbnRzKCkgZmluYWw7Ci0gICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8
VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFsPEF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNv
bnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0
aW9uU2l0ZSYpOworICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFVuYXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+PiBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBjb25zdCBB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHJlbW92ZVVuYXR0cmlidXRl
ZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwogICAgIFN0cmluZyBhdHRyaWJ1
dGlvblRvU3RyaW5nRm9yVGVzdGluZyhjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCYpIGNvbnN0OwotICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oU291
cmNlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQpOwotICAgIHZvaWQgbWFya1JlcG9ydEFz
U2VudFRvU291cmNlKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEKTsKKyAgICB2
b2lkIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklELCBEZXN0aW5h
dGlvbkRvbWFpbklELCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKKyAgICB2
b2lkIG1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5JRCwgRGVzdGluYXRpb25E
b21haW5JRCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJik7CiAgICAgc3RkOjpw
YWlyPHN0ZDo6b3B0aW9uYWw8U291cmNlRWFybGllc3RUaW1lVG9TZW5kPiwgc3RkOjpvcHRpb25h
bDxEZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZD4+IGVhcmxpZXN0VGltZXNUb1NlbmQoY29u
c3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKICAgICBzdGQ6Om9wdGlvbmFs
PERvbWFpbklEPiBlbnN1cmVEb21haW5JRChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYpOwogICAgIHN0ZDo6b3B0aW9uYWw8RG9tYWluSUQ+IGRvbWFpbklEKGNvbnN0IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcAppbmRleCAzZTJmZWU0NDE0Mjgu
LjQ2MThmNDFlNTIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwCkBAIC05NSw5ICs5NSw5IEBAIHZvaWQg
U3RvcmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJl
ZEZvclRlc3RpbmcoKQogICAgIH0pOwogfQogCi12b2lkIFN0b3JlOjphdHRyaWJ1dGVQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4mJiBlcGhlbWVyYWxNZWFzdXJlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiYmLCBEZWJ1Z0luZm8mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFN0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25z
dCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0
ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVz
dGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYg
ZXBoZW1lcmFsTWVhc3VyZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50
aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAg
IHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHNvdXJjZVNp
dGUgPSBzb3VyY2VTaXRlLmlzb2xhdGVkQ29weSgpLCBkZXN0aW5hdGlvblNpdGUgPSBkZXN0aW5h
dGlvblNpdGUuaXNvbGF0ZWRDb3B5KCksIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3Zl
KGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBlcGhlbWVyYWxNZWFzdXJlbWVudCA9IGNyb3NzVGhy
ZWFkQ29weShlcGhlbWVyYWxNZWFzdXJlbWVudCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHNvdXJjZVNpdGUgPSBzb3VyY2VTaXRlLmlz
b2xhdGVkQ29weSgpLCBkZXN0aW5hdGlvblNpdGUgPSBkZXN0aW5hdGlvblNpdGUuaXNvbGF0ZWRD
b3B5KCksIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllci5pc29sYXRlZENvcHkoKSwgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUo
YXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIGVwaGVtZXJhbE1lYXN1cmVtZW50ID0gY3Jvc3NUaHJl
YWRDb3B5KGVwaGVtZXJhbE1lYXN1cmVtZW50KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9kYXRhYmFz
ZSkgewogICAgICAgICAgICAgcmV0dXJuIHBvc3RUYXNrUmVwbHkoW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCwgeyB9KTsKQEAgLTExMCw3ICsxMTAs
NyBAQCB2b2lkIFN0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbQogICAgICAgICAgICAgbV9kYXRhYmFzZS0+aW5z
ZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZSgqZXBoZW1lcmFsTWVhc3VyZW1lbnQp
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6VW5hdHRyaWJ1dGVkKTsK
ICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gW3NlY29uZHMsIGRlYnVnSW5mb10gPSBtX2RhdGFi
YXNlLT5hdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5h
dGlvblNpdGUsIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkpOworICAgICAgICBhdXRv
IFtzZWNvbmRzLCBkZWJ1Z0luZm9dID0gbV9kYXRhYmFzZS0+YXR0cmlidXRlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIsIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkpOwogCiAgICAgICAg
IHBvc3RUYXNrUmVwbHkoW3NlY29uZHMgPSBXVEZNb3ZlKHNlY29uZHMpLCBkZWJ1Z0luZm8gPSBk
ZWJ1Z0luZm8uaXNvbGF0ZWRDb3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHNlY29uZHMpLCBXVEZNb3ZlKGRlYnVnSW5mbykpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaAppbmRl
eCAwNTUxZWQwYWJkMWMuLjJiMjY4M2YzMWY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmgKQEAgLTQ3LDExICs0
NywxMyBAQCBwdWJsaWM6CiAKICAgICB+U3RvcmUoKTsKIAorICAgIHVzaW5nIEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKKwogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JQ
cm9jZXNzVG9TdXNwZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgc3RhdGlj
IHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOwogCiAgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBXZWJLaXQ6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKTsKLSAgICB2b2lkIGF0dHJpYnV0
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBlcGhlbWVyYWxNZWFzdXJlbWVudCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiYmLCBEZWJ1Z0luZm8mJik+
JiYpOworICAgIHZvaWQgYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBj
b25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGVwaGVtZXJhbE1lYXN1cmVtZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYm
KT4mJik7CiAKICAgICB2b2lkIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmdGb3JUZXN0
aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCBtYXJrQWxs
VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKaW5kZXggNzk3NDhhNjgzZWY4Li5hYTBjM2Rk
ODQ3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAgLTc1LDYgKzc1LDkgQEAg
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50JiYKIAogICAgIGNsZWFyRXhwaXJlZCgpOwogCisgICAgaWYg
KG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpCisgICAgICAg
IG1lYXN1cmVtZW50LnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURGb3JUZXN0aW5nKCptX3By
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKTsKKwogICAgIGlmICht
ZWFzdXJlbWVudC5lcGhlbWVyYWxTb3VyY2VOb25jZSgpKSB7CiAgICAgICAgIGF1dG8gbWVhc3Vy
ZW1lbnRDb3B5ID0gbWVhc3VyZW1lbnQ7CiAgICAgICAgIC8vIFRoaXMgaXMgZ3VhcmFudGVlZCB0
byBiZSBjbG9zZSBpbiB0aW1lIHRvIHRoZSBuYXZpZ2F0aW9uYWwgY2xpY2sgd2hpY2ggbWFrZXMg
aXQgbGlrZWx5IHRvIGJlIHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlLgpAQCAtMjU1LDE0ICsyNTgs
MTEgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Omluc2VydFByaXZhdGVD
bGlja01lYXN1cmVtZW50KFByaXZhdGVDbGlja00KICNlbmRpZgogfQogCi12b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpCit2b2lkIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRp
b25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVz
dFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5VVJMLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWZlYXR1cmVFbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0RG9tYWlu
IHsgcmVkaXJlY3RSZXF1ZXN0LnVybCgpIH07Ci0gICAgYXV0byYgZmlyc3RQYXJ0eVVSTCA9IHJl
ZGlyZWN0UmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpOwotCiAgICAgaWYgKCFyZWRpcmVj
dERvbWFpbi5tYXRjaGVzKHJlcXVlc3RVUkwpKSB7CiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIFRyaWdnZXJpbmcgZXZlbnQgd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNl
IHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiJfcyk7CiAgICAgICAgIHJldHVy
bjsKQEAgLTI3NSw3ICsyNzUsMTUgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJgogCiAgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3Nh
Z2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkxvZywgIltQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBUcmlnZ2VyaW5nIGV2ZW50IGFjY2VwdGVkLiJfcyk7
CiAKLSAgICBhdHRyaWJ1dGUoU291cmNlU2l0ZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0s
IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIHsgZmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEpKTsKKyAgICBhdHRyaWJ1dGUoU291cmNlU2l0ZSB7IFdURk1v
dmUocmVkaXJlY3REb21haW4pIH0sIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIHsgZmlyc3RQ
YXJ0eVVSTCB9LCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBtX3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nID8gKm1fcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgOiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIp
OworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyJiYgYXBwQnVuZGxlSUQpCit7CisgICAgaWYgKGFwcEJ1bmRsZUlELmlzRW1wdHkoKSkK
KyAgICAgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA9
IHN0ZDo6bnVsbG9wdDsKKyAgICBlbHNlCisgICAgICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcgPSBXVEZNb3ZlKGFwcEJ1bmRsZUlEKTsKIH0KIAogdm9p
ZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0YXJ0VGltZXIoU2Vjb25kcyBzZWNv
bmRzKQpAQCAtMjgzLDcgKzI5MSw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpzdGFydFRpbWVyKFNlY29uZHMgc2Vjb25kcykKICAgICBtX2ZpcmVQZW5kaW5nQXR0cmli
dXRpb25SZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lzUnVubmluZ1Rlc3QgPyAwX3MgOiBz
ZWNvbmRzKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmF0dHJp
YnV0ZShjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSkKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjphdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgQXR0cmlidXRp
b25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgQXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQpAQCAtMjk4LDcg
KzMwNiw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUo
Y29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uCiAgICAgfQogICAgICAgICAKICAgICBp
ZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkgewotICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlKCkuYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEpLCBzdGQ6OmV4Y2hhbmdlKG1fZXBoZW1lcmFsTWVhc3VyZW1lbnQsIHN0ZDo6bnVs
bG9wdCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8gYXR0cmli
dXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0luZm8pIHsKKyAgICAgICAgcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZSgpLmF0dHJp
YnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwg
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEpLCBzdGQ6OmV4Y2hhbmdlKG1fZXBoZW1lcmFsTWVhc3VyZW1lbnQsIHN0ZDo6bnVsbG9wdCks
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8gYXR0cmlidXRpb25T
ZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0luZm8pIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCkBAIC00NzMs
NiArNDgxLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW8KICAgICBtX2ZpcmVQZW5kaW5nQXR0
cmlidXRpb25SZXF1ZXN0c1RpbWVyLnN0b3AoKTsKICAgICBtX2VwaGVtZXJhbE1lYXN1cmVtZW50
ID0gc3RkOjpudWxsb3B0OwogICAgIG1faXNSdW5uaW5nRXBoZW1lcmFsTWVhc3VyZW1lbnRUZXN0
ID0gZmFsc2U7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyA9IHN0ZDo6bnVsbG9wdDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgK
aW5kZXggZjQ5NTlkNWVhNGQ0Li40MGIyNGRhN2Q1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXIuaApAQCAtNTIsMTAgKzUyLDExIEBAIHB1YmxpYzoKICAgICB1c2luZyBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIHVzaW5n
IFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNp
bmcgU291cmNlU2l0ZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VT
aXRlOworICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKICAg
ICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoTmV0d29ya1Nlc3Npb24m
LCBOZXR3b3JrUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkKE5ldHdvcmtM
b2FkUGFyYW1ldGVycyYmLCBOZXR3b3JrTG9hZENhbGxiYWNrJiYpPiYmKTsKIAogICAgIHZvaWQg
c3RvcmVVbmF0dHJpYnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7Ci0gICAgdm9pZCBo
YW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVx
dWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3Qp
OworICAgIHZvaWQgaGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBj
b25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJl
Y3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyJik7CiAgICAgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB0b1N0cmlu
Z0ZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBjb25zdDsKQEAg
LTY3LDYgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9vbCB2
YWx1ZSkgeyBtX2lzUnVubmluZ0VwaGVtZXJhbE1lYXN1cmVtZW50VGVzdCA9IHZhbHVlOyB9CiAg
ICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVu
bGlua2FibGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwg
U3RyaW5nJiYga2V5SUQpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcoQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYpOwogICAgIHZv
aWQgc3RhcnRUaW1lcihTZWNvbmRzKTsKIAogcHJpdmF0ZToKQEAgLTc0LDcgKzc2LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmKTsKICAgICB2b2lkIGluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFByaXZh
dGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25U
eXBlKTsKICAgICB2b2lkIGNsZWFyU2VudEF0dHJpYnV0aW9uKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50
KTsKLSAgICB2b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRp
b25EZXN0aW5hdGlvblNpdGUmLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpOworICAgIHZvaWQg
YXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9u
U2l0ZSYsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyJik7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25S
ZXBvcnRFbmRwb2ludCk7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBsKGNvbnN0
IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0aW9uUmVwb3J0RW5kcG9pbnQpOwogICAgIHZvaWQgZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJl
cXVlc3RzKCk7CkBAIC04OCw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUnVubmlu
Z0VwaGVtZXJhbE1lYXN1cmVtZW50VGVzdCB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxV
Ukw+IG1fdG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nOwogICAgIHN0ZDo6b3B0aW9uYWw8VVJM
PiBtX3Rva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZzsKKyAgICBzdGQ6Om9wdGlvbmFsPEFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllcj4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZzsKICAgICBXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiBtX25ldHdvcmtTZXNz
aW9uOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKICAgICBQQUw6
OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCmluZGV4IDg1MTYzZjQ0NTBhYy4uYTNmODE5ODlhNTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxMzgsNiArMzEzOCwxNCBAQCB2b2lkIFdL
UGFnZVNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VS
ZWYsIFdLU3RyaW5nUmVmCiAgICAgfSk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3Ry
aW5nUmVmIGFwcEJ1bmRsZUlERm9yVGVzdGluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJh
Y2tDb250ZXh0KQoreworICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKKyAgICB0b0ltcGwocGFnZVJl
ZiktPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKHRvV1RG
U3RyaW5nKGFwcEJ1bmRsZUlERm9yVGVzdGluZyksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNr
XSAoKSB7CisgICAgICAgIGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7CisgICAgfSk7Cit9CisK
IHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFnZVJlZiBwYWdlUmVmLCB1
aW50NjRfdCBvcmllbnRhdGlvbikKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5kZXggZjAwZmVjOGE3
OWY2Li5lODcwNTQ2ODZjOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VQcml2YXRlLmgKQEAgLTE5Miw2ICsxOTIsOCBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VN
YXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uKSh2
bwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhw
aXJlZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxi
YWNrQ29udGV4dCk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25W
YWx1ZXNGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBP
UlQgdm9pZCBXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFdLUGFn
ZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzZWNyZXRUb2tlbiwgV0tTdHJpbmdSZWYgdW5saW5rYWJs
ZVRva2VuLCBXS1N0cmluZ1JlZiBzaWduYXR1cmUsIFdLU3RyaW5nUmVmIGtleUlELCBXS1BhZ2VT
ZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZv
aWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlv
bkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIGFw
cEJ1bmRsZUlERm9yVGVzdGluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0
KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBvcmllbnRhdGlvbik7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJ
c01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYgcGFnZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCmluZGV4IDIwNDcyNmEwZTg3ZC4uZTNlZDJhNGVjNTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZUZvclRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHN0cnVj
dCBXS0FwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSB7CiAtICh2b2lkKV9zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6KE5TVVJMICopc291
cmNlVVJMIGRlc3RpbmF0aW9uVVJMOihOU1VSTCAqKWRlc3RpbmF0aW9uVVJMIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uVG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nOihOU1VSTCAqKXVybCBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClfc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZzooTlNV
UkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3Nl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOihOU1N0cmluZyAq
KWFwcEJ1bmRsZUlEIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAtICh2b2lkKV9kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6KHZvaWQoXikoTlNTdHJp
bmcgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0
aWF0ZWQ6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IDY4
YzQ0MTE0OWVhNC4uY2I0MjM0NmFjZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtMzU0LDYgKzM1NCwxMyBA
QCAtICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVG9rZW5TaWdu
YXR1cmVVUkxGb3JUZXN0aW5nOihOU1VSTAogICAgIH0pOwogfQogCistICh2b2lkKV9zZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZzooTlNTdHJpbmcgKilhcHBC
dW5kbGVJRCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
cgoreworICAgIF9wYWdlLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9y
VGVzdGluZyhhcHBCdW5kbGVJRCwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNv
bXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH0p
OworfQorCiAtICh2b2lkKV9kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6KHZvaWQoXikoTlNT
dHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBfcGFnZS0+ZHVtcFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
SGFuZGxlcildKGNvbnN0IFN0cmluZyYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGFhZjY0MjJkNzYyOS4uNDVh
NjUwNTc0ZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTEwNDgzLDYgKzEwNDgzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQQ01GcmF1ZFByZXZl
bnRpb25WYWx1ZXNGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgdW5saW5rYWJsCiAgICAgd2Vic2l0
ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6U2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyht
X3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCB1bmxpbmthYmxlVG9rZW4sIHNlY3JldFRv
a2VuLCBzaWduYXR1cmUsIGtleUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Cit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJ
REZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICB3ZWJzaXRlRGF0
YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBhcHBCdW5kbGVJREZvclRlc3Rp
bmcpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKICNpZiBFTkFCTEUoU1BFRUNI
X1NZTlRIRVNJUykKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3BlZWNoU3ludGhlc2l6ZXIo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyMzNjNDNmMGFjMzMu
LmRlOTM2MzBhODE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTE3NjgsNiArMTc2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhjb25zdCBVUkwmIHNvdXJjZVVS
TCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0
aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFBy
ZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgdW5saW5rYWJsZVRva2VuLCBj
b25zdCBTdHJpbmcmIHNlY3JldFRva2VuLCBjb25zdCBTdHJpbmcmIHNpZ25hdHVyZSwgY29uc3Qg
U3RyaW5nJiBrZXlJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKGNvbnN0IFN0cmlu
ZyYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
CiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNW
b2ljZUxpc3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViU3BlZWNoU3ludGhlc2lz
Vm9pY2U+JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBjOTcyOTNlMjdmMjMuLjA5ZmM1OGZmYzVhYSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEw
LTExICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIENoZXJy
eS1waWNraW5nIG9mOgorICAgICAgICAtIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8yODMzMTYvd2Via2l0LCA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+CisgICAgICAgIC0gaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI4MjEwOS93ZWJraXQsIDxyZGFyOi8vcHJv
YmxlbS84Mjg0MTg0ND4KKworICAgICAgICBQbHVzIGEgZml4IG9mIGFuIEFQSSB0ZXN0IHRoYXQg
d2FzIHRpbWluZyBvdXQgKEV2ZW50QXR0cmlidXRpb24uRnJhdWRQcmV2ZW50aW9uKS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnJ1bkJhc2ljRXZlbnRBdHRyaWJ1dGlvblRlc3Qp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICAgICBFdmVudEF0dHJp
YnV0aW9uLkZyYXVkUHJldmVudGlvbiBmaXhlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBw
QnVuZGxlSURGb3JUZXN0aW5nKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAyMS0xMC0xMSAgQWxhbiBDb29uICA8YWxhbmNv
b25AYXBwbGUuY29tPgogCiAgICAgICAgIENoZXJyeS1waWNrIHIyODMxOTQuIHJkYXI6Ly9wcm9i
bGVtLzgzOTUzNDMzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggZjk4NmE5M2ViNWUyLi5kNmQ0NmNk
ODFhYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RXZlbnRBdHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTEyMSw4ICsxMjEsMTAgQEAgdm9pZCBydW5C
YXNpY0V2ZW50QXR0cmlidXRpb25UZXN0KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3Vy
YXRpb24sIEZ1bmN0aW8KICAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ud2Vic2l0ZURhdGFT
dG9yZSBfYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluOkBbKGlkKXRlc3RDZXJ0aWZpY2F0ZSgpLmdl
dCgpXSBmb3JIb3N0OnNlcnZlclVSTC5ob3N0XTsKICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nOnNlcnZlclVSTCBk
ZXN0aW5hdGlvblVSTDpleGFtcGxlVVJMKCkgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAg
W3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57Ci0gICAgICAgICAgICBOU1N0cmluZyAqaHRtbCA9
IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPHNjcmlwdD5mZXRjaCgnJUBjb252ZXJzaW9u
UmVxdWVzdEJlZm9yZVJlZGlyZWN0Jyx7bW9kZTonbm8tY29ycyd9KTwvc2NyaXB0PiIsIHNlcnZl
clVSTF07Ci0gICAgICAgICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6
ZXhhbXBsZVVSTCgpXTsKKyAgICAgICAgICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZzpAInRlc3QuYnVuZGxlLmlkIiBjb21wbGV0aW9u
SGFuZGxlcjpeeworICAgICAgICAgICAgICAgIE5TU3RyaW5nICpodG1sID0gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0PmZldGNoKCclQGNvbnZlcnNpb25SZXF1ZXN0QmVmb3Jl
UmVkaXJlY3QnLHttb2RlOiduby1jb3JzJ30pPC9zY3JpcHQ+Iiwgc2VydmVyVVJMXTsKKyAgICAg
ICAgICAgICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6ZXhhbXBsZVVS
TCgpXTsKKyAgICAgICAgICAgIH1dOwogICAgICAgICB9XTsKICAgICB9XTsKICAgICBVdGlsOjpy
dW4oJmRvbmUpOwpAQCAtMjcyLDggKzI3NCwxMCBAQCBURVNUKEV2ZW50QXR0cmlidXRpb24sIEZy
YXVkUHJldmVudGlvbikKICAgICAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CiAgICAg
ICAgICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRv
a2VuUHVibGljS2V5VVJMRm9yVGVzdGluZzpzZXJ2ZXJVUkwgY29tcGxldGlvbkhhbmRsZXI6XnsK
ICAgICAgICAgICAgICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRy
aWJ1dGlvblRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZzpzZXJ2ZXJVUkwgY29tcGxldGlvbkhh
bmRsZXI6XnsKLSAgICAgICAgICAgICAgICAgICAgTlNTdHJpbmcgKmh0bWwgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQ+c2V0VGltZW91dChmdW5jdGlvbigpeyBmZXRjaCgn
JUBjb252ZXJzaW9uUmVxdWVzdEJlZm9yZVJlZGlyZWN0Jyx7bW9kZTonbm8tY29ycyd9KTsgfSwg
MTAwKTs8L3NjcmlwdD4iLCBzZXJ2ZXJVUkxdOwotICAgICAgICAgICAgICAgICAgICBbd2ViVmll
dyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6ZXhhbXBsZVVSTCgpXTsKKyAgICAgICAgICAg
ICAgICAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nOkAidGVzdC5idW5kbGUuaWQiIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAg
ICAgICAgICAgICAgICAgICBOU1N0cmluZyAqaHRtbCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiPHNjcmlwdD5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IGZldGNoKCclQGNvbnZlcnNpb25S
ZXF1ZXN0QmVmb3JlUmVkaXJlY3QnLHttb2RlOiduby1jb3JzJ30pOyB9LCAxMDApOzwvc2NyaXB0
PiIsIHNlcnZlclVSTF07CisgICAgICAgICAgICAgICAgICAgICAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpodG1sIGJhc2VVUkw6ZXhhbXBsZVVSTCgpXTsKKyAgICAgICAgICAgICAgICAgICAg
fV07CiAgICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgICB9XTsKICAgICAgICAgfV07CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA1NWJiNjk1YThkNTguLjQ3N2E5MWFlMjNmMCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC00MTksNiArNDE5LDcgQEAgaW50ZXJmYWNl
IFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoRE9NU3RyaW5nIHNvdXJjZVVSTFN0cmluZywg
RE9NU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nKTsKICAgICB1bmRlZmluZWQgbWFya1ByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB1bmRlZmluZWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5n
KERPTVN0cmluZyB1bmxpbmthYmxlVG9rZW4sIERPTVN0cmluZyBzZWNyZXRUb2tlbiwgRE9NU3Ry
aW5nIHNpZ25hdHVyZSwgRE9NU3RyaW5nIGtleUlEKTsKKyAgICB1bmRlZmluZWQgc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoRE9NU3RyaW5nIGFwcEJ1bmRs
ZUlEKTsKIAogICAgIC8vIFNwZWVjaFJlY29nbml0aW9uCiAgICAgdW5kZWZpbmVkIHNldElzU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZhbHVlKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmlu
ZGV4IDBiZDc1MDRiNTkwZS4uNTdlYTI2MGFkZmY2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIxMjEsNiArMjEy
MSwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RnJhdWRQ
cmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhKU1N0cgogICAgIH0pKTsKIH0KIAordm9pZCBUZXN0
UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhK
U1N0cmluZ1JlZiBhcHBCdW5kbGVJRCkKK3sKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2Fn
ZSgiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmciLAorICAg
ICAgICB0b1dLKGFwcEJ1bmRsZUlEKSk7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6aGFzQXBwQm91
bmRTZXNzaW9uKCkKIHsKICAgICByZXR1cm4gcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2VSZXR1
cm5pbmdCb29sZWFuKCJIYXNBcHBCb3VuZFNlc3Npb24iKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYjM2ZjJmODNmOGIw
Li5lNmJlZThmMDRkMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC01MzcsNiArNTM3LDcgQEAgcHVibGljOgogICAgIHZv
aWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0
aW5nKCk7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVwaGVtZXJhbE1lYXN1
cmVtZW50Rm9yVGVzdGluZyhib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50RnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhKU1N0cmluZ1JlZiB1bmxp
bmthYmxlVG9rZW4sIEpTU3RyaW5nUmVmIHNlY3JldFRva2VuLCBKU1N0cmluZ1JlZiBzaWduYXR1
cmUsIEpTU3RyaW5nUmVmIGtleUlEKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKEpTU3RyaW5nUmVmKTsKICAgICB2b2lkIHNpbXVsYXRl
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCk7CiAKICAgICB2b2lkIHNldElz
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNjdlOTk3OGNhMjhjLi5mY2NiYTg1MTVi
MjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zNzIx
LDYgKzM3MjEsMTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0UENNRnJhdWRQcmV2ZW50aW9u
VmFsdWVzRm9yVGVzdGluZyhXS1N0cmluZ1JlZiB1bmxpbmthYmwKICAgICBydW5VbnRpbChjYWxs
YmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tTdHJpbmdS
ZWYgYXBwQnVuZGxlSUQpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJh
Y2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7CisgICAgV0tQYWdlU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgp
LCBhcHBCdW5kbGVJRCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxs
YmFja0NvbnRleHQpOworICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVv
dXQpOworfQorCiBXS1VSTFJlZiBUZXN0Q29udHJvbGxlcjo6Y3VycmVudFRlc3RVUkwoKSBjb25z
dAogewogICAgIHJldHVybiBtX2N1cnJlbnRJbnZvY2F0aW9uID8gbV9jdXJyZW50SW52b2NhdGlv
bi0+dXJsKCkgOiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CmluZGV4IDUwYmU1YjlkNWVjZC4uOGJlMjA0MTgwZDc5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNTMsNiArMzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5n
KFdLVVJMUmVmIHNvdXJjZVVSTCwgV0tVUkxSZWYgZGVzdGluYXRpb25VUkwpOwogICAgIHZvaWQg
bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB2
b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV0tTdHJpbmdSZWYgdW5s
aW5rYWJsZVRva2VuLCBXS1N0cmluZ1JlZiBzZWNyZXRUb2tlbiwgV0tTdHJpbmdSZWYgc2lnbmF0
dXJlLCBXS1N0cmluZ1JlZiBrZXlJRCk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXS1N0cmluZ1JlZik7CiAKICAgICB2b2lkIGRpZFNl
dEFwcEJvdW5kRG9tYWlucygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCmluZGV4IGYzMGJjYmZkMDNiZi4uYWYwODlhYzNhMjQ3IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQxOCw2ICsxNDE4LDExIEBA
IFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
IAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmciKSkgeworICAgICAg
ICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
cHBCdW5kbGVJREZvclRlc3Rpbmcoc3RyaW5nVmFsdWUobWVzc2FnZUJvZHkpKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcobWVzc2FnZU5hbWUsICJTeW5jTG9jYWxTdG9yYWdlIikpIHsKICAgICAgICAgVGVzdENv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLnN5bmNMb2NhbFN0b3JhZ2UoKTsKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Cg==
</data>
<flag name="commit-queue"
          id="464967"
          type_id="3"
          status="-"
          setter="wilander"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440935</attachid>
            <date>2021-10-12 08:16:08 -0700</date>
            <delta_ts>2021-10-12 08:37:52 -0700</delta_ts>
            <desc>Patch with better explanation of the fix for the test case.</desc>
            <filename>radar84130892_cherry-pick.patch</filename>
            <type>text/plain</type>
            <size>67922</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMWQ1NGE5YzZmNDMuLjRjNDJmMjA0ZWY1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIxLTEwLTExICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIENoZXJyeS1waWNraW5nIG9mOgorICAgICAgICAtIGh0dHBzOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8yODMzMTYvd2Via2l0LCA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+CisgICAg
ICAgIC0gaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI4MjEwOS93ZWJraXQsIDxy
ZGFyOi8vcHJvYmxlbS84Mjg0MTg0ND4KKworICAgICAgICBQbHVzIGEgZml4IG9mIGFuIEFQSSB0
ZXN0IHRoYXQgd2FzIHRpbWluZyBvdXQgKEV2ZW50QXR0cmlidXRpb24uRnJhdWRQcmV2ZW50aW9u
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlw
bGUtYXBwLWJ1bmRsZS1pZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL3V0aWwuanM6CisgICAgICAgICh0ZWFyRG93bkFuZEZpbmlzaCk6CisKIDIwMjEtMTAt
MTEgIEFsYW4gQ29vbiAgPGFsYW5jb29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVycnktcGlj
ayByMjgyODg0LiByZGFyOi8vcHJvYmxlbS84Mzk1NDkyNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxl
LWlkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmZhM2E1ZjQ5MDIwOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVs
dGlwbGUtYXBwLWJ1bmRsZS1pZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rlc3Rz
IHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgd2l0aCBtdWx0aXBsZSBhcHAgYnVuZGxlIElEcywg
bWFraW5nIHN1cmUgb25seSB0aGUgbWF0Y2hpbmcgSUQgaXMgY29uc2lkZXJlZCBhIG1hdGNoLgor
CisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK0F0dHJp
YnV0aW9uIHJlY2VpdmVkLgorSFRUUF9IT1NUOiAxMjcuMC4wLjE6ODAwMAorQ29udGVudCB0eXBl
OiBhcHBsaWNhdGlvbi9qc29uCitSRVFVRVNUX1VSSTogL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnB5P3JlY2lwaWVudD1DbGlja1NvdXJjZQorTm8g
Y29va2llcyBpbiBhdHRyaWJ1dGlvbiByZXF1ZXN0LgorUmVxdWVzdCBib2R5OgoreyJzb3VyY2Vf
ZW5nYWdlbWVudF90eXBlIjoiY2xpY2siLCJzb3VyY2Vfc2l0ZSI6IjEyNy4wLjAuMSIsInNvdXJj
ZV9pZCI6MzMsImF0dHJpYnV0ZWRfb25fc2l0ZSI6ImxvY2FsaG9zdCIsInRyaWdnZXJfZGF0YSI6
MTIsInZlcnNpb24iOjJ9CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0t
LS0tLS0tCitBdHRyaWJ1dGlvbiByZWNlaXZlZC4KK0hUVFBfSE9TVDogbG9jYWxob3N0OjgwMDAK
K0NvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgorUkVRVUVTVF9VUkk6IC9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5weT9yZWNpcGllbnQ9Q2xp
Y2tEZXN0aW5hdGlvbgorTm8gY29va2llcyBpbiBhdHRyaWJ1dGlvbiByZXF1ZXN0LgorUmVxdWVz
dCBib2R5OgoreyJzb3VyY2VfZW5nYWdlbWVudF90eXBlIjoiY2xpY2siLCJzb3VyY2Vfc2l0ZSI6
IjEyNy4wLjAuMSIsInNvdXJjZV9pZCI6MzMsImF0dHJpYnV0ZWRfb25fc2l0ZSI6ImxvY2FsaG9z
dCIsInRyaWdnZXJfZGF0YSI6MTIsInZlcnNpb24iOjJ9CisKK1VuYXR0cmlidXRlZCBQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEK
K1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1Nv
dXJjZSBJRDogMjMKK05vIGF0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YS4KK0FwcGxpY2F0aW9uIGJ1
bmRsZSBpZGVudGlmaWVyOiB0ZXN0QnVuZGxlSUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVs
dGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjVkNDcwMzQ3YzAwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMu
aHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2Vy
LXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCB3
aXRoIG11bHRpcGxlIGFwcCBidW5kbGUgSURzLCBtYWtpbmcgc3VyZSBvbmx5IHRoZSBtYXRjaGlu
ZyBJRCBpcyBjb25zaWRlcmVkIGEgbWF0Y2guPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluazEiIGhy
ZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9tdWx0aXBs
ZS1hcHAtYnVuZGxlLWlkcy5odG1sP3N0ZXBUd28iIGF0dHJpYnV0aW9uc291cmNlaWQ9MjMgYXR0
cmlidXRpb25kZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rMTwvYT48YnI+
Cis8YSBpZD0idGFyZ2V0TGluazIiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sP3N0ZXBGb3VyIiBh
dHRyaWJ1dGlvbnNvdXJjZWlkPTMzIGF0dHJpYnV0aW9uZGVzdGluYXRpb249Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI+TGluazI8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3Jp
cHQ+CisgICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgp
OworICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJlbnRUaW1lTWlsbGlzIC0gKE1hdGgu
Zmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAqIDEwMDAwMDApOworICAgIGNvbnN0
IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkg
KiAxMDApOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJp
ZGVUaW1lckZvclRlc3RpbmcodHJ1ZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsK
KyAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3Rp
dmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50
Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRl
clkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAg
ICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAg
ICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5u
ZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJE
b3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gYXBwZW5kSWZyYW1lKHVybCwgb25sb2FkQ2FsbGJhY2spIHsKKyAgICAgICAgbGV0
IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAg
ICAgaWZyYW1lRWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykK
KyAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gb25sb2FkQ2FsbGJhY2s7CisgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgfQorCisg
ICAgbGV0IHJlcG9ydHNSZWNlaXZlZCA9IDA7CisgICAgZnVuY3Rpb24gYXBwZW5kQ29udmVyc2lv
bkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsxIikpOworICAgICAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5r
MiIpKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicGl4ZWwiKSk7CisKKyAgICAgICAgLy8gQ2xpY2sgc291cmNlLgorICAgICAgICBh
cHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucHk/dGltZW91dF9tcz0yMDAwJnJlY2lwaWVu
dD1DbGlja1NvdXJjZSZub25jZT0iICsgbm9uY2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
cmVwb3J0c1JlY2VpdmVkKys7CisgICAgICAgICAgICBpZiAocmVwb3J0c1JlY2VpdmVkID49IDIp
CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9KTsKKworICAgICAgICAv
LyBDbGljayBkZXN0aW5hdGlvbi4KKyAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25E
YXRhLnB5P3RpbWVvdXRfbXM9MjAwMCZyZWNpcGllbnQ9Q2xpY2tEZXN0aW5hdGlvbiZub25jZT0i
ICsgbm9uY2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmVwb3J0c1JlY2VpdmVkKys7Cisg
ICAgICAgICAgICBpZiAocmVwb3J0c1JlY2VpdmVkID49IDIpCisgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8g
U3RlcCAyOiBHbyBiYWNrIHRvIHRoZSBzb3VyY2UuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvbXVsdGlwbGUtYXBwLWJ1bmRsZS1pZHMuaHRtbD9zdGVwVGhyZWUiOworICAgICAgICAg
ICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUaHJlZSIpIHsK
KyAgICAgICAgICAgICAgICAvLyBTdGVwIDM6IENoYW5nZSB0aGUgYXBwIGJ1bmRsZSBJRCBhbmQg
Y2xpY2sgdGhlIHNlY29uZCBsaW5rLgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoIiIpOworICAgICAgICAg
ICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluazIiKTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwRm91ciIpIHsKKyAgICAgICAg
ICAgICAgICAvLyBTdGVwIDQ6IENvbnZlcnQuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmco
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
Y29udmVyc2lvblJlcG9ydC5weT9yZWNpcGllbnQ9Q2xpY2tTb3VyY2Umbm9uY2U9IiArIG5vbmNl
LCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9jb252ZXJzaW9uUmVwb3J0LnB5P3JlY2lwaWVudD1DbGlja0Rlc3RpbmF0aW9uJm5vbmNlPSIg
KyBub25jZSk7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAi
aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
cmVkaXJlY3RUb0NvbnZlcnNpb24ucHk/Y29udmVyc2lvbkRhdGE9MTImbm9uY2U9IiArIG5vbmNl
OworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAg
ICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKTsKKyAgICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VF
bGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gU3RlcCAx
OiBDaGFuZ2UgdGhlIGFwcCBidW5kbGUgSUQgYW5kIGNsaWNrIHRoZSBmaXJzdCBsaW5rLgorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5k
bGVJREZvclRlc3RpbmcoInRlc3RCdW5kbGVJRCIpOworICAgICAgICAgICAgICAgIGFjdGl2YXRl
RWxlbWVudCgidGFyZ2V0TGluazEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQg
PSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzCmluZGV4IGU3YzNj
ZDg4YzQyOC4uMmE2MzM2MTQyYWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMK
QEAgLTE1LDYgKzE1LDcgQEAgZnVuY3Rpb24gdGVhckRvd25BbmRGaW5pc2goKSB7CiAgICAgICAg
IHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVS
THNGb3JUZXN0aW5nKCIiLCAiIik7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoIiIpOwogICAgICAgICB0ZXN0
UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0
aW5nKCIiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFw
cEJ1bmRsZUlERm9yVGVzdGluZygiIik7CiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMDQxMzMxZTM2MGMuLjY2NmI4ZWQ0YzAwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTExICBKb2huIFdpbGFuZGVyICA8d2ls
YW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIENoZXJyeS1waWNraW5nIG9mOgorICAgICAgICAt
IGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yODMzMTYvd2Via2l0LCA8cmRhcjov
L3Byb2JsZW0vODM1MTY1Mjg+CisgICAgICAgIC0gaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzI4MjEwOS93ZWJraXQsIDxyZGFyOi8vcHJvYmxlbS84Mjg0MTg0ND4KKworICAgICAg
ICBQbHVzIGEgZml4IG9mIGFuIEFQSSB0ZXN0IHRoYXQgd2FzIHRpbWluZyBvdXQgKEV2ZW50QXR0
cmlidXRpb24uRnJhdWRQcmV2ZW50aW9uKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L211bHRpcGxlLWFwcC1idW5kbGUtaWRzLmh0bWwKKworICAg
ICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJ
REZvclRlc3RpbmcpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5o
OgorCiAyMDIxLTEwLTExICBBbGFuIENvb24gIDxhbGFuY29vbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2hlcnJ5LXBpY2sgcjI4Mjg4NC4gcmRhcjovL3Byb2JsZW0vODM5NTQ5MjYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDVk
OWUwYWIxY2Q0My4uMGRmZWQwNDFjZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTE0Myw2ICsxNDMsMTEgQEAgYm9vbCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzUHJldmlvdXNseUJlZW5SZXBvcnRlZCgpCiAgICAg
cmV0dXJuICFtX3RpbWVzVG9TZW5kLnNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCB8fCAhbV90aW1l
c1RvU2VuZC5kZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZDsKIH0KIAordm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6c2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJREZvclRlc3Rpbmco
Y29uc3QgU3RyaW5nJiBhcHBCdW5kbGVJREZvclRlc3RpbmcpCit7CisgICAgbV9zb3VyY2VBcHBs
aWNhdGlvbkJ1bmRsZUlEID0gYXBwQnVuZGxlSURGb3JUZXN0aW5nOworfQorCiBzdGF0aWMgU2Vj
b25kcyByYW5kb21seUJldHdlZW5Ud2VudHlGb3VyQW5kRm9ydHlFaWdodEhvdXJzKCkKIHsKICAg
ICByZXR1cm4gMjRfaCArIFNlY29uZHMocmFuZG9tTnVtYmVyKCkgKiAoMjRfaCkudmFsdWUoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCmlu
ZGV4IDA2YmJmZjdjNTA0Ny4uZGFlMjQzNDRmMmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaApAQCAtMzQxLDYgKzM0MSw3IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+JiBhdHRy
aWJ1dGlvblRyaWdnZXJEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGlvblRyaWdnZXJE
YXRhOyB9CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYg
YXR0cmlidXRpb25UcmlnZ2VyRGF0YSkgeyBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZN
b3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpOyB9CiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlEOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlERm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKIAogICAgIGNvbnN0IFN0cmluZyYgc291
cmNlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZURlc2NyaXB0aW9uOyB9CiAg
ICAgY29uc3QgU3RyaW5nJiBwdXJjaGFzZXIoKSBjb25zdCB7IHJldHVybiBtX3B1cmNoYXNlcjsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBhYzUxODc5YjM0MWEuLmQzNTFmMzA4YzhiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MyBAQAorMjAyMS0xMC0xMSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBDaGVycnktcGlja2luZyBvZjoKKyAgICAgICAgLSBodHRwczovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjgzMzE2L3dlYmtpdCwgPHJkYXI6Ly9wcm9ibGVtLzgzNTE2
NTI4PgorICAgICAgICAtIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yODIxMDkv
d2Via2l0LCA8cmRhcjovL3Byb2JsZW0vODI4NDE4NDQ+CisKKyAgICAgICAgUGx1cyBhIGZpeCBv
ZiBhbiBBUEkgdGVzdCB0aGF0IHdhcyB0aW1pbmcgb3V0IChFdmVudEF0dHJpYnV0aW9uLkZyYXVk
UHJldmVudGlvbikuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9tdWx0aXBsZS1hcHAtYnVuZGxlLWlkcy5odG1sCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5k
bGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
RGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgICAgICBOb3cg
dGFrZXMgYW4gYXBwIGJ1bmRsZSBJRCBzdXBwbGllZCBmcm9tIHRoZSBuZXR3b3JrIHNlc3Npb24g
YW5kCisgICAgICAgICAgICBpbmNsdWRlcyBpdCBpbiB0aGUgZGF0YWJhc2UgcXVlcnkgdG8gZmlu
ZCBtYXRjaGluZyBlbnRyaWVzLiBJZiBhbmQKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uIHdhcyBz
YXZlZCB3aXRoIGFwcCBidW5kbGUgSUQgWFlaLCBpdCBzaG91bGQgb25seSBiZQorICAgICAgICAg
ICAgYmUgY29udmVydGVkIGluIGFuIGFwcGxpY2F0aW9uIHdpdGggYXBwIGJ1bmRsZSBJRCBYWVou
CisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01l
YXN1cmVtZW50KToKKyAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsbHMgUENNOjpEYXRhYmFz
ZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKKyAgICAgICAgICAgIHdoaWNoIG5lZWRz
IHRoZSBhcHAgYnVuZGxlIElEIHNvIHRoYXQgSUQgaXMgZm9yd2FyZGVkIHRocm91Z2guCisgICAg
ICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OnJlbW92ZVVuYXR0cmlidXRlZCk6CisgICAgICAg
ICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0
aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjpjbGVhclNlbnRBdHRyaWJ1dGlv
bik6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50
byBjb25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNlOjptYXJrUmVw
b3J0QXNTZW50VG9EZXN0aW5hdGlvbik6CisgICAgICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2Ug
dGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpQ
Q006OkRhdGFiYXNlOjptYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UpOgorICAgICAgICAgICAgQWxz
byBuZWVkcyB0byB0YWtlIHRoZSBhcHAgYnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbi4KKyAg
ICAgICAgKFdlYktpdDo6UENNOjpEYXRhYmFzZTo6ZWFybGllc3RUaW1lc1RvU2VuZCk6CisgICAg
ICAgICAgICBBbHNvIG5lZWRzIHRvIHRha2UgdGhlIGFwcCBidW5kbGUgSUQgaW50byBjb25zaWRl
cmF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OnN0b3JlVW5hdHRyaWJ1dGVkKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgICAgICBOb3cgdGFrZXMg
YSBSZWdpc3RyYWJsZURvbWFpbiBhbmQgYSBVUkwgaW5zdGVhZCBvZiBhIFJlc291cmNlUmVxdWVz
dCAocjI4MjEwOSkuCisgICAgICAgICAgICBOb3cgdGFrZXMgYW4gQXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyIChyMjgzMzE2KS4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
YXR0cmlidXRlKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpjbGVhcik6CisgICAgICAgICAgICBDbGVhcnMgdGhlIHRlc3Qgc2V0dGluZyBmb3IgYXBw
IGJ1bmRsZSBJRC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXJJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Om1lc3NhZ2VUeXBlU2Vu
ZHNSZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01h
bmFnZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5hZ2VyUHJveHk6
OmhhbmRsZUF0dHJpYnV0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5hZ2VyUHJveHk6
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQQ006OlN0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9y
VGVzdGluZyk6CisgICAgICAgIChXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1
bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5n
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBw
QnVuZGxlSURGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMjEtMTAtMTEgIEFsYW4gQ29vbiAgPGFs
YW5jb29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVycnktcGljayByMjgzMTk0LiByZGFyOi8v
cHJvYmxlbS84Mzk1MzQzMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAppbmRleCA2ODVjNzNmMGQyYWIuLmE0Mjc3OGE2NmNkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI2NzAs
NiArMjY3MCwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQQ01GcmF1ZFByZXZlbnRpb25W
YWx1ZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3NpbwogICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5n
JiYgYXBwQnVuZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpKQorICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXVEZNb3ZlKGFwcEJ1bmRsZUlERm9yVGVzdGluZykpOwor
CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRk
S2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiYmIGxvYWRlcikKIHsKICAg
ICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKGxvYWRlci0+c2Vzc2lvbklEKCkp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4
IDc3NThmOTYwYTg0Ny4uZDY1NTk4MWI0Y2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNTAsNiArMzUwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBVUkwmJiBzb3VyY2VVUkwsIFVSTCYmIGRlc3RpbmF0aW9u
VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25W
YWx1ZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4s
IFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYm
IGFwcEJ1bmRsZUlERm9yVGVzdGluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAog
ICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFNYW5h
Z2VyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggZDc5OTc0NTFjNDU0Li4yMWZkNjU4MzNhZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgpAQCAtMTcxLDYgKzE3MSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0
VVJMc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgc291cmNlVVJMLCBV
UkwgZGVzdGluYXRpb25VUkwpIC0+ICgpIEFzeW5jCiAgICAgTWFya1ByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAo
KSBBc3luYwogICAgIFNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgc2VjcmV0VG9rZW4sIFN0cmluZyB1bmxpbmthYmxl
VG9rZW4sIFN0cmluZyBzaWduYXR1cmUsIFN0cmluZyBrZXlJRCkgLT4gKCkgQXN5bmMKKyAgICBT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFN0cmluZyBhcHBCdW5kbGVJREZvclRlc3RpbmcpIC0+ICgpIEFzeW5j
CiAgICAgR2V0TG9jYWxTdG9yYWdlT3JpZ2luRGV0YWlscyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpIC0+IChWZWN0b3I8V2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6Ok9yaWdp
bkRldGFpbHM+IGRldGFpbHMpIEFzeW5jCiAKICAgICBTZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1l
b3V0Rm9yVGVzdGluZyhTZWNvbmRzIHNlY29uZHMpIC0+ICgpIFN5bmNocm9ub3VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDY0Zjkx
NTFlMTU4My4uYzBiNGUzMzAwN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDIsOCArNDIsMTAgQEAKICNpbmNsdWRlICJXZWJT
b2NrZXRUYXNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJEZWZhdWx0
V2ViQnJvd3NlckNoZWNrcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ29jb2EuaCIKICNl
bmRpZgogI2lmIFVTRShTT1VQKQpAQCAtMzE4LDcgKzMyMCwxMiBAQCB2b2lkIE5ldHdvcmtTZXNz
aW9uOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQogewotICAgIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCkuaGFuZGxlQXR0cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1
dGlvblRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwgcmVkaXJlY3RSZXF1ZXN0KTsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBhdXRvIGFwcEJ1bmRsZUlEID0gV2ViQ29yZTo6YXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIGF1dG8gYXBwQnVuZGxlSUQgPSBTdHJpbmco
KTsKKyNlbmRpZgorICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuaGFuZGxlQXR0cmlidXRp
b24oV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwgUmVnaXN0cmFi
bGVEb21haW4ocmVkaXJlY3RSZXF1ZXN0LnVybCgpKSwgcmVkaXJlY3RSZXF1ZXN0LmZpcnN0UGFy
dHlGb3JDb29raWVzKCksIGFwcEJ1bmRsZUlEKTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6
ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTM4Miw2ICszODksMTQgQEAgdm9pZCBOZXR3b3Jr
U2Vzc2lvbjo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseSgpCiAg
ICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5zdGFydFRpbWVyKDBfcyk7CiB9CiAKK3ZvaWQg
TmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JU
ZXN0aW5nKFN0cmluZyYmIGFwcEJ1bmRsZUlERm9yVGVzdGluZykKK3sKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBSRUxFQVNFX0FTU0VSVChpc1J1bm5pbmdUZXN0KFdlYkNvcmU6OmFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpKSk7CisjZW5kaWYKKyAgICBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCgpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFdU
Rk1vdmUoYXBwQnVuZGxlSURGb3JUZXN0aW5nKSk7Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246
OmFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCiB7
CiAgICAgQVNTRVJUKG1fc2Vzc2lvbklEID09IGxvYWRlci0+c2Vzc2lvbklEKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGNkNDU4Y2Ni
MTA5Yi4uODg0YTllMzcxNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oCkBAIC0xMzcsNiArMTM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9v
bCk7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmlu
ZyYmIHVubGlua2FibGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25h
dHVyZSwgU3RyaW5nJiYga2V5SUQpOwogICAgIHZvaWQgZmlyZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50VGltZXJJbW1lZGlhdGVseSgpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcoU3RyaW5nJiYgYXBwQnVuZGxlSURGb3JUZXN0aW5nKTsK
IAogICAgIHZvaWQgYWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9hZGVyPiYm
KTsKICAgICB2b2lkIHJlbW92ZUtlcHRBbGl2ZUxvYWQoTmV0d29ya1Jlc291cmNlTG9hZGVyJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERhdGFiYXNlLmNwcAppbmRleCBiZjk3YTIzMjUxZDkuLjc2NDQ2OTZmNjhkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGF0YWJhc2UuY3BwCkBAIC00MiwxOCArNDIsMTggQEAgY29uc3RleHByIGF1
dG8gaW5zZXJ0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJJTlNF
UlQgT1IgUkVQTEEKICAgICAic291cmNlSUQsIHRpbWVPZkFkQ2xpY2ssIHRva2VuLCBzaWduYXR1
cmUsIGtleUlELCBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKSBWQUxVRVMgKD8sID8sID8sID8s
ID8sID8sID8sID8pIl9zOwogY29uc3RleHByIGF1dG8gaW5zZXJ0QXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50UXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKHNvdXJjZVNpdGVEb21haW5JRCwgZGVzdGluYXRpb25T
aXRlRG9tYWluSUQsICIKICAgICAic291cmNlSUQsIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIHBy
aW9yaXR5LCB0aW1lT2ZBZENsaWNrLCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZSwgdG9rZW4s
IHNpZ25hdHVyZSwga2V5SUQsIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24sIHNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSUQpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPywgPywg
PywgPywgPykiX3M7Ci1jb25zdGV4cHIgYXV0byBmaW5kVW5hdHRyaWJ1dGVkUXVlcnkgPSAiU0VM
RUNUICogRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3Vy
Y2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3M7Ci1j
b25zdGV4cHIgYXV0byBmaW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gQXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8g
QU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIHJlbW92
ZVVuYXR0cmlidXRlZFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9u
U2l0ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRVbmF0dHJpYnV0ZWRRdWVy
eSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdI
RVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0g
PyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBm
aW5kQXR0cmlidXRlZFF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9u
U2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citj
b25zdGV4cHIgYXV0byByZW1vdmVVbmF0dHJpYnV0ZWRRdWVyeSA9ICJERUxFVEUgRlJPTSBVbmF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQg
PSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9u
QnVuZGxlSUQgPSA/Il9zOwogY29uc3RleHByIGF1dG8gYWxsQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50UXVlcnkgPSAiU0VMRUNUICosIE1JTihlYXJsaWVzdFRpbWVUb1NlbmRUb1Nv
dXJjZSwgZWFybGllc3RUaW1lVG9TZW5kVG9EZXN0aW5hdGlvbikgYXMgbWluVmFsICIKICAgICAi
RlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgZWFybGllc3RUaW1l
VG9TZW5kVG9Tb3VyY2UgSVMgTk9UIE5VTEwgQU5EIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGlu
YXRpb24gSVMgTk9UIE5VTEwgIgogICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVhcmxpZXN0VGlt
ZVRvU2VuZFRvU291cmNlIGFzIG1pblZhbCBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBXSEVSRSBlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uIElTIE5VTEwgIgog
ICAgICJVTklPTiBBTEwgU0VMRUNUICosIGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24g
YXMgbWluVmFsIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIGVh
cmxpZXN0VGltZVRvU2VuZFRvU291cmNlIElTIE5VTEwgT1JERVIgQlkgbWluVmFsIl9zOwogY29u
c3RleHByIGF1dG8gYWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvbnNRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50Il9zOwogY29uc3RleHByIGF1dG8gY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRRdWVyeSA9ICJERUxFVEUgRlJPTSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCBXSEVSRSA/ID4gdGltZU9mQWRDbGljayJfczsKLWNvbnN0ZXhwciBhdXRvIG1hcmtSZXBv
cnRBc1NlbnRUb1NvdXJjZVF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlID0gbnVsbCBXSEVSRSBzb3Vy
Y2VTaXRlRG9tYWluSUQgPSA/IEFORCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8iX3M7Ci1j
b25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvblF1ZXJ5ID0gIlVQREFU
RSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2Vu
ZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRl
c3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyJfczsKLWNvbnN0ZXhwciBhdXRvIGVhcmxpZXN0VGlt
ZXNUb1NlbmRRdWVyeSA9ICJTRUxFQ1QgZWFybGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UsIGVhcmxp
ZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgZGVzdGluYXRpb25TaXRl
RG9tYWluSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gbWFya1JlcG9ydEFzU2VudFRvU291cmNl
UXVlcnkgPSAiVVBEQVRFIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBTRVQgZWFy
bGllc3RUaW1lVG9TZW5kVG9Tb3VyY2UgPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9
ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25C
dW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBtYXJrUmVwb3J0QXNTZW50VG9EZXN0aW5h
dGlvblF1ZXJ5ID0gIlVQREFURSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VU
IGVhcmxpZXN0VGltZVRvU2VuZFRvRGVzdGluYXRpb24gPSBudWxsIFdIRVJFIHNvdXJjZVNpdGVE
b21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gPyBBTkQgc291cmNlQXBw
bGljYXRpb25CdW5kbGVJRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBlYXJsaWVzdFRpbWVzVG9T
ZW5kUXVlcnkgPSAiU0VMRUNUIGVhcmxpZXN0VGltZVRvU2VuZFRvU291cmNlLCBlYXJsaWVzdFRp
bWVUb1NlbmRUb0Rlc3RpbmF0aW9uIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0aW9uU2l0ZURvbWFp
bklEID0gPyBBTkQgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9ID8iX3M7CiBjb25zdGV4cHIg
YXV0byBkb21haW5JREZyb21TdHJpbmdRdWVyeSA9ICJTRUxFQ1QgZG9tYWluSUQgRlJPTSBQQ01P
YnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwogY29uc3RleHBy
IGF1dG8gZG9tYWluU3RyaW5nRnJvbURvbWFpbklEUXVlcnkgPSAiU0VMRUNUIHJlZ2lzdHJhYmxl
RG9tYWluIEZST00gUENNT2JzZXJ2ZWREb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyJfczsKIGNv
bnN0ZXhwciBhdXRvIGNyZWF0ZVVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0g
IkNSRUFURSBUQUJMRSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAoIgpAQCAt
MjM2LDcgKzIzNiw3IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKQogICAgIH0KIH0KIAotc3RkOjpw
YWlyPHN0ZDo6b3B0aW9uYWw8RGF0YWJhc2U6OlVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50Piwgc3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6QXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50Pj4gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwg
Y29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGlu
YXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUpCitzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRh
YmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFs
PERhdGFiYXNlOjpBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+PiBEYXRhYmFzZTo6
ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9u
U2l0ZSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgYXV0
byBzb3VyY2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChzb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9t
YWluKTsKQEAgLTI0Nyw3ICsyNDcsOCBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFz
ZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdAogICAgIGF1
dG8gZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVu
dChtX2ZpbmRVbmF0dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSwgImZp
bmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFmaW5kVW5hdHRyaWJ1dGVk
U2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1l
bnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCi0gICAgICAg
IHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0
aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgfHwgZmluZFVuYXR0cmli
dXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQp
ICE9IFNRTElURV9PSworICAgICAgICB8fCBmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50
LT5iaW5kVGV4dCgzLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpICE9IFNRTElURV9PSykg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVw
IC0gRGF0YWJhc2U6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kVW5hdHRyaWJ1dGVk
UXVlcnksIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IH0KQEAgLTI1NSw3ICsyNTYsOCBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6
VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdAogICAgIGF1dG8g
ZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9m
aW5kQXR0cmlidXRlZFN0YXRlbWVudCwgZmluZEF0dHJpYnV0ZWRRdWVyeSwgImZpbmRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCJfcyk7CiAgICAgaWYgKCFmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRl
bWVudAogICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgx
LCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgZmluZEF0dHJp
YnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklE
KSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgfHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1l
bnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAg
ICAgICAgfHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIGFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllcikgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiJXAgLSBEYXRhYmFzZTo6ZmluZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IGZpbmRBdHRyaWJ1dGVkUXVlcnksIGVycm9yIG1lc3NhZ2U6
ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTI3MSw3ICsyNzMsNyBA
QCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxEYXRhYmFzZTo6VW5hdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdAogICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcih1bmF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgYXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50KTsKIH0KIAotc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IERh
dGFiYXNlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRl
JiBkZXN0aW5hdGlvblNpdGUsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKK3N0ZDo6cGFpcjxz
dGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNV
bnRpbFNlbmREYXRhPiwgRGVidWdJbmZvPiBEYXRhYmFzZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBjb25zdCBBcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBh
dHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwogCkBAIC0yOTAsNyArMjkyLDcgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGEKIAogICAgIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhIHNl
Y29uZHNVbnRpbFNlbmQgeyBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9OwogCi0gICAgYXV0
byBhdHRyaWJ1dGlvbiA9IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBk
ZXN0aW5hdGlvblNpdGUpOworICAgIGF1dG8gYXR0cmlidXRpb24gPSBmaW5kUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIpOwogICAgIGF1dG8mIHByZXZpb3VzbHlVbmF0dHJpYnV0ZWQgPSBhdHRyaWJ1
dGlvbi5maXJzdDsKICAgICBhdXRvJiBwcmV2aW91c2x5QXR0cmlidXRlZCA9IGF0dHJpYnV0aW9u
LnNlY29uZDsKIApAQCAtMzQ5LDYgKzM1MSw3IEBAIHZvaWQgRGF0YWJhc2U6OnJlbW92ZVVuYXR0
cmlidXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYgYXR0cmlidXRpb24pCiAgICAgaWYgKCFz
Y29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpz
b3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1l
bnQtPmJpbmRJbnQoMiwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAg
ICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgzLCBhdHRyaWJ1dGlvbi5zb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlEKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0
ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6OnJlbW92ZVVuYXR0cmli
dXRlZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01
MjEsNiArNTI0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24oV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGkKIAogICAgIGF1dG8gc291cmNl
U2l0ZURvbWFpbklEID0gZG9tYWluSUQoYXR0cmlidXRpb24uc291cmNlU2l0ZSgpLnJlZ2lzdHJh
YmxlRG9tYWluKTsKICAgICBhdXRvIGRlc3RpbmF0aW9uU2l0ZURvbWFpbklEID0gZG9tYWluSUQo
YXR0cmlidXRpb24uZGVzdGluYXRpb25TaXRlKCkucmVnaXN0cmFibGVEb21haW4pOworICAgIGF1
dG8gc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCA9IGF0dHJpYnV0aW9uLnNvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSUQoKTsKIAogICAgIGlmICghc291cmNlU2l0ZURvbWFpbklEIHx8ICFkZXN0aW5h
dGlvblNpdGVEb21haW5JRCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTMxLDcgKzUzNSw3IEBAIHZv
aWQgRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50JiYgYXR0cmlidXRpCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtYXJrUmVwb3J0QXNTZW50
VG9Tb3VyY2UoKnNvdXJjZVNpdGVEb21haW5JRCwgKmRlc3RpbmF0aW9uU2l0ZURvbWFpbklEKTsK
KyAgICAgICAgbWFya1JlcG9ydEFzU2VudFRvU291cmNlKCpzb3VyY2VTaXRlRG9tYWluSUQsICpk
ZXN0aW5hdGlvblNpdGVEb21haW5JRCwgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCk7CiAgICAg
ICAgIHNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCA9IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBvcnRF
bmRwb2ludDo6RGVzdGluYXRpb246CkBAIC01MzksNyArNTQzLDcgQEAgdm9pZCBEYXRhYmFzZTo6
Y2xlYXJTZW50QXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBh
dHRyaWJ1dGkKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9u
KCpzb3VyY2VTaXRlRG9tYWluSUQsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCk7CisgICAgICAg
IG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKCpzb3VyY2VTaXRlRG9tYWluSUQsICpkZXN0
aW5hdGlvblNpdGVEb21haW5JRCwgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCk7CiAgICAgICAg
IGRlc3RpbmF0aW9uRWFybGllc3RUaW1lVG9TZW5kID0gc3RkOjpudWxsb3B0OwogICAgIH0KIApA
QCAtNTQ3LDE3ICs1NTEsMTggQEAgdm9pZCBEYXRhYmFzZTo6Y2xlYXJTZW50QXR0cmlidXRpb24o
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGkKICAgICBpZiAoZGVz
dGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQgfHwgc291cmNlRWFybGllc3RUaW1lVG9TZW5kKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudCA9IG1f
ZGF0YWJhc2UucHJlcGFyZVN0YXRlbWVudCgiREVMRVRFIEZST00gQXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGRlc3RpbmF0
aW9uU2l0ZURvbWFpbklEID0gPyJfcyk7CisgICAgYXV0byBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1l
bnQgPSBtX2RhdGFiYXNlLnByZXBhcmVTdGF0ZW1lbnQoIkRFTEVURSBGUk9NIEF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCBXSEVSRSBzb3VyY2VTaXRlRG9tYWluSUQgPSA/IEFORCBk
ZXN0aW5hdGlvblNpdGVEb21haW5JRCA9ID8gQU5EIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQg
PSA/Il9zKTsKICAgICBpZiAoIWNsZWFyQXR0cmlidXRlZFN0YXRlbWVudAogICAgICAgICB8fCBj
bGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudC0+YmluZElu
dCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBj
bGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIHNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQt
PnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6OmNsZWFyU2VudEF0dHJpYnV0aW9u
IGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICB9CiB9CiAKLXZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb0Rlc3Rp
bmF0aW9uKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVzdGluYXRpb25Eb21h
aW5JRCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCkKK3ZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRB
c1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVz
dGluYXRpb25Eb21haW5JRCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCwgY29uc3QgQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyJiBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKQogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGF1dG8gc2NvcGVkU3RhdGVtZW50ID0gdGhp
cy0+c2NvcGVkU3RhdGVtZW50KG1fbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb25TdGF0ZW1l
bnQsIG1hcmtSZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uUXVlcnksICJtYXJrUmVwb3J0QXNTZW50
VG9EZXN0aW5hdGlvbiJfcyk7CkBAIC01NjUsMTMgKzU3MCwxNCBAQCB2b2lkIERhdGFiYXNlOjpt
YXJrUmVwb3J0QXNTZW50VG9EZXN0aW5hdGlvbihTb3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9t
YWluSUQsCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVt
ZW50LT5iaW5kSW50KDEsIHNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAg
IHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCBkZXN0aW5hdGlvblNpdGVEb21haW5JRCkg
IT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgc291
cmNlQXBwbGljYXRpb25CdW5kbGVJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0
YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRU
b0Rlc3RpbmF0aW9uLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IH0KIH0KIAotdm9pZCBEYXRhYmFzZTo6bWFya1JlcG9ydEFzU2VudFRvU291cmNlKFNvdXJjZURv
bWFpbklEIHNvdXJjZVNpdGVEb21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCBkZXN0aW5hdGlv
blNpdGVEb21haW5JRCkKK3ZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShT
b3VyY2VEb21haW5JRCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpbmF0aW9uRG9tYWluSUQgZGVz
dGluYXRpb25TaXRlRG9tYWluSUQsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYg
c291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKICAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudCht
X21hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZVN0YXRlbWVudCwgbWFya1JlcG9ydEFzU2VudFRvU291
cmNlUXVlcnksICJtYXJrUmVwb3J0QXNTZW50VG9Tb3VyY2UiX3MpOwpAQCAtNTc5LDYgKzU4NSw3
IEBAIHZvaWQgRGF0YWJhc2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5J
RCBzb3VyY2VTaXRlRG9tYWluSUQsIERlc3RpCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAg
ICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsIHNvdXJjZVNpdGVEb21haW5JRCkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCBkZXN0
aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRl
bWVudC0+YmluZFRleHQoMywgc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCkgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiRGF0YWJh
c2U6Om1hcmtSZXBvcnRBc1NlbnRUb1NvdXJjZSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xP
R19TVFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTU5OSw2ICs2MDYsNyBAQCBzdGQ6OnBhaXI8c3RkOjpvcHRpb25hbDxE
YXRhYmFzZTo6U291cmNlRWFybGllc3RUaW1lVG9TZW5kPiwgc3RkOjpvcHRpb25hbDxEYXRhYgog
ICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+Ymlu
ZEludCgxLCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2Nv
cGVkU3RhdGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FM
SVRFX09LCisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMywgYXR0cmlidXRp
b24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
c2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkRhdGFiYXNlOjplYXJsaWVzdFRp
bWVzVG9TZW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RGF0YWJhc2UuaAppbmRleCA1N2MzZTRiNGM5ZjQuLmVkN2VmN2Y5NTdhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERh
dGFiYXNlLmgKQEAgLTQxLDEwICs0MSwxMiBAQCBwdWJsaWM6CiAgICAgRGF0YWJhc2UoY29uc3Qg
U3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KTsKICAgICB2aXJ0dWFsIH5EYXRhYmFzZSgpOwogICAg
IAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKKwogICAg
IHN0YXRpYyB2b2lkIGludGVycnVwdEFsbERhdGFiYXNlcygpOwogCiAgICAgdm9pZCBpbnNlcnRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYm
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7Ci0gICAgc3RkOjpwYWly
PHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0ZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uRGVzdGluYXRpb25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CisgICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2Vu
ZERhdGE+LCBEZWJ1Z0luZm8+IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRl
JiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiwgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAgVmVjdG9yPFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4pOwogICAgIHZvaWQgY2xlYXJF
eHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKQEAgLTY1LDExICs2NywxMSBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBjcmVhdGVTY2hlbWEoKSBmaW5hbDsKICAgICB2b2lkIGRlc3Ryb3lT
dGF0ZW1lbnRzKCkgZmluYWw7Ci0gICAgc3RkOjpwYWlyPHN0ZDo6b3B0aW9uYWw8VW5hdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFsPEF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4+IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYp
OworICAgIHN0ZDo6cGFpcjxzdGQ6Om9wdGlvbmFsPFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50Piwgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+PiBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBjb25zdCBBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHJlbW92ZVVuYXR0cmlidXRlZChXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwogICAgIFN0cmluZyBhdHRyaWJ1dGlvblRvU3Ry
aW5nRm9yVGVzdGluZyhjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpIGNv
bnN0OwotICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvRGVzdGluYXRpb24oU291cmNlRG9tYWlu
SUQsIERlc3RpbmF0aW9uRG9tYWluSUQpOwotICAgIHZvaWQgbWFya1JlcG9ydEFzU2VudFRvU291
cmNlKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFpbklEKTsKKyAgICB2b2lkIG1hcmtS
ZXBvcnRBc1NlbnRUb0Rlc3RpbmF0aW9uKFNvdXJjZURvbWFpbklELCBEZXN0aW5hdGlvbkRvbWFp
bklELCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKKyAgICB2b2lkIG1hcmtS
ZXBvcnRBc1NlbnRUb1NvdXJjZShTb3VyY2VEb21haW5JRCwgRGVzdGluYXRpb25Eb21haW5JRCwg
Y29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJik7CiAgICAgc3RkOjpwYWlyPHN0ZDo6
b3B0aW9uYWw8U291cmNlRWFybGllc3RUaW1lVG9TZW5kPiwgc3RkOjpvcHRpb25hbDxEZXN0aW5h
dGlvbkVhcmxpZXN0VGltZVRvU2VuZD4+IGVhcmxpZXN0VGltZXNUb1NlbmQoY29uc3QgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKICAgICBzdGQ6Om9wdGlvbmFsPERvbWFpbklE
PiBlbnN1cmVEb21haW5JRChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwogICAg
IHN0ZDo6b3B0aW9uYWw8RG9tYWluSUQ+IGRvbWFpbklEKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcAppbmRleCAzZTJmZWU0NDE0MjguLjQ2MThmNDFl
NTIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50U3RvcmUuY3BwCkBAIC05NSw5ICs5NSw5IEBAIHZvaWQgU3RvcmU6Om1h
cmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3Rp
bmcoKQogICAgIH0pOwogfQogCi12b2lkIFN0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0
ZSYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dD4mJiBlcGhlbWVyYWxNZWFzdXJlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29u
ZHNVbnRpbFNlbmREYXRhPiYmLCBEZWJ1Z0luZm8mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFN0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlJiBkZXN0aW5hdGlvblNpdGUsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYg
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgZXBoZW1lcmFs
TWVhc3VyZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0
YT4mJiwgRGVidWdJbmZvJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHBvc3RUYXNr
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHNvdXJjZVNpdGUgPSBzb3Vy
Y2VTaXRlLmlzb2xhdGVkQ29weSgpLCBkZXN0aW5hdGlvblNpdGUgPSBkZXN0aW5hdGlvblNpdGUu
aXNvbGF0ZWRDb3B5KCksIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEpLCBlcGhlbWVyYWxNZWFzdXJlbWVudCA9IGNyb3NzVGhyZWFkQ29weShl
cGhlbWVyYWxNZWFzdXJlbWVudCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHNvdXJjZVNpdGUgPSBzb3VyY2VTaXRlLmlzb2xhdGVkQ29w
eSgpLCBkZXN0aW5hdGlvblNpdGUgPSBkZXN0aW5hdGlvblNpdGUuaXNvbGF0ZWRDb3B5KCksIGFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllci5p
c29sYXRlZENvcHkoKSwgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoYXR0cmlidXRp
b25UcmlnZ2VyRGF0YSksIGVwaGVtZXJhbE1lYXN1cmVtZW50ID0gY3Jvc3NUaHJlYWRDb3B5KGVw
aGVtZXJhbE1lYXN1cmVtZW50KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZSkgewogICAg
ICAgICAgICAgcmV0dXJuIHBvc3RUYXNrUmVwbHkoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCwgeyB9KTsKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lk
IFN0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbQogICAgICAgICAgICAgbV9kYXRhYmFzZS0+aW5zZXJ0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZSgqZXBoZW1lcmFsTWVhc3VyZW1lbnQpLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6VW5hdHRyaWJ1dGVkKTsKICAgICAgICAg
fQogCi0gICAgICAgIGF1dG8gW3NlY29uZHMsIGRlYnVnSW5mb10gPSBtX2RhdGFiYXNlLT5hdHRy
aWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlvblNpdGUs
IFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkpOworICAgICAgICBhdXRvIFtzZWNvbmRz
LCBkZWJ1Z0luZm9dID0gbV9kYXRhYmFzZS0+YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIsIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkpOwogCiAgICAgICAgIHBvc3RUYXNr
UmVwbHkoW3NlY29uZHMgPSBXVEZNb3ZlKHNlY29uZHMpLCBkZWJ1Z0luZm8gPSBkZWJ1Z0luZm8u
aXNvbGF0ZWRDb3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KHNlY29uZHMpLCBXVEZNb3ZlKGRlYnVnSW5mbykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaAppbmRleCAwNTUxZWQw
YWJkMWMuLjJiMjY4M2YzMWY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3Jl
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmgKQEAgLTQ3LDExICs0NywxMyBAQCBw
dWJsaWM6CiAKICAgICB+U3RvcmUoKTsKIAorICAgIHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciA9IFN0cmluZzsKKwogICAgIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JQcm9jZXNzVG9T
dXNwZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgc3RhdGljIHZvaWQgcHJv
Y2Vzc0RpZFJlc3VtZSgpOwogCiAgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKTsKLSAgICB2b2lkIGF0dHJpYnV0ZVByaXZhdGVD
bGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0aW9uRGVzdGluYXRpb25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4mJiBlcGhlbWVyYWxNZWFzdXJlbWVudCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiYmLCBEZWJ1Z0luZm8mJik+JiYpOworICAg
IHZvaWQgYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBjb25zdCBBcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50PiYmIGVwaGVtZXJhbE1lYXN1cmVtZW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4mJik7CiAK
ICAgICB2b2lkIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmdGb3JUZXN0aW5nKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCBtYXJrQWxsVW5hdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlci5jcHAKaW5kZXggNzk3NDhhNjgzZWY4Li5hYTBjM2RkODQ3OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAgLTc1LDYgKzc1LDkgQEAgdm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50JiYKIAogICAgIGNsZWFyRXhwaXJlZCgpOwogCisgICAgaWYgKG1fcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcpCisgICAgICAgIG1lYXN1cmVt
ZW50LnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSURGb3JUZXN0aW5nKCptX3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKTsKKwogICAgIGlmIChtZWFzdXJlbWVu
dC5lcGhlbWVyYWxTb3VyY2VOb25jZSgpKSB7CiAgICAgICAgIGF1dG8gbWVhc3VyZW1lbnRDb3B5
ID0gbWVhc3VyZW1lbnQ7CiAgICAgICAgIC8vIFRoaXMgaXMgZ3VhcmFudGVlZCB0byBiZSBjbG9z
ZSBpbiB0aW1lIHRvIHRoZSBuYXZpZ2F0aW9uYWwgY2xpY2sgd2hpY2ggbWFrZXMgaXQgbGlrZWx5
IHRvIGJlIHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlLgpAQCAtMjU1LDE0ICsyNTgsMTEgQEAgdm9p
ZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Omluc2VydFByaXZhdGVDbGlja01lYXN1
cmVtZW50KFByaXZhdGVDbGlja00KICNlbmRpZgogfQogCi12b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYm
IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpCit2b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFpbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5VVJMLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0RG9tYWluIHsgcmVkaXJl
Y3RSZXF1ZXN0LnVybCgpIH07Ci0gICAgYXV0byYgZmlyc3RQYXJ0eVVSTCA9IHJlZGlyZWN0UmVx
dWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpOwotCiAgICAgaWYgKCFyZWRpcmVjdERvbWFpbi5t
YXRjaGVzKHJlcXVlc3RVUkwpKSB7CiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnRdIFRyaWdnZXJpbmcgZXZlbnQgd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQ
IHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiJfcyk7CiAgICAgICAgIHJldHVybjsKQEAgLTI3
NSw3ICsyNzUsMTUgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRs
ZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJgogCiAgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkxvZywgIltQcml2YXRlIENs
aWNrIE1lYXN1cmVtZW50XSBUcmlnZ2VyaW5nIGV2ZW50IGFjY2VwdGVkLiJfcyk7CiAKLSAgICBh
dHRyaWJ1dGUoU291cmNlU2l0ZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIEF0dHJpYnV0
aW9uRGVzdGluYXRpb25TaXRlIHsgZmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEpKTsKKyAgICBhdHRyaWJ1dGUoU291cmNlU2l0ZSB7IFdURk1vdmUocmVkaXJl
Y3REb21haW4pIH0sIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIHsgZmlyc3RQYXJ0eVVSTCB9
LCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBtX3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nID8gKm1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmcgOiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpOworfQorCit2
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYg
YXBwQnVuZGxlSUQpCit7CisgICAgaWYgKGFwcEJ1bmRsZUlELmlzRW1wdHkoKSkKKyAgICAgICAg
bV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA9IHN0ZDo6bnVs
bG9wdDsKKyAgICBlbHNlCisgICAgICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5k
bGVJREZvclRlc3RpbmcgPSBXVEZNb3ZlKGFwcEJ1bmRsZUlEKTsKIH0KIAogdm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0YXJ0VGltZXIoU2Vjb25kcyBzZWNvbmRzKQpAQCAt
MjgzLDcgKzI5MSw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGFy
dFRpbWVyKFNlY29uZHMgc2Vjb25kcykKICAgICBtX2ZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1
ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lzUnVubmluZ1Rlc3QgPyAwX3MgOiBzZWNvbmRzKTsK
IH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZShjb25z
dCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0
ZSYgZGVzdGluYXRpb25TaXRlLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSkKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphdHRyaWJ1
dGUoY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgQXR0cmlidXRpb25EZXN0aW5h
dGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYgYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQpAQCAtMjk4LDcgKzMwNiw3IEBA
IHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUoY29uc3QgU291
cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uCiAgICAgfQogICAgICAgICAKICAgICBpZiAoYXV0byog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkgewotICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFN0b3JlKCkuYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291
cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEp
LCBzdGQ6OmV4Y2hhbmdlKG1fZXBoZW1lcmFsTWVhc3VyZW1lbnQsIHN0ZDo6bnVsbG9wdCksIFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8gYXR0cmlidXRpb25TZWNv
bmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0luZm8pIHsKKyAgICAgICAgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZSgpLmF0dHJpYnV0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0ZSwgYXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBzdGQ6
OmV4Y2hhbmdlKG1fZXBoZW1lcmFsTWVhc3VyZW1lbnQsIHN0ZDo6bnVsbG9wdCksIFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8gYXR0cmlidXRpb25TZWNvbmRzVW50
aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0luZm8pIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCkBAIC00NzMsNiArNDgxLDcg
QEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW8KICAgICBtX2ZpcmVQZW5kaW5nQXR0cmlidXRpb25S
ZXF1ZXN0c1RpbWVyLnN0b3AoKTsKICAgICBtX2VwaGVtZXJhbE1lYXN1cmVtZW50ID0gc3RkOjpu
dWxsb3B0OwogICAgIG1faXNSdW5uaW5nRXBoZW1lcmFsTWVhc3VyZW1lbnRUZXN0ID0gZmFsc2U7
CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA9IHN0
ZDo6bnVsbG9wdDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAg
aWYgKCFmZWF0dXJlRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggZjQ5
NTlkNWVhNGQ0Li40MGIyNGRhN2Q1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaApAQCAt
NTIsMTAgKzUyLDExIEBAIHB1YmxpYzoKICAgICB1c2luZyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIHVzaW5nIFJlZ2lzdHJh
YmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgU291cmNl
U2l0ZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOworICAg
IHVzaW5nIEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IFN0cmluZzsKICAgICBleHBsaWNp
dCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3Jr
UHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkKE5ldHdvcmtMb2FkUGFyYW1l
dGVycyYmLCBOZXR3b3JrTG9hZENhbGxiYWNrJiYpPiYmKTsKIAogICAgIHZvaWQgc3RvcmVVbmF0
dHJpYnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7Ci0gICAgdm9pZCBoYW5kbGVBdHRy
aWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpOworICAgIHZv
aWQgaGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwm
IHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVSTCwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyJik7CiAgICAgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB0b1N0cmluZ0ZvclRlc3Rp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBjb25zdDsKQEAgLTY3LDYgKzY4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgeyBt
X2lzUnVubmluZ0VwaGVtZXJhbE1lYXN1cmVtZW50VGVzdCA9IHZhbHVlOyB9CiAgICAgdm9pZCBz
ZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVubGlua2FibGVU
b2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYg
a2V5SUQpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZv
clRlc3RpbmcoQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiYpOwogICAgIHZvaWQgc3RhcnRU
aW1lcihTZWNvbmRzKTsKIAogcHJpdmF0ZToKQEAgLTc0LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYm
KTsKICAgICB2b2lkIGluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFByaXZhdGVDbGlja01l
YXN1cmVtZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKTsKICAg
ICB2b2lkIGNsZWFyU2VudEF0dHJpYnV0aW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKLSAgICB2
b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRpb25EZXN0aW5h
dGlvblNpdGUmLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpOworICAgIHZvaWQgYXR0cmlidXRl
KGNvbnN0IFNvdXJjZVNpdGUmLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIEF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
Jik7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBvcnRFbmRw
b2ludCk7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBsKGNvbnN0IFByaXZhdGVD
bGlja01lYXN1cmVtZW50JiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uUmVw
b3J0RW5kcG9pbnQpOwogICAgIHZvaWQgZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzKCk7
CkBAIC04OCw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUnVubmluZ0VwaGVtZXJh
bE1lYXN1cmVtZW50VGVzdCB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxVUkw+IG1fdG9r
ZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nOwogICAgIHN0ZDo6b3B0aW9uYWw8VVJMPiBtX3Rva2Vu
U2lnbmF0dXJlVVJMRm9yVGVzdGluZzsKKyAgICBzdGQ6Om9wdGlvbmFsPEFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllcj4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVz
dGluZzsKICAgICBXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiBtX25ldHdvcmtTZXNzaW9uOwogICAg
IFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKICAgICBQQUw6OlNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmlu
ZGV4IDg1MTYzZjQ0NTBhYy4uYTNmODE5ODlhNTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxMzgsNiArMzEzOCwxNCBAQCB2b2lkIFdLUGFnZVNldFBD
TUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3Ry
aW5nUmVmCiAgICAgfSk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIGFw
cEJ1bmRsZUlERm9yVGVzdGluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBC
dW5kbGVJREZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0
KQoreworICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKKyAgICB0b0ltcGwocGFnZVJlZiktPnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKHRvV1RGU3RyaW5nKGFw
cEJ1bmRsZUlERm9yVGVzdGluZyksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7Cisg
ICAgICAgIGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7CisgICAgfSk7Cit9CisKIHZvaWQgV0tQ
YWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFnZVJlZiBwYWdlUmVmLCB1aW50NjRfdCBv
cmllbnRhdGlvbikKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5kZXggZjAwZmVjOGE3OWY2Li5lODcw
NTQ2ODZjOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2
YXRlLmgKQEAgLTE5Miw2ICsxOTIsOCBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VNYXJrUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uKSh2bwogV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRl
c3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNB
c0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4
dCk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JU
ZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBX
S1BhZ2VTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdl
LCBXS1N0cmluZ1JlZiBzZWNyZXRUb2tlbiwgV0tTdHJpbmdSZWYgdW5saW5rYWJsZVRva2VuLCBX
S1N0cmluZ1JlZiBzaWduYXR1cmUsIFdLU3RyaW5nUmVmIGtleUlELCBXS1BhZ2VTZXRQQ01GcmF1
ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxi
YWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQp
OworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5k
bGVJREZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIGFwcEJ1bmRsZUlE
Rm9yVGVzdGluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZv
clRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIAogV0tf
RVhQT1JUIHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFnZVJlZiBwYWdl
LCB1aW50NjRfdCBvcmllbnRhdGlvbik7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRl
c3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlRm9yVGVzdGluZy5oCmluZGV4IDIwNDcyNmEwZTg3ZC4uZTNlZDJhNGVjNTRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHN0cnVjdCBXS0FwcFBy
aXZhY3lSZXBvcnRUZXN0aW5nRGF0YSB7CiAtICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6KE5TVVJMICopc291cmNlVVJMIGRl
c3RpbmF0aW9uVVJMOihOU1VSTCAqKWRlc3RpbmF0aW9uVVJMIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uVG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nOihOU1VSTCAqKXVybCBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBdHRyaWJ1dGlvblRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZzooTlNVUkwgKil1cmwg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3NldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nOihOU1N0cmluZyAqKWFwcEJ1bmRs
ZUlEIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2
b2lkKV9kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6KHZvaWQoXikoTlNTdHJpbmcgKikpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAogLSAodm9pZClfbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ6KHZv
aWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IDY4YzQ0MTE0OWVh
NC4uY2I0MjM0NmFjZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtMzU0LDYgKzM1NCwxMyBAQCAtICh2b2lk
KV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVG9rZW5TaWduYXR1cmVVUkxG
b3JUZXN0aW5nOihOU1VSTAogICAgIH0pOwogfQogCistICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZzooTlNTdHJpbmcgKilhcHBCdW5kbGVJRCBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAg
IF9wYWdlLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhh
cHBCdW5kbGVJRCwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25I
YW5kbGVyKV0geworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH0pOworfQorCiAt
ICh2b2lkKV9kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6KHZvaWQoXikoTlNTdHJpbmcgKikp
Y29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBfcGFnZS0+ZHVtcFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcild
KGNvbnN0IFN0cmluZyYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGFhZjY0MjJkNzYyOS4uNDVhNjUwNTc0ZWEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwNDgzLDYg
KzEwNDgzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1
ZXNGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgdW5saW5rYWJsCiAgICAgd2Vic2l0ZURhdGFTdG9y
ZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6U2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhtX3dlYnNpdGVE
YXRhU3RvcmUtPnNlc3Npb25JRCgpLCB1bmxpbmthYmxlVG9rZW4sIHNlY3JldFRva2VuLCBzaWdu
YXR1cmUsIGtleUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rp
bmcoY29uc3QgU3RyaW5nJiBhcHBCdW5kbGVJREZvclRlc3RpbmcsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCku
bmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhtX3dl
YnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBhcHBCdW5kbGVJREZvclRlc3RpbmcpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJ
UykKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3BlZWNoU3ludGhlc2l6ZXIoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyMzNjNDNmMGFjMzMuLmRlOTM2MzBh
ODE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE3NjgsNiAr
MTc2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0
cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhjb25zdCBVUkwmIHNvdXJjZVVSTCwgY29uc3Qg
VVJMJiBkZXN0aW5hdGlvblVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25W
YWx1ZXNGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgdW5saW5rYWJsZVRva2VuLCBjb25zdCBTdHJp
bmcmIHNlY3JldFRva2VuLCBjb25zdCBTdHJpbmcmIHNpZ25hdHVyZSwgY29uc3QgU3RyaW5nJiBr
ZXlJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgYXBwQnVu
ZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAjaWYgRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNWb2ljZUxpc3Qo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViU3BlZWNoU3ludGhlc2lzVm9pY2U+JiYp
PiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBjOTcyOTNlMjdmMjMuLmEzMjhhMDNjYjg2MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEwLTExICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIENoZXJyeS1waWNraW5n
IG9mOgorICAgICAgICAtIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yODMzMTYv
d2Via2l0LCA8cmRhcjovL3Byb2JsZW0vODM1MTY1Mjg+CisgICAgICAgIC0gaHR0cHM6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzI4MjEwOS93ZWJraXQsIDxyZGFyOi8vcHJvYmxlbS84Mjg0
MTg0ND4KKworICAgICAgICBQbHVzIGEgZml4IG9mIGFuIEFQSSB0ZXN0IHRoYXQgd2FzIHRpbWlu
ZyBvdXQgKEV2ZW50QXR0cmlidXRpb24uRnJhdWRQcmV2ZW50aW9uKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OnJ1bkJhc2ljRXZlbnRBdHRyaWJ1dGlvblRlc3QpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICAgICBFdmVudEF0dHJpYnV0aW9uLkZy
YXVkUHJldmVudGlvbiBmaXhlZC4gSXQgd2FzIG1pc3NpbmcgYSBjYWxsIHRvCisgICAgICAgICAg
ICBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoKSBzbyB0
aGF0IHRoZSBhcHAgYnVuZGxlIElECisgICAgICAgICAgICBmb3IgdGhlIHRyaWdnZXJpbmcgZXZl
bnQgbWF0Y2hlcyB0aGUgYXBwIGJ1bmRsZSBJRCB3aGVyZSB0aGUgY2xpY2sgaGFwcGVuZWQuCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVu
bmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMjEt
MTAtMTEgIEFsYW4gQ29vbiAgPGFsYW5jb29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVycnkt
cGljayByMjgzMTk0LiByZGFyOi8vcHJvYmxlbS84Mzk1MzQzMwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmlu
ZGV4IGY5ODZhOTNlYjVlMi4uZDZkNDZjZDgxYWM2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0x
MjEsOCArMTIxLDEwIEBAIHZvaWQgcnVuQmFzaWNFdmVudEF0dHJpYnV0aW9uVGVzdChXS1dlYlZp
ZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uLCBGdW5jdGlvCiAgICAgW1t3ZWJWaWV3IGNv
bmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjpA
WyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV0gZm9ySG9zdDpzZXJ2ZXJVUkwuaG9zdF07CiAg
ICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRV
UkxzRm9yVGVzdGluZzpzZXJ2ZXJVUkwgZGVzdGluYXRpb25VUkw6ZXhhbXBsZVVSTCgpIGNvbXBs
ZXRpb25IYW5kbGVyOl57CiAgICAgICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeewotICAg
ICAgICAgICAgTlNTdHJpbmcgKmh0bWwgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxz
Y3JpcHQ+ZmV0Y2goJyVAY29udmVyc2lvblJlcXVlc3RCZWZvcmVSZWRpcmVjdCcse21vZGU6J25v
LWNvcnMnfSk8L3NjcmlwdD4iLCBzZXJ2ZXJVUkxdOwotICAgICAgICAgICAgW3dlYlZpZXcgbG9h
ZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOmV4YW1wbGVVUkwoKV07CisgICAgICAgICAgICBbd2Vi
VmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc6QCJ0
ZXN0LmJ1bmRsZS5pZCIgY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICAgICAgICAgICAgICBOU1N0
cmluZyAqaHRtbCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPHNjcmlwdD5mZXRjaCgn
JUBjb252ZXJzaW9uUmVxdWVzdEJlZm9yZVJlZGlyZWN0Jyx7bW9kZTonbm8tY29ycyd9KTwvc2Ny
aXB0PiIsIHNlcnZlclVSTF07CisgICAgICAgICAgICAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJp
bmc6aHRtbCBiYXNlVVJMOmV4YW1wbGVVUkwoKV07CisgICAgICAgICAgICB9XTsKICAgICAgICAg
fV07CiAgICAgfV07CiAgICAgVXRpbDo6cnVuKCZkb25lKTsKQEAgLTI3Miw4ICsyNzQsMTAgQEAg
VEVTVChFdmVudEF0dHJpYnV0aW9uLCBGcmF1ZFByZXZlbnRpb24pCiAgICAgICAgIFt3ZWJWaWV3
IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nOllFUyBj
b21wbGV0aW9uSGFuZGxlcjpeewogICAgICAgICAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25Ub2tlblB1YmxpY0tleVVSTEZvclRlc3Rpbmc6c2VydmVy
VVJMIGNvbXBsZXRpb25IYW5kbGVyOl57CiAgICAgICAgICAgICAgICAgW3dlYlZpZXcgX3NldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25Ub2tlblNpZ25hdHVyZVVSTEZvclRlc3Rp
bmc6c2VydmVyVVJMIGNvbXBsZXRpb25IYW5kbGVyOl57Ci0gICAgICAgICAgICAgICAgICAgIE5T
U3RyaW5nICpodG1sID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0PnNldFRp
bWVvdXQoZnVuY3Rpb24oKXsgZmV0Y2goJyVAY29udmVyc2lvblJlcXVlc3RCZWZvcmVSZWRpcmVj
dCcse21vZGU6J25vLWNvcnMnfSk7IH0sIDEwMCk7PC9zY3JpcHQ+Iiwgc2VydmVyVVJMXTsKLSAg
ICAgICAgICAgICAgICAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOmV4
YW1wbGVVUkwoKV07CisgICAgICAgICAgICAgICAgICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZzpAInRlc3QuYnVuZGxlLmlkIiBjb21w
bGV0aW9uSGFuZGxlcjpeeworICAgICAgICAgICAgICAgICAgICAgICAgTlNTdHJpbmcgKmh0bWwg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQ+c2V0VGltZW91dChmdW5jdGlv
bigpeyBmZXRjaCgnJUBjb252ZXJzaW9uUmVxdWVzdEJlZm9yZVJlZGlyZWN0Jyx7bW9kZTonbm8t
Y29ycyd9KTsgfSwgMTAwKTs8L3NjcmlwdD4iLCBzZXJ2ZXJVUkxdOworICAgICAgICAgICAgICAg
ICAgICAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOmV4YW1wbGVVUkwo
KV07CisgICAgICAgICAgICAgICAgICAgIH1dOwogICAgICAgICAgICAgICAgIH1dOwogICAgICAg
ICAgICAgfV07CiAgICAgICAgIH1dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNTVi
YjY5NWE4ZDU4Li40NzdhOTFhZTIzZjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAt
NDE5LDYgKzQxOSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB1bmRlZmluZWQgc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKERP
TVN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIERPTVN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZyk7
CiAgICAgdW5kZWZpbmVkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JU
ZXN0aW5nKCk7CiAgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RnJhdWRQ
cmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhET01TdHJpbmcgdW5saW5rYWJsZVRva2VuLCBET01T
dHJpbmcgc2VjcmV0VG9rZW4sIERPTVN0cmluZyBzaWduYXR1cmUsIERPTVN0cmluZyBrZXlJRCk7
CisgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JU
ZXN0aW5nKERPTVN0cmluZyBhcHBCdW5kbGVJRCk7CiAKICAgICAvLyBTcGVlY2hSZWNvZ25pdGlv
bgogICAgIHVuZGVmaW5lZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQo
Ym9vbGVhbiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAwYmQ3NTA0YjU5MGUuLjU3ZWEyNjBhZGZmNiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCkBAIC0yMTIxLDYgKzIxMjEsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoSlNTdHIK
ICAgICB9KSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcoSlNTdHJpbmdSZWYgYXBwQnVuZGxlSUQpCit7CisgICAg
cG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBw
QnVuZGxlSURGb3JUZXN0aW5nIiwKKyAgICAgICAgdG9XSyhhcHBCdW5kbGVJRCkpOworfQorCiBi
b29sIFRlc3RSdW5uZXI6Omhhc0FwcEJvdW5kU2Vzc2lvbigpCiB7CiAgICAgcmV0dXJuIHBvc3RT
eW5jaHJvbm91c1BhZ2VNZXNzYWdlUmV0dXJuaW5nQm9vbGVhbigiSGFzQXBwQm91bmRTZXNzaW9u
Iik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCmluZGV4IGIzNmYyZjgzZjhiMC4uZTZiZWU4ZjA0ZDIzIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNTM3LDYg
KzUzNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CiAg
ICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyYXVkUHJldmVudGlvblZhbHVlc0Zv
clRlc3RpbmcoSlNTdHJpbmdSZWYgdW5saW5rYWJsZVRva2VuLCBKU1N0cmluZ1JlZiBzZWNyZXRU
b2tlbiwgSlNTdHJpbmdSZWYgc2lnbmF0dXJlLCBKU1N0cmluZ1JlZiBrZXlJRCk7CisgICAgdm9p
ZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhKU1N0cmlu
Z1JlZik7CiAgICAgdm9pZCBzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVz
dGFydCgpOwogCiAgICAgdm9pZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50
ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDY3ZTk5NzhjYTI4Yy4uZmNjYmE4NTE1YjI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtMzcyMSw2ICszNzIxLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV0tTdHJpbmdSZWYgdW5s
aW5rYWJsCiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9
CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVu
ZGxlSURGb3JUZXN0aW5nKFdLU3RyaW5nUmVmIGFwcEJ1bmRsZUlEKQoreworICAgIFByaXZhdGVD
bGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMp
OworICAgIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgYXBwQnVuZGxlSUQsIHByaXZhdGVDbGlja01lYXN1
cmVtZW50Vm9pZENhbGxiYWNrLCAmY2FsbGJhY2tDb250ZXh0KTsKKyAgICBydW5VbnRpbChjYWxs
YmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKK30KKwogV0tVUkxSZWYgVGVzdENvbnRyb2xs
ZXI6OmN1cnJlbnRUZXN0VVJMKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jdXJyZW50SW52b2Nh
dGlvbiA/IG1fY3VycmVudEludm9jYXRpb24tPnVybCgpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA1MGJlNWI5ZDVlY2QuLjhiZTIwNDE4MGQ3
OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzUzLDYgKzM1
Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhXS1VSTFJlZiBzb3VyY2VVUkwsIFdLVVJMUmVmIGRl
c3RpbmF0aW9uVVJMKTsKICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNG
b3JUZXN0aW5nKFdLU3RyaW5nUmVmIHVubGlua2FibGVUb2tlbiwgV0tTdHJpbmdSZWYgc2VjcmV0
VG9rZW4sIFdLU3RyaW5nUmVmIHNpZ25hdHVyZSwgV0tTdHJpbmdSZWYga2V5SUQpOworICAgIHZv
aWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoV0tTdHJp
bmdSZWYpOwogCiAgICAgdm9pZCBkaWRTZXRBcHBCb3VuZERvbWFpbnMoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBmMzBiY2JmZDAzYmYu
LmFmMDg5YWMzYTI0NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAKQEAgLTE0MTgsNiArMTQxOCwxMSBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZv
Y2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxl
SURGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKHN0cmluZ1ZhbHVl
KG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU3luY0xvY2FsU3Rv
cmFnZSIpKSB7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zeW5jTG9jYWxT
dG9yYWdlKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwo=
</data>
<flag name="review"
          id="465030"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="465031"
          type_id="3"
          status="-"
          setter="wilander"
    />
          </attachment>
      

    </bug>

</bugzilla>