<?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>214167</bug_id>
          
          <creation_ts>2020-07-09 16:40:29 -0700</creation_ts>
          <short_desc>Resync web-platform-tests/payment-request from upstream</short_desc>
          <delta_ts>2020-07-16 09:05:59 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>213927</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>clopez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1670322</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-09 16:40:29 -0700</bug_when>
    <thetext>Resync web-platform-tests/payment-request from upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670337</commentid>
    <comment_count>1</comment_count>
      <attachid>403935</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-09 17:33:17 -0700</bug_when>
    <thetext>Created attachment 403935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670343</commentid>
    <comment_count>2</comment_count>
      <attachid>403935</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-07-09 17:52:06 -0700</bug_when>
    <thetext>Comment on attachment 403935
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670457</commentid>
    <comment_count>3</comment_count>
      <attachid>403969</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-10 08:53:47 -0700</bug_when>
    <thetext>Created attachment 403969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670558</commentid>
    <comment_count>4</comment_count>
      <attachid>403994</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-10 13:17:00 -0700</bug_when>
    <thetext>Created attachment 403994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670569</commentid>
    <comment_count>5</comment_count>
      <attachid>403998</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-10 14:01:59 -0700</bug_when>
    <thetext>Created attachment 403998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670587</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-10 14:48:32 -0700</bug_when>
    <thetext>Committed r264239: &lt;https://trac.webkit.org/changeset/264239&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403998.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670588</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-10 14:49:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/65365616&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403935</attachid>
            <date>2020-07-09 17:33:17 -0700</date>
            <delta_ts>2020-07-10 08:53:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214167-20200709173317.patch</filename>
            <type>text/plain</type>
            <size>295035</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjAzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjdhM2YyZTUwMTk2YTU2Yjg1NjYy
N2ZlZGI2Y2M5OTQ3NjNkODAyMC4uZGY1ODE3OTBjNTgxMGU2MTYxMDZiOWMyZjE3MWY4NWE4ZTQw
NTRkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA3LTA5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy1vcHRpb25zLmpzb246CisKIDIwMjAtMDctMDkgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBT
dHV0dGVyeSBzY3JvbGxpbmcgb24gdGVzbGEuY29tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCBiMWIzM2Q0NTAyMzE0ZjljMzY1NTM2YWI3NDJjMGVmNzFmMGM2ZjgzLi42Nzg1MmY1
MmFhYjYxZWRkMWU0MjcwMmE4MjRmMGIwYjBmZjEyMDA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0IGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
IGZyb20gdXBzdHJlYW0gY2VmOTNiNThlN2NmMzFmMWQ0N2MuCisKKyAgICAgICAgKiByZXNvdXJj
ZXMvcmVzb3VyY2UtZmlsZXMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0Lyo6IFVwZGF0ZWQuCisKIDIwMjAtMDctMDkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
YyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KaW5kZXggNWU4MmVkOWQ4ZGU5Y2NiOWM2YTJlMWQy
NmQwYjkyMTg1ZTFjYWNkZi4uMTMyNmM2N2QzOTRmNWQwOWQwNWViYTJmYjgxYzc5MzQzNTkxMGJl
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJj
ZS1maWxlcy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVz
b3VyY2UtZmlsZXMuanNvbgpAQCAtMjU1OCw2ICsyNTU4LDcgQEAKICAgICAgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9tYXRobWwvcmVsYXRpb25zL2h0bWw1LXRyZWUvdW5pcXVlLWlkZW50aWZpZXIt
MS1pZnJhbWUtMi5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtcmVjb3JkL3N1cHBvcnQvTWVkaWFSZWNvcmRlci1pZnJhbWUuaHRtbCIsCiAgICAgICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvZWNo
by1QYXltZW50UmVxdWVzdC5odG1sIiwKKyAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvYmxhbmsuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1yZXNwb25zZS1pZC5odG1sIiwKICAgICAgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2QtcG9zdG1lc3Nh
Z2UtaWZyYW1lLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRp
bWluZy9pZnJhbWUtc2V0ZG9tYWluLnN1Yi5odG1sIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvTUVUQS55bWwKaW5kZXggZTYwOGMwZWUyNzlmY2I3OTg3ZjkxNjdmODIyM2YzZmVkY2U2
NmMzMy4uMjQ0MDcyMDEzOGQzNGQ1Y2M3ZWFhYjlhNDY0OGYwNzgyOTYzMzBiMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvTUVUQS55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwKQEAgLTIsOCArMiw3IEBAIHNwZWM6IGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvCiBzdWdnZXN0ZWRfcmV2aWV3ZXJz
OgogICAtIG1hcmNvc2NhY2VyZXMKICAgLSByc29sb21ha2hpbgotICAtIGRvbWVuaWMKICAgLSB6
b3VoaXIKLSAgLSBtbm9vcmVuYmVyZ2hlCiAgIC0gcm9tYW5kZXYKLSAgLSBlZGVuY2h1YW5nCisg
IC0gYWVzdGVzCisgIC0gZGFueWFvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25F
dmVudC9jb21wbGV0ZS1tZXRob2QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2
ZW50L2NvbXBsZXRlLW1ldGhvZC5odHRwcy5odG1sCmluZGV4IDRlZGZkNTRmNDBlNGFlZmQwNDg4
MDg5Njc2ODk2NDBkMjg3YzdhYzcuLjM2YmZkYjIxNjBhN2M3ZjcxYTY0ZWNlYzA3MDI0YjcwMGJi
MWRlNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L2NvbXBsZXRlLW1l
dGhvZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L2NvbXBsZXRl
LW1ldGhvZC5odHRwcy5odG1sCkBAIC04LDcgKzgsNyBAQAogPHNjcmlwdD4KIHRlc3QoKCkgPT4g
ewogICBjb25zdCBldmVudCA9IG5ldyBNZXJjaGFudFZhbGlkYXRpb25FdmVudCgidGVzdCIpOwot
ICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsICgpID0+IHsKKyAgYXNzZXJ0X3Ro
cm93c19kb20oIkludmFsaWRTdGF0ZUVycm9yIiwgKCkgPT4gewogICAgIGV2ZW50LmNvbXBsZXRl
KCIiKTsKICAgfSkKIH0sICJJZiBldmVudCdzIGlzVHJ1c3RlZCBhdHRyaWJ1dGUgaXMgZmFsc2Us
IHRoZW4gdGhlbiB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBET01FeGNlcHRpb24uIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb25zdHJ1Y3Rvci5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb25zdHJ1Y3Rvci5odHRw
cy1leHBlY3RlZC50eHQKaW5kZXggZTM5MDczOTc1YWRjZDJmZTNiZjNiNDhjMGNmMGY3MzVmNmIw
MDY2NS4uZDMzZTE1ZjRjMDRkYzY0MWExOTAwOTRmZTRiNTY5ZjA1YTQ5YTIxNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQvY29uc3RydWN0b3IuaHR0cHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtNSw2ICs1LDcgQEAgUEFTUyBNZXJjaGFudFZhbGlkYXRpb25FdmVudCBj
YW4gYmUgZGlzcGF0Y2hlZCwgZXZlbiBpZiBub3QgdHJ1c3RlZC4KIFBBU1MgTXVzdCBoYXZlIGEg
dmFsaWRhdGlvblVSTCBJREwgYXR0cmlidXRlLCB3aGljaCBpcyBpbml0aWFsaXplZCB3aXRoIHRv
IHRoZSB2YWxpZGF0aW9uVVJMIGRpY3Rpb25hcnkgdmFsdWUuIAogUEFTUyBNdXN0IHRocm93IFR5
cGVFcnJvciBpZiBpbml0aWFsaXplZCB3aXRoIGFuIGludmFsaWQgVVJMLiAKIFBBU1MgUmVsYXRp
dmUgdmFsaWRhdGlvblVSTHMgdXNlIHRoZSBkb2N1bWVudCBhcyB0aGUgYmFzZS4gCitGQUlMIFJl
bGF0aXZlIHZhbGlkYXRpb25VUkxzIHVzZSB0aGUgZG9jdW1lbnQuYmFzZVVSSSBhcyB0aGUgYmFz
ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHBzOi8vcGFzcy5jb20vcGFzcyIgYnV0IGdv
dCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0
aW9uRXZlbnQvcGFzcyIKIFBBU1MgTXVzdCBoYXZlIGEgbWV0aG9kTmFtZSBJREwgYXR0cmlidXRl
LCB3aGljaCBpcyBpbml0aWFsaXplZCB3aXRoIHRvIHRoZSBtZXRob2ROYW1lIGRpY3Rpb25hcnkg
dmFsdWUuIAogUEFTUyBXaGVuIG5vIG1ldGhvZE5hbWUgaXMgcGFzc2VkLCBtZXRob2ROYW1lIGF0
dHJpYnV0ZSBkZWZhdWx0cyB0byB0aGUgZW1wdHkgc3RyaW5nIAogUEFTUyBNZXJjaGFudFZhbGlk
YXRpb25FdmVudCBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCB2YWxpZCBQTUlzIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQvY29uc3RydWN0b3IuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwKaW5kZXggZWM4
YTRmZjFlZDA5MjVhMzU0ZjI2MzFkODQ1OTMzN2U0N2FiMDc5ZC4uOWZkZjc4ZGRiM2RlYTRkZTcy
ZTQ4ZDFhZTUyODhjMGE5ZjE2MWQ2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9u
RXZlbnQvY29uc3RydWN0b3IuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25F
dmVudC9jb25zdHJ1Y3Rvci5odHRwcy5odG1sCkBAIC04LDYgKzgsMTMgQEAKIDxzY3JpcHQ+CiBj
b25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0
cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisg
ICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50
cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0s
CisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9CiB9KTsKIGNvbnN0IGJhc2lj
Q2FyZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7
CiBjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZCwgYXBwbGVQ
YXldKTsKQEAgLTU3LDcgKzY0LDcgQEAgdGVzdCgoKSA9PiB7CiAKIHRlc3QoKCkgPT4gewogICBj
b25zdCB2YWxpZGF0aW9uVVJMID0gImh0dHA6Ly9cdTAwNUIiOyAvLyBpbnZhbGlkIFVSTAotICBh
c3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pz
KFR5cGVFcnJvciwgKCkgPT4gewogICAgIG5ldyBNZXJjaGFudFZhbGlkYXRpb25FdmVudCgidGVz
dCIsIHsgdmFsaWRhdGlvblVSTCB9KTsKICAgfSk7CiB9LCAiTXVzdCB0aHJvdyBUeXBlRXJyb3Ig
aWYgaW5pdGlhbGl6ZWQgd2l0aCBhbiBpbnZhbGlkIFVSTC4iKTsKQEAgLTcyLDYgKzc5LDIwIEBA
IHRlc3QoKCkgPT4gewogICB9CiB9LCAiUmVsYXRpdmUgdmFsaWRhdGlvblVSTHMgdXNlIHRoZSBk
b2N1bWVudCBhcyB0aGUgYmFzZS4iKTsKIAordGVzdCgoKSA9PiB7CisgIGNvbnN0IHZhbGlkYXRp
b25VUkwgPSAicGFzcyI7CisgIGNvbnN0IGJhc2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJi
YXNlIik7CisgIGJhc2UuaHJlZiA9ICJodHRwczovL3Bhc3MuY29tIjsKKyAgZG9jdW1lbnQuaGVh
ZC5hcHBlbmQoYmFzZSk7CisgIGNvbnN0IGV2ZW50ID0gbmV3IE1lcmNoYW50VmFsaWRhdGlvbkV2
ZW50KCJ0ZXN0IiwgeyB2YWxpZGF0aW9uVVJMIH0pOworICB0cnkgeworICAgIGFzc2VydF9pZGxf
YXR0cmlidXRlKGV2ZW50LCAidmFsaWRhdGlvblVSTCIpOworICAgIGFzc2VydF9lcXVhbHMoZXZl
bnQudmFsaWRhdGlvblVSTCwgImh0dHBzOi8vcGFzcy5jb20vcGFzcyIpOworICB9IGZpbmFsbHkg
eworICAgIGJhc2UucmVtb3ZlKCk7CisgIH0KK30sICJSZWxhdGl2ZSB2YWxpZGF0aW9uVVJMcyB1
c2UgdGhlIGRvY3VtZW50LmJhc2VVUkkgYXMgdGhlIGJhc2UuIik7CisKIHRlc3QoKCkgPT4gewog
ICBjb25zdCBtZXRob2ROYW1lID0gImh0dHBzOi8vcGFzcy5jb20iOwogICBjb25zdCBldmVudCA9
IG5ldyBNZXJjaGFudFZhbGlkYXRpb25FdmVudCgidGVzdCIsIHsgbWV0aG9kTmFtZSB9KTsKQEAg
LTExNCw4ICsxMzUsOCBAQCB0ZXN0KCgpID0+IHsKICAgICAidW5rbm93bjovL2V4YW1wbGUuY29t
L3BheSIsCiAgIF07CiAgIGZvciAoY29uc3QgbWV0aG9kTmFtZSBvZiBpbnZhbGlkUE1Jcykgewot
ICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBuZXcgUmFuZ2VFcnJvcigpLAorICAgIGFzc2VydF90
aHJvd3NfanMoCisgICAgICBSYW5nZUVycm9yLAogICAgICAgKCkgPT4gewogICAgICAgICBjb25z
dCBldmVudCA9IG5ldyBNZXJjaGFudFZhbGlkYXRpb25FdmVudCgidGVzdCIsIHsgbWV0aG9kTmFt
ZSB9KTsKICAgICAgIH0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50QWRkcmVzcy9hdHRyaWJ1dGVz
LWFuZC10b0pTT04tbWV0aG9kLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudEFkZHJlc3Mv
YXR0cmlidXRlcy1hbmQtdG9KU09OLW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbAppbmRleCBlZGRl
NTMzYmU2YjJlNDk0MTViODFhZTRkZjE2NzEzOTExN2EwZDdjLi44YWZjYTE5ZjkyM2Q0NWEyZDk3
YTEzNGVjYzFjOWEwMmJmNGFlYTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50QWRkcmVzcy9hdHRy
aWJ1dGVzLWFuZC10b0pTT04tbWV0aG9kLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1l
bnRBZGRyZXNzL2F0dHJpYnV0ZXMtYW5kLXRvSlNPTi1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwK
QEAgLTI4LDggKzI4LDggQEAgZnVuY3Rpb24gcnVuTWFudWFsVGVzdChidXR0b24sIGV4cGVjdGVk
ID0ge30pIHsKICAgICAgIGFkZHIuYWRkcmVzc0xpbmUgaW5zdGFuY2VvZiBBcnJheSwKICAgICAg
ICJFeHBlY3RlZCBhZGRyZXNzTGluZSB0byBiZSBhbiBhcnJheSIKICAgICApOwotICAgIGFzc2Vy
dF90aHJvd3MoCi0gICAgICBuZXcgVHlwZUVycm9yKCksCisgICAgYXNzZXJ0X3Rocm93c19qcygK
KyAgICAgIFR5cGVFcnJvciwKICAgICAgICgpID0+IHsKICAgICAgICAgYWRkci5hZGRyZXNzTGlu
ZS5wdXNoKCJ0aGlzIG11c3QgdGhyb3ciKTsKICAgICAgIH0sCkBAIC03Myw2ICs3Myw3IEBAIGZ1
bmN0aW9uIHJ1bk1hbnVhbFRlc3QoYnV0dG9uLCBleHBlY3RlZCA9IHt9KSB7CiAgICAgICBjaXR5
OiAnQ2hhcGVsIEhpbGwnLAogICAgICAgZGVwZW5kZW50TG9jYWxpdHk6ICcnLAogICAgICAgcG9z
dGFsQ29kZTogJzYwOTUnLAorICAgICAgcmVnaW9uOiAnUUxEJywKICAgICAgIHNvcnRpbmdDb2Rl
OiAnJywKICAgICAgIG9yZ2FuaXphdGlvbjogJ3czYycsCiAgICAgICByZWNpcGllbnQ6ICd3ZWIg
cGxhdGZvcm0gdGVzdCcsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQv
bWV0aG9kRGV0YWlscy1hdHRyaWJ1dGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRNZXRob2RDaGFu
Z2VFdmVudC9tZXRob2REZXRhaWxzLWF0dHJpYnV0ZS5odHRwcy5odG1sCmluZGV4IGVjMGFhOTZk
ZGRiNDZiMjY2MTcwNjRhYjU0ZTlkMDJlMmE1ODhjYmIuLmZlYWFlZjY2YWRmOGE0MzM4NjhkMzNi
Y2Y3MjI1MjVhZjZjMGQyYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRNZXRob2RDaGFuZ2VFdmVu
dC9tZXRob2REZXRhaWxzLWF0dHJpYnV0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRNZXRo
b2RDaGFuZ2VFdmVudC9tZXRob2REZXRhaWxzLWF0dHJpYnV0ZS5odHRwcy5odG1sCkBAIC0xNyw3
ICsxNyw2IEBAIHRlc3QoKCkgPT4gewogICBhc3NlcnRfaWRsX2F0dHJpYnV0ZShldmVudCwgIm1l
dGhvZERldGFpbHMiKTsKICAgY29uc3QgeyB0ZXN0IH0gPSBldmVudC5tZXRob2REZXRhaWxzOwog
ICBhc3NlcnRfZXF1YWxzKHRlc3QsICJwYXNzIik7Ci0gIGFzc2VydF9lcXVhbHMoZXZlbnQubWV0
aG9kRGV0YWlscywgbWV0aG9kRGV0YWlscyk7CiB9LCAiTXVzdCBoYXZlIGEgbWV0aG9kRGV0YWls
cyBJREwgYXR0cmlidXRlLCB3aGljaCBpcyBpbml0aWFsaXplZCB3aXRoIHRvIHRoZSBtZXRob2RO
YW1lIGRpY3Rpb25hcnkgdmFsdWUiKTsKIAogdGVzdCgoKSA9PiB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9Q
YXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXlt
ZW50UmVxdWVzdFVwZGF0ZUV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwKaW5kZXggZmQ2NjQ5
M2JmNGYyYWEwMDZlOTkxOTgwOTRkMWI3YWZkMzRmNDU0My4uZThkZjdiMzVhOTQyODBhNmM3MWQ3
ZDhhYzZmMTQ1MjkwNDUzNWRmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVF
dmVudC9jb25zdHJ1Y3Rvci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRl
RXZlbnQvY29uc3RydWN0b3IuaHR0cHMuaHRtbApAQCAtNiw4ICs2LDE4IEBACiA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgorY29uc3Qg
YXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8v
YXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1l
cmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29k
ZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAg
IHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCBiYXNpY0NhcmQg
PSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0pOwotY29u
c3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmRdKTsKK2NvbnN0IGRl
ZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkLCBhcHBsZVBheV0pOwogY29u
c3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKICAgdG90YWw6IHsKICAgICBsYWJl
bDogIlRvdGFsIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBk
YXRlV2l0aC1jYWxsLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1jYWxsLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRt
bAppbmRleCBjZDkyOGQ0YmUxZDg2MDlhMzRkMDZlMGE5NjAzMDZmYzk1Yjg0ZTMyLi4xMzY1ZWNl
ZmViZWIyNzlkYjJlZGU5ZGU5OWQyZjBjOTg0NzA4YzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50
UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtY2FsbC1pbW1lZGlhdGUtbWFudWFsLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWNhbGwt
aW1tZWRpYXRlLW1hbnVhbC5odHRwcy5odG1sCkBAIC05LDggKzksMTggQEAKIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBz
ZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7Citj
b25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0
cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisg
ICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50
cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0s
CisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IHZhbGlk
TWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9
KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citj
b25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXld
KTsKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7IGN1cnJlbmN5OiAiVVNEIiwg
dmFsdWU6ICI1LjAwIiB9KTsKIGNvbnN0IHZhbGlkVG90YWwgPSBPYmplY3QuZnJlZXplKHsKICAg
bGFiZWw6ICJsYWJlbCIsCkBAIC00NSwyNiArNTUsMjkgQEAgZnVuY3Rpb24gdGVzdEltbWVkaWF0
ZVVwZGF0ZSh7IHRleHRDb250ZW50OiB0ZXN0TmFtZSB9KSB7CiAgICAgY29uc3QgZXZlbnRQcm9t
aXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgcmVxdWVzdC5h
ZGRFdmVudExpc3RlbmVyKAogICAgICAgICAic2hpcHBpbmdhZGRyZXNzY2hhbmdlIiwKLSAgICAg
ICAgYXN5bmMgZXYgPT4gewotICAgICAgICAgIC8vIHNwaW4gdGhlIGV2ZW50IGxvb3AsIHNldHMg
W1t3YWl0Rm9yVXBkYXRlXV0gdG8gdHJ1ZS4KLSAgICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29s
dmUoKTsKLSAgICAgICAgICB0cnkgewotICAgICAgICAgICAgZXYudXBkYXRlV2l0aCh2YWxpZERl
dGFpbHMpOwotICAgICAgICAgICAgcmVzb2x2ZSgpOyAvLyBUaGlzIGlzIGJhZC4KLSAgICAgICAg
ICB9IGNhdGNoIChlcnIpIHsKLSAgICAgICAgICAgIHJlamVjdChlcnIpOyAvLyB0aGlzIGlzIGdv
b2QuCi0gICAgICAgICAgfQorICAgICAgICBldiA9PiB7CisgICAgICAgICAgLy8gRm9yY2VzIHVw
ZGF0ZVdpdGgoKSB0byBiZSBydW4gaW4gdGhlIG5leHQgZXZlbnQgbG9vcCB0aWNrIHNvIHRoYXQK
KyAgICAgICAgICAvLyBbW3dhaXRGb3JVcGRhdGVdXSBpcyBhbHJlYWR5IHRydWUgd2hlbiBpdCBy
dW5zLgorICAgICAgICAgIHQuc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgIHRyeSB7
CisgICAgICAgICAgICAgIGV2LnVwZGF0ZVdpdGgodmFsaWREZXRhaWxzKTsKKyAgICAgICAgICAg
ICAgcmVzb2x2ZSgpOyAvLyBUaGlzIGlzIGJhZC4KKyAgICAgICAgICAgIH0gY2F0Y2ggKGVycikg
eworICAgICAgICAgICAgICByZWplY3QoZXJyKTsgLy8gdGhpcyBpcyBnb29kLgorICAgICAgICAg
ICAgfQorICAgICAgICAgIH0pOwogICAgICAgICB9LAogICAgICAgICB7IG9uY2U6IHRydWUgfQog
ICAgICAgKTsKICAgICB9KTsKLSAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3Quc2hv
dygpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBjb25zdCBhY2NlcHRQcm9taXNl
ID0gcmVxdWVzdC5zaG93KCk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAg
IHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgZXZlbnRQcm9taXNlLAogICAg
ICAgIlRoZSBldmVudCBsb29wIGFscmVhZHkgc3B1biwgc28gW1t3YWl0Rm9yVXBkYXRlXV0gaXMg
bm93IHRydWUiCiAgICAgKTsKKyAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFjY2VwdFByb21p
c2U7CiAgICAgYXdhaXQgcmVzcG9uc2UuY29tcGxldGUoKTsKICAgfSwgdGVzdE5hbWUudHJpbSgp
KTsKIH0KQEAgLTkwLDcgKzEwMyw3IEBAIGZ1bmN0aW9uIHRlc3RTdWJzZXF1ZW50VXBkYXRlV2l0
aENhbGxzKHsgdGV4dENvbnRlbnQ6IHRlc3ROYW1lIH0pIHsKICAgICAgIH0pOwogICAgIH0pOwog
ICAgIGNvbnN0IHJlc3BvbnNlUHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOwotICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgdCwK
ICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICBldmVudFByb21pc2UsCkBAIC0xMzUs
NyArMTQ4LDcgQEAgZnVuY3Rpb24gdGVzdFJlY3ljbGVFdmVudHMoeyB0ZXh0Q29udGVudDogdGVz
dE5hbWUgfSkgewogCiAgICAgLy8gSGVyZSwgd2UgdHJ5IHRvIGJlIHNuZWFreSwgYW5kIHJldXNl
IHRoZSBhZGRyZXNzQ2hhbmdlRXZlbnQgdG8gcGVyZm9ybSB0aGUgdXBkYXRlLgogICAgIC8vIEhv
d2V2ZXIsIGFkZHJlc3NDaGFuZ2VFdmVudCBbW3dhaXRpbmdGb3JVcGRhdGVdXSBpcyB0cnVlLCBz
byBpdCB0aHJvd3MuCi0gICAgYXNzZXJ0X3Rocm93cygKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgK
ICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICAoKSA9PiB7CiAgICAgICAgIGFkZHJl
c3NDaGFuZ2VFdmVudC51cGRhdGVXaXRoKHZhbGlkRGV0YWlscyk7CkBAIC0xNDYsNyArMTU5LDcg
QEAgZnVuY3Rpb24gdGVzdFJlY3ljbGVFdmVudHMoeyB0ZXh0Q29udGVudDogdGVzdE5hbWUgfSkg
ewogICAgIC8vIEJ1dCBvcHRpb25DaGFuZ2VFdmVudCBpcyBzdGlsbCB1c2FibGUgdGhvLCBzby4u
LgogICAgIG9wdGlvbkNoYW5nZUV2ZW50LnVwZGF0ZVdpdGgodmFsaWREZXRhaWxzKTsKIAotICAg
IGFzc2VydF90aHJvd3MoCisgICAgYXNzZXJ0X3Rocm93c19kb20oCiAgICAgICAiSW52YWxpZFN0
YXRlRXJyb3IiLAogICAgICAgKCkgPT4gewogICAgICAgICBvcHRpb25DaGFuZ2VFdmVudC51cGRh
dGVXaXRoKHZhbGlkRGV0YWlscyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0
ZUV2ZW50L3VwZGF0ZVdpdGgtZHVwbGljYXRlLXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtZHVwbGljYXRl
LXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggNDBiYTMwNTdlMGNiMTA0
MTJkZjc1OTUxNmVlMTkzOTJhZTcwZjFjMy4uYTRhN2FmZDdmNjMzN2MzMTM0ZDI1NGYxMjU3NDYz
ZDY5ZWZkMzBmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRh
dGVXaXRoLWR1cGxpY2F0ZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1kdXBsaWNhdGUtc2hpcHBp
bmctb3B0aW9ucy1tYW51YWwuaHR0cHMuaHRtbApAQCAtOCw5ICs4LDE4IEBACiA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgog
c2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlLCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOwot
Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAi
aHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMs
CisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNv
dW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RT
Il0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IHZh
bGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJk
IiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IFt2YWxpZE1ldGhvZF07Citjb25zdCB2YWxpZE1l
dGhvZHMgPSBbdmFsaWRNZXRob2QsIGFwcGxlUGF5XTsKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2Jq
ZWN0LmZyZWV6ZSh7CiAgIGN1cnJlbmN5OiAiVVNEIiwKICAgdmFsdWU6ICI1LjAwIiwKQEAgLTY0
LDkgKzczLDkgQEAgZnVuY3Rpb24gdGVzdEZpcmVFdmVudHMoYnV0dG9uKSB7CiAgICAgICBldmVu
dC51cGRhdGVXaXRoKG5ld0RldGFpbHMpOwogICAgIH0pOwogICAgIGNvbnN0IGFjY2VwdFByb21p
c2UgPSByZXF1ZXN0LnNob3coKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzX2pzKAogICAgICAgdCwKLSAgICAgIG5ldyBUeXBlRXJyb3IoKSwK
KyAgICAgIFR5cGVFcnJvciwKICAgICAgIGFjY2VwdFByb21pc2UsCiAgICAgICAiRHVwbGljYXRl
IHNoaXBwaW5nT3B0aW9uIGlkcyBtdXN0IGFib3J0IHdpdGggVHlwZUVycm9yIgogICAgICk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtaW5jcmVt
ZW50YWwtdXBkYXRlLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVF
dmVudC91cGRhdGVXaXRoLWluY3JlbWVudGFsLXVwZGF0ZS1tYW51YWwuaHR0cHMuaHRtbAppbmRl
eCAzZDFiZmI0MWI4NGQ2YjBlY2MyZDRiZGUyNWVhYjJkZWFkNDY1ZTM0Li5jMWVkMWI1ZjY4NTBj
N2YyNjU2NmZmYjZlOThiMDZlYTUxNzM5ZTE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVz
dFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtaW5jcmVtZW50YWwtdXBkYXRlLW1hbnVhbC5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1pbmNyZW1l
bnRhbC11cGRhdGUtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTE0LDYgKzE0LDE1IEBAIHNldHVwKHsK
IAogY29uc3QgbWV0aG9kcyA9IFt7CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiwK
K30sIHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIs
CisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1l
cmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFu
dENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBb
InZpc2EiXSwKKyAgfQogfV07CiAKIGNvbnN0IG9wdGlvbnMgPSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9Q
YXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtbWV0aG9kLWFib3J0LXVwZGF0ZS1t
YW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0
aC1tZXRob2QtYWJvcnQtdXBkYXRlLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDBmZjdmMjNiNjQ3
OTY5NTkwN2FlZTNlNDc5NDM2YjVmZjEzZTE2NWEuLmUyNDQ1MmMyYTk5ZDMwMWI4ZWFjMDMzMDgz
ZTM3OTVlNTRiYmUxNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQv
dXBkYXRlV2l0aC1tZXRob2QtYWJvcnQtdXBkYXRlLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1tZXRob2QtYWJvcnQtdXBkYXRl
LW1hbnVhbC5odHRwcy5odG1sCkBAIC0xOCw4ICsxOCwxOSBAQCBjb25zdCB2YWxpZE1ldGhvZEJh
c2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2Fy
ZCIsCiB9KTsKIAorY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2
ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxl
IiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJz
dXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7
CisKIC8vIE1ldGhvZHMKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlk
TWV0aG9kQmFzaWNDYXJkLCB2YWxpZE1ldGhvZF0pOworY29uc3QgdmFsaWRNZXRob2RzID0gT2Jq
ZWN0LmZyZWV6ZShbdmFsaWRNZXRob2RCYXNpY0NhcmQsIHZhbGlkTWV0aG9kLCBhcHBsZVBheV0p
OwogCiAvLyBBbW91bnRzCiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoewpAQCAt
MTMwLDcgKzE0MSw3IEBAIHJlY3Vyc2l2ZURhdGEuZm9vID0gcmVjdXJzaXZlRGF0YTsKIE9iamVj
dC5mcmVlemUocmVjdXJzaXZlRGF0YSk7CiAKIGNvbnN0IG1vZGlmaWVyV2l0aFJlY3Vyc2l2ZURh
dGEgPSBPYmplY3QuZnJlZXplKHsKLSAgc3VwcG9ydGVkTWV0aG9kczogdmFsaWRNZXRob2RCYXNp
Y0NhcmQsCisgIHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiwKICAgdG90YWw6IHZhbGlk
VG90YWwsCiAgIGRhdGE6IHJlY3Vyc2l2ZURhdGEsCiB9KTsKQEAgLTE0OCwxNCArMTU5LDIwIEBA
IGZ1bmN0aW9uIHRlc3RCYWRVcGRhdGUoYnV0dG9uLCBiYWREZXRhaWxzLCBleHBlY3RlZEVycm9y
LCBlcnJvckNvZGUpIHsKICAgICB9OwogICAgIC8vIEZpcnN0IHdlIGNoZWNrIHRoZSBiYWQgdXBk
YXRlLgogICAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKLSAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHMoCisgICAgbGV0IHRlc3RfZnVuYzsKKyAgICBpZiAodHlwZW9mIGV4
cGVjdGVkRXJyb3IgPT0gImZ1bmN0aW9uIikgeworICAgICAgdGVzdF9mdW5jID0gcHJvbWlzZV9y
ZWplY3RzX2pzOworICAgIH0gZWxzZSB7CisgICAgICB0ZXN0X2Z1bmMgPSBwcm9taXNlX3JlamVj
dHNfZG9tOworICAgIH0KKyAgICBhd2FpdCB0ZXN0X2Z1bmMoCiAgICAgICB0LAogICAgICAgZXhw
ZWN0ZWRFcnJvciwKICAgICAgIGFjY2VwdFByb21pc2UsCiAgICAgICAiYmFkRGV0YWlscyBtdXN0
IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciIKICAgICAp
OwogICAgIC8vIFRoZSByZXF1ZXN0IFtbc3RhdGVdXSBpcyBub3cgImNsb3NlZCIsIHNvIGxldCdz
IGNoZWNrIGZvciBJbnZhbGlkU3RhdGVFcnJvcgotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygK
KyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgdCwKICAgICAgICJJbnZhbGlk
U3RhdGVFcnJvciIsCiAgICAgICByZXF1ZXN0LnNob3coKSwKQEAgLTE3NSw3ICsxOTIsNyBAQCBm
dW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFkRGV0YWlscywgZXhwZWN0ZWRFcnJvciwg
ZXJyb3JDb2RlKSB7CiA8b2w+CiAgIDxsaT4KICAgICA8YnV0dG9uIG9uY2xpY2s9IgotICAgICAg
Y29uc3QgcmVqZWN0ZWRQcm9taXNlID0gUHJvbWlzZS5yZWplY3QobmV3IFN5bnRheEVycm9yKCd0
ZXN0JykpLmNhdGNoKGVyciA9PiBlcnIpOworICAgICAgY29uc3QgcmVqZWN0ZWRQcm9taXNlID0g
UHJvbWlzZS5yZWplY3QobmV3IFN5bnRheEVycm9yKCd0ZXN0JykpOwogICAgICAgdGVzdEJhZFVw
ZGF0ZSh0aGlzLCByZWplY3RlZFByb21pc2UsICdBYm9ydEVycm9yJyk7CiAgICAgIj4KICAgICAg
IFJlamVjdGlvbiBvZiBkZXRhaWxzUHJvbWlzZSBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBh
biAiQWJvcnRFcnJvciIgRE9NRXhjZXB0aW9uLgpAQCAtMTg0LDcgKzIwMSw3IEBAIGZ1bmN0aW9u
IHRlc3RCYWRVcGRhdGUoYnV0dG9uLCBiYWREZXRhaWxzLCBleHBlY3RlZEVycm9yLCBlcnJvckNv
ZGUpIHsKICAgPGxpPgogICAgIDxidXR0b24gb25jbGljaz0iCiAgICAgICBjb25zdCBpbnZhbGlk
RGV0YWlscyA9IHsgdG90YWw6IGB0aGlzIHdpbGwgY2F1c2UgYSBUeXBlRXJyb3IhYCB9OwotICAg
ICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBpbnZhbGlkRGV0YWlscywgbmV3IFR5cGVFcnJvcigpKTsK
KyAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgaW52YWxpZERldGFpbHMsIFR5cGVFcnJvcik7CiAg
ICAgIj4KICAgICAgIFRvdGFsIGluIHRoZSB1cGRhdGUgaXMgYSBzdHJpbmcsIHNvIGNvbnZlcnRp
bmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9yLgogICAgIDwv
YnV0dG9uPgpAQCAtMTkyLDE0ICsyMDksMTQgQEAgZnVuY3Rpb24gdGVzdEJhZFVwZGF0ZShidXR0
b24sIGJhZERldGFpbHMsIGV4cGVjdGVkRXJyb3IsIGVycm9yQ29kZSkgewogICA8bGk+CiAgICAg
PGJ1dHRvbiBvbmNsaWNrPSIKICAgICAgIGNvbnN0IGludmFsaWREZXRhaWxzID0geyB0b3RhbDog
cmVjdXJzaXZlRGF0YSB9OwotICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBpbnZhbGlkRGV0YWls
cywgbmV3IFR5cGVFcnJvcigpKTsKKyAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgaW52YWxpZERl
dGFpbHMsIFR5cGVFcnJvcik7CiAgICAgIj4KICAgICAgIFRvdGFsIGlzIHJlY3Vyc2l2ZSwgc28g
Y29udmVydGluZyB0byBJREwgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYSBUeXBlRXJyb3Iu
CiAgICAgPC9idXR0b24+CiAgIDwvbGk+CiAgIDxsaT4KICAgICA8YnV0dG9uIG9uY2xpY2s9Igot
ICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBpbnZhbGlkRGV0YWlsc05lZ2F0aXZlVG90YWwsIG5l
dyBUeXBlRXJyb3IoKSk7CisgICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGludmFsaWREZXRhaWxz
TmVnYXRpdmVUb3RhbCwgVHlwZUVycm9yKTsKICAgICAiPgogICAgICAgVXBkYXRpbmcgd2l0aCBh
IG5lZ2F0aXZlIHRvdGFsIHJlc3VsdHMgaW4gYSBUeXBlRXJyb3IuCiAgICAgPC9idXR0b24+CkBA
IC0yMDcsMTYgKzIyNCwxNiBAQCBmdW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFkRGV0
YWlscywgZXhwZWN0ZWRFcnJvciwgZXJyb3JDb2RlKSB7CiAgIDxsaT4KICAgICA8YnV0dG9uIG9u
Y2xpY2s9IgogICAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIHZhbGlk
RGV0YWlscywgeyBkaXNwbGF5SXRlbXM6IGludmFsaWRQYXltZW50SXRlbXMgfSk7Ci0gICAgICB0
ZXN0QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIG5ldyBSYW5nZUVycm9yKCkpOworICAgICAg
dGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgICAiPgotICAg
ICAgVXBkYXRpbmcgd2l0aCBhIGRpc3BsYXlJdGVtIHdpdGggYW4gaW52YWxpZCBjdXJyZW5jeSBy
ZXN1bHRzIGluIFR5cGVFcnJvci4KKyAgICAgIFVwZGF0aW5nIHdpdGggYSBkaXNwbGF5SXRlbSB3
aXRoIGFuIGludmFsaWQgY3VycmVuY3kgcmVzdWx0cyBpbiBSYW5nZUVycm9yLgogICAgIDwvYnV0
dG9uPgogICA8L2xpPgogICA8bGk+CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSIKICAgICAgIGNvbnN0
IGR1cGxpY2F0ZVNoaXBwaW5nT3B0aW9ucyA9IFt2YWxpZFNoaXBwaW5nT3B0aW9uLCB2YWxpZFNo
aXBwaW5nT3B0aW9uXTsKICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9
LCB2YWxpZERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zOiBkdXBsaWNhdGVTaGlwcGluZ09wdGlv
bnMgfSk7Ci0gICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIG5ldyBUeXBlRXJy
b3IoKSk7CisgICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIFR5cGVFcnJvcik7
CiAgICAgIj4KICAgICAgIFVwZGF0aW5nIHdpdGggZHVwbGljYXRlIHNoaXBwaW5nT3B0aW9ucyAo
c2FtZSBJRHMpIHJlc3VsdHMgaW4gYSBUeXBlRXJyb3IuCiAgICAgPC9idXR0b24+CkBAIC0yMjQs
NyArMjQxLDcgQEAgZnVuY3Rpb24gdGVzdEJhZFVwZGF0ZShidXR0b24sIGJhZERldGFpbHMsIGV4
cGVjdGVkRXJyb3IsIGVycm9yQ29kZSkgewogICA8bGk+CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSIK
ICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMs
IHsgc2hpcHBpbmdPcHRpb25zOiBpbnZhbGlkU2hpcHBpbmdPcHRpb25zIH0pOwotICAgICAgdGVz
dEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBuZXcgUmFuZ2VFcnJvcigpKTsKKyAgICAgIHRl
c3RCYWRVcGRhdGUodGhpcywgYmFkRGV0YWlscywgUmFuZ2VFcnJvcik7CiAgICAgIj4KICAgICAg
IFVwZGF0aW5nIHdpdGggYSBzaGlwcGluZ09wdGlvbiB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kg
dmFsdWUgcmVzdWx0cyBpbiBhIFJhbmdFcnJvci4KICAgICA8L2J1dHRvbj4KQEAgLTIzNCw3ICsy
NTEsNyBAQCBmdW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFkRGV0YWlscywgZXhwZWN0
ZWRFcnJvciwgZXJyb3JDb2RlKSB7CiAgICAgICAvLyB2YWxpZE1vZGlmaWVyIGlzIHRoZXJlIGFz
IHRvIGF2b2lkIGZhbHNlIHBvc2l0aXZlcyAtIGl0IHNob3VsZCBqdXN0IGdldCBpZ25vcmVkCiAg
ICAgICBjb25zdCBiYWRNb2RpZmllcnMgPSB7IG1vZGlmaWVyczogWyBtb2RpZmllcldpdGhJbnZh
bGlkVG90YWwsIHZhbGlkTW9kaWZpZXIgXSB9OwogICAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9i
amVjdC5hc3NpZ24oe30sIHZhbGlkRGV0YWlscywgYmFkTW9kaWZpZXJzKTsKLSAgICAgIHRlc3RC
YWRVcGRhdGUodGhpcywgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgICB0ZXN0
QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIFJhbmdlRXJyb3IpOwogICAgICI+CiAgICAgICBN
dXN0IHRocm93IGEgUmFuZ2VFcnJvciB3aGVuIGEgbW9kaWZpZXIncyB0b3RhbCBpdGVtIGhhcyBh
biBpbnZhbGlkIGN1cnJlbmN5LgogICAgIDwvYnV0dG9uPgpAQCAtMjQ0LDcgKzI2MSw3IEBAIGZ1
bmN0aW9uIHRlc3RCYWRVcGRhdGUoYnV0dG9uLCBiYWREZXRhaWxzLCBleHBlY3RlZEVycm9yLCBl
cnJvckNvZGUpIHsKICAgICAgIC8vIHZhbGlkTW9kaWZpZXIgaXMgdGhlcmUgYXMgdG8gYXZvaWQg
ZmFsc2UgcG9zaXRpdmVzIC0gaXQgc2hvdWxkIGp1c3QgZ2V0IGlnbm9yZWQKICAgICAgIGNvbnN0
IGJhZE1vZGlmaWVycyA9IHsgbW9kaWZpZXJzOiBbIG1vZGlmaWVyV2l0aEludmFsaWREaXNwbGF5
SXRlbXMsIHZhbGlkTW9kaWZpZXIgXSB9OwogICAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9iamVj
dC5hc3NpZ24oe30sIHZhbGlkRGV0YWlscywgYmFkTW9kaWZpZXJzKTsKLSAgICAgIHRlc3RCYWRV
cGRhdGUodGhpcywgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgICB0ZXN0QmFk
VXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIFJhbmdlRXJyb3IpOwogICAgICI+CiAgICAgICBNdXN0
IHRocm93IGEgUmFuZ2VFcnJvciB3aGVuIGEgbW9kaWZpZXIgZGlzcGxheSBpdGVtIGhhcyBhbiBp
bnZhbGlkIGN1cnJlbmN5LgogICAgPC9idXR0b24+CkBAIC0yNTQsNyArMjcxLDcgQEAgZnVuY3Rp
b24gdGVzdEJhZFVwZGF0ZShidXR0b24sIGJhZERldGFpbHMsIGV4cGVjdGVkRXJyb3IsIGVycm9y
Q29kZSkgewogICAgICAgLy8gdmFsaWRNb2RpZmllciBpcyB0aGVyZSBhcyB0byBhdm9pZCBmYWxz
ZSBwb3NpdGl2ZXMgLSBpdCBzaG91bGQganVzdCBnZXQgaWdub3JlZAogICAgICAgY29uc3QgYmFk
TW9kaWZpZXJzID0geyBtb2RpZmllcnM6IFsgbW9kaWZpZXJXaXRoUmVjdXJzaXZlRGF0YSwgdmFs
aWRNb2RpZmllciBdIH07CiAgICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7
fSwgdmFsaWREZXRhaWxzLCBiYWRNb2RpZmllcnMpOwotICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlz
LCBiYWREZXRhaWxzLCBuZXcgVHlwZUVycm9yKCkpOworICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlz
LCBiYWREZXRhaWxzLCBUeXBlRXJyb3IpOwogICAgICI+CiAgICAgICBNdXN0IHRocm93IGFzIE1v
ZGlmaWVyIGhhcyBhIHJlY3Vyc2l2ZSBkaWN0aW9uYXJ5LgogICAgIDwvYnV0dG9uPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLXN0YXRlLWNoZWNr
cy1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRl
V2l0aC1zdGF0ZS1jaGVja3MtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggNGQ0ZWY3Mzk0OWRkMWRk
MjcxNTIxYzUwMDVjYTRlOTMxMDhhYjg0NC4uZmIxNmRlNTY5OWFhNzRlOWZiNzE3ODhlMjM3OGRm
NmUyMTg0N2YxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRh
dGVXaXRoLXN0YXRlLWNoZWNrcy1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVx
dWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtc3RhdGUtY2hlY2tzLW1hbnVhbC5odHRwcy5odG1s
CkBAIC02LDggKzYsMTggQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUs
IGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVl
emUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwK
KyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVy
Y2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50
Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsi
dmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7IHN1
cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9i
amVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3Qu
ZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXldKTsKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2Jq
ZWN0LmZyZWV6ZSh7IGN1cnJlbmN5OiAiVVNEIiwgdmFsdWU6ICI1LjAwIiB9KTsKIGNvbnN0IHZh
bGlkVG90YWwgPSBPYmplY3QuZnJlZXplKHsKICAgbGFiZWw6ICJsYWJlbCIsCkBAIC00NSw3ICs1
NSw3IEBAIGZ1bmN0aW9uIHRlc3RSZXF1ZXN0SXNDbG9zZWQoYnV0dG9uKSB7CiAgICAgcmVzcG9u
c2VQcm9taXNlLmNhdGNoKGVyciA9PiBlcnIpOwogICAgIC8vIFNldCByZXF1ZXN0Lltbc3RhdGVd
XSB0byBjbG9zZWQKICAgICBhd2FpdCBldmVudC50YXJnZXQuYWJvcnQoKTsKLSAgICBhc3NlcnRf
dGhyb3dzKAorICAgIGFzc2VydF90aHJvd3NfZG9tKAogICAgICAgIkludmFsaWRTdGF0ZUVycm9y
IiwKICAgICAgICgpID0+IHsKICAgICAgICAgZXZlbnQudXBkYXRlV2l0aCh2YWxpZERldGFpbHMp
OwpAQCAtNzAsNyArODAsNyBAQCBmdW5jdGlvbiB0ZXN0UmVxdWVzdElzVXBkYXRpbmcoYnV0dG9u
KSB7CiAgICAgfSk7CiAgICAgLy8gU2V0IHJlcXVlc3QuW1t1cGRhdGluZ11dIHRvIHRydWUKICAg
ICBldmVudC51cGRhdGVXaXRoKHBlbmRpbmdQcm9taXNlKTsKLSAgICBhc3NlcnRfdGhyb3dzKAor
ICAgIGFzc2VydF90aHJvd3NfZG9tKAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAg
ICgpID0+IHsKICAgICAgICAgZXZlbnQudXBkYXRlV2l0aCh2YWxpZERldGFpbHMpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGV3aXRoLW1ldGhvZC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGV3aXRoLW1ldGhvZC5o
dHRwcy5odG1sCmluZGV4IGFkYWNkZjNmMDZkMWMxYWRiNTBhNjU1ODViNjQ0NDFjNWUwMGRlNjMu
LmFjYzYyZjVlMmNlOTgwZWFkMTVlMjVhNzBiOTBjYTRlNDVkNTZiM2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRld2l0aC1tZXRob2QuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZXdpdGgtbWV0aG9kLmh0dHBz
Lmh0bWwKQEAgLTYsOCArNiwxOCBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6
ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAor
ICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJj
aGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRD
YXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2
aXNhIl0sCisgIH0KK30pOwogY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBv
cnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2Jq
ZWN0LmZyZWV6ZShbYmFzaWNDYXJkXSk7Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5m
cmVlemUoW2Jhc2ljQ2FyZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2Jq
ZWN0LmZyZWV6ZSh7CiAgIHRvdGFsOiB7CiAgICAgbGFiZWw6ICJUb3RhbCIsCkBAIC0zMyw3ICs0
Myw3IEBAIHRlc3QoKCkgPT4gewogICAgIG5ldyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50KCJz
aGlwcGluZ2FkZHJlc3NjaGFuZ2UiKSwKICAgICBuZXcgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVu
dCgic2hpcHBpbmdvcHRpb25jaGFuZ2UiKSwKICAgXS5mb3JFYWNoKGV2ID0+IHsKLSAgICBhc3Nl
cnRfdGhyb3dzKAorICAgIGFzc2VydF90aHJvd3NfZG9tKAogICAgICAgIkludmFsaWRTdGF0ZUVy
cm9yIiwKICAgICAgICgpID0+IHsKICAgICAgICAgZXYudXBkYXRlV2l0aChQcm9taXNlLnJlc29s
dmUoKSk7CkBAIC01Myw3ICs2Myw3IEBAIHRlc3QoKCkgPT4gewogICBdLm1hcChldiA9PiB7CiAg
ICAgcmVxdWVzdC5kaXNwYXRjaEV2ZW50KGV2KTsgLy8gc2V0IC50YXJnZXQgYW5kIGRpc3BhdGNo
IGZsYWcKICAgICAvLyB1bnN0cnVzdGVkIGV2ZW50LgotICAgIGFzc2VydF90aHJvd3MoCisgICAg
YXNzZXJ0X3Rocm93c19kb20oCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgKCkg
PT4gewogICAgICAgICBldi51cGRhdGVXaXRoKFByb21pc2UucmVzb2x2ZSgpKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJvcnMvcmV0cnktc2hvd3MtZXJyb3ItbWVtYmVyLW1h
bnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJvcnMvcmV0cnktc2hvd3Mt
ZXJyb3ItbWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGIzYTUzOWVmOGY0YjhhYTlkZDlh
M2VkMGNiNmI1MjdmMTg0Y2IwNGYuLjkxMzU1MjBjZDc2MmYzZTYyODZiNWYzYmE1NzJmODhjYWU5
MjBmYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dz
LWVycm9yLW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRhdGlv
bkVycm9ycy9yZXRyeS1zaG93cy1lcnJvci1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKQEAgLTQ1
LDYgKzQ1LDYgQEAgZnVuY3Rpb24gcmV0cnlTaG93c0Vycm9yTWVtYmVyKGJ1dHRvbikgewogICA8
L2xpPgogPC9vbD4KIDxzbWFsbD4KLSAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2Ug
PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaXNzdWVz
Ij5maWxlIGEgYnVnPC9hPgotICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1
ZXN0L09XTkVSUyI+b3duZXJzPC9hPi4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVh
c2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1y
ZXF1ZXN0L01FVEEueW1sIj5vd25lcnM8L2E+LgogPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1Bh
eW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dzLXBheWVyLW1lbWJlci1tYW51YWwuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dzLXBheWVyLW1l
bWJlci1tYW51YWwuaHR0cHMuaHRtbAppbmRleCA4ZGJjNzYwZmQwN2ZlOTkwYjhiYmRlZDU2ZmZj
YTU5MDkxNDkyZmQ4Li5mODExNWU2OWVjNWQ3YzMxNzJhNmU0MmQ0ZTQ0Njg5OGQwNGY5YThiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93cy1wYXllci1t
ZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJvcnMv
cmV0cnktc2hvd3MtcGF5ZXItbWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCkBAIC02MCw2ICs2MCw2
IEBAIGZ1bmN0aW9uIHJldHJ5U2hvd3NQYXllck1lbWJlcihidXR0b24sIGVycm9yKSB7CiAgIDwv
bGk+CiA8L29sPgogPHNtYWxsPgotICBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSA8
YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pc3N1ZXMi
PmZpbGUgYSBidWc8L2E+Ci0gIGFuZCB0YWcgb25lIG9mIHRoZSA8YSBocmVmPSJodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVl
c3QvT1dORVJTIj5vd25lcnM8L2E+LgorICBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFz
ZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1
ZXMiPmZpbGUgYSBidWc8L2E+CisgIGFuZCB0YWcgb25lIG9mIHRoZSA8YSBocmVmPSJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJl
cXVlc3QvTUVUQS55bWwiPm93bmVyczwvYT4uCiA8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5
bWVudFZhbGlkYXRpb25FcnJvcnMvcmV0cnktc2hvd3Mtc2hpcHBpbmdBZGRyZXNzLW1lbWJlci1t
YW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dz
LXNoaXBwaW5nQWRkcmVzcy1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggMzU2ZjMwZGE2
YjU0YmVmNDEzNmEyYjNhODA2MzEzYmY0YmIxZjc2Ni4uOTRlNmZhNTEwNWIyMGE3MTI3MjkyZGU1
N2FkY2ZiMjBmM2I4MDZlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJvcnMv
cmV0cnktc2hvd3Mtc2hpcHBpbmdBZGRyZXNzLW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9QYXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93cy1zaGlwcGluZ0FkZHJlc3Mt
bWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCkBAIC05OCw2ICs5OCw2IEBAIGZ1bmN0aW9uIHJldHJ5
U2hvd3NTaGlwcGluZ0FkZHJlc3NNZW1iZXIoYnV0dG9uLCBlcnJvcikgewogICA8L2xpPgogPC9v
bD4KIDxzbWFsbD4KLSAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0i
aHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaXNzdWVzIj5maWxlIGEg
YnVnPC9hPgotICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L09XTkVS
UyI+b3duZXJzPC9hPi4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJl
Zj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxl
IGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01F
VEEueW1sIj5vd25lcnM8L2E+LgogPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsZ29yaXRobXMt
bWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1zLW1hbnVhbC5odHRwcy5odG1sCmluZGV4
IDU0OTQzNTNjNmJjZWI0ZWQwZDM4ODg1MmJkN2Y0MjZlNTcxNTE4NmQuLmI5MGMzMTJhYmEzYmY0
OTc4OTg2ZGVmZTAwZjUxOTVjNzRiODhiNjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsZ29yaXRobXMtbWFu
dWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxnb3JpdGhtcy1tYW51YWwuaHR0cHMuaHRtbApAQCAt
MTUsNiArMTUsMTYgQEAgY29uc3QgbWV0aG9kcyA9IFsKICAgewogICAgIHN1cHBvcnRlZE1ldGhv
ZHM6ICJiYXNpYy1jYXJkIiwKICAgfSwKKyAgeworICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRw
czovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICAgIGRhdGE6IHsKKyAgICAgIHZlcnNpb246IDMs
CisgICAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAg
ICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBv
cnRzM0RTIl0sCisgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAgfSwKKyAg
fQogXTsKIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IHsKICAgc2hpcHBpbmdPcHRpb25zOiBbCkBA
IC0xMDAsOSArMTEwLDkgQEAgYXN5bmMgZnVuY3Rpb24gcnVuQWJvcnRUZXN0KGJ1dHRvbikgewog
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXlt
ZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzTm9TaGlwcGluZ09wdGlvbnMpOwogICAgIC8vIEF3
YWl0IHRoZSB1c2VyIHRvIGFib3J0Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJBYm9y
dEVycm9yIiwgcmVxdWVzdC5zaG93KCkpOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20o
dCwgIkFib3J0RXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CiAgICAgLy8gW1tzdGF0ZV1dIGlzIG5v
dyBjbG9zZWQKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkludmFsaWRTdGF0ZUVycm9y
IiwgcmVxdWVzdC5zaG93KCkpOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIklu
dmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwogICB9LCB0ZXN0TmFtZS50cmltKCkp
OwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2
ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93
cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LWNyb3NzLW9yaWdpbi5odHRwcy5zdWItZXhw
ZWN0ZWQudHh0CmluZGV4IDYxNWJlOWIwYjA5YjU2YTFhMTVjNDZlMDExNTk0YTQzNDNhMDRlZGIu
LjdhYWFmMWYxYWE0MDY2MGQ4NDY1MzNjODI1MDExNThjNTMzMTY2OGQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LWNyb3NzLW9yaWdpbi5odHRwcy5z
dWItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3Vt
ZW50LWNyb3NzLW9yaWdpbi5odHRwcy5zdWItZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNyBAQAog
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0
My9jb21tb24vYmxhbmsuaHRtbAogCiAKLVBBU1MgUGF5bWVudFJlcXVlc3QgPGlmcmFtZSBhbGxv
d3BheW1lbnRyZXF1ZXN0PiBpbiBub24tYWN0aXZlIGRvY3VtZW50IChjcm9zcy1vcmlnaW4pIAor
RkFJTCBQYXltZW50UmVxdWVzdCA8aWZyYW1lIGFsbG93cGF5bWVudHJlcXVlc3Q+IGluIG5vbi1h
Y3RpdmUgZG9jdW1lbnQgKGNyb3NzLW9yaWdpbikgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9u
ICIoKSA9PiB7CisgICAgICAgIG5ldyBncmFiYmVkUGF5bWVudFJlcXVlc3QoLi4ucGF5bWVudEFy
Z3MpOworICAgICAgfSIgdGhyZXcgYW4gZXhjZXB0aW9uIGZyb20gdGhlIHdyb25nIGdsb2JhbAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9z
cy1vcmlnaW4uaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1k
b2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLmh0bWwKaW5kZXggNDhmNmQ5MDY2MzI4ZDZk
ZTRhMjZhYjQyYzY5YTM0ZDgyMmVjZTJlOC4uMjlkN2M2MDEwZWNlYjgzNjEyMTNmNjJhYmM1ZmJl
MGUxMDJkMzJhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9j
dW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJl
cXVlc3QvYWN0aXZlLWRvY3VtZW50LWNyb3NzLW9yaWdpbi5odHRwcy5zdWIuaHRtbApAQCAtMTcs
NyArMTcsNyBAQCBhc3luY190ZXN0KCh0KSA9PiB7CiAgICAgICBwYXRoOiAnL2NvbW1vbi9ibGFu
ay5odG1sJwogICAgIH0pOwogICAgIGlmcmFtZS5vbmxvYWQgPSB0LnN0ZXBfZnVuY19kb25lKCgp
ID0+IHsKLSAgICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdTZWN1cml0eUVycm9yJ30sICgpID0+
IHsKKyAgICAgIGFzc2VydF90aHJvd3NfZG9tKCdTZWN1cml0eUVycm9yJywgKCkgPT4gewogICAg
ICAgICBuZXcgZ3JhYmJlZFBheW1lbnRSZXF1ZXN0KC4uLnBheW1lbnRBcmdzKTsKICAgICAgIH0p
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9j
dW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVx
dWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IDAxZTg3OGVlNTBiOTZkODQ1OGM5NjQ3OGQ1MjliYTRiYWZkYjQwMzcuLjY1ZDdmMWRmZjE0ZGI1
ZjIzYjBjY2FkMmU5MjQ3MWZiM2QwMzQ3MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJl
cXVlc3QvYWN0aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw2IEBACiAKIAotUEFTUyBQYXltZW50UmVxdWVzdCA8
aWZyYW1lIGFsbG93cGF5bWVudHJlcXVlc3Q+IGluIG5vbi1hY3RpdmUgZG9jdW1lbnQgKHNhbWUt
b3JpZ2luKSAKK0ZBSUwgUGF5bWVudFJlcXVlc3QgPGlmcmFtZSBhbGxvd3BheW1lbnRyZXF1ZXN0
PiBpbiBub24tYWN0aXZlIGRvY3VtZW50IChzYW1lLW9yaWdpbikgYXNzZXJ0X3Rocm93c19kb206
IGZ1bmN0aW9uICIoKSA9PiB7CisgICAgICAgIG5ldyBncmFiYmVkUGF5bWVudFJlcXVlc3QoLi4u
cGF5bWVudEFyZ3MpOworICAgICAgfSIgdGhyZXcgYW4gZXhjZXB0aW9uIGZyb20gdGhlIHdyb25n
IGdsb2JhbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1
bWVudC1zYW1lLW9yaWdpbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3Rp
dmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMuaHRtbAppbmRleCBiYmNjMDI2ZDUyNzRhMTM5
ZTZlMWQzMjUzNDMyMjBiNWI3ZTk1OWRmLi45ZDVkMzBjZGNhYjYxZjhkZTNiMzZkNjJiOGFjY2Iw
ZTBmNzNiNDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1
bWVudC1zYW1lLW9yaWdpbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qv
YWN0aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAg
YXN5bmNfdGVzdCgodCkgPT4gewogICAgIGNvbnN0IGdyYWJiZWRQYXltZW50UmVxdWVzdCA9IHdp
bi5QYXltZW50UmVxdWVzdDsKICAgICB3aW4ubG9jYXRpb24uaHJlZiA9ICcvY29tbW9uL2JsYW5r
Lmh0bWwnOwogICAgIGlmcmFtZS5vbmxvYWQgPSB0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKLSAg
ICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdTZWN1cml0eUVycm9yJ30sICgpID0+IHsKKyAgICAg
IGFzc2VydF90aHJvd3NfZG9tKCdTZWN1cml0eUVycm9yJywgKCkgPT4gewogICAgICAgICBuZXcg
Z3JhYmJlZFBheW1lbnRSZXF1ZXN0KC4uLnBheW1lbnRBcmdzKTsKICAgICAgIH0pOwogICAgIH0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9yZW1vdmluZy1hbGxvd3BheW1l
bnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9yZW1vdmlu
Zy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCmluZGV4IDA5MGFmMzllZDc2YmMy
ZWY0NWVjNjA4YzNiYzA1ZjdjNzRhYzBiZDIuLjY0YmFlYmI1MDI0NjUxNGU5ZmQzZGI1OWQzZGFk
YTRhZjk3MjA4MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvcmVtb3Zpbmct
YWxsb3dwYXltZW50cmVxdWVzdC5odHRwcy5zdWIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L3JlbW92aW5nLWFsbG93cGF5bWVudHJlcXVlc3QuaHR0cHMuc3ViLmh0bWwKQEAgLTI3
LDYgKzI3LDkgQEAgYXN5bmNfdGVzdCgodCkgPT4gewogICB9KTsKIAogICB3aW5kb3cub25tZXNz
YWdlID0gdC5zdGVwX2Z1bmMoKGUpID0+IHsKKyAgICAvLyBJZ25vcmUgbWVzc2FnZXMgdGhhdCBh
cmUgbm90IHBhcnQgb2YgdGhlIHRlc3QuCisgICAgaWYgKGUuc291cmNlICE9IGlmcmFtZS5jb250
ZW50V2luZG93KSByZXR1cm47CisKICAgICBpKys7CiAgICAgaWYgKGkgPT09IDEpIHsKICAgICAg
IC8vIDUuIFRoaXMgaXMgdGhlIGZpcnN0IG1lc3NhZ2Ugd2UgcmVjZWl2ZSwgZnJvbSB0aGUgZmly
c3QgbG9hZC4KQEAgLTQ4LDcgKzUxLDkgQEAgYXN5bmNfdGVzdCgodCkgPT4gewogICAgICAgLy8g
OC4gVGhpcyBpcyB0aGUgc2Vjb25kIG1lc3NhZ2Ugd2UgcmVjZWl2ZSwgZnJvbSB0aGUgc2Vjb25k
IGxvYWQuCiAgICAgICAvLyBTaW5jZSB0aGUgYWxsb3dwYXltZW50cmVxdWVzdCBmbGFnIHdhcyBu
b3Qgc2V0LCB3ZSBleHBlY3QgYW4gZXhjZXB0aW9uLgogICAgICAgYXNzZXJ0X2VxdWFscyhlLmRh
dGEubWVzc2FnZSwgJ0V4Y2VwdGlvbicsICdhZnRlciBuYXZpZ2F0aW9uJyk7Ci0gICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGUuZGF0YS5kZXRhaWxzLCBbdHJ1ZSAvKiBleCBpbnN0YW5jZW9mIERP
TUV4Y2VwdGlvbiovLCAxOCAvKiBleC5jb2RlICovLCAnU2VjdXJpdHlFcnJvcicgLyogZXgubmFt
ZSAqL10sICdhZnRlciBuYXZpZ2F0aW9uJyk7CisgICAgICBhc3NlcnRfZXF1YWxzKDQsIGUuZGF0
YS5kZXRhaWxzLmxlbmd0aCk7CisgICAgICAvLyBUaGUgbGFzdCBlbnRyeSBpcyB0aGUgZXJyb3Ig
c3RhY2t0cmFjZS4gSWdub3JlIGl0IGluIGNvbXBhcmlzb24uCisgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGUuZGF0YS5kZXRhaWxzLnNsaWNlKDAsIDMpLCBbdHJ1ZSAvKiBleCBpbnN0YW5jZW9m
IERPTUV4Y2VwdGlvbiovLCAxOCAvKiBleC5jb2RlICovLCAnU2VjdXJpdHlFcnJvcicgLyogZXgu
bmFtZSAqL10sICdhZnRlciBuYXZpZ2F0aW9uJyk7CiAgICAgICB0LmRvbmUoKTsKICAgICB9CiAg
IH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9zZXR0aW5nLWFsbG93cGF5
bWVudHJlcXVlc3QtdGltaW5nLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVz
dC9zZXR0aW5nLWFsbG93cGF5bWVudHJlcXVlc3QtdGltaW5nLmh0dHBzLnN1Yi5odG1sCmluZGV4
IDA3MmI5NGYyODZlZDMzNWYwNjM5ZThmNWNlODljMGFmNTJkMzU5MTcuLmE3NDEyOTZkNWRhNzU0
NjBmM2QyODc3ZjIyOGQ0YzU5ZTEzZDY0M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJl
cXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0LXRpbWluZy5odHRwcy5zdWIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L3NldHRpbmctYWxsb3dwYXltZW50cmVxdWVzdC10
aW1pbmcuaHR0cHMuc3ViLmh0bWwKQEAgLTEsNSArMSw2IEBACiA8IWRvY3R5cGUgaHRtbD4KIDx0
aXRsZT5QYXltZW50UmVxdWVzdCBzZXR0aW5nIGFsbG93cGF5bWVudHJlcXVlc3QgYWZ0ZXIgZG9j
dW1lbnQgY3JlYXRpb24sIGJlZm9yZSByZXNwb25zZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anM+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Pjwvc2NyaXB0PgogPGRpdiBpZD0ibG9nIj48L2Rpdj4KQEAgLTIxLDkgKzIyLDE1IEBAIGFzeW5j
X3Rlc3QoKHQpID0+IHsKICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgnV2hh
dCBpcyB0aGUgcmVzdWx0IG9mIG5ldyBQYXltZW50UmVxdWVzdCguLi4pPycsICcqJyk7CiAgIH0p
OwogCi0gIHdpbmRvdy5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuY19kb25lKChlKSA9PiB7CisgIHdp
bmRvdy5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYygoZSkgPT4geworICAgIC8vIElnbm9yZSBtZXNz
YWdlcyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgdGVzdC4KKyAgICBpZiAoZS5zb3VyY2UgIT0g
aWZyYW1lLmNvbnRlbnRXaW5kb3cpIHJldHVybjsKKwogICAgIGFzc2VydF9lcXVhbHMoZS5kYXRh
Lm1lc3NhZ2UsICdFeGNlcHRpb24nKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0YS5k
ZXRhaWxzLCBbdHJ1ZSAvKiBleCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAqLywgRE9NRXhjZXB0
aW9uLlNFQ1VSSVRZX0VSUiwgJ1NlY3VyaXR5RXJyb3InXSk7CisgICAgYXNzZXJ0X2VxdWFscyg0
LCBlLmRhdGEuZGV0YWlscy5sZW5ndGgpOworICAgIC8vIFRoZSBsYXN0IGVudHJ5IGlzIHRoZSBl
cnJvciBzdGFja3RyYWNlLiBJZ25vcmUgaXQgaW4gY29tcGFyaXNvbi4KKyAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGUuZGF0YS5kZXRhaWxzLnNsaWNlKDAsIDMpLCBbdHJ1ZSAvKiBleCBpbnN0YW5j
ZW9mIERPTUV4Y2VwdGlvbiAqLywgRE9NRXhjZXB0aW9uLlNFQ1VSSVRZX0VSUiwgJ1NlY3VyaXR5
RXJyb3InXSk7CisgICAgdC5kb25lKCk7CiAgIH0pOwogCiAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyYW1lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGlu
Zy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVx
dWVzdC9zZXR0aW5nLWFsbG93cGF5bWVudHJlcXVlc3QuaHR0cHMuc3ViLmh0bWwKaW5kZXggNDU2
NGQyNjRjNGUyYzU0MmIyNTc0MGU5MjcwOWM5ZTdjMGExNGExZC4uYzFkNTNhNGJjMjYxNzU5ZDVl
ZTcyNDNjOTBlNGJlYjdmOGI3ZGU0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVz
dC9zZXR0aW5nLWFsbG93cGF5bWVudHJlcXVlc3QuaHR0cHMuc3ViLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxs
b3dwYXltZW50cmVxdWVzdC9zZXR0aW5nLWFsbG93cGF5bWVudHJlcXVlc3QuaHR0cHMuc3ViLmh0
bWwKQEAgLTIwLDEwICsyMCwxNSBAQCBhc3luY190ZXN0KCh0KSA9PiB7CiAgIH0pOwogCiAgIHdp
bmRvdy5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYygoZSkgPT4geworICAgIC8vIElnbm9yZSBtZXNz
YWdlcyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgdGVzdC4KKyAgICBpZiAoZS5zb3VyY2UgIT0g
aWZyYW1lLmNvbnRlbnRXaW5kb3cpIHJldHVybjsKKwogICAgIGkrKzsKICAgICBpZiAoaSA9PT0g
MSkgewogICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEubWVzc2FnZSwgJ0V4Y2VwdGlvbicsICdi
ZWZvcmUgbmF2aWdhdGlvbicpOwotICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEuZGV0
YWlscywgW3RydWUgLyogZXggaW5zdGFuY2VvZiBET01FeGNlcHRpb24qLywgMTggLyogZXguY29k
ZSAqLywgJ1NlY3VyaXR5RXJyb3InIC8qIGV4Lm5hbWUgKi9dLCAnYmVmb3JlIG5hdmlnYXRpb24n
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoNCwgZS5kYXRhLmRldGFpbHMubGVuZ3RoKTsKKyAgICAg
IC8vIFRoZSBsYXN0IGVudHJ5IGlzIHRoZSBlcnJvciBzdGFja3RyYWNlLiBJZ25vcmUgaXQgaW4g
Y29tcGFyaXNvbi4KKyAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZS5kYXRhLmRldGFpbHMuc2xp
Y2UoMCwgMyksIFt0cnVlIC8qIGV4IGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uKi8sIDE4IC8qIGV4
LmNvZGUgKi8sICdTZWN1cml0eUVycm9yJyAvKiBleC5uYW1lICovXSwgJ2JlZm9yZSBuYXZpZ2F0
aW9uJyk7CiAKICAgICAgIC8vIE5hdmlnYXRlIHRoZSBpZnJhbWUuIFRoaXMgd2lsbCBmaXJlIGEg
c2Vjb25kICdsb2FkJyBldmVudCBvbiB0aGUgaWZyYW1lLgogICAgICAgaWZyYW1lLmNvbnRlbnRX
aW5kb3cubG9jYXRpb24uaHJlZiA9IGlmcmFtZS5zcmMgKyAnPzInOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
YmlsbGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2Jp
bGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjQ4MTU3NzMzMzU3ODU0YTc5NmM5MWEyMjNlZTQzMDFlY2RjMjQ4YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNSBAQAorUmVxdWVzdCBiaWxsaW5nIGFkZHJlc3MKKworQ2xpY2sgb24g
ZWFjaCBidXR0b24gaW4gc2VxdWVuY2UgZnJvbSB0b3AgdG8gYm90dG9tIHdpdGhvdXQgcmVmcmVz
aGluZyB0aGUgcGFnZS4gRWFjaCBidXR0b24gd2lsbCBicmluZyB1cCB0aGUgUGF5bWVudCBSZXF1
ZXN0IFVJIHdpbmRvdy4KKworV2hlbiB0aGUgcGF5bWVudCBzaGVldCBpcyBwcmVzZW50ZWQsIHNl
bGVjdCBhIHBheW1lbnQgbWV0aG9kIChlLmcuLCBhIGNyZWRpdCBjYXJkKS4KKworV2hlbiBubyBi
aWxsaW5nIGFkZHJlc3MgaXMgcmVxdWVzdGVkLCBgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Lm1l
dGhvZERldGFpbHMuYmlsbGluZ0FkZHJlc3NgIGlzIG51bGwuCitXaGVuIGJpbGxpbmcgYWRkcmVz
cyBpcyByZXF1ZXN0ZWQsYFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5tZXRob2REZXRhaWxzLmJp
bGxpbmdBZGRyZXNzYCBpcyBhIGBQYXltZW50QWRkcmVzc2AuCitEb25lIQorSWYgeW91IGZpbmQg
YSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFnIG9uZSBvZiB0aGUgc3VnZ2Vz
dGVkIHJldmlld2Vycy4KKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxs
CisKK1BBU1Mgb25wYXltZW50bWV0aG9kY2hhbmdlIGlzIGluIHByb3RvdHlwZSAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvYmlsbGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9i
aWxsaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmY5
Y2IyODU3ZmY2YTVjNmU1N2IzZmU0M2E3MWUyZmVkNzVhYWJjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvYmlsbGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwx
MTQgQEAKKzwhRE9DVFlQRSBodG1sPiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKzx0aXRsZT5U
ZXN0IGZvciByZXF1ZXN0aW5nIGJpbGxpbmcgYWRkcmVzczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICBzZXR1cCh7
CisgICAgZXhwbGljaXRfZG9uZTogdHJ1ZSwKKyAgICBleHBsaWNpdF90aW1lb3V0OiB0cnVlLAor
ICB9KTsKKworICBjb25zdCBtZXRob2RzID0gWworICAgIHsgc3VwcG9ydGVkTWV0aG9kczogImJh
c2ljLWNhcmQiIH0sCisgICAgeworICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBw
bGUuY29tL2FwcGxlLXBheSIsCisgICAgICBkYXRhOiB7CisgICAgICAgIHZlcnNpb246IDMsCisg
ICAgICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICAg
ICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1
cHBvcnRzM0RTIl0sCisgICAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgICAg
IH0sCisgICAgfSwKKyAgXTsKKworICBjb25zdCBkZXRhaWxzID0geworICAgIHRvdGFsOiB7Cisg
ICAgICBsYWJlbDogImxhYmVsIiwKKyAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogIlVTRCIsIHZh
bHVlOiAiNS4wMCIgfSwKKyAgICB9LAorICB9OworICB0ZXN0KCgpID0+IHsKKyAgICBhc3NlcnRf
dHJ1ZSgKKyAgICAgICJvbnBheW1lbnRtZXRob2RjaGFuZ2UiIGluIFBheW1lbnRSZXF1ZXN0LnBy
b3RvdHlwZSwKKyAgICAgICJUaGUgcGF5bWVudG1ldGhvZGNoYW5nZSBpcyBub3Qgc3VwcG9ydGVk
IgorICAgICk7CisgIH0sICJvbnBheW1lbnRtZXRob2RjaGFuZ2UgaXMgaW4gcHJvdG90eXBlIik7
CisKKyAgZnVuY3Rpb24gZG9udFJlcXVlc3RCaWxsaW5nQWRkcmVzcygpIHsKKyAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1
ZXN0KG1ldGhvZHMsIGRldGFpbHMsIHt9KTsKKyAgICAgIGNvbnN0IHNob3dQcm9taXNlID0gcmVx
dWVzdC5zaG93KCk7CisKKyAgICAgIC8vIExldCdzIGNoZWNrIHRoZSBtZXRob2QgZGF0YSBmcm9t
IGV2ZW50LgorICAgICAgY29uc3QgeyBtZXRob2REZXRhaWxzIH0gPSBhd2FpdCBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+CisgICAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigicGF5bWVudG1l
dGhvZGNoYW5nZSIsIHJlc29sdmUpCisgICAgICApOworCisgICAgICBhc3NlcnRfdHJ1ZSgiYmls
bGluZ0FkZHJlc3MiIGluIG1ldGhvZERldGFpbHMpOworICAgICAgYXNzZXJ0X2VxdWFscygKKyAg
ICAgICAgbWV0aG9kRGV0YWlscy5iaWxsaW5nQWRkcmVzcywKKyAgICAgICAgbnVsbCwKKyAgICAg
ICAgIkV4cGVjdGVkIG1ldGhvZERldGFpbHMuYmlsbGluZ0FkZHJlc3MgdG8gYmUgbnVsbCIKKyAg
ICAgICk7CisgICAgICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CisgICAgfSk7CisgIH0KKworICBm
dW5jdGlvbiByZXF1ZXN0QmlsbGluZ0FkZHJlc3MoKSB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChtZXRob2Rz
LCBkZXRhaWxzLCB7CisgICAgICAgIHJlcXVlc3RCaWxsaW5nQWRkcmVzczogdHJ1ZSwKKyAgICAg
IH0pOworICAgICAgY29uc3Qgc2hvd1Byb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKworICAgICAg
Ly8gTGV0J3MgY2hlY2sgdGhlIG1ldGhvZCBkYXRhIGZyb20gZXZlbnQuCisgICAgICBjb25zdCB7
IG1ldGhvZERldGFpbHMgfSA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4KKyAgICAgICAg
cmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJwYXltZW50bWV0aG9kY2hhbmdlIiwgcmVzb2x2ZSkK
KyAgICAgICk7CisKKyAgICAgIGFzc2VydF90cnVlKCJiaWxsaW5nQWRkcmVzcyIgaW4gbWV0aG9k
RGV0YWlscyk7CisKKyAgICAgIGNvbnN0IHsgYmlsbGluZ0FkZHJlc3MgfSA9IG1ldGhvZERldGFp
bHM7CisgICAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgICAgYmlsbGluZ0FkZHJlc3MgaW5zdGFuY2Vv
ZiBQYXltZW50QWRkcmVzcywKKyAgICAgICAgIkV4cGVjdGVkIGluc3RhbmNlIG9mIFBheW1lbnRB
ZGRyZXNzIgorICAgICAgKTsKKyAgICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKKyAgICB9KTsK
KyAgfQorPC9zY3JpcHQ+CisKKzxoMj5SZXF1ZXN0IGJpbGxpbmcgYWRkcmVzczwvaDI+Cis8cD4K
KyAgQ2xpY2sgb24gZWFjaCBidXR0b24gaW4gc2VxdWVuY2UgZnJvbSB0b3AgdG8gYm90dG9tIHdp
dGhvdXQgcmVmcmVzaGluZyB0aGUKKyAgcGFnZS4gRWFjaCBidXR0b24gd2lsbCBicmluZyB1cCB0
aGUgUGF5bWVudCBSZXF1ZXN0IFVJIHdpbmRvdy4KKzwvcD4KKzxwPgorICBXaGVuIHRoZSBwYXlt
ZW50IHNoZWV0IGlzIHByZXNlbnRlZCwgc2VsZWN0IGEgcGF5bWVudCBtZXRob2QgKGUuZy4sIGEg
Y3JlZGl0CisgIGNhcmQpLgorPC9wPgorPG9sPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNr
PSJkb250UmVxdWVzdEJpbGxpbmdBZGRyZXNzKCkiPgorICAgICAgV2hlbiBubyBiaWxsaW5nIGFk
ZHJlc3MgaXMgcmVxdWVzdGVkLAorICAgICAgYFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5tZXRo
b2REZXRhaWxzLmJpbGxpbmdBZGRyZXNzYCBpcyBudWxsLgorICAgIDwvYnV0dG9uPgorICA8L2xp
PgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJyZXF1ZXN0QmlsbGluZ0FkZHJlc3MoKSI+
CisgICAgICBXaGVuIGJpbGxpbmcgYWRkcmVzcyBpcworICAgICAgcmVxdWVzdGVkLGBQYXltZW50
TWV0aG9kQ2hhbmdlRXZlbnQubWV0aG9kRGV0YWlscy5iaWxsaW5nQWRkcmVzc2AgaXMgYQorICAg
ICAgYFBheW1lbnRBZGRyZXNzYC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPjxidXR0
b24gb25jbGljaz0iZG9uZSgpIj5Eb25lITwvYnV0dG9uPjwvbGk+Cis8L29sPgorPHNtYWxsPgor
ICBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZQorICA8YSBocmVmPSJodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMiPmZpbGUgYSBidWc8L2E+IGFu
ZAorICB0YWcgb25lIG9mIHRoZQorICA8YQorICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnlt
bCIKKyAgICA+c3VnZ2VzdGVkIHJldmlld2VyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvYmxhbmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L2JsYW5rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRlYWE0NWJiNjIwNzg4
MjQyNzExNzI1Y2ZkODE4OWI2ODE4MzVhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2JsYW5rLmh0
bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgPHRpdGxlPkJsYW5rIFBhZ2U8L3RpdGxl
PgorICAgIDxzY3JpcHQ+CisgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gZW5zdXJlIHRoZSBvbmxvYWQgZXZlbnQgZmly
ZXMgd2hlbiB0aGlzIHBhZ2UgaXMKKyAgICAgICAgLy8gb3BlbmVkIGFzIGEgcG9wdXAuCisgICAg
ICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxs
LzE4MTU3CisgICAgICB9OworICAgIDwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9jaGFuZ2Utc2hpcHBpbmctb3B0aW9uLW1h
bnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1tYW51YWwuaHR0cHMu
aHRtbAppbmRleCBhMzMzNjViYWM3M2VkNTFiNjg3MzIxNWQwZjU0ZDc5YTczNDIyMTYzLi40Mzgw
MDE4MDRhY2RhY2EyMTQxMGNlMGQzNjdhODIwOGNhYzYwYWZmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9jaGFu
Z2Utc2hpcHBpbmctb3B0aW9uLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlw
cGluZy1vcHRpb24tbWFudWFsLmh0dHBzLmh0bWwKQEAgLTksNyArOSwxNyBAQAogPHNjcmlwdD4K
IHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsK
IGNvbnN0IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJi
YXNpYy1jYXJkIiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlk
TWV0aG9kXSk7Citjb25zdCBhcHBsZVBheU1ldGhvZCA9IHsKKyAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAz
LAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBj
b3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNE
UyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfSwKK307Citjb25zdCB2
YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXlNZXRob2Rd
KTsKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7IGN1cnJlbmN5OiAiVVNEIiwg
dmFsdWU6ICI1LjAwIiB9KTsKIGNvbnN0IHZhbGlkVG90YWwgPSBPYmplY3QuZnJlZXplKHsKICAg
bGFiZWw6ICJsYWJlbCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9jaGFuZ2Utc2hpcHBpbmctb3B0aW9uLXNl
bGVjdC1sYXN0LW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1z
ZWxlY3QtbGFzdC1tYW51YWwuaHR0cHMuaHRtbAppbmRleCBmMDg0OTExNTBhYzdlZTZkNjk1MjBh
OTM2ZWIyODY4ZDYwMzkzYzU3Li40YWQzMWQ2NTMxNzMzOGYwNDc0YzI0ZTZlMzU2ODhlYjhmMmI0
Y2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9jaGFuZ2Utc2hpcHBpbmctb3B0aW9uLXNlbGVjdC1sYXN0LW1h
bnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlwcGluZy1vcHRpb24tc2VsZWN0LWxh
c3QtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTgsNyArOCwxNiBAQAogc2V0dXAoeyBleHBsaWNpdF9k
b25lOiB0cnVlLCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOwogY29uc3QgdmFsaWRNZXRob2Rz
ID0gT2JqZWN0LmZyZWV6ZShbCiAgIHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0s
Ci0gIHsgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIgfSwK
KyAgeworICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXki
LAorICAgIGRhdGE6IHsKKyAgICAgIHZlcnNpb246IDMsCisgICAgICBtZXJjaGFudElkZW50aWZp
ZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAg
ICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgICBzdXBwb3J0
ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAgfSwKKyAgfSwKIF0pOwogY29uc3QgdmFsaWRBbW91
bnQgPSBPYmplY3QuZnJlZXplKHsgY3VycmVuY3k6ICJVU0QiLCB2YWx1ZTogIjUuMDAiIH0pOwog
Y29uc3QgdmFsaWRUb3RhbCA9IE9iamVjdC5mcmVlemUoewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY29uc3Ry
dWN0b3JfY29udmVydF9tZXRob2RfZGF0YS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY29uc3RydWN0b3JfY29u
dmVydF9tZXRob2RfZGF0YS5odHRwcy5odG1sCmluZGV4IDU2ODY2YjQzYTQ4MWU3MzhjODQ0NTM3
Y2I5YzM1NWU5NjM4YTI5ZmEuLmY0YTlhNzIxZDA3YzkxZDMxZDdiNWQzNjQ3MWEyMzllNGU3YWJl
MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L2NvbnN0cnVjdG9yX2NvbnZlcnRfbWV0aG9kX2RhdGEuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9jb25zdHJ1Y3Rvcl9jb252ZXJ0X21ldGhvZF9kYXRhLmh0dHBzLmh0bWwK
QEAgLTMyLDggKzMyLDggQEAKICAgICBmb3IgKGNvbnN0IHN1cHBvcnRlZE1ldGhvZHMgb2YgW10u
Y29uY2F0KGtub3duUE1JcykuY29uY2F0KHVua25vd25QTUlzKSkgewogICAgICAgY29uc3QgbWV0
aG9kID0geyBzdXBwb3J0ZWRNZXRob2RzIH07CiAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBh
eW1lbnRSZXF1ZXN0KFttZXRob2RdLCBkZXRhaWxzKTsKLSAgICAgIGFzc2VydF90aHJvd3MoCi0g
ICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICAg
IFR5cGVFcnJvciwKICAgICAgICAgKCkgPT4gewogICAgICAgICAgIGNvbnN0IGJhZE1ldGhvZCA9
IE9iamVjdC5hc3NpZ24oCiAgICAgICAgICAgICB7fSwKQEAgLTU1LDggKzU1LDggQEAKICAgICAg
IC8vIE9ubHkgY2hlY2sgdGhlIFBNSXMgdGhhdCBhcmUgYWN0dWFsbHkgc3VwcG9ydGVkCiAgICAg
ICBpZiAoIShhd2FpdCByZXF1ZXN0LmNhbk1ha2VQYXltZW50KCkpKSBjb250aW51ZTsKIAotICAg
ICAgYXNzZXJ0X3Rocm93cygKLSAgICAgICAgbmV3IFR5cGVFcnJvcigpLAorICAgICAgYXNzZXJ0
X3Rocm93c19qcygKKyAgICAgICAgVHlwZUVycm9yLAogICAgICAgICAoKSA9PiB7CiAgICAgICAg
ICAgY29uc3QgYmFkTWV0aG9kID0gT2JqZWN0LmFzc2lnbigKICAgICAgICAgICAgIHt9LApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvZHluYW1pY2FsbHktY2hhbmdlLXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L2R5bmFtaWNhbGx5LWNoYW5nZS1zaGlwcGluZy1vcHRpb25z
LW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzkxYzlmZWJiODQzYzI3NDJl
ODk2OGUwZmQ5MzU4M2VjNWNmNzM2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2R5bmFtaWNhbGx5
LWNoYW5nZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNSBAQAorUGF5bWVudFJlcXVlc3Qgc2hpcHBpbmdPcHRpb24gYXR0cmlidXRlCisKK0Ns
aWNrIG9uIGVhY2ggYnV0dG9uIGluIHNlcXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3aXRob3V0
IHJlZnJlc2hpbmcgdGhlIHBhZ2UuIEVhY2ggYnV0dG9uIChleGNlcHQgdGhlICdEb25lJyBidXR0
b24pIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuCisKK1doZW4g
dGhlIHBheW1lbnQgc2hlZXQgaXMgcHJlc2VudGVkLCB2aWV3IG9wdGlvbnMgZm9yIFNoaXBwaW5n
IE1ldGhvZC4gVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lOiAiRGVmYXVsdCBzaGlwcGluZyBtZXRo
b2QiCitDaGFuZ2UgeW91ciBTaGlwcGluZyBBZGRyZXNzIC0gZWl0aGVyIHVwZGF0ZSB5b3VyIGV4
aXN0aW5nIG9uZSBieSBjaGFuZ2luZyBzb21ldGhpbmcgKG5hbWUsIGFkZHJlc3MsIGV0YyksIG9y
IHNlbGVjdCBhIGRpZmZlcmVudCBTaGlwcGluZyBBZGRyZXNzLCBvciBhZGQgYSBuZXcgU2hpcHBp
bmcgQWRkcmVzcyBhbmQgc2VsZWN0IGl0LgorR28gYmFjayB0byBTaGlwcGluZyBNZXRob2QsIGFu
ZCB0aGVyZSBpcyBub3cgYW4gb3B0aW9uIGNhbGxlZCAiRHluYW1pY2FsbHkgYWRkZWQgc2hpcHBp
bmcgb3B0aW9uIi4gU2VsZWN0IGl0CitDbGljayBvbiB0aGUgJ0RvbmUnIGJ1dHRvbgorV2hlbiB0
aGUgYWRkcmVzcyBpcyBjaGFuZ2VkLCBzaGlwcGluZyBtZXRob2RzIGNhbiBiZSB1cGRhdGVkCitE
b25lCitJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcg
b25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZXJzLgorCitIYXJuZXNzIEVycm9yIChUSU1FT1VU
KSwgbWVzc2FnZSA9IG51bGwKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9keW5hbWljYWxseS1jaGFuZ2Ut
c2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2R5bmFtaWNhbGx5LWNoYW5n
ZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjYjcwNTM1
MGQ0ZDlmNTU4NTMzNDQ0Njk1MjE5OGRmYWM0N2QwNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9k
eW5hbWljYWxseS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMuaHRtbApAQCAt
MCwwICsxLDE0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4K
Kzx0aXRsZT5UZXN0IGZvciBQYXltZW50UmVxdWVzdCBzaGlwcGluZ09wdGlvbiBkeW5hbWljIHVw
ZGF0aW5nPC90aXRsZT4KKzxsaW5rCisgIHJlbD0iaGVscCIKKyAgaHJlZj0iaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jc2hpcHBpbmdvcHRpb24tYXR0cmlidXRlIgorLz4K
KzxsaW5rCisgIHJlbD0iaGVscCIKKyAgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1l
bnQtcmVxdWVzdC8jb25zaGlwcGluZ29wdGlvbmNoYW5nZS1hdHRyaWJ1dGUiCisvPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAg
c2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlLCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOwor
ICBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAi
YmFzaWMtY2FyZCIgfSk7CisgIGNvbnN0IGFwcGxlUGF5TWV0aG9kID0geworICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICAgIGRhdGE6IHsKKyAg
ICAgIHZlcnNpb246IDMsCisgICAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20u
ZXhhbXBsZSIsCisgICAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICAgIG1lcmNoYW50Q2FwYWJp
bGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNh
Il0sCisgICAgfSwKKyAgfTsKKyAgY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShb
dmFsaWRNZXRob2QsIGFwcGxlUGF5TWV0aG9kXSk7CisgIGNvbnN0IHZhbGlkQW1vdW50ID0gT2Jq
ZWN0LmZyZWV6ZSh7IGN1cnJlbmN5OiAiVVNEIiwgdmFsdWU6ICI1LjAwIiB9KTsKKyAgY29uc3Qg
dmFsaWRUb3RhbCA9IE9iamVjdC5mcmVlemUoeworICAgIGxhYmVsOiAibGFiZWwiLAorICAgIGFt
b3VudDogdmFsaWRBbW91bnQsCisgIH0pOworICBjb25zdCB2YWxpZERldGFpbHMgPSBPYmplY3Qu
ZnJlZXplKHsgdG90YWw6IHZhbGlkVG90YWwgfSk7CisKKyAgY29uc3QgaW5pdGlhbFZhbGlkU2hp
cHBpbmdPcHRpb24gPSBPYmplY3QuZnJlZXplKHsKKyAgICBpZDogImRlZmF1bHQtbWV0aG9kIiwK
KyAgICBsYWJlbDogIkRlZmF1bHQgc2hpcHBpbmcgbWV0aG9kIiwKKyAgICBhbW91bnQ6IHZhbGlk
QW1vdW50LAorICAgIHNlbGVjdGVkOiB0cnVlLAorICB9KTsKKworICBjb25zdCB2YWxpZER5bmFt
aWNTaGlwcGluZ09wdGlvbiA9IE9iamVjdC5mcmVlemUoeworICAgIGlkOiAiZHluYW1pY2FsbHkt
YWRkZWQtaWQiLAorICAgIGxhYmVsOiAiRHluYW1pY2FsbHkgYWRkZWQgc2hpcHBpbmcgb3B0aW9u
IiwKKyAgICBhbW91bnQ6IHZhbGlkQW1vdW50LAorICAgIHNlbGVjdGVkOiBmYWxzZSwKKyAgfSk7
CisKKyAgY29uc3QgcmVxdWVzdFNoaXBwaW5nID0gT2JqZWN0LmZyZWV6ZSh7CisgICAgcmVxdWVz
dFNoaXBwaW5nOiB0cnVlLAorICB9KTsKKworICBmdW5jdGlvbiB0ZXN0U2hpcHBpbmdPcHRpb25D
aGFuZ2VkKCkgeworICAgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgICAgY29uc3Qg
ZGV0YWlsc1dpdGhTaGlwcGluZ09wdGlvbnMgPSB7CisgICAgICAgIC4uLnZhbGlkRGV0YWlscywK
KyAgICAgICAgc2hpcHBpbmdPcHRpb25zOiBbaW5pdGlhbFZhbGlkU2hpcHBpbmdPcHRpb25dLAor
ICAgICAgfTsKKyAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoCisgICAg
ICAgIHZhbGlkTWV0aG9kcywKKyAgICAgICAgZGV0YWlsc1dpdGhTaGlwcGluZ09wdGlvbnMsCisg
ICAgICAgIHJlcXVlc3RTaGlwcGluZworICAgICAgKTsKKyAgICAgIGNvbnN0IHNoaXBwaW5nQWRk
cmVzc0NoYW5nZUxpc3RlbmVyID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAg
cmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICJzaGlwcGluZ2FkZHJlc3NjaGFu
Z2UiLAorICAgICAgICAgIChldikgPT4geworICAgICAgICAgICAgLy8gcmVzb2x2ZShyZXF1ZXN0
LnNoaXBwaW5nT3B0aW9uKTsKKyAgICAgICAgICAgIGV2LnVwZGF0ZVdpdGgoeworICAgICAgICAg
ICAgICBzaGlwcGluZ09wdGlvbnM6IFsKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsaWRTaGlw
cGluZ09wdGlvbiwKKyAgICAgICAgICAgICAgICB2YWxpZER5bmFtaWNTaGlwcGluZ09wdGlvbiwK
KyAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICAgIH0sCisgICAgICAgICAgeyBvbmNlOiB0cnVlIH0KKyAgICAgICAgKTsKKyAg
ICAgIH0pOworICAgICAgY29uc3QgaGFuZGxlclByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2
ZSkgPT4geworICAgICAgICByZXF1ZXN0Lm9uc2hpcHBpbmdvcHRpb25jaGFuZ2UgPSAoKSA9PiB7
CisgICAgICAgICAgcmVzb2x2ZShyZXF1ZXN0LnNoaXBwaW5nT3B0aW9uKTsKKyAgICAgICAgfTsK
KyAgICAgIH0pOworICAgICAgcmVxdWVzdC5zaG93KCkuY2F0Y2goKGVycikgPT4gZXJyKTsKKwor
ICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgc2hpcHBp
bmdBZGRyZXNzQ2hhbmdlTGlzdGVuZXIsCisgICAgICAgIGhhbmRsZXJQcm9taXNlLAorICAgICAg
XSk7CisgICAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgICAgcmVzdWx0c1sxXSA9PT0gImR5bmFtaWNh
bGx5LWFkZGVkLWlkIiwKKyAgICAgICAgIkV4cGVjdGVkIGR5bmFtaWNhbGx5LWFkZGVkLWlkIGFz
IHRoZSBzaGlwcGluZ09wdGlvbiIKKyAgICAgICk7CisgICAgICBhd2FpdCByZXF1ZXN0LmFib3J0
KCk7CisgICAgfSk7CisgIH0KKzwvc2NyaXB0PgorCis8aDI+UGF5bWVudFJlcXVlc3Qgc2hpcHBp
bmdPcHRpb24gYXR0cmlidXRlPC9oMj4KKzxwPgorICBDbGljayBvbiBlYWNoIGJ1dHRvbiBpbiBz
ZXF1ZW5jZSBmcm9tIHRvcCB0byBib3R0b20gd2l0aG91dCByZWZyZXNoaW5nIHRoZQorICBwYWdl
LiBFYWNoIGJ1dHRvbiAoZXhjZXB0IHRoZSAnRG9uZScgYnV0dG9uKSB3aWxsIGJyaW5nIHVwIHRo
ZSBQYXltZW50IFJlcXVlc3QKKyAgVUkgd2luZG93LgorPC9wPgorPG9sPgorICA8bGk+CisgICAg
V2hlbiB0aGUgcGF5bWVudCBzaGVldCBpcyBwcmVzZW50ZWQsIHZpZXcgb3B0aW9ucyBmb3IgU2hp
cHBpbmcgTWV0aG9kLiBUaGVyZQorICAgIHNob3VsZCBvbmx5IGJlIG9uZTogIkRlZmF1bHQgc2hp
cHBpbmcgbWV0aG9kIgorICA8L2xpPgorICA8bGk+CisgICAgQ2hhbmdlIHlvdXIgU2hpcHBpbmcg
QWRkcmVzcyAtIGVpdGhlciB1cGRhdGUgeW91ciBleGlzdGluZyBvbmUgYnkgY2hhbmdpbmcKKyAg
ICBzb21ldGhpbmcgKG5hbWUsIGFkZHJlc3MsIGV0YyksIG9yIHNlbGVjdCBhIGRpZmZlcmVudCBT
aGlwcGluZyBBZGRyZXNzLCBvcgorICAgIGFkZCBhIG5ldyBTaGlwcGluZyBBZGRyZXNzIGFuZCBz
ZWxlY3QgaXQuCisgIDwvbGk+CisgIDxsaT4KKyAgICBHbyBiYWNrIHRvIFNoaXBwaW5nIE1ldGhv
ZCwgYW5kIHRoZXJlIGlzIG5vdyBhbiBvcHRpb24gY2FsbGVkICJEeW5hbWljYWxseQorICAgIGFk
ZGVkIHNoaXBwaW5nIG9wdGlvbiIuIFNlbGVjdCBpdAorICA8L2xpPgorICA8bGk+CisgICAgQ2xp
Y2sgb24gdGhlICdEb25lJyBidXR0b24KKyAgPC9saT4KKzwvb2w+Cis8dWw+CisgIDxsaT4KKyAg
ICA8YnV0dG9uIG9uY2xpY2s9InRlc3RTaGlwcGluZ09wdGlvbkNoYW5nZWQoKSI+CisgICAgICBX
aGVuIHRoZSBhZGRyZXNzIGlzIGNoYW5nZWQsIHNoaXBwaW5nIG1ldGhvZHMgY2FuIGJlIHVwZGF0
ZWQKKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0i
ZG9uZSgpIj5Eb25lPC9idXR0b24+CisgIDwvbGk+Cis8L3VsPgorPHNtYWxsPgorICBJZiB5b3Ug
ZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZQorICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMiPmZpbGUgYSBidWc8L2E+IGFuZAorICB0YWcg
b25lIG9mIHRoZQorICA8YQorICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCIKKyAgICA+
c3VnZ2VzdGVkIHJldmlld2VyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvaGlzdG9y
aWNhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvaGlzdG9yaWNhbC5odHRwcy5odG1sCmluZGV4IGNiZDI5ZDRj
ZmY4Njk4MzY1YzA1YWNmZTc1NTA0ZGU1ZWM3ZTFhZWMuLjY2NjNlNjMxYmZkMjg1N2RjNjNmZjk4
NTRlODY1Nzg5M2M3MWE3ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2hpc3RvcmljYWwuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9oaXN0b3JpY2FsLmh0dHBzLmh0bWwKQEAgLTM0LDcgKzM0LDcgQEAgdGVzdCgoKSA9
PiB7CiAgIGNvbnN0IHVuZXhwZWN0ZWRFcnJvciA9IHtuYW1lOiAnc2VxdWVuY2U8RE9NU3RyaW5n
PiBjb252ZXJzaW9uIGlzIG5vdCBhbGxvd2VkJ307CiAgIG1ldGhvZHMudG9TdHJpbmcgPSAoKSA9
PiB7IHRocm93IGV4cGVjdGVkRXJyb3I7IH07CiAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtZXRo
b2RzLCAnMCcsIHsgZ2V0OiAoKSA9PiB7IHRocm93IHVuZXhwZWN0ZWRFcnJvcjsgfSB9KTsKLSAg
YXNzZXJ0X3Rocm93cyhleHBlY3RlZEVycm9yLCAoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfZXhh
Y3RseShleHBlY3RlZEVycm9yLCAoKSA9PiB7CiAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KFt7c3Vw
cG9ydGVkTWV0aG9kczogbWV0aG9kc31dLCB7dG90YWw6IHtsYWJlbDogJ2JhcicsIGFtb3VudDog
e2N1cnJlbmN5OiAnQkFaJywgdmFsdWU6ICcwJ319fSk7CiAgIH0pOwogfSwgJ3N1cHBvcnRlZE1l
dGhvZHMgbXVzdCBub3Qgc3VwcG9ydCBzZXF1ZW5jZTxET01TdHJpbmc+Jyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9vbm1lcmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1dGUuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ubWVy
Y2hhbnR2YWxpZGF0aW9uLWF0dHJpYnV0ZS5odHRwcy5odG1sCmluZGV4IGMwZWQyMzE2N2VkOTM3
OGVjMzJlNzY5YmQ0ZjNlM2FmYWVmNTA0MGMuLmQzMWFjMmRkNzJhYmNmNTFhMjhlY2VjODUwNDAw
ZjVmMGM2YjliYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ubWVyY2hhbnR2YWxpZGF0aW9uLWF0dHJpYnV0
ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ubWVyY2hhbnR2YWxpZGF0aW9uLWF0dHJpYnV0ZS5odHRw
cy5odG1sCkBAIC03LDcgKzcsMTYgQEAKIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7CiBjb25zdCB0
ZXN0TWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJub3QtYS1yZWFs
LW1ldGhvZCIgfSk7Ci1jb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRN
ZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiB9KTsKK2NvbnN0IGFwcGxlUGF5
ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNv
bS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElk
ZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIs
CisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0
ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0sCit9KTsKIGNvbnN0IGRlZmF1bHRNZXRob2RzID0g
T2JqZWN0LmZyZWV6ZShbdGVzdE1ldGhvZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRlZmF1bHREZXRh
aWxzID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHRvdGFsOiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1l
bnRtZW50aG9kY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1l
bnRtZW50aG9kY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGEyZjg3NGU5Mjc2OGYxODJkODhiZDdmODI1NzY2NmVmN2Q5NTZj
OWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25w
YXltZW50bWVudGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1MgTXVzdCBoYXZlIGEgb25wYXltZW50bWV0aG9k
Y2hhbmdlIElETCBhdHRyaWJ1dGUgCi1QQVNTIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBhdHRyaWJ1
dGUgaXMgYSBnZW5lcmljIGhhbmRsZXIgZm9yICJwYXltZW50bWV0aG9kY2hhbmdlIiAKLVBBU1Mg
b25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBpcyBhIGhhbmRsZXIgZm9yIFBheW1lbnRN
ZXRob2RDaGFuZ2VFdmVudCAKLVBBU1Mgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBh
bmQgbGlzdGVuZXJzIGJvdGggd29yayAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXltZW50bWVudGhv
ZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1lbnRob2RjaGFuZ2Ut
YXR0cmlidXRlLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0ODRl
Yjg2OGY5ODNlM2NkYjBlZmNlYWI1ZmUyYjNjNjA4NGI0YWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXltZW50bWVudGhvZGNoYW5nZS1hdHRy
aWJ1dGUuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPlRlc3QgZm9yIG9ucGF5bWVu
dG1ldGhvZGNoYW5nZSBhdHRyaWJ1dGU8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jb25wYXltZW50bWV0aG9k
Y2hhbmdlLWF0dHJpYnV0ZSI+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotY29uc3QgdGVzdE1ldGhvZCA9
IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAibm90LWEtcmVhbC1tZXRob2QiIH0p
OwotY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImh0
dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIgfSk7Ci1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9i
amVjdC5mcmVlemUoW3Rlc3RNZXRob2QsIGFwcGxlUGF5XSk7Ci1jb25zdCBkZWZhdWx0RGV0YWls
cyA9IE9iamVjdC5mcmVlemUoewotICB0b3RhbDogewotICAgIGxhYmVsOiAiVG90YWwiLAotICAg
IGFtb3VudDogewotICAgICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAgdmFsdWU6ICIxLjAwIiwK
LSAgICB9LAotICB9LAotfSk7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGFzc2Vy
dF9pZGxfYXR0cmlidXRlKHJlcXVlc3QsICJvbnBheW1lbnRtZXRob2RjaGFuZ2UiKTsKLX0sICJN
dXN0IGhhdmUgYSBvbnBheW1lbnRtZXRob2RjaGFuZ2UgSURMIGF0dHJpYnV0ZSIpOwotCi10ZXN0
KCgpID0+IHsKLSAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBldiA9IG5ldyBFdmVudCgicGF5bWVudG1l
dGhvZGNoYW5nZSIpOwotICBsZXQgZGlkSGFuZGxlID0gZmFsc2U7Ci0gIHJlcXVlc3Qub25wYXlt
ZW50bWV0aG9kY2hhbmdlID0gZXZ0ID0+IHsKLSAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJt
dXN0IGJlIHNhbWUgZXZlbnQiKTsKLSAgICBkaWRIYW5kbGUgPSB0cnVlOwotICB9OwotICByZXF1
ZXN0LmRpc3BhdGNoRXZlbnQoZXYpOwotICBhc3NlcnRfdHJ1ZShkaWRIYW5kbGUsICJldmVudCBk
aWQgbm90IGZpcmUiKTsKLX0sIGBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGlzIGEg
Z2VuZXJpYyBoYW5kbGVyIGZvciAicGF5bWVudG1ldGhvZGNoYW5nZSJgKTsKLQotdGVzdCgoKSA9
PiB7Ci0gIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKTsKLSAgY29uc3QgZXYgPSBuZXcgUGF5bWVudE1ldGhvZENoYW5nZUV2
ZW50KCJwYXltZW50bWV0aG9kY2hhbmdlIik7Ci0gIGxldCBkaWRIYW5kbGUgPSBmYWxzZTsKLSAg
cmVxdWVzdC5vbnBheW1lbnRtZXRob2RjaGFuZ2UgPSBldnQgPT4gewotICAgIGFzc2VydF9lcXVh
bHMoZXYsIGV2dCwgIm11c3QgYmUgc2FtZSBldmVudCIpOwotICAgIGRpZEhhbmRsZSA9IHRydWU7
Ci0gIH07Ci0gIHJlcXVlc3QuZGlzcGF0Y2hFdmVudChldik7Ci0gIGFzc2VydF90cnVlKGRpZEhh
bmRsZSwgImV2ZW50IGRpZCBub3QgZmlyZSIpOwotfSwgYG9ucGF5bWVudG1ldGhvZGNoYW5nZSBh
dHRyaWJ1dGUgaXMgYSBoYW5kbGVyIGZvciBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnRgKTsKLQot
dGVzdCgoKSA9PiB7Ci0gIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgY29uc3QgZXYgPSBuZXcgUGF5bWVudE1ldGhv
ZENoYW5nZUV2ZW50KCJwYXltZW50bWV0aG9kY2hhbmdlIiwgewotICAgIG1ldGhvZE5hbWU6ICJ0
ZXN0IgotICB9KTsKLSAgbGV0IGRpZEhhbmRsZSA9IGZhbHNlOwotICBsZXQgZGlkTGlzdGVuID0g
ZmFsc2U7Ci0gIHJlcXVlc3Qub25wYXltZW50bWV0aG9kY2hhbmdlID0gZXZ0ID0+IHsKLSAgICBh
c3NlcnRfZXF1YWxzKGV2LCBldnQsICJtdXN0IGJlIHNhbWUgZXZlbnQiKTsKLSAgICBkaWRIYW5k
bGUgPSB0cnVlOwotICB9OwotICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInBheW1lbnRtZXRo
b2RjaGFuZ2UiLCBldnQgPT4gewotICAgIGFzc2VydF9lcXVhbHMoZXYsIGV2dCwgIm11c3QgYmUg
c2FtZSBldmVudCIpOwotICAgIGRpZExpc3RlbiA9IHRydWU7Ci0gIH0pOwotICByZXF1ZXN0LmRp
c3BhdGNoRXZlbnQoZXYpOwotICBhc3NlcnRfdHJ1ZShkaWRIYW5kbGUsICJvbnBheW1lbnRtZXRo
b2RjaGFuZ2UgZGlkIG5vdCByZWNlaXZlIHRoZSBldmVudCIpOwotICBhc3NlcnRfdHJ1ZShkaWRM
aXN0ZW4sICJhZGRFdmVudExpc3RlbmVyIGRpZCBub3QgcmVjZWl2ZSB0aGUgZXZlbnQiKTsKLX0s
IGBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGFuZCBsaXN0ZW5lcnMgYm90aCB3b3Jr
YCk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRy
aWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXltZW50bWV0aG9kY2hhbmdlLWF0dHJp
YnV0ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJmODc0ZTkyNzY4ZjE4MmQ4OGJk
N2Y4MjU3NjY2ZWY3ZDk1NmM5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1ldGhv
ZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQ
QVNTIE11c3QgaGF2ZSBhIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBJREwgYXR0cmlidXRlIAorUEFT
UyBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGlzIGEgZ2VuZXJpYyBoYW5kbGVyIGZv
ciAicGF5bWVudG1ldGhvZGNoYW5nZSIgCitQQVNTIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBhdHRy
aWJ1dGUgaXMgYSBoYW5kbGVyIGZvciBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQgCitQQVNTIG9u
cGF5bWVudG1ldGhvZGNoYW5nZSBhdHRyaWJ1dGUgYW5kIGxpc3RlbmVycyBib3RoIHdvcmsgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNjQxYmVjNGFhOTFkOGJlNGYxODAxODY5ZWI2OTljYTRiYWQwM2EwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3Qvb25wYXltZW50bWV0aG9kY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCkBA
IC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPlRlc3QgZm9yIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBhdHRyaWJ1dGU8L3RpdGxlPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXlt
ZW50LWFwaS8jb25wYXltZW50bWV0aG9kY2hhbmdlLWF0dHJpYnV0ZSI+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJp
Y3QiOworY29uc3QgdGVzdE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2Rz
OiAibm90LWEtcmVhbC1tZXRob2QiIH0pOworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXpl
KHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisg
IGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNo
YW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENh
cGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZp
c2EiXSwKKyAgfQorfSk7Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3Rl
c3RNZXRob2QsIGFwcGxlUGF5XSk7Citjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVl
emUoeworICB0b3RhbDogeworICAgIGxhYmVsOiAiVG90YWwiLAorICAgIGFtb3VudDogeworICAg
ICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgdmFsdWU6ICIxLjAwIiwKKyAgICB9LAorICB9LAor
fSk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGFzc2VydF9pZGxfYXR0cmlidXRl
KHJlcXVlc3QsICJvbnBheW1lbnRtZXRob2RjaGFuZ2UiKTsKK30sICJNdXN0IGhhdmUgYSBvbnBh
eW1lbnRtZXRob2RjaGFuZ2UgSURMIGF0dHJpYnV0ZSIpOworCit0ZXN0KCgpID0+IHsKKyAgY29u
c3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERl
dGFpbHMpOworICBjb25zdCBldiA9IG5ldyBFdmVudCgicGF5bWVudG1ldGhvZGNoYW5nZSIpOwor
ICBsZXQgZGlkSGFuZGxlID0gZmFsc2U7CisgIHJlcXVlc3Qub25wYXltZW50bWV0aG9kY2hhbmdl
ID0gZXZ0ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJtdXN0IGJlIHNhbWUgZXZl
bnQiKTsKKyAgICBkaWRIYW5kbGUgPSB0cnVlOworICB9OworICByZXF1ZXN0LmRpc3BhdGNoRXZl
bnQoZXYpOworICBhc3NlcnRfdHJ1ZShkaWRIYW5kbGUsICJldmVudCBkaWQgbm90IGZpcmUiKTsK
K30sIGBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGlzIGEgZ2VuZXJpYyBoYW5kbGVy
IGZvciAicGF5bWVudG1ldGhvZGNoYW5nZSJgKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IHJl
cXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxz
KTsKKyAgY29uc3QgZXYgPSBuZXcgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50KCJwYXltZW50bWV0
aG9kY2hhbmdlIik7CisgIGxldCBkaWRIYW5kbGUgPSBmYWxzZTsKKyAgcmVxdWVzdC5vbnBheW1l
bnRtZXRob2RjaGFuZ2UgPSBldnQgPT4geworICAgIGFzc2VydF9lcXVhbHMoZXYsIGV2dCwgIm11
c3QgYmUgc2FtZSBldmVudCIpOworICAgIGRpZEhhbmRsZSA9IHRydWU7CisgIH07CisgIHJlcXVl
c3QuZGlzcGF0Y2hFdmVudChldik7CisgIGFzc2VydF90cnVlKGRpZEhhbmRsZSwgImV2ZW50IGRp
ZCBub3QgZmlyZSIpOworfSwgYG9ucGF5bWVudG1ldGhvZGNoYW5nZSBhdHRyaWJ1dGUgaXMgYSBo
YW5kbGVyIGZvciBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnRgKTsKKwordGVzdCgoKSA9PiB7Cisg
IGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1
bHREZXRhaWxzKTsKKyAgY29uc3QgZXYgPSBuZXcgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50KCJw
YXltZW50bWV0aG9kY2hhbmdlIiwgeworICAgIG1ldGhvZE5hbWU6ICJ0ZXN0IgorICB9KTsKKyAg
bGV0IGRpZEhhbmRsZSA9IGZhbHNlOworICBsZXQgZGlkTGlzdGVuID0gZmFsc2U7CisgIHJlcXVl
c3Qub25wYXltZW50bWV0aG9kY2hhbmdlID0gZXZ0ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGV2
LCBldnQsICJtdXN0IGJlIHNhbWUgZXZlbnQiKTsKKyAgICBkaWRIYW5kbGUgPSB0cnVlOworICB9
OworICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInBheW1lbnRtZXRob2RjaGFuZ2UiLCBldnQg
PT4geworICAgIGFzc2VydF9lcXVhbHMoZXYsIGV2dCwgIm11c3QgYmUgc2FtZSBldmVudCIpOwor
ICAgIGRpZExpc3RlbiA9IHRydWU7CisgIH0pOworICByZXF1ZXN0LmRpc3BhdGNoRXZlbnQoZXYp
OworICBhc3NlcnRfdHJ1ZShkaWRIYW5kbGUsICJvbnBheW1lbnRtZXRob2RjaGFuZ2UgZGlkIG5v
dCByZWNlaXZlIHRoZSBldmVudCIpOworICBhc3NlcnRfdHJ1ZShkaWRMaXN0ZW4sICJhZGRFdmVu
dExpc3RlbmVyIGRpZCBub3QgcmVjZWl2ZSB0aGUgZXZlbnQiKTsKK30sIGBvbnBheW1lbnRtZXRo
b2RjaGFuZ2UgYXR0cmlidXRlIGFuZCBsaXN0ZW5lcnMgYm90aCB3b3JrYCk7Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2ODE2
NGMyZWNkMDNiMzhhOGViMjlmZTE3MDNhNGZlY2ExYjY2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAK
K1RoaXMgdGVzdCByZXF1aXJlcyB1c2VyIGludGVyYWN0aW9uLgorUGxlYXNlIGNsaWNrIGhlcmUg
dG8gYWxsb3cgdGVzdGluZyBvbmUgcGF5bWVudCBzaGVldCBwZXIgd2luZG93LgorCitIYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUaGUgdG9wIGJyb3dz
aW5nIGNvbnRleHQgY2FuIG9ubHkgc2hvdyBvbmUgcGF5bWVudCBzaGVldCBhdCBhIHRpbWUuIFRl
c3QgdGltZWQgb3V0CitOT1RSVU4gSWYgYW4gaWZyYW1lIHNob3dzIGEgcGF5bWVudCByZXF1ZXN0
LCB0aGUgdG9wLWxldmVsIGJyb3dzaW5nIGNvbnRleHQgY2FuJ3QgYWxzbyBzaG93IG9uZS4gCitO
T1RSVU4gQW4gaWZyYW1lIGNhbm5vdCBzaG93IGEgcGF5bWVudCByZXF1ZXN0IGlmIHRoZSB0b3At
bGV2ZWwgd2luZG93IGlzIGFscmVhZHkgc2hvd2luZyBvbmUuIAorTk9UUlVOIFVzaW5nIGEgcG9w
dXAgd2luZG93IHByZXZlbnRzIHRoZSB0b3AtYnJvd3NpbmcgY29udGV4dCBmcm9tIHNob3dpbmcg
YSBwYXltZW50IHJlcXVlc3QgCitOT1RSVU4gR2l2ZW4gbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5n
IGNvbnRleHRzLCBhbmQgd2luZG93IGNhbGxzIHNob3coKSBmaXJzdCwgb3RoZXIgbmVzdGVkIGJy
b3dzaW5nIGNvbnRleHRzIGNhbid0IHNob3cgYSByZXF1ZXN0LiAKK05PVFJVTiBHaXZlbiBtdWx0
aXBsZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMsIGFuZCBwb3B1cCBjYWxscyBzaG93KCkgZmly
c3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4g
CitOT1RSVU4gR2l2ZW4gbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgYW4g
aWZyYW1lIGNhbGxzIHNob3coKSBmaXJzdCwgb3RoZXIgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRz
IGNhbid0IHNob3cgYSByZXF1ZXN0LiAKK05PVFJVTiBOYXZpZ2F0aW5nIGFuIGlmcmFtZSBhcyBh
IG5lc3RlZCBicm93c2luZyBjb250ZXh0IHNldHMgJ3BheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5n
IGJvb2xlYW4nIHRvIGZhbHNlLiAKK05PVFJVTiBOYXZpZ2F0aW5nIGEgcG9wdXAgYXMgYSBuZXN0
ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29s
ZWFuJyB0byBmYWxzZS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGVh
MDI4MDhlZTJhMTIwMTNlNDFlODE5ZGEzMjNmZWRmOGQ4NTNmZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTAyIEBACis8IURP
Q1RZUEUgaHRtbD4gPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cis8dGl0bGU+VGVzdCBmb3IgUGF5
bWVudFJlcXVlc3Quc2hvdyhvcHRpb25hbCBwcm9taXNlKSBtZXRob2Q8L3RpdGxlPgorPGxpbmsK
KyAgcmVsPSJoZWxwIgorICBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXlt
ZW50LWFwaS8jZGZuLXBheW1lbnQtcmVxdWVzdC1pcy1zaG93aW5nIgorLz4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12
ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5q
cyI+PC9zY3JpcHQ+Cis8Ym9keT4KKyAgPHNjcmlwdD4KKyAgICAidXNlIHN0cmljdCI7CisgICAg
Y29uc3QgYXBwbGVQYXlNZXRob2QgPSB7CisgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6
Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgICAgIGRhdGE6IHsKKyAgICAgICAgdmVyc2lvbjog
MywKKyAgICAgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAor
ICAgICAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICAgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6
IFsic3VwcG9ydHMzRFMiXSwKKyAgICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAor
ICAgICAgfSwKKyAgICB9OworICAgIGNvbnN0IG1ldGhvZHMgPSBbe3N1cHBvcnRlZE1ldGhvZHM6
ICJiYXNpYy1jYXJkIn0sIGFwcGxlUGF5TWV0aG9kXTsKKyAgICBjb25zdCBkZXRhaWxzID0gewor
ICAgICAgdG90YWw6IHsKKyAgICAgICAgbGFiZWw6ICJUb3RhbCIsCisgICAgICAgIGFtb3VudDog
eworICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICB2YWx1ZTogIjEuMDAiLAor
ICAgICAgICB9LAorICAgICAgfSwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQXR0YWNoZXMg
YW4gaWZyYW1lIHRvIHdpbmRvdy5kb2N1bWVudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB7U3Ry
aW5nfSBzcmMgT3B0aW9uYWwgcmVzb3VyY2UgVVJMIHRvIGxvYWQuCisgICAgICogQHJldHVybnMg
e1Byb21pc2V9IFJlc29sdmVzIHdoZW4gdGhlIHNyYyBsb2Fkcy4KKyAgICAgKi8KKyAgICBhc3lu
YyBmdW5jdGlvbiBhdHRhY2hJZnJhbWUoc3JjID0gImJsYW5rLmh0bWwiKSB7CisgICAgICBjb25z
dCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgIGlmcmFt
ZS5hbGxvd1BheW1lbnRSZXF1ZXN0ID0gdHJ1ZTsKKyAgICAgIGlmcmFtZS5zcmMgPSBzcmM7Cisg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgICBhd2FpdCBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCByZXNvbHZlLCB7b25jZTogdHJ1ZX0pOworICAgICAgfSk7CisgICAgICByZXR1cm4gaWZy
YW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBwb3B1cCB3aW5kb3cuIFRo
ZSBjYWxsZXIgbXVzdCBiZSB0cmlnZ2VyZWQgd2l0aCBhIHVzZXIgZ2VzdHVyZS4KKyAgICAgKgor
ICAgICAqIEBwYXJhbSB7U3RyaW5nfSBzcmMgT3B0aW9uYWwgcmVzb3VyY2UgVVJMIHRvIGxvYWQu
CisgICAgICogQHJldHVybnMge1Byb21pc2V9IFJlc29sdmVzIHdoZW4gdGhlIHNyYyBsb2Fkcy4K
KyAgICAgKi8KKyAgICBhc3luYyBmdW5jdGlvbiBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZShz
cmMgPSAiYmxhbmsuaHRtbCIpIHsKKyAgICAgIGNvbnN0IHBvcHVwV2luZG93ID0gd2luZG93Lm9w
ZW4oc3JjLCAiIiwgIndpZHRoPTQwMCxoZWlnaHQ9NDAwIik7CisgICAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgcG9wdXBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHJlc29sdmUsIHtvbmNlOiB0cnVlfSk7CisgICAgICB9KTsKKyAgICAgIHBvcHVwV2lu
ZG93LmZvY3VzKCk7CisgICAgICByZXR1cm4gcG9wdXBXaW5kb3c7CisgICAgfQorCisgICAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisgICAgICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQ
YXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKworICAgICAgLy8gU2V0cyB0aGUgInBh
eW1lbnQtcmVsZXZhbnQgYnJvd3NpbmcgY29udGV4dCdzIHBheW1lbnQgcmVxdWVzdCBpcworICAg
ICAgLy8gc2hvd2luZyBib29sZWFuIiB0byB0cnVlIGFuZCB0aGVuIHRyeSB0byBzaG93IGEgc2Vj
b25kIHBheW1lbnQgc2hlZXQgaW4KKyAgICAgIC8vIHRoZSBzYW1lIHdpbmRvdy4gVGhlIHNlY29u
ZCBzaG93KCkgc2hvdWxkIHJlamVjdC4KKyAgICAgIGNvbnN0IFtzaG93UHJvbWlzZTEsIHNob3dQ
cm9taXNlMl0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAgICAgInRlc3Rpbmcgb25l
IHBheW1lbnQgc2hlZXQgcGVyIHdpbmRvdyIsCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICBy
ZXR1cm4gW3JlcXVlc3QxLnNob3coKSwgcmVxdWVzdDIuc2hvdygpXTsKKyAgICAgICAgfSwKKyAg
ICAgICk7CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAg
ICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHNob3dQcm9taXNlMiwKKyAgICAgICAgIkF0dGVt
cHRpbmcgdG8gc2hvdyBhIHNlY29uZCBwYXltZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIiwKKyAg
ICAgICk7CisKKyAgICAgIGF3YWl0IHJlcXVlc3QxLmFib3J0KCk7CisgICAgICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAg
ICAgIHNob3dQcm9taXNlMSwKKyAgICAgICAgInJlcXVlc3QxIHdhcyBhYm9ydGVkIHZpYSAuYWJv
cnQoKSIsCisgICAgICApOworCisgICAgICAvLyBGaW5hbGx5LCByZXF1ZXN0MiBzaG91bGQgaGF2
ZSBiZWVuICJjbG9zZWQiLCBzbyB0cnlpbmcgdG8gc2hvdworICAgICAgLy8gaXQgd2lsbCBhZ2Fp
biByZXN1bHQgaW4gcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuIEludmFsaWRTdGF0ZUVycm9yLgor
ICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdzNjL3BheW1lbnQtcmVxdWVzdC9wdWxs
LzgyMQorICAgICAgY29uc3QgcmVqZWN0ZWRQcm9taXNlID0gcmVxdWVzdDIuc2hvdygpOworICAg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkludmFs
aWRTdGF0ZUVycm9yIiwKKyAgICAgICAgcmVqZWN0ZWRQcm9taXNlLAorICAgICAgICAiQXR0ZW1w
dGluZyB0byBzaG93IGEgc2Vjb25kIHBheW1lbnQgcmVxdWVzdCBtdXN0IHJlamVjdC4iLAorICAg
ICAgKTsKKyAgICAgIC8vIEZpbmFsbHksIHdlIGNvbmZpcm0gdGhhdCByZXF1ZXN0MidzIHJldHVy
bmVkIHByb21pc2VzIGFyZSB1bmlxdWUuCisgICAgICBhc3NlcnRfbm90X2VxdWFscygKKyAgICAg
ICAgc2hvd1Byb21pc2UyLAorICAgICAgICByZWplY3RlZFByb21pc2UsCisgICAgICAgICJSZXR1
cm5lZCBQcm9taXNlcyBiZSB1bmlxdWUiLAorICAgICAgKTsKKyAgICB9LCAiVGhlIHRvcCBicm93
c2luZyBjb250ZXh0IGNhbiBvbmx5IHNob3cgb25lIHBheW1lbnQgc2hlZXQgYXQgYSB0aW1lLiIp
OworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29uc3QgaWZyYW1lID0g
YXdhaXQgYXR0YWNoSWZyYW1lKCk7CisgICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUu
Y29udGVudFdpbmRvdzsKKworICAgICAgLy8gUGF5bWVudCByZXF1ZXN0cworICAgICAgY29uc3Qg
aWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywg
ZGV0YWlscyk7CisgICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50
UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKworICAgICAgLy8gTGV0J3MgZ2V0IHNvbWUgYmxl
c3NlZCBzaG93UHJvbWlzZXMKKyAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBhd2FpdCB0ZXN0
X2RyaXZlci5ibGVzcygKKyAgICAgICAgInRlc3RpbmcgdG9wIHdpbmRvdyBzaG93KCkgYmxvY2tl
ZCBieSBwYXltZW50IHNoZWV0IGluIGlmcmFtZSIsCisgICAgICAgICgpID0+IHsKKyAgICAgICAg
ICAvLyBpZnJhbWUgc2V0cyAiaXMgc2hvd2luZyBib29sZWFuIiwgaWdub3JlIHRoZSByZXR1cm5l
ZCBwcm9taXNlLgorICAgICAgICAgIGlmcmFtZVJlcXVlc3Quc2hvdygpOworICAgICAgICAgIC8v
IFRoZSB0b3AgbGV2ZWwgd2luZG93IG5vdyB0cmllcyB0byBzaG93KCkgdGhlIHBheW1lbnQgcmVx
dWVzdC4KKyAgICAgICAgICByZXR1cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpXTsKKyAgICAgICAg
fSwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAg
IHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgc2hvd1Byb21pc2UsCisgICAgICAg
ICJpZnJhbWUgaXMgYWxyZWFkeSBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIsCisgICAgICAp
OworCisgICAgICAvLyBDbGVhbnVwCisgICAgICBhd2FpdCBpZnJhbWVSZXF1ZXN0LmFib3J0KCk7
CisgICAgICBpZnJhbWUucmVtb3ZlKCk7CisgICAgfSwgIklmIGFuIGlmcmFtZSBzaG93cyBhIHBh
eW1lbnQgcmVxdWVzdCwgdGhlIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0IGNhbid0IGFsc28g
c2hvdyBvbmUuIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICBjb25z
dCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKKyAgICAgIGNvbnN0IGlmcmFtZVdpbmRv
dyA9IGlmcmFtZS5jb250ZW50V2luZG93OworCisgICAgICAvLyBQYXltZW50IHJlcXVlc3RzCisg
ICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2lu
ZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworCisgICAgICAvLyBXZSBmaXJz
dCBzaG93IGEgcGF5bWVudCByZXF1ZXN0IHZpYSB0aGUgdGhlIHRvcCBsZXZlbCBicm93c2luZyBj
b250ZXh0LAorICAgICAgLy8gd2luZG93UmVxdWVzdC5zaG93KCkgc2V0cyAiaXMgc2hvd2luZyBi
b29sZWFuIiB0byB0cnVlLiBUaGVuIHdlIHRyeSB0bworICAgICAgLy8gc2hvdyBhIHBheW1lbnQg
cmVxdWVzdCBpbiB0aGUgaWZyYW1lLCB3aGljaCBzaG91bGQgcmVqZWN0LgorICAgICAgY29uc3Qg
W3dpbmRvd1Nob3dQcm9taXNlLCBpZnJhbWVTaG93UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZl
ci5ibGVzcygKKyAgICAgICAgInRlc3RpbmcgaWZyYW1lIHNob3coKSBibG9ja2VkIGJ5IHBheW1l
bnQgc2hlZXQgaW4gdG9wIHdpbmRvdyIsCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1
cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpLCBpZnJhbWVSZXF1ZXN0LnNob3coKV07CisgICAgICAg
IH0sCisgICAgICApOworCisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAg
ICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIGlmcmFtZVNob3dQcm9taXNlLAor
ICAgICAgICAiVGhlIHRvcCB3aW5kb3cgaXMgYWxyZWFkeSBzaG93aW5nIGEgcGF5bWVudCByZXF1
ZXN0LiIsCisgICAgICApOworCisgICAgICAvLyBDbGVhbnVwCisgICAgICBhd2FpdCB3aW5kb3dS
ZXF1ZXN0LmFib3J0KCk7CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAg
ICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAor
ICAgICAgICAiVGhlIHdpbmRvdyBwYXltZW50IHJlcXVlc3Qgc2hvdWxkIGJlIGFib3J0ZWQgYnkg
dGVzdC4iLAorICAgICAgICApOworICAgICAgaWZyYW1lLnJlbW92ZSgpOworICAgIH0sICJBbiBp
ZnJhbWUgY2Fubm90IHNob3cgYSBwYXltZW50IHJlcXVlc3QgaWYgdGhlIHRvcC1sZXZlbCB3aW5k
b3cgaXMgYWxyZWFkeSBzaG93aW5nIG9uZS4iKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICAgIC8vIENyZWF0ZSBhIFBheW1lbnRSZXVxZXN0IGluIHRvcC1sZXZlbCB3aW5k
b3cuCisgICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZXRhaWxzKTsKKworICAgICAgLy8gVXNlIGEgc2luZ2xlIHVzZXIgZ2VzdHVy
ZSB0byBvcGVuIGEgcG9wdXAgd2luZG93IHdpdGggYSBQYXltZW50UmVxdWVzdC4KKyAgICAgIC8v
IFRoZW4gdHJpZ2dlciBzaG93KCkgZmlyc3Qgb24gfHBvcHVwUmVxdWVzdHwgdGhlbiBvbiB8d2lu
ZG93UmVxdWVzdHwuCisgICAgICAvLyBUaGUgbGF0dGVyIHNob3VsZCByZWplY3QuCisgICAgICBj
b25zdCBbCisgICAgICAgIHBvcHVwV2luZG93LAorICAgICAgICBwb3B1cFJlcXVlc3QsCisgICAg
ICAgIHBvcHVwU2hvd1Byb21pc2UsCisgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAorICAgICAg
XSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICAgICAidGVzdGluZyB0b3AtbGV2ZWwg
c2hvdygpIGJsb2NrZWQgYnkgcGF5bWVudCBzaGVldCBpbiBwb3B1cCIsCisgICAgICAgIGFzeW5j
ICgpID0+IHsKKyAgICAgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IGF3YWl0IGxvYWRQb3B1cElu
c2lkZVVzZXJHZXN0dXJlKCk7CisgICAgICAgICAgY29uc3QgcG9wdXBSZXF1ZXN0ID0gbmV3IHBv
cHVwV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgICAgIGNv
bnN0IHBvcHVwU2hvd1Byb21pc2UgPSBwb3B1cFJlcXVlc3Quc2hvdygpOworICAgICAgICAgIGNv
bnN0IHdpbmRvd1Nob3dQcm9taXNlID0gd2luZG93UmVxdWVzdC5zaG93KCk7CisgICAgICAgICAg
cmV0dXJuIFsKKyAgICAgICAgICAgIHBvcHVwV2luZG93LAorICAgICAgICAgICAgcG9wdXBSZXF1
ZXN0LAorICAgICAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKKyAgICAgICAgICAgIHdpbmRvd1No
b3dQcm9taXNlLAorICAgICAgICAgIF07CisgICAgICAgIH0sCisgICAgICApOworCisgICAgICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJv
ciIsCisgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAorICAgICAgICAiRXhwZWN0ZWQgd2luZG93
J3Mgc2hvd1Byb21pc2UgdG8gcmVqZWN0LCByZXF1ZXN0IGlzIGFscmVhZHkgc2hvd2luZyIsCisg
ICAgICApOworCisgICAgICBhd2FpdCBwb3B1cFJlcXVlc3QuYWJvcnQoKTsKKyAgICAgIGF3YWl0
IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwK
KyAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKKyAgICAgICAgIkV4cGVjdGVkIHBvcHVwU2hvd1By
b21pc2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIsCisgICAgICApOworICAgICAgcG9wdXBXaW5k
b3cuY2xvc2UoKTsKKyAgICB9LCAiVXNpbmcgYSBwb3B1cCB3aW5kb3cgcHJldmVudHMgdGhlIHRv
cC1icm93c2luZyBjb250ZXh0IGZyb20gc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdCIpOworCisg
ICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29uc3QgaWZyYW1lID0gYXdhaXQg
YXR0YWNoSWZyYW1lKCk7CisgICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVu
dFdpbmRvdzsKKworICAgICAgLy8gQ3JlYXRlIHJlcXVlc3RzCisgICAgICBjb25zdCB3aW5kb3dS
ZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAg
ICAgIGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0
KG1ldGhvZHMsIGRldGFpbHMpOworCisgICAgICAvLyBPcGVuIGEgcG9wdXAgd2luZG93CisgICAg
ICBjb25zdCBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVzdF0gPQorICAgICAgYXdhaXQgdGVzdF9k
cml2ZXIuYmxlc3MoCisgICAgICAgICJvcGVuIHBvcHVwIHRvIHRlc3QgbXVsdGlwbGUgY29udGV4
dCBhbmQgd2luZG93IGNhbGxzIHNob3coKSBmaXJzdCIsCisgICAgICAgIGFzeW5jICgpID0+IHsK
KyAgICAgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IGF3YWl0IGxvYWRQb3B1cEluc2lkZVVzZXJH
ZXN0dXJlKCk7CisgICAgICAgICAgY29uc3QgcG9wdXBSZXF1ZXN0ID0gbmV3IHBvcHVwV2luZG93
LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgICAgIHJldHVybiBbcG9w
dXBXaW5kb3csIHBvcHVwUmVxdWVzdF07CisgICAgICAgIH0sCisgICAgICApOworCisgICAgICAv
LyBHZXQgdGhlIHNob3dQcm9taXNlIGZvciBlYWNoIGJyb3dzaW5nIGNvbnRleHQuIERvaW5nIHRo
aXMgaW4gYSBzZXBhcmF0ZQorICAgICAgLy8gdGVzdF9kcml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRh
bnQgYmVjYXVzZSB0aGUgdXNlciBnZXN0dXJlIGJyaW5ncworICAgICAgLy8gfHdpbmRvd3wgdG8g
dGhlIGZvcmVncm91bmQsIHNvIHRoYXQgdGhlIHBheW1lbnQgc2hlZXQgY2FuIHNob3cuCisgICAg
ICBjb25zdCBbCisgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAorICAgICAgICBwb3B1cFNob3dQ
cm9taXNlLAorICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKKyAgICAgIF0gPSBhd2FpdCB0ZXN0
X2RyaXZlci5ibGVzcygKKyAgICAgICAgInRlc3QgbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNv
bnRleHQiLAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFsKKyAgICAgICAgICAg
IHdpbmRvd1JlcXVlc3Quc2hvdygpLAorICAgICAgICAgICAgcG9wdXBSZXF1ZXN0LnNob3coKSwK
KyAgICAgICAgICAgIGlmcmFtZVJlcXVlc3Quc2hvdygpLAorICAgICAgICAgIF07CisgICAgICAg
IH0sCisgICAgICApOworICAgICAgLy8gcG9wdXBSZXF1ZXN0IGFuZCBpZnJhbWVSZXF1ZXN0IHdp
bGwgYm90aCByZWplY3QKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAg
IHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKKyAg
ICAgICAgIkV4cGVjdGVkIHBvcHVwU2hvd1Byb21pc2UgdG8gcmVqZWN0LCByZXF1ZXN0IGlzIGFs
cmVhZHkgc2hvd2luZy4iLAorICAgICAgKTsKKworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
X2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICBpZnJhbWVT
aG93UHJvbWlzZSwKKyAgICAgICAgIkV4cGVjdGVkIGlmcmFtZVNob3dQcm9taXNlIHRvIHJlamVj
dCwgcmVxdWVzdCBpcyBhbHJlYWR5IHNob3dpbmcuIiwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0
IHdpbmRvd1JlcXVlc3QuYWJvcnQoKTsKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20o
CisgICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgd2luZG93U2hvd1By
b21pc2UsCisgICAgICAgICJFeHBlY3Qgd2luZG93IHByb21pc2UgdG8gYmUgYWJvcnRlZCBieSB0
ZXN0LiIKKyAgICAgICk7CisgICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOworICAgICAgaWZyYW1l
LnJlbW92ZSgpOworICAgIH0sICJHaXZlbiBtdWx0aXBsZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4
dHMsIGFuZCB3aW5kb3cgY2FsbHMgc2hvdygpIGZpcnN0LCBvdGhlciBuZXN0ZWQgYnJvd3Npbmcg
Y29udGV4dHMgY2FuJ3Qgc2hvdyBhIHJlcXVlc3QuIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKKyAg
ICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93OworCisgICAgICAv
LyBDcmVhdGUgcmVxdWVzdHMKKyAgICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2luZG93
LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3QgaWZyYW1lUmVx
dWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7
CisKKyAgICAgIC8vIE9wZW4gYSBwb3B1cCB3aW5kb3cKKyAgICAgIGNvbnN0IFsKKyAgICAgICAg
cG9wdXBXaW5kb3csCisgICAgICAgIHBvcHVwUmVxdWVzdCwKKyAgICAgICAgcG9wdXBTaG93UHJv
bWlzZSwKKyAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCisgICAgICAgIGlmcmFtZVNob3dQcm9t
aXNlCisgICAgICBdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0IG11
bHRpcGxlIGJyb3dzaW5nIGNvbnRleHQgYW5kIGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QiLAor
ICAgICAgICBhc3luYyAoKSA9PiB7CisgICAgICAgICAgY29uc3QgcG9wdXBXaW5kb3cgPSBhd2Fp
dCBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZSgpOworICAgICAgICAgIGNvbnN0IHBvcHVwUmVx
dWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsK
KyAgICAgICAgICBjb25zdCBwb3B1cFNob3dQcm9taXNlID0gcG9wdXBSZXF1ZXN0LnNob3coKTsK
KyAgICAgICAgICBjb25zdCB3aW5kb3dTaG93UHJvbWlzZSA9IHdpbmRvd1JlcXVlc3Quc2hvdygp
OworICAgICAgICAgIGNvbnN0IGlmcmFtZVNob3dQcm9taXNlID0gaWZyYW1lUmVxdWVzdC5zaG93
KCk7CisgICAgICAgICAgcmV0dXJuIFtwb3B1cFdpbmRvdywKKyAgICAgICAgICAgICAgICAgIHBv
cHVwUmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisgICAgICAg
ICAgICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgICAgICAgICAgICAgIGlmcmFtZVNo
b3dQcm9taXNlXTsKKyAgICAgIH0pOworCisgICAgICAvLyB3aW5kb3dTaG93UHJvbWlzZSBhbmQg
aWZyYW1lUmVxdWVzdCB3aWxsIGJvdGggcmVqZWN0CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHdpbmRv
d1Nob3dQcm9taXNlLAorICAgICAgICAiRXhwZWN0ZWQgd2luZG93U2hvd1Byb21pc2UgdG8gcmVq
ZWN0LCB0aGUgcG9wdXAgaXMgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4iLAorICAgICAgKTsK
KworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAg
IkFib3J0RXJyb3IiLAorICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKKyAgICAgICAgIkV4cGVj
dGVkIGlmcmFtZVNob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNob3dpbmcgYSBw
YXltZW50IHJlcXVlc3QuIiwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0IHBvcHVwUmVxdWVzdC5h
Ym9ydCgpOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAg
ICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICBwb3B1cFNob3dQcm9taXNlLAorICAgICAgICAi
RXhwZWN0ZWQgcG9wdXBTaG93UHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5IHRlc3QuIiwKKyAgICAg
ICk7CisgICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOworICAgICAgaWZyYW1lLnJlbW92ZSgpOwor
ICAgIH0sICJHaXZlbiBtdWx0aXBsZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMsIGFuZCBwb3B1
cCBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0cyBjYW4n
dCBzaG93IGEgcmVxdWVzdC4iKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
ICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOworICAgICAgY29uc3QgaWZy
YW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CisKKyAgICAgIC8vIENyZWF0ZSByZXF1
ZXN0cworICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7CisgICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlm
cmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKworICAgICAgY29u
c3QgW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3RdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3Mo
CisgICAgICAgICJvcGVuIHBvcHVwIHRvIHRlc3QgbXVsdGlwbGUgY29udGV4dCBhbmQgaWZyYW1l
IGNhbGxzIHNob3coKSBmaXJzdCIsCisgICAgICAgIGFzeW5jICgpID0+IHsKKyAgICAgICAgICBj
b25zdCB3ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKKyAgICAgICAgICBj
b25zdCByID0gbmV3IHcuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisgICAgICAg
ICAgcmV0dXJuIFt3LCByXTsKKyAgICAgICAgfSwKKyAgICAgICk7CisKKyAgICAgIC8vIEdldCB0
aGUgc2hvd1Byb21pc2UgZm9yIGVhY2ggYnJvd3NpbmcgY29udGV4dC4gRG9pbmcgdGhpcyBpbiBh
IHNlcGFyYXRlCisgICAgICAvLyB0ZXN0X2RyaXZlci5ibGVzcygpIGlzIGltcG9ydGFudCBiZWNh
dXNlIHRoZSB1c2VyIGdlc3R1cmUgYnJpbmdzCisgICAgICAvLyB8d2luZG93fCB0byB0aGUgZm9y
ZWdyb3VuZCwgc28gdGhhdCB0aGUgcGF5bWVudCBzaGVldCBjYW4gc2hvdy4KKyAgICAgIGNvbnN0
IFsKKyAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCisgICAgICAgIHBvcHVwU2hvd1Byb21pc2Us
CisgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAorICAgICAgXSA9IGF3YWl0IHRlc3RfZHJpdmVy
LmJsZXNzKAorICAgICAgICAidGVzdCBtdWx0aXBsZSBicm93c2luZyBjb250ZXh0IGFuZCBpZnJh
bWUgY2FsbHMgc2hvdygpIGZpcnN0IiwKKyAgICAgICAgYXN5bmMgKCkgPT4geworICAgICAgICAg
IHJldHVybiBbCisgICAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKSwKKyAgICAgICAgICAg
IHBvcHVwUmVxdWVzdC5zaG93KCksCisgICAgICAgICAgICB3aW5kb3dSZXF1ZXN0LnNob3coKSwK
KyAgICAgICAgICBdOworICAgICAgICB9LAorICAgICAgKTsKKworICAgICAgLy8gd2luZG93U2hv
d1Byb21pc2UgYW5kIGlmcmFtZVJlcXVlc3Qgd2lsbCBib3RoIHJlamVjdAorICAgICAgYXdhaXQg
cHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAor
ICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgICAgIkV4cGVjdGVkIHdpbmRvd1Nob3dQ
cm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3Qu
IiwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAg
IHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKKyAg
ICAgICAgIkV4cGVjdGVkIHBvcHVwU2hvd1Byb21pc2UgdG8gcmVqZWN0LCB0aGUgcG9wdXAgaXMg
c2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4iLAorICAgICAgKTsKKworICAgICAgYXdhaXQgaWZy
YW1lUmVxdWVzdC5hYm9ydCgpOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAg
ICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICBpZnJhbWVTaG93UHJvbWlz
ZSwKKyAgICAgICAgIkV4cGVjdGVkIGlmcmFtZVNob3dQcm9taXNlIHRvIGJlIGFib3J0ZWQgYnkg
dGVzdC4iCisgICAgICApOworICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsKKyAgICAgIGlmcmFt
ZS5yZW1vdmUoKTsKKyAgICB9LCAiR2l2ZW4gbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRl
eHRzLCBhbmQgYW4gaWZyYW1lIGNhbGxzIHNob3coKSBmaXJzdCwgb3RoZXIgbmVzdGVkIGJyb3dz
aW5nIGNvbnRleHRzIGNhbid0IHNob3cgYSByZXF1ZXN0LiIpOworCisgICAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgICAgY29uc3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7
CisgICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKyAgICAg
IGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1l
dGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3QgaWZyYW1lU2hvd1Byb21pc2UgPSB0ZXN0X2Ry
aXZlci5ibGVzcygKKyAgICAgICAgInRlc3QgbmF2aWdhdGluZyBpZnJhbWUgYWZ0ZXIgc2hvdygp
IiwKKyAgICAgICAgKCkgPT4gaWZyYW1lUmVxdWVzdC5zaG93KCksCisgICAgICApOworCisgICAg
ICAvLyBXZSBuYXZpZ2F0ZSBhd2F5LCBjYXVzaW5nIHRoZSBwYXltZW50IHNoZWV0IHRvIGNsb3Nl
CisgICAgICAvLyBhbmQgdGhlIHJlcXVlc3QgaXMgc2hvd2luZyBib29sZWFuIHRvIGJlY29tZSBm
YWxzZS4KKyAgICAgIGlmcmFtZS5zcmMgPSAiYmxhbmsuaHRtbD9hYmM9MTIzIjsKKyAgICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gKGlmcmFtZS5vbmxvYWQgPSByZXNvbHZlKSk7Cisg
ICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJv
cnRFcnJvciIsCisgICAgICAgIGlmcmFtZVNob3dQcm9taXNlLAorICAgICAgICAiTmF2aWdhdGlu
ZyBpZnJhbWUgYXdheSBtdXN0IGNhdXNlIHRoZSBpZnJhbWVTaG93UHJvbWlzZSB0byByZWplY3Qu
IiwKKyAgICAgICk7CisgICAgICBpZnJhbWUucmVtb3ZlKCk7CisKKyAgICAgIC8vIE5vdyB3ZSBz
aG91bGQgYmUgb2sgdG8gc3BpbiB1cCBhIG5ldyBwYXltZW50IHJlcXVlc3QKKyAgICAgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwor
ICAgICAgY29uc3QgW3Nob3dQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAg
ICAgICAgICJzdGFydCBhIG5ldyBwYXltZW50IHJlcXVlc3QiLAorICAgICAgICAgICgpID0+IHsK
KyAgICAgICAgICAgIHJldHVybiBbcmVxdWVzdC5zaG93KCldOworICAgICAgICAgIH0pOworCisg
ICAgICAvLyBJZiBhIHBheW1lbnQgc2hlZXQgZmFpbHMgdG8gc2hvdywgaXQgc2hvdWxkIHJlamVj
dCBpbW1lZGlhdGVseS4gSWYgaXQKKyAgICAgIC8vIGhhc24ndCByZWplY3RlZCBpbiAxIHNlY29u
ZCwgdGhlbiB0aGUgdGVzdCBoYXMgcGFzc2VkLgorICAgICAgdC5zdGVwX3RpbWVvdXQoYXN5bmMg
KCkgPT4geworICAgICAgICAvLyBXZSdyZSBkb25lLiBDbGVhbiB1cC4KKyAgICAgICAgYXdhaXQg
cmVxdWVzdC5hYm9ydCgpOworICAgICAgICB0LmRvbmUoKTsKKyAgICAgIH0pOworCisgICAgICAv
LyBJZiB0aGUgbmF2aWdhdGlvbiBpbiBpZnJhbWUgZmFpbGVkIHRvIGNsb3NlIHRoZSBvcmlnaW5h
bCBwYXltZW50IHNoZWV0CisgICAgICAvLyB0aGVyZSwgfHNob3dQcm9taXNlfCBzaG91bGQgcmVq
ZWN0IGltbWVkaWF0ZWx5IGFuZCB0aGlzIGluZGljYXRlcyBhCisgICAgICAvLyBmYWlsdXJlIG9m
IHRoaXMgdGVzdC4KKyAgICAgIGF3YWl0IHNob3dQcm9taXNlLnRoZW4oKCkgPT4geworICAgICAg
ICBhc3NlcnRfdHJ1ZShmYWxzZSwKKyAgICAgICAgICAiU2Vjb25kIHBheW1lbnQgc2hlZXQgc2hv
dWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlc29sdmVkLiIpOworICAgICAgfSkKKyAgICAgIC5jYXRj
aChlID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCisgICAgICAgICAgIlNlY29uZCBw
YXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZWplY3RlZC4iICsgZS5tZXNz
YWdlKTsKKyAgICAgIH0pOworICAgIH0sICJOYXZpZ2F0aW5nIGFuIGlmcmFtZSBhcyBhIG5lc3Rl
ZCBicm93c2luZyBjb250ZXh0IHNldHMgJ3BheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xl
YW4nIHRvIGZhbHNlLiIpOworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAg
Y29uc3QgW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3QsIHBvcHVwU2hvd1Byb21pc2VdID0KKyAg
ICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICAgInRyaWdnZXIgcGF5bWVu
dCBpbiBhIHBvcHVwIHdpbmRvdyIsCisgICAgICAgICAgYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgY29uc3QgcG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZSgp
OworICAgICAgICAgICAgY29uc3QgcG9wdXBSZXF1ZXN0ID0gbmV3IHBvcHVwV2luZG93LlBheW1l
bnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgICAgICAgcmV0dXJuIFtwb3B1cFdp
bmRvdywgcG9wdXBSZXF1ZXN0LCBwb3B1cFJlcXVlc3Quc2hvdygpXTsKKyAgICAgICAgICB9KTsK
KworICAgICAgLy8gV2UgbmF2aWdhdGUgYXdheSwgY2F1c2luZyB0aGUgcGF5bWVudCBzaGVldCB0
byBjbG9zZQorICAgICAgLy8gYW5kIHRoZSByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbiB0byBi
ZWNvbWUgZmFsc2UuCisgICAgICBwb3B1cFdpbmRvdy5sb2NhdGlvbiA9ICJibGFuay5odG1sP2Fi
Yz0xMjMiOworICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiAocG9wdXBXaW5kb3cu
b25sb2FkID0gcmVzb2x2ZSkpOworCisgICAgICAvLyBEb24ndCB3YWl0IGZvciB8cG9wdXBTaG93
UHJvbWlzZXwgdG8gcmVqZWN0IGJlY2F1c2UgaXQgbWF5IG5ldmVyIGRvCisgICAgICAvLyAoc2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcGF5bWVudC1yZXF1ZXN0L2lzc3Vlcy84NzIpLiBJbnN0
ZWFkLCB0cnkKKyAgICAgIC8vIHRvIHNwaW4gdXAgYSBuZXcgcGF5bWVudCByZXF1ZXN0IGFuZCBt
YWtlIHN1cmUgaXQgc3VjY2VlZHMuCisgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5Q
YXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGNvbnN0IFtzaG93UHJvbWlz
ZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAgICAgInRyaWdnZXIgcGF5bWVudCBp
biBtYWluIHdpbmRvdyIsCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gW3JlcXVl
c3Quc2hvdygpXTsKKyAgICAgICAgfSk7CisKKyAgICAgIC8vIElmIGEgcGF5bWVudCBzaGVldCBm
YWlscyB0byBzaG93LCBpdCBzaG91bGQgcmVqZWN0IGltbWVkaWF0ZWx5LiBJZiBpdAorICAgICAg
Ly8gaGFzbid0IHJlamVjdGVkIGluIDEgc2Vjb25kLCB0aGVuIHRoZSB0ZXN0IGhhcyBwYXNzZWQu
CisgICAgICB0LnN0ZXBfdGltZW91dChhc3luYyAoKSA9PiB7CisgICAgICAgIC8vIFdlJ3JlIGRv
bmUuIENsZWFuIHVwLgorICAgICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOworICAgICAgICBhd2Fp
dCByZXF1ZXN0LmFib3J0KCk7CisgICAgICAgIHQuZG9uZSgpOworICAgICAgfSwgMTAwMCk7CisK
KyAgICAgIC8vIElmIHRoZSBuYXZpZ2F0aW9uIGluIHBvcHVwIHdpbmRvdyBmYWlsZWQgdG8gY2xv
c2UgdGhlIG9yaWdpbmFsIHBheW1lbnQKKyAgICAgIC8vIHNoZWV0IHRoZXJlLCB8c2hvd1Byb21p
c2V8IHNob3VsZCByZWplY3QgaW1tZWRpYXRlbHkgYW5kIHRoaXMgaW5kaWNhdGVzCisgICAgICAv
LyBhIGZhaWx1cmUgb2YgdGhpcyB0ZXN0LgorICAgICAgYXdhaXQgc2hvd1Byb21pc2UudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF90cnVlKGZhbHNlLAorICAgICAgICAgICJTZWNvbmQgcGF5
bWVudCBzaGVldCBzaG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVzb2x2ZWQuIik7CisgICAgICB9
KQorICAgICAgLmNhdGNoKGUgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZShmYWxzZSwKKyAgICAg
ICAgICAiU2Vjb25kIHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlamVj
dGVkLiIpOworICAgICAgfSk7CisgICAgfSwgIk5hdmlnYXRpbmcgYSBwb3B1cCBhcyBhIG5lc3Rl
ZCBicm93c2luZyBjb250ZXh0IHNldHMgJ3BheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xl
YW4nIHRvIGZhbHNlLiIpOworICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1hYm9ydC1tZXRob2QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1hYm9ydC1tZXRob2QuaHR0cHMuaHRtbAppbmRleCA4ZTU2MWIyODhkMTVmYTMwOTcxZGQxZjg4
YjkzMDY3MWM4M2E1ODg3Li44MjMwZTI0NThhYWEzZTAzNjRkYzQ1OTg1ZjU5Njc1OWYwMDk1NDdk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWFib3J0LW1ldGhvZC5odHRwcy5odG1sCkBAIC0xLDEx
ICsxLDExIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRs
ZT5UZXN0IGZvciBQYXltZW50UmVxdWVzdC5hYm9ydCgpIG1ldGhvZDwvdGl0bGU+Ci08bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9icm93c2VyLXBheW1lbnQtYXBp
LyNhYm9ydC1tZXRob2QiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRo
dWIuaW8vcGF5bWVudC1yZXF1ZXN0LyNhYm9ydC1tZXRob2QiPgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMv
dGVzdGRyaXZlci12ZW5kb3IuanMnPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLXZlbmRvci5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0PgogInVzZSBzdHJpY3QiOwogc2V0dXAo
ewpAQCAtMTcsNiArMTcsMTMgQEAgc2V0dXAoewogY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZy
ZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKIGNvbnN0IGFwcGxlUGF5
ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNv
bS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElk
ZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIs
CisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0
ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KIH0pOwogY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWls
cyA9IE9iamVjdC5mcmVlemUoewpAQCAtMzIsNTAgKzM5LDU2IEBAIGNvbnN0IGRlZmF1bHREZXRh
aWxzID0gT2JqZWN0LmZyZWV6ZSh7CiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIC8vIHJl
cXVlc3QgaXMgaW4gImNyZWF0ZWQiIHN0YXRlCiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuYWJvcnQoKSk7CisgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5h
Ym9ydCgpKTsKIH0sIGBUaHJvd3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1dIGlzIG5vdCAiaW50
ZXJhY3RpdmUiYCk7CiAKIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgY29uc3QgcmVxdWVz
dCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwot
ICBjb25zdCBhY2NlcHRQcm9taXNlID0gdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCBy
ZXF1ZXN0IiwgKCkgPT4KLSAgICByZXF1ZXN0LnNob3coKQotICApOwotICB0cnkgewotICAgIGF3
YWl0IHJlcXVlc3QuYWJvcnQoKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVh
Y2hlZCgiVW5leHBlY3RlZCBwcm9taXNlIHJlamVjdGlvbjogIiArIGVyci5tZXNzYWdlKTsKLSAg
fQotICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNl
KTsKKyAgY29uc3QgcHJvbWlzZXMgPSBuZXcgU2V0KFtyZXF1ZXN0LmFib3J0KCksIHJlcXVlc3Qu
YWJvcnQoKSwgcmVxdWVzdC5hYm9ydCgpXSk7CisgIGFzc2VydF9lcXVhbHMocHJvbWlzZXMuc2l6
ZSwgMywgIk11c3QgaGF2ZSB0aHJlZSB1bmlxdWUgb2JqZWN0cyIpOworfSwgIkNhbGxpbmcgYWJv
cnQoKSBtdWx0aXBsZSB0aW1lcyBpcyBhbHdheXMgYSBuZXcgb2JqZWN0LiIpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgY29uc3QgW2Fib3J0UHJvbWlzZSwg
YWNjZXB0UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAic2hvdyBwYXlt
ZW50IHJlcXVlc3QiLAorICAgICgpID0+IHsKKyAgICAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSBy
ZXF1ZXN0LnNob3coKQorICAgICAgYWNjZXB0UHJvbWlzZS5jYXRjaCgoKSA9PiB7fSk7IC8vIG5v
LW9wLCBqdXN0IHRvIHNpbGVuY2UgdW5oYW5kbGVkIHJlamVjdGlvbiBpbiBkZXZ0b29scy4KKyAg
ICAgIGNvbnN0IGFib3J0UHJvbWlzZSA9IHJlcXVlc3QuYWJvcnQoKTsKKyAgICAgIHJldHVybiBb
YWJvcnRQcm9taXNlLCBhY2NlcHRQcm9taXNlXTsKKyAgICB9KTsKKworICBhd2FpdCBhYm9ydFBy
b21pc2U7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBhY2Nl
cHRQcm9taXNlKTsKICAgLy8gQXMgcmVxdWVzdCBpcyBub3cgImNsb3NlZCIsIHRyeWluZyB0byBz
aG93IGl0IHdpbGwgZmFpbAotICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkludmFsaWRTdGF0
ZUVycm9yIiwgcmVxdWVzdC5zaG93KCkpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQs
ICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKIH0sICJUaGUgc2FtZSByZXF1
ZXN0IGNhbm5vdCBiZSBzaG93biBtdWx0aXBsZSB0aW1lcy4iKTsKIAogcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4gewogICAvLyByZXF1ZXN0IGlzIGluICJjcmVhdGVkIiBzdGF0ZS4KICAgY29uc3Qg
cmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFp
bHMpOwotICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVx
dWVzdC5hYm9ydCgpKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0
YXRlRXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOwogICAvLyBDYWxsIGl0IGFnYWluLCBmb3IgZ29v
ZCBtZWFzdXJlLgotICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkludmFsaWRTdGF0ZUVycm9y
IiwgcmVxdWVzdC5hYm9ydCgpKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52
YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOwogICAvLyBUaGUgcmVxdWVzdCdzIHN0
YXRlIGlzICJjcmVhdGVkIiwgc28gbGV0J3Mgc2hvdyBpdAogICAvLyB3aGljaCBjaGFuZ2VzIHRo
ZSBzdGF0ZSB0byAiaW50ZXJhY3RpdmUuIi4KLSAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHRlc3Rf
ZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsICgpID0+Ci0gICAgcmVxdWVzdC5z
aG93KCkKLSAgKTsKLSAgLy8gTGV0J3Mgc2V0IHJlcXVlc3QgdGhlIHN0YXRlIHRvICJjbG9zZWQi
IGJ5IGNhbGxpbmcgLmFib3J0KCkKLSAgdHJ5IHsKLSAgICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7
Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgcHJv
bWlzZSByZWplY3Rpb246ICIgKyBlcnIubWVzc2FnZSk7Ci0gIH0KKyAgY29uc3QgW2Fib3J0UHJv
bWlzZSwgYWNjZXB0UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAic2hv
dyBwYXltZW50IHJlcXVlc3QiLAorICAgICgpID0+IHsKKyAgICAgIGNvbnN0IGFjY2VwdFByb21p
c2UgPSByZXF1ZXN0LnNob3coKQorICAgICAgLy8gTGV0J3Mgc2V0IHJlcXVlc3QgdGhlIHN0YXRl
IHRvICJjbG9zZWQiIGJ5IGNhbGxpbmcgLmFib3J0KCkKKyAgICAgIGNvbnN0IGFib3J0UHJvbWlz
ZSA9IHJlcXVlc3QuYWJvcnQoKTsKKyAgICAgIHJldHVybiBbYWJvcnRQcm9taXNlLCBhY2NlcHRQ
cm9taXNlXTsKKyAgICB9KTsKKworICBhd2FpdCBhYm9ydFByb21pc2U7CiAgIC8vIFRoZSByZXF1
ZXN0IGlzIG5vdyAiY2xvc2VkIiwgc28uLi4KLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJ
bnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuYWJvcnQoKSk7Ci0gIGF3YWl0IHByb21pc2VfcmVq
ZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UpOworICBhd2FpdCBwcm9taXNlX3Jl
amVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuYWJvcnQoKSk7CisgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsK
IH0sICJBYm9ydGluZyBhIHJlcXVlc3QgYmVmb3JlIGl0IGlzIHNob3duIGRvZXNuJ3QgcHJldmVu
dCBpdCBmcm9tIGJlaW5nIHNob3duIGxhdGVyLiIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7Ci0gIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKTsKLSAgY29uc3QgcHJvbWlzZXMgPSBuZXcgU2V0KFtyZXF1ZXN0LmFi
b3J0KCksIHJlcXVlc3QuYWJvcnQoKSwgcmVxdWVzdC5hYm9ydCgpXSk7Ci0gIGFzc2VydF9lcXVh
bHMocHJvbWlzZXMuc2l6ZSwgMywgIk11c3QgaGF2ZSB0aHJlZSB1bmlxdWUgb2JqZWN0cyIpOwot
fSwgIkNhbGxpbmcgYWJvcnQoKSBtdWx0aXBsZSB0aW1lcyBpcyBhbHdheXMgYSBuZXcgb2JqZWN0
LiIpOwogPC9zY3JpcHQ+Ci0KKzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBw
bGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
aXNzdWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVu
dC1yZXF1ZXN0L01FVEEueW1sIj5zdWdnZXN0ZWQgcmV2aWV3ZXJzPC9hPi4KKzwvc21hbGw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLXByb3Rl
Y3Rpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRo
b2QtcHJvdGVjdGlvbi5odHRwcy5odG1sCmluZGV4IGIwNTgyZDUyMGQzMDY3NjBkNzU3NTQ3Nzlk
ZTFjZWVmMWQwNjRhOTIuLmUyMjEwMzRkZDRlYmQwNWM1YmQ3MDFlMDVhODE4OTViODQ1N2MzYjcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QtcHJv
dGVjdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVu
dC1tZXRob2QtcHJvdGVjdGlvbi5odHRwcy5odG1sCkBAIC04LDcgKzgsMTYgQEAKIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGNvbnN0
IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2Fy
ZCIgfSk7Ci1jb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2Rz
OiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiB9KTsKK2NvbnN0IGFwcGxlUGF5ID0gT2Jq
ZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBs
ZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZp
ZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAg
bWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3
b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOwogY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3Qu
ZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9i
amVjdC5mcmVlemUoewogICB0b3RhbDogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0
LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJl
cXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBlNmU4
MmUzYmEzMjcxZTJjYjRiNDAyYmY0NzMwMjkwZGIwYjYyNjYwLi43ZmRjZjdhODVhMGQ5Y2M3ODJl
OTNkYjhkMjk1M2I0OGY4OTE2Nzk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2Fu
bWFrZXBheW1lbnQtbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJl
cXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMSAr
MSw5IEBACi1UaGlzIHRlc3QgcmVxdWlyZXMgdXNlciBpbnRlcmFjdGlvbi4KLVBsZWFzZSBjbGlj
ayBoZXJlIHRvIGFsbG93IHNob3cgcGF5bWVudCByZXF1ZXN0LlRoaXMgdGVzdCByZXF1aXJlcyB1
c2VyIGludGVyYWN0aW9uLgotUGxlYXNlIGNsaWNrIGhlcmUgdG8gYWxsb3cgc2hvdyBwYXltZW50
IHJlcXVlc3QuIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5k
IHRhZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZpZXdlcnMuCitJZiB5b3UgZmluZCBhIGJ1Z2d5
IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2
aWV3ZXJzLgogCiBQQVNTIElmIHBheW1lbnQgbWV0aG9kIGlkZW50aWZpZXIgYXJlIHN1cHBvcnRl
ZCwgcmVzb2x2ZSBwcm9taXNlIHdpdGggdHJ1ZS4gCi1GQUlMIElmIHJlcXVlc3QuW1tzdGF0ZV1d
IGlzICJpbnRlcmFjdGl2ZSIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFu
ICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBhc3NlcnRfdW5yZWFjaGVkOiBTaG91
bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJ
TCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4gYSBwcm9taXNl
IHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRT
dGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgogUEFTUyBJZiBy
ZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY3JlYXRlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSB0aGF0
IHJlc29sdmVzIHRvIHRydWUgZm9yIGtub3duIG1ldGhvZC4gCiBQQVNTIEFsbCBtZXRob2RzIGFy
ZSB1bnN1cHBvcnRlZCAKIFBBU1MgTWl4IG9mIHN1cHBvcnRlZCBhbmQgdW5zdXBwb3J0ZWQgbWV0
aG9kcywgYXQgbGVhc3Qgb25lIG1ldGhvZCBpcyBzdXBwb3J0ZWQuIAorRkFJTCBJZiByZXF1ZXN0
Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0
ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gYXNzZXJ0X3VucmVh
Y2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKK0ZBSUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNsb3NlZCIsIHRoZW4gcmV0dXJu
IGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0
aW9uLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRw
cy5odG1sCmluZGV4IGYzOGNhYTAwYjkzMTNkYzgwZjVhYjUxODBkYzEwZTg1MGViNTcxNDcuLmYw
MjQ3NGRlMTJlNWI0MTQxNzQyYzMxYmJlYjM4ZDY2NjY3ZWEzNjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0dHBzLmh0bWwKQEAgLTEsMTUg
KzEsMjMgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxl
PlRlc3RzIGZvciBQYXltZW50UmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpIG1ldGhvZDwvdGl0bGU+
Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9icm93c2VyLXBh
eW1lbnQtYXBpLyNzaG93LW1ldGhvZCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI2Nhbm1ha2VwYXltZW50LW1ldGhvZCI+CiA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz48L3NjcmlwdD4KIDxzY3JpcHQ+CisidXNl
IHN0cmljdCI7CiBjb25zdCBiYXNpY0NhcmQgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0
aG9kczogImJhc2ljLWNhcmQiIH0pOwogY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsK
ICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRh
dGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50
LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFi
aWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2Ei
XSwKKyAgfQogfSk7CiBjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2lj
Q2FyZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7
CkBAIC0zNSw1MSArNDMsNiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICk7CiB9LCBg
SWYgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllciBhcmUgc3VwcG9ydGVkLCByZXNvbHZlIHByb21p
c2Ugd2l0aCB0cnVlLmApOwogCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IHJl
cXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxz
KTsKLSAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1l
bnQgcmVxdWVzdCIsICgpID0+IHsKLSAgICByZXF1ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0
byAiaW50ZXJhY3RpdmUiCi0gIH0pOwotICBjb25zdCBjYW5NYWtlUGF5bWVudFByb21pc2UgPSBy
ZXF1ZXN0LmNhbk1ha2VQYXltZW50KCk7Ci0gIHRyeSB7Ci0gICAgY29uc3QgcmVzdWx0ID0gYXdh
aXQgY2FuTWFrZVBheW1lbnRQcm9taXNlOwotICAgIGFzc2VydF90cnVlKAotICAgICAgZmFsc2Us
Ci0gICAgICBgY2FuTWFrZVBheW1lbnRQcm9taXNlIHNob3VsZCBoYXZlIHRocm93biBJbnZhbGlk
U3RhdGVFcnJvcmAKLSAgICApOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhd2FpdCBwcm9taXNl
X3JlamVjdHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwgY2FuTWFrZVBheW1lbnRQcm9taXNlKTsK
LSAgfSBmaW5hbGx5IHsKLSAgICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0gICAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7Ci0gIH0KLSAgLy8g
VGhlIHN0YXRlIHNob3VsZCBiZSAiY2xvc2VkIgotICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwg
IkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpKTsKLX0sICdJZiBy
ZXF1ZXN0Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHByb21pc2Ug
cmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4nKTsKLQot
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRS
ZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IGFjY2VwdFBy
b21pc2UgPSB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCAoKSA9PiB7
Ci0gICAgcmVxdWVzdC5zaG93KCk7IC8vIFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZlIgotICB9
KTsKLSAgYWNjZXB0UHJvbWlzZS5jYXRjaCgoKSA9PiB7fSk7IC8vIG5vLW9wLCBqdXN0IHRvIHNp
bGVuY2UgdW5oYW5kbGVkIHJlamVjdGlvbiBpbiBkZXZ0b29scy4KLSAgYXdhaXQgcmVxdWVzdC5h
Ym9ydCgpOyAvLyBUaGUgc3RhdGUgaXMgbm93ICJjbG9zZWQiCi0gIGF3YWl0IHByb21pc2VfcmVq
ZWN0cyh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LmNhbk1ha2VQYXltZW50KCkpOwot
ICB0cnkgewotICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3QuY2FuTWFrZVBheW1lbnQo
KTsKLSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgIGZhbHNlLAotICAgICAgYHNob3VsZCBoYXZlIHRo
cm93biBJbnZhbGlkU3RhdGVFcnJvciwgYnV0IGluc3RlYWQgcmV0dXJuZWQgIiR7cmVzdWx0fSJg
Ci0gICAgKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X2VxdWFscygKLSAgICAgIGVy
ci5uYW1lLAotICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKLSAgICAgICJtdXN0IGJlIGFuIElu
dmFsaWRTdGF0ZUVycm9yLiIKLSAgICApOwotICB9Ci19LCAnSWYgcmVxdWVzdC5bW3N0YXRlXV0g
aXMgImNsb3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZh
bGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLicpOwotCiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKTsKICAgdHJ5IHsKQEAgLTExNSw2ICs3OCw0MCBAQCBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CiAgICkuY2FuTWFrZVBheW1lbnQoKTsKICAgYXNzZXJ0X3RydWUoYXdh
aXQgc29tZVN1cHBvcnRlZCwgYEF0IGxlYXN0IG9uZSBtZXRob2QgaXMgZXhwZWN0ZWQgdG8gYmUg
c3VwcG9ydGVkLmApOwogfSwgYE1peCBvZiBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIG1ldGhv
ZHMsIGF0IGxlYXN0IG9uZSBtZXRob2QgaXMgc3VwcG9ydGVkLmApOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgY29uc3QgW2FjY2VwdFByb21pc2UsIGNhbk1h
a2VQYXltZW50UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAic2hvdyBw
YXltZW50IHJlcXVlc3QiLAorICAgICgpID0+IHsKKyAgICAgIGNvbnN0IGFjY2VwdFByb21pc2Ug
PSByZXF1ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0byAiaW50ZXJhY3RpdmUiCisgICAgICBj
b25zdCBjYW5NYWtlUGF5bWVudFByb21pc2UgPSByZXF1ZXN0LmNhbk1ha2VQYXltZW50KCk7Cisg
ICAgICByZXR1cm4gW2FjY2VwdFByb21pc2UsIGNhbk1ha2VQYXltZW50UHJvbWlzZV07CisgICAg
fSk7CisKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3Ii
LCBjYW5NYWtlUGF5bWVudFByb21pc2UpOworICByZXF1ZXN0LmFib3J0KCk7CisgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKKworICAv
LyBUaGUgc3RhdGUgc2hvdWxkIGJlICJjbG9zZWQiCisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19k
b20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpKTsKK30s
ICdJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHBy
b21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4n
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBh
eW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFth
Ym9ydFByb21pc2UsIGFjY2VwdFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisg
ICAgInNob3cgcGF5bWVudCByZXF1ZXN0IiwKKyAgICAoKSA9PiB7CisgICAgICBjb25zdCBhY2Nl
cHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7IC8vIFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZl
IgorICAgICAgYWNjZXB0UHJvbWlzZS5jYXRjaCgoKSA9PiB7fSk7IC8vIG5vLW9wLCBqdXN0IHRv
IHNpbGVuY2UgdW5oYW5kbGVkIHJlamVjdGlvbiBpbiBkZXZ0b29scy4KKyAgICAgIGNvbnN0IGFi
b3J0UHJvbWlzZSA9IHJlcXVlc3QuYWJvcnQoKTsgIC8vIFNldHMgc3RhdGUgdG8gImNsb3NlZCIK
KyAgICAgIHJldHVybiBbYWJvcnRQcm9taXNlLCBhY2NlcHRQcm9taXNlXTsKKyAgICB9KTsKKwor
ICBhd2FpdCBhYm9ydFByb21pc2U7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFi
b3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0
LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LmNhbk1ha2VQYXltZW50KCkpOworfSwgJ0lm
IHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVq
ZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4nKTsKIDwvc2Ny
aXB0PgogCiA8c21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0
b3ItY3Jhc2guaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVj
dG9yLWNyYXNoLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNDgwODkxZTMyZmE4N2QyYmRmMTFlNjQ0MTExYjMyM2Y3OGFiMjk1ZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29u
c3RydWN0b3ItY3Jhc2guaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIg
KzAsMCBAQAotCi1QQVNTIERvbid0IGNyYXNoIGlmIHRoZXJlIGlzIGFuIGFidXNpdmUgbnVtYmVy
IG9mIHBheW1lbnQgbWV0aG9kcyBpbiB0aGUgbWV0aG9kRGF0YSBzZXF1ZW5jZSAKLVBBU1MgRG9u
J3QgY3Jhc2ggaWYgUGF5bWVudE1ldGhvZERhdGEuc3VwcG9ydGVkTWV0aG9kcyBpcyBhbiBhYnVz
aXZlIGxlbmd0aCAKLVBBU1MgRG9uJ3QgY3Jhc2ggaWYgdGhlIHJlcXVlc3QgaWQgaGFzIGFuIGFi
dXNpdmUgbGVuZ3RoIAotUEFTUyBEb24ndCBjcmFzaCBpZiBQYXltZW50RGV0YWlsc0luaXQudG90
YWwubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCi1QQVNTIERvbid0IGNyYXNoIGlmIHRvdGFs
LmFtb3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCAKLVBBU1MgRG9uJ3QgY3Jhc2ggaWYg
ZGV0YWlscy5kaXNwbGF5SXRlbXMgaGFzIGFuIGFidXNpdmUgbnVtYmVyIG9mIGl0ZW1zIAotUEFT
UyBEb24ndCBjcmFzaCBpZiBkZXRhaWxzLnNoaXBwaW5nT3B0aW9ucyBoYXMgYW4gYWJ1c2l2ZSBu
dW1iZXIgb2YgaXRlbXMgCi1QQVNTIERvbid0IGNyYXNoIGlmIFBheW1lbnRTaGlwcGluZ09wdGlv
bnMubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCi1QQVNTIERvbid0IGNyYXNoIGlmIHRoZSBQ
YXltZW50U2hpcHBpbmdPcHRpb25zLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCAK
LVBBU1MgRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudEl0ZW0ubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5n
dGggCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLWNyYXNoLmh0dHBzLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzMjU2ODFhNGFjZjY4NDFiNjdiMmRk
NDBkMjBjZjBkY2M0NDlkOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLWNyYXNoLmh0dHBzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwyNjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KLTx0
aXRsZT5DcmFzaCB0ZXN0cyBQYXltZW50UmVxdWVzdCBDb25zdHJ1Y3RvcjwvdGl0bGU+Ci08bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9icm93c2VyLXBheW1lbnQt
YXBpLyNjb25zdHJ1Y3RvciI+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotLyoqCi0gICAgZGljdGlvbmFyeSBQYXltZW50SXRlbSB7
Ci0gICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyAgICAgICAgICAgICBsYWJlbDsKLSAgICAgICAg
cmVxdWlyZWQgUGF5bWVudEN1cnJlbmN5QW1vdW50IGFtb3VudDsKLSAgICAgICAgICAgICAgICAg
Ym9vbGVhbiAgICAgICAgICAgICAgIHBlbmRpbmcgPSBmYWxzZTsKLSAgICB9OwotCi0gICAgZGlj
dGlvbmFyeSBQYXltZW50RGV0YWlsc0Jhc2UgewotICAgICAgICBzZXF1ZW5jZTxQYXltZW50SXRl
bT4gICAgICAgICAgICBkaXNwbGF5SXRlbXM7Ci0gICAgICAgIHNlcXVlbmNlPFBheW1lbnRTaGlw
cGluZ09wdGlvbj4gIHNoaXBwaW5nT3B0aW9uczsKLSAgICAgICAgc2VxdWVuY2U8UGF5bWVudERl
dGFpbHNNb2RpZmllcj4gbW9kaWZpZXJzOwotICAgIH07Ci0KLSAgICBkaWN0aW9uYXJ5IFBheW1l
bnRDdXJyZW5jeUFtb3VudCB7Ci0gICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyBjdXJyZW5jeTsK
LSAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nIHZhbHVlOwotICAgIH07Ci0qKi8KLQotInVzZSBz
dHJpY3QiOwotY29uc3QgQUJVU0lWRV9BTU9VTlQgPSAxMDAwMDA7Ci0KLWNvbnN0IGJhc2ljQ2Fy
ZCA9IE9iamVjdC5mcmVlemUoewotICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCi19
KTsKLQotY29uc3QgZGVmYXVsdEFtb3VudCA9IE9iamVjdC5mcmVlemUoewotICBjdXJyZW5jeTog
IlVTRCIsCi0gIHZhbHVlOiAiMS4wMCIsCi19KTsKLQotY29uc3QgZXZpbEFtb3VudCA9IE9iamVj
dC5mcmVlemUoewotICBjdXJyZW5jeTogIlVTRCIsCi0gIHZhbHVlOiAiMSIucmVwZWF0KEFCVVNJ
VkVfQU1PVU5UKSwKLX0pOwotCi1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUo
W2Jhc2ljQ2FyZF0pOwotCi1jb25zdCBkZWZhdWx0VG90YWwgPSBPYmplY3QuZnJlZXplKHsKLSAg
bGFiZWw6ICJsYWJlbCIsCi0gIGFtb3VudDogZGVmYXVsdEFtb3VudCwKLX0pOwotCi1jb25zdCBl
dmlsVG90YWwgPSBPYmplY3QuZnJlZXplKHsKLSAgbGFiZWw6ICJhIi5yZXBlYXQoQUJVU0lWRV9B
TU9VTlQpLAotICBhbW91bnQ6IGV2aWxBbW91bnQsCi19KTsKLQotY29uc3QgZGVmYXVsdERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKLSAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgZ2V0IGlkKCkg
ewotICAgIHJldHVybiBNYXRoLnJhbmRvbSgpOwotICB9LAotfSk7Ci0KLWNvbnN0IGRlZmF1bHRQ
YXltZW50SXRlbSA9IE9iamVjdC5mcmVlemUoewotICBsYWJlbDogImxhYmVsIiwKLSAgYW1vdW50
OiBkZWZhdWx0QW1vdW50LAotfSk7Ci0KLWNvbnN0IGRlZmF1bHRTaGlwcGluZ09wdGlvbiA9IHsK
LSAgZ2V0IGlkKCkgewotICAgIHJldHVybiAic2hpcHBpbmcgb3B0aW9uICIgKyBNYXRoLnJhbmRv
bSgpOwotICB9LAotICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi0gIGxhYmVsOiAic2hpcHBpbmcg
b3B0aW9uIGxhYmVsIiwKLX07Ci0KLS8vIEZpcnN0IGFyZ3VtZW50IGlzIHNlcXVlbmNlPFBheW1l
bnRNZXRob2REYXRhPiBtZXRob2REYXRhCi10ZXN0KCgpID0+IHsKLSAgbGV0IGV2aWxNZXRob2Rz
ID0gW09iamVjdC5hc3NpZ24oe30sIGJhc2ljQ2FyZCldOwotICAvLyBzbW9rZSB0ZXN0Ci0gIHRy
eSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGV2aWxNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7
Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0
ZXN0OiAiICsgZXJyLnN0YWNrKTsKLSAgfQotICAvLyBOb3csIGxldCdzIGFkZCBhbiBhYnVzaXZl
IGFtb3VudCBvZiBtZXRob2RzLgotICB3aGlsZSAoZXZpbE1ldGhvZHMubGVuZ3RoIDwgQUJVU0lW
RV9BTU9VTlQpIHsKLSAgICBldmlsTWV0aG9kcyA9IGV2aWxNZXRob2RzLmNvbmNhdChldmlsTWV0
aG9kcyk7Ci0gIH0KLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZXZpbE1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhl
cnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7Ci0gIH0KLX0sICJE
b24ndCBjcmFzaCBpZiB0aGVyZSBpcyBhbiBhYnVzaXZlIG51bWJlciBvZiBwYXltZW50IG1ldGhv
ZHMgaW4gdGhlIG1ldGhvZERhdGEgc2VxdWVuY2UiKTsKLQotLy8gUGF5bWVudE1ldGhvZERhdGEu
c3VwcG9ydGVkTWV0aG9kcwotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IHN1cHBvcnRlZE1ldGhvZHMg
PSAiYmFzaWMtY2FyZCI7Ci0gIC8vIFNtb2tlIHRlc3QKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoW3sgc3VwcG9ydGVkTWV0aG9kcyB9XSwgZGVmYXVsdERldGFpbHMpOwotICB9IGNh
dGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiAr
IGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBtYWtlIHN1cHBvcnRlZE1ldGhvZHMgc3Vw
ZXIgbGFyZ2UKLSAgY29uc3QgZXZpbE1ldGhvZERhdGEgPSBbCi0gICAgewotICAgICAgc3VwcG9y
dGVkTWV0aG9kczogc3VwcG9ydGVkTWV0aG9kcy5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpLAotICAg
IH0sCi0gIF07Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGV2aWxNZXRob2REYXRh
LCBkZWZhdWx0RGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9lcXVhbHMo
ZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwotICB9Ci19LCAi
RG9uJ3QgY3Jhc2ggaWYgUGF5bWVudE1ldGhvZERhdGEuc3VwcG9ydGVkTWV0aG9kcyBpcyBhbiBh
YnVzaXZlIGxlbmd0aCIpOwotCi0vLyBQYXltZW50RGV0YWlsc0luaXQuaWQKLXRlc3QoKCkgPT4g
ewotICBjb25zdCBpZCA9ICJhYmMiOwotICAvLyBTbW9rZSBUZXN0Ci0gIHRyeSB7Ci0gICAgbmV3
IFBheW1lbnRSZXF1ZXN0KAotICAgICAgZGVmYXVsdE1ldGhvZHMsCi0gICAgICBPYmplY3QuYXNz
aWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBpZCB9KQotICAgICk7Ci0gIH0gY2F0Y2ggKGVycikg
ewotICAgIGFzc2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNr
KTsKLSAgfQotICAvLyBOb3csIHdlIG1ha2UgdGhlIGlkIHN1cGVyIGxhcmdlOwotICBjb25zdCBl
dmlsRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7Ci0gICAgaWQ6
IGlkLnJlcGVhdChBQlVTSVZFX0FNT1VOVCksCi0gIH0pOwotICB0cnkgewotICAgIG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIp
IHsKLSAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBU
eXBlRXJyb3IiKTsKLSAgfQotfSwgIkRvbid0IGNyYXNoIGlmIHRoZSByZXF1ZXN0IGlkIGhhcyBh
biBhYnVzaXZlIGxlbmd0aCIpOwotCi0vLyBQYXltZW50RGV0YWlsc0luaXQudG90YWwubGFiZWwK
LXRlc3QoKCkgPT4gewotICBjb25zdCBldmlsRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRl
ZmF1bHREZXRhaWxzKTsKLSAgLy8gU21va2UgVGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsK
LSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7
Ci0gIH0KLSAgLy8gTm93LCB3ZSBtYWtlIHRoZSBsYWJlbCBzdXBlciBsYXJnZTsKLSAgZXZpbERl
dGFpbHMudG90YWwgPSB7Ci0gICAgbGFiZWw6ICJsIi5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpLAot
ICAgIGFtb3VudDogZGVmYXVsdEFtb3VudCwKLSAgfTsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7
Ci0gICAgYXNzZXJ0X2VxdWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlw
ZUVycm9yIik7Ci0gIH0KLX0sICJEb24ndCBjcmFzaCBpZiBQYXltZW50RGV0YWlsc0luaXQudG90
YWwubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0
IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOwotICAvLyBT
bW9rZSBUZXN0Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBldmlsRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQo
ImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKLSAgfQotICAvLyBOb3csIHdlIGNh
biB1c2UgZXZpbEFtb3VudAotICBldmlsRGV0YWlscy50b3RhbCA9IGV2aWxBbW91bnQ7Ci0gIHRy
eSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7
Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJy
b3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwotICB9Ci19LCAiRG9uJ3QgY3Jhc2ggaWYgdG90
YWwuYW1vdW50LnZhbHVlIGlzIGFuIGFidXNpdmUgbGVuZ3RoIik7Ci0KLWZvciAoY29uc3QgW3By
b3AsIGRlZmF1bHRWYWx1ZV0gb2YgWwotICBbImRpc3BsYXlJdGVtcyIsIGRlZmF1bHRQYXltZW50
SXRlbV0sCi0gIFsic2hpcHBpbmdPcHRpb25zIiwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uXSwKLV0p
IHsKLSAgdGVzdCgoKSA9PiB7Ci0gICAgY29uc3QgZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWdu
KHt9LCBkZWZhdWx0RGV0YWlscyk7Ci0gICAgZXZpbERldGFpbHNbcHJvcF0gPSBbZGVmYXVsdFZh
bHVlXTsKLSAgICAvLyBTbW9rZSBUZXN0Ci0gICAgdHJ5IHsKLSAgICAgIG5ldyBQYXltZW50UmVx
dWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICAgIH0gY2F0Y2ggKGVycikgewot
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2sp
OwotICAgIH0KLSAgICB3aGlsZSAoZXZpbERldGFpbHNbcHJvcF0ubGVuZ3RoIDwgQUJVU0lWRV9B
TU9VTlQpIHsKLSAgICAgIGV2aWxEZXRhaWxzW3Byb3BdID0gZXZpbERldGFpbHNbcHJvcF0uY29u
Y2F0KGV2aWxEZXRhaWxzW3Byb3BdKTsKLSAgICB9Ci0gICAgLy8gTm93LCBjb25zdHJ1Y3Qgd2l0
aCBldmlsIGl0ZW1zIQotICAgIHRyeSB7Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2Vy
dF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwot
ICAgIH0KLSAgfSwgYERvbid0IGNyYXNoIGlmIGRldGFpbHMuJHtwcm9wfSBoYXMgYW4gYWJ1c2l2
ZSBudW1iZXIgb2YgaXRlbXNgKTsKLX0KLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGV2aWxEZXRh
aWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBldmlsU2hp
cHBpbmdPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pOwot
ICBldmlsRGV0YWlscy5zaGlwcGluZ09wdGlvbnMgPSBbZXZpbFNoaXBwaW5nT3B0aW9uXTsKLSAg
Ly8gU21va2UgVGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFj
aGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCB3
ZSBtYWtlIHRoZSBsYWJlbCBzdXBlciBsYXJnZTsKLSAgZXZpbFNoaXBwaW5nT3B0aW9uLmxhYmVs
ID0gImwiLnJlcGVhdChBQlVTSVZFX0FNT1VOVCk7Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewot
ICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVF
cnJvciIpOwotICB9Ci19LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudFNoaXBwaW5nT3B0aW9ucy5s
YWJlbCBpcyBhbiBhYnVzaXZlIGxlbmd0aCIpOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgZXZp
bERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IGV2
aWxTaGlwcGluZ09wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlv
bik7Ci0gIGV2aWxEZXRhaWxzLnNoaXBwaW5nT3B0aW9ucyA9IFtldmlsU2hpcHBpbmdPcHRpb25d
OwotICAvLyBTbW9rZSBUZXN0Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91
bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKLSAgfQotICAvLyBO
b3csIHdlIG1ha2UgdXNlIG9mIGV2aWxBbW91bnQ7Ci0gIGV2aWxTaGlwcGluZ09wdGlvbi5hbW91
bnQgPSBldmlsQW1vdW50OwotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfZXF1
YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKLSAgfQot
fSwgIkRvbid0IGNyYXNoIGlmIHRoZSBQYXltZW50U2hpcHBpbmdPcHRpb25zLmFtb3VudC52YWx1
ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCIpOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgZXZpbERl
dGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IGV2aWxE
aXNwbGF5SXRlbSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRQYXltZW50SXRlbSk7Ci0gIGV2
aWxEZXRhaWxzLmRpc3BsYXlJdGVtcyA9IFtldmlsRGlzcGxheUl0ZW1dOwotICAvLyBTbW9rZSBU
ZXN0Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmls
RGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoImZhaWxl
ZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKLSAgfQotICAvLyBOb3csIHdlIG1ha2UgdGhl
IGxhYmVsIHN1cGVyIGxhcmdlOwotICBldmlsRGlzcGxheUl0ZW0ubGFiZWwgPSAibCIucmVwZWF0
KEFCVVNJVkVfQU1PVU5UKTsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7Ci0gIH0K
LX0sICJEb24ndCBjcmFzaCBpZiBQYXltZW50SXRlbS5sYWJlbCBpcyBhbiBhYnVzaXZlIGxlbmd0
aCIpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0
b3ItdGhjcmFzaC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3Ry
dWN0b3ItdGhjcmFzaC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDgwODkxZTMyZmE4
N2QyYmRmMTFlNjQ0MTExYjMyM2Y3OGFiMjk1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci10aGNyYXNoLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACisKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgdGhlcmUgaXMgYW4gYWJ1c2l2ZSBudW1i
ZXIgb2YgcGF5bWVudCBtZXRob2RzIGluIHRoZSBtZXRob2REYXRhIHNlcXVlbmNlIAorUEFTUyBE
b24ndCBjcmFzaCBpZiBQYXltZW50TWV0aG9kRGF0YS5zdXBwb3J0ZWRNZXRob2RzIGlzIGFuIGFi
dXNpdmUgbGVuZ3RoIAorUEFTUyBEb24ndCBjcmFzaCBpZiB0aGUgcmVxdWVzdCBpZCBoYXMgYW4g
YWJ1c2l2ZSBsZW5ndGggCitQQVNTIERvbid0IGNyYXNoIGlmIFBheW1lbnREZXRhaWxzSW5pdC50
b3RhbC5sYWJlbCBpcyBhbiBhYnVzaXZlIGxlbmd0aCAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgdG90
YWwuYW1vdW50LnZhbHVlIGlzIGFuIGFidXNpdmUgbGVuZ3RoIAorUEFTUyBEb24ndCBjcmFzaCBp
ZiBkZXRhaWxzLmRpc3BsYXlJdGVtcyBoYXMgYW4gYWJ1c2l2ZSBudW1iZXIgb2YgaXRlbXMgCitQ
QVNTIERvbid0IGNyYXNoIGlmIGRldGFpbHMuc2hpcHBpbmdPcHRpb25zIGhhcyBhbiBhYnVzaXZl
IG51bWJlciBvZiBpdGVtcyAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudFNoaXBwaW5nT3B0
aW9ucy5sYWJlbCBpcyBhbiBhYnVzaXZlIGxlbmd0aCAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgdGhl
IFBheW1lbnRTaGlwcGluZ09wdGlvbnMuYW1vdW50LnZhbHVlIGlzIGFuIGFidXNpdmUgbGVuZ3Ro
IAorUEFTUyBEb24ndCBjcmFzaCBpZiBQYXltZW50SXRlbS5sYWJlbCBpcyBhbiBhYnVzaXZlIGxl
bmd0aCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLXRoY3Jh
c2guaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci10aGNyYXNoLmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc2MzYxNWJkZDE4NmQwYThhNjU2YWY4YTg5YmZkZjhiYmZh
YzE4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci10
aGNyYXNoLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+
Cis8dGl0bGU+Q3Jhc2ggdGVzdHMgUGF5bWVudFJlcXVlc3QgQ29uc3RydWN0b3I8L3RpdGxlPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXlt
ZW50LWFwaS8jY29uc3RydWN0b3IiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKy8qKgorICAgIGRpY3Rpb25hcnkgUGF5bWVudEl0
ZW0geworICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgICAgICAgICAgICAgbGFiZWw7CisgICAg
ICAgIHJlcXVpcmVkIFBheW1lbnRDdXJyZW5jeUFtb3VudCBhbW91bnQ7CisgICAgICAgICAgICAg
ICAgIGJvb2xlYW4gICAgICAgICAgICAgICBwZW5kaW5nID0gZmFsc2U7CisgICAgfTsKKworICAg
IGRpY3Rpb25hcnkgUGF5bWVudERldGFpbHNCYXNlIHsKKyAgICAgICAgc2VxdWVuY2U8UGF5bWVu
dEl0ZW0+ICAgICAgICAgICAgZGlzcGxheUl0ZW1zOworICAgICAgICBzZXF1ZW5jZTxQYXltZW50
U2hpcHBpbmdPcHRpb24+ICBzaGlwcGluZ09wdGlvbnM7CisgICAgICAgIHNlcXVlbmNlPFBheW1l
bnREZXRhaWxzTW9kaWZpZXI+IG1vZGlmaWVyczsKKyAgICB9OworCisgICAgZGljdGlvbmFyeSBQ
YXltZW50Q3VycmVuY3lBbW91bnQgeworICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgY3VycmVu
Y3k7CisgICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyB2YWx1ZTsKKyAgICB9OworKiovCisKKyJ1
c2Ugc3RyaWN0IjsKK2NvbnN0IEFCVVNJVkVfQU1PVU5UID0gMTAwMDAwOworCitjb25zdCBhcHBs
ZVBheSA9IHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBh
eSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjog
Im1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJj
aGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtz
OiBbInZpc2EiXSwKKyAgfQorfTsKKworY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZyZWV6ZSh7
CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiwKK30pOworCitjb25zdCBkZWZhdWx0
QW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CisgIGN1cnJlbmN5OiAiVVNEIiwKKyAgdmFsdWU6ICIx
LjAwIiwKK30pOworCitjb25zdCBldmlsQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CisgIGN1cnJl
bmN5OiAiVVNEIiwKKyAgdmFsdWU6ICIxIi5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpLAorfSk7CisK
K2NvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkLCBhcHBsZVBh
eV0pOworCitjb25zdCBkZWZhdWx0VG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAgbGFiZWw6ICJs
YWJlbCIsCisgIGFtb3VudDogZGVmYXVsdEFtb3VudCwKK30pOworCitjb25zdCBldmlsVG90YWwg
PSBPYmplY3QuZnJlZXplKHsKKyAgbGFiZWw6ICJhIi5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpLAor
ICBhbW91bnQ6IGV2aWxBbW91bnQsCit9KTsKKworY29uc3QgZGVmYXVsdERldGFpbHMgPSBPYmpl
Y3QuZnJlZXplKHsKKyAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgZ2V0IGlkKCkgeworICAgIHJl
dHVybiBNYXRoLnJhbmRvbSgpOworICB9LAorfSk7CisKK2NvbnN0IGRlZmF1bHRQYXltZW50SXRl
bSA9IE9iamVjdC5mcmVlemUoeworICBsYWJlbDogImxhYmVsIiwKKyAgYW1vdW50OiBkZWZhdWx0
QW1vdW50LAorfSk7CisKK2NvbnN0IGRlZmF1bHRTaGlwcGluZ09wdGlvbiA9IHsKKyAgZ2V0IGlk
KCkgeworICAgIHJldHVybiAic2hpcHBpbmcgb3B0aW9uICIgKyBNYXRoLnJhbmRvbSgpOworICB9
LAorICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCisgIGxhYmVsOiAic2hpcHBpbmcgb3B0aW9uIGxh
YmVsIiwKK307CisKKy8vIEZpcnN0IGFyZ3VtZW50IGlzIHNlcXVlbmNlPFBheW1lbnRNZXRob2RE
YXRhPiBtZXRob2REYXRhCit0ZXN0KCgpID0+IHsKKyAgbGV0IGV2aWxNZXRob2RzID0gW09iamVj
dC5hc3NpZ24oe30sIGJhc2ljQ2FyZCldOworICAvLyBzbW9rZSB0ZXN0CisgIHRyeSB7CisgICAg
bmV3IFBheW1lbnRSZXF1ZXN0KGV2aWxNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIH0gY2F0
Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsg
ZXJyLnN0YWNrKTsKKyAgfQorICAvLyBOb3csIGxldCdzIGFkZCBhbiBhYnVzaXZlIGFtb3VudCBv
ZiBtZXRob2RzLgorICB3aGlsZSAoZXZpbE1ldGhvZHMubGVuZ3RoIDwgQUJVU0lWRV9BTU9VTlQp
IHsKKyAgICBldmlsTWV0aG9kcyA9IGV2aWxNZXRob2RzLmNvbmNhdChldmlsTWV0aG9kcyk7Cisg
IH0KKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZXZpbE1ldGhvZHMsIGRlZmF1bHRE
ZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X2VxdWFscyhlcnIubmFtZSwg
IlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7CisgIH0KK30sICJEb24ndCBjcmFz
aCBpZiB0aGVyZSBpcyBhbiBhYnVzaXZlIG51bWJlciBvZiBwYXltZW50IG1ldGhvZHMgaW4gdGhl
IG1ldGhvZERhdGEgc2VxdWVuY2UiKTsKKworLy8gUGF5bWVudE1ldGhvZERhdGEuc3VwcG9ydGVk
TWV0aG9kcwordGVzdCgoKSA9PiB7CisgIGNvbnN0IHN1cHBvcnRlZE1ldGhvZHMgPSAiYmFzaWMt
Y2FyZCI7CisgIC8vIFNtb2tlIHRlc3QKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3Qo
W3sgc3VwcG9ydGVkTWV0aG9kcyB9XSwgZGVmYXVsdERldGFpbHMpOworICB9IGNhdGNoIChlcnIp
IHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFj
ayk7CisgIH0KKyAgLy8gTm93LCB3ZSBtYWtlIHN1cHBvcnRlZE1ldGhvZHMgc3VwZXIgbGFyZ2UK
KyAgY29uc3QgZXZpbE1ldGhvZERhdGEgPSBbCisgICAgeworICAgICAgc3VwcG9ydGVkTWV0aG9k
czogc3VwcG9ydGVkTWV0aG9kcy5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpLAorICAgIH0sCisgIF07
CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGV2aWxNZXRob2REYXRhLCBkZWZhdWx0
RGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUs
ICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOworICB9Cit9LCAiRG9uJ3QgY3Jh
c2ggaWYgUGF5bWVudE1ldGhvZERhdGEuc3VwcG9ydGVkTWV0aG9kcyBpcyBhbiBhYnVzaXZlIGxl
bmd0aCIpOworCisvLyBQYXltZW50RGV0YWlsc0luaXQuaWQKK3Rlc3QoKCkgPT4geworICBjb25z
dCBpZCA9ICJhYmMiOworICAvLyBTbW9rZSBUZXN0CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KAorICAgICAgZGVmYXVsdE1ldGhvZHMsCisgICAgICBPYmplY3QuYXNzaWduKHt9LCBk
ZWZhdWx0RGV0YWlscywgeyBpZCB9KQorICAgICk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFz
c2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKKyAgfQor
ICAvLyBOb3csIHdlIG1ha2UgdGhlIGlkIHN1cGVyIGxhcmdlOworICBjb25zdCBldmlsRGV0YWls
cyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7CisgICAgaWQ6IGlkLnJlcGVh
dChBQlVTSVZFX0FNT1VOVCksCisgIH0pOworICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBh
c3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3Ii
KTsKKyAgfQorfSwgIkRvbid0IGNyYXNoIGlmIHRoZSByZXF1ZXN0IGlkIGhhcyBhbiBhYnVzaXZl
IGxlbmd0aCIpOworCisvLyBQYXltZW50RGV0YWlsc0luaXQudG90YWwubGFiZWwKK3Rlc3QoKCkg
PT4geworICBjb25zdCBldmlsRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRh
aWxzKTsKKyAgLy8gU21va2UgVGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3Nl
cnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAg
Ly8gTm93LCB3ZSBtYWtlIHRoZSBsYWJlbCBzdXBlciBsYXJnZTsKKyAgZXZpbERldGFpbHMudG90
YWwgPSB7CisgICAgbGFiZWw6ICJsIi5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpLAorICAgIGFtb3Vu
dDogZGVmYXVsdEFtb3VudCwKKyAgfTsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNz
ZXJ0X2VxdWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7
CisgIH0KK30sICJEb24ndCBjcmFzaCBpZiBQYXltZW50RGV0YWlsc0luaXQudG90YWwubGFiZWwg
aXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGV2aWxEZXRh
aWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOworICAvLyBTbW9rZSBUZXN0
CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0
YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoImZhaWxlZCBz
bW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKKyAgfQorICAvLyBOb3csIHdlIGNhbiB1c2UgZXZp
bEFtb3VudAorICBldmlsRGV0YWlscy50b3RhbCA9IGV2aWxBbW91bnQ7CisgIHRyeSB7CisgICAg
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7CisgIH0gY2F0
Y2ggKGVycikgeworICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVz
dCBiZSBhIFR5cGVFcnJvciIpOworICB9Cit9LCAiRG9uJ3QgY3Jhc2ggaWYgdG90YWwuYW1vdW50
LnZhbHVlIGlzIGFuIGFidXNpdmUgbGVuZ3RoIik7CisKK2ZvciAoY29uc3QgW3Byb3AsIGRlZmF1
bHRWYWx1ZV0gb2YgWworICBbImRpc3BsYXlJdGVtcyIsIGRlZmF1bHRQYXltZW50SXRlbV0sCisg
IFsic2hpcHBpbmdPcHRpb25zIiwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uXSwKK10pIHsKKyAgdGVz
dCgoKSA9PiB7CisgICAgY29uc3QgZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZh
dWx0RGV0YWlscyk7CisgICAgZXZpbERldGFpbHNbcHJvcF0gPSBbZGVmYXVsdFZhbHVlXTsKKyAg
ICAvLyBTbW9rZSBUZXN0CisgICAgdHJ5IHsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgYXNz
ZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOworICAgIH0K
KyAgICB3aGlsZSAoZXZpbERldGFpbHNbcHJvcF0ubGVuZ3RoIDwgQUJVU0lWRV9BTU9VTlQpIHsK
KyAgICAgIGV2aWxEZXRhaWxzW3Byb3BdID0gZXZpbERldGFpbHNbcHJvcF0uY29uY2F0KGV2aWxE
ZXRhaWxzW3Byb3BdKTsKKyAgICB9CisgICAgLy8gTm93LCBjb25zdHJ1Y3Qgd2l0aCBldmlsIGl0
ZW1zIQorICAgIHRyeSB7CisgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGV2aWxEZXRhaWxzKTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMo
ZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOworICAgIH0KKyAg
fSwgYERvbid0IGNyYXNoIGlmIGRldGFpbHMuJHtwcm9wfSBoYXMgYW4gYWJ1c2l2ZSBudW1iZXIg
b2YgaXRlbXNgKTsKK30KKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGV2aWxEZXRhaWxzID0gT2Jq
ZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBldmlsU2hpcHBpbmdPcHRp
b24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pOworICBldmlsRGV0
YWlscy5zaGlwcGluZ09wdGlvbnMgPSBbZXZpbFNoaXBwaW5nT3B0aW9uXTsKKyAgLy8gU21va2Ug
VGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZp
bERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWls
ZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCB3ZSBtYWtlIHRo
ZSBsYWJlbCBzdXBlciBsYXJnZTsKKyAgZXZpbFNoaXBwaW5nT3B0aW9uLmxhYmVsID0gImwiLnJl
cGVhdChBQlVTSVZFX0FNT1VOVCk7CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRl
ZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2Vy
dF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwor
ICB9Cit9LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudFNoaXBwaW5nT3B0aW9ucy5sYWJlbCBpcyBh
biBhYnVzaXZlIGxlbmd0aCIpOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgZXZpbERldGFpbHMg
PSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IGV2aWxTaGlwcGlu
Z09wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbik7CisgIGV2
aWxEZXRhaWxzLnNoaXBwaW5nT3B0aW9ucyA9IFtldmlsU2hpcHBpbmdPcHRpb25dOworICAvLyBT
bW9rZSBUZXN0CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBldmlsRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQo
ImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKKyAgfQorICAvLyBOb3csIHdlIG1h
a2UgdXNlIG9mIGV2aWxBbW91bnQ7CisgIGV2aWxTaGlwcGluZ09wdGlvbi5hbW91bnQgPSBldmls
QW1vdW50OworICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywg
ZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGVyci5u
YW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgfQorfSwgIkRvbid0
IGNyYXNoIGlmIHRoZSBQYXltZW50U2hpcHBpbmdPcHRpb25zLmFtb3VudC52YWx1ZSBpcyBhbiBh
YnVzaXZlIGxlbmd0aCIpOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgZXZpbERldGFpbHMgPSBP
YmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IGV2aWxEaXNwbGF5SXRl
bSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRQYXltZW50SXRlbSk7CisgIGV2aWxEZXRhaWxz
LmRpc3BsYXlJdGVtcyA9IFtldmlsRGlzcGxheUl0ZW1dOworICAvLyBTbW9rZSBUZXN0CisgIHRy
eSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7
CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0
ZXN0OiAiICsgZXJyLnN0YWNrKTsKKyAgfQorICAvLyBOb3csIHdlIG1ha2UgdGhlIGxhYmVsIHN1
cGVyIGxhcmdlOworICBldmlsRGlzcGxheUl0ZW0ubGFiZWwgPSAibCIucmVwZWF0KEFCVVNJVkVf
QU1PVU5UKTsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X2VxdWFscyhlcnIu
bmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7CisgIH0KK30sICJEb24n
dCBjcmFzaCBpZiBQYXltZW50SXRlbS5sYWJlbCBpcyBhbiBhYnVzaXZlIGxlbmd0aCIpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci5odHRwcy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OWMyNWQxNzIzNDU5YmVmNTY5Y2E5ZTYyZWMyOWUwYzg4
OTUzNGY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNjg0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBD
aHJvbWl1bSBhdXRob3JzIGFuZCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAoTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRVJDSU0sIEtlaW8gVW5pdmVyc2l0eSwgQmVp
aGFuZykuIC0tPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPlRlc3QgZm9yIFBheW1l
bnRSZXF1ZXN0IENvbnN0cnVjdG9yPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KLTxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0idXNlIHN0cmljdCI7Ci1jb25zdCB0ZXN0TWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHN1
cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwKLX0pOwot
Y29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt0ZXN0TWV0aG9kXSk7Ci1jb25z
dCBkZWZhdWx0QW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGN1cnJlbmN5OiAiVVNEIiwKLSAg
dmFsdWU6ICIxLjAiLAotfSk7Ci1jb25zdCBkZWZhdWx0TnVtYmVyQW1vdW50ID0gT2JqZWN0LmZy
ZWV6ZSh7Ci0gIGN1cnJlbmN5OiAiVVNEIiwKLSAgdmFsdWU6IDEuMCwKLX0pOwotY29uc3QgZGVm
YXVsdFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGxhYmVsOiAiRGVmYXVsdCBUb3RhbCIsCi0g
IGFtb3VudDogZGVmYXVsdEFtb3VudCwKLX0pOwotY29uc3QgZGVmYXVsdE51bWJlclRvdGFsID0g
T2JqZWN0LmZyZWV6ZSh7Ci0gIGxhYmVsOiAiRGVmYXVsdCBOdW1iZXIgVG90YWwiLAotICBhbW91
bnQ6IGRlZmF1bHROdW1iZXJBbW91bnQsCi19KTsKLWNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2Jq
ZWN0LmZyZWV6ZSh7Ci0gIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gIGRpc3BsYXlJdGVtczogWwot
ICAgIHsKLSAgICAgIGxhYmVsOiAiRGVmYXVsdCBEaXNwbGF5IEl0ZW0iLAotICAgICAgYW1vdW50
OiBkZWZhdWx0QW1vdW50LAotICAgIH0sCi0gIF0sCi19KTsKLWNvbnN0IGRlZmF1bHROdW1iZXJE
ZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHRvdGFsOiBkZWZhdWx0TnVtYmVyVG90YWwsCi0g
IGRpc3BsYXlJdGVtczogWwotICAgIHsKLSAgICAgIGxhYmVsOiAiRGVmYXVsdCBEaXNwbGF5IEl0
ZW0iLAotICAgICAgYW1vdW50OiBkZWZhdWx0TnVtYmVyQW1vdW50LAotICAgIH0sCi0gIF0sCi19
KTsKLQotLy8gQXZvaWQgZmFsc2UgcG9zaXRpdmVzLCB0aGlzIHNob3VsZCBhbHdheXMgcGFzcwot
ZnVuY3Rpb24gc21va2VUZXN0KCkgewotICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhv
ZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0TnVtYmVyRGV0YWlscyk7Ci19Ci10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7
Ci0gIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
ZmF1bHREZXRhaWxzKTsKLSAgYXNzZXJ0X3RydWUoQm9vbGVhbihyZXF1ZXN0LmlkKSwgIm11c3Qg
YmUgc29tZSB0cnV0aHkgdmFsdWUiKTsKLX0sICJJZiBkZXRhaWxzLmlkIGlzIG1pc3NpbmcsIGFz
c2lnbiBhbiBpZGVudGlmaWVyIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAg
Y29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1
bHREZXRhaWxzKTsKLSAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgYXNzZXJ0X25vdF9lcXVhbHMocmVxdWVzdDEu
aWQsIHJlcXVlc3QyLmlkLCAiVUEgZ2VuZXJhdGVkIElEIG11c3QgYmUgdW5pcXVlIik7Ci0gIGNv
bnN0IHNlZW4gPSBuZXcgU2V0KCk7Ci0gIC8vIExldCdzIHRyeSBjcmVhdGluZyBsb3RzIG9mIHJl
cXVlc3RzLCBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFsbCB1bmlxdWUKLSAgZm9yIChsZXQgaSA9
IDA7IGkgPCAxMDI0OyBpKyspIHsKLSAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1
ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gICAgYXNzZXJ0X2ZhbHNlKAot
ICAgICAgc2Vlbi5oYXMocmVxdWVzdC5pZCksCi0gICAgICBgVUEgZ2VuZXJhdGVkIElEIG11c3Qg
YmUgdW5pcXVlLCBidXQgZ290IGR1cGxpY2F0ZSEgKCR7cmVxdWVzdC5pZH0pYAotICAgICk7Ci0g
ICAgc2Vlbi5hZGQocmVxdWVzdC5pZCk7Ci0gIH0KLX0sICJJZiBkZXRhaWxzLmlkIGlzIG1pc3Np
bmcsIGFzc2lnbiBhIHVuaXF1ZSBpZGVudGlmaWVyIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9r
ZVRlc3QoKTsKLSAgY29uc3QgbmV3RGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRE
ZXRhaWxzLCB7IGlkOiAidGVzdDEyMyIgfSk7Ci0gIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBuZXdEZXRhaWxzKTsKLSAgY29uc3QgcmVxdWVzdDIg
PSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG5ld0RldGFpbHMpOwotICBhc3Nl
cnRfZXF1YWxzKHJlcXVlc3QxLmlkLCBuZXdEZXRhaWxzLmlkLCBgaWQgbXVzdCBiZSAke25ld0Rl
dGFpbHMuaWR9YCk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVzdDIuaWQsIG5ld0RldGFpbHMuaWQs
IGBpZCBtdXN0IGJlICR7bmV3RGV0YWlscy5pZH1gKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0
MS5pZCwgcmVxdWVzdDIuaWQsICJpZHMgbmVlZCB0byBiZSB0aGUgc2FtZSIpOwotfSwgIklmIHRo
ZSBzYW1lIGlkIGlzIHByb3ZpZGVkLCB0aGVuIHVzZSBpdCIpOwotCi10ZXN0KCgpID0+IHsKLSAg
c21va2VUZXN0KCk7Ci0gIGNvbnN0IG5ld0RldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZh
dWx0RGV0YWlscywgewotICAgIGlkOiAiIi5wYWRTdGFydCgxMDI0LCAiYSIpLAotICB9KTsKLSAg
Y29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbmV3RGV0
YWlscyk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdC5pZCwKLSAgICBuZXdEZXRhaWxz
LmlkLAotICAgIGBpZCBtdXN0IGJlIHByb3ZpZGVkIHZhbHVlLCBldmVuIGlmIHZlcnkgbG9uZyBh
bmQgY29udGFpbiBzcGFjZXNgCi0gICk7Ci19LCAiVXNlIGlkcyBldmVuIGlmIHRoZXkgYXJlIHN0
cmFuZ2UiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBjb25zdCByZXF1ZXN0
ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAotICAgIGRlZmF1bHRNZXRob2RzLAotICAgIE9iamVjdC5h
c3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IGlkOiAiZm9vIiB9KQotICApOwotICBhc3NlcnRf
ZXF1YWxzKHJlcXVlc3QuaWQsICJmb28iKTsKLX0sICJVc2UgcHJvdmlkZWQgcmVxdWVzdCBJRCIp
OwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5
cGVFcnJvcigpLCAoKSA9PiBuZXcgUGF5bWVudFJlcXVlc3QoW10sIGRlZmF1bHREZXRhaWxzKSk7
Ci19LCAiSWYgdGhlIGxlbmd0aCBvZiB0aGUgbWV0aG9kRGF0YSBzZXF1ZW5jZSBpcyB6ZXJvLCB0
aGVuIHRocm93IGEgVHlwZUVycm9yIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsK
LSAgY29uc3QgSlNPTlNlcmlhbGl6YWJsZXMgPSBbW10sIHsgb2JqZWN0OiB7fSB9XTsKLSAgZm9y
IChjb25zdCBkYXRhIG9mIEpTT05TZXJpYWxpemFibGVzKSB7Ci0gICAgdHJ5IHsKLSAgICAgIGNv
bnN0IG1ldGhvZHMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAi
aHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICAgICAgZGF0YSwKLSAgICAg
ICAgfSwKLSAgICAgIF07Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVs
dERldGFpbHMpOwotICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgK
LSAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3IgcGFyc2luZyBzdHJpbmdpZmlhYmxlIEpTT046ICR7
SlNPTi5zdHJpbmdpZnkoCi0gICAgICAgICAgZGF0YQotICAgICAgICApfTogJHtlcnIubWVzc2Fn
ZX1gCi0gICAgICApOwotICAgIH0KLSAgfQotfSwgIk1vZGlmaWVyIG1ldGhvZCBkYXRhIG11c3Qg
YmUgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0Iik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRl
c3QoKTsKLSAgY29uc3QgcmVjdXJzaXZlRGljdGlvbmFyeSA9IHt9OwotICByZWN1cnNpdmVEaWN0
aW9uYXJ5LmZvbyA9IHJlY3Vyc2l2ZURpY3Rpb25hcnk7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5
cGVFcnJvcigpLCAoKSA9PiB7Ci0gICAgY29uc3QgbWV0aG9kcyA9IFsKLSAgICAgIHsKLSAgICAg
ICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAot
ICAgICAgICBkYXRhOiByZWN1cnNpdmVEaWN0aW9uYXJ5LAotICAgICAgfSwKLSAgICBdOwotICAg
IG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIH0pOwotICBh
c3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gewotICAgIGNvbnN0IG1ldGhvZHMg
PSBbCi0gICAgICB7Ci0gICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkv
cGF5bWVudC1yZXF1ZXN0IiwKLSAgICAgICAgZGF0YTogImEgc3RyaW5nIiwKLSAgICAgIH0sCi0g
ICAgXTsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwot
ICB9KTsKLSAgYXNzZXJ0X3Rocm93cygKLSAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgKCkgPT4g
ewotICAgICAgY29uc3QgbWV0aG9kcyA9IFsKLSAgICAgICAgewotICAgICAgICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwKLSAgICAgICAgICBk
YXRhOiBudWxsLAotICAgICAgICB9LAotICAgICAgXTsKLSAgICAgIG5ldyBQYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gICAgfSwKLSAgICAiRXZlbiB0aG91Z2ggbnVs
bCBpcyBKU09OLXNlcmlhbGl6YWJsZSwgaXQncyBub3QgdHlwZSAnT2JqZWN0JyBwZXIgRVMgc3Bl
YyIKLSAgKTsKLX0sICJSZXRocm93IGFueSBleGNlcHRpb25zIG9mIEpTT04tc2VyaWFsaXppbmcg
cGF5bWVudE1ldGhvZC5kYXRhIGludG8gYSBzdHJpbmciKTsKLQotLy8gcHJvY2VzcyB0b3RhbAot
Y29uc3QgaW52YWxpZEFtb3VudHMgPSBbCi0gICItIiwKLSAgIm5vdGRpZ2l0cyIsCi0gICJBTFNP
Tk9URElHSVRTIiwKLSAgIjEwLiIsCi0gICIuOTkiLAotICAiLTEwLiIsCi0gICItLjk5IiwKLSAg
IjEwLSIsCi0gICIxLTAiLAotICAiMS4wLjAiLAotICAiMS8zIiwKLSAgIiIsCi0gIG51bGwsCi0g
ICIgMS4wICAiLAotICAiIDEuMCAiLAotICAiMS4wICIsCi0gICJVU0QkMS4wIiwKLSAgIiQxLjAi
LAotICB7Ci0gICAgdG9TdHJpbmcoKSB7Ci0gICAgICByZXR1cm4gIiAxLjAiOwotICAgIH0sCi0g
IH0sCi1dOwotY29uc3QgaW52YWxpZFRvdGFsQW1vdW50cyA9IGludmFsaWRBbW91bnRzLmNvbmNh
dChbCi0gICItMSIsCi0gICItMS4wIiwKLSAgIi0xLjAwIiwKLSAgIi0xMDAwLjAwMCIsCi0gIC0x
MCwKLV0pOwotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBmb3IgKGNvbnN0IGludmFs
aWRBbW91bnQgb2YgaW52YWxpZFRvdGFsQW1vdW50cykgewotICAgIGNvbnN0IGludmFsaWREZXRh
aWxzID0gewotICAgICAgdG90YWw6IHsKLSAgICAgICAgbGFiZWw6ICIiLAotICAgICAgICBhbW91
bnQ6IHsKLSAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCi0gICAgICAgICAgdmFsdWU6IGludmFs
aWRBbW91bnQsCi0gICAgICAgIH0sCi0gICAgICB9LAotICAgIH07Ci0gICAgYXNzZXJ0X3Rocm93
cygKLSAgICAgIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3IFBh
eW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBpbnZhbGlkRGV0YWlscyk7Ci0gICAgICB9LAot
ICAgICAgYEV4cGVjdCBUeXBlRXJyb3Igd2hlbiBkZXRhaWxzLnRvdGFsLmFtb3VudC52YWx1ZSBp
cyAke2ludmFsaWRBbW91bnR9YAotICAgICk7Ci0gIH0KLX0sIGBJZiBkZXRhaWxzLnRvdGFsLmFt
b3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVuIHRo
cm93IGEgVHlwZUVycm9yYCk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgZm9y
IChjb25zdCBwcm9wIGluIFsiZGlzcGxheUl0ZW1zIiwgInNoaXBwaW5nT3B0aW9ucyIsICJtb2Rp
ZmllcnMiXSkgewotICAgIHRyeSB7Ci0gICAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2ln
bih7fSwgZGVmYXVsdERldGFpbHMsIHsgW3Byb3BdOiBbXSB9KTsKLSAgICAgIG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVk
KGBQYXltZW50RGV0YWlsc0Jhc2UuJHtwcm9wfSBjYW4gYmUgemVybyBsZW5ndGhgKTsKLSAgICB9
IGNhdGNoIChlcnIpIHt9Ci0gIH0KLX0sIGBQYXltZW50RGV0YWlsc0Jhc2UgbWVtYmVycyBjYW4g
YmUgMCBsZW5ndGhgKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gewotICAgIG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgewotICAgICAgdG90YWw6IHsKLSAgICAgICAgbGFiZWw6ICIiLAotICAg
ICAgICBhbW91bnQ6IHsKLSAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCi0gICAgICAgICAgdmFs
dWU6ICItMS4wMCIsCi0gICAgICAgIH0sCi0gICAgICB9LAotICAgIH0pOwotICB9KTsKLX0sICJJ
ZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGRldGFpbHMudG90YWwuYW1vdW50LnZhbHVlIGlzIFUr
MDAyRCBIWVBIRU4tTUlOVVMsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IiKTsKLQotdGVzdCgoKSA9
PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBmb3IgKGNvbnN0IGludmFsaWRBbW91bnQgb2YgaW52YWxp
ZEFtb3VudHMpIHsKLSAgICBjb25zdCBpbnZhbGlkRGV0YWlscyA9IHsKLSAgICAgIHRvdGFsOiBk
ZWZhdWx0QW1vdW50LAotICAgICAgZGlzcGxheUl0ZW1zOiBbCi0gICAgICAgIHsKLSAgICAgICAg
ICBsYWJlbDogIiIsCi0gICAgICAgICAgYW1vdW50OiB7Ci0gICAgICAgICAgICBjdXJyZW5jeTog
IlVTRCIsCi0gICAgICAgICAgICB2YWx1ZTogaW52YWxpZEFtb3VudCwKLSAgICAgICAgICB9LAot
ICAgICAgICB9LAotICAgICAgXSwKLSAgICB9OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBu
ZXcgVHlwZUVycm9yKCksCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgaW52YWxpZERldGFpbHMpOwotICAgICAgfSwKLSAgICAgIGBFeHBl
Y3RlZCBUeXBlRXJyb3Igd2hlbiBpdGVtLmFtb3VudC52YWx1ZSBpcyAiJHtpbnZhbGlkQW1vdW50
fSJgCi0gICAgKTsKLSAgfQotfSwgYEZvciBlYWNoIGl0ZW0gaW4gZGV0YWlscy5kaXNwbGF5SXRl
bXM6IGlmIGl0ZW0uYW1vdW50LnZhbHVlIGlzIG5vdCBhIHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkg
dmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3JgKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tl
VGVzdCgpOwotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdCgKLSAgICAgIFsKLSAgICAg
ICAgewotICAgICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVu
dC1yZXF1ZXN0IiwKLSAgICAgICAgfSwKLSAgICAgIF0sCi0gICAgICB7Ci0gICAgICAgIHRvdGFs
OiBkZWZhdWx0VG90YWwsCi0gICAgICAgIGRpc3BsYXlJdGVtczogWwotICAgICAgICAgIHsKLSAg
ICAgICAgICAgIGxhYmVsOiAiIiwKLSAgICAgICAgICAgIGFtb3VudDogewotICAgICAgICAgICAg
ICBjdXJyZW5jeTogIlVTRCIsCi0gICAgICAgICAgICAgIHZhbHVlOiAiLTEwMDAiLAotICAgICAg
ICAgICAgfSwKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGxhYmVsOiAi
IiwKLSAgICAgICAgICAgIGFtb3VudDogewotICAgICAgICAgICAgICBjdXJyZW5jeTogIkFVRCIs
Ci0gICAgICAgICAgICAgIHZhbHVlOiAiLTIwMDAuMDAiLAotICAgICAgICAgICAgfSwKLSAgICAg
ICAgICB9LAotICAgICAgICBdLAotICAgICAgfQotICAgICk7Ci0gIH0gY2F0Y2ggKGVycikgewot
ICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICBgc2hvdWxkbid0IHRocm93IHdoZW4gZ2l2ZW4g
YSBuZWdhdGl2ZSB2YWx1ZTogJHtlcnIubWVzc2FnZX1gCi0gICAgKTsKLSAgfQotfSwgIk5lZ2F0
aXZlIHZhbHVlcyBhcmUgYWxsb3dlZCBmb3IgZGlzcGxheUl0ZW1zLmFtb3VudC52YWx1ZSwgaXJy
ZXNwZWN0aXZlIG9mIHRvdGFsIGFtb3VudCIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0
KCk7Ci0gIGNvbnN0IGxhcmdlTW9uZXkgPSAiMSIucmVwZWF0KDUxMCk7Ci0gIHRyeSB7Ci0gICAg
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCB7Ci0gICAgICB0b3RhbDogewotICAg
ICAgICBsYWJlbDogIiIsCi0gICAgICAgIGFtb3VudDogewotICAgICAgICAgIGN1cnJlbmN5OiAi
VVNEIiwKLSAgICAgICAgICB2YWx1ZTogYCR7bGFyZ2VNb25leX0uJHtsYXJnZU1vbmV5fWAsCi0g
ICAgICAgIH0sCi0gICAgICB9LAotICAgICAgZGlzcGxheUl0ZW1zOiBbCi0gICAgICAgIHsKLSAg
ICAgICAgICBsYWJlbDogIiIsCi0gICAgICAgICAgYW1vdW50OiB7Ci0gICAgICAgICAgICBjdXJy
ZW5jeTogIlVTRCIsCi0gICAgICAgICAgICB2YWx1ZTogYC0ke2xhcmdlTW9uZXl9YCwKLSAgICAg
ICAgICB9LAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgbGFiZWw6ICIiLAotICAg
ICAgICAgIGFtb3VudDogewotICAgICAgICAgICAgY3VycmVuY3k6ICJBVUQiLAotICAgICAgICAg
ICAgdmFsdWU6IGAtJHtsYXJnZU1vbmV5fS4ke2xhcmdlTW9uZXl9YCwKLSAgICAgICAgICB9LAot
ICAgICAgICB9LAotICAgICAgXSwKLSAgICB9KTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNz
ZXJ0X3VucmVhY2hlZCgKLSAgICAgIGBzaG91bGRuJ3QgdGhyb3cgd2hlbiBnaXZlbiBhYnN1cmQg
bW9uZXRhcnkgdmFsdWVzOiAke2Vyci5tZXNzYWdlfWAKLSAgICApOwotICB9Ci19LCAiaXQgaGFu
ZGxlcyBoaWdoIHByZWNpc2lvbiBjdXJyZW5jeSB2YWx1ZXMgd2l0aG91dCB0aHJvd2luZyIpOwot
Ci0vLyBQcm9jZXNzIHNoaXBwaW5nIG9wdGlvbnM6Ci0KLWNvbnN0IGRlZmF1bHRTaGlwcGluZ09w
dGlvbiA9IE9iamVjdC5mcmVlemUoewotICBpZDogImRlZmF1bHQiLAotICBsYWJlbDogIiIsCi0g
IGFtb3VudDogZGVmYXVsdEFtb3VudCwKLSAgc2VsZWN0ZWQ6IGZhbHNlLAotfSk7Ci1jb25zdCBk
ZWZhdWx0U2hpcHBpbmdPcHRpb25zID0gT2JqZWN0LmZyZWV6ZShbCi0gIE9iamVjdC5hc3NpZ24o
e30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiksCi1dKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tl
VGVzdCgpOwotICBmb3IgKGNvbnN0IGFtb3VudCBvZiBpbnZhbGlkQW1vdW50cykgewotICAgIGNv
bnN0IGludmFsaWRBbW91bnQgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0QW1vdW50LCB7Ci0g
ICAgICB2YWx1ZTogYW1vdW50LAotICAgIH0pOwotICAgIGNvbnN0IGludmFsaWRTaGlwcGluZ09w
dGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgewotICAgICAg
YW1vdW50OiBpbnZhbGlkQW1vdW50LAotICAgIH0pOwotICAgIGNvbnN0IGRldGFpbHMgPSBPYmpl
Y3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgewotICAgICAgc2hpcHBpbmdPcHRpb25zOiBb
aW52YWxpZFNoaXBwaW5nT3B0aW9uXSwKLSAgICB9KTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAg
ICAgbmV3IFR5cGVFcnJvcigpLAotICAgICAgKCkgPT4gewotICAgICAgICBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsgcmVxdWVzdFNoaXBwaW5nOiB0cnVlIH0p
OwotICAgICAgfSwKLSAgICAgIGBFeHBlY3RlZCBUeXBlRXJyb3IgZm9yIG9wdGlvbi5hbW91bnQu
dmFsdWU6ICIke2Ftb3VudH0iYAotICAgICk7Ci0gIH0KLX0sIGBGb3IgZWFjaCBvcHRpb24gaW4g
ZGV0YWlscy5zaGlwcGluZ09wdGlvbnM6IGlmIG9wdGlvbi5hbW91bnQudmFsdWUgaXMgbm90IGEg
dmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvcmApOwot
Ci10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9
IFtkZWZhdWx0U2hpcHBpbmdPcHRpb25dOwotICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2ln
bih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOwotICBjb25zdCByZXF1
ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAgYXNz
ZXJ0X2VxdWFscygKLSAgICByZXF1ZXN0LnNoaXBwaW5nT3B0aW9uLAotICAgIG51bGwsCi0gICAg
InNoaXBwaW5nT3B0aW9uIG11c3QgYmUgbnVsbCwgYXMgcmVxdWVzdFNoaXBwaW5nIGlzIG1pc3Np
bmciCi0gICk7Ci0gIC8vIGRlZmF1bHREZXRhaWxzIGxhY2tzIHNoaXBwaW5nIG9wdGlvbnMKLSAg
Y29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1
bHREZXRhaWxzLCB7Ci0gICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAotICB9KTsKLSAgYXNzZXJ0
X2VxdWFscygKLSAgICByZXF1ZXN0Mi5zaGlwcGluZ09wdGlvbiwKLSAgICBudWxsLAotICAgIGBy
ZXF1ZXN0Mi5zaGlwcGluZ09wdGlvbiBtdXN0IGJlIG51bGxgCi0gICk7Ci19LCAiSWYgdGhlcmUg
aXMgbm8gc2VsZWN0ZWQgc2hpcHBpbmcgb3B0aW9uLCB0aGVuIFBheW1lbnRSZXF1ZXN0LnNoaXBw
aW5nT3B0aW9uIHJlbWFpbnMgbnVsbCIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7
Ci0gIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBw
aW5nT3B0aW9uLCB7Ci0gICAgc2VsZWN0ZWQ6IHRydWUsCi0gICAgaWQ6ICJ0aGUtaWQiLAotICB9
KTsKLSAgY29uc3Qgc2hpcHBpbmdPcHRpb25zID0gW3NlbGVjdGVkT3B0aW9uXTsKLSAgY29uc3Qg
ZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0
aW9ucyB9KTsKLSAgY29uc3QgcmVxdWVzdE5vU2hpcHBpbmdSZXF1ZXN0ZWQxID0gbmV3IFBheW1l
bnRSZXF1ZXN0KAotICAgIGRlZmF1bHRNZXRob2RzLAotICAgIGRldGFpbHMKLSAgKTsKLSAgYXNz
ZXJ0X2VxdWFscygKLSAgICByZXF1ZXN0Tm9TaGlwcGluZ1JlcXVlc3RlZDEuc2hpcHBpbmdPcHRp
b24sCi0gICAgbnVsbCwKLSAgICAiTXVzdCBiZSBudWxsIHdoZW4gbm8gc2hpcHBpbmcgaXMgcmVx
dWVzdGVkIChkZWZhdWx0cyB0byBmYWxzZSkiCi0gICk7Ci0gIGNvbnN0IHJlcXVlc3ROb1NoaXBw
aW5nUmVxdWVzdGVkMiA9IG5ldyBQYXltZW50UmVxdWVzdCgKLSAgICBkZWZhdWx0TWV0aG9kcywK
LSAgICBkZXRhaWxzLAotICAgIHsgcmVxdWVzdFNoaXBwaW5nOiBmYWxzZSB9Ci0gICk7Ci0gIGFz
c2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdE5vU2hpcHBpbmdSZXF1ZXN0ZWQyLnNoaXBwaW5nT3B0
aW9uLAotICAgIG51bGwsCi0gICAgIk11c3QgYmUgbnVsbCB3aGVuIHJlcXVlc3RTaGlwcGluZyBp
cyBmYWxzZSIKLSAgKTsKLSAgY29uc3QgcmVxdWVzdFdpdGhTaGlwcGluZyA9IG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgewotICAgIHJlcXVlc3RTaGlwcGluZzog
InRydXRoeSB2YWx1ZSIsCi0gIH0pOwotICBhc3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3RXaXRo
U2hpcHBpbmcuc2hpcHBpbmdPcHRpb24sCi0gICAgInRoZS1pZCIsCi0gICAgIlNlbGVjdGVkIG9w
dGlvbiBtdXN0IGJlICd0aGUtaWQnIgotICApOwotfSwgIklmIHRoZXJlIGlzIGEgc2VsZWN0ZWQg
c2hpcHBpbmcgb3B0aW9uLCBhbmQgcmVxdWVzdFNoaXBwaW5nIGlzIHNldCwgdGhlbiB0aGF0IG9w
dGlvbiBiZWNvbWVzIHN5bmNocm9ub3VzbHkgc2VsZWN0ZWQiKTsKLQotdGVzdCgoKSA9PiB7Ci0g
IHNtb2tlVGVzdCgpOwotICBjb25zdCBmYWlsT3B0aW9uMSA9IE9iamVjdC5hc3NpZ24oe30sIGRl
ZmF1bHRTaGlwcGluZ09wdGlvbiwgewotICAgIHNlbGVjdGVkOiB0cnVlLAotICAgIGlkOiAiRkFJ
TDEiLAotICB9KTsKLSAgY29uc3QgZmFpbE9wdGlvbjIgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZh
dWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICBzZWxlY3RlZDogZmFsc2UsCi0gICAgaWQ6ICJGQUlM
MiIsCi0gIH0pOwotICBjb25zdCBwYXNzT3B0aW9uID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVs
dFNoaXBwaW5nT3B0aW9uLCB7Ci0gICAgc2VsZWN0ZWQ6IHRydWUsCi0gICAgaWQ6ICJ0aGUtaWQi
LAotICB9KTsKLSAgY29uc3Qgc2hpcHBpbmdPcHRpb25zID0gW2ZhaWxPcHRpb24xLCBmYWlsT3B0
aW9uMiwgcGFzc09wdGlvbl07Ci0gIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBk
ZWZhdWx0RGV0YWlscywgeyBzaGlwcGluZ09wdGlvbnMgfSk7Ci0gIGNvbnN0IHJlcXVlc3ROb1No
aXBwaW5nID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7Ci0g
ICAgcmVxdWVzdFNoaXBwaW5nOiBmYWxzZSwKLSAgfSk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAg
cmVxdWVzdE5vU2hpcHBpbmcuc2hpcHBpbmdPcHRpb24sCi0gICAgbnVsbCwKLSAgICAic2hpcHBp
bmdPcHRpb24gbXVzdCBiZSBudWxsLCBhcyByZXF1ZXN0U2hpcHBpbmcgaXMgZmFsc2UiCi0gICk7
Ci0gIGNvbnN0IHJlcXVlc3RXaXRoU2hpcHBpbmcgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRldGFpbHMsIHsKLSAgICByZXF1ZXN0U2hpcHBpbmc6IHRydWUsCi0gIH0pOwot
ICBhc3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3RXaXRoU2hpcHBpbmcuc2hpcHBpbmdPcHRpb24s
Ci0gICAgInRoZS1pZCIsCi0gICAgInNlbGVjdGVkIG9wdGlvbiBtdXN0ICd0aGUtaWQiCi0gICk7
Ci19LCAiSWYgcmVxdWVzdFNoaXBwaW5nIGlzIHNldCwgYW5kIGlmIHRoZXJlIGlzIGEgbXVsdGlw
bGUgc2VsZWN0ZWQgc2hpcHBpbmcgb3B0aW9ucywgb25seSB0aGUgbGFzdCBpcyBzZWxlY3RlZC4i
KTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBjb25zdCBzZWxlY3RlZE9wdGlv
biA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgewotICAgIHNlbGVj
dGVkOiB0cnVlLAotICB9KTsKLSAgY29uc3QgdW5zZWxlY3RlZE9wdGlvbiA9IE9iamVjdC5hc3Np
Z24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgewotICAgIHNlbGVjdGVkOiBmYWxzZSwKLSAg
fSk7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtzZWxlY3RlZE9wdGlvbiwgdW5zZWxlY3Rl
ZE9wdGlvbl07Ci0gIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0
YWlscywgeyBzaGlwcGluZ09wdGlvbnMgfSk7Ci0gIGNvbnN0IHJlcXVlc3ROb1NoaXBwaW5nID0g
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAgYXNzZXJ0X2Vx
dWFscygKLSAgICByZXF1ZXN0Tm9TaGlwcGluZy5zaGlwcGluZ09wdGlvbiwKLSAgICBudWxsLAot
ICAgICJzaGlwcGluZ09wdGlvbiBtdXN0IGJlIG51bGwsIGJlY2F1c2UgcmVxdWVzdFNoaXBwaW5n
IGlzIGZhbHNlIgotICApOwotICBhc3NlcnRfdGhyb3dzKAotICAgIG5ldyBUeXBlRXJyb3IoKSwK
LSAgICAoKSA9PiB7Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
dGFpbHMsIHsgcmVxdWVzdFNoaXBwaW5nOiB0cnVlIH0pOwotICAgIH0sCi0gICAgIkV4cGVjdGVk
IHRvIHRocm93IGEgVHlwZUVycm9yIGJlY2F1c2UgZHVwbGljYXRlIElEcyIKLSAgKTsKLX0sICJJ
ZiB0aGVyZSBhcmUgYW55IGR1cGxpY2F0ZSBzaGlwcGluZyBvcHRpb24gaWRzLCBhbmQgc2hpcHBp
bmcgaXMgcmVxdWVzdGVkLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIik7Ci0KLXRlc3QoKCkgPT4g
ewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgZHVwU2hpcHBpbmcxID0gT2JqZWN0LmFzc2lnbih7
fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uLCB7Ci0gICAgc2VsZWN0ZWQ6IHRydWUsCi0gICAgaWQ6
ICJEVVBMSUNBVEUiLAotICAgIGxhYmVsOiAiRmFpbCAxIiwKLSAgfSk7Ci0gIGNvbnN0IGR1cFNo
aXBwaW5nMiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgewotICAg
IHNlbGVjdGVkOiBmYWxzZSwKLSAgICBpZDogIkRVUExJQ0FURSIsCi0gICAgbGFiZWw6ICJGYWls
IDIiLAotICB9KTsKLSAgY29uc3Qgc2hpcHBpbmdPcHRpb25zID0gW2R1cFNoaXBwaW5nMSwgZGVm
YXVsdFNoaXBwaW5nT3B0aW9uLCBkdXBTaGlwcGluZzJdOwotICBjb25zdCBkZXRhaWxzID0gT2Jq
ZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOwotICBj
b25zdCByZXF1ZXN0Tm9TaGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGV0YWlscyk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdE5vU2hpcHBpbmcuc2hp
cHBpbmdPcHRpb24sCi0gICAgbnVsbCwKLSAgICAic2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxs
LCBiZWNhdXNlIHJlcXVlc3RTaGlwcGluZyBpcyBmYWxzZSIKLSAgKTsKLSAgYXNzZXJ0X3Rocm93
cygKLSAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgKCkgPT4gewotICAgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9
KTsKLSAgICB9LAotICAgICJFeHBlY3RlZCB0byB0aHJvdyBhIFR5cGVFcnJvciBiZWNhdXNlIGR1
cGxpY2F0ZSBJRHMiCi0gICk7Ci19LCAiVGhyb3cgd2hlbiB0aGVyZSBhcmUgZHVwbGljYXRlIHNo
aXBwaW5nT3B0aW9uIGlkcywgZXZlbiBpZiBvdGhlciB2YWx1ZXMgYXJlIGRpZmZlcmVudCIpOwot
Ci0vLyBQcm9jZXNzIHBheW1lbnQgZGV0YWlscyBtb2RpZmllcnM6Ci10ZXN0KCgpID0+IHsKLSAg
c21va2VUZXN0KCk7Ci0gIGZvciAoY29uc3QgaW52YWxpZFRvdGFsIG9mIGludmFsaWRUb3RhbEFt
b3VudHMpIHsKLSAgICBjb25zdCBpbnZhbGlkTW9kaWZpZXIgPSB7Ci0gICAgICBzdXBwb3J0ZWRN
ZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICB0b3RhbDog
ewotICAgICAgICBsYWJlbDogIiIsCi0gICAgICAgIGFtb3VudDogewotICAgICAgICAgIGN1cnJl
bmN5OiAiVVNEIiwKLSAgICAgICAgICB2YWx1ZTogaW52YWxpZFRvdGFsLAotICAgICAgICB9LAot
ICAgICAgfSwKLSAgICB9OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBuZXcgVHlwZUVycm9y
KCksCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgewotICAgICAgICAgIG1vZGlmaWVyczogW2ludmFsaWRNb2RpZmllcl0sCi0gICAgICAg
ICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgICAgfSk7Ci0gICAgICB9LAotICAgICAgYEV4
cGVjdGVkIFR5cGVFcnJvciBmb3IgbW9kaWZpZXIudG90YWwuYW1vdW50LnZhbHVlOiAiJHtpbnZh
bGlkVG90YWx9ImAKLSAgICApOwotICB9Ci19LCBgVGhyb3cgVHlwZUVycm9yIGlmIG1vZGlmaWVy
LnRvdGFsLmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVl
YCk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgZm9yIChjb25zdCBpbnZhbGlk
QW1vdW50IG9mIGludmFsaWRBbW91bnRzKSB7Ci0gICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0g
ewotICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVl
c3QiLAotICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIGFkZGl0aW9uYWxEaXNwbGF5
SXRlbXM6IFsKLSAgICAgICAgewotICAgICAgICAgIGxhYmVsOiAiIiwKLSAgICAgICAgICBhbW91
bnQ6IHsKLSAgICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKLSAgICAgICAgICAgIHZhbHVlOiBp
bnZhbGlkQW1vdW50LAotICAgICAgICAgIH0sCi0gICAgICAgIH0sCi0gICAgICBdLAotICAgIH07
Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAgICAgIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAgICgpID0+
IHsKLSAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCB7Ci0gICAgICAg
ICAgbW9kaWZpZXJzOiBbaW52YWxpZE1vZGlmaWVyXSwKLSAgICAgICAgICB0b3RhbDogZGVmYXVs
dFRvdGFsLAotICAgICAgICB9KTsKLSAgICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgVHlwZUVycm9y
IHdoZW4gZ2l2ZW4gYm9ndXMgbW9kaWZpZXIuYWRkaXRpb25hbERpc3BsYXlJdGVtcy5hbW91bnQg
b2YgIiR7aW52YWxpZE1vZGlmaWVyfSJgCi0gICAgKTsKLSAgfQotfSwgYElmIGFtb3VudC52YWx1
ZSBvZiBhZGRpdGlvbmFsRGlzcGxheUl0ZW1zIGlzIG5vdCBhIHZhbGlkIGRlY2ltYWwgbW9uZXRh
cnkgdmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3JgKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNt
b2tlVGVzdCgpOwotICBjb25zdCBtb2RpZmllZERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBk
ZWZhdWx0RGV0YWlscywgewotICAgIG1vZGlmaWVyczogWwotICAgICAgewotICAgICAgICBzdXBw
b3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICAg
IGRhdGE6IFsic29tZS1kYXRhIl0sCi0gICAgICB9LAotICAgIF0sCi0gIH0pOwotICB0cnkgewot
ICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbW9kaWZpZWREZXRhaWxzKTsK
LSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgKLSAgICAgIGBVbmV4cGVj
dGVkIGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBnaXZlbiBhIGxpc3Q6ICR7ZXJyLm1lc3NhZ2V9YAot
ICAgICk7Ci0gIH0KLX0sICJNb2RpZmllciBkYXRhIG11c3QgYmUgSlNPTi1zZXJpYWxpemFibGUg
b2JqZWN0IChhbiBBcnJheSBpbiB0aGlzIGNhc2UpIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9r
ZVRlc3QoKTsKLSAgY29uc3QgbW9kaWZpZWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVm
YXVsdERldGFpbHMsIHsKLSAgICBtb2RpZmllcnM6IFsKLSAgICAgIHsKLSAgICAgICAgc3VwcG9y
dGVkTWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICAgICBk
YXRhOiB7Ci0gICAgICAgICAgc29tZTogImRhdGEiLAotICAgICAgICB9LAotICAgICAgfSwKLSAg
ICBdLAotICB9KTsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhv
ZHMsIG1vZGlmaWVkRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJl
YWNoZWQoCi0gICAgICBgc2hvdWxkbid0IHRocm93IHdoZW4gZ2l2ZW4gYW4gb2JqZWN0IHZhbHVl
OiAke2Vyci5tZXNzYWdlfWAKLSAgICApOwotICB9Ci19LCAiTW9kaWZpZXIgZGF0YSBtdXN0IGJl
IEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAoYW4gT2JqZWN0IGluIHRoaXMgY2FzZSkiKTsKLQot
dGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBjb25zdCByZWN1cnNpdmVEaWN0aW9uYXJ5
ID0ge307Ci0gIHJlY3Vyc2l2ZURpY3Rpb25hcnkuZm9vID0gcmVjdXJzaXZlRGljdGlvbmFyeTsK
LSAgY29uc3QgbW9kaWZpZWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFp
bHMsIHsKLSAgICBtb2RpZmllcnM6IFsKLSAgICAgIHsKLSAgICAgICAgc3VwcG9ydGVkTWV0aG9k
czogImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICAgICBkYXRhOiByZWN1
cnNpdmVEaWN0aW9uYXJ5LAotICAgICAgfSwKLSAgICBdLAotICB9KTsKLSAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIG1vZGlmaWVkRGV0YWlscyk7Ci0gIH0pOwotfSwgIlJldGhyb3cgYW55IGV4Y2Vw
dGlvbnMgb2YgSlNPTi1zZXJpYWxpemluZyBtb2RpZmllci5kYXRhIik7Ci0KLS8vU2V0dGluZyBT
aGlwcGluZ1R5cGUgYXR0cmlidXRlIGR1cmluZyBjb25zdHJ1Y3Rpb24KLXRlc3QoKCkgPT4gewot
ICBzbW9rZVRlc3QoKTsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsK
LSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7
Ci0gICAgICBzaGlwcGluZ1R5cGU6ICJpbnZhbGlkIiwKLSAgICB9KTsKLSAgfSk7Ci19LCAiU2hp
cHBpbmcgdHlwZSBzaG91bGQgYmUgdmFsaWQiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVz
dCgpOwotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscywge30pOwotICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Quc2hpcHBpbmdB
ZGRyZXNzLCBudWxsLCAibXVzdCBiZSBudWxsIik7Ci19LCAiUGF5bWVudFJlcXVlc3Quc2hpcHBp
bmdBZGRyZXNzIG11c3QgaW5pdGlhbGx5IGJlIG51bGwiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNt
b2tlVGVzdCgpOwotICBjb25zdCByZXF1ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHt9KTsKLSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0MS5z
aGlwcGluZ1R5cGUsIG51bGwsICJtdXN0IGJlIG51bGwiKTsKLSAgY29uc3QgcmVxdWVzdDIgPSBu
ZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7Ci0gICAg
cmVxdWVzdFNoaXBwaW5nOiBmYWxzZSwKLSAgfSk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVzdDIu
c2hpcHBpbmdUeXBlLCBudWxsLCAibXVzdCBiZSBudWxsIik7Ci19LCAiSWYgb3B0aW9ucy5yZXF1
ZXN0U2hpcHBpbmcgaXMgbm90IHNldCwgdGhlbiByZXF1ZXN0LnNoaXBwaW5nVHlwZSBhdHRyaWJ1
dGUgaXMgbnVsbC4iKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICAvLyBvcHRp
b24uc2hpcHBpbmdUeXBlIGRlZmF1bHRzIHRvICdzaGlwcGluZycKLSAgY29uc3QgcmVxdWVzdDEg
PSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7Ci0g
ICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAotICB9KTsKLSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0
MS5zaGlwcGluZ1R5cGUsICJzaGlwcGluZyIsICJtdXN0IGJlIHNoaXBwaW5nIik7Ci0gIGNvbnN0
IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0
YWlscywgewotICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwKLSAgICBzaGlwcGluZ1R5cGU6ICJk
ZWxpdmVyeSIsCi0gIH0pOwotICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QyLnNoaXBwaW5nVHlwZSwg
ImRlbGl2ZXJ5IiwgIm11c3QgYmUgZGVsaXZlcnkiKTsKLX0sICJJZiBvcHRpb25zLnJlcXVlc3RT
aGlwcGluZyBpcyB0cnVlLCByZXF1ZXN0LnNoaXBwaW5nVHlwZSB3aWxsIGJlIG9wdGlvbnMuc2hp
cHBpbmdUeXBlLiIpOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jb25zdHJ1Y3Rvci5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0
LWNvbnN0cnVjdG9yLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNjMGFhMjQ2
ZjRiYzk3NjlkMTZkZTg1ZmRlMzhkMmUwYjU5MWY4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci5odHRwcy5zdWItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMzIgQEAKKworUEFTUyBJZiBkZXRhaWxzLmlkIGlzIG1pc3NpbmcsIGFzc2lnbiBhbiBpZGVu
dGlmaWVyIAorUEFTUyBJZiBkZXRhaWxzLmlkIGlzIG1pc3NpbmcsIGFzc2lnbiBhIHVuaXF1ZSBp
ZGVudGlmaWVyIAorUEFTUyBJZiB0aGUgc2FtZSBpZCBpcyBwcm92aWRlZCwgdGhlbiB1c2UgaXQg
CitQQVNTIFVzZSBpZHMgZXZlbiBpZiB0aGV5IGFyZSBzdHJhbmdlIAorUEFTUyBVc2UgcHJvdmlk
ZWQgcmVxdWVzdCBJRCAKK1BBU1MgSWYgdGhlIGxlbmd0aCBvZiB0aGUgbWV0aG9kRGF0YSBzZXF1
ZW5jZSBpcyB6ZXJvLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIAorRkFJTCBJZiBwYXltZW50IG1l
dGhvZCBpcyBkdXBsaWNhdGUsIHRoZW4gdGhyb3cgYSBSYW5nZUVycm9yIGFzc2VydF90aHJvd3Nf
anM6IGZ1bmN0aW9uICIoKSA9PiBuZXcgUGF5bWVudFJlcXVlc3QoZHVwbGljYXRlTWV0aG9kcywg
ZGVmYXVsdERldGFpbHMpIiBkaWQgbm90IHRocm93CitQQVNTIE1vZGlmaWVyIG1ldGhvZCBkYXRh
IG11c3QgYmUgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0IAorUEFTUyBSZXRocm93IGFueSBleGNl
cHRpb25zIG9mIEpTT04tc2VyaWFsaXppbmcgcGF5bWVudE1ldGhvZC5kYXRhIGludG8gYSBzdHJp
bmcgCitQQVNTIElmIGRldGFpbHMudG90YWwuYW1vdW50LnZhbHVlIGlzIG5vdCBhIHZhbGlkIGRl
Y2ltYWwgbW9uZXRhcnkgdmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgCitQQVNTIFBheW1l
bnREZXRhaWxzQmFzZSBtZW1iZXJzIGNhbiBiZSAwIGxlbmd0aCAKK1BBU1MgSWYgdGhlIGZpcnN0
IGNoYXJhY3RlciBvZiBkZXRhaWxzLnRvdGFsLmFtb3VudC52YWx1ZSBpcyBVKzAwMkQgSFlQSEVO
LU1JTlVTLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIAorUEFTUyBGb3IgZWFjaCBpdGVtIGluIGRl
dGFpbHMuZGlzcGxheUl0ZW1zOiBpZiBpdGVtLmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBk
ZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIAorUEFTUyBOZWdh
dGl2ZSB2YWx1ZXMgYXJlIGFsbG93ZWQgZm9yIGRpc3BsYXlJdGVtcy5hbW91bnQudmFsdWUsIGly
cmVzcGVjdGl2ZSBvZiB0b3RhbCBhbW91bnQgCitQQVNTIGl0IGhhbmRsZXMgaGlnaCBwcmVjaXNp
b24gY3VycmVuY3kgdmFsdWVzIHdpdGhvdXQgdGhyb3dpbmcgCitQQVNTIEZvciBlYWNoIG9wdGlv
biBpbiBkZXRhaWxzLnNoaXBwaW5nT3B0aW9uczogaWYgb3B0aW9uLmFtb3VudC52YWx1ZSBpcyBu
b3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9y
IAorUEFTUyBJZiB0aGVyZSBpcyBubyBzZWxlY3RlZCBzaGlwcGluZyBvcHRpb24sIHRoZW4gUGF5
bWVudFJlcXVlc3Quc2hpcHBpbmdPcHRpb24gcmVtYWlucyBudWxsIAorUEFTUyBJZiB0aGVyZSBp
cyBhIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbiwgYW5kIHJlcXVlc3RTaGlwcGluZyBpcyBzZXQs
IHRoZW4gdGhhdCBvcHRpb24gYmVjb21lcyBzeW5jaHJvbm91c2x5IHNlbGVjdGVkIAorUEFTUyBJ
ZiByZXF1ZXN0U2hpcHBpbmcgaXMgc2V0LCBhbmQgaWYgdGhlcmUgaXMgYSBtdWx0aXBsZSBzZWxl
Y3RlZCBzaGlwcGluZyBvcHRpb25zLCBvbmx5IHRoZSBsYXN0IGlzIHNlbGVjdGVkLiAKK1BBU1Mg
SWYgdGhlcmUgYXJlIGFueSBkdXBsaWNhdGUgc2hpcHBpbmcgb3B0aW9uIGlkcywgYW5kIHNoaXBw
aW5nIGlzIHJlcXVlc3RlZCwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgVGhyb3cgd2hl
biB0aGVyZSBhcmUgZHVwbGljYXRlIHNoaXBwaW5nT3B0aW9uIGlkcywgZXZlbiBpZiBvdGhlciB2
YWx1ZXMgYXJlIGRpZmZlcmVudCAKK1BBU1MgVGhyb3cgVHlwZUVycm9yIGlmIG1vZGlmaWVyLnRv
dGFsLmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlIAor
UEFTUyBJZiBhbW91bnQudmFsdWUgb2YgYWRkaXRpb25hbERpc3BsYXlJdGVtcyBpcyBub3QgYSB2
YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIAorUEFT
UyBNb2RpZmllciBkYXRhIG11c3QgYmUgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0IChhbiBBcnJh
eSBpbiB0aGlzIGNhc2UpIAorUEFTUyBNb2RpZmllciBkYXRhIG11c3QgYmUgSlNPTi1zZXJpYWxp
emFibGUgb2JqZWN0IChhbiBPYmplY3QgaW4gdGhpcyBjYXNlKSAKK1BBU1MgUmV0aHJvdyBhbnkg
ZXhjZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6aW5nIG1vZGlmaWVyLmRhdGEgCitQQVNTIFNoaXBw
aW5nIHR5cGUgc2hvdWxkIGJlIHZhbGlkIAorUEFTUyBQYXltZW50UmVxdWVzdC5zaGlwcGluZ0Fk
ZHJlc3MgbXVzdCBpbml0aWFsbHkgYmUgbnVsbCAKK1BBU1MgSWYgb3B0aW9ucy5yZXF1ZXN0U2hp
cHBpbmcgaXMgbm90IHNldCwgdGhlbiByZXF1ZXN0LnNoaXBwaW5nVHlwZSBhdHRyaWJ1dGUgaXMg
bnVsbC4gCitQQVNTIElmIG9wdGlvbnMucmVxdWVzdFNoaXBwaW5nIGlzIHRydWUsIHJlcXVlc3Qu
c2hpcHBpbmdUeXBlIHdpbGwgYmUgb3B0aW9ucy5zaGlwcGluZ1R5cGUuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuc3ViLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIwYWQw
NjQ1NGY5MzMwYmE0MTE1YmZmMjk5MDY0N2I0N2FkYmQyZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci5odHRwcy5zdWIuaHRtbApAQCAtMCwwICsxLDY5
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE3IENocm9taXVtIGF1
dGhvcnMgYW5kIFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIChNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFUkNJTSwgS2VpbyBVbml2ZXJzaXR5LCBCZWloYW5nKS4gLS0+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VGVzdCBmb3IgUGF5bWVudFJlcXVlc3Qg
Q29uc3RydWN0b3I8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5n
aXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jY29uc3RydWN0b3IiPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3Ry
aWN0IjsKK2NvbnN0IHRlc3RNZXRob2QgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0
aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIs
Cit9KTsKK2NvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdGVzdE1ldGhvZF0p
OworY29uc3QgZGVmYXVsdEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIlVT
RCIsCisgIHZhbHVlOiAiMS4wIiwKK30pOworY29uc3QgZGVmYXVsdE51bWJlckFtb3VudCA9IE9i
amVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIlVTRCIsCisgIHZhbHVlOiAxLjAsCit9KTsKK2Nv
bnN0IGRlZmF1bHRUb3RhbCA9IE9iamVjdC5mcmVlemUoeworICBsYWJlbDogIkRlZmF1bHQgVG90
YWwiLAorICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCit9KTsKK2NvbnN0IGRlZmF1bHROdW1iZXJU
b3RhbCA9IE9iamVjdC5mcmVlemUoeworICBsYWJlbDogIkRlZmF1bHQgTnVtYmVyIFRvdGFsIiwK
KyAgYW1vdW50OiBkZWZhdWx0TnVtYmVyQW1vdW50LAorfSk7Citjb25zdCBkZWZhdWx0RGV0YWls
cyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICBkaXNwbGF5SXRl
bXM6IFsKKyAgICB7CisgICAgICBsYWJlbDogIkRlZmF1bHQgRGlzcGxheSBJdGVtIiwKKyAgICAg
IGFtb3VudDogZGVmYXVsdEFtb3VudCwKKyAgICB9LAorICBdLAorfSk7Citjb25zdCBkZWZhdWx0
TnVtYmVyRGV0YWlscyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogZGVmYXVsdE51bWJlclRv
dGFsLAorICBkaXNwbGF5SXRlbXM6IFsKKyAgICB7CisgICAgICBsYWJlbDogIkRlZmF1bHQgRGlz
cGxheSBJdGVtIiwKKyAgICAgIGFtb3VudDogZGVmYXVsdE51bWJlckFtb3VudCwKKyAgICB9LAor
ICBdLAorfSk7CisKKy8vIEF2b2lkIGZhbHNlIHBvc2l0aXZlcywgdGhpcyBzaG91bGQgYWx3YXlz
IHBhc3MKK2Z1bmN0aW9uIHNtb2tlVGVzdCgpIHsKKyAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGVmYXVsdE51bWJlckRldGFpbHMpOworfQordGVzdCgoKSA9PiB7CisgIHNtb2tl
VGVzdCgpOworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGFzc2VydF90cnVlKEJvb2xlYW4ocmVxdWVzdC5pZCks
ICJtdXN0IGJlIHNvbWUgdHJ1dGh5IHZhbHVlIik7Cit9LCAiSWYgZGV0YWlscy5pZCBpcyBtaXNz
aW5nLCBhc3NpZ24gYW4gaWRlbnRpZmllciIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0
KCk7CisgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGFzc2VydF9ub3RfZXF1YWxzKHJl
cXVlc3QxLmlkLCByZXF1ZXN0Mi5pZCwgIlVBIGdlbmVyYXRlZCBJRCBtdXN0IGJlIHVuaXF1ZSIp
OworICBjb25zdCBzZWVuID0gbmV3IFNldCgpOworICAvLyBMZXQncyB0cnkgY3JlYXRpbmcgbG90
cyBvZiByZXF1ZXN0cywgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhbGwgdW5pcXVlCisgIGZvciAo
bGV0IGkgPSAwOyBpIDwgMTAyNDsgaSsrKSB7CisgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgIGFzc2VydF9m
YWxzZSgKKyAgICAgIHNlZW4uaGFzKHJlcXVlc3QuaWQpLAorICAgICAgYFVBIGdlbmVyYXRlZCBJ
RCBtdXN0IGJlIHVuaXF1ZSwgYnV0IGdvdCBkdXBsaWNhdGUhICgke3JlcXVlc3QuaWR9KWAKKyAg
ICApOworICAgIHNlZW4uYWRkKHJlcXVlc3QuaWQpOworICB9Cit9LCAiSWYgZGV0YWlscy5pZCBp
cyBtaXNzaW5nLCBhc3NpZ24gYSB1bmlxdWUgaWRlbnRpZmllciIpOworCit0ZXN0KCgpID0+IHsK
KyAgc21va2VUZXN0KCk7CisgIGNvbnN0IG5ld0RldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBk
ZWZhdWx0RGV0YWlscywgeyBpZDogInRlc3QxMjMiIH0pOworICBjb25zdCByZXF1ZXN0MSA9IG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbmV3RGV0YWlscyk7CisgIGNvbnN0IHJl
cXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBuZXdEZXRhaWxzKTsK
KyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0MS5pZCwgbmV3RGV0YWlscy5pZCwgYGlkIG11c3QgYmUg
JHtuZXdEZXRhaWxzLmlkfWApOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QyLmlkLCBuZXdEZXRh
aWxzLmlkLCBgaWQgbXVzdCBiZSAke25ld0RldGFpbHMuaWR9YCk7CisgIGFzc2VydF9lcXVhbHMo
cmVxdWVzdDEuaWQsIHJlcXVlc3QyLmlkLCAiaWRzIG5lZWQgdG8gYmUgdGhlIHNhbWUiKTsKK30s
ICJJZiB0aGUgc2FtZSBpZCBpcyBwcm92aWRlZCwgdGhlbiB1c2UgaXQiKTsKKwordGVzdCgoKSA9
PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBuZXdEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7
fSwgZGVmYXVsdERldGFpbHMsIHsKKyAgICBpZDogIiIucGFkU3RhcnQoMTAyNCwgImEiKSwKKyAg
fSk7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IG5ld0RldGFpbHMpOworICBhc3NlcnRfZXF1YWxzKAorICAgIHJlcXVlc3QuaWQsCisgICAgbmV3
RGV0YWlscy5pZCwKKyAgICBgaWQgbXVzdCBiZSBwcm92aWRlZCB2YWx1ZSwgZXZlbiBpZiB2ZXJ5
IGxvbmcgYW5kIGNvbnRhaW4gc3BhY2VzYAorICApOworfSwgIlVzZSBpZHMgZXZlbiBpZiB0aGV5
IGFyZSBzdHJhbmdlIik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3Qg
cmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCgKKyAgICBkZWZhdWx0TWV0aG9kcywKKyAgICBP
YmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBpZDogImZvbyIgfSkKKyAgKTsKKyAg
YXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmlkLCAiZm9vIik7Cit9LCAiVXNlIHByb3ZpZGVkIHJlcXVl
c3QgSUQiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBhc3NlcnRfdGhyb3dz
X2pzKFR5cGVFcnJvciwgKCkgPT4gbmV3IFBheW1lbnRSZXF1ZXN0KFtdLCBkZWZhdWx0RGV0YWls
cykpOworfSwgIklmIHRoZSBsZW5ndGggb2YgdGhlIG1ldGhvZERhdGEgc2VxdWVuY2UgaXMgemVy
bywgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0
KCk7CisgIGNvbnN0IGR1cGxpY2F0ZU1ldGhvZHMgPSBbCisgICAgeworICAgICAgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVz
dCIsCisgICAgfSwKKyAgICB7CisgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2Rv
bWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICB9LAorICBdOworICBh
c3NlcnRfdGhyb3dzX2pzKFJhbmdlRXJyb3IsICgpID0+IG5ldyBQYXltZW50UmVxdWVzdChkdXBs
aWNhdGVNZXRob2RzLCBkZWZhdWx0RGV0YWlscykpOworfSwgIklmIHBheW1lbnQgbWV0aG9kIGlz
IGR1cGxpY2F0ZSwgdGhlbiB0aHJvdyBhIFJhbmdlRXJyb3IiKTsKKwordGVzdCgoKSA9PiB7Cisg
IHNtb2tlVGVzdCgpOworICBjb25zdCBKU09OU2VyaWFsaXphYmxlcyA9IFtbXSwgeyBvYmplY3Q6
IHt9IH1dOworICBmb3IgKGNvbnN0IGRhdGEgb2YgSlNPTlNlcmlhbGl6YWJsZXMpIHsKKyAgICB0
cnkgeworICAgICAgY29uc3QgbWV0aG9kcyA9IFsKKyAgICAgICAgeworICAgICAgICAgIHN1cHBv
cnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJl
cXVlc3QiLAorICAgICAgICAgIGRhdGEsCisgICAgICAgIH0sCisgICAgICBdOworICAgICAgbmV3
IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgICB9IGNhdGNoIChl
cnIpIHsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICAgIGBVbmV4cGVjdGVkIGVycm9y
IHBhcnNpbmcgc3RyaW5naWZpYWJsZSBKU09OOiAke0pTT04uc3RyaW5naWZ5KAorICAgICAgICAg
IGRhdGEKKyAgICAgICAgKX06ICR7ZXJyLm1lc3NhZ2V9YAorICAgICAgKTsKKyAgICB9CisgIH0K
K30sICJNb2RpZmllciBtZXRob2QgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVj
dCIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IHJlY3Vyc2l2ZURp
Y3Rpb25hcnkgPSB7fTsKKyAgcmVjdXJzaXZlRGljdGlvbmFyeS5mb28gPSByZWN1cnNpdmVEaWN0
aW9uYXJ5OworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4geworICAgIGNvbnN0
IG1ldGhvZHMgPSBbCisgICAgICB7CisgICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczov
L3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAgICAgICBkYXRh
OiByZWN1cnNpdmVEaWN0aW9uYXJ5LAorICAgICAgfSwKKyAgICBdOworICAgIG5ldyBQYXltZW50
UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIH0pOworICBhc3NlcnRfdGhyb3dz
X2pzKFR5cGVFcnJvciwgKCkgPT4geworICAgIGNvbnN0IG1ldGhvZHMgPSBbCisgICAgICB7Cisg
ICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19
fS9wYXltZW50LXJlcXVlc3QiLAorICAgICAgICBkYXRhOiAiYSBzdHJpbmciLAorICAgICAgfSwK
KyAgICBdOworICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7
CisgIH0pOworICBhc3NlcnRfdGhyb3dzX2pzKAorICAgIFR5cGVFcnJvciwKKyAgICAoKSA9PiB7
CisgICAgICBjb25zdCBtZXRob2RzID0gWworICAgICAgICB7CisgICAgICAgICAgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVz
dCIsCisgICAgICAgICAgZGF0YTogbnVsbCwKKyAgICAgICAgfSwKKyAgICAgIF07CisgICAgICBu
ZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgIH0sCisgICAg
IkV2ZW4gdGhvdWdoIG51bGwgaXMgSlNPTi1zZXJpYWxpemFibGUsIGl0J3Mgbm90IHR5cGUgJ09i
amVjdCcgcGVyIEVTIHNwZWMiCisgICk7Cit9LCAiUmV0aHJvdyBhbnkgZXhjZXB0aW9ucyBvZiBK
U09OLXNlcmlhbGl6aW5nIHBheW1lbnRNZXRob2QuZGF0YSBpbnRvIGEgc3RyaW5nIik7CisKKy8v
IHByb2Nlc3MgdG90YWwKK2NvbnN0IGludmFsaWRBbW91bnRzID0gWworICAiLSIsCisgICJub3Rk
aWdpdHMiLAorICAiQUxTT05PVERJR0lUUyIsCisgICIxMC4iLAorICAiLjk5IiwKKyAgIi0xMC4i
LAorICAiLS45OSIsCisgICIxMC0iLAorICAiMS0wIiwKKyAgIjEuMC4wIiwKKyAgIjEvMyIsCisg
ICIiLAorICBudWxsLAorICAiIDEuMCAgIiwKKyAgIiAxLjAgIiwKKyAgIjEuMCAiLAorICAiVVNE
JDEuMCIsCisgICIkMS4wIiwKKyAgeworICAgIHRvU3RyaW5nKCkgeworICAgICAgcmV0dXJuICIg
MS4wIjsKKyAgICB9LAorICB9LAorXTsKK2NvbnN0IGludmFsaWRUb3RhbEFtb3VudHMgPSBpbnZh
bGlkQW1vdW50cy5jb25jYXQoWworICAiLTEiLAorICAiLTEuMCIsCisgICItMS4wMCIsCisgICIt
MTAwMC4wMDAiLAorICAtMTAsCitdKTsKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAg
Zm9yIChjb25zdCBpbnZhbGlkQW1vdW50IG9mIGludmFsaWRUb3RhbEFtb3VudHMpIHsKKyAgICBj
b25zdCBpbnZhbGlkRGV0YWlscyA9IHsKKyAgICAgIHRvdGFsOiB7CisgICAgICAgIGxhYmVsOiAi
IiwKKyAgICAgICAgYW1vdW50OiB7CisgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAg
ICAgIHZhbHVlOiBpbnZhbGlkQW1vdW50LAorICAgICAgICB9LAorICAgICAgfSwKKyAgICB9Owor
ICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICBUeXBlRXJyb3IsCisgICAgICAoKSA9PiB7Cisg
ICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgaW52YWxpZERldGFpbHMp
OworICAgICAgfSwKKyAgICAgIGBFeHBlY3QgVHlwZUVycm9yIHdoZW4gZGV0YWlscy50b3RhbC5h
bW91bnQudmFsdWUgaXMgJHtpbnZhbGlkQW1vdW50fWAKKyAgICApOworICB9Cit9LCBgSWYgZGV0
YWlscy50b3RhbC5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2
YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvcmApOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VU
ZXN0KCk7CisgIGZvciAoY29uc3QgcHJvcCBpbiBbImRpc3BsYXlJdGVtcyIsICJzaGlwcGluZ09w
dGlvbnMiLCAibW9kaWZpZXJzIl0pIHsKKyAgICB0cnkgeworICAgICAgY29uc3QgZGV0YWlscyA9
IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IFtwcm9wXTogW10gfSk7CisgICAg
ICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOworICAgICAgYXNz
ZXJ0X3VucmVhY2hlZChgUGF5bWVudERldGFpbHNCYXNlLiR7cHJvcH0gY2FuIGJlIHplcm8gbGVu
Z3RoYCk7CisgICAgfSBjYXRjaCAoZXJyKSB7fQorICB9Cit9LCBgUGF5bWVudERldGFpbHNCYXNl
IG1lbWJlcnMgY2FuIGJlIDAgbGVuZ3RoYCk7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3Qo
KTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKKyAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIHsKKyAgICAgIHRvdGFsOiB7CisgICAgICAgIGxhYmVs
OiAiIiwKKyAgICAgICAgYW1vdW50OiB7CisgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAg
ICAgICAgIHZhbHVlOiAiLTEuMDAiLAorICAgICAgICB9LAorICAgICAgfSwKKyAgICB9KTsKKyAg
fSk7Cit9LCAiSWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBkZXRhaWxzLnRvdGFsLmFtb3VudC52
YWx1ZSBpcyBVKzAwMkQgSFlQSEVOLU1JTlVTLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIik7CisK
K3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgZm9yIChjb25zdCBpbnZhbGlkQW1vdW50
IG9mIGludmFsaWRBbW91bnRzKSB7CisgICAgY29uc3QgaW52YWxpZERldGFpbHMgPSB7CisgICAg
ICB0b3RhbDogZGVmYXVsdEFtb3VudCwKKyAgICAgIGRpc3BsYXlJdGVtczogWworICAgICAgICB7
CisgICAgICAgICAgbGFiZWw6ICIiLAorICAgICAgICAgIGFtb3VudDogeworICAgICAgICAgICAg
Y3VycmVuY3k6ICJVU0QiLAorICAgICAgICAgICAgdmFsdWU6IGludmFsaWRBbW91bnQsCisgICAg
ICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgIF0sCisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dz
X2pzKAorICAgICAgVHlwZUVycm9yLAorICAgICAgKCkgPT4geworICAgICAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGludmFsaWREZXRhaWxzKTsKKyAgICAgIH0sCisgICAg
ICBgRXhwZWN0ZWQgVHlwZUVycm9yIHdoZW4gaXRlbS5hbW91bnQudmFsdWUgaXMgIiR7aW52YWxp
ZEFtb3VudH0iYAorICAgICk7CisgIH0KK30sIGBGb3IgZWFjaCBpdGVtIGluIGRldGFpbHMuZGlz
cGxheUl0ZW1zOiBpZiBpdGVtLmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1v
bmV0YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yYCk7CisKK3Rlc3QoKCkgPT4gewor
ICBzbW9rZVRlc3QoKTsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoCisgICAgICBb
CisgICAgICAgIHsKKyAgICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFp
bnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAgICAgfSwKKyAgICAgIF0s
CisgICAgICB7CisgICAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAgICAgIGRpc3BsYXlJ
dGVtczogWworICAgICAgICAgIHsKKyAgICAgICAgICAgIGxhYmVsOiAiIiwKKyAgICAgICAgICAg
IGFtb3VudDogeworICAgICAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICAgICAgICAg
IHZhbHVlOiAiLTEwMDAiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICB9LAorICAgICAgICAg
IHsKKyAgICAgICAgICAgIGxhYmVsOiAiIiwKKyAgICAgICAgICAgIGFtb3VudDogeworICAgICAg
ICAgICAgICBjdXJyZW5jeTogIkFVRCIsCisgICAgICAgICAgICAgIHZhbHVlOiAiLTIwMDAuMDAi
LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICB9LAorICAgICAgICBdLAorICAgICAgfQorICAg
ICk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICBgc2hv
dWxkbid0IHRocm93IHdoZW4gZ2l2ZW4gYSBuZWdhdGl2ZSB2YWx1ZTogJHtlcnIubWVzc2FnZX1g
CisgICAgKTsKKyAgfQorfSwgIk5lZ2F0aXZlIHZhbHVlcyBhcmUgYWxsb3dlZCBmb3IgZGlzcGxh
eUl0ZW1zLmFtb3VudC52YWx1ZSwgaXJyZXNwZWN0aXZlIG9mIHRvdGFsIGFtb3VudCIpOworCit0
ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IGxhcmdlTW9uZXkgPSAiMSIucmVw
ZWF0KDUxMCk7CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCB7CisgICAgICB0b3RhbDogeworICAgICAgICBsYWJlbDogIiIsCisgICAgICAgIGFtb3VudDog
eworICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICB2YWx1ZTogYCR7bGFyZ2VN
b25leX0uJHtsYXJnZU1vbmV5fWAsCisgICAgICAgIH0sCisgICAgICB9LAorICAgICAgZGlzcGxh
eUl0ZW1zOiBbCisgICAgICAgIHsKKyAgICAgICAgICBsYWJlbDogIiIsCisgICAgICAgICAgYW1v
dW50OiB7CisgICAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICAgICAgICB2YWx1ZTog
YC0ke2xhcmdlTW9uZXl9YCwKKyAgICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgbGFiZWw6ICIiLAorICAgICAgICAgIGFtb3VudDogeworICAgICAgICAgICAgY3Vy
cmVuY3k6ICJBVUQiLAorICAgICAgICAgICAgdmFsdWU6IGAtJHtsYXJnZU1vbmV5fS4ke2xhcmdl
TW9uZXl9YCwKKyAgICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgXSwKKyAgICB9KTsKKyAg
fSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgIGBzaG91bGRuJ3Qg
dGhyb3cgd2hlbiBnaXZlbiBhYnN1cmQgbW9uZXRhcnkgdmFsdWVzOiAke2Vyci5tZXNzYWdlfWAK
KyAgICApOworICB9Cit9LCAiaXQgaGFuZGxlcyBoaWdoIHByZWNpc2lvbiBjdXJyZW5jeSB2YWx1
ZXMgd2l0aG91dCB0aHJvd2luZyIpOworCisvLyBQcm9jZXNzIHNoaXBwaW5nIG9wdGlvbnM6CisK
K2NvbnN0IGRlZmF1bHRTaGlwcGluZ09wdGlvbiA9IE9iamVjdC5mcmVlemUoeworICBpZDogImRl
ZmF1bHQiLAorICBsYWJlbDogIiIsCisgIGFtb3VudDogZGVmYXVsdEFtb3VudCwKKyAgc2VsZWN0
ZWQ6IGZhbHNlLAorfSk7Citjb25zdCBkZWZhdWx0U2hpcHBpbmdPcHRpb25zID0gT2JqZWN0LmZy
ZWV6ZShbCisgIE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiksCitdKTsK
KwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBmb3IgKGNvbnN0IGFtb3VudCBvZiBp
bnZhbGlkQW1vdW50cykgeworICAgIGNvbnN0IGludmFsaWRBbW91bnQgPSBPYmplY3QuYXNzaWdu
KHt9LCBkZWZhdWx0QW1vdW50LCB7CisgICAgICB2YWx1ZTogYW1vdW50LAorICAgIH0pOworICAg
IGNvbnN0IGludmFsaWRTaGlwcGluZ09wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRT
aGlwcGluZ09wdGlvbiwgeworICAgICAgYW1vdW50OiBpbnZhbGlkQW1vdW50LAorICAgIH0pOwor
ICAgIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgewor
ICAgICAgc2hpcHBpbmdPcHRpb25zOiBbaW52YWxpZFNoaXBwaW5nT3B0aW9uXSwKKyAgICB9KTsK
KyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgVHlwZUVycm9yLAorICAgICAgKCkgPT4gewor
ICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsgcmVx
dWVzdFNoaXBwaW5nOiB0cnVlIH0pOworICAgICAgfSwKKyAgICAgIGBFeHBlY3RlZCBUeXBlRXJy
b3IgZm9yIG9wdGlvbi5hbW91bnQudmFsdWU6ICIke2Ftb3VudH0iYAorICAgICk7CisgIH0KK30s
IGBGb3IgZWFjaCBvcHRpb24gaW4gZGV0YWlscy5zaGlwcGluZ09wdGlvbnM6IGlmIG9wdGlvbi5h
bW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0
aHJvdyBhIFR5cGVFcnJvcmApOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNv
bnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtkZWZhdWx0U2hpcHBpbmdPcHRpb25dOworICBjb25zdCBk
ZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRp
b25zIH0pOworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBkZXRhaWxzKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0LnNoaXBwaW5nT3B0
aW9uLAorICAgIG51bGwsCisgICAgInNoaXBwaW5nT3B0aW9uIG11c3QgYmUgbnVsbCwgYXMgcmVx
dWVzdFNoaXBwaW5nIGlzIG1pc3NpbmciCisgICk7CisgIC8vIGRlZmF1bHREZXRhaWxzIGxhY2tz
IHNoaXBwaW5nIG9wdGlvbnMKKyAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7CisgICAgcmVxdWVzdFNoaXBwaW5nOiB0
cnVlLAorICB9KTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0Mi5zaGlwcGluZ09wdGlv
biwKKyAgICBudWxsLAorICAgIGByZXF1ZXN0Mi5zaGlwcGluZ09wdGlvbiBtdXN0IGJlIG51bGxg
CisgICk7Cit9LCAiSWYgdGhlcmUgaXMgbm8gc2VsZWN0ZWQgc2hpcHBpbmcgb3B0aW9uLCB0aGVu
IFBheW1lbnRSZXF1ZXN0LnNoaXBwaW5nT3B0aW9uIHJlbWFpbnMgbnVsbCIpOworCit0ZXN0KCgp
ID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gT2JqZWN0LmFz
c2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uLCB7CisgICAgc2VsZWN0ZWQ6IHRydWUsCisg
ICAgaWQ6ICJ0aGUtaWQiLAorICB9KTsKKyAgY29uc3Qgc2hpcHBpbmdPcHRpb25zID0gW3NlbGVj
dGVkT3B0aW9uXTsKKyAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRE
ZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKKyAgY29uc3QgcmVxdWVzdE5vU2hpcHBpbmdS
ZXF1ZXN0ZWQxID0gbmV3IFBheW1lbnRSZXF1ZXN0KAorICAgIGRlZmF1bHRNZXRob2RzLAorICAg
IGRldGFpbHMKKyAgKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0Tm9TaGlwcGluZ1Jl
cXVlc3RlZDEuc2hpcHBpbmdPcHRpb24sCisgICAgbnVsbCwKKyAgICAiTXVzdCBiZSBudWxsIHdo
ZW4gbm8gc2hpcHBpbmcgaXMgcmVxdWVzdGVkIChkZWZhdWx0cyB0byBmYWxzZSkiCisgICk7Cisg
IGNvbnN0IHJlcXVlc3ROb1NoaXBwaW5nUmVxdWVzdGVkMiA9IG5ldyBQYXltZW50UmVxdWVzdCgK
KyAgICBkZWZhdWx0TWV0aG9kcywKKyAgICBkZXRhaWxzLAorICAgIHsgcmVxdWVzdFNoaXBwaW5n
OiBmYWxzZSB9CisgICk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdE5vU2hpcHBpbmdS
ZXF1ZXN0ZWQyLnNoaXBwaW5nT3B0aW9uLAorICAgIG51bGwsCisgICAgIk11c3QgYmUgbnVsbCB3
aGVuIHJlcXVlc3RTaGlwcGluZyBpcyBmYWxzZSIKKyAgKTsKKyAgY29uc3QgcmVxdWVzdFdpdGhT
aGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgewor
ICAgIHJlcXVlc3RTaGlwcGluZzogInRydXRoeSB2YWx1ZSIsCisgIH0pOworICBhc3NlcnRfZXF1
YWxzKAorICAgIHJlcXVlc3RXaXRoU2hpcHBpbmcuc2hpcHBpbmdPcHRpb24sCisgICAgInRoZS1p
ZCIsCisgICAgIlNlbGVjdGVkIG9wdGlvbiBtdXN0IGJlICd0aGUtaWQnIgorICApOworfSwgIklm
IHRoZXJlIGlzIGEgc2VsZWN0ZWQgc2hpcHBpbmcgb3B0aW9uLCBhbmQgcmVxdWVzdFNoaXBwaW5n
IGlzIHNldCwgdGhlbiB0aGF0IG9wdGlvbiBiZWNvbWVzIHN5bmNocm9ub3VzbHkgc2VsZWN0ZWQi
KTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBmYWlsT3B0aW9uMSA9
IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgeworICAgIHNlbGVjdGVk
OiB0cnVlLAorICAgIGlkOiAiRkFJTDEiLAorICB9KTsKKyAgY29uc3QgZmFpbE9wdGlvbjIgPSBP
YmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKKyAgICBzZWxlY3RlZDog
ZmFsc2UsCisgICAgaWQ6ICJGQUlMMiIsCisgIH0pOworICBjb25zdCBwYXNzT3B0aW9uID0gT2Jq
ZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uLCB7CisgICAgc2VsZWN0ZWQ6IHRy
dWUsCisgICAgaWQ6ICJ0aGUtaWQiLAorICB9KTsKKyAgY29uc3Qgc2hpcHBpbmdPcHRpb25zID0g
W2ZhaWxPcHRpb24xLCBmYWlsT3B0aW9uMiwgcGFzc09wdGlvbl07CisgIGNvbnN0IGRldGFpbHMg
PSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBzaGlwcGluZ09wdGlvbnMgfSk7
CisgIGNvbnN0IHJlcXVlc3ROb1NoaXBwaW5nID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRN
ZXRob2RzLCBkZXRhaWxzLCB7CisgICAgcmVxdWVzdFNoaXBwaW5nOiBmYWxzZSwKKyAgfSk7Cisg
IGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdE5vU2hpcHBpbmcuc2hpcHBpbmdPcHRpb24sCisg
ICAgbnVsbCwKKyAgICAic2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxsLCBhcyByZXF1ZXN0U2hp
cHBpbmcgaXMgZmFsc2UiCisgICk7CisgIGNvbnN0IHJlcXVlc3RXaXRoU2hpcHBpbmcgPSBuZXcg
UGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsKKyAgICByZXF1ZXN0U2hp
cHBpbmc6IHRydWUsCisgIH0pOworICBhc3NlcnRfZXF1YWxzKAorICAgIHJlcXVlc3RXaXRoU2hp
cHBpbmcuc2hpcHBpbmdPcHRpb24sCisgICAgInRoZS1pZCIsCisgICAgInNlbGVjdGVkIG9wdGlv
biBtdXN0ICd0aGUtaWQiCisgICk7Cit9LCAiSWYgcmVxdWVzdFNoaXBwaW5nIGlzIHNldCwgYW5k
IGlmIHRoZXJlIGlzIGEgbXVsdGlwbGUgc2VsZWN0ZWQgc2hpcHBpbmcgb3B0aW9ucywgb25seSB0
aGUgbGFzdCBpcyBzZWxlY3RlZC4iKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOwor
ICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGlu
Z09wdGlvbiwgeworICAgIHNlbGVjdGVkOiB0cnVlLAorICB9KTsKKyAgY29uc3QgdW5zZWxlY3Rl
ZE9wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgeworICAg
IHNlbGVjdGVkOiBmYWxzZSwKKyAgfSk7CisgIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtzZWxl
Y3RlZE9wdGlvbiwgdW5zZWxlY3RlZE9wdGlvbl07CisgIGNvbnN0IGRldGFpbHMgPSBPYmplY3Qu
YXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBzaGlwcGluZ09wdGlvbnMgfSk7CisgIGNvbnN0
IHJlcXVlc3ROb1NoaXBwaW5nID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBk
ZXRhaWxzKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0Tm9TaGlwcGluZy5zaGlwcGlu
Z09wdGlvbiwKKyAgICBudWxsLAorICAgICJzaGlwcGluZ09wdGlvbiBtdXN0IGJlIG51bGwsIGJl
Y2F1c2UgcmVxdWVzdFNoaXBwaW5nIGlzIGZhbHNlIgorICApOworICBhc3NlcnRfdGhyb3dzX2pz
KAorICAgIFR5cGVFcnJvciwKKyAgICAoKSA9PiB7CisgICAgICBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsgcmVxdWVzdFNoaXBwaW5nOiB0cnVlIH0pOworICAg
IH0sCisgICAgIkV4cGVjdGVkIHRvIHRocm93IGEgVHlwZUVycm9yIGJlY2F1c2UgZHVwbGljYXRl
IElEcyIKKyAgKTsKK30sICJJZiB0aGVyZSBhcmUgYW55IGR1cGxpY2F0ZSBzaGlwcGluZyBvcHRp
b24gaWRzLCBhbmQgc2hpcHBpbmcgaXMgcmVxdWVzdGVkLCB0aGVuIHRocm93IGEgVHlwZUVycm9y
Iik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgZHVwU2hpcHBpbmcx
ID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uLCB7CisgICAgc2VsZWN0
ZWQ6IHRydWUsCisgICAgaWQ6ICJEVVBMSUNBVEUiLAorICAgIGxhYmVsOiAiRmFpbCAxIiwKKyAg
fSk7CisgIGNvbnN0IGR1cFNoaXBwaW5nMiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlw
cGluZ09wdGlvbiwgeworICAgIHNlbGVjdGVkOiBmYWxzZSwKKyAgICBpZDogIkRVUExJQ0FURSIs
CisgICAgbGFiZWw6ICJGYWlsIDIiLAorICB9KTsKKyAgY29uc3Qgc2hpcHBpbmdPcHRpb25zID0g
W2R1cFNoaXBwaW5nMSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uLCBkdXBTaGlwcGluZzJdOworICBj
b25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBp
bmdPcHRpb25zIH0pOworICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZyA9IG5ldyBQYXltZW50UmVx
dWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVx
dWVzdE5vU2hpcHBpbmcuc2hpcHBpbmdPcHRpb24sCisgICAgbnVsbCwKKyAgICAic2hpcHBpbmdP
cHRpb24gbXVzdCBiZSBudWxsLCBiZWNhdXNlIHJlcXVlc3RTaGlwcGluZyBpcyBmYWxzZSIKKyAg
KTsKKyAgYXNzZXJ0X3Rocm93c19qcygKKyAgICBUeXBlRXJyb3IsCisgICAgKCkgPT4geworICAg
ICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RT
aGlwcGluZzogdHJ1ZSB9KTsKKyAgICB9LAorICAgICJFeHBlY3RlZCB0byB0aHJvdyBhIFR5cGVF
cnJvciBiZWNhdXNlIGR1cGxpY2F0ZSBJRHMiCisgICk7Cit9LCAiVGhyb3cgd2hlbiB0aGVyZSBh
cmUgZHVwbGljYXRlIHNoaXBwaW5nT3B0aW9uIGlkcywgZXZlbiBpZiBvdGhlciB2YWx1ZXMgYXJl
IGRpZmZlcmVudCIpOworCisvLyBQcm9jZXNzIHBheW1lbnQgZGV0YWlscyBtb2RpZmllcnM6Cit0
ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGZvciAoY29uc3QgaW52YWxpZFRvdGFsIG9m
IGludmFsaWRUb3RhbEFtb3VudHMpIHsKKyAgICBjb25zdCBpbnZhbGlkTW9kaWZpZXIgPSB7Cisg
ICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0v
cGF5bWVudC1yZXF1ZXN0IiwKKyAgICAgIHRvdGFsOiB7CisgICAgICAgIGxhYmVsOiAiIiwKKyAg
ICAgICAgYW1vdW50OiB7CisgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgICAgIHZh
bHVlOiBpbnZhbGlkVG90YWwsCisgICAgICAgIH0sCisgICAgICB9LAorICAgIH07CisgICAgYXNz
ZXJ0X3Rocm93c19qcygKKyAgICAgIFR5cGVFcnJvciwKKyAgICAgICgpID0+IHsKKyAgICAgICAg
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCB7CisgICAgICAgICAgbW9kaWZpZXJz
OiBbaW52YWxpZE1vZGlmaWVyXSwKKyAgICAgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAg
ICAgICB9KTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0ZWQgVHlwZUVycm9yIGZvciBtb2RpZmll
ci50b3RhbC5hbW91bnQudmFsdWU6ICIke2ludmFsaWRUb3RhbH0iYAorICAgICk7CisgIH0KK30s
IGBUaHJvdyBUeXBlRXJyb3IgaWYgbW9kaWZpZXIudG90YWwuYW1vdW50LnZhbHVlIGlzIG5vdCBh
IHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkgdmFsdWVgKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tl
VGVzdCgpOworICBmb3IgKGNvbnN0IGludmFsaWRBbW91bnQgb2YgaW52YWxpZEFtb3VudHMpIHsK
KyAgICBjb25zdCBpbnZhbGlkTW9kaWZpZXIgPSB7CisgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAi
aHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAg
IHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAgICBhZGRpdGlvbmFsRGlzcGxheUl0ZW1zOiBbCisg
ICAgICAgIHsKKyAgICAgICAgICBsYWJlbDogIiIsCisgICAgICAgICAgYW1vdW50OiB7CisgICAg
ICAgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICAgICAgICB2YWx1ZTogaW52YWxpZEFtb3Vu
dCwKKyAgICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgXSwKKyAgICB9OworICAgIGFzc2Vy
dF90aHJvd3NfanMoCisgICAgICBUeXBlRXJyb3IsCisgICAgICAoKSA9PiB7CisgICAgICAgIG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgeworICAgICAgICAgIG1vZGlmaWVyczog
W2ludmFsaWRNb2RpZmllcl0sCisgICAgICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAg
ICAgfSk7CisgICAgICB9LAorICAgICAgYEV4cGVjdGVkIFR5cGVFcnJvciB3aGVuIGdpdmVuIGJv
Z3VzIG1vZGlmaWVyLmFkZGl0aW9uYWxEaXNwbGF5SXRlbXMuYW1vdW50IG9mICIke2ludmFsaWRN
b2RpZmllcn0iYAorICAgICk7CisgIH0KK30sIGBJZiBhbW91bnQudmFsdWUgb2YgYWRkaXRpb25h
bERpc3BsYXlJdGVtcyBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVu
IHRocm93IGEgVHlwZUVycm9yYCk7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAg
Y29uc3QgbW9kaWZpZWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMs
IHsKKyAgICBtb2RpZmllcnM6IFsKKyAgICAgIHsKKyAgICAgICAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAg
ICAgIGRhdGE6IFsic29tZS1kYXRhIl0sCisgICAgICB9LAorICAgIF0sCisgIH0pOworICB0cnkg
eworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbW9kaWZpZWREZXRhaWxz
KTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgIGBVbmV4
cGVjdGVkIGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBnaXZlbiBhIGxpc3Q6ICR7ZXJyLm1lc3NhZ2V9
YAorICAgICk7CisgIH0KK30sICJNb2RpZmllciBkYXRhIG11c3QgYmUgSlNPTi1zZXJpYWxpemFi
bGUgb2JqZWN0IChhbiBBcnJheSBpbiB0aGlzIGNhc2UpIik7CisKK3Rlc3QoKCkgPT4geworICBz
bW9rZVRlc3QoKTsKKyAgY29uc3QgbW9kaWZpZWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMsIHsKKyAgICBtb2RpZmllcnM6IFsKKyAgICAgIHsKKyAgICAgICAgc3Vw
cG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQt
cmVxdWVzdCIsCisgICAgICAgIGRhdGE6IHsKKyAgICAgICAgICBzb21lOiAiZGF0YSIsCisgICAg
ICAgIH0sCisgICAgICB9LAorICAgIF0sCisgIH0pOworICB0cnkgeworICAgIG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbW9kaWZpZWREZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJy
KSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgIGBzaG91bGRuJ3QgdGhyb3cgd2hlbiBn
aXZlbiBhbiBvYmplY3QgdmFsdWU6ICR7ZXJyLm1lc3NhZ2V9YAorICAgICk7CisgIH0KK30sICJN
b2RpZmllciBkYXRhIG11c3QgYmUgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0IChhbiBPYmplY3Qg
aW4gdGhpcyBjYXNlKSIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0
IHJlY3Vyc2l2ZURpY3Rpb25hcnkgPSB7fTsKKyAgcmVjdXJzaXZlRGljdGlvbmFyeS5mb28gPSBy
ZWN1cnNpdmVEaWN0aW9uYXJ5OworICBjb25zdCBtb2RpZmllZERldGFpbHMgPSBPYmplY3QuYXNz
aWduKHt9LCBkZWZhdWx0RGV0YWlscywgeworICAgIG1vZGlmaWVyczogWworICAgICAgeworICAg
ICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0v
cGF5bWVudC1yZXF1ZXN0IiwKKyAgICAgICAgZGF0YTogcmVjdXJzaXZlRGljdGlvbmFyeSwKKyAg
ICAgIH0sCisgICAgXSwKKyAgfSk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9
PiB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBtb2RpZmllZERldGFp
bHMpOworICB9KTsKK30sICJSZXRocm93IGFueSBleGNlcHRpb25zIG9mIEpTT04tc2VyaWFsaXpp
bmcgbW9kaWZpZXIuZGF0YSIpOworCisvL1NldHRpbmcgU2hpcHBpbmdUeXBlIGF0dHJpYnV0ZSBk
dXJpbmcgY29uc3RydWN0aW9uCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGFzc2Vy
dF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRl
ZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgeworICAgICAgc2hpcHBpbmdUeXBlOiAiaW52
YWxpZCIsCisgICAgfSk7CisgIH0pOworfSwgIlNoaXBwaW5nIHR5cGUgc2hvdWxkIGJlIHZhbGlk
Iik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHt9KTsKKyAg
YXNzZXJ0X2VxdWFscyhyZXF1ZXN0LnNoaXBwaW5nQWRkcmVzcywgbnVsbCwgIm11c3QgYmUgbnVs
bCIpOworfSwgIlBheW1lbnRSZXF1ZXN0LnNoaXBwaW5nQWRkcmVzcyBtdXN0IGluaXRpYWxseSBi
ZSBudWxsIik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgcmVxdWVz
dDEgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7
fSk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdDEuc2hpcHBpbmdUeXBlLCBudWxsLCAibXVzdCBi
ZSBudWxsIik7CisgIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRN
ZXRob2RzLCBkZWZhdWx0RGV0YWlscywgeworICAgIHJlcXVlc3RTaGlwcGluZzogZmFsc2UsCisg
IH0pOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QyLnNoaXBwaW5nVHlwZSwgbnVsbCwgIm11c3Qg
YmUgbnVsbCIpOworfSwgIklmIG9wdGlvbnMucmVxdWVzdFNoaXBwaW5nIGlzIG5vdCBzZXQsIHRo
ZW4gcmVxdWVzdC5zaGlwcGluZ1R5cGUgYXR0cmlidXRlIGlzIG51bGwuIik7CisKK3Rlc3QoKCkg
PT4geworICBzbW9rZVRlc3QoKTsKKyAgLy8gb3B0aW9uLnNoaXBwaW5nVHlwZSBkZWZhdWx0cyB0
byAnc2hpcHBpbmcnCisgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgeworICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwK
KyAgfSk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdDEuc2hpcHBpbmdUeXBlLCAic2hpcHBpbmci
LCAibXVzdCBiZSBzaGlwcGluZyIpOworICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVx
dWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHsKKyAgICByZXF1ZXN0U2hpcHBp
bmc6IHRydWUsCisgICAgc2hpcHBpbmdUeXBlOiAiZGVsaXZlcnkiLAorICB9KTsKKyAgYXNzZXJ0
X2VxdWFscyhyZXF1ZXN0Mi5zaGlwcGluZ1R5cGUsICJkZWxpdmVyeSIsICJtdXN0IGJlIGRlbGl2
ZXJ5Iik7Cit9LCAiSWYgb3B0aW9ucy5yZXF1ZXN0U2hpcHBpbmcgaXMgdHJ1ZSwgcmVxdWVzdC5z
aGlwcGluZ1R5cGUgd2lsbCBiZSBvcHRpb25zLnNoaXBwaW5nVHlwZS4iKTsKKworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1jdXJyZW5jeS1jb2RlLWNoZWNr
cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVj
a3MuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0MTY4M2JlYjUx
NWQ1YTlkNjA3YjFmZWFhZjUzNDRkNzU1NmUxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1jdXJyZW5jeS1jb2Rl
LWNoZWNrcy5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzM5ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPlRlc3QgY3VycmVuY3kg
Y29kZSB1c2FnZSBpbiBQYXltZW50UmVxdWVzdCBDb25zdHJ1Y3RvcjwvdGl0bGU+Ci08bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9icm93c2VyLXBheW1lbnQtYXBp
LyNjb25zdHJ1Y3RvciI+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBbCi0gIE9iamVjdC5m
cmVlemUoewotICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkiLAotICB9KSwK
LV07Ci1jb25zdCBkZWZhdWx0QW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGN1cnJlbmN5OiAi
VVNEIiwKLSAgdmFsdWU6ICIxLjAwIiwKLX0pOwotY29uc3QgZGVmYXVsdFRvdGFsID0gT2JqZWN0
LmZyZWV6ZSh7Ci0gIGxhYmVsOiAiVG90YWwiLAotICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi19
KTsKLQotY29uc3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKLSAgdG90YWw6IE9i
amVjdC5mcmVlemUoewotICAgIGxhYmVsOiAiIiwKLSAgICBhbW91bnQ6IGRlZmF1bHRBbW91bnQs
Ci0gIH0pLAotfSk7Ci0KLS8vIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBzYW1lIHNldCBvZiB2YWxp
ZC9pbnZhbGlkIGNvZGVzIHRoYXQgYXJlIHVzZWQgaW4KLS8vIHRoZSBFQ01BU2NyaXB0IEludGVy
bmF0aW9uYWxpemF0aW9uIEFQSSBTcGVjaWZpY2F0aW9uIChFQ01BLTQwMikgdGVzdCBzdWl0ZS4K
LWNvbnN0IHdlbGxGb3JtZWRDdXJyZW5jeUNvZGVzID0gWwotICAiQk9CIiwKLSAgIkVVUiIsCi0g
ICJ1c2QiLCAvLyBjdXJyZW5jeSBjb2RlcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZQotICAiWGRSIiwK
LSAgInhUcyIsCi1dOwotCi1jb25zdCBpbnZhbGlkQ3VycmVuY3lDb2RlcyA9IFsKLSAgIiIsCi0g
ICLigqwiLAotICAiJCIsCi0gICJTRnIuIiwKLSAgIkRNIiwKLSAgIktS4oKpIiwKLSAgIjcwMiIs
Ci0gICLDn1AiLAotICAixLFuciIsCi1dOwotCi1jb25zdCBSQU5HRV9FUlJPUiA9IG5ldyBSYW5n
ZUVycm9yKCk7Ci0KLWNvbnN0IGludmFsaWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKLSAgY3Vy
cmVuY3k6ICLCoUlOVkFMSUQhIiwKLSAgdmFsdWU6ICIxLjAwIiwKLX0pOwotCi1jb25zdCBpbnZh
bGlkVG90YWwgPSB7Ci0gIHRvdGFsOiB7Ci0gICAgbGFiZWw6ICJJbnZhbGlkIHRvdGFsIiwKLSAg
ICBhbW91bnQ6IGludmFsaWRBbW91bnQsCi0gIH0sCi19OwotCi0vLyBFbnN1cmUgd2UgZG9uJ3Qg
Z2V0IGZhbHNlIHBvc2l0aXZlcwotZnVuY3Rpb24gc21va2VUZXN0KCkgewotICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGludmFsaWRUb3RhbCk7Ci19Ci0KLS8vIFByb2Nlc3Mg
dGhlIHRvdGFsOgotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNt
b2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29uc3Qg
dmFsaWRDdXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3VycmVuY3lDb2RlcykgewotICAgIGNvbnN0IGFt
b3VudCA9IHsKLSAgICAgIGN1cnJlbmN5OiB2YWxpZEN1cnJlbmN5LAotICAgICAgdmFsdWU6ICIx
LjAwIiwKLSAgICB9OwotICAgIGNvbnN0IHRvdGFsID0gewotICAgICAgbGFiZWw6ICJUb3RhbCIs
Ci0gICAgICBhbW91bnQsCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90
YWwsCi0gICAgfTsKLSAgICB0cnkgewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRN
ZXRob2RzLCBkZXRhaWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJl
YWNoZWQoCi0gICAgICAgIGBVbmV4cGVjdGVkIGV4Y2VwdGlvbiBmb3IgZGV0YWlscy50b3RhbC5h
bW91bnQgIiR7dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5tZXNzYWdlfWAKLSAgICAgICk7Ci0gICAg
fQotICB9Ci19LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSB2YWxpZCBkZXRhaWxzLnRvdGFsLmFt
b3VudCIpOwotCi10ZXN0KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhSQU5HRV9FUlJPUiwgc21v
a2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKLSAgZm9yIChjb25zdCBp
bnZhbGlkQ3VycmVuY3kgb2YgaW52YWxpZEN1cnJlbmN5Q29kZXMpIHsKLSAgICBjb25zdCBhbW91
bnQgPSB7Ci0gICAgICBjdXJyZW5jeTogaW52YWxpZEN1cnJlbmN5LAotICAgICAgdmFsdWU6ICIx
LjAwIiwKLSAgICB9OwotICAgIGNvbnN0IHRvdGFsID0gewotICAgICAgbGFiZWw6ICJUb3RhbCIs
Ci0gICAgICBhbW91bnQsCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90
YWwsCi0gICAgfTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgUkFOR0VfRVJST1IsCi0gICAg
ICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0
YWlscyk7Ci0gICAgICB9LAotICAgICAgYEV4cGVjdGVkIFJhbmdlRXJyb3IgZm9yIGRldGFpbHMu
dG90YWwuYW1vdW50IGdpdmVuICgiJHtpbnZhbGlkQ3VycmVuY3l9IikuYAotICAgICk7Ci0gIH0K
LX0sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgZGV0YWlscy50b3RhbC5hbW91bnQg
YW5kIHJldGhyb3cgYW55IGV4Y2VwdGlvbnMuIik7Ci0KLS8vIElmIHRoZSBkaXNwbGF5SXRlbXMg
bWVtYmVyIG9mIGRldGFpbHMgaXMgcHJlc2VudCwgdGhlbiBmb3IgZWFjaCBpdGVtIGluIGRldGFp
bHMuZGlzcGxheUl0ZW1zOgotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJS
T1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGNvbnN0
IGRpc3BsYXlJdGVtcyA9IFtdOwotICBmb3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Ygd2VsbEZv
cm1lZEN1cnJlbmN5Q29kZXMpIHsKLSAgICBjb25zdCBhbW91bnQgPSB7Ci0gICAgICBjdXJyZW5j
eTogdmFsaWRDdXJyZW5jeSwKLSAgICAgIHZhbHVlOiAiMTIzIiwKLSAgICB9OwotICAgIGNvbnN0
IGRpc3BsYXlJdGVtID0gewotICAgICAgYW1vdW50LAotICAgICAgbGFiZWw6ICJ2YWxpZCBjdXJy
ZW5jeSIsCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6IGRlZmF1
bHRUb3RhbCwKLSAgICAgIGRpc3BsYXlJdGVtczogW2Rpc3BsYXlJdGVtXSwKLSAgICB9OwotICAg
IHRyeSB7Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMp
OwotICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKLSAgICAgICAg
YFVuZXhwZWN0ZWQgZXJyb3Igd2l0aCBkaXNwbGF5SXRlbSB0aGF0IGhhZCBhIHZhbGlkIGN1cnJl
bmN5ICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCi0gICAgICApOwotICAgIH0K
LSAgICBkaXNwbGF5SXRlbXMucHVzaChkaXNwbGF5SXRlbSk7Ci0gIH0KLSAgLy8gTGV0J3MgbWFr
ZSBzdXJlIGl0IGRvZXNuJ3QgdGhyb3cgZ2l2ZW4gYSBsaXN0IG9mIHZhbGlkIGRpc3BsYXlJdGVt
cwotICB0cnkgewotICAgIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0
RGV0YWlscywgeyBkaXNwbGF5SXRlbXMgfSk7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVh
Y2hlZCgKLSAgICAgIGBVbmV4cGVjdGVkIGVycm9yIHdpdGggbXVsdGlwbGUgdmFsaWQgZGlzcGxh
eUl0ZW1zOiAke2Vyci5tZXNzYWdlfWAKLSAgICApOwotICB9Ci19LCAiQ2hlY2sgYW5kIGNhbm9u
aWNhbGl6ZSB2YWxpZCBkZXRhaWxzLmRpc3BsYXlJdGVtcyBhbW91bnQiKTsKLQotdGVzdCgoKSA9
PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNt
b2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGlu
dmFsaWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYW1vdW50ID0gewotICAgICAgY3VycmVu
Y3k6IGludmFsaWRDdXJyZW5jeSwKLSAgICAgIHZhbHVlOiAiMTIzIiwKLSAgICB9OwotICAgIGNv
bnN0IGRpc3BsYXlJdGVtID0gewotICAgICAgYW1vdW50LAotICAgICAgbGFiZWw6ICJpbnZhbGlk
IGN1cnJlbmN5IiwKLSAgICB9OwotICAgIGNvbnN0IGRldGFpbHMgPSB7Ci0gICAgICB0b3RhbDog
ZGVmYXVsdFRvdGFsLAotICAgICAgZGlzcGxheUl0ZW1zOiBbZGlzcGxheUl0ZW1dLAotICAgIH07
Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAgICAgIFJBTkdFX0VSUk9SLAotICAgICAgKCkgPT4gewot
ICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOwotICAg
ICAgfSwKLSAgICAgIGBFeHBlY3RlZCBSYW5nZUVycm9yIHdpdGggaW52YWxpZCBkaXNwbGF5SXRl
bSBjdXJyZW5jeSAiJHtpbnZhbGlkQ3VycmVuY3l9Ii5gCi0gICAgKTsKLSAgfQotfSwgIkNoZWNr
IGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLmRpc3BsYXlJdGVtcyBhbW91bnQgYW5k
IHJldGhyb3cgUmFuZ2VFcnJvci4iKTsKLQotLy8gUHJvY2VzcyBzaGlwcGluZyBvcHRpb25zOgot
dGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4
cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9
IFtdOwotICBmb3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Ygd2VsbEZvcm1lZEN1cnJlbmN5Q29k
ZXMpIHsKLSAgICBjb25zdCBzaGlwcGluZ09wdGlvbiA9IHsKLSAgICAgIGlkOiBgdGVzdGAgKyBN
YXRoLnJhbmRvbSgpLAotICAgICAgbGFiZWw6ICJzaGlwcGluZyBvcHRpb24iLAotICAgICAgYW1v
dW50OiB7IGN1cnJlbmN5OiB2YWxpZEN1cnJlbmN5LCB2YWx1ZTogIjUuMDAiIH0sCi0gICAgICBz
ZWxlY3RlZDogIXNoaXBwaW5nT3B0aW9ucy5sZW5ndGgsCi0gICAgfTsKLSAgICBjb25zdCBkZXRh
aWxzID0gewotICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIHNoaXBwaW5nT3B0aW9u
czogW3NoaXBwaW5nT3B0aW9uXSwKLSAgICB9OwotICAgIHRyeSB7Ci0gICAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsgcmVxdWVzdFNoaXBwaW5nOiB0cnVl
IH0pOwotICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKLSAgICAg
ICAgYFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdpdGggdmFsaWQgc2hpcHBpbmdPcHRpb24gY3VycmVu
Y3kgY29kZSAiJHt2YWxpZEN1cnJlbmN5fSI6ICR7ZXJyLm1lc3NhZ2V9LmAKLSAgICAgICk7Ci0g
ICAgfQotICAgIHNoaXBwaW5nT3B0aW9ucy5wdXNoKHNoaXBwaW5nT3B0aW9uKTsKLSAgfQotICB0
cnkgewotICAgIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWls
cywgeyBzaGlwcGluZ09wdGlvbnMgfSk7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRN
ZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKLSAgfSBjYXRjaCAo
ZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgKLSAgICAgIGBVbmV4cGVjdGVkIGVycm9yIHdp
dGggbXVsdGlwbGUgdmFsaWQgc2hwcGluZ09wdGlvbnM6ICR7ZXJyLm1lc3NhZ2V9LmAKLSAgICAp
OwotICB9Ci19LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSB2YWxpZCBkZXRhaWxzLnNoaXBwaW5n
T3B0aW9ucyBhbW91bnQuIik7Ci0KLXRlc3QoKCkgPT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdF
X0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBm
b3IgKGNvbnN0IGludmFsaWRDdXJyZW5jeSBvZiBpbnZhbGlkQ3VycmVuY3lDb2RlcykgewotICAg
IGNvbnN0IHNoaXBwaW5nT3B0aW9uID0gewotICAgICAgaWQ6ICJ0ZXN0IiwKLSAgICAgIGxhYmVs
OiAic2hpcHBpbmcgb3B0aW9uIiwKLSAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogaW52YWxpZEN1
cnJlbmN5LCB2YWx1ZTogIjUuMDAiIH0sCi0gICAgICBzZWxlY3RlZDogdHJ1ZSwKLSAgICB9Owot
ICAgIGNvbnN0IGRldGFpbHMgPSB7Ci0gICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAotICAgICAg
c2hpcHBpbmdPcHRpb25zOiBbc2hpcHBpbmdPcHRpb25dLAotICAgIH07Ci0gICAgYXNzZXJ0X3Ro
cm93cygKLSAgICAgIFJBTkdFX0VSUk9SLAotICAgICAgKCkgPT4gewotICAgICAgICBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsgcmVxdWVzdFNoaXBwaW5nOiB0
cnVlIH0pOwotICAgICAgfSwKLSAgICAgIGBFeHBlY3RlZCBSYW5nZUVycm9yIHdpdGggaW52YWxp
ZCBzaGlwcGluZ09wdGlvbiBjdXJyZW5jeSBjb2RlICIke2ludmFsaWRDdXJyZW5jeX0iLmAKLSAg
ICApOwotICB9Ci19LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIGRldGFpbHMuc2hp
cHBpbmdPcHRpb25zIGFtb3VudCBhbmQgcmV0aHJvdyBSYW5nZUVycm9yLiIpOwotCi0vLyBQcm9j
ZXNzIHBheW1lbnQgZGV0YWlscyBtb2RpZmllcnM6Ci10ZXN0KCgpID0+IHsKLSAgYXNzZXJ0X3Ro
cm93cyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJv
dy4iKTsKLSAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxGb3JtZWRDdXJyZW5jeUNv
ZGVzKSB7Ci0gICAgY29uc3QgbW9kaWZpZXIgPSB7Ci0gICAgICBzdXBwb3J0ZWRNZXRob2RzOiAi
aHR0cHM6Ly93cHQuZnlpIiwKLSAgICAgIHRvdGFsOiB7Ci0gICAgICAgIGxhYmVsOiAiVG90YWwg
ZHVlIiwKLSAgICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiB2YWxpZEN1cnJlbmN5LCB2YWx1ZTog
IjY4LjAwIiB9LAotICAgICAgfSwKLSAgICB9OwotICAgIGNvbnN0IGRldGFpbHMgPSB7Ci0gICAg
ICB0b3RhbDogZGVmYXVsdFRvdGFsLAotICAgICAgbW9kaWZpZXJzOiBbbW9kaWZpZXJdLAotICAg
IH07Ci0gICAgdHJ5IHsKLSAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywg
ZGV0YWlscyk7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKAot
ICAgICAgICBgVW5leHBlY3RlZCBlcnJvciB3aXRoIHZhbGlkIG1vZGlmaWVyIGN1cnJlbmN5IGNv
ZGUgIiR7dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5tZXNzYWdlfWAKLSAgICAgICk7Ci0gICAgfQot
ICB9Ci19LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSB2YWxpZCBtb2RpZmllcnNbbl0udG90YWwg
YW1vdW50LiIpOwotCi10ZXN0KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhSQU5HRV9FUlJPUiwg
c21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKLSAgZm9yIChjb25z
dCBpbnZhbGlkQ3VycmVuY3kgb2YgaW52YWxpZEN1cnJlbmN5Q29kZXMpIHsKLSAgICBjb25zdCBt
b2RpZmllciA9IHsKLSAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkiLAot
ICAgICAgdG90YWw6IHsKLSAgICAgICAgbGFiZWw6ICJUb3RhbCBkdWUiLAotICAgICAgICBhbW91
bnQ6IHsgY3VycmVuY3k6IGludmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI2OC4wMCIgfSwKLSAgICAg
IH0sCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6IGRlZmF1bHRU
b3RhbCwKLSAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKLSAgICB9OwotICAgIGFzc2VydF90
aHJvd3MoCi0gICAgICBSQU5HRV9FUlJPUiwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3IFBh
eW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIH0sCi0gICAgICBg
RXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgbW9kaWZpZXIgY3VycmVuY3kgY29kZSAi
JHtpbnZhbGlkQ3VycmVuY3l9Ii5gCi0gICAgKTsKLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmlj
YWxpemUgaW52YWxpZCBtb2RpZmllcnNbbl0udG90YWwgYW1vdW50IGFuZCByZXRocm93IFJhbmdl
RXJyb3IuIik7Ci0KLS8vIFByb2Nlc3MgcGF5bWVudCBkZXRhaWxzIG1vZGlmaWVyczoKLXRlc3Qo
KCkgPT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3Rl
ZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBmb3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Yg
d2VsbEZvcm1lZEN1cnJlbmN5Q29kZXMpIHsKLSAgICBjb25zdCBhZGRpdGlvbmFsSXRlbSA9IHsK
LSAgICAgIGxhYmVsOiAiYWRkaXRpb25hbEl0ZW0iLAotICAgICAgYW1vdW50OiB7IGN1cnJlbmN5
OiB2YWxpZEN1cnJlbmN5LCB2YWx1ZTogIjMuMDAiIH0sCi0gICAgfTsKLSAgICBjb25zdCBtb2Rp
ZmllciA9IHsKLSAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkiLAotICAg
ICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXM6IFth
ZGRpdGlvbmFsSXRlbV0sCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90
YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKLSAgICB9Owot
ICAgIHRyeSB7Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFp
bHMpOwotICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKLSAgICAg
ICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0aCB2YWxpZCBhZGRpdGlvbmFsRGlzcGxheUl0ZW1zW25d
IGN1cnJlbmN5IGNvZGUgIiR7dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5tZXNzYWdlfWAKLSAgICAg
ICk7Ci0gICAgfQotICB9Ci19LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSB2YWxpZCBtb2RpZmll
cnNbbl0uYWRkaXRpb25hRGlzcGxheUl0ZW0gYW1vdW50LiIpOwotCi10ZXN0KCgpID0+IHsKLSAg
YXNzZXJ0X3Rocm93cyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVz
dCB0byB0aHJvdy4iKTsKLSAgZm9yIChjb25zdCBpbnZhbGlkQ3VycmVuY3kgb2YgaW52YWxpZEN1
cnJlbmN5Q29kZXMpIHsKLSAgICBjb25zdCBhZGRpdGlvbmFsSXRlbSA9IHsKLSAgICAgIGxhYmVs
OiAiYWRkaXRpb25hbEl0ZW0iLAotICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiBpbnZhbGlkQ3Vy
cmVuY3ksIHZhbHVlOiAiMy4wMCIgfSwKLSAgICB9OwotICAgIGNvbnN0IG1vZGlmaWVyID0gewot
ICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aSIsCi0gICAgICB0b3RhbDog
ZGVmYXVsdFRvdGFsLAotICAgICAgYWRkaXRpb25hbERpc3BsYXlJdGVtczogW2FkZGl0aW9uYWxJ
dGVtXSwKLSAgICB9OwotICAgIGNvbnN0IGRldGFpbHMgPSB7Ci0gICAgICB0b3RhbDogZGVmYXVs
dFRvdGFsLAotICAgICAgbW9kaWZpZXJzOiBbbW9kaWZpZXJdLAotICAgIH07Ci0gICAgYXNzZXJ0
X3Rocm93cygKLSAgICAgIFJBTkdFX0VSUk9SLAotICAgICAgKCkgPT4gewotICAgICAgICBuZXcg
UGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgfSwKLSAgICAg
IGBFeHBlY3RlZCBSYW5nZUVycm9yIHdpdGggaW52YWxpZCBhZGRpdGlvbmFsRGlzcGxheUl0ZW1z
W25dIGN1cnJlbmN5IGNvZGUgIiR7aW52YWxpZEN1cnJlbmN5fSIuYAotICAgICk7Ci0gIH0KLX0s
ICJDaGVjayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgbW9kaWZpZXJzW25dLmFkZGl0aW9uYURp
c3BsYXlJdGVtIGFtb3VudCBhbmQgcmV0aHJvdyBSYW5nZUVycm9yLiIpOwotPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1jdXJyZW5jeS1jb2RlLWNoZWNrcy5o
dHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3kt
Y29kZS1jaGVja3MuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTQ1MTZhNGVi
MDc4ZWM4OGJjMjNkNjI2MWJmNDdmNDRkYzY2OWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACisKK1BBU1MgQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSB2YWxp
ZCBkZXRhaWxzLnRvdGFsLmFtb3VudCAKK1BBU1MgQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBpbnZh
bGlkIGRldGFpbHMudG90YWwuYW1vdW50IGFuZCByZXRocm93IGFueSBleGNlcHRpb25zLiAKK1BB
U1MgQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSB2YWxpZCBkZXRhaWxzLmRpc3BsYXlJdGVtcyBhbW91
bnQgCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLmRpc3BsYXlJ
dGVtcyBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4gCitQQVNTIENoZWNrIGFuZCBjYW5v
bmljYWxpemUgdmFsaWQgZGV0YWlscy5zaGlwcGluZ09wdGlvbnMgYW1vdW50LiAKK1BBU1MgQ2hl
Y2sgYW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIGRldGFpbHMuc2hpcHBpbmdPcHRpb25zIGFtb3Vu
dCBhbmQgcmV0aHJvdyBSYW5nZUVycm9yLiAKK1BBU1MgQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSB2
YWxpZCBtb2RpZmllcnNbbl0udG90YWwgYW1vdW50LiAKK1BBU1MgQ2hlY2sgYW5kIGNhbm9uaWNh
bGl6ZSBpbnZhbGlkIG1vZGlmaWVyc1tuXS50b3RhbCBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VF
cnJvci4gCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgbW9kaWZpZXJzW25dLmFk
ZGl0aW9uYURpc3BsYXlJdGVtIGFtb3VudC4gCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUg
aW52YWxpZCBtb2RpZmllcnNbbl0uYWRkaXRpb25hRGlzcGxheUl0ZW0gYW1vdW50IGFuZCByZXRo
cm93IFJhbmdlRXJyb3IuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1j
dXJyZW5jeS1jb2RlLWNoZWNrcy5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1j
dG9yLWN1cnJlbmN5LWNvZGUtY2hlY2tzLmh0dHBzLnN1Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0Y2Ey
YTBjNDBiMzliM2M5MjIzNDNhOWE3NDM0MWI2OWEzMzg0NTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtY3Rvci1jdXJyZW5jeS1jb2RlLWNoZWNrcy5odHRwcy5zdWIuaHRt
bApAQCAtMCwwICsxLDMzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+VGVzdCBjdXJyZW5jeSBjb2RlIHVzYWdlIGluIFBheW1lbnRSZXF1ZXN0IENv
bnN0cnVjdG9yPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCBkZWZh
dWx0TWV0aG9kcyA9IFsKKyAgT2JqZWN0LmZyZWV6ZSh7CisgICAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19IiwKKyAgfSksCitdOworY29uc3QgZGVm
YXVsdEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIlVTRCIsCisgIHZhbHVl
OiAiMS4wMCIsCit9KTsKK2NvbnN0IGRlZmF1bHRUb3RhbCA9IE9iamVjdC5mcmVlemUoeworICBs
YWJlbDogIlRvdGFsIiwKKyAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAorfSk7CisKK2NvbnN0IGRl
ZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiBPYmplY3QuZnJlZXplKHsK
KyAgICBsYWJlbDogIiIsCisgICAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAorICB9KSwKK30pOwor
CisvLyBUaGUgZm9sbG93aW5nIGFyZSB0aGUgc2FtZSBzZXQgb2YgdmFsaWQvaW52YWxpZCBjb2Rl
cyB0aGF0IGFyZSB1c2VkIGluCisvLyB0aGUgRUNNQVNjcmlwdCBJbnRlcm5hdGlvbmFsaXphdGlv
biBBUEkgU3BlY2lmaWNhdGlvbiAoRUNNQS00MDIpIHRlc3Qgc3VpdGUuCitjb25zdCB3ZWxsRm9y
bWVkQ3VycmVuY3lDb2RlcyA9IFsKKyAgIkJPQiIsCisgICJFVVIiLAorICAidXNkIiwgLy8gY3Vy
cmVuY3kgY29kZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUKKyAgIlhkUiIsCisgICJ4VHMiLAorXTsK
KworY29uc3QgaW52YWxpZEN1cnJlbmN5Q29kZXMgPSBbCisgICIiLAorICAi4oKsIiwKKyAgIiQi
LAorICAiU0ZyLiIsCisgICJETSIsCisgICJLUuKCqSIsCisgICI3MDIiLAorICAiw59QIiwKKyAg
IsSxbnIiLAorXTsKKworY29uc3QgUkFOR0VfRVJST1IgPSBSYW5nZUVycm9yOworCitjb25zdCBp
bnZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CisgIGN1cnJlbmN5OiAiwqFJTlZBTElEISIs
CisgIHZhbHVlOiAiMS4wMCIsCit9KTsKKworY29uc3QgaW52YWxpZFRvdGFsID0geworICB0b3Rh
bDogeworICAgIGxhYmVsOiAiSW52YWxpZCB0b3RhbCIsCisgICAgYW1vdW50OiBpbnZhbGlkQW1v
dW50LAorICB9LAorfTsKKworLy8gRW5zdXJlIHdlIGRvbid0IGdldCBmYWxzZSBwb3NpdGl2ZXMK
K2Z1bmN0aW9uIHNtb2tlVGVzdCgpIHsKKyAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBpbnZhbGlkVG90YWwpOworfQorCisvLyBQcm9jZXNzIHRoZSB0b3RhbDoKK3Rlc3QoKCkg
PT4geworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3Rl
ZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Yg
d2VsbEZvcm1lZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25zdCBhbW91bnQgPSB7CisgICAgICBj
dXJyZW5jeTogdmFsaWRDdXJyZW5jeSwKKyAgICAgIHZhbHVlOiAiMS4wMCIsCisgICAgfTsKKyAg
ICBjb25zdCB0b3RhbCA9IHsKKyAgICAgIGxhYmVsOiAiVG90YWwiLAorICAgICAgYW1vdW50LAor
ICAgIH07CisgICAgY29uc3QgZGV0YWlscyA9IHsKKyAgICAgIHRvdGFsLAorICAgIH07CisgICAg
dHJ5IHsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7
CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBg
VW5leHBlY3RlZCBleGNlcHRpb24gZm9yIGRldGFpbHMudG90YWwuYW1vdW50ICIke3ZhbGlkQ3Vy
cmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCisgICAgICApOworICAgIH0KKyAgfQorfSwgIkNoZWNr
IGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy50b3RhbC5hbW91bnQiKTsKKwordGVzdCgo
KSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVj
dGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7CisgIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5
IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7CisgICAgY29uc3QgYW1vdW50ID0geworICAgICAg
Y3VycmVuY3k6IGludmFsaWRDdXJyZW5jeSwKKyAgICAgIHZhbHVlOiAiMS4wMCIsCisgICAgfTsK
KyAgICBjb25zdCB0b3RhbCA9IHsKKyAgICAgIGxhYmVsOiAiVG90YWwiLAorICAgICAgYW1vdW50
LAorICAgIH07CisgICAgY29uc3QgZGV0YWlscyA9IHsKKyAgICAgIHRvdGFsLAorICAgIH07Cisg
ICAgYXNzZXJ0X3Rocm93c19qcygKKyAgICAgIFJBTkdFX0VSUk9SLAorICAgICAgKCkgPT4gewor
ICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOworICAg
ICAgfSwKKyAgICAgIGBFeHBlY3RlZCBSYW5nZUVycm9yIGZvciBkZXRhaWxzLnRvdGFsLmFtb3Vu
dCBnaXZlbiAoIiR7aW52YWxpZEN1cnJlbmN5fSIpLmAKKyAgICApOworICB9Cit9LCAiQ2hlY2sg
YW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIGRldGFpbHMudG90YWwuYW1vdW50IGFuZCByZXRocm93
IGFueSBleGNlcHRpb25zLiIpOworCisvLyBJZiB0aGUgZGlzcGxheUl0ZW1zIG1lbWJlciBvZiBk
ZXRhaWxzIGlzIHByZXNlbnQsIHRoZW4gZm9yIGVhY2ggaXRlbSBpbiBkZXRhaWxzLmRpc3BsYXlJ
dGVtczoKK3Rlc3QoKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9r
ZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBjb25zdCBkaXNwbGF5
SXRlbXMgPSBbXTsKKyAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxGb3JtZWRDdXJy
ZW5jeUNvZGVzKSB7CisgICAgY29uc3QgYW1vdW50ID0geworICAgICAgY3VycmVuY3k6IHZhbGlk
Q3VycmVuY3ksCisgICAgICB2YWx1ZTogIjEyMyIsCisgICAgfTsKKyAgICBjb25zdCBkaXNwbGF5
SXRlbSA9IHsKKyAgICAgIGFtb3VudCwKKyAgICAgIGxhYmVsOiAidmFsaWQgY3VycmVuY3kiLAor
ICAgIH07CisgICAgY29uc3QgZGV0YWlscyA9IHsKKyAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWws
CisgICAgICBkaXNwbGF5SXRlbXM6IFtkaXNwbGF5SXRlbV0sCisgICAgfTsKKyAgICB0cnkgewor
ICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICB9
IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICAgIGBVbmV4cGVj
dGVkIGVycm9yIHdpdGggZGlzcGxheUl0ZW0gdGhhdCBoYWQgYSB2YWxpZCBjdXJyZW5jeSAiJHt2
YWxpZEN1cnJlbmN5fSI6ICR7ZXJyLm1lc3NhZ2V9YAorICAgICAgKTsKKyAgICB9CisgICAgZGlz
cGxheUl0ZW1zLnB1c2goZGlzcGxheUl0ZW0pOworICB9CisgIC8vIExldCdzIG1ha2Ugc3VyZSBp
dCBkb2Vzbid0IHRocm93IGdpdmVuIGEgbGlzdCBvZiB2YWxpZCBkaXNwbGF5SXRlbXMKKyAgdHJ5
IHsKKyAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMs
IHsgZGlzcGxheUl0ZW1zIH0pOworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoCisg
ICAgICBgVW5leHBlY3RlZCBlcnJvciB3aXRoIG11bHRpcGxlIHZhbGlkIGRpc3BsYXlJdGVtczog
JHtlcnIubWVzc2FnZX1gCisgICAgKTsKKyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUg
dmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1vdW50Iik7CisKK3Rlc3QoKCkgPT4geworICBh
c3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0
ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IGludmFsaWRDdXJyZW5jeSBvZiBpbnZhbGlk
Q3VycmVuY3lDb2RlcykgeworICAgIGNvbnN0IGFtb3VudCA9IHsKKyAgICAgIGN1cnJlbmN5OiBp
bnZhbGlkQ3VycmVuY3ksCisgICAgICB2YWx1ZTogIjEyMyIsCisgICAgfTsKKyAgICBjb25zdCBk
aXNwbGF5SXRlbSA9IHsKKyAgICAgIGFtb3VudCwKKyAgICAgIGxhYmVsOiAiaW52YWxpZCBjdXJy
ZW5jeSIsCisgICAgfTsKKyAgICBjb25zdCBkZXRhaWxzID0geworICAgICAgdG90YWw6IGRlZmF1
bHRUb3RhbCwKKyAgICAgIGRpc3BsYXlJdGVtczogW2Rpc3BsYXlJdGVtXSwKKyAgICB9OworICAg
IGFzc2VydF90aHJvd3NfanMoCisgICAgICBSQU5HRV9FUlJPUiwKKyAgICAgICgpID0+IHsKKyAg
ICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAg
IH0sCisgICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgZGlzcGxheUl0ZW0g
Y3VycmVuY3kgIiR7aW52YWxpZEN1cnJlbmN5fSIuYAorICAgICk7CisgIH0KK30sICJDaGVjayBh
bmQgY2Fub25pY2FsaXplIGludmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1vdW50IGFuZCBy
ZXRocm93IFJhbmdlRXJyb3IuIik7CisKKy8vIFByb2Nlc3Mgc2hpcHBpbmcgb3B0aW9uczoKK3Rl
c3QoKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJF
eHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBjb25zdCBzaGlwcGluZ09wdGlvbnMg
PSBbXTsKKyAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxGb3JtZWRDdXJyZW5jeUNv
ZGVzKSB7CisgICAgY29uc3Qgc2hpcHBpbmdPcHRpb24gPSB7CisgICAgICBpZDogYHRlc3RgICsg
TWF0aC5yYW5kb20oKSwKKyAgICAgIGxhYmVsOiAic2hpcHBpbmcgb3B0aW9uIiwKKyAgICAgIGFt
b3VudDogeyBjdXJyZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI1LjAwIiB9LAorICAgICAg
c2VsZWN0ZWQ6ICFzaGlwcGluZ09wdGlvbnMubGVuZ3RoLAorICAgIH07CisgICAgY29uc3QgZGV0
YWlscyA9IHsKKyAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAgICBzaGlwcGluZ09wdGlv
bnM6IFtzaGlwcGluZ09wdGlvbl0sCisgICAgfTsKKyAgICB0cnkgeworICAgICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1
ZSB9KTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAg
ICAgIGBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aXRoIHZhbGlkIHNoaXBwaW5nT3B0aW9uIGN1cnJl
bmN5IGNvZGUgIiR7dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5tZXNzYWdlfS5gCisgICAgICApOwor
ICAgIH0KKyAgICBzaGlwcGluZ09wdGlvbnMucHVzaChzaGlwcGluZ09wdGlvbik7CisgIH0KKyAg
dHJ5IHsKKyAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFp
bHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfSk7CisgIH0gY2F0Y2gg
KGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICBgVW5leHBlY3RlZCBlcnJvciB3
aXRoIG11bHRpcGxlIHZhbGlkIHNocHBpbmdPcHRpb25zOiAke2Vyci5tZXNzYWdlfS5gCisgICAg
KTsKKyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy5zaGlwcGlu
Z09wdGlvbnMgYW1vdW50LiIpOworCit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhS
QU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsK
KyAgZm9yIChjb25zdCBpbnZhbGlkQ3VycmVuY3kgb2YgaW52YWxpZEN1cnJlbmN5Q29kZXMpIHsK
KyAgICBjb25zdCBzaGlwcGluZ09wdGlvbiA9IHsKKyAgICAgIGlkOiAidGVzdCIsCisgICAgICBs
YWJlbDogInNoaXBwaW5nIG9wdGlvbiIsCisgICAgICBhbW91bnQ6IHsgY3VycmVuY3k6IGludmFs
aWRDdXJyZW5jeSwgdmFsdWU6ICI1LjAwIiB9LAorICAgICAgc2VsZWN0ZWQ6IHRydWUsCisgICAg
fTsKKyAgICBjb25zdCBkZXRhaWxzID0geworICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAg
ICAgIHNoaXBwaW5nT3B0aW9uczogW3NoaXBwaW5nT3B0aW9uXSwKKyAgICB9OworICAgIGFzc2Vy
dF90aHJvd3NfanMoCisgICAgICBSQU5HRV9FUlJPUiwKKyAgICAgICgpID0+IHsKKyAgICAgICAg
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlw
cGluZzogdHJ1ZSB9KTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRo
IGludmFsaWQgc2hpcHBpbmdPcHRpb24gY3VycmVuY3kgY29kZSAiJHtpbnZhbGlkQ3VycmVuY3l9
Ii5gCisgICAgKTsKKyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRh
aWxzLnNoaXBwaW5nT3B0aW9ucyBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4iKTsKKwor
Ly8gUHJvY2VzcyBwYXltZW50IGRldGFpbHMgbW9kaWZpZXJzOgordGVzdCgoKSA9PiB7CisgIGFz
c2VydF90aHJvd3NfanMoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRl
c3QgdG8gdGhyb3cuIik7CisgIGZvciAoY29uc3QgdmFsaWRDdXJyZW5jeSBvZiB3ZWxsRm9ybWVk
Q3VycmVuY3lDb2RlcykgeworICAgIGNvbnN0IG1vZGlmaWVyID0geworICAgICAgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19IiwKKyAgICAgIHRvdGFs
OiB7CisgICAgICAgIGxhYmVsOiAiVG90YWwgZHVlIiwKKyAgICAgICAgYW1vdW50OiB7IGN1cnJl
bmN5OiB2YWxpZEN1cnJlbmN5LCB2YWx1ZTogIjY4LjAwIiB9LAorICAgICAgfSwKKyAgICB9Owor
ICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAg
bW9kaWZpZXJzOiBbbW9kaWZpZXJdLAorICAgIH07CisgICAgdHJ5IHsKKyAgICAgIG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJyKSB7
CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBlY3RlZCBlcnJvciB3aXRo
IHZhbGlkIG1vZGlmaWVyIGN1cnJlbmN5IGNvZGUgIiR7dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5t
ZXNzYWdlfWAKKyAgICAgICk7CisgICAgfQorICB9Cit9LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6
ZSB2YWxpZCBtb2RpZmllcnNbbl0udG90YWwgYW1vdW50LiIpOworCit0ZXN0KCgpID0+IHsKKyAg
YXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2Ug
dGVzdCB0byB0aHJvdy4iKTsKKyAgZm9yIChjb25zdCBpbnZhbGlkQ3VycmVuY3kgb2YgaW52YWxp
ZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25zdCBtb2RpZmllciA9IHsKKyAgICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fSIsCisgICAgICB0b3Rh
bDogeworICAgICAgICBsYWJlbDogIlRvdGFsIGR1ZSIsCisgICAgICAgIGFtb3VudDogeyBjdXJy
ZW5jeTogaW52YWxpZEN1cnJlbmN5LCB2YWx1ZTogIjY4LjAwIiB9LAorICAgICAgfSwKKyAgICB9
OworICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAg
ICAgbW9kaWZpZXJzOiBbbW9kaWZpZXJdLAorICAgIH07CisgICAgYXNzZXJ0X3Rocm93c19qcygK
KyAgICAgIFJBTkdFX0VSUk9SLAorICAgICAgKCkgPT4geworICAgICAgICBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOworICAgICAgfSwKKyAgICAgIGBFeHBlY3Rl
ZCBSYW5nZUVycm9yIHdpdGggaW52YWxpZCBtb2RpZmllciBjdXJyZW5jeSBjb2RlICIke2ludmFs
aWRDdXJyZW5jeX0iLmAKKyAgICApOworICB9Cit9LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBp
bnZhbGlkIG1vZGlmaWVyc1tuXS50b3RhbCBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4i
KTsKKworLy8gUHJvY2VzcyBwYXltZW50IGRldGFpbHMgbW9kaWZpZXJzOgordGVzdCgoKSA9PiB7
CisgIGFzc2VydF90aHJvd3NfanMoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNt
b2tlIHRlc3QgdG8gdGhyb3cuIik7CisgIGZvciAoY29uc3QgdmFsaWRDdXJyZW5jeSBvZiB3ZWxs
Rm9ybWVkQ3VycmVuY3lDb2RlcykgeworICAgIGNvbnN0IGFkZGl0aW9uYWxJdGVtID0geworICAg
ICAgbGFiZWw6ICJhZGRpdGlvbmFsSXRlbSIsCisgICAgICBhbW91bnQ6IHsgY3VycmVuY3k6IHZh
bGlkQ3VycmVuY3ksIHZhbHVlOiAiMy4wMCIgfSwKKyAgICB9OworICAgIGNvbnN0IG1vZGlmaWVy
ID0geworICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0
ZW50XX19IiwKKyAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAgICBhZGRpdGlvbmFsRGlz
cGxheUl0ZW1zOiBbYWRkaXRpb25hbEl0ZW1dLAorICAgIH07CisgICAgY29uc3QgZGV0YWlscyA9
IHsKKyAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAgICBtb2RpZmllcnM6IFttb2RpZmll
cl0sCisgICAgfTsKKyAgICB0cnkgeworICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRN
ZXRob2RzLCBkZXRhaWxzKTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2VydF91bnJl
YWNoZWQoCisgICAgICAgIGBVbmV4cGVjdGVkIGVycm9yIHdpdGggdmFsaWQgYWRkaXRpb25hbERp
c3BsYXlJdGVtc1tuXSBjdXJyZW5jeSBjb2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVz
c2FnZX1gCisgICAgICApOworICAgIH0KKyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUg
dmFsaWQgbW9kaWZpZXJzW25dLmFkZGl0aW9uYURpc3BsYXlJdGVtIGFtb3VudC4iKTsKKwordGVz
dCgoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4
cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7CisgIGZvciAoY29uc3QgaW52YWxpZEN1cnJl
bmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7CisgICAgY29uc3QgYWRkaXRpb25hbEl0ZW0g
PSB7CisgICAgICBsYWJlbDogImFkZGl0aW9uYWxJdGVtIiwKKyAgICAgIGFtb3VudDogeyBjdXJy
ZW5jeTogaW52YWxpZEN1cnJlbmN5LCB2YWx1ZTogIjMuMDAiIH0sCisgICAgfTsKKyAgICBjb25z
dCBtb2RpZmllciA9IHsKKyAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWlu
c1tub25leGlzdGVudF19fSIsCisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgYWRk
aXRpb25hbERpc3BsYXlJdGVtczogW2FkZGl0aW9uYWxJdGVtXSwKKyAgICB9OworICAgIGNvbnN0
IGRldGFpbHMgPSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgbW9kaWZpZXJz
OiBbbW9kaWZpZXJdLAorICAgIH07CisgICAgYXNzZXJ0X3Rocm93c19qcygKKyAgICAgIFJBTkdF
X0VSUk9SLAorICAgICAgKCkgPT4geworICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRldGFpbHMpOworICAgICAgfSwKKyAgICAgIGBFeHBlY3RlZCBSYW5nZUVycm9y
IHdpdGggaW52YWxpZCBhZGRpdGlvbmFsRGlzcGxheUl0ZW1zW25dIGN1cnJlbmN5IGNvZGUgIiR7
aW52YWxpZEN1cnJlbmN5fSIuYAorICAgICk7CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2Fs
aXplIGludmFsaWQgbW9kaWZpZXJzW25dLmFkZGl0aW9uYURpc3BsYXlJdGVtIGFtb3VudCBhbmQg
cmV0aHJvdyBSYW5nZUVycm9yLiIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3QtY3Rvci1wbWktaGFuZGxpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1Zjg4OGYwMzg5ZjZjNzU2ZWRlOGMzZTQ4MWVjZTdiY2Y4YjcxY2NmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1j
dG9yLXBtaS1oYW5kbGluZy5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBNb3ppbGxhIGFuZCBX
b3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAoTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRVJDSU0sIEtlaW8gVW5pdmVyc2l0eSwgQmVpaGFuZykuIC0tPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPHRpdGxlPlRlc3QgZm9yIHZhbGlkaXR5IG9mIHBheW1lbnQgbWV0aG9k
IGlkZW50aWZpZXJzIGR1cmluZyBjb25zdHJ1Y3Rpb248L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jY29uc3Ry
dWN0b3IiPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZy
ZWV6ZSh7Ci0gIGN1cnJlbmN5OiAiVVNEIiwKLSAgdmFsdWU6ICIxLjAiLAotfSk7Ci1jb25zdCB2
YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGxhYmVsOiAiRGVmYXVsdCBUb3RhbCIsCi0g
IGFtb3VudDogdmFsaWRBbW91bnQsCi19KTsKLWNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0
LmZyZWV6ZSh7Ci0gIHRvdGFsOiB2YWxpZFRvdGFsLAotfSk7Ci0KLXRlc3QoKCkgPT4gewotICBj
b25zdCB2YWxpZE1ldGhvZHMgPSBbCi0gICAgImh0dHBzOi8vd3B0IiwKLSAgICAiaHR0cHM6Ly93
cHQuZnlpLyIsCi0gICAgImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50IiwKLSAgICAiaHR0cHM6Ly93
cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi0gICAgImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJl
cXVlc3Q/IiwKLSAgICAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdD90aGlzPWlzIiwK
LSAgICAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdD90aGlzPWlzJnRvdGFsbHkiLAot
ICAgICJodHRwczovL3dwdC5meWk6NDQzL3BheW1lbnQtcmVxdWVzdD90aGlzPWlzJnRvdGFsbHki
LAotICAgICJodHRwczovL3dwdC5meWk6NDQzL3BheW1lbnQtcmVxdWVzdD90aGlzPWlzJnRvdGFs
bHkjZmluZSIsCi0gICAgImh0dHBzOi8vOkB3cHQuZnlpOjQ0My9wYXltZW50LXJlcXVlc3Q/dGhp
cz1pcyZ0b3RhbGx5I/CfkY0iLAotICAgICIgXHRodHRwczovL3dwdFxuICIsCi0gICAgImh0dHBz
Oi8veG4tLWMxeW4zNmYiLAotICAgICJodHRwczovL+m7nueciyIsCi0gIF07Ci0gIGZvciAoY29u
c3QgdmFsaWRNZXRob2Qgb2YgdmFsaWRNZXRob2RzKSB7Ci0gICAgdHJ5IHsKLSAgICAgIGNvbnN0
IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiB2YWxpZE1ldGhvZCB9XTsKLSAgICAgIG5l
dyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gICAgfSBjYXRjaCAo
ZXJyKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKAotICAgICAgICBgVW5leHBlY3RlZCBleGNl
cHRpb24gd2l0aCB2YWxpZCBzdGFuZGFyZGl6ZWQgUE1JOiAke3ZhbGlkTWV0aG9kfS4gJHtlcnJ9
YAotICAgICAgKTsKLSAgICB9Ci0gIH0KLX0sICJNdXN0IHN1cHBvcnQgdmFsaWQgc3RhbmRhcmQg
VVJMIFBNSXMiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IHZhbGlkTWV0aG9kcyA9IFsKLSAg
ICAiZSIsCi0gICAgIm42anpvZjA1bWsyZzRsaHhyLXUtcS13MS1jLWktcGEtdHktYmR2czktaG8t
YWU3LXAtbWQ4LXMtd3EzLWgtcWQtZS1xLXNhIiwKLSAgICAiYS1iLXEtbi1zLXB3MCIsCi0gICAg
Im0tdSIsCi0gICAgInMtbDUiLAotICAgICJrOS1mIiwKLSAgICAibS1sIiwKLSAgICAidTQtbi10
IiwKLSAgICAiaTQ4OGpoNi1nMTgtZmNrLXliLXY3LWkiLAotICAgICJ4LXgtdC10LWMzNC1vIiwK
LSAgICAiYmFzaWMtY2FyZCIsCi0gICAgLy8gZ2V0cyBjb2VyY2VkIHRvICJiYXNpYy1jYXJkIiwg
Zm9yIGNvbXBhdCB3aXRoIG9sZCB2ZXJzaW9uIG9mIHNwZWMKLSAgICBbImJhc2ljLWNhcmQiXSwK
LSAgXTsKLSAgZm9yIChjb25zdCB2YWxpZE1ldGhvZCBvZiB2YWxpZE1ldGhvZHMpIHsKLSAgICB0
cnkgewotICAgICAgY29uc3QgbWV0aG9kcyA9IFt7IHN1cHBvcnRlZE1ldGhvZHM6IHZhbGlkTWV0
aG9kIH1dOwotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxz
KTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICAg
IGBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aXRoIHZhbGlkIHN0YW5kYXJkaXplZCBQTUk6ICR7dmFs
aWRNZXRob2R9LiAke2Vycn1gCi0gICAgICApOwotICAgIH0KLSAgfQotfSwgIk11c3Qgbm90IHRo
cm93IG9uIHN5bnRhY3RpY2FsbHkgdmFsaWQgc3RhbmRhcmRpemVkIHBheW1lbnQgbWV0aG9kIGlk
ZW50aWZpZXJzLCBldmVuIGlmIHRoZXkgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKLQotdGVzdCgoKSA9
PiB7Ci0gIGNvbnN0IGludmFsaWRNZXRob2RzID0gWwotICAgICJiYXNpYy3wn5KzIiwKLSAgICAi
wqFiYXNpYy0qLWNhcmQhIiwKLSAgICAiQmFzaWMtQ2FyZCIsCi0gICAgIjAiLAotICAgICItIiwK
LSAgICAiLS0iLAotICAgICJhLS1iIiwKLSAgICAiLWEtLWIiLAotICAgICJhLWItIiwKLSAgICAi
MC0iLAotICAgICIwLWEiLAotICAgICJhMC0tIiwKLSAgICAiQS0iLAotICAgICJBLUIiLAotICAg
ICJBLWIiLAotICAgICJhLTAiLAotICAgICJhLTBiIiwKLSAgICAiIGEtYiIsCi0gICAgIlx0XG5h
LWIiLAotICAgICJhLWIgIiwKLSAgICAiYS1iXG5cdCIsCi0gICAgImJhc2ljLWNhcmQ/bm90LXJl
YWxseSIsCi0gICAgImJhc2ljLWNhcmQ6Ly9ub3Qtb2siLAotICAgICJiYXNpYyBjYXJkIiwKLSAg
ICAiL2Jhc2ljIGNhcmQvIiwKLSAgICAiQmFTaWNDYXJEIiwKLSAgICAiQkFTSUMtQ0FSRCIsCi0g
ICAgIiBiYXNpYy1jYXJkICIsCi0gICAgInRoaXMgaXMgbm90IHN1cHBvcnRlZCIsCi0gICAgIiAi
LAotICAgICJmb28sdmFyIiwKLSAgICBbInZpc2EiLCJtYXN0ZXJjYXJkIl0sIC8vIHN0cmluZ2lm
aWVzIHRvICJ2aXNhLG1hc3RlcmNhcmQiCi0gIF07Ci0gIGZvciAoY29uc3QgaW52YWxpZE1ldGhv
ZCBvZiBpbnZhbGlkTWV0aG9kcykgewotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBuZXcgUmFu
Z2VFcnJvcigpLAotICAgICAgKCkgPT4gewotICAgICAgICBjb25zdCBtZXRob2RzID0gW3sgc3Vw
cG9ydGVkTWV0aG9kczogaW52YWxpZE1ldGhvZCB9XTsKLSAgICAgICAgbmV3IFBheW1lbnRSZXF1
ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgICAgIH0sCi0gICAgICBgZXhwZWN0ZWQg
UmFuZ2VFcnJvciBwcm9jZXNzaW5nIGludmFsaWQgc3RhbmRhcmRpemVkIFBNSSAiJHtpbnZhbGlk
TWV0aG9kfSJgCi0gICAgKTsKLSAgfQotfSwgIk11c3QgdGhyb3cgb24gc3ludGFjdGljYWxseSBp
bnZhbGlkIHN0YW5kYXJkaXplZCBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVycyIpOwotCi10ZXN0
KCgpID0+IHsKLSAgY29uc3QgaW52YWxpZE1ldGhvZHMgPSBbCi0gICAgImh0dHBzOi8vdXNlcm5h
bWVAZXhhbXBsZS5jb20vcGF5IiwKLSAgICAiaHR0cHM6Ly86cGFzc3dvcmRAZXhhbXBsZS5jb20v
cGF5IiwKLSAgICAiaHR0cHM6Ly91c2VybmFtZTpwYXNzd29yZEBleGFtcGxlLmNvbS9wYXkiLAot
ICAgICJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAZXhhbXBsZS5jb20vcGF5IiwKLSAgICAiaHR0
cDovL2Zvby5jb206MTAwMDAwMDAwL3BheSIsCi0gICAgIm5vdC1odHRwczovL3dwdC5meWkvcGF5
bWVudC1yZXF1ZXN0IiwKLSAgICAiLi4vcmVhbGl0aXZlL3VybCIsCi0gICAgIi9hYnNvbHV0ZS8u
Li9wYXRoPyIsCi0gICAgImh0dHBzOi8vIiwKLSAgXTsKLSAgZm9yIChjb25zdCBpbnZhbGlkTWV0
aG9kIG9mIGludmFsaWRNZXRob2RzKSB7Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAgICAgIG5ldyBS
YW5nZUVycm9yKCksCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIGNvbnN0IG1ldGhvZHMgPSBbeyBz
dXBwb3J0ZWRNZXRob2RzOiBpbnZhbGlkTWV0aG9kIH1dOwotICAgICAgICBuZXcgUGF5bWVudFJl
cXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgICAgfSwKLSAgICAgIGBleHBlY3Rl
ZCBSYW5nZUVycm9yIHByb2Nlc3NpbmcgaW52YWxpZCBVUkwgUE1JICIke2ludmFsaWRNZXRob2R9
ImAKLSAgICApOwotICB9Ci19LCAiQ29uc3RydWN0b3IgTVVTVCB0aHJvdyBpZiBnaXZlbiBhbiBp
bnZhbGlkIFVSTC1iYXNlZCBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVyIik7Ci0KLTwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBz
LnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1wbWktaGFuZGxpbmcu
aHR0cHMuc3ViLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTA0NzRkZTY5Yjc1MzE4MzdhNTEz
NTJlMjNkYWZhZjExYTQwNDg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0
LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CisKK1BBU1MgTXVzdCBzdXBwb3J0IHZhbGlkIHN0YW5kYXJkIFVSTCBQTUlzIAorUEFTUyBNdXN0
IG5vdCB0aHJvdyBvbiBzeW50YWN0aWNhbGx5IHZhbGlkIHN0YW5kYXJkaXplZCBwYXltZW50IG1l
dGhvZCBpZGVudGlmaWVycywgZXZlbiBpZiB0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIAorUEFTUyBN
dXN0IHRocm93IG9uIHN5bnRhY3RpY2FsbHkgaW52YWxpZCBzdGFuZGFyZGl6ZWQgcGF5bWVudCBt
ZXRob2QgaWRlbnRpZmllcnMgCitQQVNTIENvbnN0cnVjdG9yIE1VU1QgdGhyb3cgaWYgZ2l2ZW4g
YW4gaW52YWxpZCBVUkwtYmFzZWQgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllciAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBzLnN1Yi5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBzLnN1Yi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE2MTU4MzhmOGJjZWY5ODM3ZjIxNmVlMzQ2N2VkYmM3YzlkYzRkMTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1wbWktaGFuZGxpbmcuaHR0cHMu
c3ViLmh0bWwKQEAgLTAsMCArMSwxNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBDb3B5cmln
aHQgwqkgMjAxNyBNb3ppbGxhIGFuZCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAoTWFzc2Fj
aHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRVJDSU0sIEtlaW8gVW5pdmVyc2l0eSwg
QmVpaGFuZykuIC0tPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgZm9yIHZh
bGlkaXR5IG9mIHBheW1lbnQgbWV0aG9kIGlkZW50aWZpZXJzIGR1cmluZyBjb25zdHJ1Y3Rpb248
L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJv
d3Nlci1wYXltZW50LWFwaS8jY29uc3RydWN0b3IiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2NvbnN0
IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CisgIGN1cnJlbmN5OiAiVVNEIiwKKyAgdmFs
dWU6ICIxLjAiLAorfSk7Citjb25zdCB2YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CisgIGxh
YmVsOiAiRGVmYXVsdCBUb3RhbCIsCisgIGFtb3VudDogdmFsaWRBbW91bnQsCit9KTsKK2NvbnN0
IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiB2YWxpZFRvdGFsLAor
fSk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCB2YWxpZE1ldGhvZHMgPSBbCisgICAgImh0dHBz
Oi8vd3B0IiwKKyAgICAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vIiwKKyAgICAi
aHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudCIsCisgICAgImh0dHBzOi8v
e3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAgImh0dHBzOi8v
e3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdD8iLAorICAgICJodHRwczov
L3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyIsCisgICAg
Imh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdD90aGlzPWlz
JnRvdGFsbHkiLAorICAgICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fTo0NDMvcGF5
bWVudC1yZXF1ZXN0P3RoaXM9aXMmdG90YWxseSIsCisgICAgImh0dHBzOi8ve3tkb21haW5zW25v
bmV4aXN0ZW50XX19OjQ0My9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3RhbGx5I2ZpbmUiLAor
ICAgICJodHRwczovLzpAe3tkb21haW5zW25vbmV4aXN0ZW50XX19OjQ0My9wYXltZW50LXJlcXVl
c3Q/dGhpcz1pcyZ0b3RhbGx5I/CfkY0iLAorICAgICIgXHRodHRwczovL3dwdFxuICIsCisgICAg
Imh0dHBzOi8veG4tLWMxeW4zNmYiLAorICAgICJodHRwczovL+m7nueciyIsCisgIF07CisgIGZv
ciAoY29uc3QgdmFsaWRNZXRob2Qgb2YgdmFsaWRNZXRob2RzKSB7CisgICAgdHJ5IHsKKyAgICAg
IGNvbnN0IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiB2YWxpZE1ldGhvZCB9XTsKKyAg
ICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgICAgfSBj
YXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBlY3Rl
ZCBleGNlcHRpb24gd2l0aCB2YWxpZCBzdGFuZGFyZGl6ZWQgUE1JOiAke3ZhbGlkTWV0aG9kfS4g
JHtlcnJ9YAorICAgICAgKTsKKyAgICB9CisgIH0KK30sICJNdXN0IHN1cHBvcnQgdmFsaWQgc3Rh
bmRhcmQgVVJMIFBNSXMiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IHZhbGlkTWV0aG9kcyA9
IFsKKyAgICAiZSIsCisgICAgIm42anpvZjA1bWsyZzRsaHhyLXUtcS13MS1jLWktcGEtdHktYmR2
czktaG8tYWU3LXAtbWQ4LXMtd3EzLWgtcWQtZS1xLXNhIiwKKyAgICAiYS1iLXEtbi1zLXB3MCIs
CisgICAgIm0tdSIsCisgICAgInMtbDUiLAorICAgICJrOS1mIiwKKyAgICAibS1sIiwKKyAgICAi
dTQtbi10IiwKKyAgICAiaTQ4OGpoNi1nMTgtZmNrLXliLXY3LWkiLAorICAgICJ4LXgtdC10LWMz
NC1vIiwKKyAgICAiYmFzaWMtY2FyZCIsCisgICAgLy8gZ2V0cyBjb2VyY2VkIHRvICJiYXNpYy1j
YXJkIiwgZm9yIGNvbXBhdCB3aXRoIG9sZCB2ZXJzaW9uIG9mIHNwZWMKKyAgICBbImJhc2ljLWNh
cmQiXSwKKyAgXTsKKyAgZm9yIChjb25zdCB2YWxpZE1ldGhvZCBvZiB2YWxpZE1ldGhvZHMpIHsK
KyAgICB0cnkgeworICAgICAgY29uc3QgbWV0aG9kcyA9IFt7IHN1cHBvcnRlZE1ldGhvZHM6IHZh
bGlkTWV0aG9kIH1dOworICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHRE
ZXRhaWxzKTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoCisg
ICAgICAgIGBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aXRoIHZhbGlkIHN0YW5kYXJkaXplZCBQTUk6
ICR7dmFsaWRNZXRob2R9LiAke2Vycn1gCisgICAgICApOworICAgIH0KKyAgfQorfSwgIk11c3Qg
bm90IHRocm93IG9uIHN5bnRhY3RpY2FsbHkgdmFsaWQgc3RhbmRhcmRpemVkIHBheW1lbnQgbWV0
aG9kIGlkZW50aWZpZXJzLCBldmVuIGlmIHRoZXkgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKKwordGVz
dCgoKSA9PiB7CisgIGNvbnN0IGludmFsaWRNZXRob2RzID0gWworICAgICJiYXNpYy3wn5KzIiwK
KyAgICAiwqFiYXNpYy0qLWNhcmQhIiwKKyAgICAiQmFzaWMtQ2FyZCIsCisgICAgIjAiLAorICAg
ICItIiwKKyAgICAiLS0iLAorICAgICJhLS1iIiwKKyAgICAiLWEtLWIiLAorICAgICJhLWItIiwK
KyAgICAiMC0iLAorICAgICIwLWEiLAorICAgICJhMC0tIiwKKyAgICAiQS0iLAorICAgICJBLUIi
LAorICAgICJBLWIiLAorICAgICJhLTAiLAorICAgICJhLTBiIiwKKyAgICAiIGEtYiIsCisgICAg
Ilx0XG5hLWIiLAorICAgICJhLWIgIiwKKyAgICAiYS1iXG5cdCIsCisgICAgImJhc2ljLWNhcmQ/
bm90LXJlYWxseSIsCisgICAgImJhc2ljLWNhcmQ6Ly9ub3Qtb2siLAorICAgICJiYXNpYyBjYXJk
IiwKKyAgICAiL2Jhc2ljIGNhcmQvIiwKKyAgICAiQmFTaWNDYXJEIiwKKyAgICAiQkFTSUMtQ0FS
RCIsCisgICAgIiBiYXNpYy1jYXJkICIsCisgICAgInRoaXMgaXMgbm90IHN1cHBvcnRlZCIsCisg
ICAgIiAiLAorICAgICJmb28sdmFyIiwKKyAgICBbInZpc2EiLCJtYXN0ZXJjYXJkIl0sIC8vIHN0
cmluZ2lmaWVzIHRvICJ2aXNhLG1hc3RlcmNhcmQiCisgIF07CisgIGZvciAoY29uc3QgaW52YWxp
ZE1ldGhvZCBvZiBpbnZhbGlkTWV0aG9kcykgeworICAgIGFzc2VydF90aHJvd3NfanMoCisgICAg
ICBSYW5nZUVycm9yLAorICAgICAgKCkgPT4geworICAgICAgICBjb25zdCBtZXRob2RzID0gW3sg
c3VwcG9ydGVkTWV0aG9kczogaW52YWxpZE1ldGhvZCB9XTsKKyAgICAgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgICAgIH0sCisgICAgICBgZXhwZWN0
ZWQgUmFuZ2VFcnJvciBwcm9jZXNzaW5nIGludmFsaWQgc3RhbmRhcmRpemVkIFBNSSAiJHtpbnZh
bGlkTWV0aG9kfSJgCisgICAgKTsKKyAgfQorfSwgIk11c3QgdGhyb3cgb24gc3ludGFjdGljYWxs
eSBpbnZhbGlkIHN0YW5kYXJkaXplZCBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVycyIpOworCit0
ZXN0KCgpID0+IHsKKyAgY29uc3QgaW52YWxpZE1ldGhvZHMgPSBbCisgICAgImh0dHBzOi8vdXNl
cm5hbWVAZXhhbXBsZS5jb20vcGF5IiwKKyAgICAiaHR0cHM6Ly86cGFzc3dvcmRAZXhhbXBsZS5j
b20vcGF5IiwKKyAgICAiaHR0cHM6Ly91c2VybmFtZTpwYXNzd29yZEBleGFtcGxlLmNvbS9wYXki
LAorICAgICJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAZXhhbXBsZS5jb20vcGF5IiwKKyAgICAi
aHR0cDovL2Zvby5jb206MTAwMDAwMDAwL3BheSIsCisgICAgIm5vdC1odHRwczovL3t7ZG9tYWlu
c1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAgICIuLi9yZWFsaXRpdmUvdXJs
IiwKKyAgICAiL2Fic29sdXRlLy4uL3BhdGg/IiwKKyAgICAiaHR0cHM6Ly8iLAorICBdOworICBm
b3IgKGNvbnN0IGludmFsaWRNZXRob2Qgb2YgaW52YWxpZE1ldGhvZHMpIHsKKyAgICBhc3NlcnRf
dGhyb3dzX2pzKAorICAgICAgUmFuZ2VFcnJvciwKKyAgICAgICgpID0+IHsKKyAgICAgICAgY29u
c3QgbWV0aG9kcyA9IFt7IHN1cHBvcnRlZE1ldGhvZHM6IGludmFsaWRNZXRob2QgfV07CisgICAg
ICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgICAgICB9
LAorICAgICAgYGV4cGVjdGVkIFJhbmdlRXJyb3IgcHJvY2Vzc2luZyBpbnZhbGlkIFVSTCBQTUkg
IiR7aW52YWxpZE1ldGhvZH0iYAorICAgICk7CisgIH0KK30sICJDb25zdHJ1Y3RvciBNVVNUIHRo
cm93IGlmIGdpdmVuIGFuIGludmFsaWQgVVJMLWJhc2VkIHBheW1lbnQgbWV0aG9kIGlkZW50aWZp
ZXIiKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5y
b2xsZWRpbnN0cnVtZW50LW1ldGhvZC1tYW51YWwudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLW1hbnVh
bC50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwZjcyMDBlZGVhNDg2
YjQ4MDRmMmNiYjlmMjgyNDcxYzQ2ZWQyNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1tYW51YWwudGVudGF0aXZlLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitNYW51YWwgdGVzdHMgZm9yIGhhc0Vu
cm9sbGVkSW5zdHJ1bWVudCgpIG1ldGhvZAorCitGb2xsb3cgdGhlIGluc3RydWN0aW9ucyBmcm9t
IHRvcCB0byBib3R0b20uIENsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNlcXVlbmNlIHdpdGhvdXQg
cmVmcmVzaGluZyB0aGUgcGFnZS4gU29tZSBvZiB0aGUgdGVzdHMgd2lsbCBicmluZyB1cCB0aGUg
UGF5bWVudCBSZXF1ZXN0IFVJIGFuZCBjbG9zZSB0aGVtIGF1dG9tYXRpY2FsbHkuIElmIGEgcGF5
bWVudCBzaGVldCBzdGF5cyBvcGVuLCB0aGUgdGVzdCBoYXMgZmFpbGVkLgorCitGb2xsb3cgYnJv
d3Nlci1zcGVjaWZpYyBpbnN0cnVjdGlvbnMgdG8gcmVtb3ZlIGFsbCBjYXJkcyBmcm9tIHRoZSB0
ZXN0IHByb2ZpbGUuCitoYXNFbnJvbGxlZEluc3RydW1lbnQoKSByZXNvbHZlcyB0byBmYWxzZSB3
aGVuIHVzZXIgaGFzIG5vIGVucm9sbGVkIGluc3RydW1lbnQuCitBZGQgYSB0ZXN0IFZpc2EgY2Fy
ZCB0byB5b3VyIHRlc3QgcHJvZmlsZSwgZS5nLiA0MDEyODg4ODg4ODgxODgxLgoraGFzRW5yb2xs
ZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8gdHJ1ZSB3aGVuIHVzZXIgaGFzIGFuIGVucm9sbGVk
IGluc3RydW1lbnQuCitoYXNFbnJvbGxlZEluc3RydW1lbnQoKSBjYW4gYmUgY2FsbGVkIG11bHRp
cGxlIHRpbWVzIGlmIHRoZSBwYXltZW50IG1ldGhvZCBkZXRhaWxzIGFyZSBpZGVudGljYWwuCitE
b25lIQorSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFn
IG9uZSBvZiB0aGUgc3VnZ2VzdGVkIHJldmlld2Vycy4KKworSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhh
c2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtbWFudWFsLnRlbnRhdGl2ZS5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtbWFudWFsLnRl
bnRhdGl2ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2YjE2NGY3Y2M3YjhmMWM1N2I4ZmE5ZmQx
NGNiYzdmNWVmODFlZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFz
ZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1tYW51YWwudGVudGF0aXZlLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSw5NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+TWFudWFsIHRlc3RzIGZvciBQYXltZW50UmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1l
bnQoKSBtZXRob2Q8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5n
aXRodWIuaW8vcGF5bWVudC1yZXF1ZXN0LyNoYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kIj4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitzZXR1cCh7CisgIGV4cGxpY2l0X2RvbmU6IHRydWUsCisgIGV4cGxpY2l0X3RpbWVvdXQ6
IHRydWUsCit9KTsKKworY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFsKKyAg
eworICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiwKKyAgICBkYXRhOiB7CisgICAg
ICBzdXBwb3J0ZWROZXR3b3JrczogWyAndmlzYScgXSwKKyAgICB9LAorICB9CitdKTsKK2NvbnN0
IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiB7CisgICAgbGFiZWw6
ICJUb3RhbCIsCisgICAgYW1vdW50OiB7CisgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICB2
YWx1ZTogIjEuMDAiLAorICAgIH0sCisgIH0sCit9KTsKKworZnVuY3Rpb24gdGVzdEhhc05vRW5y
b2xsZWRJbnN0cnVtZW50KCkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29u
c3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERl
dGFpbHMpOworICAgIGFzc2VydF9mYWxzZSgKKyAgICAgIGF3YWl0IHJlcXVlc3QuaGFzRW5yb2xs
ZWRJbnN0cnVtZW50KCksCisgICAgICAiTm8gdGVzdCBlbnJvbGxlZCBpbiB0aGUgdGVzdCBwcm9m
aWxlLiIKKyAgICApOworICB9LCBgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8g
ZmFsc2Ugd2hlbiB1c2VyIGhhcyBubyBlbnJvbGxlZCBpbnN0cnVtZW50LmApOworfQorCitmdW5j
dGlvbiB0ZXN0SGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgIGFzc2VydF90cnVlKAorICAgICAgYXdhaXQgcmVx
dWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQoKSwKKyAgICAgICJBIGNhcmQgaXMgZW5yb2xsZWQg
aW4gdGhlIHRlc3QgcHJvZmlsZS4iCisgICAgKTsKKyAgfSwgYGhhc0Vucm9sbGVkSW5zdHJ1bWVu
dCgpIHJlc29sdmVzIHRvIHRydWUgd2hlbiB1c2VyIGhhcyBhbiBlbnJvbGxlZCBpbnN0cnVtZW50
LmApOworfQorCitmdW5jdGlvbiB0ZXN0SGFzRW5yb2xsZWRJbnN0cnVtZW50QWdhaW4oKSB7Cisg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgICAgYXNzZXJ0X3Ry
dWUoCisgICAgICBhd2FpdCByZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpLAorICAgICAg
IkEgY2FyZCBpcyBlbnJvbGxlZCBpbiB0aGUgdGVzdCBwcm9maWxlLiIKKyAgICApOworICB9LCBg
aGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpZiB0
aGUgcGF5bWVudCBtZXRob2QgZGV0YWlscyBhcmUgaWRlbnRpY2FsLmApOworfQorPC9zY3JpcHQ+
CisKKzxoMj5NYW51YWwgdGVzdHMgZm9yIGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIG1ldGhvZDwv
aDI+Cis8cD4KKyAgRm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgZnJvbSB0b3AgdG8gYm90dG9tLiBD
bGljayBvbiBlYWNoIGJ1dHRvbiBpbiBzZXF1ZW5jZQorICB3aXRob3V0IHJlZnJlc2hpbmcgdGhl
IHBhZ2UuIFNvbWUgb2YgdGhlIHRlc3RzIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQKKyAgUmVx
dWVzdCBVSSBhbmQgY2xvc2UgdGhlbSBhdXRvbWF0aWNhbGx5LiBJZiBhIHBheW1lbnQgc2hlZXQg
c3RheXMgb3BlbiwgdGhlCisgIHRlc3QgaGFzIGZhaWxlZC4KKzwvcD4KKzxvbD4KKyAgPGxpPkZv
bGxvdyBicm93c2VyLXNwZWNpZmljIGluc3RydWN0aW9ucyB0byByZW1vdmUgYWxsIGNhcmRzIGZy
b20gdGhlIHRlc3QgcHJvZmlsZS48L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0
ZXN0SGFzTm9FbnJvbGxlZEluc3RydW1lbnQoKSI+CisgICAgICBoYXNFbnJvbGxlZEluc3RydW1l
bnQoKSByZXNvbHZlcyB0byBmYWxzZSB3aGVuIHVzZXIgaGFzIG5vIGVucm9sbGVkIGluc3RydW1l
bnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT5BZGQgYSB0ZXN0IFZpc2EgY2FyZCB0
byB5b3VyIHRlc3QgcHJvZmlsZSwgZS5nLiA0MDEyODg4ODg4ODgxODgxLjwvbGk+CisgIDxsaT4K
KyAgICA8YnV0dG9uIG9uY2xpY2s9InRlc3RIYXNFbnJvbGxlZEluc3RydW1lbnQoKSI+CisgICAg
ICBoYXNFbnJvbGxlZEluc3RydW1lbnQoKSByZXNvbHZlcyB0byB0cnVlIHdoZW4gdXNlciBoYXMg
YW4gZW5yb2xsZWQgaW5zdHJ1bWVudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgor
ICAgIDxidXR0b24gb25jbGljaz0idGVzdEhhc0Vucm9sbGVkSW5zdHJ1bWVudEFnYWluKCkiPgor
ICAgICAgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1l
cyBpZiB0aGUgcGF5bWVudCBtZXRob2QKKyAgICAgIGRldGFpbHMgYXJlIGlkZW50aWNhbC4KKyAg
ICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0iZG9uZSgp
Ij5Eb25lITwvYnV0dG9uPgorICA8L2xpPgorPC9vbD4KKzxzbWFsbD4KKyAgSWYgeW91IGZpbmQg
YSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0
aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxv
Yi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sIj5zdWdnZXN0ZWQgcmV2aWV3ZXJzPC9h
Pi4KKzwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRp
bnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0
aW9uLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTMxZDQwMzEwN2Y2
ZWQ1NmY2NjlhMTljYWNkZmUyZGQ3YTJlMzM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLXByb3RlY3Rpb24udGVudGF0
aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0lmIHlvdSBmaW5kIGEgYnVn
Z3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCBy
ZXZpZXdlcnMuCisKK0ZBSUwgT3B0aW9uYWxseSwgYXQgdGhlIHVzZXIgYWdlbnQncyBkaXNjcmV0
aW9uLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSAiTm90QWxsb3dlZEVycm9yIiBE
T01FeGNlcHRpb24uIGFzc2VydF9lcXVhbHM6IElmIGl0IHRocm93cywgdGhlbiBpdCBtdXN0IGJl
IGEgTm90QWxsb3dlZEVycm9yLiBleHBlY3RlZCAiTm90QWxsb3dlZEVycm9yIiBidXQgZ290ICJU
eXBlRXJyb3IiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGlu
c3RydW1lbnQtbWV0aG9kLXByb3RlY3Rpb24udGVudGF0aXZlLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRh
dGl2ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkYTExMzA0YTIxNDI3MDQwZjcyMzE3ZTM3NDZm
ZWViYjI1MWQxMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5y
b2xsZWRpbnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRhdGl2ZS5odHRwcy5odG1sCkBA
IC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPlRlc3RzIGZvciBQYXltZW50UmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQoKSBt
ZXRob2Q8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIu
aW8vcGF5bWVudC1yZXF1ZXN0LyNoYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kIj4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9yZXNv
dXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHZp
c2FNZXRob2QgPSBPYmplY3QuZnJlZXplKHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMt
Y2FyZCIsCisgICAgZGF0YTogeworICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsndmlzYSddCisg
ICAgfQorfSk7Citjb25zdCBtYXN0ZXJjYXJkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CisgICAg
c3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAorICAgIGRhdGE6IHsKKyAgICAgIHN1cHBv
cnRlZE5ldHdvcmtzOiBbJ21hc3RlcmNhcmQnXQorICAgIH0KK30pOworY29uc3QgZGVmYXVsdERl
dGFpbHMgPSBPYmplY3QuZnJlZXplKHsKKyAgdG90YWw6IHsKKyAgICBsYWJlbDogIlRvdGFsIiwK
KyAgICBhbW91bnQ6IHsKKyAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgIHZhbHVlOiAiMS4w
MCIsCisgICAgfSwKKyAgfSwKK30pOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIC8v
IFRoaXMgdGVzdCBtYXkgbmV2ZXIgYWN0dWFsbHkgaGl0IGl0cyBhc3NlcnRpb24sIGJ1dCB0aGF0
J3MgYWxsb3dlZC4KKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChbdmlzYU1l
dGhvZF0sIGRlZmF1bHREZXRhaWxzKTsKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyBpKysp
IHsKKyAgICB0cnkgeworICAgICAgYXdhaXQgcmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQo
KTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgIGVy
ci5uYW1lLAorICAgICAgICAiTm90QWxsb3dlZEVycm9yIiwKKyAgICAgICAgIklmIGl0IHRocm93
cywgdGhlbiBpdCBtdXN0IGJlIGEgTm90QWxsb3dlZEVycm9yLiIKKyAgICAgICk7CisgICAgICBi
cmVhazsKKyAgICB9CisgIH0KKworICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7IGkrKykgewor
ICAgIHRyeSB7CisgICAgICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChbbWFz
dGVyY2FyZE1ldGhvZF0sIGRlZmF1bHREZXRhaWxzKTsKKyAgICAgIGF3YWl0IHJlcXVlc3QyLmhh
c0Vucm9sbGVkSW5zdHJ1bWVudCgpOworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgYXNzZXJ0
X2VxdWFscygKKyAgICAgICAgZXJyLm5hbWUsCisgICAgICAgICJOb3RBbGxvd2VkRXJyb3IiLAor
ICAgICAgICAiSWYgaXQgdGhyb3dzLCB0aGVuIGl0IG11c3QgYmUgYSBOb3RBbGxvd2VkRXJyb3Iu
IgorICAgICAgKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorfSwgYE9wdGlvbmFsbHksIGF0
IHRoZSB1c2VyIGFnZW50J3MgZGlzY3JldGlvbiwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3
aXRoIGEgIk5vdEFsbG93ZWRFcnJvciIgRE9NRXhjZXB0aW9uLmApOworCis8L3NjcmlwdD4KKwor
PHNtYWxsPgorICBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSA8YSBocmVmPSJodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMiPmZpbGUgYSBidWc8
L2E+CisgIGFuZCB0YWcgb25lIG9mIHRoZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwi
PnN1Z2dlc3RlZCByZXZpZXdlcnM8L2E+LgorPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1l
dGhvZC50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2ZmE4ZWJiODEw
ZDI2YTUyOTExYTgyMGM4ZGYyYzQyNzI5YTg2MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorQ09OU09MRSBNRVNTQUdFOiBVbmhhbmRsZWQg
UHJvbWlzZSBSZWplY3Rpb246IFNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJl
ZCBieSB1c2VyIGFjdGl2YXRpb24uCitJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBm
aWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZXJzLgorCitGQUlM
IGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHJlc29sdmVzIHRvIGZhbHNlIGZvciB1bnN1cHBvcnRl
ZCBwYXltZW50IG1ldGhvZHMuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogcmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQoKScs
ICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgSWYg
cmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9taXNl
IHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogcmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
cmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQoKScsICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5z
dHJ1bWVudCcgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNs
b3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlkU3Rh
dGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBh
biBpbnZhbGlkIHN0YXRlLiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vu
cm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNTUzMTJjZTMzYjBkYTJmY2QxZDE2MTliNmQ3ZmY4YzYxNGE0ZjZiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVu
dC1tZXRob2QudGVudGF0aXZlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VGVzdHMgZm9yIFBheW1lbnRS
ZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIG1ldGhvZDwvdGl0bGU+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI2hhc2Vu
cm9sbGVkaW5zdHJ1bWVudC1tZXRob2QiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5q
cyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworY29uc3QgdW5zdXBwb3J0ZWRN
ZXRob2RzID0gWworICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJ0aGlzLWlzLW5vdC1zdXBwb3J0ZWQi
IH0sCisgIHsgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vbm90LnN1cHBvcnRlZCIgfSwKK107
Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoWworICB7CisgICAgc3VwcG9y
dGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAorICAgIGRhdGE6IHsKKyAgICAgIHN1cHBvcnRlZE5l
dHdvcmtzOiBbICd2aXNhJyBdLAorICAgIH0sCisgIH0KK10pOworY29uc3QgZGVmYXVsdERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKKyAgdG90YWw6IHsKKyAgICBsYWJlbDogIlRvdGFsIiwKKyAg
ICBhbW91bnQ6IHsKKyAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgIHZhbHVlOiAiMS4wMCIs
CisgICAgfSwKKyAgfSwKK30pOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QodW5zdXBwb3J0ZWRNZXRob2RzLCBkZWZhdWx0
RGV0YWlscyk7CisgIGFzc2VydF9mYWxzZSgKKyAgICBhd2FpdCByZXF1ZXN0Lmhhc0Vucm9sbGVk
SW5zdHJ1bWVudCgpLAorICAgICJoYXNFbnJvbGxlZEluc3RydW1lbnQoKSBzaG91bGQgcmVzb2x2
ZSB0byBmYWxzZS4iCisgICk7Cit9LCBgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMg
dG8gZmFsc2UgZm9yIHVuc3VwcG9ydGVkIHBheW1lbnQgbWV0aG9kcy5gKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRl
ZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFthY2NlcHRQcm9taXNlLCBo
YXNFbnJvbGxlZEluc3RydW1lbnRQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAor
ICAgICAgInNob3cgcGF5bWVudCByZXF1ZXN0IiwKKyAgICAgICgpID0+IHsKKyAgICAgICAgY29u
c3QgYWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOyAgLy8gU2V0cyBzdGF0ZSB0byAiaW50
ZXJhY3RpdmUiCisgICAgICAgIGNvbnN0IGhhc0Vucm9sbGVkSW5zdHJ1bWVudFByb21pc2UgPSBy
ZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpOworICAgICAgICByZXR1cm4gW2FjY2VwdFBy
b21pc2UsIGhhc0Vucm9sbGVkSW5zdHJ1bWVudFByb21pc2VdOworICAgICAgfSk7CisgIGF3YWl0
IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgaGFzRW5yb2xsZWRJ
bnN0cnVtZW50UHJvbWlzZSk7CisKKyAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOworICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7Cit9LCBg
SWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9t
aXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uYCk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBbYWJv
cnRQcm9taXNlLCBhY2NlcHRQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCAic2hv
dyBwYXltZW50IHJlcXVlc3QiLCAoKSA9PiB7CisgICAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHJl
cXVlc3Quc2hvdygpOyAgLy8gU2V0cyBzdGF0ZSB0byAiaW50ZXJhY3RpdmUiCisgICAgYWNjZXB0
UHJvbWlzZS5jYXRjaCgoKSA9PiB7fSk7ICAvLyBuby1vcCwganVzdCB0byBoYW5kbGUgdW5oYW5k
bGVkIHJlamVjdGlvbiBpbiBkZXZ0b29scy4KKyAgICBjb25zdCBhYm9ydFByb21pc2UgPXJlcXVl
c3QuYWJvcnQoKTsgIC8vIFNldHMgc3RhdGUgdG8gImNsb3NlZCIKKyAgICByZXR1cm4gW2Fib3J0
UHJvbWlzZSwgYWNjZXB0UHJvbWlzZV07CisgIH0pOworICBhd2FpdCBhYm9ydFByb21pc2U7Cisg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNl
KTsKKworICBjb25zdCBoYXNFbnJvbGxlZEluc3RydW1lbnRQcm9taXNlID0gcmVxdWVzdC5oYXNF
bnJvbGxlZEluc3RydW1lbnQoKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52
YWxpZFN0YXRlRXJyb3IiLCBoYXNFbnJvbGxlZEluc3RydW1lbnRQcm9taXNlKTsKK30sIGBJZiBy
ZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVj
dGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uYCk7Cis8L3Njcmlw
dD4KKworPHNtYWxsPgorICBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSA8YSBocmVm
PSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMiPmZpbGUg
YSBidWc8L2E+CisgIGFuZCB0YWcgb25lIG9mIHRoZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVU
QS55bWwiPnN1Z2dlc3RlZCByZXZpZXdlcnM8L2E+LgorPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5nYWRkcmVzc2NoYW5nZS1hdHRyaWJ1dGUuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5nYWRkcmVzc2NoYW5nZS1hdHRyaWJ1
dGUuaHR0cHMuaHRtbAppbmRleCA1YzU0ZDQ4NTY4YTQwNzgxZGY4NTc5ODZiY2RhNWZjOGFiMDgx
ODliLi41YjI1Mzg5OTJmNzZjNzc0MjU5ZjUyYjczNGJjODQ0NDY4ZmMxNGY3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3Qtb25zaGlwcGluZ2FkZHJlc3NjaGFuZ2UtYXR0cmlidXRlLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LW9uc2hpcHBpbmdhZGRyZXNzY2hhbmdl
LWF0dHJpYnV0ZS5odHRwcy5odG1sCkBAIC03LDggKzcsMTggQEAKIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAidXNlIHN0
cmljdCI7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRo
b2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNp
b246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAor
ICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBv
cnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNv
bnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMt
Y2FyZCIgfSk7Ci1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2Fy
ZF0pOworY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFw
cGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3Rh
bDogewogICAgIGxhYmVsOiAiVG90YWwiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0
LW9uc2hpcHBpbmdvcHRpb25jaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3Qtb25zaGlwcGluZ29wdGlvbmNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbAppbmRl
eCBhNGQ4ZmJjNDgyNWY4ZTc5N2Y5NDc4ZDhiZGQwODllNDM5MTQ5MWE5Li40M2VhNWRjY2U4N2Fm
ZTlkZmYwMzg3ODkxZDU3YzMyNjViZTMwM2Y1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3Qtb25zaGlwcGluZ29wdGlvbmNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3Qtb25zaGlwcGluZ29wdGlvbmNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRt
bApAQCAtNyw4ICs3LDE4IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogInVzZSBzdHJpY3QiOworY29uc3QgYXBwbGVQ
YXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUu
Y29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50
SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVT
IiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBv
cnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCBiYXNpY0NhcmQgPSBPYmpl
Y3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0pOwotY29uc3QgZGVm
YXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmRdKTsKK2NvbnN0IGRlZmF1bHRN
ZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkLCBhcHBsZVBheV0pOwogY29uc3QgZGVm
YXVsdERldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKICAgdG90YWw6IHsKICAgICBsYWJlbDogIlRv
dGFsIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ1R5cGUtYXR0cmli
dXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hpcHBpbmdUeXBlLWF0dHJpYnV0
ZS5odHRwcy5odG1sCmluZGV4IGIxZWQwZDAyODg2MGVhOWM5OGRkMWE2MWJhMjM5ZGI3NWE3ZTM4
NjQuLjExZjc1YjFjODYyMjI0YjU2NTVjYjcyNGQ4YzhmNWIyNWFiMWFmMDAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ1R5cGUtYXR0cmlidXRlLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNoaXBwaW5nVHlwZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbApA
QCAtOCw4ICs4LDE4IEBACiA8c2NyaXB0PgogInVzZSBzdHJpY3QiOwogY29uc3QgcGF5bWVudFNo
aXBpbmdUeXBlcyA9IE9iamVjdC5mcmVlemUoWyJkZWxpdmVyeSIsICJwaWNrdXAiLCAic2hpcHBp
bmciXSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRo
b2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNp
b246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAor
ICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBv
cnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNv
bnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMt
Y2FyZCIgfSk7Ci1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2Fy
ZF0pOworY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFw
cGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3Rh
bDogewogICAgIGxhYmVsOiAiIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93
LW1ldGhvZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBz
Lmh0bWwKaW5kZXggYzZlNjlkNGM1ODc2MDJkNTE2MDJhZWE0MTIyNDczMWU2OTJhZjJhZS4uZGNm
NzhlZjQyODFjNDI1NmVjYjQxNDFiM2Y5M2QxNWE5NDc4MDVhMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgaHRt
bD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5UZXN0IGZvciBQYXltZW50UmVxdWVz
dC5zaG93KCkgbWV0aG9kPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI3Nob3ctbWV0aG9kIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jc2hv
dy1tZXRob2QiPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+CkBA
IC0xMCw3ICsxMCwxNiBAQAogInVzZSBzdHJpY3QiOwogY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFsKICAgeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSwKLSAg
eyBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiB9LAorICB7
CisgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisg
ICAgZGF0YTogeworICAgICAgdmVyc2lvbjogMywKKyAgICAgIG1lcmNoYW50SWRlbnRpZmllcjog
Im1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgICAg
bWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICAgIHN1cHBvcnRlZE5l
dHdvcmtzOiBbInZpc2EiXSwKKyAgICB9CisgIH0sCiBdKTsKIAogY29uc3QgZGVmYXVsdERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKQEAgLTI2LDUzICszNSw4MCBAQCBjb25zdCBkZWZhdWx0RGV0
YWlscyA9IE9iamVjdC5mcmVlemUoewogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBjb25z
dCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0
YWlscyk7CiAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKLSAgYXdhaXQg
cHJvbWlzZV9yZWplY3RzKHQsICJTZWN1cml0eUVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CisgIC8v
IEFib3J0IHRoZSByZXF1ZXN0IGFmdGVyIDIgc2Vjb25kcyBpZiBpdCBoYXMgbm90IHJlamVjdGVk
LiBUaGlzIGFsbG93cyB0aGUKKyAgLy8gb3RoZXIgdGVzdHMgaW4gdGhpcyBmaWxlIHRvIHJ1biBl
dmVuIGlmIGEgbm9uLWNvbXBsaWFudCBicm93c2VyIHNob3dzIHRoZQorICAvLyBwYXltZW50IHNo
ZWV0IHdpdGhvdXQgdXNlciBhY3RpdmF0aW9uLgorICB0LnN0ZXBfdGltZW91dCgoKSA9PiB7Cisg
ICAgdC5mb3JjZV90aW1lb3V0KCk7CisgICAgcmVxdWVzdC5hYm9ydCgpOworICB9LCAyMDAwKTsK
KworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJTZWN1cml0eUVycm9yIiwgYWNjZXB0
UHJvbWlzZSk7CiB9LCBgQ2FsbGluZyBzaG93KCkgd2l0aG91dCBiZWluZyB0cmlnZ2VyZWQgYnkg
dXNlciBpbnRlcmFjdGlvbiB0aHJvd3NgKTsKIAotcHJvbWlzZV90ZXN0KHQgPT4gewotICByZXR1
cm4gdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCByZXF1ZXN0IiwgYXN5bmMgKCkgPT4g
ewotICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKTsKLSAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93
KCk7IC8vIFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZlIgotICAgIGF3YWl0IHByb21pc2VfcmVq
ZWN0cyh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LnNob3coKSk7Ci0gICAgYXdhaXQg
cmVxdWVzdC5hYm9ydCgpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJv
ciIsIGFjY2VwdFByb21pc2UpOwotICB9KTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVs
dERldGFpbHMpOworICBjb25zdCBbYWNjZXB0UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5i
bGVzcygKKyAgICAidGVzdDogdGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVdXSBpcyBub3Qg
J2NyZWF0ZWQnIiwKKyAgICAoKSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVx
dWVzdC5zaG93KCk7IC8vIFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZlIgorICAgICAgcmV0dXJu
IFthY2NlcHRQcm9taXNlXTsKKyAgICB9KTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0
LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CisgIGF3YWl0IHJlcXVlc3Qu
YWJvcnQoKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiQWJvcnRFcnJvciIsIGFj
Y2VwdFByb21pc2UpOwogfSwgIlRocm93cyBpZiB0aGUgcHJvbWlzZSBbW3N0YXRlXV0gaXMgbm90
ICdjcmVhdGVkJy4iKTsKIAotcHJvbWlzZV90ZXN0KHQgPT4gewotICByZXR1cm4gdGVzdF9kcml2
ZXIuYmxlc3MoInNob3cgcGF5bWVudCByZXF1ZXN0IiwgYXN5bmMgKCkgPT4gewotICAgIGNvbnN0
IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0
YWlscyk7Ci0gICAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgICBjb25zdCBhY2NlcHRQcm9taXNlMSA9IHJlcXVl
c3QxLnNob3coKTsKLSAgICBjb25zdCBhY2NlcHRQcm9taXNlMiA9IHJlcXVlc3QyLnNob3coKTsK
LSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNl
Mik7Ci0gICAgYXdhaXQgcmVxdWVzdDEuYWJvcnQoKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlMSk7Ci0gIH0pOworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBbYWNj
ZXB0UHJvbWlzZTFdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgYHRlc3Q6IHJlamVj
dCBwcm9taXNlIHdpdGggIkFib3J0ZWRFcnJvciIgaWYgcGF5bWVudCByZXF1ZXN0IGlzIGFscmVh
ZHkgc2hvd2luZ2AsCisgICAgYXN5bmMgKCkgPT4geworICAgICAgY29uc3QgYWNjZXB0UHJvbWlz
ZTEgPSByZXF1ZXN0MS5zaG93KCk7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNlMiA9IHJlcXVl
c3QyLnNob3coKTsKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJy
b3IiLCBhY2NlcHRQcm9taXNlMik7CisgICAgICByZXR1cm4gW2FjY2VwdFByb21pc2UxXTsKKyAg
ICB9KTsKKworICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOworICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZTEpOwogfSwgYElmIHRoZSB1c2Vy
IGFnZW50J3MgInBheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nIiBib29sZWFuIGlzIHRydWUsIHRo
ZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJBYm9ydEVycm9yIiBET01FeGNl
cHRpb24uYCk7CiAKLXByb21pc2VfdGVzdCh0ID0+IHsKLSAgcmV0dXJuIHRlc3RfZHJpdmVyLmJs
ZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsIGFzeW5jICgpID0+IHsKLSAgICBjb25zdCByZXF1
ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAotICAgICAgW3sgc3VwcG9ydGVkTWV0aG9kczogInRo
aXMtaXMtbm90LXN1cHBvcnRlZCIgfV0sCi0gICAgICBkZWZhdWx0RGV0YWlscwotICAgICk7Ci0g
ICAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOwotICAgIGF3YWl0IHByb21p
c2VfcmVqZWN0cyh0LCAiTm90U3VwcG9ydGVkRXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKLSAgfSk7
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVu
dFJlcXVlc3QoCisgICAgW3sgc3VwcG9ydGVkTWV0aG9kczogInRoaXMtaXMtbm90LXN1cHBvcnRl
ZCIgfV0sCisgICAgZGVmYXVsdERldGFpbHMKKyAgKTsKKyAgY29uc3QgW2FjY2VwdFByb21pc2Vd
ID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgYHRlc3Q6IHJlamVjdCBwcm9taXNlIHdp
dGggIk5vdFN1cHBvcnRlZEVycm9yImAsCisgICAgKCkgPT4geworICAgICAgY29uc3QgYWNjZXB0
UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworICAgICAgcmV0dXJuIFthY2NlcHRQcm9taXNlXTsK
KyAgICB9KTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90U3VwcG9ydGVkRXJy
b3IiLCBhY2NlcHRQcm9taXNlKTsKIH0sIGBJZiBwYXltZW50IG1ldGhvZCBjb25zdWx0YXRpb24g
cHJvZHVjZXMgbm8gc3VwcG9ydGVkIG1ldGhvZCBvZiBwYXltZW50LCB0aGVuIHJldHVybiBhIHBy
b21pc2UgcmVqZWN0ZWQgd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uLmAp
OwogCi1wcm9taXNlX3Rlc3QodCA9PiB7Ci0gIHJldHVybiB0ZXN0X2RyaXZlci5ibGVzcygic2hv
dyBwYXltZW50IHJlcXVlc3QiLCBhc3luYyAoKSA9PiB7Ci0gICAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdCgKLSAgICAgIFt7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJk
IiB9XSwKLSAgICAgIGRlZmF1bHREZXRhaWxzCi0gICAgKTsKLSAgICBjb25zdCBwcm9taXNlcyA9
IG5ldyBTZXQoW3JlcXVlc3Quc2hvdygpLCByZXF1ZXN0LnNob3coKSwgcmVxdWVzdC5zaG93KCld
KTsKLSAgICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhwcm9taXNl
cy5zaXplLCAzLCAiTXVzdCBoYXZlIHRocmVlIHVuaXF1ZSBvYmplY3RzIik7Ci0gIH0pOwotfSwg
IkNhbGxpbmcgc2hvdygpIG11bHRpcGxlIHRpbWVzIGlzIGFsd2F5cyBhIG5ldyBvYmplY3QuIik7
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgY29uc3QgW3AxLCBw
MiwgcDNdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgYHRlc3Q6IGNhbGxpbmcgc2hv
dygpIG11bHRpcGxlIHRpbWVzIGFsd2F5cyByZXR1cm5zIGEgbmV3IHByb21pc2VgLAorICAgICgp
ID0+IHsKKyAgICAgIGNvbnN0IHAxID0gcmVxdWVzdC5zaG93KCk7CisgICAgICBjb25zdCBwMiA9
IHJlcXVlc3Quc2hvdygpOworICAgICAgY29uc3QgcDMgPSByZXF1ZXN0LnNob3coKTsKKyAgICAg
IHJldHVybiBbcDEsIHAyLCBwM107CisgICAgfSk7CisgIGNvbnN0IHByb21pc2VzID0gbmV3IFNl
dChbcDEsIHAyLCBwM10pOworICBhc3NlcnRfZXF1YWxzKHByb21pc2VzLnNpemUsIDMsICJNdXN0
IGhhdmUgdGhyZWUgdW5pcXVlIG9iamVjdHMiKTsKKworICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
ZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHAyKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
X2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCBwMyk7CisKKyAgYXdhaXQgcmVxdWVzdC5hYm9y
dCgpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgcDEpOwor
fSwgIkNhbGxpbmcgc2hvdygpIG11bHRpcGxlIHRpbWVzIGFsd2F5cyByZXR1cm5zIGEgbmV3IHBy
b21pc2UuIik7CisKIDwvc2NyaXB0PgogPHNtYWxsPgogICBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRl
c3QsIHBsZWFzZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9pc3N1ZXMiPmZpbGUgYSBidWc8L2E+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3Bv
bnNlL2NvbXBsZXRlLW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9u
c2UvY29tcGxldGUtbWV0aG9kLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGE5ZGE5ZWVkOWNiYWVk
MDU0MGVmNTQyZjc1ODk2ZjUzMmE2MGQxM2UuLmY3ZmFjZDc5ODAwMTYxODlkM2RiZWU2NTNhMzg4
OTlkYTI2YmVkOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvY29tcGxldGUtbWV0
aG9kLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvY29tcGxldGUt
bWV0aG9kLW1hbnVhbC5odHRwcy5odG1sCkBAIC0xMiwxMyArMTIsMTYgQEAgYXN5bmMgZnVuY3Rp
b24gcnVuTWFudWFsVGVzdCh7IGNvbXBsZXRlV2l0aDogcmVzdWx0IH0sIGJ1dHRvbikgewogICBi
dXR0b24uZGlzYWJsZWQgPSB0cnVlOwogICBjb25zdCB7IHJlc3BvbnNlLCByZXF1ZXN0IH0gPSBh
d2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3BvbnNlKCk7CiAgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICBsZXQgY29tcGxldGVQcm9taXNlOworICAgIGxldCBpbnZhbGlkQ29tcGxldGU7
CisgICAgbGV0IGFmdGVyQ29tcGxldGU7CiAgICAgdHJ5IHsKICAgICAgIC8vIFdlIC5jb21wbGV0
ZSgpIGFzIG5vcm1hbCwgdXNpbmcgdGhlIHBhc3NlZCB0ZXN0IHZhbHVlCi0gICAgICBjb25zdCBj
b21wbGV0ZVByb21pc2UgPSByZXNwb25zZS5jb21wbGV0ZShyZXN1bHQpOworICAgICAgY29tcGxl
dGVQcm9taXNlID0gcmVzcG9uc2UuY29tcGxldGUocmVzdWx0KTsKICAgICAgIGFzc2VydF90cnVl
KGNvbXBsZXRlUHJvbWlzZSBpbnN0YW5jZW9mIFByb21pc2UsICJyZXR1cm5zIGEgcHJvbWlzZSIp
OwogICAgICAgLy8gSW1tZWRpYXRlbHkgY2FsbGluZyBjb21wbGV0ZSgpIGFnYWluIHlpZWxkcyBh
IHJlamVjdGVkIHByb21pc2UuCi0gICAgICBjb25zdCBpbnZhbGlkQ29tcGxldGUgPSByZXNwb25z
ZS5jb21wbGV0ZShyZXN1bHQpOwotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZh
bGlkU3RhdGVFcnJvciIsIGludmFsaWRDb21wbGV0ZSk7CisgICAgICBpbnZhbGlkQ29tcGxldGUg
PSByZXNwb25zZS5jb21wbGV0ZShyZXN1bHQpOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
X2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCBpbnZhbGlkQ29tcGxldGUpOwogICAgICAgLy8g
YnV0IHRoZSBvcmlnaW5hbCBwcm9taXNlIGlzIHVuYWZmZWN0ZWQKICAgICAgIGNvbnN0IHJldHVy
bmVkVmFsdWUgPSBhd2FpdCBjb21wbGV0ZVByb21pc2U7CiAgICAgICBhc3NlcnRfZXF1YWxzKApA
QCAtMjgsOCArMzEsOCBAQCBhc3luYyBmdW5jdGlvbiBydW5NYW51YWxUZXN0KHsgY29tcGxldGVX
aXRoOiByZXN1bHQgfSwgYnV0dG9uKSB7CiAgICAgICApOwogICAgICAgLy8gV2Ugbm93IGNhbGwg
LmNvbXBsZXRlKCkgYWdhaW4sIHRvIGZvcmNlIGFuIGV4Y2VwdGlvbgogICAgICAgLy8gYmVjYXVz
ZSBbW2NvbXBsZXRlXV0gaXMgdHJ1ZS4KLSAgICAgIGNvbnN0IGFmdGVyQ29tcGxldGUgPSByZXNw
b25zZS5jb21wbGV0ZShyZXN1bHQpOwotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJ
bnZhbGlkU3RhdGVFcnJvciIsIGFmdGVyQ29tcGxldGUpOworICAgICAgYWZ0ZXJDb21wbGV0ZSA9
IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
ZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIGFmdGVyQ29tcGxldGUpOwogICAgICAgYnV0dG9u
LmlubmVySFRNTCA9IGDinIUgICR7YnV0dG9uLnRleHRDb250ZW50fWA7CiAgICAgfSBjYXRjaCAo
ZXJyKSB7CiAgICAgICBidXR0b24uaW5uZXJIVE1MID0gYOKdjCAgJHtidXR0b24udGV4dENvbnRl
bnR9YDsKQEAgLTQxLDcgKzQ0LDcgQEAgYXN5bmMgZnVuY3Rpb24gcnVuTWFudWFsVGVzdCh7IGNv
bXBsZXRlV2l0aDogcmVzdWx0IH0sIGJ1dHRvbikgewogICAgICAgYWZ0ZXJDb21wbGV0ZSwKICAg
ICBdKTsKICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgYWxsUHJvbWlzZXMubGVuZ3RoLAorICAg
ICAgYWxsUHJvbWlzZXMuc2l6ZSwKICAgICAgIDMsCiAgICAgICAiQ2FsbGluZyBjb21wbGV0ZSgp
IG11bHRpcGxlIHRpbWVzIGlzIGFsd2F5cyBhIG5ldyBvYmplY3QuIgogICAgICk7CkBAIC02OCw3
ICs3MSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHJ1bk1hbnVhbFRlc3QoeyBjb21wbGV0ZVdpdGg6IHJl
c3VsdCB9LCBidXR0b24pIHsKICAgICA8L2J1dHRvbj4KICAgPC9saT4KICAgPGxpPgotICAgIDxi
dXR0b24gb25jbGljaz0icnVuTWFudWFsVGVzdCh7Y29tcGxldGVXaXRoOiAndW5rbm93bid9LCB0
aGlzKSI+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJydW5NYW51YWxUZXN0KHtjb21wbGV0ZVdpdGg6
IHVuZGVmaW5lZH0sIHRoaXMpIj4KICAgICAgIFBhc3Npbmcgbm8gYXJndW1lbnQgZGVmYXVsdHMg
dG8gInVua25vd24iLAogICAgICAgZXZlbnR1YWxseSBjbG9zaW5nIHRoZSBzaGVldCBhbmQgZG9l
c24ndCB0aHJvdy4KICAgICA8L2J1dHRvbj4KQEAgLTc5LDEwICs4MiwxOCBAQCBhc3luYyBmdW5j
dGlvbiBydW5NYW51YWxUZXN0KHsgY29tcGxldGVXaXRoOiByZXN1bHQgfSwgYnV0dG9uKSB7CiAg
ICAgPC9idXR0b24+CiAgIDwvbGk+CiAgIDxsaT4KLSAgICA8YnV0dG9uIG9uY2xpY2s9InJ1bk1h
bnVhbFRlc3Qoe2NvbXBsZXRlV2l0aDogJ2ZhaWwnfSwgdGhpcykudGhlbihkb25lKSI+CisgICAg
PGJ1dHRvbiBvbmNsaWNrPSJydW5NYW51YWxUZXN0KHtjb21wbGV0ZVdpdGg6ICdmYWlsJ30sIHRo
aXMpIj4KICAgICAgIFBhc3NpbmcgImZhaWwiIGV2ZW50dWFsbHkgY2xvc2VzIHRoZSBzaGVldCBh
bmQgZG9lc24ndCB0aHJvdy4KICAgICA8L2J1dHRvbj4KICAgPC9saT4KKyAgPGxpPgorICAgIDxi
dXR0b24gb25jbGljaz0icnVuTWFudWFsVGVzdCh7Y29tcGxldGVXaXRoOiAndW5rbm93bid9LCB0
aGlzKSI+CisgICAgICBQYXNzaW5nICJ1bmtub3duIiBldmVudHVhbGx5IGNsb3NlcyB0aGUgc2hl
ZXQgYW5kIGRvZXNuJ3QgdGhyb3cuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAg
ICA8YnV0dG9uIG9uY2xpY2s9ImRvbmUoKSI+RG9uZSE8L2J1dHRvbj4KKyAgPC9saT4KIDwvb2w+
CiA8c21hbGw+CiAgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1
ZzwvYT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvaGVscGVycy5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVzcG9uc2UvaGVscGVycy5qcwppbmRleCA4MDdmNzk0ZTcxZWZiMzVmODYyMmViMGFh
NDc4YWU2YTYwMzljMjYwLi4zZTRmNWNmZDM2Zjg5OGMxMTY3MTdjMTE1MTgwNmY5NjY1MTFhOTQ1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL2hlbHBlcnMuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXNwb25zZS9oZWxwZXJzLmpzCkBAIC0xLDEwICsxLDIxIEBACiBzZXR1cCh7IGV4cGxp
Y2l0X2RvbmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7CiAKK2NvbnN0IGFwcGxl
UGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxl
LmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFu
dElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJV
UyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBw
b3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOworCiBjb25zdCB2YWxpZE1ldGhvZCA9
IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiB9KTsK
IAotY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2RdKTsKK2Nv
bnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kLCBhcHBsZVBheV0p
OwogCiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoewogICBjdXJyZW5jeTogIlVT
RCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL29ucGF5ZXJkZXRhaWxjaGFuZ2Ut
YXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9vbnBheWVy
ZGV0YWlsY2hhbmdlLWF0dHJpYnV0ZS1tYW51YWwuaHR0cHMuaHRtbAppbmRleCBjOGRkOTI2MzZj
NjM5MmIyNDM2YzgyMzUzNDAzNTVjNDUyOWUxMmMxLi41NzMxOTUyYzBlYmMwZTgwODVjYjM0MGI1
YjdjZmM0Nzg4NDlmYzk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL29ucGF5ZXJk
ZXRhaWxjaGFuZ2UtYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVzcG9uc2Uvb25wYXllcmRldGFpbGNoYW5nZS1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwK
QEAgLTE2LDcgKzE2LDE0IEBAIGZ1bmN0aW9uIHJ1blRlc3QoYnV0dG9uLCBvcHRpb25zLCBleHBl
Y3RlZCl7CiAgICAgYXdhaXQgcmVzcG9uc2UucmV0cnkoeyBlcnJvciB9KTsKICAgICBjb25zdCBl
dmVudCA9IGF3YWl0IGV2ZW50UHJvbWlzZTsKICAgICBhc3NlcnRfdHJ1ZShldmVudCBpbnN0YW5j
ZW9mIFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQpOwotICAgIGZvcihjb25zdCBbcHJvcCwgdmFs
dWVdIG9mIE9iamVjdC5lbnRyaWVzKGV4cGVjdGVkKSl7CisgICAgZm9yKFtwcm9wLCB2YWx1ZV0g
b2YgT2JqZWN0LmVudHJpZXMoZXhwZWN0ZWQpKXsKKyAgICAgIGlmIChwcm9wID09PSAncGF5ZXJQ
aG9uZScpIHsKKyAgICAgICAgLy8gfHBheWVyUGhvbmV8IG1heSBvcHRpb25hbGx5IGFkaGVyZSB0
byBFMTY0IHN0cnVjdHVyZSwgd2hpY2ggZG9lcyBub3QKKyAgICAgICAgLy8gY29udGFpbiBmb3Jt
YXR0aW5nLCBlLmcuICsxODAwMDAwMDAgaW5zdGVhZCBvZiArMS04MDAtMDAwLTAwMDAuCisgICAg
ICAgIC8vIFN0cmlwIG91dCB0aGUgZm9ybWF0dGluZyBpbiBjYXNlIHRoZSB1c2VyIGFnZW50IGlt
cGxlbWVudHMgRTE2NC4KKyAgICAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQt
cmVxdWVzdC8jYWRkcmVzc2luaXQtZGljdGlvbmFyeQorICAgICAgICB2YWx1ZSA9IHZhbHVlLnJl
cGxhY2UoL1stXChcKSBdL2csICcnKTsKKyAgICAgIH0KICAgICAgIGFzc2VydF9lcXVhbHMocmVz
cG9uc2VbcHJvcF0sIHZhbHVlKTsKICAgICB9CiAgICAgYXdhaXQgcmVzcG9uc2UuY29tcGxldGUo
InN1Y2Nlc3MiKTsKQEAgLTUyLDcgKzU5LDcgQEAgZnVuY3Rpb24gcnVuVGVzdChidXR0b24sIG9w
dGlvbnMsIGV4cGVjdGVkKXsKICAgICA8cD4KICAgICAgIENoYW5nZSBwYXllcidzIHBob25lIHRv
ICIrMS04MDAtMDAwLTAwMDAiLgogICAgIDwvcD4KLSAgICA8YnV0dG9uIG9uY2xpY2s9InJ1blRl
c3QodGhpcywge3JlcXVlc3RQYXllclBob25lOiB0cnVlfSwgeyBwYXllclBob25lOiAnKzEtODAw
LTAwMC0wMDAwJyB9KSI+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJydW5UZXN0KHRoaXMsIHtyZXF1
ZXN0UGF5ZXJQaG9uZTogdHJ1ZX0sIHsgcGF5ZXJQaG9uZTogJysxODAwMDAwMDAwMCcgfSkiPgog
ICAgICAgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gcGF5ZXIg
cGhvbmUgY2hhbmdlcy4KICAgICA8L2J1dHRvbj4KICAgPC9saT4KQEAgLTYyLDUgKzY5LDUgQEAg
ZnVuY3Rpb24gcnVuVGVzdChidXR0b24sIG9wdGlvbnMsIGV4cGVjdGVkKXsKIDwvb2w+CiA8c21h
bGw+CiAgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4K
LSAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9PV05FUlMiPm93bmVy
czwvYT4uCisgIGFuZCB0YWcgb25lIG9mIHRoZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55
bWwiPm93bmVyczwvYT4uCiA8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hhbmdlLXVwZGF0
ZVdpdGgtaW1tZWRpYXRlLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBi
ZTUwMzM4NjlhZTExYzUxYTM5YWM2YTI3OTYyMGJkOTRkMjNhNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgtaW1tZWRp
YXRlLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorSGFuZGxpbmcg
UGF5bWVudFJlc3BvbnNlLnByb3RvdHlwZS5vbnBheWVyZGV0YWlsY2hhbmdlIGV2ZW50cworCitU
aGUgdGVzdCBicmluZ3MgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuIFdoZW4gc2hv
d24gdGhlIHBheW1lbnQgc2hlZXQsIHVzZSBhbnkgZGV0YWlscyBhbmQgaGl0IHBheS4KKworV2hl
biBhc2tlZCB0byByZXRyeSB0aGUgcGF5bWVudDoKKworQ2hhbmdlIHBheWVyJ3MgbmFtZSB0byBh
bnl0aGluZy4KKwordXBkYXRlV2l0aCgpIG11c3QgYmUgY2FsbGVkIGltbWVkaWF0ZWx5LCBvdGhl
cndpc2UgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvci4KK0RPTkUhCitJZiB5b3UgZmlu
ZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBvd25l
cnMuCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitQQVNTIENh
biBjb25zdHJ1Y3QgYSBwYXltZW50IHJlcXVlc3QgKHNtb2tlIHRlc3QpLiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1pbW1l
ZGlhdGUtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWls
c2NoYW5nZS11cGRhdGVXaXRoLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43ZTM1ZDc4NzAwNmViYjU1NGMzMDVhYmMzOGE0MjdhNDEzNTY3NmYyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1p
bW1lZGlhdGUtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPkRpc3BhdGNoaW5nIFBheW1lbnRSZXF1
ZXN0VXBkYXRlRXZlbnQgZm9yICJwYXllcmRldGFpbHNjaGFuZ2UiPC90aXRsZT4KKzxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImhlbHBl
cnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RJbW1lZGlhdGVVcGRhdGUo
eyB0ZXh0Q29udGVudDogdGVzdE5hbWUgfSkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRQYXltZW50UmVzcG9uc2UoeyByZXF1ZXN0
UGF5ZXJOYW1lOiB0cnVlIH0pOworICAgIGNvbnN0IGV2ZW50UHJvbWlzZSA9IG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgIHJlc3BvbnNlLmFkZEV2ZW50TGlzdGVuZXIo
CisgICAgICAgICJwYXllcmRldGFpbGNoYW5nZSIsCisgICAgICAgIGV2ID0+IHsKKyAgICAgICAg
ICAvLyBGb3JjZXMgdXBkYXRlV2l0aCgpIHRvIGJlIHJ1biBpbiB0aGUgbmV4dCBldmVudCBsb29w
IHRpY2sgc28gdGhhdAorICAgICAgICAgIC8vIFtbd2FpdEZvclVwZGF0ZV1dIGlzIGFscmVhZHkg
dHJ1ZSB3aGVuIGl0IHJ1bnMuCisgICAgICAgICAgdC5zdGVwX3RpbWVvdXQoKCkgPT4geworICAg
ICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgZXYudXBkYXRlV2l0aCh7fSk7CisgICAgICAg
ICAgICAgIHJlc29sdmUoKTsgLy8gVGhpcyBpcyBiYWQuCisgICAgICAgICAgICB9IGNhdGNoIChl
cnIpIHsKKyAgICAgICAgICAgICAgcmVqZWN0KGVycik7IC8vIHRoaXMgaXMgZ29vZC4KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICB9KTsKKyAgICAgICAgfSwKKyAgICAgICAgeyBvbmNlOiB0cnVl
IH0KKyAgICAgICk7CisgICAgfSk7CisKKyAgICBjb25zdCByZXRyeVByb21pc2UgPSByZXNwb25z
ZS5yZXRyeSh7CisgICAgICBwYXllcjogeyBuYW1lOiAiQ2hhbmdlIG1lISIgfSwKKyAgICB9KTsK
KyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgdCwKKyAgICAgICJJbnZhbGlk
U3RhdGVFcnJvciIsCisgICAgICBldmVudFByb21pc2UsCisgICAgICAiVGhlIGV2ZW50IGxvb3Ag
YWxyZWFkeSBzcHVuLCBzbyBbW3dhaXRGb3JVcGRhdGVdXSBpcyBub3cgdHJ1ZSIKKyAgICApOwor
ICAgIGF3YWl0IHJldHJ5UHJvbWlzZTsKKyAgICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3Vj
Y2VzcyIpOworICB9LCB0ZXN0TmFtZS50cmltKCkpOworfQorPC9zY3JpcHQ+Cis8aDI+SGFuZGxp
bmcgUGF5bWVudFJlc3BvbnNlLnByb3RvdHlwZS5vbnBheWVyZGV0YWlsY2hhbmdlIGV2ZW50czwv
aDI+Cis8cD4KKyAgVGhlIHRlc3QgYnJpbmdzIHVwIHRoZSBQYXltZW50IFJlcXVlc3QgVUkgd2lu
ZG93LgorICBXaGVuIHNob3duIHRoZSBwYXltZW50IHNoZWV0LCB1c2UgYW55IGRldGFpbHMgYW5k
IGhpdCBwYXkuCis8L3A+Cis8cD4KKyAgV2hlbiBhc2tlZCB0byByZXRyeSB0aGUgcGF5bWVudDoK
KzwvcD4KKzxvbD4KKyAgPGxpPgorICAgIDxwPgorICAgICAgQ2hhbmdlIHBheWVyJ3MgbmFtZSB0
byBhbnl0aGluZy4KKyAgICA8L3A+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0SW1tZWRpYXRl
VXBkYXRlKHRoaXMpOyI+CisgICAgICB1cGRhdGVXaXRoKCkgbXVzdCBiZSBjYWxsZWQgaW1tZWRp
YXRlbHksIG90aGVyd2lzZSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yLgorICAgIDwv
YnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJkb25lKCk7Ij5E
T05FITwvYnV0dG9uPgorICA8L2xpPgorPC9vbD4KKzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBi
dWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUg
PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9t
YXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sIj5vd25lcnM8L2E+LgorPC9zbWFsbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdp
dGgtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJk
ZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42OTNkN2E1YWVjYWUxMDM2YWZhMzBkMGQ4Mjk0OTQ1ZmVmM2NhNzM5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0
aC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK0hhbmRsaW5nIFBh
eW1lbnRSZXNwb25zZS5wcm90b3R5cGUub25wYXllcmRldGFpbGNoYW5nZSBldmVudHMKKworVGhl
IHRlc3QgYnJpbmdzIHVwIHRoZSBQYXltZW50IFJlcXVlc3QgVUkgd2luZG93LiBXaGVuIHNob3du
IHRoZSBwYXltZW50IHNoZWV0LCB1c2UgYW55IGRldGFpbHMgYW5kIGhpdCBwYXkuCisKK1doZW4g
YXNrZWQgdG8gcmV0cnkgdGhlIHBheW1lbnQ6CisKK0NoYW5nZSBwYXllcidzIG5hbWUgdG8gYW55
dGhpbmcuCisKK0NhbGxpbmcgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCB1cGRhdGVXaXRoKCkg
dHdpY2UgdGhyb3dzIGFuICJJbnZhbGlkU3RhdGVFcnJvciIuCitET05FIQorSWYgeW91IGZpbmQg
YSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFnIG9uZSBvZiB0aGUgb3duZXJz
LgorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworUEFTUyBDYW4g
Y29uc3RydWN0IGEgcGF5bWVudCByZXF1ZXN0IChzbW9rZSB0ZXN0KS4gCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgtbWFudWFs
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRh
dGVXaXRoLW1hbnVhbC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNzM0MjM2NWQ2NDRmNjQ3MGVh
MmNlMjVmZTg1Y2ZmYWU2NDc5NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3Bv
bnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRhdGVXaXRoLW1hbnVhbC5odHRwcy5odG1sCkBAIC0w
LDAgKzEsNTYgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRs
ZT5EaXNwYXRjaGluZyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IGZvciAicGF5ZXJkZXRhaWxz
Y2hhbmdlIjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJoZWxwZXJzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiBydW5UZXN0KGJ1dHRvbikgeworICBidXR0b24uZGlzYWJsZWQgPSB0cnVlOworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRQYXlt
ZW50UmVzcG9uc2UoeyByZXF1ZXN0UGF5ZXJOYW1lOiB0cnVlIH0pOworICAgIGNvbnN0IGV2ZW50
UHJvbWlzZSA9IG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHsKKyAgICAgIHJlc3BvbnNlLmFk
ZEV2ZW50TGlzdGVuZXIoInBheWVyZGV0YWlsY2hhbmdlIiwgZXYgPT4geworICAgICAgICAvLyBb
W3dhaXRGb3JVcGRhdGVdXSBiZWNvbWVzIHRydWUuLi4KKyAgICAgICAgZXYudXBkYXRlV2l0aCh7
fSk7CisgICAgICAgIC8vIFNvIGNhbGxpbmcgaXQgYWdhaW4gdGhyb3dzICJJbnZhbGlkU3RhdGVF
cnJvciIuCisgICAgICAgIHRyeSB7CisgICAgICAgICAgZXYudXBkYXRlV2l0aCh7fSk7CisgICAg
ICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgICAgIHJlamVjdChlcnIpOworICAgICAgICB9Cisg
ICAgICB9KTsKKyAgICB9KTsKKyAgICBhd2FpdCByZXNwb25zZS5yZXRyeSh7CisgICAgICBwYXll
cjogeyBuYW1lOiAiQ2hhbmdlIG1lISIgfSwKKyAgICB9KTsKKyAgICBhd2FpdCBwcm9taXNlX3Jl
amVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIGV2ZW50UHJvbWlzZSk7CisgICAgYXdh
aXQgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiKTsKKyAgfSwgYnV0dG9uLnRleHRDb250ZW50
LnRyaW0oKSk7Cit9Cis8L3NjcmlwdD4KKzxoMj5IYW5kbGluZyBQYXltZW50UmVzcG9uc2UucHJv
dG90eXBlLm9ucGF5ZXJkZXRhaWxjaGFuZ2UgZXZlbnRzPC9oMj4KKzxwPgorICBUaGUgdGVzdCBi
cmluZ3MgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuCisgIFdoZW4gc2hvd24gdGhl
IHBheW1lbnQgc2hlZXQsIHVzZSBhbnkgZGV0YWlscyBhbmQgaGl0IHBheS4KKzwvcD4KKzxwPgor
ICBXaGVuIGFza2VkIHRvIHJldHJ5IHRoZSBwYXltZW50OgorPC9wPgorPG9sPgorICA8bGk+Cisg
ICAgPHA+CisgICAgICBDaGFuZ2UgcGF5ZXIncyBuYW1lIHRvIGFueXRoaW5nLgorICAgIDwvcD4K
KyAgICA8YnV0dG9uIG9uY2xpY2s9InJ1blRlc3QodGhpcyk7Ij4KKyAgICAgIENhbGxpbmcgUGF5
bWVudFJlcXVlc3RVcGRhdGVFdmVudCB1cGRhdGVXaXRoKCkgdHdpY2UgdGhyb3dzIGFuICJJbnZh
bGlkU3RhdGVFcnJvciIuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0
dG9uIG9uY2xpY2s9ImRvbmUoKTsiPkRPTkUhPC9idXR0b24+CisgIDwvbGk+Cis8L29sPgorPHNt
YWxsPgorICBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSA8YSBocmVmPSJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMiPmZpbGUgYSBidWc8L2E+
CisgIGFuZCB0YWcgb25lIG9mIHRoZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwiPm93
bmVyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZWpl
Y3RzX2lmX25vdF9hY3RpdmUtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNl
L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMuaHRtbAppbmRleCA2MGRkOTY1NWRk
NWJhZmNkYjc3NjhiOTI5Njk2Y2I5MTA0MjE0YjI5Li4yOGJiNTMzMTNkY2U5MjY2NDUzYjg5ZjNi
ZDk4ZDdjMDFjYjllYTY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JlamVjdHNf
aWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNl
L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtMTEsNyArMTEsMTcg
QEAgc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlLCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0p
OwogY29uc3QgdmFsaWRNZXRob2QgPSBPYmplY3QuZnJlZXplKHsKICAgc3VwcG9ydGVkTWV0aG9k
czogImJhc2ljLWNhcmQiLAogfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXpl
KFt2YWxpZE1ldGhvZF0pOworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3Vw
cG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsK
KyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5l
eGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGll
czogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAg
fQorfSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwg
YXBwbGVQYXldKTsKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGN1cnJl
bmN5OiAiVVNEIiwKICAgdmFsdWU6ICI1LjAwIiwKQEAgLTYyLDcgKzcyLDcgQEAgZnVuY3Rpb24g
bWV0aG9kTm90RnVsbHlBY3RpdmUoYnV0dG9uLCBtZXRob2QsIC4uLmFyZ3MpIHsKICAgICAvLyBO
b3csIHJlc3BvbnNlJ3MgcmVsZXZhbnQgZ2xvYmFsIG9iamVjdCdzIGRvY3VtZW50IGlzIG5vIGxv
bmdlciBhY3RpdmUuCiAgICAgLy8gU28sIHByb21pc2UgbmVlZHMgdG8gcmVqZWN0IGFwcHJvcHJp
YXRlbHkuCiAgICAgY29uc3QgcHJvbWlzZSA9IHJlc3BvbnNlW21ldGhvZE5hbWVdKC4uLmFyZ3Mp
OwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
ZG9tKAogICAgICAgdCwKICAgICAgICJBYm9ydEVycm9yIiwKICAgICAgIHByb21pc2UsCkBAIC05
Nyw3ICsxMDcsNyBAQCBmdW5jdGlvbiBtZXRob2RCZWNvbWVzTm90RnVsbHlBY3RpdmUoYnV0dG9u
LCBtZXRob2ROYW1lLCAuLi5hcmdzKSB7CiAKICAgICAvLyBOb3csIHJlc3BvbnNlJ3MgcmVsZXZh
bnQgZ2xvYmFsIG9iamVjdCdzIGRvY3VtZW50IGlzIG5vIGxvbmdlciBhY3RpdmUuCiAgICAgLy8g
U28sIHByb21pc2UgbmVlZHMgdG8gcmVqZWN0IGFwcHJvcHJpYXRlbHkuCi0gICAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAog
ICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgcHJvbWlzZSwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVzcG9uc2UvcmV0cnktbWV0aG9kLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXNwb25zZS9yZXRyeS1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggMTZlZDE1ZTU0OTAy
YjkzNDg1ZWUzYmU3YTI2MzU4MjNlODc2M2IwNi4uYTVhYWI0OWUzODdkMzI2YzY4YmNjYTMyZDJh
ZDVmZTU5Mzg1ZjUxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZXRyeS1tZXRo
b2QtbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZXRyeS1tZXRo
b2QtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gY2hlY2tDb21w
bGV0ZWRDYW50UmV0cnkoYnV0dG9uKSB7CiAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQg
Z2V0UGF5bWVudFJlcXVlc3RSZXNwb25zZSgpOwogICAgIC8vIHNldHMgcmVzcG9uc2UuW1tjb21w
bGV0ZV1dIHRvIHRydWUuCiAgICAgYXdhaXQgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiKTsK
LSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKAorICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNf
ZG9tKAogICAgICAgdCwKICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICByZXNwb25z
ZS5yZXRyeSgpLApAQCAtMzksNyArMzksNyBAQCBmdW5jdGlvbiByZXBlYXRlZENhbGxzVG9SZXRy
eShidXR0b24pIHsKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHsgcmVz
cG9uc2UgfSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoKTsKICAgICBjb25zdCBy
ZXRyeVByb21pc2UgPSByZXNwb25zZS5yZXRyeSgpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgdCwKICAgICAgICJJbnZh
bGlkU3RhdGVFcnJvciIsCiAgICAgICByZXNwb25zZS5yZXRyeSgpLApAQCAtNTUsMTIgKzU1LDMw
IEBAIGZ1bmN0aW9uIGNhbGxDb21wbGV0ZVdoaWxlUmV0cnlpbmcoYnV0dG9uKSB7CiAgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSBhd2FpdCBnZXRQ
YXltZW50UmVxdWVzdFJlc3BvbnNlKCk7CiAgICAgY29uc3QgcmV0cnlQcm9taXNlID0gcmVzcG9u
c2UucmV0cnkoKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgY29uc3QgY29tcGxl
dGVQcm9taXNlMSA9IHJlc3BvbnNlLmNvbXBsZXRlKCJzdWNjZXNzIik7CisgICAgY29uc3QgY29t
cGxldGVQcm9taXNlMiA9IHJlc3BvbnNlLmNvbXBsZXRlKCJmYWlsIik7CisgICAgYXNzZXJ0X25v
dF9lcXVhbHMoCisgICAgICBjb21wbGV0ZVByb21pc2UxLAorICAgICAgY29tcGxldGVQcm9taXNl
MiwKKyAgICAgICJjb21wbGV0ZSgpIG11c3QgcmV0dXJuIHVuaXF1ZSBwcm9taXNlcyIKKyAgICAp
OworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFs
aWRTdGF0ZUVycm9yIiwKLSAgICAgIHJlc3BvbnNlLmNvbXBsZXRlKCJzdWNjZXNzIiksCisgICAg
ICBjb21wbGV0ZVByb21pc2UxLAorICAgICAgIkNhbGxpbmcgY29tcGxldGUoKSB3aGlsZSByZXRy
eWluZyByZWplY3RzIHdpdGggYW4gSW52YWxpZFN0YXRlRXJyb3IiCisgICAgKTsKKyAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgdCwKKyAgICAgICJJbnZhbGlkU3RhdGVFcnJv
ciIsCisgICAgICBjb21wbGV0ZVByb21pc2UyLAogICAgICAgIkNhbGxpbmcgY29tcGxldGUoKSB3
aGlsZSByZXRyeWluZyByZWplY3RzIHdpdGggYW4gSW52YWxpZFN0YXRlRXJyb3IiCiAgICAgKTsK
KyAgICBhc3NlcnRfbm90X2VxdWFscygKKyAgICAgIGNvbXBsZXRlUHJvbWlzZTEsCisgICAgICBj
b21wbGV0ZVByb21pc2UyLAorICAgICAgImNvbXBsZXRlKCkgbXVzdCByZXR1cm4gdW5pcXVlIHBy
b21pc2VzIgorICAgICk7CiAgICAgYXdhaXQgcmV0cnlQcm9taXNlOwogICAgIGF3YWl0IHJlc3Bv
bnNlLmNvbXBsZXRlKCJzdWNjZXNzIik7CiAgIH0sIGJ1dHRvbi50ZXh0Q29udGVudC50cmltKCkp
OwpAQCAtNzEsNyArODksNyBAQCBmdW5jdGlvbiBjYWxsaW5nUmVxdWVzdEFib3J0TXVzdE5vdEFi
b3J0KGJ1dHRvbikgewogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgeyBy
ZXNwb25zZSwgcmVxdWVzdCB9ID0gYXdhaXQgZ2V0UGF5bWVudFJlcXVlc3RSZXNwb25zZSgpOwog
ICAgIGNvbnN0IHJldHJ5UHJvbWlzZSA9IHJlc3BvbnNlLnJldHJ5KCk7Ci0gICAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAog
ICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIHJlcXVlc3QuYWJvcnQoKSwKQEAgLTk3
LDcgKzExNSw3IEBAIGZ1bmN0aW9uIGNhblJldHJ5TXVsdGlwbGVUaW1lcyhidXR0b24pIHsKICAg
ICAgICJFeHBlY3RlZCB1bmRlZmluZWQgYXMgdGhlIHJlc29sdmUgdmFsdWUiCiAgICAgKTsKICAg
ICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3VjY2VzcyIpOwotICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgdCwKICAgICAg
ICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICByZXNwb25zZS5yZXRyeSgpLApAQCAtMTEwLDE5
ICsxMjgsMTkgQEAgZnVuY3Rpb24gdXNlckNhbkFib3J0QVJldHJ5KGJ1dHRvbikgewogICBidXR0
b24uZGlzYWJsZWQgPSB0cnVlOwogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29u
c3QgeyByZXNwb25zZSB9ID0gYXdhaXQgZ2V0UGF5bWVudFJlcXVlc3RSZXNwb25zZSgpOwotICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAog
ICAgICAgdCwKICAgICAgICJBYm9ydEVycm9yIiwKICAgICAgIHJlc3BvbnNlLnJldHJ5KCksCiAg
ICAgICAiVGhlIHVzZXIgYWJvcnRpbmcgYSByZXRyeSByZWplY3RzIHdpdGggYSBBYm9ydEVycm9y
IgogICAgICk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAg
IHJlc3BvbnNlLnJldHJ5KCksCiAgICAgICAiQWZ0ZXIgdGhlIHVzZXIgYWJvcnRzLCByZXNwb25z
ZSBbW2NvbXBsZXRlXV0gaXMgdHJ1ZSBzbyByZXRyeSgpIG11c3QgcmVqZWN0IHdpdGggSW52YWxp
ZFN0YXRlRXJyb3IiCiAgICAgKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJy
b3IiLAogICAgICAgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiKSwKQEAgLTE0NiwyMyArMTY0
LDI1IEBAIGZ1bmN0aW9uIHVzZXJJc1Nob3duRXJyb3JzRmllbGRzKGJ1dHRvbikgewogZnVuY3Rp
b24gYWJvcnRUaGVVcGRhdGUoYnV0dG9uKSB7CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CiAg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBjb25zdCB7IHJlc3BvbnNlLCByZXF1ZXN0
IH0gPSBhd2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3BvbnNlKHsgcmVxdWVzdFNoaXBwaW5nOiB0
cnVlIH0pOwotICAgIC8vIGNhdXNlcyAiYWJvcnQgdGhlIHVwZGF0ZSIgdG8gcnVuCi0gICAgY29u
c3Qgc2hpcHBpbmdDaGFuZ2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAg
ICAgcmVxdWVzdC5vbnNoaXBwaW5nb3B0aW9uY2hhbmdlID0gKCkgPT4gewotICAgICAgICBldmVu
dC51cGRhdGVXaXRoKHsgdG90YWw6IHsgYW1vdW50OiB7IGN1cnJlbmN5OiAiVVNEIiwgdmFsdWU6
ICJJTlZBTElEIiB9IH19KTsKKyAgICBjb25zdCB7IHJlc3BvbnNlLCByZXF1ZXN0IH0gPSBhd2Fp
dCBnZXRQYXltZW50UmVxdWVzdFJlc3BvbnNlKHsKKyAgICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1
ZSwKKyAgICB9KTsKKyAgICBjb25zdCBzaGlwT3B0aW9uQ2hhbmdlUHJvbWlzZSA9IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4geworICAgICAgcmVxdWVzdC5vbnNoaXBwaW5nb3B0aW9uY2hhbmdlID0g
ZXZlbnQgPT4geworICAgICAgICAvLyBjYXVzZXMgImFib3J0IHRoZSB1cGRhdGUiIHRvIHJ1bgor
ICAgICAgICBldmVudC51cGRhdGVXaXRoKHsgdG90YWw6ICJlcnJvciEiIH0pOwogICAgICAgICBy
ZXNvbHZlKCk7CiAgICAgICB9OwogICAgIH0pOwogICAgIGNvbnN0IHJldHJ5UHJvbWlzZSA9IHJl
c3BvbnNlLnJldHJ5KCk7Ci0gICAgYXdhaXQgc2hpcHBpbmdDaGFuZ2VkUHJvbWlzZTsKLSAgICBh
d2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgc2hpcE9wdGlvbkNoYW5nZVByb21pc2U7
CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2pzKAogICAgICAgdCwKLSAgICAgIG5ldyBUeXBl
RXJyb3IoKSwKKyAgICAgIFR5cGVFcnJvciwKICAgICAgIHJldHJ5UHJvbWlzZSwKICAgICAgICJy
ZXRyeSgpIGFib3J0cyB3aXRoIGEgVHlwZUVycm9yLCBiZWNhdXNlIHRvdGFscycgdmFsdWUgaXMg
aW52YWxpZCIKICAgICApOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgdCwKICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIs
CiAgICAgICByZXNwb25zZS5jb21wbGV0ZSgic3VjY2VzcyIpLApAQCAtMjQ3LDcgKzI2Nyw5IEBA
IGZ1bmN0aW9uIGNhbGxpbmdSZXRyeVJldHVybnNVbmlxdWVQcm9taXNlKGJ1dHRvbil7CiAgIDwv
bGk+CiAgIDxsaT4KICAgICA8cD4KLSAgICAgIFdoZW4gc2hvd24gdGhlIHBheW1lbnQgc2hlZXQs
IGhpdCBwYXkgb25jZS4gVGhlbiByZXRyeSBvbmNlLgorICAgICAgV2hlbiBzaG93biB0aGUgcGF5
bWVudCBzaGVldCwgaGl0IHBheSBvbmNlLgorICAgICAgVGhlbiwgY2hhbmdlIHRoZSBzaGlwcGlu
ZyBvcHRpb24uCisgICAgICBTZWxlY3QgdG8gcGF5IGFnYWluLgogICAgIDwvcD4KICAgICA8YnV0
dG9uIG9uY2xpY2s9ImFib3J0VGhlVXBkYXRlKHRoaXMpOyI+CiAgICAgICBXaGVuICJhYm9ydCB0
aGUgdXBkYXRlIiBvY2N1cnMgYmVjYXVzZSBvZiBhbiB1cGRhdGUgZXJyb3IsCkBAIC0yNjksNiAr
MjkxLDYgQEAgZnVuY3Rpb24gY2FsbGluZ1JldHJ5UmV0dXJuc1VuaXF1ZVByb21pc2UoYnV0dG9u
KXsKICAgPC9saT4KIDwvb2w+CiA8c21hbGw+Ci0gIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwg
cGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KLSAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0
dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jsb2IvbWFzdGVyL3BheW1l
bnQtcmVxdWVzdC9PV05FUlMiPm93bmVyczwvYT4uCisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVz
dCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9
Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3Bh
eW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+b3duZXJzPC9hPi4KIDwvc21hbGw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC13YXJuaW5ncy1tYW51YWwuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZXRyeS1tZXRob2Qtd2FybmluZ3Mt
bWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTVlYjgzZTU2NjhiOTdkNmM1
OTdmNWI4M2FkOGQwM2Q5ZmVkYzZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNw
b25zZS9yZXRyeS1tZXRob2Qtd2FybmluZ3MtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDI4IEBACitNYW51YWwgVGVzdHMgLSBQbGVhc2UgcnVuIGluIG9yZGVyIQorCitQbGVh
c2Ugb3BlbiB0aGUgZGV2ZWxvcGVyIGNvbnNvbGUuIEVhY2ggb2YgdGhlIHRlc3RzIGJlbG93IHNo
b3VsZCBnZW5lcmF0ZSBhIHdhcm5pbmcgaW4gdGhlIGRldmVsb3BlciBjb25zb2xlLgorCitXaGVu
IHByZXNlbnRlZCB3aXRoIHRoZSBwYXltZW50IHNoZWV0LCBoaXQgcGF5IHR3aWNlLgorCitTaG93
IHdhcm5pbmcgaWYgYHJlcXVlc3RQYXllck5hbWVgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRz
LnBheWVyLm5hbWVgIGlzIHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RQYXllckVt
YWlsYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5wYXllci5lbWFpbGAgaXMgcHJlc2VudC4K
K1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFBheWVyUGhvbmVgIGlmIGZhbHNlLCBhbmQgYGVycm9y
RmllbGRzLnBheWVyLnBob25lYCBpcyBwcmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0
U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzc2AgbWVt
YmVyIHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2Us
IGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLmFkZHJlc3NMaW5lYCBtZW1iZXIgcHJl
c2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBl
cnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MuY2l0eWAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdh
cm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hp
cHBpbmdBZGRyZXNzLmNvdW50cnlgIG1lbWJlciBwcmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGBy
ZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVz
cy5kZXBlbmRlbnRMb2NhbGl0eWAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYgYHJl
cXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNz
Lm9yZ2FuaXphdGlvbmAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RT
aGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLnBob25l
YCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBm
YWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucG9zdGFsQ29kZWAgbWVtYmVy
IHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFu
ZCBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLnJlY2lwaWVudGAgbWVtYmVyIHByZXNlbnQu
CitTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JG
aWVsZHMuc2hpcHBpbmdBZGRyZXNzLnJlZ2lvbmAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdhcm5p
bmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBp
bmdBZGRyZXNzLnJlZ2lvbkNvZGVgIG1lbWJlciBwcmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGBy
ZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVz
cy5zb3J0aW5nQ29kZWAgbWVtYmVyIHByZXNlbnQuCitEb25lIQorCitIYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworUEFTUyBDYW4gY29uc3RydWN0IGEgcGF5bWVudCBy
ZXF1ZXN0IChzbW9rZSB0ZXN0KS4gCitQQVNTIFBheW1lbnRSZXNwb25zZS5wcm90b3R5cGUgbXVz
dCBoYXZlIGEgcmV0cnkoKSBmdW5jdGlvbiAoc21va2UgdGVzdCkuIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC13YXJuaW5ncy1tYW51YWwuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5odHRw
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI2OGJmMTgzMDk3MDJjNDgxYzc2YWRlZjBjZGRlZTI0Y2JkMWI1
NDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC13
YXJuaW5ncy1tYW51YWwuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE1OCBAQAorPCFET0NUWVBFIGh0
bWw+IDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorPHRpdGxlPldhcm4gd2hlbiBlcnJvckZpZWxk
cyBkb24ndCBtYXRjaCByZXF1ZXN0W1tvcHRpb25zXV08L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdzNjL3BheW1lbnQtcmVxdWVzdC9wdWxsLzgwNyIg
Lz4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJoZWxwZXJzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgIHRlc3QoKCkgPT4g
eworICAgIGFzc2VydF90cnVlKAorICAgICAgInJldHJ5IiBpbiBQYXltZW50UmVzcG9uc2UucHJv
dG90eXBlLAorICAgICAgInJldHJ5IG11c3QgYmUgaW4gcHJvdG90eXBlIgorICAgICk7CisgICAg
YXNzZXJ0X3RydWUoCisgICAgICBQYXltZW50UmVzcG9uc2UucHJvdG90eXBlLnJldHJ5IGluc3Rh
bmNlb2YgRnVuY3Rpb24sCisgICAgICAicmV0cnkgbXVzdCBiZSBhIGZ1bmN0aW9uIgorICAgICk7
CisgIH0sICJQYXltZW50UmVzcG9uc2UucHJvdG90eXBlIG11c3QgaGF2ZSBhIHJldHJ5KCkgZnVu
Y3Rpb24gKHNtb2tlIHRlc3QpLiIpOworCisgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0geworICAg
IHJlcXVlc3RQYXllck5hbWU6IGZhbHNlLAorICAgIHJlcXVlc3RQYXllckVtYWlsOiBmYWxzZSwK
KyAgICByZXF1ZXN0UGF5ZXJQaG9uZTogZmFsc2UsCisgICAgcmVxdWVzdFNoaXBwaW5nOiBmYWxz
ZSwKKyAgfTsKKyAgZnVuY3Rpb24gdGVzdFNob3dXYXJuaW5nKGJ1dHRvbiwgZXJyb3JGaWVsZHMp
IHsKKyAgICBidXR0b24uZGlzYWJsZWQgPSB0cnVlOworICAgIHByb21pc2VfdGVzdChhc3luYyAo
KSA9PiB7CisgICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSBhd2FpdCBnZXRQYXltZW50UmVxdWVz
dFJlc3BvbnNlKGRlZmF1bHRPcHRpb25zKTsKKyAgICAgIGF3YWl0IHJlc3BvbnNlLnJldHJ5KGVy
cm9yRmllbGRzKTsKKyAgICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRlKCk7CisgICAgfSk7Cisg
IH0KKzwvc2NyaXB0PgorPGgyPk1hbnVhbCBUZXN0cyAtIFBsZWFzZSBydW4gaW4gb3JkZXIhPC9o
Mj4KKzxwPgorICBQbGVhc2Ugb3BlbiB0aGUgZGV2ZWxvcGVyIGNvbnNvbGUuIEVhY2ggb2YgdGhl
IHRlc3RzIGJlbG93IHNob3VsZCBnZW5lcmF0ZSBhCisgIHdhcm5pbmcgaW4gdGhlIGRldmVsb3Bl
ciBjb25zb2xlLgorPC9wPgorPHA+V2hlbiBwcmVzZW50ZWQgd2l0aCB0aGUgcGF5bWVudCBzaGVl
dCwgaGl0IHBheSB0d2ljZS48L3A+Cis8b2w+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9
InRlc3RTaG93V2FybmluZyh0aGlzLCB7cGF5ZXI6IHtuYW1lOiAnRG9udCBzaG93IHRoaXMnfX0p
OyI+CisgICAgICBTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RQYXllck5hbWVgIGlmIGZhbHNlLCBh
bmQgYGVycm9yRmllbGRzLnBheWVyLm5hbWVgIGlzCisgICAgICBwcmVzZW50LgorICAgIDwvYnV0
dG9uPgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbgorICAgICAgb25jbGljaz0idGVzdFNo
b3dXYXJuaW5nKHRoaXMsIHtwYXllcjoge2VtYWlsOiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAg
ICA+CisgICAgICBTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RQYXllckVtYWlsYCBpZiBmYWxzZSwg
YW5kIGBlcnJvckZpZWxkcy5wYXllci5lbWFpbGAKKyAgICAgIGlzIHByZXNlbnQuCisgICAgPC9i
dXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNrPSJ0ZXN0
U2hvd1dhcm5pbmcodGhpcywge3BheWVyOiB7cGhvbmU6ICdEb250IHNob3cgdGhpcyd9fSk7Igor
ICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFBheWVyUGhvbmVgIGlmIGZhbHNl
LCBhbmQgYGVycm9yRmllbGRzLnBheWVyLnBob25lYAorICAgICAgaXMgcHJlc2VudC4KKyAgICA8
L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0idGVzdFNob3dX
YXJuaW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJlc3M6IHt9fSk7Ij4KKyAgICAgIFNob3cgd2Fybmlu
ZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kCisgICAgICBgZXJyb3JGaWVsZHMu
c2hpcHBpbmdBZGRyZXNzYCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4K
KyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlz
LCB7c2hpcHBpbmdBZGRyZXNzOiB7YWRkcmVzc0xpbmU6ICdEb250IHNob3cgdGhpcyd9fSk7Igor
ICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwg
YW5kCisgICAgICBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLmFkZHJlc3NMaW5lYCBtZW1i
ZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24K
KyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7
Y2l0eTogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlm
IGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlw
cGluZ0FkZHJlc3MuY2l0eWAgbWVtYmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+
CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhp
cywge3NoaXBwaW5nQWRkcmVzczoge2NvdW50cnk6ICdEb250IHNob3cgdGhpcyd9fSk7IgorICAg
ID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5k
CisgICAgICBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLmNvdW50cnlgIG1lbWJlciBwcmVz
ZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbgorICAgICAg
b25jbGljaz0idGVzdFNob3dXYXJuaW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJlc3M6IHtkZXBlbmRl
bnRMb2NhbGl0eTogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJu
aW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxk
cy5zaGlwcGluZ0FkZHJlc3MuZGVwZW5kZW50TG9jYWxpdHlgIG1lbWJlciBwcmVzZW50LgorICAg
IDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbgorICAgICAgb25jbGljaz0i
dGVzdFNob3dXYXJuaW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJlc3M6IHtvcmdhbml6YXRpb246ICdE
b250IHNob3cgdGhpcyd9fSk7IgorICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVz
dFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kCisgICAgICBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRy
ZXNzLm9yZ2FuaXphdGlvbmAgbWVtYmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+
CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhp
cywge3NoaXBwaW5nQWRkcmVzczoge3Bob25lOiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAgICA+
CisgICAgICBTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZAor
ICAgICAgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5waG9uZWAgbWVtYmVyIHByZXNlbnQu
CisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNs
aWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczoge3Bvc3RhbENvZGU6
ICdEb250IHNob3cgdGhpcyd9fSk7IgorICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVx
dWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kCisgICAgICBgZXJyb3JGaWVsZHMuc2hpcHBpbmdB
ZGRyZXNzLnBvc3RhbENvZGVgIG1lbWJlciBwcmVzZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xp
PgorICA8bGk+CisgICAgPGJ1dHRvbgorICAgICAgb25jbGljaz0idGVzdFNob3dXYXJuaW5nKHRo
aXMsIHtzaGlwcGluZ0FkZHJlc3M6IHtyZWNpcGllbnQ6ICdEb250IHNob3cgdGhpcyd9fSk7Igor
ICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwg
YW5kCisgICAgICBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLnJlY2lwaWVudGAgbWVtYmVy
IHByZXNlbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisg
ICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczoge3Jl
Z2lvbjogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlm
IGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlw
cGluZ0FkZHJlc3MucmVnaW9uYCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9s
aT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0
aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7cmVnaW9uQ29kZTogJ0RvbnQgc2hvdyB0aGlzJ319KTsi
CisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNl
LCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucmVnaW9uQ29kZWAgbWVt
YmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9u
CisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczog
e3NvcnRpbmdDb2RlOiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdh
cm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmll
bGRzLnNoaXBwaW5nQWRkcmVzcy5zb3J0aW5nQ29kZWAgbWVtYmVyIHByZXNlbnQuCisgICAgPC9i
dXR0b24+CisgIDwvbGk+CisgIDxsaT48YnV0dG9uIG9uY2xpY2s9ImRvbmUoKSI+RG9uZSE8L2J1
dHRvbj48L2xpPgorPC9vbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3czYy1pbXBvcnQubG9nCmluZGV4IDA0YmM2
MzUwZDkxZjg3ZTkyNzI1MGUwMWZjYjg3ZmUyNmNmZjc2NDIuLmYyNDU5YjE3YzAzMmJmYTE3YTZk
YTYyNTk1OWVjYjAwYzY5ZjFmNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvdzNj
LWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS93M2MtaW1wb3J0LmxvZwpAQCAt
MjIsOCArMjIsMTEgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVy
RW1haWwtYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9w
YXllck5hbWUtYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS9wYXllclBob25lLWF0dHJpYnV0ZS1tYW51YWwuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVz
cG9uc2UvcGF5ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgtaW1tZWRpYXRlLW1hbnVhbC5odHRw
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0
aC1tYW51YWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmVqZWN0c19pZl9ub3Rf
YWN0aXZlLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZXF1ZXN0SWQt
YXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZXRyeS1t
ZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhv
ZC13YXJuaW5ncy1tYW51YWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2Uvc2hpcHBp
bmdBZGRyZXNzLWF0dHJpYnV0ZS1tYW51YWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9u
c2Uvc2hpcHBpbmdPcHRpb24tYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRiZDQ1ZGIzNTE5YWUwM2QzMjM4Yjc3NGNkNzhjNzg4NzY0ZDBkMWUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitQYXltZW50UmVxdWVzdCBzaG93KCkgcmVqZWN0cyBpZiBkb2Mg
aXMgbm90IGZ1bGx5IGFjdGl2ZQorCitDbGljayBvbiBlYWNoIGJ1dHRvbiBpbiBzZXF1ZW5jZSBm
cm9tIHRvcCB0byBib3R0b20gd2l0aG91dCByZWZyZXNoaW5nIHRoZSBwYWdlLiBFYWNoIGJ1dHRv
biB3aWxsIGJyaW5nIHVwIHRoZSBQYXltZW50IFJlcXVlc3QgVUkgd2luZG93IGFuZCB0aGVuIHdp
bGwgY2xvc2UgaXQgYXV0b21hdGljYWxseS4gKElmIGEgcGF5bWVudCBzaGVldCBzdGF5cyBvcGVu
LCB0aGUgdGVzdCBoYXMgZmFpbGVkLikKKworUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBp
ZiB0aGUgZG9jdW1lbnQgaXMgbm90IGFjdGl2ZS4KK1BheW1lbnRSZXF1ZXN0LnNob3coKSBhYm9y
dHMgaWYgdGhlIGRvY3VtZW50IGlzIGFjdGl2ZSwgYnV0IG5vdCBmdWxseSBhY3RpdmUuCitEb25l
IQorSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFnIG9u
ZSBvZiB0aGUgc3VnZ2VzdGVkIHJldmlld2Vycy4KKworSGFybmVzcyBFcnJvciAoVElNRU9VVCks
IG1lc3NhZ2UgPSBudWxsCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZl
LW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVhbC5odHRw
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhlMjE0Y2I2MDk0YTI1NDM2Mzc0ZGE5ODRkZWFhZGU2NjBjY2Mx
OTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUtbWFudWFsLmh0
dHBzLmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzx0aXRsZT5QYXltZW50UmVxdWVzdCBzaG93KCkgcmVqZWN0cyBpZiBkb2MgaXMg
bm90IGZ1bGx5IGFjdGl2ZTwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3Nob3ctbWV0aG9kIj4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4K
K3NldHVwKHsKKyAgZXhwbGljaXRfZG9uZTogdHJ1ZSwKKyAgZXhwbGljaXRfdGltZW91dDogdHJ1
ZSwKK30pOworCitjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRN
ZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZl
cnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUi
LAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1
cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsK
K2NvbnN0IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6
ICJiYXNpYy1jYXJkIiwKK30pOworY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShb
dmFsaWRNZXRob2QsIGFwcGxlUGF5XSk7CisKK2NvbnN0IHZhbGlkRGV0YWlscyA9IE9iamVjdC5m
cmVlemUoeworICB0b3RhbDogeworICAgIGxhYmVsOiAiVG90YWwgZHVlIiwKKyAgICAgIGFtb3Vu
dDogeworICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgdmFsdWU6ICI1LjAwIiwKKyAgICB9
LAorICB9LAorfSk7CisKK2Z1bmN0aW9uIGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KGlmcmFtZSwg
dXJsKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICBpZnJhbWUuYWRk
RXZlbnRMaXN0ZW5lcigKKyAgICAgICJsb2FkIiwKKyAgICAgICgpID0+IHsKKyAgICAgICAgY29u
c3QgeyBQYXltZW50UmVxdWVzdCB9ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CisgICAgICAgIGNv
bnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QodmFsaWRNZXRob2RzLCB2YWxpZERldGFp
bHMpOworICAgICAgICByZXNvbHZlKHJlcXVlc3QpOworICAgICAgfSwKKyAgICAgIHsgb25jZTog
dHJ1ZSB9CisgICAgKTsKKyAgICBpZnJhbWUuc3JjID0gdXJsOworICB9KTsKK30KKworZnVuY3Rp
b24gdGVzdEFib3J0U2hvd0lmRG9jdW1lbnRJc05vdEFjdGl2ZSgpIHsKKyAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgIGlmcmFtZS5hbGxvd1BheW1lbnRSZXF1ZXN0ID0gdHJ1ZTsKKyAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgLy8gV2UgZmlyc3QgZ290IHRv
IHBhZ2UxLmh0bWwsIGdyYWIgYSBQYXltZW50UmVxdWVzdCBpbnN0YW5jZS4KKyAgICBjb25zdCBy
ZXF1ZXN0MSA9IGF3YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KAorICAgICAgaWZyYW1lLAor
ICAgICAgIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UxLmh0bWwiCisgICAgKTsKKyAg
ICAvLyBTYXZlIHRoZSBET01FeGNlcHRpb24gb2YgcGFnZTEuaHRtbCBiZWZvcmUgbmF2aWdhdGlu
ZyBhd2F5LgorICAgIGNvbnN0IGZyYW1lRE9NRXhjZXB0aW9uMSA9IGlmcmFtZS5jb250ZW50V2lu
ZG93LkRPTUV4Y2VwdGlvbjsKKyAgICAvLyBXZSBuYXZpZ2F0ZSB0aGUgaWZyYW1lIGFnYWluLCBw
dXR0aW5nIHJlcXVlc3QxJ3MgZG9jdW1lbnQgaW50byBhbiBpbmFjdGl2ZSBzdGF0ZS4KKyAgICBj
b25zdCByZXF1ZXN0MiA9IGF3YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KAorICAgICAgaWZy
YW1lLAorICAgICAgIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UyLmh0bWwiCisgICAg
KTsKKyAgICAvLyBOb3csIHJlcXVlc3QxJ3MgcmVsZXZhbnQgZ2xvYmFsIG9iamVjdCdzIGRvY3Vt
ZW50IGlzIG5vIGxvbmdlciBhY3RpdmUuCisgICAgLy8gU28sIGNhbGwgLnNob3coKSwgYW5kIG1h
a2Ugc3VyZSBpdCByZWplY3RzIGFwcHJvcHJpYXRlbHkuCisgICAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzX2RvbSgKKyAgICAgIHQsCisgICAgICAiQWJvcnRFcnJvciIsCisgICAgICBmcmFtZURPTUV4
Y2VwdGlvbjEsCisgICAgICByZXF1ZXN0MS5zaG93KCksCisgICAgICAiSW5hY3RpdmUgZG9jdW1l
bnQsIHNvIG11c3QgdGhyb3cgQWJvcnRFcnJvciIKKyAgICApOworICAgIC8vIHJlcXVlc3QyIGhh
cyBhbiBhY3RpdmUgZG9jdW1lbnQgdGhvLCBzbyBjb25maXJtIGl0J3Mgd29ya2luZyBhcyBleHBl
Y3RlZDoKKyAgICByZXF1ZXN0Mi5zaG93KCk7CisgICAgYXdhaXQgcmVxdWVzdDIuYWJvcnQoKTsK
KyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgdCwKKyAgICAgICJJbnZhbGlk
U3RhdGVFcnJvciIsCisgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5ET01FeGNlcHRpb24sCisg
ICAgICByZXF1ZXN0Mi5zaG93KCksCisgICAgICAiQWJvcnQgYWxyZWFkeSBjYWxsZWQsIHNvIElu
dmFsaWRTdGF0ZUVycm9yIgorICAgICk7CisgICAgLy8gV2UgYXJlIGRvbmUsIHNvIGNsZWFuIHVw
LgorICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAgfSwgIlBheW1lbnRSZXF1ZXN0LnNob3coKSBhYm9y
dHMgaWYgdGhlIGRvY3VtZW50IGlzIG5vdCBhY3RpdmUuIik7Cit9CisKK2Z1bmN0aW9uIHRlc3RB
Ym9ydFNob3dJZkRvY3VtZW50SXNOb3RGdWxseUFjdGl2ZSgpIHsKKyAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICAgIC8vIFdlIG5lc3QgdHdvIGlmcmFtZXMgYW5kIHdhaXQgZm9yIHRoZW0g
dG8gbG9hZC4KKyAgICBjb25zdCBvdXRlcklmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgIG91dGVySWZyYW1lLmFsbG93UGF5bWVudFJlcXVlc3QgPSB0cnVlOwor
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXJJZnJhbWUpOworICAgIC8vIExvYWQg
dGhlIG91dGVyIGlmcmFtZSAod2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgYXdhaXRlZCByZXF1ZXN0
KQorICAgIGF3YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KAorICAgICAgb3V0ZXJJZnJhbWUs
CisgICAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTEuaHRtbCIKKyAgICApOwor
CisgICAgLy8gTm93IHdlIGNyZWF0ZSB0aGUgaW5uZXIgaWZyYW1lCisgICAgY29uc3QgaW5uZXJJ
ZnJhbWUgPSBvdXRlcklmcmFtZS5jb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7CisgICAgaW5uZXJJZnJhbWUuYWxsb3dQYXltZW50UmVxdWVzdCA9IHRydWU7CisKKyAgICAv
LyBuZXN0IHRoZW0KKyAgICBvdXRlcklmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpbm5lcklmcmFtZSk7CisKKyAgICAvLyBsb2FkIGlubmVySWZyYW1lLCBhbmQgZ2V0IHRo
ZSBQYXltZW50UmVxdWVzdCBpbnN0YW5jZQorICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBnZXRM
b2FkZWRQYXltZW50UmVxdWVzdCgKKyAgICAgIGlubmVySWZyYW1lLAorICAgICAgIi9wYXltZW50
LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UyLmh0bWwiCisgICAgKTsKKyAgICAvLyBTYXZlIERPTUV4
Y2VwdGlvbiBmcm9tIGlubmVySWZyYW1lIGJlZm9yZSBuYXZpZ2F0aW5nIGF3YXkuCisgICAgY29u
c3QgaW5uZXJJZnJhbWVET01FeGNlcHRpb24gPSBpbm5lcklmcmFtZS5jb250ZW50V2luZG93LkRP
TUV4Y2VwdGlvbjsKKworICAgIC8vIE5hdmlnYXRlIHRoZSBvdXRlciBpZnJhbWUgdG8gYSBuZXcg
bG9jYXRpb24uCisgICAgLy8gV2FpdCBmb3IgdGhlIGxvYWQgZXZlbnQgdG8gZmlyZS4KKyAgICBh
d2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgIG91dGVySWZyYW1lLmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlKTsKKyAgICAgIG91dGVySWZyYW1lLnNyYyA9ICIvcGF5
bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMi5odG1sIjsKKyAgICB9KTsKKworICAgIGNvbnN0
IHNob3dQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisgICAgLy8gTm93LCByZXF1ZXN0J3MgcmVs
ZXZhbnQgZ2xvYmFsIG9iamVjdCdzIGRvY3VtZW50IGlzIHN0aWxsIGFjdGl2ZQorICAgIC8vIChp
dCBpcyB0aGUgYWN0aXZlIGRvY3VtZW50IG9mIHRoZSBpbm5lciBpZnJhbWUpLCBidXQgaXMgbm90
IGZ1bGx5IGFjdGl2ZQorICAgIC8vIChzaW5jZSB0aGUgcGFyZW50IG9mIHRoZSBpbm5lciBpZnJh
bWUgaXMgaXRzZWxmIG5vIGxvbmdlciBhY3RpdmUpLgorICAgIC8vIFNvLCBjYWxsIHJlcXVlc3Qu
c2hvdygpIGFuZCBtYWtlIHN1cmUgaXQgcmVqZWN0cyBhcHByb3ByaWF0ZWx5LgorICAgIGF3YWl0
IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICB0LAorICAgICAgIkFib3J0RXJyb3IiLAorICAg
ICAgaW5uZXJJZnJhbWVET01FeGNlcHRpb24sCisgICAgICBzaG93UHJvbWlzZSwKKyAgICAgICJB
Y3RpdmUsIGJ1dCBub3QgZnVsbHkgYWN0aXZlLCBzbyBtdXN0IHRocm93IEFib3J0RXJyb3IiCisg
ICAgKTsKKyAgICAvLyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAuCisKKyAgICBvdXRlcklmcmFt
ZS5yZW1vdmUoKTsKKyAgfSwgIlBheW1lbnRSZXF1ZXN0LnNob3coKSBhYm9ydHMgaWYgdGhlIGRv
Y3VtZW50IGlzIGFjdGl2ZSwgYnV0IG5vdCBmdWxseSBhY3RpdmUuIik7Cit9Cis8L3NjcmlwdD4K
KworPGgyPlBheW1lbnRSZXF1ZXN0IHNob3coKSByZWplY3RzIGlmIGRvYyBpcyBub3QgZnVsbHkg
YWN0aXZlPC9oMj4KKzxwPgorICBDbGljayBvbiBlYWNoIGJ1dHRvbiBpbiBzZXF1ZW5jZSBmcm9t
IHRvcCB0byBib3R0b20gd2l0aG91dCByZWZyZXNoaW5nIHRoZQorICBwYWdlLiBFYWNoIGJ1dHRv
biB3aWxsIGJyaW5nIHVwIHRoZSBQYXltZW50IFJlcXVlc3QgVUkgd2luZG93IGFuZCB0aGVuIHdp
bGwKKyAgY2xvc2UgaXQgYXV0b21hdGljYWxseS4gKElmIGEgcGF5bWVudCBzaGVldCBzdGF5cyBv
cGVuLCB0aGUgdGVzdCBoYXMgZmFpbGVkLikKKzwvcD4KKzxvbD4KKyAgPGxpPgorICAgIDxidXR0
b24gb25jbGljaz0idGVzdEFib3J0U2hvd0lmRG9jdW1lbnRJc05vdEFjdGl2ZSgpIj4KKyAgICAg
IFBheW1lbnRSZXF1ZXN0LnNob3coKSBhYm9ydHMgaWYgdGhlIGRvY3VtZW50IGlzIG5vdCBhY3Rp
dmUuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9
InRlc3RBYm9ydFNob3dJZkRvY3VtZW50SXNOb3RGdWxseUFjdGl2ZSgpIj4KKyAgICAgIFBheW1l
bnRSZXF1ZXN0LnNob3coKSBhYm9ydHMgaWYgdGhlIGRvY3VtZW50IGlzIGFjdGl2ZSwgYnV0IG5v
dCBmdWxseQorICAgICAgYWN0aXZlLgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+PGJ1
dHRvbiBvbmNsaWNrPSJkb25lKCkiPkRvbmUhPC9idXR0b24+PC9saT4KKzwvb2w+Cis8c21hbGw+
CisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAg
YW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+c3VnZ2Vz
dGVkIHJldmlld2VyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcmVqZWN0c19pZl9u
b3RfYWN0aXZlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUuaHR0cHMuaHRt
bAppbmRleCBmNTg1ZTgzNmY4ZDMwZTQxYmQzM2M3YThkODc2MGVjZjY0ZjdhODBkLi4xYzY2NmFl
YTQzNTc1OGNkN2Y3OTE3MmFhYTY5MWY0M2Y3OTA3YTQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3Rz
X2lmX25vdF9hY3RpdmUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUu
aHR0cHMuaHRtbApAQCAtMSwxOCArMSwyNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFy
c2V0PXV0Zi04PgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8v
cGF5bWVudC1yZXF1ZXN0LyNzaG93KCktbWV0aG9kIj4KIDx0aXRsZT5QYXltZW50UmVxdWVzdCBz
aG93KCkgcmVqZWN0cyBpZiBkb2MgaXMgbm90IGZ1bGx5IGFjdGl2ZTwvdGl0bGU+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3No
b3ctbWV0aG9kIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0Pgot
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1
ZXN0LyNkb20tcGF5bWVudHJlcXVlc3Qtc2hvdygpIj4KIDxib2R5PgogPHNjcmlwdD4KK2NvbnN0
IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczov
L2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBt
ZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNv
ZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAg
ICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOwogY29uc3QgdmFsaWRNZXRo
b2QgPSBPYmplY3QuZnJlZXplKHsKICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAog
fSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOwor
Y29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5
XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoewogICBjdXJyZW5jeTogIlVT
RCIsCiAgIHZhbHVlOiAiNS4wMCIsCkBAIC00MCw5NCArNDksNiBAQCBmdW5jdGlvbiBnZXRMb2Fk
ZWRQYXltZW50UmVxdWVzdChpZnJhbWUsIHVybCkgewogICB9KTsKIH0KIAotcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewotICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
ZnJhbWUiKTsKLSAgaWZyYW1lLmFsbG93UGF5bWVudFJlcXVlc3QgPSB0cnVlOwotICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci0gIC8vIFdlIGZpcnN0IGdvdCB0byBwYWdlMS5o
dG1sLCBncmFiIGEgUGF5bWVudFJlcXVlc3QgaW5zdGFuY2UuCi0gIGNvbnN0IHJlcXVlc3QxID0g
YXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCi0gICAgaWZyYW1lLAotICAgICIvcGF5bWVu
dC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMS5odG1sIgotICApOwotICAvLyBXZSBuYXZpZ2F0ZSB0
aGUgaWZyYW1lIGFnYWluLCBwdXR0aW5nIHJlcXVlc3QxJ3MgZG9jdW1lbnQgaW50byBhbiBpbmFj
dGl2ZSBzdGF0ZS4KLSAgY29uc3QgcmVxdWVzdDIgPSBhd2FpdCBnZXRMb2FkZWRQYXltZW50UmVx
dWVzdCgKLSAgICBpZnJhbWUsCi0gICAgIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2Uy
Lmh0bWwiCi0gICk7Ci0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVx
dWVzdCIsIGFzeW5jICgpID0+IHsKLSAgICAvLyBOb3csIHJlcXVlc3QxJ3MgcmVsZXZhbnQgZ2xv
YmFsIG9iamVjdCdzIGRvY3VtZW50IGlzIG5vIGxvbmdlciBhY3RpdmUuCi0gICAgLy8gU28sIGNh
bGwgLnNob3coKSwgYW5kIG1ha2Ugc3VyZSBpdCByZWplY3RzIGFwcHJvcHJpYXRlbHkuCi0gICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzKAotICAgICAgdCwKLSAgICAgICJBYm9ydEVycm9yIiwKLSAg
ICAgIHJlcXVlc3QxLnNob3coKSwKLSAgICAgICJJbmFjdGl2ZSBkb2N1bWVudCwgc28gbXVzdCB0
aHJvdyBBYm9ydEVycm9yIgotICAgICk7Ci0gIH0pOwotICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVz
cygic2hvdyBwYXltZW50IHJlcXVlc3QiLCBhc3luYyAoKSA9PiB7Ci0gICAgLy8gcmVxdWVzdDIg
aGFzIGFuIGFjdGl2ZSBkb2N1bWVudCB0aG8sIHNvIGNvbmZpcm0gaXQncyB3b3JraW5nIGFzIGV4
cGVjdGVkOgotICAgIHJlcXVlc3QyLnNob3coKTsKLSAgICBhd2FpdCByZXF1ZXN0Mi5hYm9ydCgp
OwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKLSAgICAgIHQsCi0gICAgICAiSW52YWxpZFN0
YXRlRXJyb3IiLAotICAgICAgcmVxdWVzdDIuc2hvdygpLAotICAgICAgIkFib3J0IGFscmVhZHkg
Y2FsbGVkLCBzbyBJbnZhbGlkU3RhdGVFcnJvciIKLSAgICApOwotICAgIC8vIFdlIGFyZSBkb25l
LCBzbyBjbGVhbiB1cC4KLSAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gIH0pOwotfSwgIlBheW1lbnRS
ZXF1ZXN0LnNob3coKSBhYm9ydHMgaWYgdGhlIGRvY3VtZW50IGlzIG5vdCBhY3RpdmUiKTsKLQot
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAvLyBXZSBuZXN0IHR3byBpZnJhbWVzIGFuZCB3
YWl0IGZvciB0aGVtIHRvIGxvYWQuCi0gIGNvbnN0IG91dGVySWZyYW1lID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gIG91dGVySWZyYW1lLmFsbG93UGF5bWVudFJlcXVlc3Qg
PSB0cnVlOwotICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG91dGVySWZyYW1lKTsKLSAgLy8g
TG9hZCB0aGUgb3V0ZXIgaWZyYW1lICh3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBhd2FpdGVkIHJl
cXVlc3QpCi0gIGF3YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KAotICAgIG91dGVySWZyYW1l
LAotICAgICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMS5odG1sIgotICApOwotCi0g
IC8vIE5vdyB3ZSBjcmVhdGUgdGhlIGlubmVyIGlmcmFtZQotICBjb25zdCBpbm5lcklmcmFtZSA9
IG91dGVySWZyYW1lLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAg
aW5uZXJJZnJhbWUuYWxsb3dQYXltZW50UmVxdWVzdCA9IHRydWU7Ci0KLSAgLy8gbmVzdCB0aGVt
Ci0gIG91dGVySWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlubmVySWZy
YW1lKTsKLQotICAvLyBsb2FkIGlubmVySWZyYW1lLCBhbmQgZ2V0IHRoZSBQYXltZW50UmVxdWVz
dCBpbnN0YW5jZQotICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVl
c3QoCi0gICAgaW5uZXJJZnJhbWUsCi0gICAgIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3Bh
Z2UyLmh0bWwiCi0gICk7Ci0KLSAgLy8gTmF2aWdhdGUgdGhlIG91dGVyIGlmcmFtZSB0byBhIG5l
dyBsb2NhdGlvbi4KLSAgLy8gV2FpdCBmb3IgdGhlIGxvYWQgZXZlbnQgdG8gZmlyZS4KLSAgYXdh
aXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgb3V0ZXJJZnJhbWUuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIHJlc29sdmUpOwotICAgIG91dGVySWZyYW1lLnNyYyA9ICIvcGF5bWVudC1y
ZXF1ZXN0L3Jlc291cmNlcy9wYWdlMi5odG1sIjsKLSAgfSk7Ci0KLSAgY29uc3Qgc2hvd1Byb21p
c2UgPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCAoKSA9
PiB7Ci0gICAgcmV0dXJuIHJlcXVlc3Quc2hvdygpOwotICB9KTsKLSAgLy8gTm93LCByZXF1ZXN0
J3MgcmVsZXZhbnQgZ2xvYmFsIG9iamVjdCdzIGRvY3VtZW50IGlzIHN0aWxsIGFjdGl2ZQotICAv
LyAoaXQgaXMgdGhlIGFjdGl2ZSBkb2N1bWVudCBvZiB0aGUgaW5uZXIgaWZyYW1lKSwgYnV0IGlz
IG5vdCBmdWxseSBhY3RpdmUKLSAgLy8gKHNpbmNlIHRoZSBwYXJlbnQgb2YgdGhlIGlubmVyIGlm
cmFtZSBpcyBpdHNlbGYgbm8gbG9uZ2VyIGFjdGl2ZSkuCi0gIC8vIFNvLCBjYWxsIHJlcXVlc3Qu
c2hvdygpIGFuZCBtYWtlIHN1cmUgaXQgcmVqZWN0cyBhcHByb3ByaWF0ZWx5LgotICBhd2FpdCBw
cm9taXNlX3JlamVjdHMoCi0gICAgdCwKLSAgICAiQWJvcnRFcnJvciIsCi0gICAgc2hvd1Byb21p
c2UsCi0gICAgIkFjdGl2ZSwgYnV0IG5vdCBmdWxseSBhY3RpdmUsIHNvIG11c3QgdGhyb3cgQWJv
cnRFcnJvciIKLSAgKTsKLSAgLy8gV2UgYXJlIGRvbmUsIHNvIGNsZWFuIHVwLgotCi0gIGlmcmFt
ZS5yZW1vdmUoKTsKLX0sICJQYXltZW50UmVxdWVzdC5zaG93KCkgYWJvcnRzIGlmIHRoZSBkb2N1
bWVudCBpcyBhY3RpdmUsIGJ1dCBub3QgZnVsbHkgYWN0aXZlIik7Ci0KIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CiAgIGlmcmFtZS5hbGxvd1BheW1lbnRSZXF1ZXN0ID0gdHJ1ZTsKQEAgLTEzNywyMSAr
NTgsNDAgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGlmcmFtZSwKICAgICAiL3Bh
eW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTEuaHRtbCIKICAgKTsKLSAgY29uc3Qgc2hvd1By
b21pc2UgPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCAo
KSA9PiB7Ci0gICAgcmV0dXJuIHJlcXVlc3Quc2hvdygpOworICBjb25zdCBbc2hvd1Byb21pc2Vd
ID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCByZXF1ZXN0IiwgKCkgPT4g
eworICAgIHJldHVybiBbcmVxdWVzdC5zaG93KCldOwogICB9KTsKICAgLy8gTmF2aWdhdGUgdGhl
IGlmcmFtZSB0byBhIG5ldyBsb2NhdGlvbi4gV2FpdCBmb3IgdGhlIGxvYWQgZXZlbnQgdG8gZmly
ZS4KICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgaWZyYW1lLmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlKTsKICAgICBpZnJhbWUuc3JjID0gIi9wYXltZW50LXJl
cXVlc3QvcmVzb3VyY2VzL3BhZ2UyLmh0bWwiOworICAgIC8vIEFuIGltcGxlbWVudGF0aW9uIG1h
eSBvcHRpb25hbGx5IHJlamVjdCB8c2hvd1Byb21pc2V8LgorICAgIHNob3dQcm9taXNlLmNhdGNo
KGUgPT4ge30pOwogICB9KTsKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAotICAgIHQsCi0gICAg
IkFib3J0RXJyb3IiLAotICAgIHNob3dQcm9taXNlLAotICAgICJUaGUgaWZyYW1lIHdhcyBuYXZp
Z2F0ZWQgYXdheSwgc28gc2hvd1Byb21pc2UgbXVzdCByZWplY3Qgd2l0aCBBYm9ydEVycm9yIgot
ICApOwotICAvLyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAuCi0gIGlmcmFtZS5yZW1vdmUoKTsK
LX0sICJJZiBhIHBheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nLCBidXQgaXRzIGRvY3VtZW50IGlz
IG5hdmlnYXRlZCBhd2F5IChzbyBubyBsb25nZXIgZnVsbHkgYWN0aXZlKSwgdGhlIHBheW1lbnQg
cmVxdWVzdCBhYm9ydHMuIik7CisKKyAgLy8gVGhlIG5hdmlnYXRvbiBzaG91bGQgaGF2ZSBkaXNt
aXNzZWQgdGhlIHByZXZpb3VzIHBheW1lbnQgcmVxdWVzdCBzbyBpdAorICAvLyBzaG91bGQgYmUg
cG9zc2libGUgdG8gc2hvdyBhbm90aGVyIG9uZSBub3cuCisgIGNvbnN0IHJlcXVlc3QyID0gbmV3
IGlmcmFtZS5jb250ZW50V2luZG93LlBheW1lbnRSZXF1ZXN0KAorICAgIHZhbGlkTWV0aG9kcywg
dmFsaWREZXRhaWxzKTsKKyAgY29uc3QgW3Nob3dQcm9taXNlMl0gPSBhd2FpdCB0ZXN0X2RyaXZl
ci5ibGVzcygKKyAgICAic2hvdyAybmQgcGF5bWVudCByZXF1ZXN0IiwgKCkgPT4geworICAgICAg
cmV0dXJuIFtyZXF1ZXN0Mi5zaG93KCldOworICAgIH0pOworCisgIC8vIFN0b3AgdGhlIHRlc3Qg
aW4gMSBzZWNvbmQgaWYgaXQgaGFzIG5vdCByZWplY3RlZCwgd2hpY2ggbWVhbnMgdGhhdCBhCisg
IC8vIHBheW1lbnQgc2hlZXQgaXMgc3VjY2Vzc2Z1bGx5IHNob3duLgorICB0LnN0ZXBfdGltZW91
dChhc3luYyAoKSA9PiB7CisgICAgLy8gV2UgYXJlIGRvbmUsIHNvIGNsZWFuIHVwLgorICAgIGlm
cmFtZS5yZW1vdmUoKTsKKyAgICB0LmRvbmUoKTsKKyAgfSwgMTAwMCk7CisKKyAgLy8gVGhpcyBz
aG91bGQgbmV2ZXIgc2V0dGxlIGJlY2F1c2UgdGhlIHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBl
bmRpbmcuCisgIGF3YWl0IHNob3dQcm9taXNlMi50aGVuKCgpID0+IHsKKyAgICBhc3NlcnRfdHJ1
ZShmYWxzZSwgIlNlY29uZCBwYXltZW50IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZXNvbHZl
ZC4iKTsKKyAgfSkKKyAgLmNhdGNoKGUgPT4geworICAgIGFzc2VydF90cnVlKGZhbHNlLCAiU2Vj
b25kIHBheW1lbnQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlamVjdGVkLiIpOworICB9KTsK
K30sICJJZiBhIHBheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nLCBidXQgaXRzIGRvY3VtZW50IGlz
IG5hdmlnYXRlZCBhd2F5IChzbyBubyBsb25nZXIgZnVsbHkgYWN0aXZlKSwgdGhlIHBheW1lbnQg
c2hlZXQgaXMgZGlzbWlzc2VkLiIpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaGlwcGlu
Zy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaGlwcGluZy1hZGRyZXNz
LWNoYW5nZWQtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggMDdiNTMwNjU3YzMzOTQzNGFhOTI0ZDFk
ZmU5NjgxNGZhZDJkYmYzYi4uNzhiN2YxN2NlZWI5ODRiZGU4MDA5MDkzYTU2OTY5MjYxZTQ0ZGQ3
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3Qvc2hpcHBpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3NoaXBwaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMuaHRtbApA
QCAtOCw4ICs4LDE4IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgogc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlLCBl
eHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXpl
KHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisg
IGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNo
YW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENh
cGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZp
c2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBw
b3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmpl
Y3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOworY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZy
ZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVj
dC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIsIHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2YWxp
ZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGxhYmVsOiAibGFiZWwiLApAQCAtNTMsMTAgKzYz
LDE0IEBAIGZ1bmN0aW9uIHRlc3RTaGlwcGluZ0FkZHJlc3NDaGFuZ2UoKSB7CiAgICAgfSk7CiAg
ICAgcmVxdWVzdC5zaG93KCkuY2F0Y2goZXJyID0+IGVycik7CiAgICAgY29uc3QgcmVzdWx0cyA9
IGF3YWl0IFByb21pc2UuYWxsKFtsaXN0ZW5lclByb21pc2UsIGhhbmRsZXJQcm9taXNlXSk7Ci0g
ICAgYXNzZXJ0X3RydWUoCi0gICAgICByZXN1bHRzLmV2ZXJ5KG9iaiA9PiBvYmogaW5zdGFuY2Vv
ZiBQYXltZW50QWRkcmVzcyksCi0gICAgICAiRXhwZWN0ZWQgaW5zdGFuY2VzIG9mIFBheW1lbnRB
ZGRyZXNzIgotICAgICk7CisgICAgcmVzdWx0cy5mb3JFYWNoKG9iaiA9PiB7CisgICAgICBhc3Nl
cnRfdHJ1ZShvYmogaW5zdGFuY2VvZiBQYXltZW50QWRkcmVzcywKKyAgICAgICAgICAgICAgICAg
ICJFeHBlY3RlZCBpbnN0YW5jZSBvZiBQYXltZW50QWRkcmVzcyIpOworICAgICAgYXNzZXJ0X2Vx
dWFscyhvYmoub3JnYW5pemF0aW9uLCAiIiwgIm9yZ2FuaXphdGlvbiBzaG91bGQgYmUgcmVkYWN0
ZWQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2JqLnBob25lLCAiIiwgInBob25lIHNob3VsZCBi
ZSByZWRhY3RlZCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhvYmoucmVjaXBpZW50LCAiIiwgInJl
Y2lwaWVudCBzaG91bGQgYmUgcmVkYWN0ZWQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2JqLmFk
ZHJlc3NMaW5lLmxlbmd0aCwgMCwgImFkZHJlc3NMaW5lIHNob3VsZCBiZSByZWRhY3RlZCIpOwor
ICAgIH0pOwogICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKICAgfSk7CiAgIGRvbmUoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy1tYW51YWwu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy1tYW51
YWwuaHR0cHMuaHRtbAppbmRleCA1YzEwMjhlZWM2NjdjODU3M2RmODkwZDIwMWQxZjFiOTEzNmRk
ZTU3Li4xYTMyMjQ1MmViNjExNDYzMGIyZjBkMWQyYTk3NjIwOTJhZDVlYmI5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMtbWFudWFsLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLW1hbnVhbC5o
dHRwcy5odG1sCkBAIC0yNCw2ICsyNCwxMyBAQAogCiAgIGNvbnN0IHZhbGlkTWV0aG9kQXBwbGVQ
YXkgPSBPYmplY3QuZnJlZXplKHsKICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBs
ZS5jb20vYXBwbGUtcGF5IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAzLAorICAgICAg
bWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgICAgY291bnRy
eUNvZGU6ICJVUyIsCisgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJd
LAorICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0KICAgfSk7CiAKICAg
Ly8gTWV0aG9kcwpAQCAtMTYxLDcgKzE2OCwxMyBAQAogICAgICAgKTsKICAgICAgIGNvbnN0IGRl
dGFpbHNQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKGJhZERldGFpbHMpOwogICAgICAgY29uc3Qg
YWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdyhkZXRhaWxzUHJvbWlzZSk7Ci0gICAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHMoCisgICAgICBsZXQgdGVzdF9mdW5jOworICAgICAgaWYgKHR5cGVv
ZiBleHBlY3RlZEVycm9yID09ICJmdW5jdGlvbiIpIHsKKyAgICAgICAgdGVzdF9mdW5jID0gcHJv
bWlzZV9yZWplY3RzX2pzOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdF9mdW5jID0gcHJv
bWlzZV9yZWplY3RzX2RvbTsKKyAgICAgIH0KKyAgICAgIGF3YWl0IHRlc3RfZnVuYygKICAgICAg
ICAgdCwKICAgICAgICAgZXhwZWN0ZWRFcnJvciwKICAgICAgICAgYWNjZXB0UHJvbWlzZSwKQEAg
LTE5NiwyMCArMjA5LDIwIEBACiAKICAgPGxpPjxidXR0b24gb25jbGljaz0iCiAgICAgY29uc3Qg
aW52YWxpZERldGFpbHMgPSB7IHRvdGFsOiBgdGhpcyB3aWxsIGNhdXNlIGEgVHlwZUVycm9yIWAg
fTsKLSAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQsIGludmFsaWREZXRhaWxzLCBu
ZXcgVHlwZUVycm9yKCkpOworICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgaW52
YWxpZERldGFpbHMsIFR5cGVFcnJvcik7CiAgICI+CiAgIFRvdGFsIGluIHRoZSB1cGRhdGUgaXMg
YSBzdHJpbmcsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRo
IGEgVHlwZUVycm9yLgogICA8L2J1dHRvbj48L2xpPgogCiAgIDxsaT48YnV0dG9uIG9uY2xpY2s9
IgogICAgIGNvbnN0IGludmFsaWREZXRhaWxzID0geyB0b3RhbDogcmVjdXJzaXZlRGF0YSB9Owot
ICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgaW52YWxpZERldGFpbHMsIG5ldyBU
eXBlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBpbnZhbGlk
RGV0YWlscywgVHlwZUVycm9yKTsKICAgIj4KICAgVG90YWwgaXMgcmVjdXJzaXZlLCBzbyBjb252
ZXJ0aW5nIHRvIElETCBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhIFR5cGVFcnJvci4KICAg
PC9idXR0b24+PC9saT4KIAogICA8bGk+PGJ1dHRvbiBvbmNsaWNrPSIKLSAgICB0ZXN0QmFkVXBk
YXRlKHRoaXMudGV4dENvbnRlbnQsIGludmFsaWREZXRhaWxzTmVnYXRpdmVUb3RhbCwgbmV3IFR5
cGVFcnJvcigpKTsKKyAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQsIGludmFsaWRE
ZXRhaWxzTmVnYXRpdmVUb3RhbCwgVHlwZUVycm9yKTsKICAgIj4KICAgVXBkYXRpbmcgd2l0aCBh
IG5lZ2F0aXZlIHRvdGFsIHJlc3VsdHMgaW4gYSBUeXBlRXJyb3IuCiAgIDwvYnV0dG9uPjwvbGk+
CkBAIC0yMTgsNyArMjMxLDcgQEAKICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2ln
bih7fSwgdmFsaWREZXRhaWxzLCB7CiAgICAgICBkaXNwbGF5SXRlbXM6IGludmFsaWRQYXltZW50
SXRlbXMKICAgICB9KTsKLSAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQsIGJhZERl
dGFpbHMsIG5ldyBSYW5nZUVycm9yKCkpOworICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29u
dGVudCwgYmFkRGV0YWlscywgUmFuZ2VFcnJvcik7CiAgICI+CiAgIFVwZGF0aW5nIHdpdGggYSBk
aXNwbGF5SXRlbSB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kgcmVzdWx0cyBpbiBSYW5nZUVycm9y
LgogICA8L2J1dHRvbj48L2xpPgpAQCAtMjI4LDcgKzI0MSw3IEBACiAgICAgY29uc3QgYmFkRGV0
YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIHZhbGlkRGV0YWlscywgewogICAgICAgc2hpcHBpbmdP
cHRpb25zOiBkdXBsaWNhdGVTaGlwcGluZ09wdGlvbnMsCiAgICAgfSk7Ci0gICAgdGVzdEJhZFVw
ZGF0ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBuZXcgVHlwZUVycm9yKCkpOworICAg
IHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgVHlwZUVycm9yKTsK
ICAgIj4KICAgVXBkYXRpbmcgd2l0aCBkdXBsaWNhdGUgc2hpcHBpbmdPcHRpb25zIChzYW1lIElE
cykgcmVzdWx0cyBpbiBhIFR5cGVFcnJvci4KICAgPC9idXR0b24+PC9saT4KQEAgLTIzNiw3ICsy
NDksNyBAQAogICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCB2YWxpZERl
dGFpbHMsIHsKICAgICAgIHNoaXBwaW5nT3B0aW9uczogaW52YWxpZFNoaXBwaW5nT3B0aW9ucywK
ICAgICB9KTsKLSAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQsIGJhZERldGFpbHMs
IG5ldyBSYW5nZUVycm9yKCkpOworICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwg
YmFkRGV0YWlscywgUmFuZ2VFcnJvcik7CiAgICI+CiAgIFVwZGF0aW5nIHdpdGggYSBzaGlwcGlu
Z09wdGlvbiB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kgdmFsdWUgcmVzdWx0cyBpbiBhIFJhbmdF
cnJvci4KICAgPC9idXR0b24+PC9saT4KQEAgLTI0NSw3ICsyNTgsNyBAQAogICAgIC8vIHZhbGlk
TW9kaWZpZXIgaXMgdGhlcmUgYXMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzCiAgICAgY29uc3Qg
YmFkTW9kaWZpZXJzID0geyBtb2RpZmllcnM6IFttb2RpZmllcldpdGhJbnZhbGlkVG90YWwsIHZh
bGlkTW9kaWZpZXJdIH07CiAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30s
IHZhbGlkRGV0YWlscywgYmFkTW9kaWZpZXJzKTsKLSAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4
dENvbnRlbnQsIGJhZERldGFpbHMsIG5ldyBSYW5nZUVycm9yKCkpOworICAgIHRlc3RCYWRVcGRh
dGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgUmFuZ2VFcnJvcik7CiAgICI+CiAgIE11
c3QgdGhyb3cgYSBSYW5nZUVycm9yIHdoZW4gYSBtb2RpZmllcidzIHRvdGFsIGl0ZW0gaGFzIGFu
IGludmFsaWQgY3VycmVuY3kuCiAgIDwvYnV0dG9uPjwvbGk+CkBAIC0yNTYsNyArMjY5LDcgQEAK
ICAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyV2l0aEludmFsaWREaXNwbGF5SXRlbXMsIHZhbGlk
TW9kaWZpZXJdLAogICAgIH07CiAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24o
e30sIHZhbGlkRGV0YWlscywgYmFkTW9kaWZpZXJzKTsKLSAgICB0ZXN0QmFkVXBkYXRlKHRoaXMu
dGV4dENvbnRlbnQsIGJhZERldGFpbHMsIG5ldyBSYW5nZUVycm9yKCkpOworICAgIHRlc3RCYWRV
cGRhdGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgUmFuZ2VFcnJvcik7CiAgICI+CiAg
IE11c3QgdGhyb3cgYSBSYW5nZUVycm9yIHdoZW4gYSBtb2RpZmllciBkaXNwbGF5IGl0ZW0gaGFz
IGFuIGludmFsaWQgY3VycmVuY3kuCiAgIDwvYnV0dG9uPjwvbGk+CkBAIC0yNjcsNyArMjgwLDcg
QEAKICAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyV2l0aFJlY3Vyc2l2ZURhdGEsIHZhbGlkTW9k
aWZpZXJdLAogICAgIH07CiAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30s
IHZhbGlkRGV0YWlscywgYmFkTW9kaWZpZXJzKTsKLSAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4
dENvbnRlbnQsIGJhZERldGFpbHMsIG5ldyBUeXBlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0
ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBUeXBlRXJyb3IpOwogICAiPgogICBNdXN0
IHRocm93IGFzIE1vZGlmaWVyIGhhcyBhIHJlY3Vyc2l2ZSBkaWN0aW9uYXJ5LgogICA8L2J1dHRv
bj48L2xpPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZXNv
bHZlcy1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2Ut
cmVzb2x2ZXMtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggNzBjOTdmYWFmN2E0NDk2OTgyYTM4MmE0
MTVlM2E4NWU5YTE3YzQ2NS4uNTM2MGE5NzA0YWY0NTlmMzAxODBmOTM4ZDEyODI4ZjZkYmYxYjU3
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZXNvbHZlcy1t
YW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJl
c29sdmVzLW1hbnVhbC5odHRwcy5odG1sCkBAIC0yMyw2ICsyMywxMyBAQCBjb25zdCB2YWxpZE1l
dGhvZHMgPSBPYmplY3QuZnJlZXplKFsKICAgfSwKICAgewogICAgIHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICAgIGRhdGE6IHsKKyAgICAgIHZlcnNp
b246IDMsCisgICAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIs
CisgICAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBb
InN1cHBvcnRzM0RTIl0sCisgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAg
fQogICB9LAogXSk7CiAKQEAgLTE1Nyw5ICsxNjQsOSBAQCBjb25zdCBuZXV0cmFsRGV0YWlscyA9
IE9iamVjdC5mcmVlemUoewogZnVuY3Rpb24gc21va2VUZXN0KCkgewogICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxp
ZE1ldGhvZHMsIGZhaWxEZXRhaWxzKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzX2pzKAogICAgICAgdCwKLSAgICAgIG5ldyBUeXBlRXJyb3Io
KSwKKyAgICAgIFR5cGVFcnJvciwKICAgICAgIHJlcXVlc3Quc2hvdyh7CiAgICAgICAgIHRvdGFs
OiAiVGhpcyB0aHJvd3MgYSBUeXBlRXJyb3IiLAogICAgICAgfSksCkBAIC0xNzMsMTYgKzE4MCwx
NyBAQCBmdW5jdGlvbiBydW5VcGRhdGVEZXRhaWxzQWxnb3JpdGhtKAogICBkZXRhaWxzLAogICBv
cHRpb25zID0gewogICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwKLSAgfQorICB9LAorICBpbml0
aWFsRGV0YWlscyA9IGZhaWxEZXRhaWxzLAogKSB7CiAgIGNvbnN0IHRlc3RBc3NlcnRpb24gPSBi
dXR0b25FbGVtZW50LnRleHRDb250ZW50LnRyaW0oKTsKICAgYnV0dG9uRWxlbWVudC5kaXNhYmxl
ZCA9IHRydWU7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBjb25zdCByZXF1ZXN0
ID0gbmV3IFBheW1lbnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgZmFpbERldGFpbHMsIG9wdGlvbnMp
OworICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QodmFsaWRNZXRob2RzLCBp
bml0aWFsRGV0YWlscywgb3B0aW9ucyk7CiAgICAgY29uc3QgZGV0YWlsc1Byb21pc2UgPSBQcm9t
aXNlLnJlc29sdmUoZGV0YWlscyk7CiAgICAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Qu
c2hvdyhkZXRhaWxzUHJvbWlzZSk7CiAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmlkLCAidGhp
cyBjYW5ub3QgYmUgY2hhbmdlZCIsICJpZCBtdXN0IG5ldmVyIGNoYW5nZS4iKTsKLSAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAg
IHQsCiAgICAgICAiQWJvcnRFcnJvciIsCiAgICAgICBhY2NlcHRQcm9taXNlLApAQCAtMzA4LDYg
KzMxNiwxOCBAQCBmdW5jdGlvbiBydW5VcGRhdGVEZXRhaWxzQWxnb3JpdGhtKAogICAgIFdoZW4g
dGhlIHBheW1lbnQgc2hlZXQgaXMgc2hvd24sIHRoZXJlIHNob3VsZCBub3QgYmUgYW55IGVycm9y
cyBzaG93bi4KICAgICA8L2J1dHRvbj4KICAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25j
bGljaz0iCisgICAgICBjb25zdCBpbml0aWFsRGV0YWlscyA9IHt0b3RhbDogcGFzc1RvdGFsLCBp
ZDogJ3RoaXMgY2Fubm90IGJlIGNoYW5nZWQnfTsKKyAgICAgIGNvbnN0IHVwZGF0ZWREZXRhaWxz
ID0ge307CisgICAgICBydW5VcGRhdGVEZXRhaWxzQWxnb3JpdGhtKAorICAgICAgICAgICAgdGhp
cywgdXBkYXRlZERldGFpbHMsIHtyZXF1ZXN0U2hpcHBpbmc6IGZhbHNlfSwgaW5pdGlhbERldGFp
bHMpOworICAgICI+CisgICAgUmVzb2x2aW5nIHRoZSBzaG93IHByb21pc2Ugd2l0aCBlbXB0eSBk
ZXRhaWxzIHdpbGwgcHJlc2VydmUgdGhlIGRldGFpbHMgZnJvbQorICAgIHRoZSBjb25zdHJ1Y3Rv
ci4gV2hlbiB0aGUgcGF5bWVudCBzaGVldCBpcyBzaG93biwgdGhlIHN0cmluZworICAgICLinIUg
VEVTVCBIQVMgUEFTU0VEIOKchSIgc2hvdWxkIGJlIHNob3duLgorICAgIDwvYnV0dG9uPgorICA8
L2xpPgogICA8bGk+CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSJkb25lKCk7Ij5Eb25lITwvYnV0dG9u
PgogICA8L2xpPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2QtcG9zdG1lc3NhZ2UtaWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9zaG93LW1ldGhvZC1wb3N0bWVzc2FnZS1pZnJhbWUuaHRtbAppbmRleCAxMmEx
ZTBjZWY4Mjg4NmYwNTE0Y2FlNTZlYjlmNGUxMTMyMWFiNWRlLi5iNTBmMThlY2NlM2FjNjJkMzE5
M2E4NmQ2NjhmNDU3YzFlOTYyOWFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1wb3N0bWVz
c2FnZS1pZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1wb3N0bWVzc2FnZS1pZnJhbWUu
aHRtbApAQCAtMyw3ICszLDE2IEBACiAidXNlIHN0cmljdCI7CiBjb25zdCBkZWZhdWx0TWV0aG9k
cyA9IE9iamVjdC5mcmVlemUoWwogICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9
LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0s
CisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5
IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVudGlm
aWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisg
ICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgICAgc3VwcG9y
dGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0KKyAgfSwKIF0pOwogCiBjb25zdCBkZWZhdWx0
RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2QtcG9z
dG1lc3NhZ2UtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1wb3N0bWVzc2FnZS1t
YW51YWwuaHR0cHMuaHRtbAppbmRleCBlNGFiNTUwZTQxODllMTUxOGE0YjYwMWFhNGM5ZTI0OWRm
NGM1ZWNkLi45MjBlMGE5OTkyZWJhMWY2MDRkNWQwMjQ2ZjFjN2U3ZTdiNDJiZDFkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9zaG93LW1ldGhvZC1wb3N0bWVzc2FnZS1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9zaG93LW1ldGhvZC1wb3N0bWVzc2FnZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtMTIsMzQgKzEy
LDYgQEAgc2V0dXAoewogICBhbGxvd191bmNhdWdodF9leGNlcHRpb246IHRydWUsCiB9KTsKIAot
Y29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFsKLSAgeyBzdXBwb3J0ZWRNZXRo
b2RzOiAiYmFzaWMtY2FyZCIgfSwKLSAgeyBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBs
ZS5jb20vYXBwbGUtcGF5IiB9LAotXSk7Ci0KLWNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0
LmZyZWV6ZSh7Ci0gIGlkOiAiZmFpbCIsCi0gIHRvdGFsOiB7Ci0gICAgbGFiZWw6ICJUb3RhbCIs
Ci0gICAgYW1vdW50OiB7Ci0gICAgICBjdXJyZW5jeTogIlVTRCIsCi0gICAgICB2YWx1ZTogIjEu
MDAiLAotICAgIH0sCi0gIH0sCi19KTsKLQotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3Mo
Ci0gICAgIlNlY3VyaXR5RXJyb3IiLAotICAgICgpID0+IHsKLSAgICAgIGNvbnN0IHJlcXVlc3Qg
PSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAg
ICAgIHJlcXVlc3Quc2hvdygpOyAvLyA8LS0tIHNob3VsZCB0aHJvdyBoZXJlCi0gICAgICByZXF1
ZXN0LmFib3J0KCk7Ci0gICAgfSwKLSAgICAidGhyb3dzIGEgU2VjdXJpdHlFcnJvciBpZiBub3Qg
dHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbiIKLSAgKTsKLX0pOwotCiBhc3luYyBmdW5jdGlv
biBydW5Vc2VyQWN0aXZhdGlvbihidXR0b24pIHsKICAgYnV0dG9uLmRpc2FibGVkID0gdHJ1ZTsK
ICAgY29uc3QgeyBjb250ZW50V2luZG93OiBpZnJhbWVXaW5kb3cgfSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJpZnJhbWUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3VwZGF0ZVdpdGgtbWV0aG9kLXBt
aS1oYW5kbGluZy1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3VwZGF0ZVdpdGgtbWV0aG9kLXBtaS1o
YW5kbGluZy1tYW51YWwuaHR0cHMuaHRtbAppbmRleCAwNjg1MmJmOGM0N2NiOWU3MjAxOTBiOWIw
ZTJmODFkOWU3ZGRkMzM1Li4xYTUyOTc4Y2EzZTMxMjM5MmM3NTRjMDgyNjc0MDU3MjNlNWY4ODAw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC91cGRhdGVXaXRoLW1ldGhvZC1wbWktaGFuZGxpbmctbWFudWFsLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvdXBkYXRlV2l0aC1tZXRob2QtcG1pLWhhbmRsaW5nLW1hbnVhbC5o
dHRwcy5odG1sCkBAIC0xLDUgKzEsNCBAQAogPCFET0NUWVBFIGh0bWw+Ci08IS0tIENvcHlyaWdo
dCDCqSAyMDE3IE1vemlsbGEgYW5kIFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIChNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFUkNJTSwgS2VpbyBVbml2ZXJzaXR5LCBC
ZWloYW5nKS4gLS0+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+VGVzdCBmb3IgdmFs
aWRpdHkgb2YgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllcnMgd2hlbiBjYWxsaW5nIHVwZGF0ZVdp
dGgoKSBtZXRob2Q8L3RpdGxlPgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3d3dy53
My5vcmcvVFIvcGF5bWVudC1yZXF1ZXN0LyN1cGRhdGV3aXRoKCktbWV0aG9kIj4KQEAgLTcsMTIg
KzYsMzAgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7Ci1zZXR1cCh7IGV4cGxpY2l0X2RvbmU6
IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7CitzZXR1cCh7CisgIGV4cGxpY2l0X2Rv
bmU6IHRydWUsCisgIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUsCisgIGFsbG93X3VuY2F1Z2h0X2V4
Y2VwdGlvbjogdHJ1ZSwKK30pOworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAg
c3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6
IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNv
bS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxp
dGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwK
KyAgfSwKK30pOwogY29uc3QgdmFsaWRNZXRob2QgPSBPYmplY3QuZnJlZXplKHsKICAgc3VwcG9y
dGVkTWV0aG9kczogImh0dHBzOi8vOkB3cHQuZnlpOjQ0My9wYXltZW50LXJlcXVlc3QiLAogfSk7
CiAKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citj
b25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFsKKyAgdmFsaWRNZXRob2QsCisgIGFw
cGxlUGF5LAorICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9LAorXSk7CiAKIGNv
bnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGN1cnJlbmN5OiAiVVNEIiwKQEAg
LTQxLDIzICs1OCwxMiBAQCBjb25zdCB2YWxpZE1vZGlmaWVyID0gT2JqZWN0LmZyZWV6ZSh7CiAg
IHRvdGFsOiB2YWxpZFRvdGFsLAogfSk7CiAKLXRlc3QoKCkgPT4gewotICB0cnkgewotICAgIG5l
dyBQYXltZW50UmVxdWVzdCh2YWxpZE1ldGhvZHMsIHZhbGlkRGV0YWlscyk7Ci0gIH0gY2F0Y2gg
KGVycikgewotICAgIGRvbmUoKTsKLSAgICB0aHJvdyBlcnI7Ci0gIH0KLX0sICJzbW9rZSB0ZXN0
Iik7Ci0KIGZ1bmN0aW9uIG1hbnVhbFRlc3QoYnV0dG9uLCB7IGludmFsaWRNZXRob2QgfSkgewog
ICBidXR0b24uZGlzYWJsZWQgPSB0cnVlOwogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0g
ICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCgKLSAgICAgIFt7IHN1cHBvcnRl
ZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9XSwKLSAgICAgIHZhbGlkRGV0YWlscywKLSAgICAgIHsg
cmVxdWVzdFNoaXBwaW5nOiB0cnVlIH0KLSAgICApOworICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcg
UGF5bWVudFJlcXVlc3QodmFsaWRNZXRob2RzLCB2YWxpZERldGFpbHMsIHsKKyAgICAgIHJlcXVl
c3RTaGlwcGluZzogdHJ1ZSwKKyAgICB9KTsKICAgICBjb25zdCBsaXN0ZW5lciA9IGV2ID0+IHsK
ICAgICAgIGNvbnN0IGludmFsaWRNb2RpZmllciA9IE9iamVjdC5hc3NpZ24oe30sIHZhbGlkTW9k
aWZpZXIsIHsKICAgICAgICAgc3VwcG9ydGVkTWV0aG9kczogaW52YWxpZE1ldGhvZCwKQEAgLTcw
LDcgKzc2LDcgQEAgZnVuY3Rpb24gbWFudWFsVGVzdChidXR0b24sIHsgaW52YWxpZE1ldGhvZCB9
KSB7CiAgICAgLy8gV2UgdGVzdCBhZ2FpbnN0IGEgdmFsaWQgYW5kIGFuIGludmFsaWQgbW9kaWZp
ZXIKICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInNoaXBwaW5nYWRkcmVzc2NoYW5nZSIs
IGxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7CiAgICAgY29uc3Qgc2hvd1Byb21pc2UgPSByZXF1
ZXN0LnNob3coKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgbmV3IFJhbmdlRXJyb3Io
KSwgc2hvd1Byb21pc2UpOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19qcyh0LCBSYW5nZUVy
cm9yLCBzaG93UHJvbWlzZSk7CiAgIH0sIGJ1dHRvbi50ZXh0Q29udGVudC50cmltKCkpOwogfQog
PC9zY3JpcHQ+CkBAIC0xMjAsMTAgKzEyNiwxMyBAQCBmdW5jdGlvbiBtYW51YWxUZXN0KGJ1dHRv
biwgeyBpbnZhbGlkTWV0aG9kIH0pIHsKICAgICA8L2J1dHRvbj4KICAgPC9saT4KICAgPGxpPgot
ICAgIDxidXR0b24gb25jbGljaz0ibWFudWFsVGVzdCh0aGlzLCB7aW52YWxpZE1ldGhvZDogJ0Jh
c2ljLUNhcmQnfSk7IGRvbmUoKTsiPgorICAgIDxidXR0b24gb25jbGljaz0ibWFudWFsVGVzdCh0
aGlzLCB7aW52YWxpZE1ldGhvZDogJ0Jhc2ljLUNhcmQnfSk7Ij4KICAgICAgIE11c3QgdGhyb3cg
aWYgc3RhbmRhcmRpemVkIFBNSSBoYXMgdXBwZXJjYXNlIGNoYXJhY3RlcnMuCiAgICAgPC9idXR0
b24+CiAgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9ImRvbmUoKTsiPkRvbmUh
PC9idXR0b24+CisgIDwvbGk+CiA8L29sPgogPHNtYWxsPgogICBJZiB5b3UgZmluZCBhIGJ1Z2d5
IHRlc3QsIHBsZWFzZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9pc3N1ZXMiPmZpbGUgYSBidWc8L2E+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC91c2VyLWFib3J0
LWFsZ29yaXRobS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3VzZXItYWJvcnQtYWxnb3JpdGhtLW1h
bnVhbC5odHRwcy5odG1sCmluZGV4IDBiYTA0MDVjNTJmYmQ1ODA1YTM2ZDI3MDc2MThkYzg0YTcx
MTEzNTEuLjA3OGJmM2Q2MWFlNmU3NWIzY2NmMGZlZDhhOTg3ZTZiN2NkMzZmZmUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3VzZXItYWJvcnQtYWxnb3JpdGhtLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Vz
ZXItYWJvcnQtYWxnb3JpdGhtLW1hbnVhbC5odHRwcy5odG1sCkBAIC0xNywxMCArMTcsMjAgQEAg
Y29uc3QgdmFsaWRUb3RhbCA9IE9iamVjdC5mcmVlemUoewogICBsYWJlbDogIlRvdGFsIGR1ZSIs
CiAgIGFtb3VudDogdmFsaWRBbW91bnQsCiB9KTsKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZy
ZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXki
LAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJt
ZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hh
bnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3Jrczog
WyJ2aXNhIl0sCisgIH0KK30pOwogY29uc3QgdmFsaWRNZXRob2QgPSBPYmplY3QuZnJlZXplKHsK
ICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAogfSk7Ci1jb25zdCB2YWxpZE1ldGhv
ZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOworY29uc3QgdmFsaWRNZXRob2RzID0g
T2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5XSk7CiBjb25zdCB2YWxpZERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKICAgdG90YWw6IHZhbGlkVG90YWwsCiB9KTsKQEAgLTQwLDkg
KzUwLDkgQEAgYXN5bmMgZnVuY3Rpb24gcnVuQWJvcnRUZXN0KGJ1dHRvbikgewogICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVz
dCh2YWxpZE1ldGhvZHMsIHZhbGlkRGV0YWlscyk7CiAgICAgLy8gQXdhaXQgdGhlIHVzZXIgdG8g
YWJvcnQKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkFib3J0RXJyb3IiLCByZXF1ZXN0
LnNob3coKSk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiQWJvcnRFcnJvciIs
IHJlcXVlc3Quc2hvdygpKTsKICAgICAvLyBbW3N0YXRlXV0gaXMgbm93IGNsb3NlZAotICAgIGF3
YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LnNob3co
KSk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3Ii
LCByZXF1ZXN0LnNob3coKSk7CiAgIH0sIHRlc3ROYW1lLnRyaW0oKSk7CiB9CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3VzZXItYWNjZXB0cy1wYXltZW50LXJlcXVlc3QtYWxnby1tYW51YWwu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3VzZXItYWNjZXB0cy1wYXltZW50LXJlcXVlc3QtYWxnby1tYW51YWwu
aHR0cHMuaHRtbAppbmRleCBhYmFmNmNiNGU4NTgwZGY1YzYwMzRlOGIxMzdhZThmYzM0MzA2N2E2
Li4wMjI1MTM3NTg1M2E3ZGNjYmNlY2M4ZDMxZGM1MGRkOTRlNzU3Y2JiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC91c2VyLWFjY2VwdHMtcGF5bWVudC1yZXF1ZXN0LWFsZ28tbWFudWFsLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvdXNlci1hY2NlcHRzLXBheW1lbnQtcmVxdWVzdC1hbGdvLW1hbnVhbC5odHRwcy5odG1s
CkBAIC04LDEzICs4LDIzIEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgogc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVl
LCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJl
ZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIs
CisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1l
cmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFu
dENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBb
InZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCBiYXNpY0NhcmRNZXRob2QgPSBPYmplY3QuZnJlZXpl
KHsKICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAogfSk7CiBjb25zdCB2YWxpZE1l
dGhvZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAidGhpcy1pcy1qdXN0
LWZvci10ZXN0aW5ncy13aWxsLW5ldmVyLW1hdGNoIiwKIH0pOwotY29uc3QgbWV0aG9kcyA9IE9i
amVjdC5mcmVlemUoW2Jhc2ljQ2FyZE1ldGhvZCwgdmFsaWRNZXRob2RdKTsKK2NvbnN0IG1ldGhv
ZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmRNZXRob2QsIHZhbGlkTWV0aG9kLCBhcHBsZVBh
eV0pOwogY29uc3QgdmFsaWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKICAgY3VycmVuY3k6ICJV
U0QiLAogICB2YWx1ZTogIjUuMDAiLApAQCAtODcsNyArOTcsNyBAQCBmdW5jdGlvbiB0ZXN0QWNj
ZXB0UmVxdWVzdEFsZ29yaXRobSgKICAgICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3VjY2Vz
cyIpOwogICAgIC8vIEZvciBnb29kIG1lYXN1cmUsIHRlc3QgdGhhdCBzdWJzZXF1ZW50IGNvbXBs
ZXRlKCkKICAgICBmb3IgKGNvbnN0IHN0YXRlIG9mIFt1bmRlZmluZWQsICJzdWNjZXNzIiwgImZh
aWwiLCAidW5rbm93biJdKSB7Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgICB0LAogICAgICAgICAiSW52YWxpZFN0
YXRlRXJyb3IiLAogICAgICAgICByZXNwb25zZS5jb21wbGV0ZShzdGF0ZSksCkBAIC0xMzMsNyAr
MTQzLDcgQEAgZnVuY3Rpb24gdGVzdEFjY2VwdFJlcXVlc3RBbGdvcml0aG0oCiAgICAgICAgIGBy
ZXNwb25zZS4ke2F0dHJ9IG11c3QgYmUgJHtleHBlY3RlZFZhbHVlfWAKICAgICAgICk7CiAgICAg
fQotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
ZG9tKAogICAgICAgdCwKICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICByZXF1ZXN0
LnNob3coKSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdzNjLWltcG9ydC5s
b2cKaW5kZXggYmFkZjQyYzZmNDUzYmNmMDBhMDU0NGQwOGQ1MDY5NGEzODVjZjcwOS4uNzBhZjVj
MGZmOWZmZWMzMDlmOTQ1Mzk2MzkzYzIwMzExZTU2NmY4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdzNjLWlt
cG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTE2LDIwICsxNiwyNyBAQCBOb25l
CiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxnb3JpdGhtcy1tYW51YWwuaHR0
cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvYmxhbmsuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlwcGluZy1vcHRpb24tbWFudWFsLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9jaGFuZ2Utc2hpcHBpbmctb3B0aW9uLXNlbGVjdC1sYXN0LW1hbnVhbC5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvY29uc3RydWN0b3JfY29udmVydF9tZXRob2RfZGF0YS5odHRwcy5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
ZHluYW1pY2FsbHktY2hhbmdlLXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9oaXN0b3JpY2FsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L29ubWVyY2hhbnR2YWxpZGF0aW9uLWF0dHJpYnV0ZS5odHRwcy5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXlt
ZW50bWVudGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1ldGhv
ZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWFib3J0LW1ldGhvZC5odHRwcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
cGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC1wcm90ZWN0aW9uLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0dHBzLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItY3Jhc2guaHR0cHMuaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0
LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0
cnVjdG9yLXRoY3Jhc2guaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rv
ci5odHRwcy5zdWIuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLWN1cnJlbmN5LWNvZGUt
Y2hlY2tzLmh0dHBzLnN1Yi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRs
aW5nLmh0dHBzLnN1Yi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1
bWVudC1tZXRob2QtbWFudWFsLnRlbnRhdGl2ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJvdGVjdGlvbi50ZW50YXRpdmUuaHR0
cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9k
LnRlbnRhdGl2ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWlkLWF0dHJpYnV0ZS5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWluc2VjdXJlLmh0dHAuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1ub3QtZXhwb3NlZC5odHRwcy53b3JrZXIuanMKQEAgLTM5LDYgKzQ2LDcg
QEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hpcHBpbmdPcHRpb24tYXR0
cmlidXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hpcHBpbmdUeXBlLWF0dHJp
YnV0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWpl
Y3RzX2lmX25vdF9hY3RpdmUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3NoaXBwaW5nLWFkZHJlc3MtY2hhbmdl
ZC1tYW51YWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVq
ZWN0cy1tYW51YWwuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDlmMDVlNDZmN2VhYjI2MTRiMTgzMjE4YzgyMTNmOGNhYjEz
MDE4ZDYuLmFkOTY5NTIzZDVkZjcyMDg5N2Q1MzU2Yjk5MzRjNjQ1OTM5N2NhZWEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY1NCw4ICs2
NTQsNiBAQCB3ZWJraXQub3JnL2IvMTcyMDQ0IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9vcGVuLXJlcQogCiB3ZWJraXQub3JnL2IvMTczNzc5IFsg
RGVidWcgXSBmYXN0L3Njcm9sbGluZy9hcnJvdy1rZXktc2Nyb2xsLWluLXJ0bC1kb2N1bWVudC5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE3NTc3MyBbIERlYnVnIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LWNvbnN0cnVjdG9yLWNyYXNoLmh0dHBzLmh0bWwgWyBTa2lwIF0KLQogd2Via2l0Lm9yZy9i
LzE3MzY3MiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
aW52YWxpZGF0ZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE3MzUwMCBo
dHRwL3Rlc3RzL2xvYWRpbmcvYmFzaWMtYXV0aC1yZW1vdmUtY3JlZGVudGlhbHMuaHRtbCBbIFBh
c3MgRmFpbHVyZSBdCkBAIC0xMDM5LDQgKzEwMzcsNCBAQCB3ZWJraXQub3JnL2IvMjEzNjIxIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldENv
bgogCiB3ZWJraXQub3JnL2IvMjEzNjUyIHdlYnJ0Yy92aWRlby1hdXRvcGxheTEuaHRtbCBbIFBh
c3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMTQwODQgWyBSZWxlYXNlIF0gd2VicnRjL2xp
YndlYnJ0Yy9kZXNjcmlwdGlvbkdldHRlcnMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0Lm9yZy9iLzIxNDA4NCBbIFJlbGVhc2UgXSB3ZWJy
dGMvbGlid2VicnRjL2Rlc2NyaXB0aW9uR2V0dGVycy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL3Rl
c3RzLW9wdGlvbnMuanNvbgppbmRleCAxMTAzMWI1OWQyMmE5NWJkZGQ0YjYyN2IwMjhkZjU4MGU1
Zjc4NGY0Li4xNGE0NzU5ZTc0NWI0NmE2MGQ4YjJjYWQ5OTE5ZDlmN2QxYzk5MTdjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvdGVz
dHMtb3B0aW9ucy5qc29uCkBAIC0yNDU2LDkgKzI0NTYsMTggQEAKICAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNr
LWdldFNldHRpbmdzLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5
bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0LXRpbWluZy5odHRwcy5zdWIu
aHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0
bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1j
cmFzaC5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
Y29uc3RydWN0b3ItdGhjcmFzaC5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBd
LAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4tcGljdHVy
ZS9sZWF2ZS1waWN0dXJlLWluLXBpY3R1cmUuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAg
XSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403969</attachid>
            <date>2020-07-10 08:53:47 -0700</date>
            <delta_ts>2020-07-10 13:16:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214167-20200710085346.patch</filename>
            <type>text/plain</type>
            <size>297553</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjIxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzQ1NzM1YjRkYWU1MGMwNzU0MjU1
YzFkYWZjZWI5M2FkMjY1MDNiMi4uZDM4OWY5MjcwN2E4MmFhMmFmYmIzZjkyNmEyMThhNmI0M2Nj
ZGMyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA3LTA5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KKworICAgICAgICAqIHRlc3RzLW9wdGlvbnMuanNvbjoKKwogMjAyMC0wNy0xMCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24gKHIyNjQyMDIp
OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL3VzdnN0cmluZy1yZWZs
ZWN0aW9uLmh0dHBzLmh0bWwgaXMgY29uc2lzdGVudGx5IGZhaWxpbmcgb24gbWFjLXdrMQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYjFiMzNkNDUwMjMxNGY5YzM2NTUzNmFiNzQy
YzBlZjcxZjBjNmY4My4uOTNkYTUzMGRiZTI1NGRiNThhNjk2YTU0OWUyMzZlMjcwYjc3NmViYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDct
MDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdCBmcm9tIHVwc3RyZWFtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQxNjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0IGZyb20gdXBzdHJlYW0gY2VmOTNiNThlN2NmMzFmMWQ0N2MuCisK
KyAgICAgICAgKiByZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbjoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0Lyo6IFVwZGF0ZWQuCisKIDIwMjAtMDctMDkg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0YyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBk
MjU4MzNjNTQwNWRiMDIzNDM5OTAyZmFiYTY2MDg4M2JmZTAyMjg2Li45MmI1NThiNzk3YmJlNjA1
YTcyMzUzZTkzMDYxZGU0YmJkMjJhZDA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMzNiw2ICsz
MzYsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZlci10aW1pbmcvbmF2
aWdhdGlvbl90aW1pbmdfaWRsLmh0dHBzLmh0bWwgWwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2Nh
dGlvbi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0lu
U3RkRXJyIEZhaWx1cmUgUGFzcyBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3Rv
Y29sLXNldHRlci1ub24tYnJva2VuLXdlaXJkLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRF
cnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50
L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLWludmFsaWQtYXJncy5odG1sIFsgRHVtcEpT
Q29uc29sZUxvZ0luU3RkRXJyIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9k
LnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZV9FcnJv
ckV2ZW50X2xpbmVuby5odG0gWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb25v
ZGUtaW50ZXJmYWNlL2F1ZGlvbm9kZS1kaXNjb25uZWN0LWF1ZGlvcGFyYW0uaHRtbCBbIER1bXBK
U0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLXBhbm5lcm5vZGUtaW50ZXJmYWNlL3Bhbm5lci1hdXRv
bWF0aW9uLWJhc2ljLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29u
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29u
CmluZGV4IDVlODJlZDlkOGRlOWNjYjljNmEyZTFkMjZkMGI5MjE4NWUxY2FjZGYuLjEzMjZjNjdk
Mzk0ZjVkMDlkMDVlYmEyZmI4MWM3OTM0MzU5MTBiZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KQEAgLTI1NTgs
NiArMjU1OCw3IEBACiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3JlbGF0aW9u
cy9odG1sNS10cmVlL3VuaXF1ZS1pZGVudGlmaWVyLTEtaWZyYW1lLTIuaHRtbCIsCiAgICAgICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9zdXBwb3J0L01lZGlhUmVj
b3JkZXItaWZyYW1lLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2VjaG8tUGF5bWVudFJlcXVlc3QuaHRtbCIsCisg
ICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2JsYW5rLmh0bWwiLAog
ICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtcmVzcG9uc2UtaWQuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sIiwKICAgICAgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1pbmcvaWZyYW1lLXNldGRvbWFpbi5zdWIu
aHRtbCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sCmluZGV4IGU2MDhj
MGVlMjc5ZmNiNzk4N2Y5MTY3ZjgyMjNmM2ZlZGNlNjZjMzMuLjI0NDA3MjAxMzhkMzRkNWNjN2Vh
YWI5YTQ2NDhmMDc4Mjk2MzMwYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01F
VEEueW1sCkBAIC0yLDggKzIsNyBAQCBzcGVjOiBodHRwczovL3czYy5naXRodWIuaW8vcGF5bWVu
dC1yZXF1ZXN0Lwogc3VnZ2VzdGVkX3Jldmlld2VyczoKICAgLSBtYXJjb3NjYWNlcmVzCiAgIC0g
cnNvbG9tYWtoaW4KLSAgLSBkb21lbmljCiAgIC0gem91aGlyCi0gIC0gbW5vb3JlbmJlcmdoZQog
ICAtIHJvbWFuZGV2Ci0gIC0gZWRlbmNodWFuZworICAtIGFlc3RlcworICAtIGRhbnlhbwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQvY29tcGxldGUtbWV0aG9kLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb21wbGV0ZS1tZXRob2QuaHR0cHMu
aHRtbAppbmRleCA0ZWRmZDU0ZjQwZTRhZWZkMDQ4ODA4OTY3Njg5NjQwZDI4N2M3YWM3Li4zNmJm
ZGIyMTYwYTdjN2Y3MWE2NGVjZWMwNzAyNGI3MDBiYjFkZTYwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJj
aGFudFZhbGlkYXRpb25FdmVudC9jb21wbGV0ZS1tZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9N
ZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb21wbGV0ZS1tZXRob2QuaHR0cHMuaHRtbApAQCAtOCw3
ICs4LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0KCgpID0+IHsKICAgY29uc3QgZXZlbnQgPSBuZXcgTWVy
Y2hhbnRWYWxpZGF0aW9uRXZlbnQoInRlc3QiKTsKLSAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0
YXRlRXJyb3IiLCAoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJv
ciIsICgpID0+IHsKICAgICBldmVudC5jb21wbGV0ZSgiIik7CiAgIH0pCiB9LCAiSWYgZXZlbnQn
cyBpc1RydXN0ZWQgYXR0cmlidXRlIGlzIGZhbHNlLCB0aGVuIHRoZW4gdGhyb3cgYW4gSW52YWxp
ZFN0YXRlRXJyb3IgRE9NRXhjZXB0aW9uLiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxp
ZGF0aW9uRXZlbnQvY29uc3RydWN0b3IuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRW
YWxpZGF0aW9uRXZlbnQvY29uc3RydWN0b3IuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGUzOTA3
Mzk3NWFkY2QyZmUzYmYzYjQ4YzBjZjBmNzM1ZjZiMDA2NjUuLmQzM2UxNWY0YzA0ZGM2NDFhMTkw
MDk0ZmU0YjU2OWYwNWE0OWEyMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2
ZW50L2NvbnN0cnVjdG9yLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlk
YXRpb25FdmVudC9jb25zdHJ1Y3Rvci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTUsNiArNSw3IEBA
IFBBU1MgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQgY2FuIGJlIGRpc3BhdGNoZWQsIGV2ZW4gaWYg
bm90IHRydXN0ZWQuCiBQQVNTIE11c3QgaGF2ZSBhIHZhbGlkYXRpb25VUkwgSURMIGF0dHJpYnV0
ZSwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgd2l0aCB0byB0aGUgdmFsaWRhdGlvblVSTCBkaWN0aW9u
YXJ5IHZhbHVlLiAKIFBBU1MgTXVzdCB0aHJvdyBUeXBlRXJyb3IgaWYgaW5pdGlhbGl6ZWQgd2l0
aCBhbiBpbnZhbGlkIFVSTC4gCiBQQVNTIFJlbGF0aXZlIHZhbGlkYXRpb25VUkxzIHVzZSB0aGUg
ZG9jdW1lbnQgYXMgdGhlIGJhc2UuIAorRkFJTCBSZWxhdGl2ZSB2YWxpZGF0aW9uVVJMcyB1c2Ug
dGhlIGRvY3VtZW50LmJhc2VVUkkgYXMgdGhlIGJhc2UuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJodHRwczovL3Bhc3MuY29tL3Bhc3MiIGJ1dCBnb3QgImh0dHBzOi8vbG9jYWxob3N0Ojk0NDMv
cGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L3Bhc3MiCiBQQVNTIE11c3Qg
aGF2ZSBhIG1ldGhvZE5hbWUgSURMIGF0dHJpYnV0ZSwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgd2l0
aCB0byB0aGUgbWV0aG9kTmFtZSBkaWN0aW9uYXJ5IHZhbHVlLiAKIFBBU1MgV2hlbiBubyBtZXRo
b2ROYW1lIGlzIHBhc3NlZCwgbWV0aG9kTmFtZSBhdHRyaWJ1dGUgZGVmYXVsdHMgdG8gdGhlIGVt
cHR5IHN0cmluZyAKIFBBU1MgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQgY2FuIGJlIGNvbnN0cnVj
dGVkIHdpdGggdmFsaWQgUE1JcyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2
ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9j
b25zdHJ1Y3Rvci5odHRwcy5odG1sCmluZGV4IGVjOGE0ZmYxZWQwOTI1YTM1NGYyNjMxZDg0NTkz
MzdlNDdhYjA3OWQuLjlmZGY3OGRkYjNkZWE0ZGU3MmU0OGQxYWU1Mjg4YzBhOWYxNjFkNjggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQvY29uc3RydWN0b3IuaHR0cHMuaHRt
bApAQCAtOCw2ICs4LDEzIEBACiA8c2NyaXB0PgogY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJl
ZXplKHsKICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIs
CisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1l
cmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFu
dENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBb
InZpc2EiXSwKKyAgfQogfSk7CiBjb25zdCBiYXNpY0NhcmQgPSBPYmplY3QuZnJlZXplKHsgc3Vw
cG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0pOwogY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5XSk7CkBAIC01Nyw3ICs2NCw3IEBAIHRl
c3QoKCkgPT4gewogCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgdmFsaWRhdGlvblVSTCA9ICJodHRw
Oi8vXHUwMDVCIjsgLy8gaW52YWxpZCBVUkwKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
KCksICgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKICAgICBu
ZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQoInRlc3QiLCB7IHZhbGlkYXRpb25VUkwgfSk7CiAg
IH0pOwogfSwgIk11c3QgdGhyb3cgVHlwZUVycm9yIGlmIGluaXRpYWxpemVkIHdpdGggYW4gaW52
YWxpZCBVUkwuIik7CkBAIC03Miw2ICs3OSwyMCBAQCB0ZXN0KCgpID0+IHsKICAgfQogfSwgIlJl
bGF0aXZlIHZhbGlkYXRpb25VUkxzIHVzZSB0aGUgZG9jdW1lbnQgYXMgdGhlIGJhc2UuIik7CiAK
K3Rlc3QoKCkgPT4geworICBjb25zdCB2YWxpZGF0aW9uVVJMID0gInBhc3MiOworICBjb25zdCBi
YXNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYmFzZSIpOworICBiYXNlLmhyZWYgPSAiaHR0
cHM6Ly9wYXNzLmNvbSI7CisgIGRvY3VtZW50LmhlYWQuYXBwZW5kKGJhc2UpOworICBjb25zdCBl
dmVudCA9IG5ldyBNZXJjaGFudFZhbGlkYXRpb25FdmVudCgidGVzdCIsIHsgdmFsaWRhdGlvblVS
TCB9KTsKKyAgdHJ5IHsKKyAgICBhc3NlcnRfaWRsX2F0dHJpYnV0ZShldmVudCwgInZhbGlkYXRp
b25VUkwiKTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnZhbGlkYXRpb25VUkwsICJodHRwczov
L3Bhc3MuY29tL3Bhc3MiKTsKKyAgfSBmaW5hbGx5IHsKKyAgICBiYXNlLnJlbW92ZSgpOworICB9
Cit9LCAiUmVsYXRpdmUgdmFsaWRhdGlvblVSTHMgdXNlIHRoZSBkb2N1bWVudC5iYXNlVVJJIGFz
IHRoZSBiYXNlLiIpOworCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgbWV0aG9kTmFtZSA9ICJodHRw
czovL3Bhc3MuY29tIjsKICAgY29uc3QgZXZlbnQgPSBuZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZl
bnQoInRlc3QiLCB7IG1ldGhvZE5hbWUgfSk7CkBAIC0xMTQsOCArMTM1LDggQEAgdGVzdCgoKSA9
PiB7CiAgICAgInVua25vd246Ly9leGFtcGxlLmNvbS9wYXkiLAogICBdOwogICBmb3IgKGNvbnN0
IG1ldGhvZE5hbWUgb2YgaW52YWxpZFBNSXMpIHsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAg
bmV3IFJhbmdlRXJyb3IoKSwKKyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgUmFuZ2VFcnJv
ciwKICAgICAgICgpID0+IHsKICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTWVyY2hhbnRWYWxp
ZGF0aW9uRXZlbnQoInRlc3QiLCB7IG1ldGhvZE5hbWUgfSk7CiAgICAgICB9LApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvUGF5bWVudEFkZHJlc3MvYXR0cmlidXRlcy1hbmQtdG9KU09OLW1ldGhvZC1tYW51YWwu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L1BheW1lbnRBZGRyZXNzL2F0dHJpYnV0ZXMtYW5kLXRvSlNPTi1tZXRo
b2QtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggZWRkZTUzM2JlNmIyZTQ5NDE1YjgxYWU0ZGYxNjcx
MzkxMTdhMGQ3Yy4uOGFmY2ExOWY5MjNkNDVhMmQ5N2ExMzRlY2MxYzlhMDJiZjRhZWE4MiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvUGF5bWVudEFkZHJlc3MvYXR0cmlidXRlcy1hbmQtdG9KU09OLW1ldGhvZC1t
YW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50QWRkcmVzcy9hdHRyaWJ1dGVzLWFuZC10
b0pTT04tbWV0aG9kLW1hbnVhbC5odHRwcy5odG1sCkBAIC0yOCw4ICsyOCw4IEBAIGZ1bmN0aW9u
IHJ1bk1hbnVhbFRlc3QoYnV0dG9uLCBleHBlY3RlZCA9IHt9KSB7CiAgICAgICBhZGRyLmFkZHJl
c3NMaW5lIGluc3RhbmNlb2YgQXJyYXksCiAgICAgICAiRXhwZWN0ZWQgYWRkcmVzc0xpbmUgdG8g
YmUgYW4gYXJyYXkiCiAgICAgKTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgbmV3IFR5cGVF
cnJvcigpLAorICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICBUeXBlRXJyb3IsCiAgICAgICAo
KSA9PiB7CiAgICAgICAgIGFkZHIuYWRkcmVzc0xpbmUucHVzaCgidGhpcyBtdXN0IHRocm93Iik7
CiAgICAgICB9LApAQCAtNzMsNiArNzMsNyBAQCBmdW5jdGlvbiBydW5NYW51YWxUZXN0KGJ1dHRv
biwgZXhwZWN0ZWQgPSB7fSkgewogICAgICAgY2l0eTogJ0NoYXBlbCBIaWxsJywKICAgICAgIGRl
cGVuZGVudExvY2FsaXR5OiAnJywKICAgICAgIHBvc3RhbENvZGU6ICc2MDk1JywKKyAgICAgIHJl
Z2lvbjogJ1FMRCcsCiAgICAgICBzb3J0aW5nQ29kZTogJycsCiAgICAgICBvcmdhbml6YXRpb246
ICd3M2MnLAogICAgICAgcmVjaXBpZW50OiAnd2ViIHBsYXRmb3JtIHRlc3QnLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50L21ldGhvZERldGFpbHMtYXR0cmlidXRlLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQvbWV0aG9kRGV0YWlscy1hdHRy
aWJ1dGUuaHR0cHMuaHRtbAppbmRleCBlYzBhYTk2ZGRkYjQ2YjI2NjE3MDY0YWI1NGU5ZDAyZTJh
NTg4Y2JiLi5mZWFhZWY2NmFkZjhhNDMzODY4ZDMzYmNmNzIyNTI1YWY2YzBkMmJhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQvbWV0aG9kRGV0YWlscy1hdHRyaWJ1dGUu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQvbWV0aG9kRGV0YWls
cy1hdHRyaWJ1dGUuaHR0cHMuaHRtbApAQCAtMTcsNyArMTcsNiBAQCB0ZXN0KCgpID0+IHsKICAg
YXNzZXJ0X2lkbF9hdHRyaWJ1dGUoZXZlbnQsICJtZXRob2REZXRhaWxzIik7CiAgIGNvbnN0IHsg
dGVzdCB9ID0gZXZlbnQubWV0aG9kRGV0YWlsczsKICAgYXNzZXJ0X2VxdWFscyh0ZXN0LCAicGFz
cyIpOwotICBhc3NlcnRfZXF1YWxzKGV2ZW50Lm1ldGhvZERldGFpbHMsIG1ldGhvZERldGFpbHMp
OwogfSwgIk11c3QgaGF2ZSBhIG1ldGhvZERldGFpbHMgSURMIGF0dHJpYnV0ZSwgd2hpY2ggaXMg
aW5pdGlhbGl6ZWQgd2l0aCB0byB0aGUgbWV0aG9kTmFtZSBkaWN0aW9uYXJ5IHZhbHVlIik7CiAK
IHRlc3QoKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC9j
b25zdHJ1Y3Rvci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC9jb25z
dHJ1Y3Rvci5odHRwcy5odG1sCmluZGV4IGZkNjY0OTNiZjRmMmFhMDA2ZTk5MTk4MDk0ZDFiN2Fm
ZDM0ZjQ1NDMuLmU4ZGY3YjM1YTk0MjgwYTZjNzFkN2Q4YWM2ZjE0NTI5MDQ1MzVkZjIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvY29uc3RydWN0b3IuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0
bWwKQEAgLTYsOCArNiwxOCBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7
CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBk
YXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFu
dC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBh
YmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNh
Il0sCisgIH0KK30pOwogY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRl
ZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0
LmZyZWV6ZShbYmFzaWNDYXJkXSk7Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVl
emUoW2Jhc2ljQ2FyZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0
LmZyZWV6ZSh7CiAgIHRvdGFsOiB7CiAgICAgbGFiZWw6ICJUb3RhbCIsCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtY2FsbC1pbW1lZGlhdGUtbWFu
dWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgt
Y2FsbC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggY2Q5MjhkNGJlMWQ4NjA5YTM0
ZDA2ZTBhOTYwMzA2ZmM5NWI4NGUzMi4uMTM2NWVjZWZlYmViMjc5ZGIyZWRlOWRlOTlkMmYwYzk4
NDcwOGM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVX
aXRoLWNhbGwtaW1tZWRpYXRlLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1jYWxsLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRt
bApAQCAtOSw4ICs5LDE4IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgogc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVl
LCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJl
ZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIs
CisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1l
cmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFu
dENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBb
InZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBz
dXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOworY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0
LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9i
amVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIsIHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2
YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGxhYmVsOiAibGFiZWwiLApAQCAtNDUsMjYg
KzU1LDI5IEBAIGZ1bmN0aW9uIHRlc3RJbW1lZGlhdGVVcGRhdGUoeyB0ZXh0Q29udGVudDogdGVz
dE5hbWUgfSkgewogICAgIGNvbnN0IGV2ZW50UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZl
LCByZWplY3QpID0+IHsKICAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAg
InNoaXBwaW5nYWRkcmVzc2NoYW5nZSIsCi0gICAgICAgIGFzeW5jIGV2ID0+IHsKLSAgICAgICAg
ICAvLyBzcGluIHRoZSBldmVudCBsb29wLCBzZXRzIFtbd2FpdEZvclVwZGF0ZV1dIHRvIHRydWUu
Ci0gICAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7Ci0gICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgIGV2LnVwZGF0ZVdpdGgodmFsaWREZXRhaWxzKTsKLSAgICAgICAgICAgIHJlc29s
dmUoKTsgLy8gVGhpcyBpcyBiYWQuCi0gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICAg
ICAgICByZWplY3QoZXJyKTsgLy8gdGhpcyBpcyBnb29kLgotICAgICAgICAgIH0KKyAgICAgICAg
ZXYgPT4geworICAgICAgICAgIC8vIEZvcmNlcyB1cGRhdGVXaXRoKCkgdG8gYmUgcnVuIGluIHRo
ZSBuZXh0IGV2ZW50IGxvb3AgdGljayBzbyB0aGF0CisgICAgICAgICAgLy8gW1t3YWl0Rm9yVXBk
YXRlXV0gaXMgYWxyZWFkeSB0cnVlIHdoZW4gaXQgcnVucy4KKyAgICAgICAgICB0LnN0ZXBfdGlt
ZW91dCgoKSA9PiB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICBldi51cGRhdGVX
aXRoKHZhbGlkRGV0YWlscyk7CisgICAgICAgICAgICAgIHJlc29sdmUoKTsgLy8gVGhpcyBpcyBi
YWQuCisgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgICAgICAgICAgcmVqZWN0KGVy
cik7IC8vIHRoaXMgaXMgZ29vZC4KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KTsKICAgICAg
ICAgfSwKICAgICAgICAgeyBvbmNlOiB0cnVlIH0KICAgICAgICk7CiAgICAgfSk7Ci0gICAgY29u
c3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0LnNob3coKTsKLSAgICBhd2FpdCBwcm9taXNlX3Jl
amVjdHMoCisgICAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworICAgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVy
cm9yIiwKICAgICAgIGV2ZW50UHJvbWlzZSwKICAgICAgICJUaGUgZXZlbnQgbG9vcCBhbHJlYWR5
IHNwdW4sIHNvIFtbd2FpdEZvclVwZGF0ZV1dIGlzIG5vdyB0cnVlIgogICAgICk7CisgICAgY29u
c3QgcmVzcG9uc2UgPSBhd2FpdCBhY2NlcHRQcm9taXNlOwogICAgIGF3YWl0IHJlc3BvbnNlLmNv
bXBsZXRlKCk7CiAgIH0sIHRlc3ROYW1lLnRyaW0oKSk7CiB9CkBAIC05MCw3ICsxMDMsNyBAQCBm
dW5jdGlvbiB0ZXN0U3Vic2VxdWVudFVwZGF0ZVdpdGhDYWxscyh7IHRleHRDb250ZW50OiB0ZXN0
TmFtZSB9KSB7CiAgICAgICB9KTsKICAgICB9KTsKICAgICBjb25zdCByZXNwb25zZVByb21pc2Ug
PSByZXF1ZXN0LnNob3coKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQg
cHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3Ii
LAogICAgICAgZXZlbnRQcm9taXNlLApAQCAtMTM1LDcgKzE0OCw3IEBAIGZ1bmN0aW9uIHRlc3RS
ZWN5Y2xlRXZlbnRzKHsgdGV4dENvbnRlbnQ6IHRlc3ROYW1lIH0pIHsKIAogICAgIC8vIEhlcmUs
IHdlIHRyeSB0byBiZSBzbmVha3ksIGFuZCByZXVzZSB0aGUgYWRkcmVzc0NoYW5nZUV2ZW50IHRv
IHBlcmZvcm0gdGhlIHVwZGF0ZS4KICAgICAvLyBIb3dldmVyLCBhZGRyZXNzQ2hhbmdlRXZlbnQg
W1t3YWl0aW5nRm9yVXBkYXRlXV0gaXMgdHJ1ZSwgc28gaXQgdGhyb3dzLgotICAgIGFzc2VydF90
aHJvd3MoCisgICAgYXNzZXJ0X3Rocm93c19kb20oCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3Ii
LAogICAgICAgKCkgPT4gewogICAgICAgICBhZGRyZXNzQ2hhbmdlRXZlbnQudXBkYXRlV2l0aCh2
YWxpZERldGFpbHMpOwpAQCAtMTQ2LDcgKzE1OSw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN5Y2xlRXZl
bnRzKHsgdGV4dENvbnRlbnQ6IHRlc3ROYW1lIH0pIHsKICAgICAvLyBCdXQgb3B0aW9uQ2hhbmdl
RXZlbnQgaXMgc3RpbGwgdXNhYmxlIHRobywgc28uLi4KICAgICBvcHRpb25DaGFuZ2VFdmVudC51
cGRhdGVXaXRoKHZhbGlkRGV0YWlscyk7CiAKLSAgICBhc3NlcnRfdGhyb3dzKAorICAgIGFzc2Vy
dF90aHJvd3NfZG9tKAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgICgpID0+IHsK
ICAgICAgICAgb3B0aW9uQ2hhbmdlRXZlbnQudXBkYXRlV2l0aCh2YWxpZERldGFpbHMpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWR1cGxpY2F0
ZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RV
cGRhdGVFdmVudC91cGRhdGVXaXRoLWR1cGxpY2F0ZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5o
dHRwcy5odG1sCmluZGV4IDQwYmEzMDU3ZTBjYjEwNDEyZGY3NTk1MTZlZTE5MzkyYWU3MGYxYzMu
LmE0YTdhZmQ3ZjYzMzdjMzEzNGQyNTRmMTI1NzQ2M2Q2OWVmZDMwZmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1kdXBsaWNhdGUtc2hpcHBpbmct
b3B0aW9ucy1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2
ZW50L3VwZGF0ZVdpdGgtZHVwbGljYXRlLXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0
bWwKQEAgLTgsOSArOCwxOCBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1
ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsKLQorY29uc3QgYXBwbGVQYXkgPSBPYmplY3Qu
ZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBh
eSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjog
Im1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJj
aGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtz
OiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUo
eyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMg
PSBbdmFsaWRNZXRob2RdOworY29uc3QgdmFsaWRNZXRob2RzID0gW3ZhbGlkTWV0aG9kLCBhcHBs
ZVBheV07CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoewogICBjdXJyZW5jeTog
IlVTRCIsCiAgIHZhbHVlOiAiNS4wMCIsCkBAIC02NCw5ICs3Myw5IEBAIGZ1bmN0aW9uIHRlc3RG
aXJlRXZlbnRzKGJ1dHRvbikgewogICAgICAgZXZlbnQudXBkYXRlV2l0aChuZXdEZXRhaWxzKTsK
ICAgICB9KTsKICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19qcygKICAg
ICAgIHQsCi0gICAgICBuZXcgVHlwZUVycm9yKCksCisgICAgICBUeXBlRXJyb3IsCiAgICAgICBh
Y2NlcHRQcm9taXNlLAogICAgICAgIkR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbiBpZHMgbXVzdCBh
Ym9ydCB3aXRoIFR5cGVFcnJvciIKICAgICApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVl
c3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWluY3JlbWVudGFsLXVwZGF0ZS1tYW51YWwuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1pbmNyZW1lbnRh
bC11cGRhdGUtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggM2QxYmZiNDFiODRkNmIwZWNjMmQ0YmRl
MjVlYWIyZGVhZDQ2NWUzNC4uYzFlZDFiNWY2ODUwYzdmMjY1NjZmZmI2ZTk4YjA2ZWE1MTczOWUx
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWlu
Y3JlbWVudGFsLXVwZGF0ZS1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVz
dFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtaW5jcmVtZW50YWwtdXBkYXRlLW1hbnVhbC5odHRwcy5o
dG1sCkBAIC0xNCw2ICsxNCwxNSBAQCBzZXR1cCh7CiAKIGNvbnN0IG1ldGhvZHMgPSBbewogICBz
dXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCit9LCB7CisgIHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjog
MywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAg
Y291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMz
RFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KIH1dOwogCiBjb25z
dCBvcHRpb25zID0gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91
cGRhdGVXaXRoLW1ldGhvZC1hYm9ydC11cGRhdGUtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXlt
ZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtbWV0aG9kLWFib3J0LXVwZGF0ZS1tYW51
YWwuaHR0cHMuaHRtbAppbmRleCAwZmY3ZjIzYjY0Nzk2OTU5MDdhZWUzZTQ3OTQzNmI1ZmYxM2Ux
NjVhLi5lMjQ0NTJjMmE5OWQzMDFiOGVhYzAzMzA4M2UzNzk1ZTU0YmJlMTZhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtbWV0aG9kLWFib3J0LXVw
ZGF0ZS1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50
L3VwZGF0ZVdpdGgtbWV0aG9kLWFib3J0LXVwZGF0ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtMTgs
OCArMTgsMTkgQEAgY29uc3QgdmFsaWRNZXRob2RCYXNpY0NhcmQgPSBPYmplY3QuZnJlZXplKHsK
ICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAogfSk7CiAKK2NvbnN0IGFwcGxlUGF5
ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNv
bS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElk
ZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIs
CisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0
ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOworCiAvLyBNZXRob2RzCi1jb25zdCB2YWxp
ZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZEJhc2ljQ2FyZCwgdmFsaWRNZXRo
b2RdKTsKK2NvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kQmFz
aWNDYXJkLCB2YWxpZE1ldGhvZCwgYXBwbGVQYXldKTsKIAogLy8gQW1vdW50cwogY29uc3QgdmFs
aWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKQEAgLTEzMCw3ICsxNDEsNyBAQCByZWN1cnNpdmVE
YXRhLmZvbyA9IHJlY3Vyc2l2ZURhdGE7CiBPYmplY3QuZnJlZXplKHJlY3Vyc2l2ZURhdGEpOwog
CiBjb25zdCBtb2RpZmllcldpdGhSZWN1cnNpdmVEYXRhID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHN1
cHBvcnRlZE1ldGhvZHM6IHZhbGlkTWV0aG9kQmFzaWNDYXJkLAorICBzdXBwb3J0ZWRNZXRob2Rz
OiAiYmFzaWMtY2FyZCIsCiAgIHRvdGFsOiB2YWxpZFRvdGFsLAogICBkYXRhOiByZWN1cnNpdmVE
YXRhLAogfSk7CkBAIC0xNDgsMTQgKzE1OSwyMCBAQCBmdW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1
dHRvbiwgYmFkRGV0YWlscywgZXhwZWN0ZWRFcnJvciwgZXJyb3JDb2RlKSB7CiAgICAgfTsKICAg
ICAvLyBGaXJzdCB3ZSBjaGVjayB0aGUgYmFkIHVwZGF0ZS4KICAgICBjb25zdCBhY2NlcHRQcm9t
aXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGxl
dCB0ZXN0X2Z1bmM7CisgICAgaWYgKHR5cGVvZiBleHBlY3RlZEVycm9yID09ICJmdW5jdGlvbiIp
IHsKKyAgICAgIHRlc3RfZnVuYyA9IHByb21pc2VfcmVqZWN0c19qczsKKyAgICB9IGVsc2Ugewor
ICAgICAgdGVzdF9mdW5jID0gcHJvbWlzZV9yZWplY3RzX2RvbTsKKyAgICB9CisgICAgYXdhaXQg
dGVzdF9mdW5jKAogICAgICAgdCwKICAgICAgIGV4cGVjdGVkRXJyb3IsCiAgICAgICBhY2NlcHRQ
cm9taXNlLAogICAgICAgImJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJl
amVjdCB3aXRoIGV4cGVjdGVkRXJyb3IiCiAgICAgKTsKICAgICAvLyBUaGUgcmVxdWVzdCBbW3N0
YXRlXV0gaXMgbm93ICJjbG9zZWQiLCBzbyBsZXQncyBjaGVjayBmb3IgSW52YWxpZFN0YXRlRXJy
b3IKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
X2RvbSgKICAgICAgIHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgcmVxdWVz
dC5zaG93KCksCkBAIC0xNzUsNyArMTkyLDcgQEAgZnVuY3Rpb24gdGVzdEJhZFVwZGF0ZShidXR0
b24sIGJhZERldGFpbHMsIGV4cGVjdGVkRXJyb3IsIGVycm9yQ29kZSkgewogPG9sPgogICA8bGk+
CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSIKLSAgICAgIGNvbnN0IHJlamVjdGVkUHJvbWlzZSA9IFBy
b21pc2UucmVqZWN0KG5ldyBTeW50YXhFcnJvcigndGVzdCcpKS5jYXRjaChlcnIgPT4gZXJyKTsK
KyAgICAgIGNvbnN0IHJlamVjdGVkUHJvbWlzZSA9IFByb21pc2UucmVqZWN0KG5ldyBTeW50YXhF
cnJvcigndGVzdCcpKTsKICAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgcmVqZWN0ZWRQcm9taXNl
LCAnQWJvcnRFcnJvcicpOwogICAgICI+CiAgICAgICBSZWplY3Rpb24gb2YgZGV0YWlsc1Byb21p
c2UgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYW4gIkFib3J0RXJyb3IiIERPTUV4Y2VwdGlv
bi4KQEAgLTE4NCw3ICsyMDEsNyBAQCBmdW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFk
RGV0YWlscywgZXhwZWN0ZWRFcnJvciwgZXJyb3JDb2RlKSB7CiAgIDxsaT4KICAgICA8YnV0dG9u
IG9uY2xpY2s9IgogICAgICAgY29uc3QgaW52YWxpZERldGFpbHMgPSB7IHRvdGFsOiBgdGhpcyB3
aWxsIGNhdXNlIGEgVHlwZUVycm9yIWAgfTsKLSAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgaW52
YWxpZERldGFpbHMsIG5ldyBUeXBlRXJyb3IoKSk7CisgICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMs
IGludmFsaWREZXRhaWxzLCBUeXBlRXJyb3IpOwogICAgICI+CiAgICAgICBUb3RhbCBpbiB0aGUg
dXBkYXRlIGlzIGEgc3RyaW5nLCBzbyBjb252ZXJ0aW5nIHRvIElETCBtdXN0IGFib3J0IHRoZSB1
cGRhdGUgd2l0aCBhIFR5cGVFcnJvci4KICAgICA8L2J1dHRvbj4KQEAgLTE5MiwxNCArMjA5LDE0
IEBAIGZ1bmN0aW9uIHRlc3RCYWRVcGRhdGUoYnV0dG9uLCBiYWREZXRhaWxzLCBleHBlY3RlZEVy
cm9yLCBlcnJvckNvZGUpIHsKICAgPGxpPgogICAgIDxidXR0b24gb25jbGljaz0iCiAgICAgICBj
b25zdCBpbnZhbGlkRGV0YWlscyA9IHsgdG90YWw6IHJlY3Vyc2l2ZURhdGEgfTsKLSAgICAgIHRl
c3RCYWRVcGRhdGUodGhpcywgaW52YWxpZERldGFpbHMsIG5ldyBUeXBlRXJyb3IoKSk7CisgICAg
ICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGludmFsaWREZXRhaWxzLCBUeXBlRXJyb3IpOwogICAgICI+
CiAgICAgICBUb3RhbCBpcyByZWN1cnNpdmUsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJv
cnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9yLgogICAgIDwvYnV0dG9uPgogICA8L2xpPgog
ICA8bGk+CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSIKLSAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywg
aW52YWxpZERldGFpbHNOZWdhdGl2ZVRvdGFsLCBuZXcgVHlwZUVycm9yKCkpOworICAgICAgdGVz
dEJhZFVwZGF0ZSh0aGlzLCBpbnZhbGlkRGV0YWlsc05lZ2F0aXZlVG90YWwsIFR5cGVFcnJvcik7
CiAgICAgIj4KICAgICAgIFVwZGF0aW5nIHdpdGggYSBuZWdhdGl2ZSB0b3RhbCByZXN1bHRzIGlu
IGEgVHlwZUVycm9yLgogICAgIDwvYnV0dG9uPgpAQCAtMjA3LDE2ICsyMjQsMTYgQEAgZnVuY3Rp
b24gdGVzdEJhZFVwZGF0ZShidXR0b24sIGJhZERldGFpbHMsIGV4cGVjdGVkRXJyb3IsIGVycm9y
Q29kZSkgewogICA8bGk+CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSIKICAgICAgIGNvbnN0IGJhZERl
dGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMsIHsgZGlzcGxheUl0ZW1zOiBp
bnZhbGlkUGF5bWVudEl0ZW1zIH0pOwotICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRh
aWxzLCBuZXcgUmFuZ2VFcnJvcigpKTsKKyAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgYmFkRGV0
YWlscywgUmFuZ2VFcnJvcik7CiAgICAgIj4KLSAgICAgIFVwZGF0aW5nIHdpdGggYSBkaXNwbGF5
SXRlbSB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kgcmVzdWx0cyBpbiBUeXBlRXJyb3IuCisgICAg
ICBVcGRhdGluZyB3aXRoIGEgZGlzcGxheUl0ZW0gd2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5IHJl
c3VsdHMgaW4gUmFuZ2VFcnJvci4KICAgICA8L2J1dHRvbj4KICAgPC9saT4KICAgPGxpPgogICAg
IDxidXR0b24gb25jbGljaz0iCiAgICAgICBjb25zdCBkdXBsaWNhdGVTaGlwcGluZ09wdGlvbnMg
PSBbdmFsaWRTaGlwcGluZ09wdGlvbiwgdmFsaWRTaGlwcGluZ09wdGlvbl07CiAgICAgICBjb25z
dCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsaWREZXRhaWxzLCB7IHNoaXBwaW5n
T3B0aW9uczogZHVwbGljYXRlU2hpcHBpbmdPcHRpb25zIH0pOwotICAgICAgdGVzdEJhZFVwZGF0
ZSh0aGlzLCBiYWREZXRhaWxzLCBuZXcgVHlwZUVycm9yKCkpOworICAgICAgdGVzdEJhZFVwZGF0
ZSh0aGlzLCBiYWREZXRhaWxzLCBUeXBlRXJyb3IpOwogICAgICI+CiAgICAgICBVcGRhdGluZyB3
aXRoIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbnMgKHNhbWUgSURzKSByZXN1bHRzIGluIGEgVHlw
ZUVycm9yLgogICAgIDwvYnV0dG9uPgpAQCAtMjI0LDcgKzI0MSw3IEBAIGZ1bmN0aW9uIHRlc3RC
YWRVcGRhdGUoYnV0dG9uLCBiYWREZXRhaWxzLCBleHBlY3RlZEVycm9yLCBlcnJvckNvZGUpIHsK
ICAgPGxpPgogICAgIDxidXR0b24gb25jbGljaz0iCiAgICAgICBjb25zdCBiYWREZXRhaWxzID0g
T2JqZWN0LmFzc2lnbih7fSwgdmFsaWREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9uczogaW52YWxp
ZFNoaXBwaW5nT3B0aW9ucyB9KTsKLSAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgYmFkRGV0YWls
cywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGJhZERldGFp
bHMsIFJhbmdlRXJyb3IpOwogICAgICI+CiAgICAgICBVcGRhdGluZyB3aXRoIGEgc2hpcHBpbmdP
cHRpb24gd2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5IHZhbHVlIHJlc3VsdHMgaW4gYSBSYW5nRXJy
b3IuCiAgICAgPC9idXR0b24+CkBAIC0yMzQsNyArMjUxLDcgQEAgZnVuY3Rpb24gdGVzdEJhZFVw
ZGF0ZShidXR0b24sIGJhZERldGFpbHMsIGV4cGVjdGVkRXJyb3IsIGVycm9yQ29kZSkgewogICAg
ICAgLy8gdmFsaWRNb2RpZmllciBpcyB0aGVyZSBhcyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMg
LSBpdCBzaG91bGQganVzdCBnZXQgaWdub3JlZAogICAgICAgY29uc3QgYmFkTW9kaWZpZXJzID0g
eyBtb2RpZmllcnM6IFsgbW9kaWZpZXJXaXRoSW52YWxpZFRvdGFsLCB2YWxpZE1vZGlmaWVyIF0g
fTsKICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCB2YWxpZERldGFp
bHMsIGJhZE1vZGlmaWVycyk7Ci0gICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMs
IG5ldyBSYW5nZUVycm9yKCkpOworICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxz
LCBSYW5nZUVycm9yKTsKICAgICAiPgogICAgICAgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hl
biBhIG1vZGlmaWVyJ3MgdG90YWwgaXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4KICAgICA8
L2J1dHRvbj4KQEAgLTI0NCw3ICsyNjEsNyBAQCBmdW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1dHRv
biwgYmFkRGV0YWlscywgZXhwZWN0ZWRFcnJvciwgZXJyb3JDb2RlKSB7CiAgICAgICAvLyB2YWxp
ZE1vZGlmaWVyIGlzIHRoZXJlIGFzIHRvIGF2b2lkIGZhbHNlIHBvc2l0aXZlcyAtIGl0IHNob3Vs
ZCBqdXN0IGdldCBpZ25vcmVkCiAgICAgICBjb25zdCBiYWRNb2RpZmllcnMgPSB7IG1vZGlmaWVy
czogWyBtb2RpZmllcldpdGhJbnZhbGlkRGlzcGxheUl0ZW1zLCB2YWxpZE1vZGlmaWVyIF0gfTsK
ICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMs
IGJhZE1vZGlmaWVycyk7Ci0gICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIG5l
dyBSYW5nZUVycm9yKCkpOworICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBS
YW5nZUVycm9yKTsKICAgICAiPgogICAgICAgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBh
IG1vZGlmaWVyIGRpc3BsYXkgaXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4KICAgIDwvYnV0
dG9uPgpAQCAtMjU0LDcgKzI3MSw3IEBAIGZ1bmN0aW9uIHRlc3RCYWRVcGRhdGUoYnV0dG9uLCBi
YWREZXRhaWxzLCBleHBlY3RlZEVycm9yLCBlcnJvckNvZGUpIHsKICAgICAgIC8vIHZhbGlkTW9k
aWZpZXIgaXMgdGhlcmUgYXMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzIC0gaXQgc2hvdWxkIGp1
c3QgZ2V0IGlnbm9yZWQKICAgICAgIGNvbnN0IGJhZE1vZGlmaWVycyA9IHsgbW9kaWZpZXJzOiBb
IG1vZGlmaWVyV2l0aFJlY3Vyc2l2ZURhdGEsIHZhbGlkTW9kaWZpZXIgXSB9OwogICAgICAgY29u
c3QgYmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIHZhbGlkRGV0YWlscywgYmFkTW9kaWZp
ZXJzKTsKLSAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgYmFkRGV0YWlscywgbmV3IFR5cGVFcnJv
cigpKTsKKyAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgYmFkRGV0YWlscywgVHlwZUVycm9yKTsK
ICAgICAiPgogICAgICAgTXVzdCB0aHJvdyBhcyBNb2RpZmllciBoYXMgYSByZWN1cnNpdmUgZGlj
dGlvbmFyeS4KICAgICA8L2J1dHRvbj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBk
YXRlRXZlbnQvdXBkYXRlV2l0aC1zdGF0ZS1jaGVja3MtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9Q
YXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtc3RhdGUtY2hlY2tzLW1hbnVhbC5o
dHRwcy5odG1sCmluZGV4IDRkNGVmNzM5NDlkZDFkZDI3MTUyMWM1MDA1Y2E0ZTkzMTA4YWI4NDQu
LmZiMTZkZTU2OTlhYTc0ZTlmYjcxNzg4ZTIzNzhkZjZlMjE4NDdmMTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1zdGF0ZS1jaGVja3MtbWFudWFs
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRo
LXN0YXRlLWNoZWNrcy1tYW51YWwuaHR0cHMuaHRtbApAQCAtNiw4ICs2LDE4IEBACiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
Pgogc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlLCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0p
OworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAz
LAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBj
b3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNE
UyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2
YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2Fy
ZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0p
OworY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxl
UGF5XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVT
RCIsIHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7
CiAgIGxhYmVsOiAibGFiZWwiLApAQCAtNDUsNyArNTUsNyBAQCBmdW5jdGlvbiB0ZXN0UmVxdWVz
dElzQ2xvc2VkKGJ1dHRvbikgewogICAgIHJlc3BvbnNlUHJvbWlzZS5jYXRjaChlcnIgPT4gZXJy
KTsKICAgICAvLyBTZXQgcmVxdWVzdC5bW3N0YXRlXV0gdG8gY2xvc2VkCiAgICAgYXdhaXQgZXZl
bnQudGFyZ2V0LmFib3J0KCk7Ci0gICAgYXNzZXJ0X3Rocm93cygKKyAgICBhc3NlcnRfdGhyb3dz
X2RvbSgKICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICAoKSA9PiB7CiAgICAgICAg
IGV2ZW50LnVwZGF0ZVdpdGgodmFsaWREZXRhaWxzKTsKQEAgLTcwLDcgKzgwLDcgQEAgZnVuY3Rp
b24gdGVzdFJlcXVlc3RJc1VwZGF0aW5nKGJ1dHRvbikgewogICAgIH0pOwogICAgIC8vIFNldCBy
ZXF1ZXN0LltbdXBkYXRpbmddXSB0byB0cnVlCiAgICAgZXZlbnQudXBkYXRlV2l0aChwZW5kaW5n
UHJvbWlzZSk7Ci0gICAgYXNzZXJ0X3Rocm93cygKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgKICAg
ICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICAoKSA9PiB7CiAgICAgICAgIGV2ZW50LnVw
ZGF0ZVdpdGgodmFsaWREZXRhaWxzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBk
YXRlRXZlbnQvdXBkYXRld2l0aC1tZXRob2QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
VXBkYXRlRXZlbnQvdXBkYXRld2l0aC1tZXRob2QuaHR0cHMuaHRtbAppbmRleCBhZGFjZGYzZjA2
ZDFjMWFkYjUwYTY1NTg1YjY0NDQxYzVlMDBkZTYzLi5hY2M2MmY1ZTJjZTk4MGVhZDE1ZTI1YTcw
YjkwY2E0ZTQ1ZDU2YjNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50
L3VwZGF0ZXdpdGgtbWV0aG9kLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRh
dGVFdmVudC91cGRhdGV3aXRoLW1ldGhvZC5odHRwcy5odG1sCkBAIC02LDggKzYsMTggQEAKIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAi
aHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMs
CisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNv
dW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RT
Il0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IGJh
c2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIg
fSk7Ci1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZF0pOwor
Y29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5
XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3RhbDogewog
ICAgIGxhYmVsOiAiVG90YWwiLApAQCAtMzMsNyArNDMsNyBAQCB0ZXN0KCgpID0+IHsKICAgICBu
ZXcgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCgic2hpcHBpbmdhZGRyZXNzY2hhbmdlIiksCiAg
ICAgbmV3IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQoInNoaXBwaW5nb3B0aW9uY2hhbmdlIiks
CiAgIF0uZm9yRWFjaChldiA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cygKKyAgICBhc3NlcnRfdGhy
b3dzX2RvbSgKICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICAoKSA9PiB7CiAgICAg
ICAgIGV2LnVwZGF0ZVdpdGgoUHJvbWlzZS5yZXNvbHZlKCkpOwpAQCAtNTMsNyArNjMsNyBAQCB0
ZXN0KCgpID0+IHsKICAgXS5tYXAoZXYgPT4gewogICAgIHJlcXVlc3QuZGlzcGF0Y2hFdmVudChl
dik7IC8vIHNldCAudGFyZ2V0IGFuZCBkaXNwYXRjaCBmbGFnCiAgICAgLy8gdW5zdHJ1c3RlZCBl
dmVudC4KLSAgICBhc3NlcnRfdGhyb3dzKAorICAgIGFzc2VydF90aHJvd3NfZG9tKAogICAgICAg
IkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgICgpID0+IHsKICAgICAgICAgZXYudXBkYXRlV2l0
aChQcm9taXNlLnJlc29sdmUoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJy
b3JzL3JldHJ5LXNob3dzLWVycm9yLW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1l
bnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dzLWVycm9yLW1lbWJlci1tYW51YWwuaHR0cHMu
aHRtbAppbmRleCBiM2E1MzllZjhmNGI4YWE5ZGQ5YTNlZDBjYjZiNTI3ZjE4NGNiMDRmLi45MTM1
NTIwY2Q3NjJmM2U2Mjg2YjVmM2JhNTcyZjg4Y2FlOTIwZmExIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXlt
ZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93cy1lcnJvci1tZW1iZXItbWFudWFsLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJvcnMvcmV0cnktc2hvd3MtZXJyb3It
bWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCkBAIC00NSw2ICs0NSw2IEBAIGZ1bmN0aW9uIHJldHJ5
U2hvd3NFcnJvck1lbWJlcihidXR0b24pIHsKICAgPC9saT4KIDwvb2w+CiA8c21hbGw+Ci0gIElm
IHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KLSAgYW5kIHRh
ZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9PV05FUlMiPm93bmVyczwvYT4uCisg
IElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5k
IHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+b3duZXJzPC9h
Pi4KIDwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRy
eS1zaG93cy1wYXllci1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRh
dGlvbkVycm9ycy9yZXRyeS1zaG93cy1wYXllci1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKaW5k
ZXggOGRiYzc2MGZkMDdmZTk5MGI4YmJkZWQ1NmZmY2E1OTA5MTQ5MmZkOC4uZjgxMTVlNjllYzVk
N2MzMTcyYTZlNDJkNGU0NDY4OThkMDRmOWE4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlk
YXRpb25FcnJvcnMvcmV0cnktc2hvd3MtcGF5ZXItbWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dzLXBheWVyLW1lbWJlci1t
YW51YWwuaHR0cHMuaHRtbApAQCAtNjAsNiArNjAsNiBAQCBmdW5jdGlvbiByZXRyeVNob3dzUGF5
ZXJNZW1iZXIoYnV0dG9uLCBlcnJvcikgewogICA8L2xpPgogPC9vbD4KIDxzbWFsbD4KLSAgSWYg
eW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgotICBhbmQgdGFn
IG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L09XTkVSUyI+b3duZXJzPC9hPi4KKyAg
SWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQg
dGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sIj5vd25lcnM8L2E+
LgogPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5
LXNob3dzLXNoaXBwaW5nQWRkcmVzcy1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXlt
ZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93cy1zaGlwcGluZ0FkZHJlc3MtbWVtYmVyLW1h
bnVhbC5odHRwcy5odG1sCmluZGV4IDM1NmYzMGRhNmI1NGJlZjQxMzZhMmIzYTgwNjMxM2JmNGJi
MWY3NjYuLjk0ZTZmYTUxMDViMjBhNzEyNzI5MmRlNTdhZGNmYjIwZjNiODA2ZTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dzLXNoaXBwaW5nQWRkcmVz
cy1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJv
cnMvcmV0cnktc2hvd3Mtc2hpcHBpbmdBZGRyZXNzLW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbApA
QCAtOTgsNiArOTgsNiBAQCBmdW5jdGlvbiByZXRyeVNob3dzU2hpcHBpbmdBZGRyZXNzTWVtYmVy
KGJ1dHRvbiwgZXJyb3IpIHsKICAgPC9saT4KIDwvb2w+CiA8c21hbGw+Ci0gIElmIHlvdSBmaW5k
IGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KLSAgYW5kIHRhZyBvbmUgb2Yg
dGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Js
b2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9PV05FUlMiPm93bmVyczwvYT4uCisgIElmIHlvdSBm
aW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUg
b2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+b3duZXJzPC9hPi4KIDwvc21h
bGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1zLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxn
b3JpdGhtcy1tYW51YWwuaHR0cHMuaHRtbAppbmRleCA1NDk0MzUzYzZiY2ViNGVkMGQzODg4NTJi
ZDdmNDI2ZTU3MTUxODZkLi5iOTBjMzEyYWJhM2JmNDk3ODk4NmRlZmUwMGY1MTk1Yzc0Yjg4YjYx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1zLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2Fs
Z29yaXRobXMtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTE1LDYgKzE1LDE2IEBAIGNvbnN0IG1ldGhv
ZHMgPSBbCiAgIHsKICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiAgIH0sCisg
IHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwK
KyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVudGlmaWVy
OiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAg
ICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgICAgc3VwcG9ydGVk
TmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0sCisgIH0KIF07CiBjb25zdCBzaGlwcGluZ09wdGlv
bnMgPSB7CiAgIHNoaXBwaW5nT3B0aW9uczogWwpAQCAtMTAwLDkgKzExMCw5IEBAIGFzeW5jIGZ1
bmN0aW9uIHJ1bkFib3J0VGVzdChidXR0b24pIHsKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
ewogICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWls
c05vU2hpcHBpbmdPcHRpb25zKTsKICAgICAvLyBBd2FpdCB0aGUgdXNlciB0byBhYm9ydAotICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsK
KyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgcmVxdWVzdC5z
aG93KCkpOwogICAgIC8vIFtbc3RhdGVdXSBpcyBub3cgY2xvc2VkCi0gICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Qu
c2hvdygpKTsKICAgfSwgdGVzdE5hbWUudHJpbSgpKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0
dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1
bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAppbmRleCA2MTViZTliMGIw
OWI1NmExYTE1YzQ2ZTAxMTU5NGE0MzQzYTA0ZWRiLi43YWFhZjFmMWFhNDA2NjBkODQ2NTMzYzgy
NTAxMTU4YzUzMzE2NjhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2
ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9h
bGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3Vi
LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDcgQEAKIEJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFs
IFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvY29tbW9uL2JsYW5rLmh0bWwKIAogCi1Q
QVNTIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVzdD4gaW4gbm9uLWFj
dGl2ZSBkb2N1bWVudCAoY3Jvc3Mtb3JpZ2luKSAKK0ZBSUwgUGF5bWVudFJlcXVlc3QgPGlmcmFt
ZSBhbGxvd3BheW1lbnRyZXF1ZXN0PiBpbiBub24tYWN0aXZlIGRvY3VtZW50IChjcm9zcy1vcmln
aW4pIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgICBuZXcgZ3Jh
YmJlZFBheW1lbnRSZXF1ZXN0KC4uLnBheW1lbnRBcmdzKTsKKyAgICAgIH0iIHRocmV3IGFuIGV4
Y2VwdGlvbiBmcm9tIHRoZSB3cm9uZyBnbG9iYWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXlt
ZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBz
LnN1Yi5odG1sCmluZGV4IDQ4ZjZkOTA2NjMyOGQ2ZGU0YTI2YWI0MmM2OWEzNGQ4MjJlY2UyZTgu
LjI5ZDdjNjAxMGVjZWI4MzYxMjEzZjYyYWJjNWZiZTBlMTAyZDMyYTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LWNyb3NzLW9yaWdpbi5odHRwcy5z
dWIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9z
cy1vcmlnaW4uaHR0cHMuc3ViLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgYXN5bmNfdGVzdCgodCkg
PT4gewogICAgICAgcGF0aDogJy9jb21tb24vYmxhbmsuaHRtbCcKICAgICB9KTsKICAgICBpZnJh
bWUub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7Ci0gICAgICBhc3NlcnRfdGhyb3dz
KHtuYW1lOiAnU2VjdXJpdHlFcnJvcid9LCAoKSA9PiB7CisgICAgICBhc3NlcnRfdGhyb3dzX2Rv
bSgnU2VjdXJpdHlFcnJvcicsICgpID0+IHsKICAgICAgICAgbmV3IGdyYWJiZWRQYXltZW50UmVx
dWVzdCguLi5wYXltZW50QXJncyk7CiAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LXNhbWUt
b3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwMWU4NzhlZTUwYjk2ZDg0NThjOTY0Nzhk
NTI5YmE0YmFmZGI0MDM3Li42NWQ3ZjFkZmYxNGRiNWYyM2IwY2NhZDJlOTI0NzFmYjNkMDM0NzBj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1zYW1l
LW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9h
Y3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NiBAQAogCiAKLVBBU1MgUGF5bWVudFJlcXVlc3QgPGlmcmFtZSBhbGxvd3BheW1lbnRyZXF1ZXN0
PiBpbiBub24tYWN0aXZlIGRvY3VtZW50IChzYW1lLW9yaWdpbikgCitGQUlMIFBheW1lbnRSZXF1
ZXN0IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVzdD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAo
c2FtZS1vcmlnaW4pIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4geworICAgICAg
ICBuZXcgZ3JhYmJlZFBheW1lbnRSZXF1ZXN0KC4uLnBheW1lbnRBcmdzKTsKKyAgICAgIH0iIHRo
cmV3IGFuIGV4Y2VwdGlvbiBmcm9tIHRoZSB3cm9uZyBnbG9iYWwKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
YWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0
dHBzLmh0bWwKaW5kZXggYmJjYzAyNmQ1Mjc0YTEzOWU2ZTFkMzI1MzQzMjIwYjViN2U5NTlkZi4u
OWQ1ZDMwY2RjYWI2MWY4ZGUzYjM2ZDYyYjhhY2NiMGUwZjczYjQxYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
YWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdp
bi5odHRwcy5odG1sCkBAIC0xMyw3ICsxMyw3IEBAIGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICBj
b25zdCBncmFiYmVkUGF5bWVudFJlcXVlc3QgPSB3aW4uUGF5bWVudFJlcXVlc3Q7CiAgICAgd2lu
LmxvY2F0aW9uLmhyZWYgPSAnL2NvbW1vbi9ibGFuay5odG1sJzsKICAgICBpZnJhbWUub25sb2Fk
ID0gdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7Ci0gICAgICBhc3NlcnRfdGhyb3dzKHtuYW1lOiAn
U2VjdXJpdHlFcnJvcid9LCAoKSA9PiB7CisgICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnU2VjdXJp
dHlFcnJvcicsICgpID0+IHsKICAgICAgICAgbmV3IGdyYWJiZWRQYXltZW50UmVxdWVzdCguLi5w
YXltZW50QXJncyk7CiAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5
bWVudHJlcXVlc3QvcmVtb3ZpbmctYWxsb3dwYXltZW50cmVxdWVzdC5odHRwcy5zdWIuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvcmVtb3ZpbmctYWxsb3dwYXltZW50cmVxdWVzdC5odHRw
cy5zdWIuaHRtbAppbmRleCAwOTBhZjM5ZWQ3NmJjMmVmNDVlYzYwOGMzYmMwNWY3Yzc0YWMwYmQy
Li42NGJhZWJiNTAyNDY1MTRlOWZkM2RiNTlkM2RhZGE0YWY5NzIwODI1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9hbGxvd3BheW1lbnRyZXF1ZXN0L3JlbW92aW5nLWFsbG93cGF5bWVudHJlcXVlc3QuaHR0cHMu
c3ViLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9yZW1vdmluZy1hbGxvd3BheW1l
bnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCkBAIC0yNyw2ICsyNyw5IEBAIGFzeW5jX3Rlc3QoKHQp
ID0+IHsKICAgfSk7CiAKICAgd2luZG93Lm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKChlKSA9PiB7
CisgICAgLy8gSWdub3JlIG1lc3NhZ2VzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSB0ZXN0Lgor
ICAgIGlmIChlLnNvdXJjZSAhPSBpZnJhbWUuY29udGVudFdpbmRvdykgcmV0dXJuOworCiAgICAg
aSsrOwogICAgIGlmIChpID09PSAxKSB7CiAgICAgICAvLyA1LiBUaGlzIGlzIHRoZSBmaXJzdCBt
ZXNzYWdlIHdlIHJlY2VpdmUsIGZyb20gdGhlIGZpcnN0IGxvYWQuCkBAIC00OCw3ICs1MSw5IEBA
IGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICAgIC8vIDguIFRoaXMgaXMgdGhlIHNlY29uZCBtZXNz
YWdlIHdlIHJlY2VpdmUsIGZyb20gdGhlIHNlY29uZCBsb2FkLgogICAgICAgLy8gU2luY2UgdGhl
IGFsbG93cGF5bWVudHJlcXVlc3QgZmxhZyB3YXMgbm90IHNldCwgd2UgZXhwZWN0IGFuIGV4Y2Vw
dGlvbi4KICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLm1lc3NhZ2UsICdFeGNlcHRpb24nLCAn
YWZ0ZXIgbmF2aWdhdGlvbicpOwotICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEuZGV0
YWlscywgW3RydWUgLyogZXggaW5zdGFuY2VvZiBET01FeGNlcHRpb24qLywgMTggLyogZXguY29k
ZSAqLywgJ1NlY3VyaXR5RXJyb3InIC8qIGV4Lm5hbWUgKi9dLCAnYWZ0ZXIgbmF2aWdhdGlvbicp
OworICAgICAgYXNzZXJ0X2VxdWFscyg0LCBlLmRhdGEuZGV0YWlscy5sZW5ndGgpOworICAgICAg
Ly8gVGhlIGxhc3QgZW50cnkgaXMgdGhlIGVycm9yIHN0YWNrdHJhY2UuIElnbm9yZSBpdCBpbiBj
b21wYXJpc29uLgorICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEuZGV0YWlscy5zbGlj
ZSgwLCAzKSwgW3RydWUgLyogZXggaW5zdGFuY2VvZiBET01FeGNlcHRpb24qLywgMTggLyogZXgu
Y29kZSAqLywgJ1NlY3VyaXR5RXJyb3InIC8qIGV4Lm5hbWUgKi9dLCAnYWZ0ZXIgbmF2aWdhdGlv
bicpOwogICAgICAgdC5kb25lKCk7CiAgICAgfQogICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93
cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0LXRpbWluZy5odHRwcy5z
dWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1
ZXN0LXRpbWluZy5odHRwcy5zdWIuaHRtbAppbmRleCAwNzJiOTRmMjg2ZWQzMzVmMDYzOWU4ZjVj
ZTg5YzBhZjUyZDM1OTE3Li5hNzQxMjk2ZDVkYTc1NDYwZjNkMjg3N2YyMjhkNGM1OWUxM2Q2NDNj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L3NldHRpbmctYWxsb3dwYXltZW50
cmVxdWVzdC10aW1pbmcuaHR0cHMuc3ViLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVz
dC9zZXR0aW5nLWFsbG93cGF5bWVudHJlcXVlc3QtdGltaW5nLmh0dHBzLnN1Yi5odG1sCkBAIC0x
LDUgKzEsNiBAQAogPCFkb2N0eXBlIGh0bWw+CiA8dGl0bGU+UGF5bWVudFJlcXVlc3Qgc2V0dGlu
ZyBhbGxvd3BheW1lbnRyZXF1ZXN0IGFmdGVyIGRvY3VtZW50IGNyZWF0aW9uLCBiZWZvcmUgcmVz
cG9uc2U8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KIDxkaXYgaWQ9ImxvZyI+
PC9kaXY+CkBAIC0yMSw5ICsyMiwxNSBAQCBhc3luY190ZXN0KCh0KSA9PiB7CiAgICAgaWZyYW1l
LmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoJ1doYXQgaXMgdGhlIHJlc3VsdCBvZiBuZXcgUGF5
bWVudFJlcXVlc3QoLi4uKT8nLCAnKicpOwogICB9KTsKIAotICB3aW5kb3cub25tZXNzYWdlID0g
dC5zdGVwX2Z1bmNfZG9uZSgoZSkgPT4geworICB3aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1
bmMoKGUpID0+IHsKKyAgICAvLyBJZ25vcmUgbWVzc2FnZXMgdGhhdCBhcmUgbm90IHBhcnQgb2Yg
dGhlIHRlc3QuCisgICAgaWYgKGUuc291cmNlICE9IGlmcmFtZS5jb250ZW50V2luZG93KSByZXR1
cm47CisKICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5tZXNzYWdlLCAnRXhjZXB0aW9uJyk7Ci0g
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEuZGV0YWlscywgW3RydWUgLyogZXggaW5zdGFu
Y2VvZiBET01FeGNlcHRpb24gKi8sIERPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIsICdTZWN1cml0
eUVycm9yJ10pOworICAgIGFzc2VydF9lcXVhbHMoNCwgZS5kYXRhLmRldGFpbHMubGVuZ3RoKTsK
KyAgICAvLyBUaGUgbGFzdCBlbnRyeSBpcyB0aGUgZXJyb3Igc3RhY2t0cmFjZS4gSWdub3JlIGl0
IGluIGNvbXBhcmlzb24uCisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEuZGV0YWlscy5z
bGljZSgwLCAzKSwgW3RydWUgLyogZXggaW5zdGFuY2VvZiBET01FeGNlcHRpb24gKi8sIERPTUV4
Y2VwdGlvbi5TRUNVUklUWV9FUlIsICdTZWN1cml0eUVycm9yJ10pOworICAgIHQuZG9uZSgpOwog
ICB9KTsKIAogICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L3NldHRpbmctYWxsb3dwYXltZW50cmVxdWVzdC5odHRw
cy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRy
ZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCmluZGV4IDQ1NjRkMjY0YzRlMmM1NDJiMjU3NDBlOTI3MDlj
OWU3YzBhMTRhMWQuLmMxZDUzYTRiYzI2MTc1OWQ1ZWU3MjQzYzkwZTRiZWI3ZjhiN2RlNGUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1
ZXN0Lmh0dHBzLnN1Yi5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1h
bGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCkBAIC0yMCwxMCArMjAsMTUgQEAgYXN5
bmNfdGVzdCgodCkgPT4gewogICB9KTsKIAogICB3aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1
bmMoKGUpID0+IHsKKyAgICAvLyBJZ25vcmUgbWVzc2FnZXMgdGhhdCBhcmUgbm90IHBhcnQgb2Yg
dGhlIHRlc3QuCisgICAgaWYgKGUuc291cmNlICE9IGlmcmFtZS5jb250ZW50V2luZG93KSByZXR1
cm47CisKICAgICBpKys7CiAgICAgaWYgKGkgPT09IDEpIHsKICAgICAgIGFzc2VydF9lcXVhbHMo
ZS5kYXRhLm1lc3NhZ2UsICdFeGNlcHRpb24nLCAnYmVmb3JlIG5hdmlnYXRpb24nKTsKLSAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoZS5kYXRhLmRldGFpbHMsIFt0cnVlIC8qIGV4IGluc3RhbmNl
b2YgRE9NRXhjZXB0aW9uKi8sIDE4IC8qIGV4LmNvZGUgKi8sICdTZWN1cml0eUVycm9yJyAvKiBl
eC5uYW1lICovXSwgJ2JlZm9yZSBuYXZpZ2F0aW9uJyk7CisgICAgICBhc3NlcnRfZXF1YWxzKDQs
IGUuZGF0YS5kZXRhaWxzLmxlbmd0aCk7CisgICAgICAvLyBUaGUgbGFzdCBlbnRyeSBpcyB0aGUg
ZXJyb3Igc3RhY2t0cmFjZS4gSWdub3JlIGl0IGluIGNvbXBhcmlzb24uCisgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGUuZGF0YS5kZXRhaWxzLnNsaWNlKDAsIDMpLCBbdHJ1ZSAvKiBleCBpbnN0
YW5jZW9mIERPTUV4Y2VwdGlvbiovLCAxOCAvKiBleC5jb2RlICovLCAnU2VjdXJpdHlFcnJvcicg
LyogZXgubmFtZSAqL10sICdiZWZvcmUgbmF2aWdhdGlvbicpOwogCiAgICAgICAvLyBOYXZpZ2F0
ZSB0aGUgaWZyYW1lLiBUaGlzIHdpbGwgZmlyZSBhIHNlY29uZCAnbG9hZCcgZXZlbnQgb24gdGhl
IGlmcmFtZS4KICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWYgPSBpZnJh
bWUuc3JjICsgJz8yJzsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1h
bnVhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9iaWxsaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51
YWwuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODE1NzczMzM1Nzg1NGE3OTZjOTFh
MjIzZWU0MzAxZWNkYzI0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9iaWxsaW5nLWFkZHJlc3Mt
Y2hhbmdlZC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1JlcXVl
c3QgYmlsbGluZyBhZGRyZXNzCisKK0NsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNlcXVlbmNlIGZy
b20gdG9wIHRvIGJvdHRvbSB3aXRob3V0IHJlZnJlc2hpbmcgdGhlIHBhZ2UuIEVhY2ggYnV0dG9u
IHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuCisKK1doZW4gdGhl
IHBheW1lbnQgc2hlZXQgaXMgcHJlc2VudGVkLCBzZWxlY3QgYSBwYXltZW50IG1ldGhvZCAoZS5n
LiwgYSBjcmVkaXQgY2FyZCkuCisKK1doZW4gbm8gYmlsbGluZyBhZGRyZXNzIGlzIHJlcXVlc3Rl
ZCwgYFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5tZXRob2REZXRhaWxzLmJpbGxpbmdBZGRyZXNz
YCBpcyBudWxsLgorV2hlbiBiaWxsaW5nIGFkZHJlc3MgaXMgcmVxdWVzdGVkLGBQYXltZW50TWV0
aG9kQ2hhbmdlRXZlbnQubWV0aG9kRGV0YWlscy5iaWxsaW5nQWRkcmVzc2AgaXMgYSBgUGF5bWVu
dEFkZHJlc3NgLgorRG9uZSEKK0lmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUg
YSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZpZXdlcnMuCisKK0hhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitQQVNTIG9ucGF5bWVudG1ldGhvZGNo
YW5nZSBpcyBpbiBwcm90b3R5cGUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2JpbGxpbmctYWRkcmVzcy1j
aGFuZ2VkLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYmlsbGluZy1hZGRyZXNzLWNoYW5nZWQtbWFu
dWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZmOWNiMjg1N2ZmNmE1YzZlNTdiM2ZlNDNhNzFl
MmZlZDc1YWFiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2Vk
LW1hbnVhbC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTE0IEBACis8IURPQ1RZUEUgaHRtbD4gPG1l
dGEgY2hhcnNldD0idXRmLTgiIC8+Cis8dGl0bGU+VGVzdCBmb3IgcmVxdWVzdGluZyBiaWxsaW5n
IGFkZHJlc3M8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgc2V0dXAoeworICAgIGV4cGxpY2l0X2RvbmU6IHRydWUs
CisgICAgZXhwbGljaXRfdGltZW91dDogdHJ1ZSwKKyAgfSk7CisKKyAgY29uc3QgbWV0aG9kcyA9
IFsKKyAgICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9LAorICAgIHsKKyAgICAg
IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICAgICAg
ZGF0YTogeworICAgICAgICB2ZXJzaW9uOiAzLAorICAgICAgICBtZXJjaGFudElkZW50aWZpZXI6
ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAg
ICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgICAgICBzdXBw
b3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAgICB9LAorICAgIH0sCisgIF07CisKKyAgY29u
c3QgZGV0YWlscyA9IHsKKyAgICB0b3RhbDogeworICAgICAgbGFiZWw6ICJsYWJlbCIsCisgICAg
ICBhbW91bnQ6IHsgY3VycmVuY3k6ICJVU0QiLCB2YWx1ZTogIjUuMDAiIH0sCisgICAgfSwKKyAg
fTsKKyAgdGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3RydWUoCisgICAgICAib25wYXltZW50bWV0
aG9kY2hhbmdlIiBpbiBQYXltZW50UmVxdWVzdC5wcm90b3R5cGUsCisgICAgICAiVGhlIHBheW1l
bnRtZXRob2RjaGFuZ2UgaXMgbm90IHN1cHBvcnRlZCIKKyAgICApOworICB9LCAib25wYXltZW50
bWV0aG9kY2hhbmdlIGlzIGluIHByb3RvdHlwZSIpOworCisgIGZ1bmN0aW9uIGRvbnRSZXF1ZXN0
QmlsbGluZ0FkZHJlc3MoKSB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAg
Y29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzLCB7fSk7
CisgICAgICBjb25zdCBzaG93UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworCisgICAgICAvLyBM
ZXQncyBjaGVjayB0aGUgbWV0aG9kIGRhdGEgZnJvbSBldmVudC4KKyAgICAgIGNvbnN0IHsgbWV0
aG9kRGV0YWlscyB9ID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PgorICAgICAgICByZXF1
ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInBheW1lbnRtZXRob2RjaGFuZ2UiLCByZXNvbHZlKQorICAg
ICAgKTsKKworICAgICAgYXNzZXJ0X3RydWUoImJpbGxpbmdBZGRyZXNzIiBpbiBtZXRob2REZXRh
aWxzKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgIG1ldGhvZERldGFpbHMuYmlsbGlu
Z0FkZHJlc3MsCisgICAgICAgIG51bGwsCisgICAgICAgICJFeHBlY3RlZCBtZXRob2REZXRhaWxz
LmJpbGxpbmdBZGRyZXNzIHRvIGJlIG51bGwiCisgICAgICApOworICAgICAgYXdhaXQgcmVxdWVz
dC5hYm9ydCgpOworICAgIH0pOworICB9CisKKyAgZnVuY3Rpb24gcmVxdWVzdEJpbGxpbmdBZGRy
ZXNzKCkgeworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IHJlcXVl
c3QgPSBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscywgeworICAgICAgICByZXF1
ZXN0QmlsbGluZ0FkZHJlc3M6IHRydWUsCisgICAgICB9KTsKKyAgICAgIGNvbnN0IHNob3dQcm9t
aXNlID0gcmVxdWVzdC5zaG93KCk7CisKKyAgICAgIC8vIExldCdzIGNoZWNrIHRoZSBtZXRob2Qg
ZGF0YSBmcm9tIGV2ZW50LgorICAgICAgY29uc3QgeyBtZXRob2REZXRhaWxzIH0gPSBhd2FpdCBu
ZXcgUHJvbWlzZShyZXNvbHZlID0+CisgICAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigi
cGF5bWVudG1ldGhvZGNoYW5nZSIsIHJlc29sdmUpCisgICAgICApOworCisgICAgICBhc3NlcnRf
dHJ1ZSgiYmlsbGluZ0FkZHJlc3MiIGluIG1ldGhvZERldGFpbHMpOworCisgICAgICBjb25zdCB7
IGJpbGxpbmdBZGRyZXNzIH0gPSBtZXRob2REZXRhaWxzOworICAgICAgYXNzZXJ0X3RydWUoCisg
ICAgICAgIGJpbGxpbmdBZGRyZXNzIGluc3RhbmNlb2YgUGF5bWVudEFkZHJlc3MsCisgICAgICAg
ICJFeHBlY3RlZCBpbnN0YW5jZSBvZiBQYXltZW50QWRkcmVzcyIKKyAgICAgICk7CisgICAgICBh
d2FpdCByZXF1ZXN0LmFib3J0KCk7CisgICAgfSk7CisgIH0KKzwvc2NyaXB0PgorCis8aDI+UmVx
dWVzdCBiaWxsaW5nIGFkZHJlc3M8L2gyPgorPHA+CisgIENsaWNrIG9uIGVhY2ggYnV0dG9uIGlu
IHNlcXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3aXRob3V0IHJlZnJlc2hpbmcgdGhlCisgIHBh
Z2UuIEVhY2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5k
b3cuCis8L3A+Cis8cD4KKyAgV2hlbiB0aGUgcGF5bWVudCBzaGVldCBpcyBwcmVzZW50ZWQsIHNl
bGVjdCBhIHBheW1lbnQgbWV0aG9kIChlLmcuLCBhIGNyZWRpdAorICBjYXJkKS4KKzwvcD4KKzxv
bD4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0iZG9udFJlcXVlc3RCaWxsaW5nQWRkcmVz
cygpIj4KKyAgICAgIFdoZW4gbm8gYmlsbGluZyBhZGRyZXNzIGlzIHJlcXVlc3RlZCwKKyAgICAg
IGBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQubWV0aG9kRGV0YWlscy5iaWxsaW5nQWRkcmVzc2Ag
aXMgbnVsbC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25j
bGljaz0icmVxdWVzdEJpbGxpbmdBZGRyZXNzKCkiPgorICAgICAgV2hlbiBiaWxsaW5nIGFkZHJl
c3MgaXMKKyAgICAgIHJlcXVlc3RlZCxgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Lm1ldGhvZERl
dGFpbHMuYmlsbGluZ0FkZHJlc3NgIGlzIGEKKyAgICAgIGBQYXltZW50QWRkcmVzc2AuCisgICAg
PC9idXR0b24+CisgIDwvbGk+CisgIDxsaT48YnV0dG9uIG9uY2xpY2s9ImRvbmUoKSI+RG9uZSE8
L2J1dHRvbj48L2xpPgorPC9vbD4KKzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0
LCBwbGVhc2UKKyAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPiBhbmQKKyAgdGFnIG9uZSBvZiB0aGUKKyAgPGEK
KyAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ibG9i
L21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwiCisgICAgPnN1Z2dlc3RlZCByZXZpZXdl
cnM8L2E+LgorPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2JsYW5rLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9ibGFuay5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVkZWFhNDViYjYyMDc4ODI0MjcxMTcyNWNmZDgxODliNjgxODM1YWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9ibGFuay5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAv
PgorICAgIDx0aXRsZT5CbGFuayBQYWdlPC90aXRsZT4KKyAgICA8c2NyaXB0PgorICAgICAgd2lu
ZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVk
IHRvIGVuc3VyZSB0aGUgb25sb2FkIGV2ZW50IGZpcmVzIHdoZW4gdGhpcyBwYWdlIGlzCisgICAg
ICAgIC8vIG9wZW5lZCBhcyBhIHBvcHVwLgorICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8xODE1NworICAgICAgfTsKKyAgICA8L3Nj
cmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NoYW5n
ZS1zaGlwcGluZy1vcHRpb24tbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggYTMzMzY1YmFjNzNlZDUx
YjY4NzMyMTVkMGY1NGQ3OWE3MzQyMjE2My4uNDM4MDAxODA0YWNkYWNhMjE0MTBjZTBkMzY3YTgy
MDhjYWM2MGFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1tYW51YWwu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9jaGFuZ2Utc2hpcHBpbmctb3B0aW9uLW1hbnVhbC5odHRwcy5o
dG1sCkBAIC05LDcgKzksMTcgQEAKIDxzY3JpcHQ+CiBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRy
dWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVj
dC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1jb25zdCB2YWxp
ZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOworY29uc3QgYXBwbGVQYXlN
ZXRob2QgPSB7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1w
YXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6
ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVy
Y2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3Jr
czogWyJ2aXNhIl0sCisgIH0sCit9OworY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6
ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5TWV0aG9kXSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9i
amVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIsIHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2
YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGxhYmVsOiAibGFiZWwiLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1zZWxlY3QtbGFzdC1tYW51YWwuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L2NoYW5nZS1zaGlwcGluZy1vcHRpb24tc2VsZWN0LWxhc3QtbWFudWFsLmh0dHBzLmh0
bWwKaW5kZXggZjA4NDkxMTUwYWM3ZWU2ZDY5NTIwYTkzNmViMjg2OGQ2MDM5M2M1Ny4uNGFkMzFk
NjUzMTczMzhmMDQ3NGMyNGU2ZTM1Njg4ZWI4ZjJiNGNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdl
LXNoaXBwaW5nLW9wdGlvbi1zZWxlY3QtbGFzdC1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9j
aGFuZ2Utc2hpcHBpbmctb3B0aW9uLXNlbGVjdC1sYXN0LW1hbnVhbC5odHRwcy5odG1sCkBAIC04
LDcgKzgsMTYgQEAKIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91
dDogdHJ1ZSB9KTsKIGNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoWwogICB7IHN1
cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJo
dHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0sCisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2Rz
OiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJz
aW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUi
LAorICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgICBtZXJjaGFudENhcGFiaWxpdGllczog
WyJzdXBwb3J0czNEUyJdLAorICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAg
IH0sCisgIH0sCiBdKTsKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7IGN1cnJl
bmN5OiAiVVNEIiwgdmFsdWU6ICI1LjAwIiB9KTsKIGNvbnN0IHZhbGlkVG90YWwgPSBPYmplY3Qu
ZnJlZXplKHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NvbnN0cnVjdG9yX2NvbnZlcnRfbWV0aG9kX2RhdGEu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L2NvbnN0cnVjdG9yX2NvbnZlcnRfbWV0aG9kX2RhdGEuaHR0cHMuaHRt
bAppbmRleCA1Njg2NmI0M2E0ODFlNzM4Yzg0NDUzN2NiOWMzNTVlOTYzOGEyOWZhLi5mNGE5YTcy
MWQwN2M5MWQzMWQ3YjVkMzY0NzFhMjM5ZTRlN2FiZTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9jb25zdHJ1
Y3Rvcl9jb252ZXJ0X21ldGhvZF9kYXRhLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY29uc3RydWN0b3Jf
Y29udmVydF9tZXRob2RfZGF0YS5odHRwcy5odG1sCkBAIC0zMiw4ICszMiw4IEBACiAgICAgZm9y
IChjb25zdCBzdXBwb3J0ZWRNZXRob2RzIG9mIFtdLmNvbmNhdChrbm93blBNSXMpLmNvbmNhdCh1
bmtub3duUE1JcykpIHsKICAgICAgIGNvbnN0IG1ldGhvZCA9IHsgc3VwcG9ydGVkTWV0aG9kcyB9
OwogICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChbbWV0aG9kXSwgZGV0
YWlscyk7Ci0gICAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgICBuZXcgVHlwZUVycm9yKCksCisg
ICAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgICBUeXBlRXJyb3IsCiAgICAgICAgICgpID0+
IHsKICAgICAgICAgICBjb25zdCBiYWRNZXRob2QgPSBPYmplY3QuYXNzaWduKAogICAgICAgICAg
ICAge30sCkBAIC01NSw4ICs1NSw4IEBACiAgICAgICAvLyBPbmx5IGNoZWNrIHRoZSBQTUlzIHRo
YXQgYXJlIGFjdHVhbGx5IHN1cHBvcnRlZAogICAgICAgaWYgKCEoYXdhaXQgcmVxdWVzdC5jYW5N
YWtlUGF5bWVudCgpKSkgY29udGludWU7CiAKLSAgICAgIGFzc2VydF90aHJvd3MoCi0gICAgICAg
IG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICAgIFR5cGVF
cnJvciwKICAgICAgICAgKCkgPT4gewogICAgICAgICAgIGNvbnN0IGJhZE1ldGhvZCA9IE9iamVj
dC5hc3NpZ24oCiAgICAgICAgICAgICB7fSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2R5bmFtaWNhbGx5LWNo
YW5nZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9keW5h
bWljYWxseS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM5MWM5ZmViYjg0M2MyNzQyZTg5NjhlMGZkOTM1ODNlYzVjZjczNjUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9keW5hbWljYWxseS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9ucy1t
YW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1BheW1lbnRSZXF1ZXN0
IHNoaXBwaW5nT3B0aW9uIGF0dHJpYnV0ZQorCitDbGljayBvbiBlYWNoIGJ1dHRvbiBpbiBzZXF1
ZW5jZSBmcm9tIHRvcCB0byBib3R0b20gd2l0aG91dCByZWZyZXNoaW5nIHRoZSBwYWdlLiBFYWNo
IGJ1dHRvbiAoZXhjZXB0IHRoZSAnRG9uZScgYnV0dG9uKSB3aWxsIGJyaW5nIHVwIHRoZSBQYXlt
ZW50IFJlcXVlc3QgVUkgd2luZG93LgorCitXaGVuIHRoZSBwYXltZW50IHNoZWV0IGlzIHByZXNl
bnRlZCwgdmlldyBvcHRpb25zIGZvciBTaGlwcGluZyBNZXRob2QuIFRoZXJlIHNob3VsZCBvbmx5
IGJlIG9uZTogIkRlZmF1bHQgc2hpcHBpbmcgbWV0aG9kIgorQ2hhbmdlIHlvdXIgU2hpcHBpbmcg
QWRkcmVzcyAtIGVpdGhlciB1cGRhdGUgeW91ciBleGlzdGluZyBvbmUgYnkgY2hhbmdpbmcgc29t
ZXRoaW5nIChuYW1lLCBhZGRyZXNzLCBldGMpLCBvciBzZWxlY3QgYSBkaWZmZXJlbnQgU2hpcHBp
bmcgQWRkcmVzcywgb3IgYWRkIGEgbmV3IFNoaXBwaW5nIEFkZHJlc3MgYW5kIHNlbGVjdCBpdC4K
K0dvIGJhY2sgdG8gU2hpcHBpbmcgTWV0aG9kLCBhbmQgdGhlcmUgaXMgbm93IGFuIG9wdGlvbiBj
YWxsZWQgIkR5bmFtaWNhbGx5IGFkZGVkIHNoaXBwaW5nIG9wdGlvbiIuIFNlbGVjdCBpdAorQ2xp
Y2sgb24gdGhlICdEb25lJyBidXR0b24KK1doZW4gdGhlIGFkZHJlc3MgaXMgY2hhbmdlZCwgc2hp
cHBpbmcgbWV0aG9kcyBjYW4gYmUgdXBkYXRlZAorRG9uZQorSWYgeW91IGZpbmQgYSBidWdneSB0
ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFnIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIHJldmll
d2Vycy4KKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvZHluYW1pY2FsbHktY2hhbmdlLXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9keW5hbWljYWxseS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9ucy1tYW51YWwu
aHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2I3MDUzNTBkNGQ5ZjU1ODUzMzQ0NDY5NTIxOThkZmFj
NDdkMDQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvZHluYW1pY2FsbHktY2hhbmdlLXNoaXBwaW5n
LW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxNDEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cis8dGl0bGU+VGVzdCBmb3IgUGF5bWVudFJl
cXVlc3Qgc2hpcHBpbmdPcHRpb24gZHluYW1pYyB1cGRhdGluZzwvdGl0bGU+Cis8bGluaworICBy
ZWw9ImhlbHAiCisgIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3Qv
I3NoaXBwaW5nb3B0aW9uLWF0dHJpYnV0ZSIKKy8+Cis8bGluaworICByZWw9ImhlbHAiCisgIGhy
ZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI29uc2hpcHBpbmdvcHRp
b25jaGFuZ2UtYXR0cmlidXRlIgorLz4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1
ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsKKyAgY29uc3QgdmFsaWRNZXRob2QgPSBPYmpl
Y3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0pOworICBjb25zdCBh
cHBsZVBheU1ldGhvZCA9IHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5j
b20vYXBwbGUtcGF5IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAzLAorICAgICAgbWVy
Y2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgICAgY291bnRyeUNv
ZGU6ICJVUyIsCisgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAor
ICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0sCisgIH07CisgIGNvbnN0
IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kLCBhcHBsZVBheU1ldGhv
ZF0pOworICBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVT
RCIsIHZhbHVlOiAiNS4wMCIgfSk7CisgIGNvbnN0IHZhbGlkVG90YWwgPSBPYmplY3QuZnJlZXpl
KHsKKyAgICBsYWJlbDogImxhYmVsIiwKKyAgICBhbW91bnQ6IHZhbGlkQW1vdW50LAorICB9KTsK
KyAgY29uc3QgdmFsaWREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7IHRvdGFsOiB2YWxpZFRvdGFs
IH0pOworCisgIGNvbnN0IGluaXRpYWxWYWxpZFNoaXBwaW5nT3B0aW9uID0gT2JqZWN0LmZyZWV6
ZSh7CisgICAgaWQ6ICJkZWZhdWx0LW1ldGhvZCIsCisgICAgbGFiZWw6ICJEZWZhdWx0IHNoaXBw
aW5nIG1ldGhvZCIsCisgICAgYW1vdW50OiB2YWxpZEFtb3VudCwKKyAgICBzZWxlY3RlZDogdHJ1
ZSwKKyAgfSk7CisKKyAgY29uc3QgdmFsaWREeW5hbWljU2hpcHBpbmdPcHRpb24gPSBPYmplY3Qu
ZnJlZXplKHsKKyAgICBpZDogImR5bmFtaWNhbGx5LWFkZGVkLWlkIiwKKyAgICBsYWJlbDogIkR5
bmFtaWNhbGx5IGFkZGVkIHNoaXBwaW5nIG9wdGlvbiIsCisgICAgYW1vdW50OiB2YWxpZEFtb3Vu
dCwKKyAgICBzZWxlY3RlZDogZmFsc2UsCisgIH0pOworCisgIGNvbnN0IHJlcXVlc3RTaGlwcGlu
ZyA9IE9iamVjdC5mcmVlemUoeworICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwKKyAgfSk7CisK
KyAgZnVuY3Rpb24gdGVzdFNoaXBwaW5nT3B0aW9uQ2hhbmdlZCgpIHsKKyAgICBwcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKKyAgICAgIGNvbnN0IGRldGFpbHNXaXRoU2hpcHBpbmdPcHRpb25z
ID0geworICAgICAgICAuLi52YWxpZERldGFpbHMsCisgICAgICAgIHNoaXBwaW5nT3B0aW9uczog
W2luaXRpYWxWYWxpZFNoaXBwaW5nT3B0aW9uXSwKKyAgICAgIH07CisgICAgICBjb25zdCByZXF1
ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAorICAgICAgICB2YWxpZE1ldGhvZHMsCisgICAgICAg
IGRldGFpbHNXaXRoU2hpcHBpbmdPcHRpb25zLAorICAgICAgICByZXF1ZXN0U2hpcHBpbmcKKyAg
ICAgICk7CisgICAgICBjb25zdCBzaGlwcGluZ0FkZHJlc3NDaGFuZ2VMaXN0ZW5lciA9IG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigK
KyAgICAgICAgICAic2hpcHBpbmdhZGRyZXNzY2hhbmdlIiwKKyAgICAgICAgICAoZXYpID0+IHsK
KyAgICAgICAgICAgIC8vIHJlc29sdmUocmVxdWVzdC5zaGlwcGluZ09wdGlvbik7CisgICAgICAg
ICAgICBldi51cGRhdGVXaXRoKHsKKyAgICAgICAgICAgICAgc2hpcHBpbmdPcHRpb25zOiBbCisg
ICAgICAgICAgICAgICAgaW5pdGlhbFZhbGlkU2hpcHBpbmdPcHRpb24sCisgICAgICAgICAgICAg
ICAgdmFsaWREeW5hbWljU2hpcHBpbmdPcHRpb24sCisgICAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICB9LAorICAgICAgICAg
IHsgb25jZTogdHJ1ZSB9CisgICAgICAgICk7CisgICAgICB9KTsKKyAgICAgIGNvbnN0IGhhbmRs
ZXJQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgcmVxdWVzdC5v
bnNoaXBwaW5nb3B0aW9uY2hhbmdlID0gKCkgPT4geworICAgICAgICAgIHJlc29sdmUocmVxdWVz
dC5zaGlwcGluZ09wdGlvbik7CisgICAgICAgIH07CisgICAgICB9KTsKKyAgICAgIHJlcXVlc3Qu
c2hvdygpLmNhdGNoKChlcnIpID0+IGVycik7CisKKyAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2Fp
dCBQcm9taXNlLmFsbChbCisgICAgICAgIHNoaXBwaW5nQWRkcmVzc0NoYW5nZUxpc3RlbmVyLAor
ICAgICAgICBoYW5kbGVyUHJvbWlzZSwKKyAgICAgIF0pOworICAgICAgYXNzZXJ0X3RydWUoCisg
ICAgICAgIHJlc3VsdHNbMV0gPT09ICJkeW5hbWljYWxseS1hZGRlZC1pZCIsCisgICAgICAgICJF
eHBlY3RlZCBkeW5hbWljYWxseS1hZGRlZC1pZCBhcyB0aGUgc2hpcHBpbmdPcHRpb24iCisgICAg
ICApOworICAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOworICAgIH0pOworICB9Cis8L3Njcmlw
dD4KKworPGgyPlBheW1lbnRSZXF1ZXN0IHNoaXBwaW5nT3B0aW9uIGF0dHJpYnV0ZTwvaDI+Cis8
cD4KKyAgQ2xpY2sgb24gZWFjaCBidXR0b24gaW4gc2VxdWVuY2UgZnJvbSB0b3AgdG8gYm90dG9t
IHdpdGhvdXQgcmVmcmVzaGluZyB0aGUKKyAgcGFnZS4gRWFjaCBidXR0b24gKGV4Y2VwdCB0aGUg
J0RvbmUnIGJ1dHRvbikgd2lsbCBicmluZyB1cCB0aGUgUGF5bWVudCBSZXF1ZXN0CisgIFVJIHdp
bmRvdy4KKzwvcD4KKzxvbD4KKyAgPGxpPgorICAgIFdoZW4gdGhlIHBheW1lbnQgc2hlZXQgaXMg
cHJlc2VudGVkLCB2aWV3IG9wdGlvbnMgZm9yIFNoaXBwaW5nIE1ldGhvZC4gVGhlcmUKKyAgICBz
aG91bGQgb25seSBiZSBvbmU6ICJEZWZhdWx0IHNoaXBwaW5nIG1ldGhvZCIKKyAgPC9saT4KKyAg
PGxpPgorICAgIENoYW5nZSB5b3VyIFNoaXBwaW5nIEFkZHJlc3MgLSBlaXRoZXIgdXBkYXRlIHlv
dXIgZXhpc3Rpbmcgb25lIGJ5IGNoYW5naW5nCisgICAgc29tZXRoaW5nIChuYW1lLCBhZGRyZXNz
LCBldGMpLCBvciBzZWxlY3QgYSBkaWZmZXJlbnQgU2hpcHBpbmcgQWRkcmVzcywgb3IKKyAgICBh
ZGQgYSBuZXcgU2hpcHBpbmcgQWRkcmVzcyBhbmQgc2VsZWN0IGl0LgorICA8L2xpPgorICA8bGk+
CisgICAgR28gYmFjayB0byBTaGlwcGluZyBNZXRob2QsIGFuZCB0aGVyZSBpcyBub3cgYW4gb3B0
aW9uIGNhbGxlZCAiRHluYW1pY2FsbHkKKyAgICBhZGRlZCBzaGlwcGluZyBvcHRpb24iLiBTZWxl
Y3QgaXQKKyAgPC9saT4KKyAgPGxpPgorICAgIENsaWNrIG9uIHRoZSAnRG9uZScgYnV0dG9uCisg
IDwvbGk+Cis8L29sPgorPHVsPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0U2hp
cHBpbmdPcHRpb25DaGFuZ2VkKCkiPgorICAgICAgV2hlbiB0aGUgYWRkcmVzcyBpcyBjaGFuZ2Vk
LCBzaGlwcGluZyBtZXRob2RzIGNhbiBiZSB1cGRhdGVkCisgICAgPC9idXR0b24+CisgIDwvbGk+
CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9ImRvbmUoKSI+RG9uZTwvYnV0dG9uPgorICA8
L2xpPgorPC91bD4KKzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UK
KyAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzIj5maWxlIGEgYnVnPC9hPiBhbmQKKyAgdGFnIG9uZSBvZiB0aGUKKyAgPGEKKyAgICBocmVm
PSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9w
YXltZW50LXJlcXVlc3QvTUVUQS55bWwiCisgICAgPnN1Z2dlc3RlZCByZXZpZXdlcnM8L2E+Lgor
PC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2hpc3RvcmljYWwuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2hpc3Rv
cmljYWwuaHR0cHMuaHRtbAppbmRleCBjYmQyOWQ0Y2ZmODY5ODM2NWMwNWFjZmU3NTUwNGRlNWVj
N2UxYWVjLi42NjYzZTYzMWJmZDI4NTdkYzYzZmY5ODU0ZTg2NTc4OTNjNzFhN2VkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9oaXN0b3JpY2FsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvaGlzdG9yaWNhbC5odHRwcy5o
dG1sCkBAIC0zNCw3ICszNCw3IEBAIHRlc3QoKCkgPT4gewogICBjb25zdCB1bmV4cGVjdGVkRXJy
b3IgPSB7bmFtZTogJ3NlcXVlbmNlPERPTVN0cmluZz4gY29udmVyc2lvbiBpcyBub3QgYWxsb3dl
ZCd9OwogICBtZXRob2RzLnRvU3RyaW5nID0gKCkgPT4geyB0aHJvdyBleHBlY3RlZEVycm9yOyB9
OwogICBPYmplY3QuZGVmaW5lUHJvcGVydHkobWV0aG9kcywgJzAnLCB7IGdldDogKCkgPT4geyB0
aHJvdyB1bmV4cGVjdGVkRXJyb3I7IH0gfSk7Ci0gIGFzc2VydF90aHJvd3MoZXhwZWN0ZWRFcnJv
ciwgKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2V4YWN0bHkoZXhwZWN0ZWRFcnJvciwgKCkgPT4g
ewogICAgIG5ldyBQYXltZW50UmVxdWVzdChbe3N1cHBvcnRlZE1ldGhvZHM6IG1ldGhvZHN9XSwg
e3RvdGFsOiB7bGFiZWw6ICdiYXInLCBhbW91bnQ6IHtjdXJyZW5jeTogJ0JBWicsIHZhbHVlOiAn
MCd9fX0pOwogICB9KTsKIH0sICdzdXBwb3J0ZWRNZXRob2RzIG11c3Qgbm90IHN1cHBvcnQgc2Vx
dWVuY2U8RE9NU3RyaW5nPicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25tZXJjaGFudHZhbGlkYXRpb24t
YXR0cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbm1lcmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1dGUu
aHR0cHMuaHRtbAppbmRleCBjMGVkMjMxNjdlZDkzNzhlYzMyZTc2OWJkNGYzZTNhZmFlZjUwNDBj
Li5kMzFhYzJkZDcyYWJjZjUxYTI4ZWNlYzg1MDQwMGY1ZjBjNmI5YmI1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9vbm1lcmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbm1l
cmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1dGUuaHR0cHMuaHRtbApAQCAtNyw3ICs3LDE2IEBACiA8
c2NyaXB0PgogInVzZSBzdHJpY3QiOwogY29uc3QgdGVzdE1ldGhvZCA9IE9iamVjdC5mcmVlemUo
eyBzdXBwb3J0ZWRNZXRob2RzOiAibm90LWEtcmVhbC1tZXRob2QiIH0pOwotY29uc3QgYXBwbGVQ
YXkgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29t
L2FwcGxlLXBheSIgfSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBw
b3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogewor
ICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4
YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVz
OiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9
LAorfSk7CiBjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3Rlc3RNZXRob2Qs
IGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0
b3RhbDogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXltZW50bWVudGhvZGNoYW5nZS1hdHRyaWJ1dGUu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXltZW50bWVudGhvZGNoYW5nZS1hdHRyaWJ1dGUu
aHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMmY4NzRl
OTI3NjhmMTgyZDg4YmQ3ZjgyNTc2NjZlZjdkOTU2YzlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1lbnRob2RjaGFuZ2UtYXR0cmli
dXRlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1Q
QVNTIE11c3QgaGF2ZSBhIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBJREwgYXR0cmlidXRlIAotUEFT
UyBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGlzIGEgZ2VuZXJpYyBoYW5kbGVyIGZv
ciAicGF5bWVudG1ldGhvZGNoYW5nZSIgCi1QQVNTIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBhdHRy
aWJ1dGUgaXMgYSBoYW5kbGVyIGZvciBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQgCi1QQVNTIG9u
cGF5bWVudG1ldGhvZGNoYW5nZSBhdHRyaWJ1dGUgYW5kIGxpc3RlbmVycyBib3RoIHdvcmsgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1lbnRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9vbnBheW1lbnRtZW50aG9kY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDg0ZWI4NjhmOTgzZTNjZGIwZWZjZWFiNWZlMmIz
YzYwODRiNGFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L29ucGF5bWVudG1lbnRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5UZXN0IGZvciBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlPC90
aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dz
ZXItcGF5bWVudC1hcGkvI29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRyaWJ1dGUiPgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1
c2Ugc3RyaWN0IjsKLWNvbnN0IHRlc3RNZXRob2QgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVk
TWV0aG9kczogIm5vdC1hLXJlYWwtbWV0aG9kIiB9KTsKLWNvbnN0IGFwcGxlUGF5ID0gT2JqZWN0
LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXki
IH0pOwotY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt0ZXN0TWV0aG9kLCBh
cHBsZVBheV0pOwotY29uc3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKLSAgdG90
YWw6IHsKLSAgICBsYWJlbDogIlRvdGFsIiwKLSAgICBhbW91bnQ6IHsKLSAgICAgIGN1cnJlbmN5
OiAiVVNEIiwKLSAgICAgIHZhbHVlOiAiMS4wMCIsCi0gICAgfSwKLSAgfSwKLX0pOwotCi10ZXN0
KCgpID0+IHsKLSAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgZGVmYXVsdERldGFpbHMpOwotICBhc3NlcnRfaWRsX2F0dHJpYnV0ZShyZXF1ZXN0LCAi
b25wYXltZW50bWV0aG9kY2hhbmdlIik7Ci19LCAiTXVzdCBoYXZlIGEgb25wYXltZW50bWV0aG9k
Y2hhbmdlIElETCBhdHRyaWJ1dGUiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IHJlcXVlc3Qg
PSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAg
Y29uc3QgZXYgPSBuZXcgRXZlbnQoInBheW1lbnRtZXRob2RjaGFuZ2UiKTsKLSAgbGV0IGRpZEhh
bmRsZSA9IGZhbHNlOwotICByZXF1ZXN0Lm9ucGF5bWVudG1ldGhvZGNoYW5nZSA9IGV2dCA9PiB7
Ci0gICAgYXNzZXJ0X2VxdWFscyhldiwgZXZ0LCAibXVzdCBiZSBzYW1lIGV2ZW50Iik7Ci0gICAg
ZGlkSGFuZGxlID0gdHJ1ZTsKLSAgfTsKLSAgcmVxdWVzdC5kaXNwYXRjaEV2ZW50KGV2KTsKLSAg
YXNzZXJ0X3RydWUoZGlkSGFuZGxlLCAiZXZlbnQgZGlkIG5vdCBmaXJlIik7Ci19LCBgb25wYXlt
ZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBpcyBhIGdlbmVyaWMgaGFuZGxlciBmb3IgInBheW1l
bnRtZXRob2RjaGFuZ2UiYCk7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0
IGV2ID0gbmV3IFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudCgicGF5bWVudG1ldGhvZGNoYW5nZSIp
OwotICBsZXQgZGlkSGFuZGxlID0gZmFsc2U7Ci0gIHJlcXVlc3Qub25wYXltZW50bWV0aG9kY2hh
bmdlID0gZXZ0ID0+IHsKLSAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJtdXN0IGJlIHNhbWUg
ZXZlbnQiKTsKLSAgICBkaWRIYW5kbGUgPSB0cnVlOwotICB9OwotICByZXF1ZXN0LmRpc3BhdGNo
RXZlbnQoZXYpOwotICBhc3NlcnRfdHJ1ZShkaWRIYW5kbGUsICJldmVudCBkaWQgbm90IGZpcmUi
KTsKLX0sIGBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGlzIGEgaGFuZGxlciBmb3Ig
UGF5bWVudE1ldGhvZENoYW5nZUV2ZW50YCk7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCByZXF1
ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7
Ci0gIGNvbnN0IGV2ID0gbmV3IFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudCgicGF5bWVudG1ldGhv
ZGNoYW5nZSIsIHsKLSAgICBtZXRob2ROYW1lOiAidGVzdCIKLSAgfSk7Ci0gIGxldCBkaWRIYW5k
bGUgPSBmYWxzZTsKLSAgbGV0IGRpZExpc3RlbiA9IGZhbHNlOwotICByZXF1ZXN0Lm9ucGF5bWVu
dG1ldGhvZGNoYW5nZSA9IGV2dCA9PiB7Ci0gICAgYXNzZXJ0X2VxdWFscyhldiwgZXZ0LCAibXVz
dCBiZSBzYW1lIGV2ZW50Iik7Ci0gICAgZGlkSGFuZGxlID0gdHJ1ZTsKLSAgfTsKLSAgcmVxdWVz
dC5hZGRFdmVudExpc3RlbmVyKCJwYXltZW50bWV0aG9kY2hhbmdlIiwgZXZ0ID0+IHsKLSAgICBh
c3NlcnRfZXF1YWxzKGV2LCBldnQsICJtdXN0IGJlIHNhbWUgZXZlbnQiKTsKLSAgICBkaWRMaXN0
ZW4gPSB0cnVlOwotICB9KTsKLSAgcmVxdWVzdC5kaXNwYXRjaEV2ZW50KGV2KTsKLSAgYXNzZXJ0
X3RydWUoZGlkSGFuZGxlLCAib25wYXltZW50bWV0aG9kY2hhbmdlIGRpZCBub3QgcmVjZWl2ZSB0
aGUgZXZlbnQiKTsKLSAgYXNzZXJ0X3RydWUoZGlkTGlzdGVuLCAiYWRkRXZlbnRMaXN0ZW5lciBk
aWQgbm90IHJlY2VpdmUgdGhlIGV2ZW50Iik7Ci19LCBgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0
dHJpYnV0ZSBhbmQgbGlzdGVuZXJzIGJvdGggd29ya2ApOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9vbnBheW1lbnRtZXRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEyZjg3NGU5Mjc2OGYxODJkODhiZDdmODI1NzY2NmVmN2Q5NTZjOWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZXRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBNdXN0IGhhdmUgYSBvbnBheW1lbnRt
ZXRob2RjaGFuZ2UgSURMIGF0dHJpYnV0ZSAKK1BBU1Mgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0
dHJpYnV0ZSBpcyBhIGdlbmVyaWMgaGFuZGxlciBmb3IgInBheW1lbnRtZXRob2RjaGFuZ2UiIAor
UEFTUyBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGlzIGEgaGFuZGxlciBmb3IgUGF5
bWVudE1ldGhvZENoYW5nZUV2ZW50IAorUEFTUyBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmli
dXRlIGFuZCBsaXN0ZW5lcnMgYm90aCB3b3JrIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRt
ZXRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZXRob2RjaGFu
Z2UtYXR0cmlidXRlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY0MWJlYzRhYTkxZDhiZTRmMTgw
MTg2OWViNjk5Y2E0YmFkMDNhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1ldGhv
ZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDc5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0IGZvciBvbnBheW1lbnRt
ZXRob2RjaGFuZ2UgYXR0cmlidXRlPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI29ucGF5bWVudG1ldGhvZGNo
YW5nZS1hdHRyaWJ1dGUiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2NvbnN0IHRlc3RNZXRob2QgPSBP
YmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogIm5vdC1hLXJlYWwtbWV0aG9kIiB9KTsK
K2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJo
dHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywK
KyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291
bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMi
XSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOworY29uc3QgZGVm
YXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt0ZXN0TWV0aG9kLCBhcHBsZVBheV0pOworY29u
c3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKKyAgdG90YWw6IHsKKyAgICBsYWJl
bDogIlRvdGFsIiwKKyAgICBhbW91bnQ6IHsKKyAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAg
IHZhbHVlOiAiMS4wMCIsCisgICAgfSwKKyAgfSwKK30pOworCit0ZXN0KCgpID0+IHsKKyAgY29u
c3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERl
dGFpbHMpOworICBhc3NlcnRfaWRsX2F0dHJpYnV0ZShyZXF1ZXN0LCAib25wYXltZW50bWV0aG9k
Y2hhbmdlIik7Cit9LCAiTXVzdCBoYXZlIGEgb25wYXltZW50bWV0aG9kY2hhbmdlIElETCBhdHRy
aWJ1dGUiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgY29uc3QgZXYgPSBuZXcg
RXZlbnQoInBheW1lbnRtZXRob2RjaGFuZ2UiKTsKKyAgbGV0IGRpZEhhbmRsZSA9IGZhbHNlOwor
ICByZXF1ZXN0Lm9ucGF5bWVudG1ldGhvZGNoYW5nZSA9IGV2dCA9PiB7CisgICAgYXNzZXJ0X2Vx
dWFscyhldiwgZXZ0LCAibXVzdCBiZSBzYW1lIGV2ZW50Iik7CisgICAgZGlkSGFuZGxlID0gdHJ1
ZTsKKyAgfTsKKyAgcmVxdWVzdC5kaXNwYXRjaEV2ZW50KGV2KTsKKyAgYXNzZXJ0X3RydWUoZGlk
SGFuZGxlLCAiZXZlbnQgZGlkIG5vdCBmaXJlIik7Cit9LCBgb25wYXltZW50bWV0aG9kY2hhbmdl
IGF0dHJpYnV0ZSBpcyBhIGdlbmVyaWMgaGFuZGxlciBmb3IgInBheW1lbnRtZXRob2RjaGFuZ2Ui
YCk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IGV2ID0gbmV3IFBheW1l
bnRNZXRob2RDaGFuZ2VFdmVudCgicGF5bWVudG1ldGhvZGNoYW5nZSIpOworICBsZXQgZGlkSGFu
ZGxlID0gZmFsc2U7CisgIHJlcXVlc3Qub25wYXltZW50bWV0aG9kY2hhbmdlID0gZXZ0ID0+IHsK
KyAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJtdXN0IGJlIHNhbWUgZXZlbnQiKTsKKyAgICBk
aWRIYW5kbGUgPSB0cnVlOworICB9OworICByZXF1ZXN0LmRpc3BhdGNoRXZlbnQoZXYpOworICBh
c3NlcnRfdHJ1ZShkaWRIYW5kbGUsICJldmVudCBkaWQgbm90IGZpcmUiKTsKK30sIGBvbnBheW1l
bnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGlzIGEgaGFuZGxlciBmb3IgUGF5bWVudE1ldGhvZENo
YW5nZUV2ZW50YCk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IGV2ID0g
bmV3IFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudCgicGF5bWVudG1ldGhvZGNoYW5nZSIsIHsKKyAg
ICBtZXRob2ROYW1lOiAidGVzdCIKKyAgfSk7CisgIGxldCBkaWRIYW5kbGUgPSBmYWxzZTsKKyAg
bGV0IGRpZExpc3RlbiA9IGZhbHNlOworICByZXF1ZXN0Lm9ucGF5bWVudG1ldGhvZGNoYW5nZSA9
IGV2dCA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyhldiwgZXZ0LCAibXVzdCBiZSBzYW1lIGV2ZW50
Iik7CisgICAgZGlkSGFuZGxlID0gdHJ1ZTsKKyAgfTsKKyAgcmVxdWVzdC5hZGRFdmVudExpc3Rl
bmVyKCJwYXltZW50bWV0aG9kY2hhbmdlIiwgZXZ0ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGV2
LCBldnQsICJtdXN0IGJlIHNhbWUgZXZlbnQiKTsKKyAgICBkaWRMaXN0ZW4gPSB0cnVlOworICB9
KTsKKyAgcmVxdWVzdC5kaXNwYXRjaEV2ZW50KGV2KTsKKyAgYXNzZXJ0X3RydWUoZGlkSGFuZGxl
LCAib25wYXltZW50bWV0aG9kY2hhbmdlIGRpZCBub3QgcmVjZWl2ZSB0aGUgZXZlbnQiKTsKKyAg
YXNzZXJ0X3RydWUoZGlkTGlzdGVuLCAiYWRkRXZlbnRMaXN0ZW5lciBkaWQgbm90IHJlY2VpdmUg
dGhlIGV2ZW50Iik7Cit9LCBgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBhbmQgbGlz
dGVuZXJzIGJvdGggd29ya2ApOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlz
LXNob3dpbmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjgxNjRjMmVjZDAzYjM4YThlYjI5ZmUxNzAzYTRm
ZWNhMWI2Njc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgcmVxdWlyZXMgdXNlciBp
bnRlcmFjdGlvbi4KK1BsZWFzZSBjbGljayBoZXJlIHRvIGFsbG93IHRlc3Rpbmcgb25lIHBheW1l
bnQgc2hlZXQgcGVyIHdpbmRvdy4KKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCisKK1RJTUVPVVQgVGhlIHRvcCBicm93c2luZyBjb250ZXh0IGNhbiBvbmx5IHNob3cg
b25lIHBheW1lbnQgc2hlZXQgYXQgYSB0aW1lLiBUZXN0IHRpbWVkIG91dAorTk9UUlVOIElmIGFu
IGlmcmFtZSBzaG93cyBhIHBheW1lbnQgcmVxdWVzdCwgdGhlIHRvcC1sZXZlbCBicm93c2luZyBj
b250ZXh0IGNhbid0IGFsc28gc2hvdyBvbmUuIAorTk9UUlVOIEFuIGlmcmFtZSBjYW5ub3Qgc2hv
dyBhIHBheW1lbnQgcmVxdWVzdCBpZiB0aGUgdG9wLWxldmVsIHdpbmRvdyBpcyBhbHJlYWR5IHNo
b3dpbmcgb25lLiAKK05PVFJVTiBVc2luZyBhIHBvcHVwIHdpbmRvdyBwcmV2ZW50cyB0aGUgdG9w
LWJyb3dzaW5nIGNvbnRleHQgZnJvbSBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0IAorTk9UUlVO
IEdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250ZXh0cywgYW5kIHdpbmRvdyBjYWxs
cyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0cyBjYW4ndCBzaG93
IGEgcmVxdWVzdC4gCitOT1RSVU4gR2l2ZW4gbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRl
eHRzLCBhbmQgcG9wdXAgY2FsbHMgc2hvdygpIGZpcnN0LCBvdGhlciBuZXN0ZWQgYnJvd3Npbmcg
Y29udGV4dHMgY2FuJ3Qgc2hvdyBhIHJlcXVlc3QuIAorTk9UUlVOIEdpdmVuIG11bHRpcGxlIG5l
c3RlZCBicm93c2luZyBjb250ZXh0cywgYW5kIGFuIGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3Qs
IG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4gCitO
T1RSVU4gTmF2aWdhdGluZyBhbiBpZnJhbWUgYXMgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBz
ZXRzICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29sZWFuJyB0byBmYWxzZS4gCitOT1RS
VU4gTmF2aWdhdGluZyBhIHBvcHVwIGFzIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQgc2V0cyAn
cGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbicgdG8gZmFsc2UuIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hv
d2luZy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYTAyODA4ZWUyYTEyMDEzZTQxZTgxOWRhMzIz
ZmVkZjhkODUzZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0
cHMuaHRtbApAQCAtMCwwICsxLDUwMiBAQAorPCFET0NUWVBFIGh0bWw+IDxtZXRhIGNoYXJzZXQ9
InV0Zi04IiAvPgorPHRpdGxlPlRlc3QgZm9yIFBheW1lbnRSZXF1ZXN0LnNob3cob3B0aW9uYWwg
cHJvbWlzZSkgbWV0aG9kPC90aXRsZT4KKzxsaW5rCisgIHJlbD0iaGVscCIKKyAgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2Rmbi1wYXltZW50LXJlcXVl
c3QtaXMtc2hvd2luZyIKKy8+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPGJvZHk+CisgIDxz
Y3JpcHQ+CisgICAgInVzZSBzdHJpY3QiOworICAgIGNvbnN0IGFwcGxlUGF5TWV0aG9kID0gewor
ICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisg
ICAgICBkYXRhOiB7CisgICAgICAgIHZlcnNpb246IDMsCisgICAgICAgIG1lcmNoYW50SWRlbnRp
ZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICAgICAgY291bnRyeUNvZGU6ICJVUyIs
CisgICAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgICAg
IHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgICAgIH0sCisgICAgfTsKKyAgICBjb25z
dCBtZXRob2RzID0gW3tzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCJ9LCBhcHBsZVBheU1l
dGhvZF07CisgICAgY29uc3QgZGV0YWlscyA9IHsKKyAgICAgIHRvdGFsOiB7CisgICAgICAgIGxh
YmVsOiAiVG90YWwiLAorICAgICAgICBhbW91bnQ6IHsKKyAgICAgICAgICBjdXJyZW5jeTogIlVT
RCIsCisgICAgICAgICAgdmFsdWU6ICIxLjAwIiwKKyAgICAgICAgfSwKKyAgICAgIH0sCisgICAg
fTsKKworICAgIC8qKgorICAgICAqIEF0dGFjaGVzIGFuIGlmcmFtZSB0byB3aW5kb3cuZG9jdW1l
bnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3JjIE9wdGlvbmFsIHJlc291cmNl
IFVSTCB0byBsb2FkLgorICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBSZXNvbHZlcyB3aGVuIHRo
ZSBzcmMgbG9hZHMuCisgICAgICovCisgICAgYXN5bmMgZnVuY3Rpb24gYXR0YWNoSWZyYW1lKHNy
YyA9ICJibGFuay5odG1sIikgeworICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgICBpZnJhbWUuYWxsb3dQYXltZW50UmVxdWVzdCA9IHRy
dWU7CisgICAgICBpZnJhbWUuc3JjID0gc3JjOworICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpZnJhbWUpOworICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAg
ICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSwge29uY2U6IHRydWV9
KTsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIGlmcmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAg
ICAgKiBDcmVhdGVzIGEgcG9wdXAgd2luZG93LiBUaGUgY2FsbGVyIG11c3QgYmUgdHJpZ2dlcmVk
IHdpdGggYSB1c2VyIGdlc3R1cmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3Jj
IE9wdGlvbmFsIHJlc291cmNlIFVSTCB0byBsb2FkLgorICAgICAqIEByZXR1cm5zIHtQcm9taXNl
fSBSZXNvbHZlcyB3aGVuIHRoZSBzcmMgbG9hZHMuCisgICAgICovCisgICAgYXN5bmMgZnVuY3Rp
b24gbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoc3JjID0gImJsYW5rLmh0bWwiKSB7CisgICAg
ICBjb25zdCBwb3B1cFdpbmRvdyA9IHdpbmRvdy5vcGVuKHNyYywgIiIsICJ3aWR0aD00MDAsaGVp
Z2h0PTQwMCIpOworICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAg
IHBvcHVwV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlLCB7b25jZTogdHJ1
ZX0pOworICAgICAgfSk7CisgICAgICBwb3B1cFdpbmRvdy5mb2N1cygpOworICAgICAgcmV0dXJu
IHBvcHVwV2luZG93OworICAgIH0KKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
ICAgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMp
OworICAgICAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0
YWlscyk7CisKKyAgICAgIC8vIFNldHMgdGhlICJwYXltZW50LXJlbGV2YW50IGJyb3dzaW5nIGNv
bnRleHQncyBwYXltZW50IHJlcXVlc3QgaXMKKyAgICAgIC8vIHNob3dpbmcgYm9vbGVhbiIgdG8g
dHJ1ZSBhbmQgdGhlbiB0cnkgdG8gc2hvdyBhIHNlY29uZCBwYXltZW50IHNoZWV0IGluCisgICAg
ICAvLyB0aGUgc2FtZSB3aW5kb3cuIFRoZSBzZWNvbmQgc2hvdygpIHNob3VsZCByZWplY3QuCisg
ICAgICBjb25zdCBbc2hvd1Byb21pc2UxLCBzaG93UHJvbWlzZTJdID0gYXdhaXQgdGVzdF9kcml2
ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0aW5nIG9uZSBwYXltZW50IHNoZWV0IHBlciB3aW5kb3ci
LAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFtyZXF1ZXN0MS5zaG93KCksIHJl
cXVlc3QyLnNob3coKV07CisgICAgICAgIH0sCisgICAgICApOworICAgICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAg
ICBzaG93UHJvbWlzZTIsCisgICAgICAgICJBdHRlbXB0aW5nIHRvIHNob3cgYSBzZWNvbmQgcGF5
bWVudCByZXF1ZXN0IG11c3QgcmVqZWN0LiIsCisgICAgICApOworCisgICAgICBhd2FpdCByZXF1
ZXN0MS5hYm9ydCgpOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAg
dCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICBzaG93UHJvbWlzZTEsCisgICAgICAg
ICJyZXF1ZXN0MSB3YXMgYWJvcnRlZCB2aWEgLmFib3J0KCkiLAorICAgICAgKTsKKworICAgICAg
Ly8gRmluYWxseSwgcmVxdWVzdDIgc2hvdWxkIGhhdmUgYmVlbiAiY2xvc2VkIiwgc28gdHJ5aW5n
IHRvIHNob3cKKyAgICAgIC8vIGl0IHdpbGwgYWdhaW4gcmVzdWx0IGluIHByb21pc2UgcmVqZWN0
ZWQgd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvci4KKyAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRo
dWIuY29tL3czYy9wYXltZW50LXJlcXVlc3QvcHVsbC84MjEKKyAgICAgIGNvbnN0IHJlamVjdGVk
UHJvbWlzZSA9IHJlcXVlc3QyLnNob3coKTsKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19k
b20oCisgICAgICAgIHQsCisgICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAgICAgIHJl
amVjdGVkUHJvbWlzZSwKKyAgICAgICAgIkF0dGVtcHRpbmcgdG8gc2hvdyBhIHNlY29uZCBwYXlt
ZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIiwKKyAgICAgICk7CisgICAgICAvLyBGaW5hbGx5LCB3
ZSBjb25maXJtIHRoYXQgcmVxdWVzdDIncyByZXR1cm5lZCBwcm9taXNlcyBhcmUgdW5pcXVlLgor
ICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoCisgICAgICAgIHNob3dQcm9taXNlMiwKKyAgICAgICAg
cmVqZWN0ZWRQcm9taXNlLAorICAgICAgICAiUmV0dXJuZWQgUHJvbWlzZXMgYmUgdW5pcXVlIiwK
KyAgICAgICk7CisgICAgfSwgIlRoZSB0b3AgYnJvd3NpbmcgY29udGV4dCBjYW4gb25seSBzaG93
IG9uZSBwYXltZW50IHNoZWV0IGF0IGEgdGltZS4iKTsKKworICAgIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOworICAg
ICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CisKKyAgICAgIC8v
IFBheW1lbnQgcmVxdWVzdHMKKyAgICAgIGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1l
V2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3Qgd2lu
ZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7
CisKKyAgICAgIC8vIExldCdzIGdldCBzb21lIGJsZXNzZWQgc2hvd1Byb21pc2VzCisgICAgICBj
b25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0
ZXN0aW5nIHRvcCB3aW5kb3cgc2hvdygpIGJsb2NrZWQgYnkgcGF5bWVudCBzaGVldCBpbiBpZnJh
bWUiLAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgLy8gaWZyYW1lIHNldHMgImlzIHNob3dp
bmcgYm9vbGVhbiIsIGlnbm9yZSB0aGUgcmV0dXJuZWQgcHJvbWlzZS4KKyAgICAgICAgICBpZnJh
bWVSZXF1ZXN0LnNob3coKTsKKyAgICAgICAgICAvLyBUaGUgdG9wIGxldmVsIHdpbmRvdyBub3cg
dHJpZXMgdG8gc2hvdygpIHRoZSBwYXltZW50IHJlcXVlc3QuCisgICAgICAgICAgcmV0dXJuIFt3
aW5kb3dSZXF1ZXN0LnNob3coKV07CisgICAgICAgIH0sCisgICAgICApOworCisgICAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIs
CisgICAgICAgIHNob3dQcm9taXNlLAorICAgICAgICAiaWZyYW1lIGlzIGFscmVhZHkgc2hvd2lu
ZyBhIHBheW1lbnQgcmVxdWVzdC4iLAorICAgICAgKTsKKworICAgICAgLy8gQ2xlYW51cAorICAg
ICAgYXdhaXQgaWZyYW1lUmVxdWVzdC5hYm9ydCgpOworICAgICAgaWZyYW1lLnJlbW92ZSgpOwor
ICAgIH0sICJJZiBhbiBpZnJhbWUgc2hvd3MgYSBwYXltZW50IHJlcXVlc3QsIHRoZSB0b3AtbGV2
ZWwgYnJvd3NpbmcgY29udGV4dCBjYW4ndCBhbHNvIHNob3cgb25lLiIpOworCisgICAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29uc3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZy
YW1lKCk7CisgICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsK
KworICAgICAgLy8gUGF5bWVudCByZXF1ZXN0cworICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9
IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisgICAg
ICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2Rz
LCBkZXRhaWxzKTsKKworICAgICAgLy8gV2UgZmlyc3Qgc2hvdyBhIHBheW1lbnQgcmVxdWVzdCB2
aWEgdGhlIHRoZSB0b3AgbGV2ZWwgYnJvd3NpbmcgY29udGV4dCwKKyAgICAgIC8vIHdpbmRvd1Jl
cXVlc3Quc2hvdygpIHNldHMgImlzIHNob3dpbmcgYm9vbGVhbiIgdG8gdHJ1ZS4gVGhlbiB3ZSB0
cnkgdG8KKyAgICAgIC8vIHNob3cgYSBwYXltZW50IHJlcXVlc3QgaW4gdGhlIGlmcmFtZSwgd2hp
Y2ggc2hvdWxkIHJlamVjdC4KKyAgICAgIGNvbnN0IFt3aW5kb3dTaG93UHJvbWlzZSwgaWZyYW1l
U2hvd1Byb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0aW5n
IGlmcmFtZSBzaG93KCkgYmxvY2tlZCBieSBwYXltZW50IHNoZWV0IGluIHRvcCB3aW5kb3ciLAor
ICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKSwg
aWZyYW1lUmVxdWVzdC5zaG93KCldOworICAgICAgICB9LAorICAgICAgKTsKKworICAgICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3Ii
LAorICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKKyAgICAgICAgIlRoZSB0b3Agd2luZG93IGlz
IGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4iLAorICAgICAgKTsKKworICAgICAg
Ly8gQ2xlYW51cAorICAgICAgYXdhaXQgd2luZG93UmVxdWVzdC5hYm9ydCgpOworICAgICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3Ii
LAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgICAgIlRoZSB3aW5kb3cgcGF5bWVu
dCByZXF1ZXN0IHNob3VsZCBiZSBhYm9ydGVkIGJ5IHRlc3QuIiwKKyAgICAgICAgKTsKKyAgICAg
IGlmcmFtZS5yZW1vdmUoKTsKKyAgICB9LCAiQW4gaWZyYW1lIGNhbm5vdCBzaG93IGEgcGF5bWVu
dCByZXF1ZXN0IGlmIHRoZSB0b3AtbGV2ZWwgd2luZG93IGlzIGFscmVhZHkgc2hvd2luZyBvbmUu
Iik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICAvLyBDcmVhdGUgYSBQ
YXltZW50UmV1cWVzdCBpbiB0b3AtbGV2ZWwgd2luZG93LgorICAgICAgY29uc3Qgd2luZG93UmVx
dWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisKKyAg
ICAgIC8vIFVzZSBhIHNpbmdsZSB1c2VyIGdlc3R1cmUgdG8gb3BlbiBhIHBvcHVwIHdpbmRvdyB3
aXRoIGEgUGF5bWVudFJlcXVlc3QuCisgICAgICAvLyBUaGVuIHRyaWdnZXIgc2hvdygpIGZpcnN0
IG9uIHxwb3B1cFJlcXVlc3R8IHRoZW4gb24gfHdpbmRvd1JlcXVlc3R8LgorICAgICAgLy8gVGhl
IGxhdHRlciBzaG91bGQgcmVqZWN0LgorICAgICAgY29uc3QgWworICAgICAgICBwb3B1cFdpbmRv
dywKKyAgICAgICAgcG9wdXBSZXF1ZXN0LAorICAgICAgICBwb3B1cFNob3dQcm9taXNlLAorICAg
ICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgIF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVz
cygKKyAgICAgICAgInRlc3RpbmcgdG9wLWxldmVsIHNob3coKSBibG9ja2VkIGJ5IHBheW1lbnQg
c2hlZXQgaW4gcG9wdXAiLAorICAgICAgICBhc3luYyAoKSA9PiB7CisgICAgICAgICAgY29uc3Qg
cG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZSgpOworICAgICAg
ICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdCht
ZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgICAgICBjb25zdCBwb3B1cFNob3dQcm9taXNlID0gcG9w
dXBSZXF1ZXN0LnNob3coKTsKKyAgICAgICAgICBjb25zdCB3aW5kb3dTaG93UHJvbWlzZSA9IHdp
bmRvd1JlcXVlc3Quc2hvdygpOworICAgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICBwb3B1
cFdpbmRvdywKKyAgICAgICAgICAgIHBvcHVwUmVxdWVzdCwKKyAgICAgICAgICAgIHBvcHVwU2hv
d1Byb21pc2UsCisgICAgICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgICAgICBdOwor
ICAgICAgICB9LAorICAgICAgKTsKKworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgK
KyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICB3aW5kb3dTaG93UHJv
bWlzZSwKKyAgICAgICAgIkV4cGVjdGVkIHdpbmRvdydzIHNob3dQcm9taXNlIHRvIHJlamVjdCwg
cmVxdWVzdCBpcyBhbHJlYWR5IHNob3dpbmciLAorICAgICAgKTsKKworICAgICAgYXdhaXQgcG9w
dXBSZXF1ZXN0LmFib3J0KCk7CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAg
ICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHBvcHVwU2hvd1Byb21pc2Us
CisgICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQcm9taXNlIHRvIGJlIGFib3J0ZWQgYnkgdGVz
dC4iLAorICAgICAgKTsKKyAgICAgIHBvcHVwV2luZG93LmNsb3NlKCk7CisgICAgfSwgIlVzaW5n
IGEgcG9wdXAgd2luZG93IHByZXZlbnRzIHRoZSB0b3AtYnJvd3NpbmcgY29udGV4dCBmcm9tIHNo
b3dpbmcgYSBwYXltZW50IHJlcXVlc3QiKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOworICAgICAgY29u
c3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CisKKyAgICAgIC8vIENyZWF0
ZSByZXF1ZXN0cworICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisgICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0g
bmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKworICAg
ICAgLy8gT3BlbiBhIHBvcHVwIHdpbmRvdworICAgICAgY29uc3QgW3BvcHVwV2luZG93LCBwb3B1
cFJlcXVlc3RdID0KKyAgICAgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICAgICAib3Bl
biBwb3B1cCB0byB0ZXN0IG11bHRpcGxlIGNvbnRleHQgYW5kIHdpbmRvdyBjYWxscyBzaG93KCkg
Zmlyc3QiLAorICAgICAgICBhc3luYyAoKSA9PiB7CisgICAgICAgICAgY29uc3QgcG9wdXBXaW5k
b3cgPSBhd2FpdCBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZSgpOworICAgICAgICAgIGNvbnN0
IHBvcHVwUmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBk
ZXRhaWxzKTsKKyAgICAgICAgICByZXR1cm4gW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3RdOwor
ICAgICAgICB9LAorICAgICAgKTsKKworICAgICAgLy8gR2V0IHRoZSBzaG93UHJvbWlzZSBmb3Ig
ZWFjaCBicm93c2luZyBjb250ZXh0LiBEb2luZyB0aGlzIGluIGEgc2VwYXJhdGUKKyAgICAgIC8v
IHRlc3RfZHJpdmVyLmJsZXNzKCkgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlIHVzZXIgZ2VzdHVy
ZSBicmluZ3MKKyAgICAgIC8vIHx3aW5kb3d8IHRvIHRoZSBmb3JlZ3JvdW5kLCBzbyB0aGF0IHRo
ZSBwYXltZW50IHNoZWV0IGNhbiBzaG93LgorICAgICAgY29uc3QgWworICAgICAgICB3aW5kb3dT
aG93UHJvbWlzZSwKKyAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKKyAgICAgICAgaWZyYW1lU2hv
d1Byb21pc2UsCisgICAgICBdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0
ZXN0IG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250ZXh0IiwKKyAgICAgICAgKCkgPT4gewor
ICAgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICB3aW5kb3dSZXF1ZXN0LnNob3coKSwKKyAg
ICAgICAgICAgIHBvcHVwUmVxdWVzdC5zaG93KCksCisgICAgICAgICAgICBpZnJhbWVSZXF1ZXN0
LnNob3coKSwKKyAgICAgICAgICBdOworICAgICAgICB9LAorICAgICAgKTsKKyAgICAgIC8vIHBv
cHVwUmVxdWVzdCBhbmQgaWZyYW1lUmVxdWVzdCB3aWxsIGJvdGggcmVqZWN0CisgICAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIs
CisgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQ
cm9taXNlIHRvIHJlamVjdCwgcmVxdWVzdCBpcyBhbHJlYWR5IHNob3dpbmcuIiwKKyAgICAgICk7
CisKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAg
ICJBYm9ydEVycm9yIiwKKyAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCisgICAgICAgICJFeHBl
Y3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byByZWplY3QsIHJlcXVlc3QgaXMgYWxyZWFkeSBzaG93
aW5nLiIsCisgICAgICApOworCisgICAgICBhd2FpdCB3aW5kb3dSZXF1ZXN0LmFib3J0KCk7Cisg
ICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJv
cnRFcnJvciIsCisgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAorICAgICAgICAiRXhwZWN0IHdp
bmRvdyBwcm9taXNlIHRvIGJlIGFib3J0ZWQgYnkgdGVzdC4iCisgICAgICApOworICAgICAgcG9w
dXBXaW5kb3cuY2xvc2UoKTsKKyAgICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAgICB9LCAiR2l2ZW4g
bXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgd2luZG93IGNhbGxzIHNob3co
KSBmaXJzdCwgb3RoZXIgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzIGNhbid0IHNob3cgYSByZXF1
ZXN0LiIpOworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29uc3QgaWZy
YW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7CisgICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBp
ZnJhbWUuY29udGVudFdpbmRvdzsKKworICAgICAgLy8gQ3JlYXRlIHJlcXVlc3RzCisgICAgICBj
b25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBk
ZXRhaWxzKTsKKyAgICAgIGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBh
eW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworCisgICAgICAvLyBPcGVuIGEgcG9wdXAg
d2luZG93CisgICAgICBjb25zdCBbCisgICAgICAgIHBvcHVwV2luZG93LAorICAgICAgICBwb3B1
cFJlcXVlc3QsCisgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisgICAgICAgIHdpbmRvd1Nob3dQ
cm9taXNlLAorICAgICAgICBpZnJhbWVTaG93UHJvbWlzZQorICAgICAgXSA9IGF3YWl0IHRlc3Rf
ZHJpdmVyLmJsZXNzKAorICAgICAgICAidGVzdCBtdWx0aXBsZSBicm93c2luZyBjb250ZXh0IGFu
ZCBpZnJhbWUgY2FsbHMgc2hvdygpIGZpcnN0IiwKKyAgICAgICAgYXN5bmMgKCkgPT4geworICAg
ICAgICAgIGNvbnN0IHBvcHVwV2luZG93ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1
cmUoKTsKKyAgICAgICAgICBjb25zdCBwb3B1cFJlcXVlc3QgPSBuZXcgcG9wdXBXaW5kb3cuUGF5
bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisgICAgICAgICAgY29uc3QgcG9wdXBTaG93
UHJvbWlzZSA9IHBvcHVwUmVxdWVzdC5zaG93KCk7CisgICAgICAgICAgY29uc3Qgd2luZG93U2hv
d1Byb21pc2UgPSB3aW5kb3dSZXF1ZXN0LnNob3coKTsKKyAgICAgICAgICBjb25zdCBpZnJhbWVT
aG93UHJvbWlzZSA9IGlmcmFtZVJlcXVlc3Quc2hvdygpOworICAgICAgICAgIHJldHVybiBbcG9w
dXBXaW5kb3csCisgICAgICAgICAgICAgICAgICBwb3B1cFJlcXVlc3QsCisgICAgICAgICAgICAg
ICAgICBwb3B1cFNob3dQcm9taXNlLAorICAgICAgICAgICAgICAgICAgd2luZG93U2hvd1Byb21p
c2UsCisgICAgICAgICAgICAgICAgICBpZnJhbWVTaG93UHJvbWlzZV07CisgICAgICB9KTsKKwor
ICAgICAgLy8gd2luZG93U2hvd1Byb21pc2UgYW5kIGlmcmFtZVJlcXVlc3Qgd2lsbCBib3RoIHJl
amVjdAorICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAg
ICAgIkFib3J0RXJyb3IiLAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgICAgIkV4
cGVjdGVkIHdpbmRvd1Nob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNob3dpbmcg
YSBwYXltZW50IHJlcXVlc3QuIiwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0IHByb21pc2VfcmVq
ZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgaWZy
YW1lU2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byBy
ZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIsCisgICAgICAp
OworCisgICAgICBhd2FpdCBwb3B1cFJlcXVlc3QuYWJvcnQoKTsKKyAgICAgIGF3YWl0IHByb21p
c2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAg
ICAgcG9wdXBTaG93UHJvbWlzZSwKKyAgICAgICAgIkV4cGVjdGVkIHBvcHVwU2hvd1Byb21pc2Ug
dG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIsCisgICAgICApOworICAgICAgcG9wdXBXaW5kb3cuY2xv
c2UoKTsKKyAgICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAgICB9LCAiR2l2ZW4gbXVsdGlwbGUgbmVz
dGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgcG9wdXAgY2FsbHMgc2hvdygpIGZpcnN0LCBvdGhl
ciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2FuJ3Qgc2hvdyBhIHJlcXVlc3QuIik7CisKKyAg
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBh
dHRhY2hJZnJhbWUoKTsKKyAgICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50
V2luZG93OworCisgICAgICAvLyBDcmVhdGUgcmVxdWVzdHMKKyAgICAgIGNvbnN0IHdpbmRvd1Jl
cXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAg
ICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3Qo
bWV0aG9kcywgZGV0YWlscyk7CisKKyAgICAgIGNvbnN0IFtwb3B1cFdpbmRvdywgcG9wdXBSZXF1
ZXN0XSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICAgICAib3BlbiBwb3B1cCB0byB0
ZXN0IG11bHRpcGxlIGNvbnRleHQgYW5kIGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QiLAorICAg
ICAgICBhc3luYyAoKSA9PiB7CisgICAgICAgICAgY29uc3QgdyA9IGF3YWl0IGxvYWRQb3B1cElu
c2lkZVVzZXJHZXN0dXJlKCk7CisgICAgICAgICAgY29uc3QgciA9IG5ldyB3LlBheW1lbnRSZXF1
ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgICAgIHJldHVybiBbdywgcl07CisgICAgICAg
IH0sCisgICAgICApOworCisgICAgICAvLyBHZXQgdGhlIHNob3dQcm9taXNlIGZvciBlYWNoIGJy
b3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4gYSBzZXBhcmF0ZQorICAgICAgLy8gdGVzdF9k
cml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgdXNlciBnZXN0dXJlIGJyaW5n
cworICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZvcmVncm91bmQsIHNvIHRoYXQgdGhlIHBheW1l
bnQgc2hlZXQgY2FuIHNob3cuCisgICAgICBjb25zdCBbCisgICAgICAgIGlmcmFtZVNob3dQcm9t
aXNlLAorICAgICAgICBwb3B1cFNob3dQcm9taXNlLAorICAgICAgICB3aW5kb3dTaG93UHJvbWlz
ZSwKKyAgICAgIF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAgICAgInRlc3QgbXVs
dGlwbGUgYnJvd3NpbmcgY29udGV4dCBhbmQgaWZyYW1lIGNhbGxzIHNob3coKSBmaXJzdCIsCisg
ICAgICAgIGFzeW5jICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gWworICAgICAgICAgICAgaWZy
YW1lUmVxdWVzdC5zaG93KCksCisgICAgICAgICAgICBwb3B1cFJlcXVlc3Quc2hvdygpLAorICAg
ICAgICAgICAgd2luZG93UmVxdWVzdC5zaG93KCksCisgICAgICAgICAgXTsKKyAgICAgICAgfSwK
KyAgICAgICk7CisKKyAgICAgIC8vIHdpbmRvd1Nob3dQcm9taXNlIGFuZCBpZnJhbWVSZXF1ZXN0
IHdpbGwgYm90aCByZWplY3QKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAg
ICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgd2luZG93U2hvd1Byb21pc2Us
CisgICAgICAgICJFeHBlY3RlZCB3aW5kb3dTaG93UHJvbWlzZSB0byByZWplY3QsIHRoZSBwb3B1
cCBpcyBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIsCisgICAgICApOworCisgICAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIs
CisgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQ
cm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3Qu
IiwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0IGlmcmFtZVJlcXVlc3QuYWJvcnQoKTsKKyAgICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJBYm9ydEVy
cm9yIiwKKyAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCBpZnJh
bWVTaG93UHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5IHRlc3QuIgorICAgICAgKTsKKyAgICAgIHBv
cHVwV2luZG93LmNsb3NlKCk7CisgICAgICBpZnJhbWUucmVtb3ZlKCk7CisgICAgfSwgIkdpdmVu
IG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250ZXh0cywgYW5kIGFuIGlmcmFtZSBjYWxscyBz
aG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0cyBjYW4ndCBzaG93IGEg
cmVxdWVzdC4iKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0
IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOworICAgICAgY29uc3QgaWZyYW1lV2luZG93
ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CisgICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3
IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGNv
bnN0IGlmcmFtZVNob3dQcm9taXNlID0gdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0
IG5hdmlnYXRpbmcgaWZyYW1lIGFmdGVyIHNob3coKSIsCisgICAgICAgICgpID0+IGlmcmFtZVJl
cXVlc3Quc2hvdygpLAorICAgICAgKTsKKworICAgICAgLy8gV2UgbmF2aWdhdGUgYXdheSwgY2F1
c2luZyB0aGUgcGF5bWVudCBzaGVldCB0byBjbG9zZQorICAgICAgLy8gYW5kIHRoZSByZXF1ZXN0
IGlzIHNob3dpbmcgYm9vbGVhbiB0byBiZWNvbWUgZmFsc2UuCisgICAgICBpZnJhbWUuc3JjID0g
ImJsYW5rLmh0bWw/YWJjPTEyMyI7CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IChpZnJhbWUub25sb2FkID0gcmVzb2x2ZSkpOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
X2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICBpZnJhbWVT
aG93UHJvbWlzZSwKKyAgICAgICAgIk5hdmlnYXRpbmcgaWZyYW1lIGF3YXkgbXVzdCBjYXVzZSB0
aGUgaWZyYW1lU2hvd1Byb21pc2UgdG8gcmVqZWN0LiIsCisgICAgICApOworICAgICAgaWZyYW1l
LnJlbW92ZSgpOworCisgICAgICAvLyBOb3cgd2Ugc2hvdWxkIGJlIG9rIHRvIHNwaW4gdXAgYSBu
ZXcgcGF5bWVudCByZXF1ZXN0CisgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXlt
ZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0g
PSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAgICAgICAic3RhcnQgYSBuZXcgcGF5bWVu
dCByZXF1ZXN0IiwKKyAgICAgICAgICAoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gW3JlcXVl
c3Quc2hvdygpXTsKKyAgICAgICAgICB9KTsKKworICAgICAgLy8gSWYgYSBwYXltZW50IHNoZWV0
IGZhaWxzIHRvIHNob3csIGl0IHNob3VsZCByZWplY3QgaW1tZWRpYXRlbHkuIElmIGl0CisgICAg
ICAvLyBoYXNuJ3QgcmVqZWN0ZWQgaW4gMSBzZWNvbmQsIHRoZW4gdGhlIHRlc3QgaGFzIHBhc3Nl
ZC4KKyAgICAgIHQuc3RlcF90aW1lb3V0KGFzeW5jICgpID0+IHsKKyAgICAgICAgLy8gV2UncmUg
ZG9uZS4gQ2xlYW4gdXAuCisgICAgICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKKyAgICAgICAg
dC5kb25lKCk7CisgICAgICB9KTsKKworICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gaW4gaWZy
YW1lIGZhaWxlZCB0byBjbG9zZSB0aGUgb3JpZ2luYWwgcGF5bWVudCBzaGVldAorICAgICAgLy8g
dGhlcmUsIHxzaG93UHJvbWlzZXwgc2hvdWxkIHJlamVjdCBpbW1lZGlhdGVseSBhbmQgdGhpcyBp
bmRpY2F0ZXMgYQorICAgICAgLy8gZmFpbHVyZSBvZiB0aGlzIHRlc3QuCisgICAgICBhd2FpdCBz
aG93UHJvbWlzZS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCisgICAg
ICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZXNv
bHZlZC4iKTsKKyAgICAgIH0pCisgICAgICAuY2F0Y2goZSA9PiB7CisgICAgICAgIGFzc2VydF90
cnVlKGZhbHNlLAorICAgICAgICAgICJTZWNvbmQgcGF5bWVudCBzaGVldCBzaG91bGQgYmUgcGVu
ZGluZyBidXQgaXMgcmVqZWN0ZWQuIiArIGUubWVzc2FnZSk7CisgICAgICB9KTsKKyAgICB9LCAi
TmF2aWdhdGluZyBhbiBpZnJhbWUgYXMgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdw
YXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29sZWFuJyB0byBmYWxzZS4iKTsKKworICAgIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IFtwb3B1cFdpbmRvdywgcG9wdXBS
ZXF1ZXN0LCBwb3B1cFNob3dQcm9taXNlXSA9CisgICAgICAgIGF3YWl0IHRlc3RfZHJpdmVyLmJs
ZXNzKAorICAgICAgICAgICJ0cmlnZ2VyIHBheW1lbnQgaW4gYSBwb3B1cCB3aW5kb3ciLAorICAg
ICAgICAgIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHBvcHVwV2luZG93ID0gYXdh
aXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKKyAgICAgICAgICAgIGNvbnN0IHBvcHVw
UmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxz
KTsKKyAgICAgICAgICAgIHJldHVybiBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVzdCwgcG9wdXBS
ZXF1ZXN0LnNob3coKV07CisgICAgICAgICAgfSk7CisKKyAgICAgIC8vIFdlIG5hdmlnYXRlIGF3
YXksIGNhdXNpbmcgdGhlIHBheW1lbnQgc2hlZXQgdG8gY2xvc2UKKyAgICAgIC8vIGFuZCB0aGUg
cmVxdWVzdCBpcyBzaG93aW5nIGJvb2xlYW4gdG8gYmVjb21lIGZhbHNlLgorICAgICAgcG9wdXBX
aW5kb3cubG9jYXRpb24gPSAiYmxhbmsuaHRtbD9hYmM9MTIzIjsKKyAgICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gKHBvcHVwV2luZG93Lm9ubG9hZCA9IHJlc29sdmUpKTsKKworICAg
ICAgLy8gRG9uJ3Qgd2FpdCBmb3IgfHBvcHVwU2hvd1Byb21pc2V8IHRvIHJlamVjdCBiZWNhdXNl
IGl0IG1heSBuZXZlciBkbworICAgICAgLy8gKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3Bh
eW1lbnQtcmVxdWVzdC9pc3N1ZXMvODcyKS4gSW5zdGVhZCwgdHJ5CisgICAgICAvLyB0byBzcGlu
IHVwIGEgbmV3IHBheW1lbnQgcmVxdWVzdCBhbmQgbWFrZSBzdXJlIGl0IHN1Y2NlZWRzLgorICAg
ICAgY29uc3QgcmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0
YWlscyk7CisgICAgICBjb25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxl
c3MoCisgICAgICAgICJ0cmlnZ2VyIHBheW1lbnQgaW4gbWFpbiB3aW5kb3ciLAorICAgICAgICAo
KSA9PiB7CisgICAgICAgICAgcmV0dXJuIFtyZXF1ZXN0LnNob3coKV07CisgICAgICAgIH0pOwor
CisgICAgICAvLyBJZiBhIHBheW1lbnQgc2hlZXQgZmFpbHMgdG8gc2hvdywgaXQgc2hvdWxkIHJl
amVjdCBpbW1lZGlhdGVseS4gSWYgaXQKKyAgICAgIC8vIGhhc24ndCByZWplY3RlZCBpbiAxIHNl
Y29uZCwgdGhlbiB0aGUgdGVzdCBoYXMgcGFzc2VkLgorICAgICAgdC5zdGVwX3RpbWVvdXQoYXN5
bmMgKCkgPT4geworICAgICAgICAvLyBXZSdyZSBkb25lLiBDbGVhbiB1cC4KKyAgICAgICAgcG9w
dXBXaW5kb3cuY2xvc2UoKTsKKyAgICAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOworICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgIH0sIDEwMDApOworCisgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlv
biBpbiBwb3B1cCB3aW5kb3cgZmFpbGVkIHRvIGNsb3NlIHRoZSBvcmlnaW5hbCBwYXltZW50Cisg
ICAgICAvLyBzaGVldCB0aGVyZSwgfHNob3dQcm9taXNlfCBzaG91bGQgcmVqZWN0IGltbWVkaWF0
ZWx5IGFuZCB0aGlzIGluZGljYXRlcworICAgICAgLy8gYSBmYWlsdXJlIG9mIHRoaXMgdGVzdC4K
KyAgICAgIGF3YWl0IHNob3dQcm9taXNlLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfdHJ1
ZShmYWxzZSwKKyAgICAgICAgICAiU2Vjb25kIHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRp
bmcgYnV0IGlzIHJlc29sdmVkLiIpOworICAgICAgfSkKKyAgICAgIC5jYXRjaChlID0+IHsKKyAg
ICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCisgICAgICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0
IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZWplY3RlZC4iKTsKKyAgICAgIH0pOworICAgIH0s
ICJOYXZpZ2F0aW5nIGEgcG9wdXAgYXMgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdw
YXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29sZWFuJyB0byBmYWxzZS4iKTsKKyAgPC9zY3Jp
cHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtYWJvcnQtbWV0aG9k
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0bWwK
aW5kZXggOGU1NjFiMjg4ZDE1ZmEzMDk3MWRkMWY4OGI5MzA2NzFjODNhNTg4Ny4uODIzMGUyNDU4
YWFhM2UwMzY0ZGM0NTk4NWY1OTY3NTlmMDA5NTQ3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWFib3J0LW1ldGhvZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1h
Ym9ydC1tZXRob2QuaHR0cHMuaHRtbApAQCAtMSwxMSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+
CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+VGVzdCBmb3IgUGF5bWVudFJlcXVlc3Qu
YWJvcnQoKSBtZXRob2Q8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3cz
Yy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jYWJvcnQtbWV0aG9kIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jYWJv
cnQtbWV0aG9kIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMnPjwvc2NyaXB0Pgog
PHNjcmlwdD4KICJ1c2Ugc3RyaWN0IjsKIHNldHVwKHsKQEAgLTE3LDYgKzE3LDEzIEBAIHNldHVw
KHsKIGNvbnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAi
YmFzaWMtY2FyZCIgfSk7CiBjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoewogICBzdXBw
b3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogewor
ICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4
YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVz
OiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9
CiB9KTsKIGNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkLCBh
cHBsZVBheV0pOwogY29uc3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKQEAgLTMy
LDUwICszOSw1NiBAQCBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAvLyByZXF1ZXN0IGlzIGluICJjcmVhdGVkIiBzdGF0
ZQogICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBk
ZWZhdWx0RGV0YWlscyk7Ci0gIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiSW52YWxpZFN0YXRl
RXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQs
ICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuYWJvcnQoKSk7CiB9LCBgVGhyb3dzIGlmIHRo
ZSBwcm9taXNlIFtbc3RhdGVdXSBpcyBub3QgImludGVyYWN0aXZlImApOwogCiBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVm
YXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHRl
c3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsICgpID0+Ci0gICAgcmVxdWVz
dC5zaG93KCkKLSAgKTsKLSAgdHJ5IHsKLSAgICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0gIH0g
Y2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgcHJvbWlzZSBy
ZWplY3Rpb246ICIgKyBlcnIubWVzc2FnZSk7Ci0gIH0KLSAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
KHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CisgIGNvbnN0IHByb21pc2VzID0gbmV3
IFNldChbcmVxdWVzdC5hYm9ydCgpLCByZXF1ZXN0LmFib3J0KCksIHJlcXVlc3QuYWJvcnQoKV0p
OworICBhc3NlcnRfZXF1YWxzKHByb21pc2VzLnNpemUsIDMsICJNdXN0IGhhdmUgdGhyZWUgdW5p
cXVlIG9iamVjdHMiKTsKK30sICJDYWxsaW5nIGFib3J0KCkgbXVsdGlwbGUgdGltZXMgaXMgYWx3
YXlzIGEgbmV3IG9iamVjdC4iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0
YWlscyk7CisgIGNvbnN0IFthYm9ydFByb21pc2UsIGFjY2VwdFByb21pc2VdID0gYXdhaXQgdGVz
dF9kcml2ZXIuYmxlc3MoCisgICAgInNob3cgcGF5bWVudCByZXF1ZXN0IiwKKyAgICAoKSA9PiB7
CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCkKKyAgICAgIGFjY2Vw
dFByb21pc2UuY2F0Y2goKCkgPT4ge30pOyAvLyBuby1vcCwganVzdCB0byBzaWxlbmNlIHVuaGFu
ZGxlZCByZWplY3Rpb24gaW4gZGV2dG9vbHMuCisgICAgICBjb25zdCBhYm9ydFByb21pc2UgPSBy
ZXF1ZXN0LmFib3J0KCk7CisgICAgICByZXR1cm4gW2Fib3J0UHJvbWlzZSwgYWNjZXB0UHJvbWlz
ZV07CisgICAgfSk7CisKKyAgYXdhaXQgYWJvcnRQcm9taXNlOworICBhd2FpdCBwcm9taXNlX3Jl
amVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CiAgIC8vIEFzIHJlcXVl
c3QgaXMgbm93ICJjbG9zZWQiLCB0cnlpbmcgdG8gc2hvdyBpdCB3aWxsIGZhaWwKLSAgYXdhaXQg
cHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsK
KyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1
ZXN0LnNob3coKSk7CiB9LCAiVGhlIHNhbWUgcmVxdWVzdCBjYW5ub3QgYmUgc2hvd24gbXVsdGlw
bGUgdGltZXMuIik7CiAKIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgLy8gcmVxdWVzdCBp
cyBpbiAiY3JlYXRlZCIgc3RhdGUuCiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVl
c3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuYWJvcnQoKSk7CisgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5hYm9ydCgp
KTsKICAgLy8gQ2FsbCBpdCBhZ2FpbiwgZm9yIGdvb2QgbWVhc3VyZS4KLSAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuYWJvcnQoKSk7CisgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5h
Ym9ydCgpKTsKICAgLy8gVGhlIHJlcXVlc3QncyBzdGF0ZSBpcyAiY3JlYXRlZCIsIHNvIGxldCdz
IHNob3cgaXQKICAgLy8gd2hpY2ggY2hhbmdlcyB0aGUgc3RhdGUgdG8gImludGVyYWN0aXZlLiIu
Ci0gIGNvbnN0IGFjY2VwdFByb21pc2UgPSB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50
IHJlcXVlc3QiLCAoKSA9PgotICAgIHJlcXVlc3Quc2hvdygpCi0gICk7Ci0gIC8vIExldCdzIHNl
dCByZXF1ZXN0IHRoZSBzdGF0ZSB0byAiY2xvc2VkIiBieSBjYWxsaW5nIC5hYm9ydCgpCi0gIHRy
eSB7Ci0gICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBh
c3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIHByb21pc2UgcmVqZWN0aW9uOiAiICsgZXJyLm1l
c3NhZ2UpOwotICB9CisgIGNvbnN0IFthYm9ydFByb21pc2UsIGFjY2VwdFByb21pc2VdID0gYXdh
aXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgInNob3cgcGF5bWVudCByZXF1ZXN0IiwKKyAgICAo
KSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCkKKyAgICAg
IC8vIExldCdzIHNldCByZXF1ZXN0IHRoZSBzdGF0ZSB0byAiY2xvc2VkIiBieSBjYWxsaW5nIC5h
Ym9ydCgpCisgICAgICBjb25zdCBhYm9ydFByb21pc2UgPSByZXF1ZXN0LmFib3J0KCk7CisgICAg
ICByZXR1cm4gW2Fib3J0UHJvbWlzZSwgYWNjZXB0UHJvbWlzZV07CisgICAgfSk7CisKKyAgYXdh
aXQgYWJvcnRQcm9taXNlOwogICAvLyBUaGUgcmVxdWVzdCBpcyBub3cgImNsb3NlZCIsIHNvLi4u
Ci0gIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0
LmFib3J0KCkpOwotICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkFib3J0RXJyb3IiLCBhY2Nl
cHRQcm9taXNlKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRl
RXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQs
ICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CiB9LCAiQWJvcnRpbmcgYSByZXF1ZXN0IGJl
Zm9yZSBpdCBpcyBzaG93biBkb2Vzbid0IHByZXZlbnQgaXQgZnJvbSBiZWluZyBzaG93biBsYXRl
ci4iKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0
IHByb21pc2VzID0gbmV3IFNldChbcmVxdWVzdC5hYm9ydCgpLCByZXF1ZXN0LmFib3J0KCksIHJl
cXVlc3QuYWJvcnQoKV0pOwotICBhc3NlcnRfZXF1YWxzKHByb21pc2VzLnNpemUsIDMsICJNdXN0
IGhhdmUgdGhyZWUgdW5pcXVlIG9iamVjdHMiKTsKLX0sICJDYWxsaW5nIGFib3J0KCkgbXVsdGlw
bGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9iamVjdC4iKTsKIDwvc2NyaXB0PgotCis8c21hbGw+
CisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAg
YW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+c3VnZ2Vz
dGVkIHJldmlld2VyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC1wcm90ZWN0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLXByb3RlY3Rpb24uaHR0cHMuaHRtbApp
bmRleCBiMDU4MmQ1MjBkMzA2NzYwZDc1NzU0Nzc5ZGUxY2VlZjFkMDY0YTkyLi5lMjIxMDM0ZGQ0
ZWJkMDVjNWJkNzAxZTA1YTgxODk1Yjg0NTdjM2I3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJl
cXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLXByb3RlY3Rpb24uaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLXByb3RlY3Rpb24uaHR0cHMu
aHRtbApAQCAtOCw3ICs4LDE2IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBjb25zdCBiYXNpY0NhcmQgPSBPYmplY3QuZnJlZXpl
KHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0pOwotY29uc3QgYXBwbGVQYXkgPSBP
YmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxl
LXBheSIgfSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRN
ZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZl
cnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUi
LAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1
cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsK
IGNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkLCBhcHBsZVBh
eV0pOwogY29uc3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKICAgdG90YWw6IHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhv
ZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZTZlODJlM2JhMzI3MWUyY2I0YjQwMmJmNDczMDI5
MGRiMGI2MjY2MC4uN2ZkY2Y3YTg1YTBkOWNjNzgyZTkzZGI4ZDI5NTNiNDhmODkxNjc5OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhv
ZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsOSBAQAotVGhpcyB0ZXN0IHJlcXVpcmVz
IHVzZXIgaW50ZXJhY3Rpb24uCi1QbGVhc2UgY2xpY2sgaGVyZSB0byBhbGxvdyBzaG93IHBheW1l
bnQgcmVxdWVzdC5UaGlzIHRlc3QgcmVxdWlyZXMgdXNlciBpbnRlcmFjdGlvbi4KLVBsZWFzZSBj
bGljayBoZXJlIHRvIGFsbG93IHNob3cgcGF5bWVudCByZXF1ZXN0LiBJZiB5b3UgZmluZCBhIGJ1
Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQg
cmV2aWV3ZXJzLgorSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBh
bmQgdGFnIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIHJldmlld2Vycy4KIAogUEFTUyBJZiBwYXltZW50
IG1ldGhvZCBpZGVudGlmaWVyIGFyZSBzdXBwb3J0ZWQsIHJlc29sdmUgcHJvbWlzZSB3aXRoIHRy
dWUuIAotRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJl
dHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4
Y2VwdGlvbi4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5l
ZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMg
ImNsb3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlk
U3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBp
biBhbiBpbnZhbGlkIHN0YXRlLiIKIFBBU1MgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNyZWF0
ZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0cnVlIGZvciBrbm93
biBtZXRob2QuIAogUEFTUyBBbGwgbWV0aG9kcyBhcmUgdW5zdXBwb3J0ZWQgCiBQQVNTIE1peCBv
ZiBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIG1ldGhvZHMsIGF0IGxlYXN0IG9uZSBtZXRob2Qg
aXMgc3VwcG9ydGVkLiAKK0ZBSUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZl
IiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVy
cm9yIiBET01FeGNlcHRpb24uIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVk
OiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitGQUlMIElmIHJlcXVlc3QuW1tz
dGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBh
biAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBv
YmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVx
dWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0cHMuaHRtbAppbmRleCBmMzhjYWEwMGI5MzEz
ZGM4MGY1YWI1MTgwZGMxMGU4NTBlYjU3MTQ3Li5mMDI0NzRkZTEyZTViNDE0MTc0MmMzMWJiZWIz
OGQ2NjY2N2VhMzYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1l
bnQtbWV0aG9kLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXlt
ZW50LW1ldGhvZC5odHRwcy5odG1sCkBAIC0xLDE1ICsxLDIzIEBACiA8IURPQ1RZUEUgaHRtbD4K
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5UZXN0cyBmb3IgUGF5bWVudFJlcXVlc3Qu
Y2FuTWFrZVBheW1lbnQoKSBtZXRob2Q8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jc2hvdy1tZXRob2QiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1
ZXN0LyNjYW5tYWtlcGF5bWVudC1tZXRob2QiPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZl
ci12ZW5kb3IuanMnPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRv
ci5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0PgorInVzZSBzdHJpY3QiOwogY29uc3QgYmFzaWNDYXJk
ID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKIGNv
bnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRw
czovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAg
ICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRy
eUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwK
KyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KIH0pOwogY29uc3QgZGVmYXVs
dE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5XSk7CiBjb25zdCBk
ZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewpAQCAtMzUsNTEgKzQzLDYgQEAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewogICApOwogfSwgYElmIHBheW1lbnQgbWV0aG9kIGlkZW50aWZp
ZXIgYXJlIHN1cHBvcnRlZCwgcmVzb2x2ZSBwcm9taXNlIHdpdGggdHJ1ZS5gKTsKIAotcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IGFjY2VwdFByb21pc2Ug
PSB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCAoKSA9PiB7Ci0gICAg
cmVxdWVzdC5zaG93KCk7IC8vIFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZlIgotICB9KTsKLSAg
Y29uc3QgY2FuTWFrZVBheW1lbnRQcm9taXNlID0gcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpOwot
ICB0cnkgewotICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNhbk1ha2VQYXltZW50UHJvbWlzZTsK
LSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgIGZhbHNlLAotICAgICAgYGNhbk1ha2VQYXltZW50UHJv
bWlzZSBzaG91bGQgaGF2ZSB0aHJvd24gSW52YWxpZFN0YXRlRXJyb3JgCi0gICAgKTsKLSAgfSBj
YXRjaCAoZXJyKSB7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVF
cnJvciIsIGNhbk1ha2VQYXltZW50UHJvbWlzZSk7Ci0gIH0gZmluYWxseSB7Ci0gICAgYXdhaXQg
cmVxdWVzdC5hYm9ydCgpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJv
ciIsIGFjY2VwdFByb21pc2UpOwotICB9Ci0gIC8vIFRoZSBzdGF0ZSBzaG91bGQgYmUgImNsb3Nl
ZCIKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVl
c3QuY2FuTWFrZVBheW1lbnQoKSk7Ci19LCAnSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVy
YWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRT
dGF0ZUVycm9yIiBET01FeGNlcHRpb24uJyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
LSAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVm
YXVsdERldGFpbHMpOwotICBjb25zdCBhY2NlcHRQcm9taXNlID0gdGVzdF9kcml2ZXIuYmxlc3Mo
InNob3cgcGF5bWVudCByZXF1ZXN0IiwgKCkgPT4gewotICAgIHJlcXVlc3Quc2hvdygpOyAvLyBT
ZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2ZSIKLSAgfSk7Ci0gIGFjY2VwdFByb21pc2UuY2F0Y2go
KCkgPT4ge30pOyAvLyBuby1vcCwganVzdCB0byBzaWxlbmNlIHVuaGFuZGxlZCByZWplY3Rpb24g
aW4gZGV2dG9vbHMuCi0gIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsgLy8gVGhlIHN0YXRlIGlzIG5v
dyAiY2xvc2VkIgotICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkludmFsaWRTdGF0ZUVycm9y
IiwgcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpKTsKLSAgdHJ5IHsKLSAgICBjb25zdCByZXN1bHQg
PSBhd2FpdCByZXF1ZXN0LmNhbk1ha2VQYXltZW50KCk7Ci0gICAgYXNzZXJ0X3RydWUoCi0gICAg
ICBmYWxzZSwKLSAgICAgIGBzaG91bGQgaGF2ZSB0aHJvd24gSW52YWxpZFN0YXRlRXJyb3IsIGJ1
dCBpbnN0ZWFkIHJldHVybmVkICIke3Jlc3VsdH0iYAotICAgICk7Ci0gIH0gY2F0Y2ggKGVycikg
ewotICAgIGFzc2VydF9lcXVhbHMoCi0gICAgICBlcnIubmFtZSwKLSAgICAgICJJbnZhbGlkU3Rh
dGVFcnJvciIsCi0gICAgICAibXVzdCBiZSBhbiBJbnZhbGlkU3RhdGVFcnJvci4iCi0gICAgKTsK
LSAgfQotfSwgJ0lmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBh
IHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlv
bi4nKTsKLQogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBjb25zdCByZXF1ZXN0ID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CiAgIHRyeSB7
CkBAIC0xMTUsNiArNzgsNDAgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICApLmNhbk1h
a2VQYXltZW50KCk7CiAgIGFzc2VydF90cnVlKGF3YWl0IHNvbWVTdXBwb3J0ZWQsIGBBdCBsZWFz
dCBvbmUgbWV0aG9kIGlzIGV4cGVjdGVkIHRvIGJlIHN1cHBvcnRlZC5gKTsKIH0sIGBNaXggb2Yg
c3VwcG9ydGVkIGFuZCB1bnN1cHBvcnRlZCBtZXRob2RzLCBhdCBsZWFzdCBvbmUgbWV0aG9kIGlz
IHN1cHBvcnRlZC5gKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1
ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7
CisgIGNvbnN0IFthY2NlcHRQcm9taXNlLCBjYW5NYWtlUGF5bWVudFByb21pc2VdID0gYXdhaXQg
dGVzdF9kcml2ZXIuYmxlc3MoCisgICAgInNob3cgcGF5bWVudCByZXF1ZXN0IiwKKyAgICAoKSA9
PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7IC8vIFNldHMg
c3RhdGUgdG8gImludGVyYWN0aXZlIgorICAgICAgY29uc3QgY2FuTWFrZVBheW1lbnRQcm9taXNl
ID0gcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpOworICAgICAgcmV0dXJuIFthY2NlcHRQcm9taXNl
LCBjYW5NYWtlUGF5bWVudFByb21pc2VdOworICAgIH0pOworCisgIGF3YWl0IHByb21pc2VfcmVq
ZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgY2FuTWFrZVBheW1lbnRQcm9taXNlKTsK
KyAgcmVxdWVzdC5hYm9ydCgpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9y
dEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CisKKyAgLy8gVGhlIHN0YXRlIHNob3VsZCBiZSAiY2xv
c2VkIgorICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIs
IHJlcXVlc3QuY2FuTWFrZVBheW1lbnQoKSk7Cit9LCAnSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMg
ImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIklu
dmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBbYWJvcnRQcm9taXNlLCBhY2NlcHRQcm9taXNl
XSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICJzaG93IHBheW1lbnQgcmVxdWVzdCIs
CisgICAgKCkgPT4geworICAgICAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygp
OyAvLyBTZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2ZSIKKyAgICAgIGFjY2VwdFByb21pc2UuY2F0
Y2goKCkgPT4ge30pOyAvLyBuby1vcCwganVzdCB0byBzaWxlbmNlIHVuaGFuZGxlZCByZWplY3Rp
b24gaW4gZGV2dG9vbHMuCisgICAgICBjb25zdCBhYm9ydFByb21pc2UgPSByZXF1ZXN0LmFib3J0
KCk7ICAvLyBTZXRzIHN0YXRlIHRvICJjbG9zZWQiCisgICAgICByZXR1cm4gW2Fib3J0UHJvbWlz
ZSwgYWNjZXB0UHJvbWlzZV07CisgICAgfSk7CisKKyAgYXdhaXQgYWJvcnRQcm9taXNlOworICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7
CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVx
dWVzdC5jYW5NYWtlUGF5bWVudCgpKTsKK30sICdJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xv
c2VkIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0
ZUVycm9yIiBET01FeGNlcHRpb24uJyk7CiA8L3NjcmlwdD4KIAogPHNtYWxsPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLWNyYXNoLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4MDg5MWUzMmZhODdkMmJkZjExZTY0
NDExMWIzMjNmNzhhYjI5NWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLWNyYXNoLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLQotUEFTUyBEb24ndCBjcmFz
aCBpZiB0aGVyZSBpcyBhbiBhYnVzaXZlIG51bWJlciBvZiBwYXltZW50IG1ldGhvZHMgaW4gdGhl
IG1ldGhvZERhdGEgc2VxdWVuY2UgCi1QQVNTIERvbid0IGNyYXNoIGlmIFBheW1lbnRNZXRob2RE
YXRhLnN1cHBvcnRlZE1ldGhvZHMgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCi1QQVNTIERvbid0IGNy
YXNoIGlmIHRoZSByZXF1ZXN0IGlkIGhhcyBhbiBhYnVzaXZlIGxlbmd0aCAKLVBBU1MgRG9uJ3Qg
Y3Jhc2ggaWYgUGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVu
Z3RoIAotUEFTUyBEb24ndCBjcmFzaCBpZiB0b3RhbC5hbW91bnQudmFsdWUgaXMgYW4gYWJ1c2l2
ZSBsZW5ndGggCi1QQVNTIERvbid0IGNyYXNoIGlmIGRldGFpbHMuZGlzcGxheUl0ZW1zIGhhcyBh
biBhYnVzaXZlIG51bWJlciBvZiBpdGVtcyAKLVBBU1MgRG9uJ3QgY3Jhc2ggaWYgZGV0YWlscy5z
aGlwcGluZ09wdGlvbnMgaGFzIGFuIGFidXNpdmUgbnVtYmVyIG9mIGl0ZW1zIAotUEFTUyBEb24n
dCBjcmFzaCBpZiBQYXltZW50U2hpcHBpbmdPcHRpb25zLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVu
Z3RoIAotUEFTUyBEb24ndCBjcmFzaCBpZiB0aGUgUGF5bWVudFNoaXBwaW5nT3B0aW9ucy5hbW91
bnQudmFsdWUgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCi1QQVNTIERvbid0IGNyYXNoIGlmIFBheW1l
bnRJdGVtLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVuZ3RoIAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtY29uc3RydWN0b3ItY3Jhc2guaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVx
dWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMzI1NjgxYTRhY2Y2ODQxYjY3YjJkZDQwZDIwY2YwZGNjNDQ5ZDhmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjYxICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Ci08dGl0bGU+Q3Jhc2ggdGVzdHMgUGF5bWVudFJl
cXVlc3QgQ29uc3RydWN0b3I8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jY29uc3RydWN0b3IiPgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLS8q
KgotICAgIGRpY3Rpb25hcnkgUGF5bWVudEl0ZW0gewotICAgICAgICByZXF1aXJlZCBET01TdHJp
bmcgICAgICAgICAgICAgbGFiZWw7Ci0gICAgICAgIHJlcXVpcmVkIFBheW1lbnRDdXJyZW5jeUFt
b3VudCBhbW91bnQ7Ci0gICAgICAgICAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICAgICBwZW5k
aW5nID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIGRpY3Rpb25hcnkgUGF5bWVudERldGFpbHNCYXNl
IHsKLSAgICAgICAgc2VxdWVuY2U8UGF5bWVudEl0ZW0+ICAgICAgICAgICAgZGlzcGxheUl0ZW1z
OwotICAgICAgICBzZXF1ZW5jZTxQYXltZW50U2hpcHBpbmdPcHRpb24+ICBzaGlwcGluZ09wdGlv
bnM7Ci0gICAgICAgIHNlcXVlbmNlPFBheW1lbnREZXRhaWxzTW9kaWZpZXI+IG1vZGlmaWVyczsK
LSAgICB9OwotCi0gICAgZGljdGlvbmFyeSBQYXltZW50Q3VycmVuY3lBbW91bnQgewotICAgICAg
ICByZXF1aXJlZCBET01TdHJpbmcgY3VycmVuY3k7Ci0gICAgICAgIHJlcXVpcmVkIERPTVN0cmlu
ZyB2YWx1ZTsKLSAgICB9OwotKiovCi0KLSJ1c2Ugc3RyaWN0IjsKLWNvbnN0IEFCVVNJVkVfQU1P
VU5UID0gMTAwMDAwOwotCi1jb25zdCBiYXNpY0NhcmQgPSBPYmplY3QuZnJlZXplKHsKLSAgc3Vw
cG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAotfSk7Ci0KLWNvbnN0IGRlZmF1bHRBbW91bnQg
PSBPYmplY3QuZnJlZXplKHsKLSAgY3VycmVuY3k6ICJVU0QiLAotICB2YWx1ZTogIjEuMDAiLAot
fSk7Ci0KLWNvbnN0IGV2aWxBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKLSAgY3VycmVuY3k6ICJV
U0QiLAotICB2YWx1ZTogIjEiLnJlcGVhdChBQlVTSVZFX0FNT1VOVCksCi19KTsKLQotY29uc3Qg
ZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmRdKTsKLQotY29uc3QgZGVm
YXVsdFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGxhYmVsOiAibGFiZWwiLAotICBhbW91bnQ6
IGRlZmF1bHRBbW91bnQsCi19KTsKLQotY29uc3QgZXZpbFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7
Ci0gIGxhYmVsOiAiYSIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKLSAgYW1vdW50OiBldmlsQW1v
dW50LAotfSk7Ci0KLWNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHRv
dGFsOiBkZWZhdWx0VG90YWwsCi0gIGdldCBpZCgpIHsKLSAgICByZXR1cm4gTWF0aC5yYW5kb20o
KTsKLSAgfSwKLX0pOwotCi1jb25zdCBkZWZhdWx0UGF5bWVudEl0ZW0gPSBPYmplY3QuZnJlZXpl
KHsKLSAgbGFiZWw6ICJsYWJlbCIsCi0gIGFtb3VudDogZGVmYXVsdEFtb3VudCwKLX0pOwotCi1j
b25zdCBkZWZhdWx0U2hpcHBpbmdPcHRpb24gPSB7Ci0gIGdldCBpZCgpIHsKLSAgICByZXR1cm4g
InNoaXBwaW5nIG9wdGlvbiAiICsgTWF0aC5yYW5kb20oKTsKLSAgfSwKLSAgYW1vdW50OiBkZWZh
dWx0QW1vdW50LAotICBsYWJlbDogInNoaXBwaW5nIG9wdGlvbiBsYWJlbCIsCi19OwotCi0vLyBG
aXJzdCBhcmd1bWVudCBpcyBzZXF1ZW5jZTxQYXltZW50TWV0aG9kRGF0YT4gbWV0aG9kRGF0YQot
dGVzdCgoKSA9PiB7Ci0gIGxldCBldmlsTWV0aG9kcyA9IFtPYmplY3QuYXNzaWduKHt9LCBiYXNp
Y0NhcmQpXTsKLSAgLy8gc21va2UgdGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVz
dChldmlsTWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBh
c3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0K
LSAgLy8gTm93LCBsZXQncyBhZGQgYW4gYWJ1c2l2ZSBhbW91bnQgb2YgbWV0aG9kcy4KLSAgd2hp
bGUgKGV2aWxNZXRob2RzLmxlbmd0aCA8IEFCVVNJVkVfQU1PVU5UKSB7Ci0gICAgZXZpbE1ldGhv
ZHMgPSBldmlsTWV0aG9kcy5jb25jYXQoZXZpbE1ldGhvZHMpOwotICB9Ci0gIHRyeSB7Ci0gICAg
bmV3IFBheW1lbnRSZXF1ZXN0KGV2aWxNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIH0gY2F0
Y2ggKGVycikgewotICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVz
dCBiZSBhIFR5cGVFcnJvciIpOwotICB9Ci19LCAiRG9uJ3QgY3Jhc2ggaWYgdGhlcmUgaXMgYW4g
YWJ1c2l2ZSBudW1iZXIgb2YgcGF5bWVudCBtZXRob2RzIGluIHRoZSBtZXRob2REYXRhIHNlcXVl
bmNlIik7Ci0KLS8vIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRlZE1ldGhvZHMKLXRlc3QoKCkg
PT4gewotICBjb25zdCBzdXBwb3J0ZWRNZXRob2RzID0gImJhc2ljLWNhcmQiOwotICAvLyBTbW9r
ZSB0ZXN0Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KFt7IHN1cHBvcnRlZE1ldGhv
ZHMgfV0sIGRlZmF1bHREZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3Vu
cmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOwotICB9Ci0gIC8vIE5v
dywgd2UgbWFrZSBzdXBwb3J0ZWRNZXRob2RzIHN1cGVyIGxhcmdlCi0gIGNvbnN0IGV2aWxNZXRo
b2REYXRhID0gWwotICAgIHsKLSAgICAgIHN1cHBvcnRlZE1ldGhvZHM6IHN1cHBvcnRlZE1ldGhv
ZHMucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKLSAgICB9LAotICBdOwotICB0cnkgewotICAgIG5l
dyBQYXltZW50UmVxdWVzdChldmlsTWV0aG9kRGF0YSwgZGVmYXVsdERldGFpbHMpOwotICB9IGNh
dGNoIChlcnIpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11
c3QgYmUgYSBUeXBlRXJyb3IiKTsKLSAgfQotfSwgIkRvbid0IGNyYXNoIGlmIFBheW1lbnRNZXRo
b2REYXRhLnN1cHBvcnRlZE1ldGhvZHMgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLQotLy8gUGF5
bWVudERldGFpbHNJbml0LmlkCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgaWQgPSAiYWJjIjsKLSAg
Ly8gU21va2UgVGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdCgKLSAgICAgIGRl
ZmF1bHRNZXRob2RzLAotICAgICAgT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsg
aWQgfSkKLSAgICApOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJm
YWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBtYWtl
IHRoZSBpZCBzdXBlciBsYXJnZTsKLSAgY29uc3QgZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWdu
KHt9LCBkZWZhdWx0RGV0YWlscywgewotICAgIGlkOiBpZC5yZXBlYXQoQUJVU0lWRV9BTU9VTlQp
LAotICB9KTsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhlcnIu
bmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7Ci0gIH0KLX0sICJEb24n
dCBjcmFzaCBpZiB0aGUgcmVxdWVzdCBpZCBoYXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLQotLy8g
UGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVsCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgZXZp
bERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscyk7Ci0gIC8vIFNtb2tl
IFRlc3QKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2
aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFp
bGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOwotICB9Ci0gIC8vIE5vdywgd2UgbWFrZSB0
aGUgbGFiZWwgc3VwZXIgbGFyZ2U7Ci0gIGV2aWxEZXRhaWxzLnRvdGFsID0gewotICAgIGxhYmVs
OiAibCIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKLSAgICBhbW91bnQ6IGRlZmF1bHRBbW91bnQs
Ci0gIH07Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBl
dmlsRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9lcXVhbHMoZXJyLm5h
bWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwotICB9Ci19LCAiRG9uJ3Qg
Y3Jhc2ggaWYgUGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVu
Z3RoIik7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCBldmlsRGV0YWlscyA9IE9iamVjdC5hc3Np
Z24oe30sIGRlZmF1bHREZXRhaWxzKTsKLSAgLy8gU21va2UgVGVzdAotICB0cnkgewotICAgIG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNo
IChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVy
ci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBjYW4gdXNlIGV2aWxBbW91bnQKLSAgZXZpbERl
dGFpbHMudG90YWwgPSBldmlsQW1vdW50OwotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBh
c3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3Ii
KTsKLSAgfQotfSwgIkRvbid0IGNyYXNoIGlmIHRvdGFsLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVz
aXZlIGxlbmd0aCIpOwotCi1mb3IgKGNvbnN0IFtwcm9wLCBkZWZhdWx0VmFsdWVdIG9mIFsKLSAg
WyJkaXNwbGF5SXRlbXMiLCBkZWZhdWx0UGF5bWVudEl0ZW1dLAotICBbInNoaXBwaW5nT3B0aW9u
cyIsIGRlZmF1bHRTaGlwcGluZ09wdGlvbl0sCi1dKSB7Ci0gIHRlc3QoKCkgPT4gewotICAgIGNv
bnN0IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOwotICAg
IGV2aWxEZXRhaWxzW3Byb3BdID0gW2RlZmF1bHRWYWx1ZV07Ci0gICAgLy8gU21va2UgVGVzdAot
ICAgIHRyeSB7Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxE
ZXRhaWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoImZh
aWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKLSAgICB9Ci0gICAgd2hpbGUgKGV2aWxE
ZXRhaWxzW3Byb3BdLmxlbmd0aCA8IEFCVVNJVkVfQU1PVU5UKSB7Ci0gICAgICBldmlsRGV0YWls
c1twcm9wXSA9IGV2aWxEZXRhaWxzW3Byb3BdLmNvbmNhdChldmlsRGV0YWlsc1twcm9wXSk7Ci0g
ICAgfQotICAgIC8vIE5vdywgY29uc3RydWN0IHdpdGggZXZpbCBpdGVtcyEKLSAgICB0cnkgewot
ICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0g
ICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVy
cm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKLSAgICB9Ci0gIH0sIGBEb24ndCBjcmFzaCBp
ZiBkZXRhaWxzLiR7cHJvcH0gaGFzIGFuIGFidXNpdmUgbnVtYmVyIG9mIGl0ZW1zYCk7Ci19Ci0K
LXRlc3QoKCkgPT4gewotICBjb25zdCBldmlsRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRl
ZmF1bHREZXRhaWxzKTsKLSAgY29uc3QgZXZpbFNoaXBwaW5nT3B0aW9uID0gT2JqZWN0LmFzc2ln
bih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uKTsKLSAgZXZpbERldGFpbHMuc2hpcHBpbmdPcHRp
b25zID0gW2V2aWxTaGlwcGluZ09wdGlvbl07Ci0gIC8vIFNtb2tlIFRlc3QKLSAgdHJ5IHsKLSAg
ICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBj
YXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIg
KyBlcnIuc3RhY2spOwotICB9Ci0gIC8vIE5vdywgd2UgbWFrZSB0aGUgbGFiZWwgc3VwZXIgbGFy
Z2U7Ci0gIGV2aWxTaGlwcGluZ09wdGlvbi5sYWJlbCA9ICJsIi5yZXBlYXQoQUJVU0lWRV9BTU9V
TlQpOwotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZp
bERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1l
LCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKLSAgfQotfSwgIkRvbid0IGNy
YXNoIGlmIFBheW1lbnRTaGlwcGluZ09wdGlvbnMubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgi
KTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7
fSwgZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBldmlsU2hpcHBpbmdPcHRpb24gPSBPYmplY3Qu
YXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pOwotICBldmlsRGV0YWlscy5zaGlwcGlu
Z09wdGlvbnMgPSBbZXZpbFNoaXBwaW5nT3B0aW9uXTsKLSAgLy8gU21va2UgVGVzdAotICB0cnkg
ewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwot
ICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVz
dDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBtYWtlIHVzZSBvZiBldmlsQW1v
dW50OwotICBldmlsU2hpcHBpbmdPcHRpb24uYW1vdW50ID0gZXZpbEFtb3VudDsKLSAgdHJ5IHsK
LSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAg
fSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIs
ICJtdXN0IGJlIGEgVHlwZUVycm9yIik7Ci0gIH0KLX0sICJEb24ndCBjcmFzaCBpZiB0aGUgUGF5
bWVudFNoaXBwaW5nT3B0aW9ucy5hbW91bnQudmFsdWUgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsK
LQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBldmlsRGlzcGxheUl0ZW0gPSBPYmplY3QuYXNzaWdu
KHt9LCBkZWZhdWx0UGF5bWVudEl0ZW0pOwotICBldmlsRGV0YWlscy5kaXNwbGF5SXRlbXMgPSBb
ZXZpbERpc3BsYXlJdGVtXTsKLSAgLy8gU21va2UgVGVzdAotICB0cnkgewotICAgIG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIp
IHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFj
ayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBtYWtlIHRoZSBsYWJlbCBzdXBlciBsYXJnZTsKLSAgZXZp
bERpc3BsYXlJdGVtLmxhYmVsID0gImwiLnJlcGVhdChBQlVTSVZFX0FNT1VOVCk7Ci0gIHRyeSB7
Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0g
IH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3Ii
LCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwotICB9Ci19LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVu
dEl0ZW0ubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLXRoY3Jhc2guaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLXRoY3Jhc2guaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ4MDg5MWUzMmZhODdkMmJkZjExZTY0NDExMWIzMjNmNzhhYjI5
NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItdGhj
cmFzaC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitQQVNTIERvbid0IGNy
YXNoIGlmIHRoZXJlIGlzIGFuIGFidXNpdmUgbnVtYmVyIG9mIHBheW1lbnQgbWV0aG9kcyBpbiB0
aGUgbWV0aG9kRGF0YSBzZXF1ZW5jZSAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudE1ldGhv
ZERhdGEuc3VwcG9ydGVkTWV0aG9kcyBpcyBhbiBhYnVzaXZlIGxlbmd0aCAKK1BBU1MgRG9uJ3Qg
Y3Jhc2ggaWYgdGhlIHJlcXVlc3QgaWQgaGFzIGFuIGFidXNpdmUgbGVuZ3RoIAorUEFTUyBEb24n
dCBjcmFzaCBpZiBQYXltZW50RGV0YWlsc0luaXQudG90YWwubGFiZWwgaXMgYW4gYWJ1c2l2ZSBs
ZW5ndGggCitQQVNTIERvbid0IGNyYXNoIGlmIHRvdGFsLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVz
aXZlIGxlbmd0aCAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgZGV0YWlscy5kaXNwbGF5SXRlbXMgaGFz
IGFuIGFidXNpdmUgbnVtYmVyIG9mIGl0ZW1zIAorUEFTUyBEb24ndCBjcmFzaCBpZiBkZXRhaWxz
LnNoaXBwaW5nT3B0aW9ucyBoYXMgYW4gYWJ1c2l2ZSBudW1iZXIgb2YgaXRlbXMgCitQQVNTIERv
bid0IGNyYXNoIGlmIFBheW1lbnRTaGlwcGluZ09wdGlvbnMubGFiZWwgaXMgYW4gYWJ1c2l2ZSBs
ZW5ndGggCitQQVNTIERvbid0IGNyYXNoIGlmIHRoZSBQYXltZW50U2hpcHBpbmdPcHRpb25zLmFt
b3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgUGF5
bWVudEl0ZW0ubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci10aGNyYXNoLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3QtY29uc3RydWN0b3ItdGhjcmFzaC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3NjM2
MTViZGQxODZkMGE4YTY1NmFmOGE4OWJmZGY4YmJmYWMxODYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItdGhjcmFzaC5odHRwcy5odG1sCkBAIC0wLDAg
KzEsMjcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxtZXRh
IG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPkNyYXNoIHRlc3RzIFBheW1l
bnRSZXF1ZXN0IENvbnN0cnVjdG9yPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisvKioKKyAgICBkaWN0aW9uYXJ5IFBheW1lbnRJdGVtIHsKKyAgICAgICAgcmVxdWlyZWQgRE9N
U3RyaW5nICAgICAgICAgICAgIGxhYmVsOworICAgICAgICByZXF1aXJlZCBQYXltZW50Q3VycmVu
Y3lBbW91bnQgYW1vdW50OworICAgICAgICAgICAgICAgICBib29sZWFuICAgICAgICAgICAgICAg
cGVuZGluZyA9IGZhbHNlOworICAgIH07CisKKyAgICBkaWN0aW9uYXJ5IFBheW1lbnREZXRhaWxz
QmFzZSB7CisgICAgICAgIHNlcXVlbmNlPFBheW1lbnRJdGVtPiAgICAgICAgICAgIGRpc3BsYXlJ
dGVtczsKKyAgICAgICAgc2VxdWVuY2U8UGF5bWVudFNoaXBwaW5nT3B0aW9uPiAgc2hpcHBpbmdP
cHRpb25zOworICAgICAgICBzZXF1ZW5jZTxQYXltZW50RGV0YWlsc01vZGlmaWVyPiBtb2RpZmll
cnM7CisgICAgfTsKKworICAgIGRpY3Rpb25hcnkgUGF5bWVudEN1cnJlbmN5QW1vdW50IHsKKyAg
ICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nIGN1cnJlbmN5OworICAgICAgICByZXF1aXJlZCBET01T
dHJpbmcgdmFsdWU7CisgICAgfTsKKyoqLworCisidXNlIHN0cmljdCI7Citjb25zdCBBQlVTSVZF
X0FNT1VOVCA9IDEwMDAwMDsKKworY29uc3QgYXBwbGVQYXkgPSB7CisgIHN1cHBvcnRlZE1ldGhv
ZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lv
bjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisg
ICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9y
dHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK307CisKK2Nv
bnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFz
aWMtY2FyZCIsCit9KTsKKworY29uc3QgZGVmYXVsdEFtb3VudCA9IE9iamVjdC5mcmVlemUoewor
ICBjdXJyZW5jeTogIlVTRCIsCisgIHZhbHVlOiAiMS4wMCIsCit9KTsKKworY29uc3QgZXZpbEFt
b3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIlVTRCIsCisgIHZhbHVlOiAiMSIu
cmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKK30pOworCitjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9i
amVjdC5mcmVlemUoW2Jhc2ljQ2FyZCwgYXBwbGVQYXldKTsKKworY29uc3QgZGVmYXVsdFRvdGFs
ID0gT2JqZWN0LmZyZWV6ZSh7CisgIGxhYmVsOiAibGFiZWwiLAorICBhbW91bnQ6IGRlZmF1bHRB
bW91bnQsCit9KTsKKworY29uc3QgZXZpbFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CisgIGxhYmVs
OiAiYSIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKKyAgYW1vdW50OiBldmlsQW1vdW50LAorfSk7
CisKK2NvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiBkZWZh
dWx0VG90YWwsCisgIGdldCBpZCgpIHsKKyAgICByZXR1cm4gTWF0aC5yYW5kb20oKTsKKyAgfSwK
K30pOworCitjb25zdCBkZWZhdWx0UGF5bWVudEl0ZW0gPSBPYmplY3QuZnJlZXplKHsKKyAgbGFi
ZWw6ICJsYWJlbCIsCisgIGFtb3VudDogZGVmYXVsdEFtb3VudCwKK30pOworCitjb25zdCBkZWZh
dWx0U2hpcHBpbmdPcHRpb24gPSB7CisgIGdldCBpZCgpIHsKKyAgICByZXR1cm4gInNoaXBwaW5n
IG9wdGlvbiAiICsgTWF0aC5yYW5kb20oKTsKKyAgfSwKKyAgYW1vdW50OiBkZWZhdWx0QW1vdW50
LAorICBsYWJlbDogInNoaXBwaW5nIG9wdGlvbiBsYWJlbCIsCit9OworCisvLyBGaXJzdCBhcmd1
bWVudCBpcyBzZXF1ZW5jZTxQYXltZW50TWV0aG9kRGF0YT4gbWV0aG9kRGF0YQordGVzdCgoKSA9
PiB7CisgIGxldCBldmlsTWV0aG9kcyA9IFtPYmplY3QuYXNzaWduKHt9LCBiYXNpY0NhcmQpXTsK
KyAgLy8gc21va2UgdGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChldmlsTWV0
aG9kcywgZGVmYXVsdERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5y
ZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93
LCBsZXQncyBhZGQgYW4gYWJ1c2l2ZSBhbW91bnQgb2YgbWV0aG9kcy4KKyAgd2hpbGUgKGV2aWxN
ZXRob2RzLmxlbmd0aCA8IEFCVVNJVkVfQU1PVU5UKSB7CisgICAgZXZpbE1ldGhvZHMgPSBldmls
TWV0aG9kcy5jb25jYXQoZXZpbE1ldGhvZHMpOworICB9CisgIHRyeSB7CisgICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGV2aWxNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikg
eworICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5
cGVFcnJvciIpOworICB9Cit9LCAiRG9uJ3QgY3Jhc2ggaWYgdGhlcmUgaXMgYW4gYWJ1c2l2ZSBu
dW1iZXIgb2YgcGF5bWVudCBtZXRob2RzIGluIHRoZSBtZXRob2REYXRhIHNlcXVlbmNlIik7CisK
Ky8vIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRlZE1ldGhvZHMKK3Rlc3QoKCkgPT4geworICBj
b25zdCBzdXBwb3J0ZWRNZXRob2RzID0gImJhc2ljLWNhcmQiOworICAvLyBTbW9rZSB0ZXN0Cisg
IHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KFt7IHN1cHBvcnRlZE1ldGhvZHMgfV0sIGRl
ZmF1bHREZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgi
ZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOworICB9CisgIC8vIE5vdywgd2UgbWFr
ZSBzdXBwb3J0ZWRNZXRob2RzIHN1cGVyIGxhcmdlCisgIGNvbnN0IGV2aWxNZXRob2REYXRhID0g
WworICAgIHsKKyAgICAgIHN1cHBvcnRlZE1ldGhvZHM6IHN1cHBvcnRlZE1ldGhvZHMucmVwZWF0
KEFCVVNJVkVfQU1PVU5UKSwKKyAgICB9LAorICBdOworICB0cnkgeworICAgIG5ldyBQYXltZW50
UmVxdWVzdChldmlsTWV0aG9kRGF0YSwgZGVmYXVsdERldGFpbHMpOworICB9IGNhdGNoIChlcnIp
IHsKKyAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBU
eXBlRXJyb3IiKTsKKyAgfQorfSwgIkRvbid0IGNyYXNoIGlmIFBheW1lbnRNZXRob2REYXRhLnN1
cHBvcnRlZE1ldGhvZHMgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKworLy8gUGF5bWVudERldGFp
bHNJbml0LmlkCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgaWQgPSAiYWJjIjsKKyAgLy8gU21va2Ug
VGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdCgKKyAgICAgIGRlZmF1bHRNZXRo
b2RzLAorICAgICAgT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgaWQgfSkKKyAg
ICApOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21v
a2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCB3ZSBtYWtlIHRoZSBpZCBz
dXBlciBsYXJnZTsKKyAgY29uc3QgZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZh
dWx0RGV0YWlscywgeworICAgIGlkOiBpZC5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpLAorICB9KTsK
KyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRh
aWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X2VxdWFscyhlcnIubmFtZSwgIlR5
cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7CisgIH0KK30sICJEb24ndCBjcmFzaCBp
ZiB0aGUgcmVxdWVzdCBpZCBoYXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKworLy8gUGF5bWVudERl
dGFpbHNJbml0LnRvdGFsLmxhYmVsCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgZXZpbERldGFpbHMg
PSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscyk7CisgIC8vIFNtb2tlIFRlc3QKKyAg
dHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxz
KTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tl
IHRlc3Q6ICIgKyBlcnIuc3RhY2spOworICB9CisgIC8vIE5vdywgd2UgbWFrZSB0aGUgbGFiZWwg
c3VwZXIgbGFyZ2U7CisgIGV2aWxEZXRhaWxzLnRvdGFsID0geworICAgIGxhYmVsOiAibCIucmVw
ZWF0KEFCVVNJVkVfQU1PVU5UKSwKKyAgICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCisgIH07Cisg
IHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWls
cyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBl
RXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOworICB9Cit9LCAiRG9uJ3QgY3Jhc2ggaWYg
UGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVuZ3RoIik7CisK
K3Rlc3QoKCkgPT4geworICBjb25zdCBldmlsRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRl
ZmF1bHREZXRhaWxzKTsKKyAgLy8gU21va2UgVGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsK
KyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7
CisgIH0KKyAgLy8gTm93LCB3ZSBjYW4gdXNlIGV2aWxBbW91bnQKKyAgZXZpbERldGFpbHMudG90
YWwgPSBldmlsQW1vdW50OworICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfZXF1
YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgfQor
fSwgIkRvbid0IGNyYXNoIGlmIHRvdGFsLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0
aCIpOworCitmb3IgKGNvbnN0IFtwcm9wLCBkZWZhdWx0VmFsdWVdIG9mIFsKKyAgWyJkaXNwbGF5
SXRlbXMiLCBkZWZhdWx0UGF5bWVudEl0ZW1dLAorICBbInNoaXBwaW5nT3B0aW9ucyIsIGRlZmF1
bHRTaGlwcGluZ09wdGlvbl0sCitdKSB7CisgIHRlc3QoKCkgPT4geworICAgIGNvbnN0IGV2aWxE
ZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOworICAgIGV2aWxEZXRh
aWxzW3Byb3BdID0gW2RlZmF1bHRWYWx1ZV07CisgICAgLy8gU21va2UgVGVzdAorICAgIHRyeSB7
CisgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsK
KyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9r
ZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKKyAgICB9CisgICAgd2hpbGUgKGV2aWxEZXRhaWxzW3By
b3BdLmxlbmd0aCA8IEFCVVNJVkVfQU1PVU5UKSB7CisgICAgICBldmlsRGV0YWlsc1twcm9wXSA9
IGV2aWxEZXRhaWxzW3Byb3BdLmNvbmNhdChldmlsRGV0YWlsc1twcm9wXSk7CisgICAgfQorICAg
IC8vIE5vdywgY29uc3RydWN0IHdpdGggZXZpbCBpdGVtcyEKKyAgICB0cnkgeworICAgICAgbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7CisgICAgfSBjYXRj
aCAoZXJyKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11
c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgICB9CisgIH0sIGBEb24ndCBjcmFzaCBpZiBkZXRhaWxz
LiR7cHJvcH0gaGFzIGFuIGFidXNpdmUgbnVtYmVyIG9mIGl0ZW1zYCk7Cit9CisKK3Rlc3QoKCkg
PT4geworICBjb25zdCBldmlsRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRh
aWxzKTsKKyAgY29uc3QgZXZpbFNoaXBwaW5nT3B0aW9uID0gT2JqZWN0LmFzc2lnbih7fSwgZGVm
YXVsdFNoaXBwaW5nT3B0aW9uKTsKKyAgZXZpbERldGFpbHMuc2hpcHBpbmdPcHRpb25zID0gW2V2
aWxTaGlwcGluZ09wdGlvbl07CisgIC8vIFNtb2tlIFRlc3QKKyAgdHJ5IHsKKyAgICBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJy
KSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3Rh
Y2spOworICB9CisgIC8vIE5vdywgd2UgbWFrZSB0aGUgbGFiZWwgc3VwZXIgbGFyZ2U7CisgIGV2
aWxTaGlwcGluZ09wdGlvbi5sYWJlbCA9ICJsIi5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpOworICB0
cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMp
OworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVy
cm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgfQorfSwgIkRvbid0IGNyYXNoIGlmIFBh
eW1lbnRTaGlwcGluZ09wdGlvbnMubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKwordGVz
dCgoKSA9PiB7CisgIGNvbnN0IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVs
dERldGFpbHMpOworICBjb25zdCBldmlsU2hpcHBpbmdPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9
LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pOworICBldmlsRGV0YWlscy5zaGlwcGluZ09wdGlvbnMg
PSBbZXZpbFNoaXBwaW5nT3B0aW9uXTsKKyAgLy8gU21va2UgVGVzdAorICB0cnkgeworICAgIG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNhdGNo
IChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVy
ci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCB3ZSBtYWtlIHVzZSBvZiBldmlsQW1vdW50OworICBl
dmlsU2hpcHBpbmdPcHRpb24uYW1vdW50ID0gZXZpbEFtb3VudDsKKyAgdHJ5IHsKKyAgICBuZXcg
UGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAo
ZXJyKSB7CisgICAgYXNzZXJ0X2VxdWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJl
IGEgVHlwZUVycm9yIik7CisgIH0KK30sICJEb24ndCBjcmFzaCBpZiB0aGUgUGF5bWVudFNoaXBw
aW5nT3B0aW9ucy5hbW91bnQudmFsdWUgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKwordGVzdCgo
KSA9PiB7CisgIGNvbnN0IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERl
dGFpbHMpOworICBjb25zdCBldmlsRGlzcGxheUl0ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZh
dWx0UGF5bWVudEl0ZW0pOworICBldmlsRGV0YWlscy5kaXNwbGF5SXRlbXMgPSBbZXZpbERpc3Bs
YXlJdGVtXTsKKyAgLy8gU21va2UgVGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBh
c3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0K
KyAgLy8gTm93LCB3ZSBtYWtlIHRoZSBsYWJlbCBzdXBlciBsYXJnZTsKKyAgZXZpbERpc3BsYXlJ
dGVtLmxhYmVsID0gImwiLnJlcGVhdChBQlVTSVZFX0FNT1VOVCk7CisgIHRyeSB7CisgICAgbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7CisgIH0gY2F0Y2gg
KGVycikgeworICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBi
ZSBhIFR5cGVFcnJvciIpOworICB9Cit9LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudEl0ZW0ubGFi
ZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
Y29uc3RydWN0b3IuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlj
MjVkMTcyMzQ1OWJlZjU2OWNhOWU2MmVjMjllMGM4ODk1MzRmNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0
b3IuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY4NCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgQ2hyb21pdW0gYXV0aG9ycyBhbmQgV29ybGQg
V2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEVSQ0lNLCBLZWlvIFVuaXZlcnNpdHksIEJlaWhhbmcpLiAtLT4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGZvciBQYXltZW50UmVxdWVzdCBDb25zdHJ1Y3RvcjwvdGl0
bGU+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9icm93c2Vy
LXBheW1lbnQtYXBpLyNjb25zdHJ1Y3RvciI+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotY29uc3QgdGVz
dE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewotICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93
cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi19KTsKLWNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2Jq
ZWN0LmZyZWV6ZShbdGVzdE1ldGhvZF0pOwotY29uc3QgZGVmYXVsdEFtb3VudCA9IE9iamVjdC5m
cmVlemUoewotICBjdXJyZW5jeTogIlVTRCIsCi0gIHZhbHVlOiAiMS4wIiwKLX0pOwotY29uc3Qg
ZGVmYXVsdE51bWJlckFtb3VudCA9IE9iamVjdC5mcmVlemUoewotICBjdXJyZW5jeTogIlVTRCIs
Ci0gIHZhbHVlOiAxLjAsCi19KTsKLWNvbnN0IGRlZmF1bHRUb3RhbCA9IE9iamVjdC5mcmVlemUo
ewotICBsYWJlbDogIkRlZmF1bHQgVG90YWwiLAotICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi19
KTsKLWNvbnN0IGRlZmF1bHROdW1iZXJUb3RhbCA9IE9iamVjdC5mcmVlemUoewotICBsYWJlbDog
IkRlZmF1bHQgTnVtYmVyIFRvdGFsIiwKLSAgYW1vdW50OiBkZWZhdWx0TnVtYmVyQW1vdW50LAot
fSk7Ci1jb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewotICB0b3RhbDogZGVm
YXVsdFRvdGFsLAotICBkaXNwbGF5SXRlbXM6IFsKLSAgICB7Ci0gICAgICBsYWJlbDogIkRlZmF1
bHQgRGlzcGxheSBJdGVtIiwKLSAgICAgIGFtb3VudDogZGVmYXVsdEFtb3VudCwKLSAgICB9LAot
ICBdLAotfSk7Ci1jb25zdCBkZWZhdWx0TnVtYmVyRGV0YWlscyA9IE9iamVjdC5mcmVlemUoewot
ICB0b3RhbDogZGVmYXVsdE51bWJlclRvdGFsLAotICBkaXNwbGF5SXRlbXM6IFsKLSAgICB7Ci0g
ICAgICBsYWJlbDogIkRlZmF1bHQgRGlzcGxheSBJdGVtIiwKLSAgICAgIGFtb3VudDogZGVmYXVs
dE51bWJlckFtb3VudCwKLSAgICB9LAotICBdLAotfSk7Ci0KLS8vIEF2b2lkIGZhbHNlIHBvc2l0
aXZlcywgdGhpcyBzaG91bGQgYWx3YXlzIHBhc3MKLWZ1bmN0aW9uIHNtb2tlVGVzdCgpIHsKLSAg
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdE51bWJlckRldGFpbHMpOwot
fQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBh
eW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGFzc2VydF90
cnVlKEJvb2xlYW4ocmVxdWVzdC5pZCksICJtdXN0IGJlIHNvbWUgdHJ1dGh5IHZhbHVlIik7Ci19
LCAiSWYgZGV0YWlscy5pZCBpcyBtaXNzaW5nLCBhc3NpZ24gYW4gaWRlbnRpZmllciIpOwotCi10
ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IHJlcXVl
c3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7
Ci0gIGFzc2VydF9ub3RfZXF1YWxzKHJlcXVlc3QxLmlkLCByZXF1ZXN0Mi5pZCwgIlVBIGdlbmVy
YXRlZCBJRCBtdXN0IGJlIHVuaXF1ZSIpOwotICBjb25zdCBzZWVuID0gbmV3IFNldCgpOwotICAv
LyBMZXQncyB0cnkgY3JlYXRpbmcgbG90cyBvZiByZXF1ZXN0cywgYW5kIG1ha2Ugc3VyZSB0aGV5
IGFyZSBhbGwgdW5pcXVlCi0gIGZvciAobGV0IGkgPSAwOyBpIDwgMTAyNDsgaSsrKSB7Ci0gICAg
Y29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVs
dERldGFpbHMpOwotICAgIGFzc2VydF9mYWxzZSgKLSAgICAgIHNlZW4uaGFzKHJlcXVlc3QuaWQp
LAotICAgICAgYFVBIGdlbmVyYXRlZCBJRCBtdXN0IGJlIHVuaXF1ZSwgYnV0IGdvdCBkdXBsaWNh
dGUhICgke3JlcXVlc3QuaWR9KWAKLSAgICApOwotICAgIHNlZW4uYWRkKHJlcXVlc3QuaWQpOwot
ICB9Ci19LCAiSWYgZGV0YWlscy5pZCBpcyBtaXNzaW5nLCBhc3NpZ24gYSB1bmlxdWUgaWRlbnRp
ZmllciIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGNvbnN0IG5ld0RldGFp
bHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBpZDogInRlc3QxMjMiIH0p
OwotICBjb25zdCByZXF1ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywg
bmV3RGV0YWlscyk7Ci0gIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBuZXdEZXRhaWxzKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0MS5pZCwgbmV3
RGV0YWlscy5pZCwgYGlkIG11c3QgYmUgJHtuZXdEZXRhaWxzLmlkfWApOwotICBhc3NlcnRfZXF1
YWxzKHJlcXVlc3QyLmlkLCBuZXdEZXRhaWxzLmlkLCBgaWQgbXVzdCBiZSAke25ld0RldGFpbHMu
aWR9YCk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVzdDEuaWQsIHJlcXVlc3QyLmlkLCAiaWRzIG5l
ZWQgdG8gYmUgdGhlIHNhbWUiKTsKLX0sICJJZiB0aGUgc2FtZSBpZCBpcyBwcm92aWRlZCwgdGhl
biB1c2UgaXQiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBjb25zdCBuZXdE
ZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsKLSAgICBpZDogIiIu
cGFkU3RhcnQoMTAyNCwgImEiKSwKLSAgfSk7Ci0gIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG5ld0RldGFpbHMpOwotICBhc3NlcnRfZXF1YWxzKAot
ICAgIHJlcXVlc3QuaWQsCi0gICAgbmV3RGV0YWlscy5pZCwKLSAgICBgaWQgbXVzdCBiZSBwcm92
aWRlZCB2YWx1ZSwgZXZlbiBpZiB2ZXJ5IGxvbmcgYW5kIGNvbnRhaW4gc3BhY2VzYAotICApOwot
fSwgIlVzZSBpZHMgZXZlbiBpZiB0aGV5IGFyZSBzdHJhbmdlIik7Ci0KLXRlc3QoKCkgPT4gewot
ICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCgKLSAg
ICBkZWZhdWx0TWV0aG9kcywKLSAgICBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywg
eyBpZDogImZvbyIgfSkKLSAgKTsKLSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmlkLCAiZm9vIik7
Ci19LCAiVXNlIHByb3ZpZGVkIHJlcXVlc3QgSUQiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tl
VGVzdCgpOwotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gbmV3IFBheW1l
bnRSZXF1ZXN0KFtdLCBkZWZhdWx0RGV0YWlscykpOwotfSwgIklmIHRoZSBsZW5ndGggb2YgdGhl
IG1ldGhvZERhdGEgc2VxdWVuY2UgaXMgemVybywgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOwot
Ci10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGNvbnN0IEpTT05TZXJpYWxpemFibGVz
ID0gW1tdLCB7IG9iamVjdDoge30gfV07Ci0gIGZvciAoY29uc3QgZGF0YSBvZiBKU09OU2VyaWFs
aXphYmxlcykgewotICAgIHRyeSB7Ci0gICAgICBjb25zdCBtZXRob2RzID0gWwotICAgICAgICB7
Ci0gICAgICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJl
cXVlc3QiLAotICAgICAgICAgIGRhdGEsCi0gICAgICAgIH0sCi0gICAgICBdOwotICAgICAgbmV3
IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgICB9IGNhdGNoIChl
cnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICAgIGBVbmV4cGVjdGVkIGVycm9y
IHBhcnNpbmcgc3RyaW5naWZpYWJsZSBKU09OOiAke0pTT04uc3RyaW5naWZ5KAotICAgICAgICAg
IGRhdGEKLSAgICAgICAgKX06ICR7ZXJyLm1lc3NhZ2V9YAotICAgICAgKTsKLSAgICB9Ci0gIH0K
LX0sICJNb2RpZmllciBtZXRob2QgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVj
dCIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGNvbnN0IHJlY3Vyc2l2ZURp
Y3Rpb25hcnkgPSB7fTsKLSAgcmVjdXJzaXZlRGljdGlvbmFyeS5mb28gPSByZWN1cnNpdmVEaWN0
aW9uYXJ5OwotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gewotICAgIGNv
bnN0IG1ldGhvZHMgPSBbCi0gICAgICB7Ci0gICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRw
czovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwKLSAgICAgICAgZGF0YTogcmVjdXJzaXZlRGlj
dGlvbmFyeSwKLSAgICAgIH0sCi0gICAgXTsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9k
cywgZGVmYXVsdERldGFpbHMpOwotICB9KTsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
KCksICgpID0+IHsKLSAgICBjb25zdCBtZXRob2RzID0gWwotICAgICAgewotICAgICAgICBzdXBw
b3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICAg
IGRhdGE6ICJhIHN0cmluZyIsCi0gICAgICB9LAotICAgIF07Ci0gICAgbmV3IFBheW1lbnRSZXF1
ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgfSk7Ci0gIGFzc2VydF90aHJvd3MoCi0g
ICAgbmV3IFR5cGVFcnJvcigpLAotICAgICgpID0+IHsKLSAgICAgIGNvbnN0IG1ldGhvZHMgPSBb
Ci0gICAgICAgIHsKLSAgICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlp
L3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICAgICAgZGF0YTogbnVsbCwKLSAgICAgICAgfSwKLSAg
ICAgIF07Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMp
OwotICAgIH0sCi0gICAgIkV2ZW4gdGhvdWdoIG51bGwgaXMgSlNPTi1zZXJpYWxpemFibGUsIGl0
J3Mgbm90IHR5cGUgJ09iamVjdCcgcGVyIEVTIHNwZWMiCi0gICk7Ci19LCAiUmV0aHJvdyBhbnkg
ZXhjZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6aW5nIHBheW1lbnRNZXRob2QuZGF0YSBpbnRvIGEg
c3RyaW5nIik7Ci0KLS8vIHByb2Nlc3MgdG90YWwKLWNvbnN0IGludmFsaWRBbW91bnRzID0gWwot
ICAiLSIsCi0gICJub3RkaWdpdHMiLAotICAiQUxTT05PVERJR0lUUyIsCi0gICIxMC4iLAotICAi
Ljk5IiwKLSAgIi0xMC4iLAotICAiLS45OSIsCi0gICIxMC0iLAotICAiMS0wIiwKLSAgIjEuMC4w
IiwKLSAgIjEvMyIsCi0gICIiLAotICBudWxsLAotICAiIDEuMCAgIiwKLSAgIiAxLjAgIiwKLSAg
IjEuMCAiLAotICAiVVNEJDEuMCIsCi0gICIkMS4wIiwKLSAgewotICAgIHRvU3RyaW5nKCkgewot
ICAgICAgcmV0dXJuICIgMS4wIjsKLSAgICB9LAotICB9LAotXTsKLWNvbnN0IGludmFsaWRUb3Rh
bEFtb3VudHMgPSBpbnZhbGlkQW1vdW50cy5jb25jYXQoWwotICAiLTEiLAotICAiLTEuMCIsCi0g
ICItMS4wMCIsCi0gICItMTAwMC4wMDAiLAotICAtMTAsCi1dKTsKLXRlc3QoKCkgPT4gewotICBz
bW9rZVRlc3QoKTsKLSAgZm9yIChjb25zdCBpbnZhbGlkQW1vdW50IG9mIGludmFsaWRUb3RhbEFt
b3VudHMpIHsKLSAgICBjb25zdCBpbnZhbGlkRGV0YWlscyA9IHsKLSAgICAgIHRvdGFsOiB7Ci0g
ICAgICAgIGxhYmVsOiAiIiwKLSAgICAgICAgYW1vdW50OiB7Ci0gICAgICAgICAgY3VycmVuY3k6
ICJVU0QiLAotICAgICAgICAgIHZhbHVlOiBpbnZhbGlkQW1vdW50LAotICAgICAgICB9LAotICAg
ICAgfSwKLSAgICB9OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBuZXcgVHlwZUVycm9yKCks
Ci0gICAgICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgaW52YWxpZERldGFpbHMpOwotICAgICAgfSwKLSAgICAgIGBFeHBlY3QgVHlwZUVycm9yIHdo
ZW4gZGV0YWlscy50b3RhbC5hbW91bnQudmFsdWUgaXMgJHtpbnZhbGlkQW1vdW50fWAKLSAgICAp
OwotICB9Ci19LCBgSWYgZGV0YWlscy50b3RhbC5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQg
ZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvcmApOwotCi10ZXN0
KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGZvciAoY29uc3QgcHJvcCBpbiBbImRpc3BsYXlJ
dGVtcyIsICJzaGlwcGluZ09wdGlvbnMiLCAibW9kaWZpZXJzIl0pIHsKLSAgICB0cnkgewotICAg
ICAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IFtw
cm9wXTogW10gfSk7Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
dGFpbHMpOwotICAgICAgYXNzZXJ0X3VucmVhY2hlZChgUGF5bWVudERldGFpbHNCYXNlLiR7cHJv
cH0gY2FuIGJlIHplcm8gbGVuZ3RoYCk7Ci0gICAgfSBjYXRjaCAoZXJyKSB7fQotICB9Ci19LCBg
UGF5bWVudERldGFpbHNCYXNlIG1lbWJlcnMgY2FuIGJlIDAgbGVuZ3RoYCk7Ci0KLXRlc3QoKCkg
PT4gewotICBzbW9rZVRlc3QoKTsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgp
ID0+IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIHsKLSAgICAgIHRv
dGFsOiB7Ci0gICAgICAgIGxhYmVsOiAiIiwKLSAgICAgICAgYW1vdW50OiB7Ci0gICAgICAgICAg
Y3VycmVuY3k6ICJVU0QiLAotICAgICAgICAgIHZhbHVlOiAiLTEuMDAiLAotICAgICAgICB9LAot
ICAgICAgfSwKLSAgICB9KTsKLSAgfSk7Ci19LCAiSWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBk
ZXRhaWxzLnRvdGFsLmFtb3VudC52YWx1ZSBpcyBVKzAwMkQgSFlQSEVOLU1JTlVTLCB0aGVuIHRo
cm93IGEgVHlwZUVycm9yIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgZm9y
IChjb25zdCBpbnZhbGlkQW1vdW50IG9mIGludmFsaWRBbW91bnRzKSB7Ci0gICAgY29uc3QgaW52
YWxpZERldGFpbHMgPSB7Ci0gICAgICB0b3RhbDogZGVmYXVsdEFtb3VudCwKLSAgICAgIGRpc3Bs
YXlJdGVtczogWwotICAgICAgICB7Ci0gICAgICAgICAgbGFiZWw6ICIiLAotICAgICAgICAgIGFt
b3VudDogewotICAgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAgICAgICAgdmFsdWU6
IGludmFsaWRBbW91bnQsCi0gICAgICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAgIF0sCi0gICAg
fTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgbmV3IFR5cGVFcnJvcigpLAotICAgICAgKCkg
PT4gewotICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGludmFsaWRE
ZXRhaWxzKTsKLSAgICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgVHlwZUVycm9yIHdoZW4gaXRlbS5h
bW91bnQudmFsdWUgaXMgIiR7aW52YWxpZEFtb3VudH0iYAotICAgICk7Ci0gIH0KLX0sIGBGb3Ig
ZWFjaCBpdGVtIGluIGRldGFpbHMuZGlzcGxheUl0ZW1zOiBpZiBpdGVtLmFtb3VudC52YWx1ZSBp
cyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVy
cm9yYCk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgdHJ5IHsKLSAgICBuZXcg
UGF5bWVudFJlcXVlc3QoCi0gICAgICBbCi0gICAgICAgIHsKLSAgICAgICAgICBzdXBwb3J0ZWRN
ZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICAgIH0sCi0g
ICAgICBdLAotICAgICAgewotICAgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAotICAgICAgICBk
aXNwbGF5SXRlbXM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBsYWJlbDogIiIsCi0gICAg
ICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAg
ICAgICAgICB2YWx1ZTogIi0xMDAwIiwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgfSwKLSAg
ICAgICAgICB7Ci0gICAgICAgICAgICBsYWJlbDogIiIsCi0gICAgICAgICAgICBhbW91bnQ6IHsK
LSAgICAgICAgICAgICAgY3VycmVuY3k6ICJBVUQiLAotICAgICAgICAgICAgICB2YWx1ZTogIi0y
MDAwLjAwIiwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgfSwKLSAgICAgICAgXSwKLSAgICAg
IH0KLSAgICApOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKAotICAg
ICAgYHNob3VsZG4ndCB0aHJvdyB3aGVuIGdpdmVuIGEgbmVnYXRpdmUgdmFsdWU6ICR7ZXJyLm1l
c3NhZ2V9YAotICAgICk7Ci0gIH0KLX0sICJOZWdhdGl2ZSB2YWx1ZXMgYXJlIGFsbG93ZWQgZm9y
IGRpc3BsYXlJdGVtcy5hbW91bnQudmFsdWUsIGlycmVzcGVjdGl2ZSBvZiB0b3RhbCBhbW91bnQi
KTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBjb25zdCBsYXJnZU1vbmV5ID0g
IjEiLnJlcGVhdCg1MTApOwotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgewotICAgICAgdG90YWw6IHsKLSAgICAgICAgbGFiZWw6ICIiLAotICAgICAgICBh
bW91bnQ6IHsKLSAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCi0gICAgICAgICAgdmFsdWU6IGAk
e2xhcmdlTW9uZXl9LiR7bGFyZ2VNb25leX1gLAotICAgICAgICB9LAotICAgICAgfSwKLSAgICAg
IGRpc3BsYXlJdGVtczogWwotICAgICAgICB7Ci0gICAgICAgICAgbGFiZWw6ICIiLAotICAgICAg
ICAgIGFtb3VudDogewotICAgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAgICAgICAg
dmFsdWU6IGAtJHtsYXJnZU1vbmV5fWAsCi0gICAgICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgIGxhYmVsOiAiIiwKLSAgICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAg
ICAgIGN1cnJlbmN5OiAiQVVEIiwKLSAgICAgICAgICAgIHZhbHVlOiBgLSR7bGFyZ2VNb25leX0u
JHtsYXJnZU1vbmV5fWAsCi0gICAgICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAgIF0sCi0gICAg
fSk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICBgc2hv
dWxkbid0IHRocm93IHdoZW4gZ2l2ZW4gYWJzdXJkIG1vbmV0YXJ5IHZhbHVlczogJHtlcnIubWVz
c2FnZX1gCi0gICAgKTsKLSAgfQotfSwgIml0IGhhbmRsZXMgaGlnaCBwcmVjaXNpb24gY3VycmVu
Y3kgdmFsdWVzIHdpdGhvdXQgdGhyb3dpbmciKTsKLQotLy8gUHJvY2VzcyBzaGlwcGluZyBvcHRp
b25zOgotCi1jb25zdCBkZWZhdWx0U2hpcHBpbmdPcHRpb24gPSBPYmplY3QuZnJlZXplKHsKLSAg
aWQ6ICJkZWZhdWx0IiwKLSAgbGFiZWw6ICIiLAotICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi0g
IHNlbGVjdGVkOiBmYWxzZSwKLX0pOwotY29uc3QgZGVmYXVsdFNoaXBwaW5nT3B0aW9ucyA9IE9i
amVjdC5mcmVlemUoWwotICBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24p
LAotXSk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgZm9yIChjb25zdCBhbW91
bnQgb2YgaW52YWxpZEFtb3VudHMpIHsKLSAgICBjb25zdCBpbnZhbGlkQW1vdW50ID0gT2JqZWN0
LmFzc2lnbih7fSwgZGVmYXVsdEFtb3VudCwgewotICAgICAgdmFsdWU6IGFtb3VudCwKLSAgICB9
KTsKLSAgICBjb25zdCBpbnZhbGlkU2hpcHBpbmdPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBk
ZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICAgIGFtb3VudDogaW52YWxpZEFtb3VudCwKLSAg
ICB9KTsKLSAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFp
bHMsIHsKLSAgICAgIHNoaXBwaW5nT3B0aW9uczogW2ludmFsaWRTaGlwcGluZ09wdGlvbl0sCi0g
ICAgfSk7Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAgICAgIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAg
ICgpID0+IHsKLSAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRh
aWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKLSAgICAgIH0sCi0gICAgICBgRXhwZWN0
ZWQgVHlwZUVycm9yIGZvciBvcHRpb24uYW1vdW50LnZhbHVlOiAiJHthbW91bnR9ImAKLSAgICAp
OwotICB9Ci19LCBgRm9yIGVhY2ggb3B0aW9uIGluIGRldGFpbHMuc2hpcHBpbmdPcHRpb25zOiBp
ZiBvcHRpb24uYW1vdW50LnZhbHVlIGlzIG5vdCBhIHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkgdmFs
dWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3JgKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVz
dCgpOwotICBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSBbZGVmYXVsdFNoaXBwaW5nT3B0aW9uXTsK
LSAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNo
aXBwaW5nT3B0aW9ucyB9KTsKLSAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdC5z
aGlwcGluZ09wdGlvbiwKLSAgICBudWxsLAotICAgICJzaGlwcGluZ09wdGlvbiBtdXN0IGJlIG51
bGwsIGFzIHJlcXVlc3RTaGlwcGluZyBpcyBtaXNzaW5nIgotICApOwotICAvLyBkZWZhdWx0RGV0
YWlscyBsYWNrcyBzaGlwcGluZyBvcHRpb25zCi0gIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgewotICAgIHJlcXVlc3RT
aGlwcGluZzogdHJ1ZSwKLSAgfSk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdDIuc2hp
cHBpbmdPcHRpb24sCi0gICAgbnVsbCwKLSAgICBgcmVxdWVzdDIuc2hpcHBpbmdPcHRpb24gbXVz
dCBiZSBudWxsYAotICApOwotfSwgIklmIHRoZXJlIGlzIG5vIHNlbGVjdGVkIHNoaXBwaW5nIG9w
dGlvbiwgdGhlbiBQYXltZW50UmVxdWVzdC5zaGlwcGluZ09wdGlvbiByZW1haW5zIG51bGwiKTsK
LQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9
IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgewotICAgIHNlbGVjdGVk
OiB0cnVlLAotICAgIGlkOiAidGhlLWlkIiwKLSAgfSk7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9u
cyA9IFtzZWxlY3RlZE9wdGlvbl07Ci0gIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9
LCBkZWZhdWx0RGV0YWlscywgeyBzaGlwcGluZ09wdGlvbnMgfSk7Ci0gIGNvbnN0IHJlcXVlc3RO
b1NoaXBwaW5nUmVxdWVzdGVkMSA9IG5ldyBQYXltZW50UmVxdWVzdCgKLSAgICBkZWZhdWx0TWV0
aG9kcywKLSAgICBkZXRhaWxzCi0gICk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdE5v
U2hpcHBpbmdSZXF1ZXN0ZWQxLnNoaXBwaW5nT3B0aW9uLAotICAgIG51bGwsCi0gICAgIk11c3Qg
YmUgbnVsbCB3aGVuIG5vIHNoaXBwaW5nIGlzIHJlcXVlc3RlZCAoZGVmYXVsdHMgdG8gZmFsc2Up
IgotICApOwotICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZ1JlcXVlc3RlZDIgPSBuZXcgUGF5bWVu
dFJlcXVlc3QoCi0gICAgZGVmYXVsdE1ldGhvZHMsCi0gICAgZGV0YWlscywKLSAgICB7IHJlcXVl
c3RTaGlwcGluZzogZmFsc2UgfQotICApOwotICBhc3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3RO
b1NoaXBwaW5nUmVxdWVzdGVkMi5zaGlwcGluZ09wdGlvbiwKLSAgICBudWxsLAotICAgICJNdXN0
IGJlIG51bGwgd2hlbiByZXF1ZXN0U2hpcHBpbmcgaXMgZmFsc2UiCi0gICk7Ci0gIGNvbnN0IHJl
cXVlc3RXaXRoU2hpcHBpbmcgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
dGFpbHMsIHsKLSAgICByZXF1ZXN0U2hpcHBpbmc6ICJ0cnV0aHkgdmFsdWUiLAotICB9KTsKLSAg
YXNzZXJ0X2VxdWFscygKLSAgICByZXF1ZXN0V2l0aFNoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAot
ICAgICJ0aGUtaWQiLAotICAgICJTZWxlY3RlZCBvcHRpb24gbXVzdCBiZSAndGhlLWlkJyIKLSAg
KTsKLX0sICJJZiB0aGVyZSBpcyBhIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbiwgYW5kIHJlcXVl
c3RTaGlwcGluZyBpcyBzZXQsIHRoZW4gdGhhdCBvcHRpb24gYmVjb21lcyBzeW5jaHJvbm91c2x5
IHNlbGVjdGVkIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgZmFp
bE9wdGlvbjEgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAg
ICBzZWxlY3RlZDogdHJ1ZSwKLSAgICBpZDogIkZBSUwxIiwKLSAgfSk7Ci0gIGNvbnN0IGZhaWxP
cHRpb24yID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uLCB7Ci0gICAg
c2VsZWN0ZWQ6IGZhbHNlLAotICAgIGlkOiAiRkFJTDIiLAotICB9KTsKLSAgY29uc3QgcGFzc09w
dGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgewotICAgIHNl
bGVjdGVkOiB0cnVlLAotICAgIGlkOiAidGhlLWlkIiwKLSAgfSk7Ci0gIGNvbnN0IHNoaXBwaW5n
T3B0aW9ucyA9IFtmYWlsT3B0aW9uMSwgZmFpbE9wdGlvbjIsIHBhc3NPcHRpb25dOwotICBjb25z
dCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdP
cHRpb25zIH0pOwotICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgewotICAgIHJlcXVlc3RTaGlwcGluZzogZmFsc2Us
Ci0gIH0pOwotICBhc3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3ROb1NoaXBwaW5nLnNoaXBwaW5n
T3B0aW9uLAotICAgIG51bGwsCi0gICAgInNoaXBwaW5nT3B0aW9uIG11c3QgYmUgbnVsbCwgYXMg
cmVxdWVzdFNoaXBwaW5nIGlzIGZhbHNlIgotICApOwotICBjb25zdCByZXF1ZXN0V2l0aFNoaXBw
aW5nID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7Ci0gICAg
cmVxdWVzdFNoaXBwaW5nOiB0cnVlLAotICB9KTsKLSAgYXNzZXJ0X2VxdWFscygKLSAgICByZXF1
ZXN0V2l0aFNoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAotICAgICJ0aGUtaWQiLAotICAgICJzZWxl
Y3RlZCBvcHRpb24gbXVzdCAndGhlLWlkIgotICApOwotfSwgIklmIHJlcXVlc3RTaGlwcGluZyBp
cyBzZXQsIGFuZCBpZiB0aGVyZSBpcyBhIG11bHRpcGxlIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlv
bnMsIG9ubHkgdGhlIGxhc3QgaXMgc2VsZWN0ZWQuIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9r
ZVRlc3QoKTsKLSAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZh
dWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICBzZWxlY3RlZDogdHJ1ZSwKLSAgfSk7Ci0gIGNvbnN0
IHVuc2VsZWN0ZWRPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRp
b24sIHsKLSAgICBzZWxlY3RlZDogZmFsc2UsCi0gIH0pOwotICBjb25zdCBzaGlwcGluZ09wdGlv
bnMgPSBbc2VsZWN0ZWRPcHRpb24sIHVuc2VsZWN0ZWRPcHRpb25dOwotICBjb25zdCBkZXRhaWxz
ID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0p
OwotICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscyk7Ci0gIGFzc2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdE5vU2hpcHBp
bmcuc2hpcHBpbmdPcHRpb24sCi0gICAgbnVsbCwKLSAgICAic2hpcHBpbmdPcHRpb24gbXVzdCBi
ZSBudWxsLCBiZWNhdXNlIHJlcXVlc3RTaGlwcGluZyBpcyBmYWxzZSIKLSAgKTsKLSAgYXNzZXJ0
X3Rocm93cygKLSAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgKCkgPT4gewotICAgICAgbmV3IFBh
eW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzog
dHJ1ZSB9KTsKLSAgICB9LAotICAgICJFeHBlY3RlZCB0byB0aHJvdyBhIFR5cGVFcnJvciBiZWNh
dXNlIGR1cGxpY2F0ZSBJRHMiCi0gICk7Ci19LCAiSWYgdGhlcmUgYXJlIGFueSBkdXBsaWNhdGUg
c2hpcHBpbmcgb3B0aW9uIGlkcywgYW5kIHNoaXBwaW5nIGlzIHJlcXVlc3RlZCwgdGhlbiB0aHJv
dyBhIFR5cGVFcnJvciIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGNvbnN0
IGR1cFNoaXBwaW5nMSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwg
ewotICAgIHNlbGVjdGVkOiB0cnVlLAotICAgIGlkOiAiRFVQTElDQVRFIiwKLSAgICBsYWJlbDog
IkZhaWwgMSIsCi0gIH0pOwotICBjb25zdCBkdXBTaGlwcGluZzIgPSBPYmplY3QuYXNzaWduKHt9
LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICBzZWxlY3RlZDogZmFsc2UsCi0gICAgaWQ6
ICJEVVBMSUNBVEUiLAotICAgIGxhYmVsOiAiRmFpbCAyIiwKLSAgfSk7Ci0gIGNvbnN0IHNoaXBw
aW5nT3B0aW9ucyA9IFtkdXBTaGlwcGluZzEsIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgZHVwU2hp
cHBpbmcyXTsKLSAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRh
aWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKLSAgY29uc3QgcmVxdWVzdE5vU2hpcHBpbmcgPSBu
ZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOwotICBhc3NlcnRfZXF1
YWxzKAotICAgIHJlcXVlc3ROb1NoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAotICAgIG51bGwsCi0g
ICAgInNoaXBwaW5nT3B0aW9uIG11c3QgYmUgbnVsbCwgYmVjYXVzZSByZXF1ZXN0U2hpcHBpbmcg
aXMgZmFsc2UiCi0gICk7Ci0gIGFzc2VydF90aHJvd3MoCi0gICAgbmV3IFR5cGVFcnJvcigpLAot
ICAgICgpID0+IHsKLSAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0
YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfSk7Ci0gICAgfSwKLSAgICAiRXhwZWN0ZWQg
dG8gdGhyb3cgYSBUeXBlRXJyb3IgYmVjYXVzZSBkdXBsaWNhdGUgSURzIgotICApOwotfSwgIlRo
cm93IHdoZW4gdGhlcmUgYXJlIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbiBpZHMsIGV2ZW4gaWYg
b3RoZXIgdmFsdWVzIGFyZSBkaWZmZXJlbnQiKTsKLQotLy8gUHJvY2VzcyBwYXltZW50IGRldGFp
bHMgbW9kaWZpZXJzOgotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBmb3IgKGNvbnN0
IGludmFsaWRUb3RhbCBvZiBpbnZhbGlkVG90YWxBbW91bnRzKSB7Ci0gICAgY29uc3QgaW52YWxp
ZE1vZGlmaWVyID0gewotICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aS9w
YXltZW50LXJlcXVlc3QiLAotICAgICAgdG90YWw6IHsKLSAgICAgICAgbGFiZWw6ICIiLAotICAg
ICAgICBhbW91bnQ6IHsKLSAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCi0gICAgICAgICAgdmFs
dWU6IGludmFsaWRUb3RhbCwKLSAgICAgICAgfSwKLSAgICAgIH0sCi0gICAgfTsKLSAgICBhc3Nl
cnRfdGhyb3dzKAotICAgICAgbmV3IFR5cGVFcnJvcigpLAotICAgICAgKCkgPT4gewotICAgICAg
ICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIHsKLSAgICAgICAgICBtb2RpZmll
cnM6IFtpbnZhbGlkTW9kaWZpZXJdLAotICAgICAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0g
ICAgICAgIH0pOwotICAgICAgfSwKLSAgICAgIGBFeHBlY3RlZCBUeXBlRXJyb3IgZm9yIG1vZGlm
aWVyLnRvdGFsLmFtb3VudC52YWx1ZTogIiR7aW52YWxpZFRvdGFsfSJgCi0gICAgKTsKLSAgfQot
fSwgYFRocm93IFR5cGVFcnJvciBpZiBtb2RpZmllci50b3RhbC5hbW91bnQudmFsdWUgaXMgbm90
IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZWApOwotCi10ZXN0KCgpID0+IHsKLSAgc21v
a2VUZXN0KCk7Ci0gIGZvciAoY29uc3QgaW52YWxpZEFtb3VudCBvZiBpbnZhbGlkQW1vdW50cykg
ewotICAgIGNvbnN0IGludmFsaWRNb2RpZmllciA9IHsKLSAgICAgIHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwKLSAgICAgIHRvdGFsOiBkZWZhdWx0
VG90YWwsCi0gICAgICBhZGRpdGlvbmFsRGlzcGxheUl0ZW1zOiBbCi0gICAgICAgIHsKLSAgICAg
ICAgICBsYWJlbDogIiIsCi0gICAgICAgICAgYW1vdW50OiB7Ci0gICAgICAgICAgICBjdXJyZW5j
eTogIlVTRCIsCi0gICAgICAgICAgICB2YWx1ZTogaW52YWxpZEFtb3VudCwKLSAgICAgICAgICB9
LAotICAgICAgICB9LAotICAgICAgXSwKLSAgICB9OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAg
ICBuZXcgVHlwZUVycm9yKCksCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQYXltZW50UmVx
dWVzdChkZWZhdWx0TWV0aG9kcywgewotICAgICAgICAgIG1vZGlmaWVyczogW2ludmFsaWRNb2Rp
Zmllcl0sCi0gICAgICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgICAgfSk7Ci0gICAg
ICB9LAotICAgICAgYEV4cGVjdGVkIFR5cGVFcnJvciB3aGVuIGdpdmVuIGJvZ3VzIG1vZGlmaWVy
LmFkZGl0aW9uYWxEaXNwbGF5SXRlbXMuYW1vdW50IG9mICIke2ludmFsaWRNb2RpZmllcn0iYAot
ICAgICk7Ci0gIH0KLX0sIGBJZiBhbW91bnQudmFsdWUgb2YgYWRkaXRpb25hbERpc3BsYXlJdGVt
cyBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlw
ZUVycm9yYCk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgbW9kaWZp
ZWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsKLSAgICBtb2Rp
ZmllcnM6IFsKLSAgICAgIHsKLSAgICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vd3B0
LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICAgICBkYXRhOiBbInNvbWUtZGF0YSJdLAotICAg
ICAgfSwKLSAgICBdLAotICB9KTsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVm
YXVsdE1ldGhvZHMsIG1vZGlmaWVkRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFz
c2VydF91bnJlYWNoZWQoCi0gICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24gdGhyb3duIHdoZW4g
Z2l2ZW4gYSBsaXN0OiAke2Vyci5tZXNzYWdlfWAKLSAgICApOwotICB9Ci19LCAiTW9kaWZpZXIg
ZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAoYW4gQXJyYXkgaW4gdGhpcyBj
YXNlKSIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGNvbnN0IG1vZGlmaWVk
RGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7Ci0gICAgbW9kaWZp
ZXJzOiBbCi0gICAgICB7Ci0gICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5m
eWkvcGF5bWVudC1yZXF1ZXN0IiwKLSAgICAgICAgZGF0YTogewotICAgICAgICAgIHNvbWU6ICJk
YXRhIiwKLSAgICAgICAgfSwKLSAgICAgIH0sCi0gICAgXSwKLSAgfSk7Ci0gIHRyeSB7Ci0gICAg
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBtb2RpZmllZERldGFpbHMpOwotICB9
IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKAotICAgICAgYHNob3VsZG4ndCB0
aHJvdyB3aGVuIGdpdmVuIGFuIG9iamVjdCB2YWx1ZTogJHtlcnIubWVzc2FnZX1gCi0gICAgKTsK
LSAgfQotfSwgIk1vZGlmaWVyIGRhdGEgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3Qg
KGFuIE9iamVjdCBpbiB0aGlzIGNhc2UpIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3Qo
KTsKLSAgY29uc3QgcmVjdXJzaXZlRGljdGlvbmFyeSA9IHt9OwotICByZWN1cnNpdmVEaWN0aW9u
YXJ5LmZvbyA9IHJlY3Vyc2l2ZURpY3Rpb25hcnk7Ci0gIGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9
IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7Ci0gICAgbW9kaWZpZXJzOiBbCi0g
ICAgICB7Ci0gICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVu
dC1yZXF1ZXN0IiwKLSAgICAgICAgZGF0YTogcmVjdXJzaXZlRGljdGlvbmFyeSwKLSAgICAgIH0s
Ci0gICAgXSwKLSAgfSk7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7
Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBtb2RpZmllZERldGFpbHMp
OwotICB9KTsKLX0sICJSZXRocm93IGFueSBleGNlcHRpb25zIG9mIEpTT04tc2VyaWFsaXppbmcg
bW9kaWZpZXIuZGF0YSIpOwotCi0vL1NldHRpbmcgU2hpcHBpbmdUeXBlIGF0dHJpYnV0ZSBkdXJp
bmcgY29uc3RydWN0aW9uCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGFzc2VydF90
aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRl
ZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgewotICAgICAgc2hpcHBpbmdUeXBlOiAiaW52
YWxpZCIsCi0gICAgfSk7Ci0gIH0pOwotfSwgIlNoaXBwaW5nIHR5cGUgc2hvdWxkIGJlIHZhbGlk
Iik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHt9KTsKLSAg
YXNzZXJ0X2VxdWFscyhyZXF1ZXN0LnNoaXBwaW5nQWRkcmVzcywgbnVsbCwgIm11c3QgYmUgbnVs
bCIpOwotfSwgIlBheW1lbnRSZXF1ZXN0LnNoaXBwaW5nQWRkcmVzcyBtdXN0IGluaXRpYWxseSBi
ZSBudWxsIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgcmVxdWVz
dDEgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7
fSk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVzdDEuc2hpcHBpbmdUeXBlLCBudWxsLCAibXVzdCBi
ZSBudWxsIik7Ci0gIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRN
ZXRob2RzLCBkZWZhdWx0RGV0YWlscywgewotICAgIHJlcXVlc3RTaGlwcGluZzogZmFsc2UsCi0g
IH0pOwotICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QyLnNoaXBwaW5nVHlwZSwgbnVsbCwgIm11c3Qg
YmUgbnVsbCIpOwotfSwgIklmIG9wdGlvbnMucmVxdWVzdFNoaXBwaW5nIGlzIG5vdCBzZXQsIHRo
ZW4gcmVxdWVzdC5zaGlwcGluZ1R5cGUgYXR0cmlidXRlIGlzIG51bGwuIik7Ci0KLXRlc3QoKCkg
PT4gewotICBzbW9rZVRlc3QoKTsKLSAgLy8gb3B0aW9uLnNoaXBwaW5nVHlwZSBkZWZhdWx0cyB0
byAnc2hpcHBpbmcnCi0gIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgewotICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwK
LSAgfSk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVzdDEuc2hpcHBpbmdUeXBlLCAic2hpcHBpbmci
LCAibXVzdCBiZSBzaGlwcGluZyIpOwotICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVx
dWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHsKLSAgICByZXF1ZXN0U2hpcHBp
bmc6IHRydWUsCi0gICAgc2hpcHBpbmdUeXBlOiAiZGVsaXZlcnkiLAotICB9KTsKLSAgYXNzZXJ0
X2VxdWFscyhyZXF1ZXN0Mi5zaGlwcGluZ1R5cGUsICJkZWxpdmVyeSIsICJtdXN0IGJlIGRlbGl2
ZXJ5Iik7Ci19LCAiSWYgb3B0aW9ucy5yZXF1ZXN0U2hpcHBpbmcgaXMgdHJ1ZSwgcmVxdWVzdC5z
aGlwcGluZ1R5cGUgd2lsbCBiZSBvcHRpb25zLnNoaXBwaW5nVHlwZS4iKTsKLQotPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci5odHRwcy5zdWItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzYzBhYTI0NmY0YmM5NzY5ZDE2ZGU4NWZkZTM4ZDJlMGI1
OTFmODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3Iu
aHR0cHMuc3ViLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACisKK1BBU1MgSWYgZGV0YWls
cy5pZCBpcyBtaXNzaW5nLCBhc3NpZ24gYW4gaWRlbnRpZmllciAKK1BBU1MgSWYgZGV0YWlscy5p
ZCBpcyBtaXNzaW5nLCBhc3NpZ24gYSB1bmlxdWUgaWRlbnRpZmllciAKK1BBU1MgSWYgdGhlIHNh
bWUgaWQgaXMgcHJvdmlkZWQsIHRoZW4gdXNlIGl0IAorUEFTUyBVc2UgaWRzIGV2ZW4gaWYgdGhl
eSBhcmUgc3RyYW5nZSAKK1BBU1MgVXNlIHByb3ZpZGVkIHJlcXVlc3QgSUQgCitQQVNTIElmIHRo
ZSBsZW5ndGggb2YgdGhlIG1ldGhvZERhdGEgc2VxdWVuY2UgaXMgemVybywgdGhlbiB0aHJvdyBh
IFR5cGVFcnJvciAKK0ZBSUwgSWYgcGF5bWVudCBtZXRob2QgaXMgZHVwbGljYXRlLCB0aGVuIHRo
cm93IGEgUmFuZ2VFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gbmV3IFBh
eW1lbnRSZXF1ZXN0KGR1cGxpY2F0ZU1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKSIgZGlkIG5vdCB0
aHJvdworUEFTUyBNb2RpZmllciBtZXRob2QgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxl
IG9iamVjdCAKK1BBU1MgUmV0aHJvdyBhbnkgZXhjZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6aW5n
IHBheW1lbnRNZXRob2QuZGF0YSBpbnRvIGEgc3RyaW5nIAorUEFTUyBJZiBkZXRhaWxzLnRvdGFs
LmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVu
IHRocm93IGEgVHlwZUVycm9yIAorUEFTUyBQYXltZW50RGV0YWlsc0Jhc2UgbWVtYmVycyBjYW4g
YmUgMCBsZW5ndGggCitQQVNTIElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgZGV0YWlscy50b3Rh
bC5hbW91bnQudmFsdWUgaXMgVSswMDJEIEhZUEhFTi1NSU5VUywgdGhlbiB0aHJvdyBhIFR5cGVF
cnJvciAKK1BBU1MgRm9yIGVhY2ggaXRlbSBpbiBkZXRhaWxzLmRpc3BsYXlJdGVtczogaWYgaXRl
bS5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhl
biB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgTmVnYXRpdmUgdmFsdWVzIGFyZSBhbGxvd2VkIGZv
ciBkaXNwbGF5SXRlbXMuYW1vdW50LnZhbHVlLCBpcnJlc3BlY3RpdmUgb2YgdG90YWwgYW1vdW50
IAorUEFTUyBpdCBoYW5kbGVzIGhpZ2ggcHJlY2lzaW9uIGN1cnJlbmN5IHZhbHVlcyB3aXRob3V0
IHRocm93aW5nIAorUEFTUyBGb3IgZWFjaCBvcHRpb24gaW4gZGV0YWlscy5zaGlwcGluZ09wdGlv
bnM6IGlmIG9wdGlvbi5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFy
eSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgSWYgdGhlcmUgaXMgbm8gc2Vs
ZWN0ZWQgc2hpcHBpbmcgb3B0aW9uLCB0aGVuIFBheW1lbnRSZXF1ZXN0LnNoaXBwaW5nT3B0aW9u
IHJlbWFpbnMgbnVsbCAKK1BBU1MgSWYgdGhlcmUgaXMgYSBzZWxlY3RlZCBzaGlwcGluZyBvcHRp
b24sIGFuZCByZXF1ZXN0U2hpcHBpbmcgaXMgc2V0LCB0aGVuIHRoYXQgb3B0aW9uIGJlY29tZXMg
c3luY2hyb25vdXNseSBzZWxlY3RlZCAKK1BBU1MgSWYgcmVxdWVzdFNoaXBwaW5nIGlzIHNldCwg
YW5kIGlmIHRoZXJlIGlzIGEgbXVsdGlwbGUgc2VsZWN0ZWQgc2hpcHBpbmcgb3B0aW9ucywgb25s
eSB0aGUgbGFzdCBpcyBzZWxlY3RlZC4gCitQQVNTIElmIHRoZXJlIGFyZSBhbnkgZHVwbGljYXRl
IHNoaXBwaW5nIG9wdGlvbiBpZHMsIGFuZCBzaGlwcGluZyBpcyByZXF1ZXN0ZWQsIHRoZW4gdGhy
b3cgYSBUeXBlRXJyb3IgCitQQVNTIFRocm93IHdoZW4gdGhlcmUgYXJlIGR1cGxpY2F0ZSBzaGlw
cGluZ09wdGlvbiBpZHMsIGV2ZW4gaWYgb3RoZXIgdmFsdWVzIGFyZSBkaWZmZXJlbnQgCitQQVNT
IFRocm93IFR5cGVFcnJvciBpZiBtb2RpZmllci50b3RhbC5hbW91bnQudmFsdWUgaXMgbm90IGEg
dmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSAKK1BBU1MgSWYgYW1vdW50LnZhbHVlIG9mIGFk
ZGl0aW9uYWxEaXNwbGF5SXRlbXMgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1
ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpT
T04tc2VyaWFsaXphYmxlIG9iamVjdCAoYW4gQXJyYXkgaW4gdGhpcyBjYXNlKSAKK1BBU1MgTW9k
aWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAoYW4gT2JqZWN0IGlu
IHRoaXMgY2FzZSkgCitQQVNTIFJldGhyb3cgYW55IGV4Y2VwdGlvbnMgb2YgSlNPTi1zZXJpYWxp
emluZyBtb2RpZmllci5kYXRhIAorUEFTUyBTaGlwcGluZyB0eXBlIHNob3VsZCBiZSB2YWxpZCAK
K1BBU1MgUGF5bWVudFJlcXVlc3Quc2hpcHBpbmdBZGRyZXNzIG11c3QgaW5pdGlhbGx5IGJlIG51
bGwgCitQQVNTIElmIG9wdGlvbnMucmVxdWVzdFNoaXBwaW5nIGlzIG5vdCBzZXQsIHRoZW4gcmVx
dWVzdC5zaGlwcGluZ1R5cGUgYXR0cmlidXRlIGlzIG51bGwuIAorUEFTUyBJZiBvcHRpb25zLnJl
cXVlc3RTaGlwcGluZyBpcyB0cnVlLCByZXF1ZXN0LnNoaXBwaW5nVHlwZSB3aWxsIGJlIG9wdGlv
bnMuc2hpcHBpbmdUeXBlLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0
cnVjdG9yLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0
dHBzLnN1Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMGFkMDY0NTRmOTMzMGJhNDExNWJmZjI5OTA2NDdi
NDdhZGJkMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0
b3IuaHR0cHMuc3ViLmh0bWwKQEAgLTAsMCArMSw2OTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEt
LSBDb3B5cmlnaHQgwqkgMjAxNyBDaHJvbWl1bSBhdXRob3JzIGFuZCBXb3JsZCBXaWRlIFdlYiBD
b25zb3J0aXVtLCAoTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRVJDSU0s
IEtlaW8gVW5pdmVyc2l0eSwgQmVpaGFuZykuIC0tPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPlRlc3QgZm9yIFBheW1lbnRSZXF1ZXN0IENvbnN0cnVjdG9yPC90aXRsZT4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1h
cGkvI2NvbnN0cnVjdG9yIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Citjb25zdCB0ZXN0TWV0aG9kID0g
T2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tu
b25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorfSk7Citjb25zdCBkZWZhdWx0TWV0aG9k
cyA9IE9iamVjdC5mcmVlemUoW3Rlc3RNZXRob2RdKTsKK2NvbnN0IGRlZmF1bHRBbW91bnQgPSBP
YmplY3QuZnJlZXplKHsKKyAgY3VycmVuY3k6ICJVU0QiLAorICB2YWx1ZTogIjEuMCIsCit9KTsK
K2NvbnN0IGRlZmF1bHROdW1iZXJBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKKyAgY3VycmVuY3k6
ICJVU0QiLAorICB2YWx1ZTogMS4wLAorfSk7Citjb25zdCBkZWZhdWx0VG90YWwgPSBPYmplY3Qu
ZnJlZXplKHsKKyAgbGFiZWw6ICJEZWZhdWx0IFRvdGFsIiwKKyAgYW1vdW50OiBkZWZhdWx0QW1v
dW50LAorfSk7Citjb25zdCBkZWZhdWx0TnVtYmVyVG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAg
bGFiZWw6ICJEZWZhdWx0IE51bWJlciBUb3RhbCIsCisgIGFtb3VudDogZGVmYXVsdE51bWJlckFt
b3VudCwKK30pOworY29uc3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKKyAgdG90
YWw6IGRlZmF1bHRUb3RhbCwKKyAgZGlzcGxheUl0ZW1zOiBbCisgICAgeworICAgICAgbGFiZWw6
ICJEZWZhdWx0IERpc3BsYXkgSXRlbSIsCisgICAgICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCisg
ICAgfSwKKyAgXSwKK30pOworY29uc3QgZGVmYXVsdE51bWJlckRldGFpbHMgPSBPYmplY3QuZnJl
ZXplKHsKKyAgdG90YWw6IGRlZmF1bHROdW1iZXJUb3RhbCwKKyAgZGlzcGxheUl0ZW1zOiBbCisg
ICAgeworICAgICAgbGFiZWw6ICJEZWZhdWx0IERpc3BsYXkgSXRlbSIsCisgICAgICBhbW91bnQ6
IGRlZmF1bHROdW1iZXJBbW91bnQsCisgICAgfSwKKyAgXSwKK30pOworCisvLyBBdm9pZCBmYWxz
ZSBwb3NpdGl2ZXMsIHRoaXMgc2hvdWxkIGFsd2F5cyBwYXNzCitmdW5jdGlvbiBzbW9rZVRlc3Qo
KSB7CisgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMp
OworICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHROdW1iZXJEZXRh
aWxzKTsKK30KK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgcmVxdWVzdCA9
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBh
c3NlcnRfdHJ1ZShCb29sZWFuKHJlcXVlc3QuaWQpLCAibXVzdCBiZSBzb21lIHRydXRoeSB2YWx1
ZSIpOworfSwgIklmIGRldGFpbHMuaWQgaXMgbWlzc2luZywgYXNzaWduIGFuIGlkZW50aWZpZXIi
KTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCByZXF1ZXN0MSA9IG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25z
dCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERl
dGFpbHMpOworICBhc3NlcnRfbm90X2VxdWFscyhyZXF1ZXN0MS5pZCwgcmVxdWVzdDIuaWQsICJV
QSBnZW5lcmF0ZWQgSUQgbXVzdCBiZSB1bmlxdWUiKTsKKyAgY29uc3Qgc2VlbiA9IG5ldyBTZXQo
KTsKKyAgLy8gTGV0J3MgdHJ5IGNyZWF0aW5nIGxvdHMgb2YgcmVxdWVzdHMsIGFuZCBtYWtlIHN1
cmUgdGhleSBhcmUgYWxsIHVuaXF1ZQorICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMjQ7IGkrKykg
eworICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKTsKKyAgICBhc3NlcnRfZmFsc2UoCisgICAgICBzZWVuLmhhcyhyZXF1
ZXN0LmlkKSwKKyAgICAgIGBVQSBnZW5lcmF0ZWQgSUQgbXVzdCBiZSB1bmlxdWUsIGJ1dCBnb3Qg
ZHVwbGljYXRlISAoJHtyZXF1ZXN0LmlkfSlgCisgICAgKTsKKyAgICBzZWVuLmFkZChyZXF1ZXN0
LmlkKTsKKyAgfQorfSwgIklmIGRldGFpbHMuaWQgaXMgbWlzc2luZywgYXNzaWduIGEgdW5pcXVl
IGlkZW50aWZpZXIiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBu
ZXdEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgaWQ6ICJ0ZXN0
MTIzIiB9KTsKKyAgY29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIG5ld0RldGFpbHMpOworICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgbmV3RGV0YWlscyk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdDEu
aWQsIG5ld0RldGFpbHMuaWQsIGBpZCBtdXN0IGJlICR7bmV3RGV0YWlscy5pZH1gKTsKKyAgYXNz
ZXJ0X2VxdWFscyhyZXF1ZXN0Mi5pZCwgbmV3RGV0YWlscy5pZCwgYGlkIG11c3QgYmUgJHtuZXdE
ZXRhaWxzLmlkfWApOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QxLmlkLCByZXF1ZXN0Mi5pZCwg
ImlkcyBuZWVkIHRvIGJlIHRoZSBzYW1lIik7Cit9LCAiSWYgdGhlIHNhbWUgaWQgaXMgcHJvdmlk
ZWQsIHRoZW4gdXNlIGl0Iik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29u
c3QgbmV3RGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7CisgICAg
aWQ6ICIiLnBhZFN0YXJ0KDEwMjQsICJhIiksCisgIH0pOworICBjb25zdCByZXF1ZXN0ID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBuZXdEZXRhaWxzKTsKKyAgYXNzZXJ0X2Vx
dWFscygKKyAgICByZXF1ZXN0LmlkLAorICAgIG5ld0RldGFpbHMuaWQsCisgICAgYGlkIG11c3Qg
YmUgcHJvdmlkZWQgdmFsdWUsIGV2ZW4gaWYgdmVyeSBsb25nIGFuZCBjb250YWluIHNwYWNlc2AK
KyAgKTsKK30sICJVc2UgaWRzIGV2ZW4gaWYgdGhleSBhcmUgc3RyYW5nZSIpOworCit0ZXN0KCgp
ID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVl
c3QoCisgICAgZGVmYXVsdE1ldGhvZHMsCisgICAgT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERl
dGFpbHMsIHsgaWQ6ICJmb28iIH0pCisgICk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5pZCwg
ImZvbyIpOworfSwgIlVzZSBwcm92aWRlZCByZXF1ZXN0IElEIik7CisKK3Rlc3QoKCkgPT4gewor
ICBzbW9rZVRlc3QoKTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IG5ldyBQ
YXltZW50UmVxdWVzdChbXSwgZGVmYXVsdERldGFpbHMpKTsKK30sICJJZiB0aGUgbGVuZ3RoIG9m
IHRoZSBtZXRob2REYXRhIHNlcXVlbmNlIGlzIHplcm8sIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3Ii
KTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBkdXBsaWNhdGVNZXRo
b2RzID0gWworICAgIHsKKyAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWlu
c1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAgIH0sCisgICAgeworICAgICAg
c3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1l
bnQtcmVxdWVzdCIsCisgICAgfSwKKyAgXTsKKyAgYXNzZXJ0X3Rocm93c19qcyhSYW5nZUVycm9y
LCAoKSA9PiBuZXcgUGF5bWVudFJlcXVlc3QoZHVwbGljYXRlTWV0aG9kcywgZGVmYXVsdERldGFp
bHMpKTsKK30sICJJZiBwYXltZW50IG1ldGhvZCBpcyBkdXBsaWNhdGUsIHRoZW4gdGhyb3cgYSBS
YW5nZUVycm9yIik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgSlNP
TlNlcmlhbGl6YWJsZXMgPSBbW10sIHsgb2JqZWN0OiB7fSB9XTsKKyAgZm9yIChjb25zdCBkYXRh
IG9mIEpTT05TZXJpYWxpemFibGVzKSB7CisgICAgdHJ5IHsKKyAgICAgIGNvbnN0IG1ldGhvZHMg
PSBbCisgICAgICAgIHsKKyAgICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2Rv
bWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAgICAgICBkYXRhLAor
ICAgICAgICB9LAorICAgICAgXTsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBk
ZWZhdWx0RGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFj
aGVkKAorICAgICAgICBgVW5leHBlY3RlZCBlcnJvciBwYXJzaW5nIHN0cmluZ2lmaWFibGUgSlNP
TjogJHtKU09OLnN0cmluZ2lmeSgKKyAgICAgICAgICBkYXRhCisgICAgICAgICl9OiAke2Vyci5t
ZXNzYWdlfWAKKyAgICAgICk7CisgICAgfQorICB9Cit9LCAiTW9kaWZpZXIgbWV0aG9kIGRhdGEg
bXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3QiKTsKKwordGVzdCgoKSA9PiB7CisgIHNt
b2tlVGVzdCgpOworICBjb25zdCByZWN1cnNpdmVEaWN0aW9uYXJ5ID0ge307CisgIHJlY3Vyc2l2
ZURpY3Rpb25hcnkuZm9vID0gcmVjdXJzaXZlRGljdGlvbmFyeTsKKyAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsICgpID0+IHsKKyAgICBjb25zdCBtZXRob2RzID0gWworICAgICAgeworICAg
ICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0v
cGF5bWVudC1yZXF1ZXN0IiwKKyAgICAgICAgZGF0YTogcmVjdXJzaXZlRGljdGlvbmFyeSwKKyAg
ICAgIH0sCisgICAgXTsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERl
dGFpbHMpOworICB9KTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKKyAg
ICBjb25zdCBtZXRob2RzID0gWworICAgICAgeworICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAi
aHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAg
ICAgZGF0YTogImEgc3RyaW5nIiwKKyAgICAgIH0sCisgICAgXTsKKyAgICBuZXcgUGF5bWVudFJl
cXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICB9KTsKKyAgYXNzZXJ0X3Rocm93c19q
cygKKyAgICBUeXBlRXJyb3IsCisgICAgKCkgPT4geworICAgICAgY29uc3QgbWV0aG9kcyA9IFsK
KyAgICAgICAgeworICAgICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWlu
c1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAgICAgICAgIGRhdGE6IG51bGws
CisgICAgICAgIH0sCisgICAgICBdOworICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKTsKKyAgICB9LAorICAgICJFdmVuIHRob3VnaCBudWxsIGlzIEpTT04t
c2VyaWFsaXphYmxlLCBpdCdzIG5vdCB0eXBlICdPYmplY3QnIHBlciBFUyBzcGVjIgorICApOwor
fSwgIlJldGhyb3cgYW55IGV4Y2VwdGlvbnMgb2YgSlNPTi1zZXJpYWxpemluZyBwYXltZW50TWV0
aG9kLmRhdGEgaW50byBhIHN0cmluZyIpOworCisvLyBwcm9jZXNzIHRvdGFsCitjb25zdCBpbnZh
bGlkQW1vdW50cyA9IFsKKyAgIi0iLAorICAibm90ZGlnaXRzIiwKKyAgIkFMU09OT1RESUdJVFMi
LAorICAiMTAuIiwKKyAgIi45OSIsCisgICItMTAuIiwKKyAgIi0uOTkiLAorICAiMTAtIiwKKyAg
IjEtMCIsCisgICIxLjAuMCIsCisgICIxLzMiLAorICAiIiwKKyAgbnVsbCwKKyAgIiAxLjAgICIs
CisgICIgMS4wICIsCisgICIxLjAgIiwKKyAgIlVTRCQxLjAiLAorICAiJDEuMCIsCisgIHsKKyAg
ICB0b1N0cmluZygpIHsKKyAgICAgIHJldHVybiAiIDEuMCI7CisgICAgfSwKKyAgfSwKK107Citj
b25zdCBpbnZhbGlkVG90YWxBbW91bnRzID0gaW52YWxpZEFtb3VudHMuY29uY2F0KFsKKyAgIi0x
IiwKKyAgIi0xLjAiLAorICAiLTEuMDAiLAorICAiLTEwMDAuMDAwIiwKKyAgLTEwLAorXSk7Cit0
ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGZvciAoY29uc3QgaW52YWxpZEFtb3VudCBv
ZiBpbnZhbGlkVG90YWxBbW91bnRzKSB7CisgICAgY29uc3QgaW52YWxpZERldGFpbHMgPSB7Cisg
ICAgICB0b3RhbDogeworICAgICAgICBsYWJlbDogIiIsCisgICAgICAgIGFtb3VudDogeworICAg
ICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICB2YWx1ZTogaW52YWxpZEFtb3VudCwK
KyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAg
ICAgVHlwZUVycm9yLAorICAgICAgKCkgPT4geworICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIGludmFsaWREZXRhaWxzKTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0
IFR5cGVFcnJvciB3aGVuIGRldGFpbHMudG90YWwuYW1vdW50LnZhbHVlIGlzICR7aW52YWxpZEFt
b3VudH1gCisgICAgKTsKKyAgfQorfSwgYElmIGRldGFpbHMudG90YWwuYW1vdW50LnZhbHVlIGlz
IG5vdCBhIHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkgdmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJy
b3JgKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBmb3IgKGNvbnN0IHByb3Ag
aW4gWyJkaXNwbGF5SXRlbXMiLCAic2hpcHBpbmdPcHRpb25zIiwgIm1vZGlmaWVycyJdKSB7Cisg
ICAgdHJ5IHsKKyAgICAgIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0
RGV0YWlscywgeyBbcHJvcF06IFtdIH0pOworICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoYFBheW1lbnREZXRh
aWxzQmFzZS4ke3Byb3B9IGNhbiBiZSB6ZXJvIGxlbmd0aGApOworICAgIH0gY2F0Y2ggKGVycikg
e30KKyAgfQorfSwgYFBheW1lbnREZXRhaWxzQmFzZSBtZW1iZXJzIGNhbiBiZSAwIGxlbmd0aGAp
OworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGFzc2VydF90aHJvd3NfanMoVHlw
ZUVycm9yLCAoKSA9PiB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCB7
CisgICAgICB0b3RhbDogeworICAgICAgICBsYWJlbDogIiIsCisgICAgICAgIGFtb3VudDogewor
ICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICB2YWx1ZTogIi0xLjAwIiwKKyAg
ICAgICAgfSwKKyAgICAgIH0sCisgICAgfSk7CisgIH0pOworfSwgIklmIHRoZSBmaXJzdCBjaGFy
YWN0ZXIgb2YgZGV0YWlscy50b3RhbC5hbW91bnQudmFsdWUgaXMgVSswMDJEIEhZUEhFTi1NSU5V
UywgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0
KCk7CisgIGZvciAoY29uc3QgaW52YWxpZEFtb3VudCBvZiBpbnZhbGlkQW1vdW50cykgeworICAg
IGNvbnN0IGludmFsaWREZXRhaWxzID0geworICAgICAgdG90YWw6IGRlZmF1bHRBbW91bnQsCisg
ICAgICBkaXNwbGF5SXRlbXM6IFsKKyAgICAgICAgeworICAgICAgICAgIGxhYmVsOiAiIiwKKyAg
ICAgICAgICBhbW91bnQ6IHsKKyAgICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAg
ICAgIHZhbHVlOiBpbnZhbGlkQW1vdW50LAorICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAg
ICBdLAorICAgIH07CisgICAgYXNzZXJ0X3Rocm93c19qcygKKyAgICAgIFR5cGVFcnJvciwKKyAg
ICAgICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBp
bnZhbGlkRGV0YWlscyk7CisgICAgICB9LAorICAgICAgYEV4cGVjdGVkIFR5cGVFcnJvciB3aGVu
IGl0ZW0uYW1vdW50LnZhbHVlIGlzICIke2ludmFsaWRBbW91bnR9ImAKKyAgICApOworICB9Cit9
LCBgRm9yIGVhY2ggaXRlbSBpbiBkZXRhaWxzLmRpc3BsYXlJdGVtczogaWYgaXRlbS5hbW91bnQu
dmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBh
IFR5cGVFcnJvcmApOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIHRyeSB7Cisg
ICAgbmV3IFBheW1lbnRSZXF1ZXN0KAorICAgICAgWworICAgICAgICB7CisgICAgICAgICAgc3Vw
cG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQt
cmVxdWVzdCIsCisgICAgICAgIH0sCisgICAgICBdLAorICAgICAgeworICAgICAgICB0b3RhbDog
ZGVmYXVsdFRvdGFsLAorICAgICAgICBkaXNwbGF5SXRlbXM6IFsKKyAgICAgICAgICB7CisgICAg
ICAgICAgICBsYWJlbDogIiIsCisgICAgICAgICAgICBhbW91bnQ6IHsKKyAgICAgICAgICAgICAg
Y3VycmVuY3k6ICJVU0QiLAorICAgICAgICAgICAgICB2YWx1ZTogIi0xMDAwIiwKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogIiIs
CisgICAgICAgICAgICBhbW91bnQ6IHsKKyAgICAgICAgICAgICAgY3VycmVuY3k6ICJBVUQiLAor
ICAgICAgICAgICAgICB2YWx1ZTogIi0yMDAwLjAwIiwKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgfSwKKyAgICAgICAgXSwKKyAgICAgIH0KKyAgICApOworICB9IGNhdGNoIChlcnIpIHsKKyAg
ICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgYHNob3VsZG4ndCB0aHJvdyB3aGVuIGdpdmVuIGEg
bmVnYXRpdmUgdmFsdWU6ICR7ZXJyLm1lc3NhZ2V9YAorICAgICk7CisgIH0KK30sICJOZWdhdGl2
ZSB2YWx1ZXMgYXJlIGFsbG93ZWQgZm9yIGRpc3BsYXlJdGVtcy5hbW91bnQudmFsdWUsIGlycmVz
cGVjdGl2ZSBvZiB0b3RhbCBhbW91bnQiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgp
OworICBjb25zdCBsYXJnZU1vbmV5ID0gIjEiLnJlcGVhdCg1MTApOworICB0cnkgeworICAgIG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgeworICAgICAgdG90YWw6IHsKKyAgICAg
ICAgbGFiZWw6ICIiLAorICAgICAgICBhbW91bnQ6IHsKKyAgICAgICAgICBjdXJyZW5jeTogIlVT
RCIsCisgICAgICAgICAgdmFsdWU6IGAke2xhcmdlTW9uZXl9LiR7bGFyZ2VNb25leX1gLAorICAg
ICAgICB9LAorICAgICAgfSwKKyAgICAgIGRpc3BsYXlJdGVtczogWworICAgICAgICB7CisgICAg
ICAgICAgbGFiZWw6ICIiLAorICAgICAgICAgIGFtb3VudDogeworICAgICAgICAgICAgY3VycmVu
Y3k6ICJVU0QiLAorICAgICAgICAgICAgdmFsdWU6IGAtJHtsYXJnZU1vbmV5fWAsCisgICAgICAg
ICAgfSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGxhYmVsOiAiIiwKKyAgICAg
ICAgICBhbW91bnQ6IHsKKyAgICAgICAgICAgIGN1cnJlbmN5OiAiQVVEIiwKKyAgICAgICAgICAg
IHZhbHVlOiBgLSR7bGFyZ2VNb25leX0uJHtsYXJnZU1vbmV5fWAsCisgICAgICAgICAgfSwKKyAg
ICAgICAgfSwKKyAgICAgIF0sCisgICAgfSk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2Vy
dF91bnJlYWNoZWQoCisgICAgICBgc2hvdWxkbid0IHRocm93IHdoZW4gZ2l2ZW4gYWJzdXJkIG1v
bmV0YXJ5IHZhbHVlczogJHtlcnIubWVzc2FnZX1gCisgICAgKTsKKyAgfQorfSwgIml0IGhhbmRs
ZXMgaGlnaCBwcmVjaXNpb24gY3VycmVuY3kgdmFsdWVzIHdpdGhvdXQgdGhyb3dpbmciKTsKKwor
Ly8gUHJvY2VzcyBzaGlwcGluZyBvcHRpb25zOgorCitjb25zdCBkZWZhdWx0U2hpcHBpbmdPcHRp
b24gPSBPYmplY3QuZnJlZXplKHsKKyAgaWQ6ICJkZWZhdWx0IiwKKyAgbGFiZWw6ICIiLAorICBh
bW91bnQ6IGRlZmF1bHRBbW91bnQsCisgIHNlbGVjdGVkOiBmYWxzZSwKK30pOworY29uc3QgZGVm
YXVsdFNoaXBwaW5nT3B0aW9ucyA9IE9iamVjdC5mcmVlemUoWworICBPYmplY3QuYXNzaWduKHt9
LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pLAorXSk7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRl
c3QoKTsKKyAgZm9yIChjb25zdCBhbW91bnQgb2YgaW52YWxpZEFtb3VudHMpIHsKKyAgICBjb25z
dCBpbnZhbGlkQW1vdW50ID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdEFtb3VudCwgeworICAg
ICAgdmFsdWU6IGFtb3VudCwKKyAgICB9KTsKKyAgICBjb25zdCBpbnZhbGlkU2hpcHBpbmdPcHRp
b24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKKyAgICAgIGFt
b3VudDogaW52YWxpZEFtb3VudCwKKyAgICB9KTsKKyAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0
LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsKKyAgICAgIHNoaXBwaW5nT3B0aW9uczogW2lu
dmFsaWRTaGlwcGluZ09wdGlvbl0sCisgICAgfSk7CisgICAgYXNzZXJ0X3Rocm93c19qcygKKyAg
ICAgIFR5cGVFcnJvciwKKyAgICAgICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKKyAg
ICAgIH0sCisgICAgICBgRXhwZWN0ZWQgVHlwZUVycm9yIGZvciBvcHRpb24uYW1vdW50LnZhbHVl
OiAiJHthbW91bnR9ImAKKyAgICApOworICB9Cit9LCBgRm9yIGVhY2ggb3B0aW9uIGluIGRldGFp
bHMuc2hpcHBpbmdPcHRpb25zOiBpZiBvcHRpb24uYW1vdW50LnZhbHVlIGlzIG5vdCBhIHZhbGlk
IGRlY2ltYWwgbW9uZXRhcnkgdmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3JgKTsKKwordGVz
dCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSBbZGVm
YXVsdFNoaXBwaW5nT3B0aW9uXTsKKyAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30s
IGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKKyAgY29uc3QgcmVxdWVzdCA9
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgIGFzc2VydF9l
cXVhbHMoCisgICAgcmVxdWVzdC5zaGlwcGluZ09wdGlvbiwKKyAgICBudWxsLAorICAgICJzaGlw
cGluZ09wdGlvbiBtdXN0IGJlIG51bGwsIGFzIHJlcXVlc3RTaGlwcGluZyBpcyBtaXNzaW5nIgor
ICApOworICAvLyBkZWZhdWx0RGV0YWlscyBsYWNrcyBzaGlwcGluZyBvcHRpb25zCisgIGNvbnN0
IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0
YWlscywgeworICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwKKyAgfSk7CisgIGFzc2VydF9lcXVh
bHMoCisgICAgcmVxdWVzdDIuc2hpcHBpbmdPcHRpb24sCisgICAgbnVsbCwKKyAgICBgcmVxdWVz
dDIuc2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxsYAorICApOworfSwgIklmIHRoZXJlIGlzIG5v
IHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbiwgdGhlbiBQYXltZW50UmVxdWVzdC5zaGlwcGluZ09w
dGlvbiByZW1haW5zIG51bGwiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBj
b25zdCBzZWxlY3RlZE9wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09w
dGlvbiwgeworICAgIHNlbGVjdGVkOiB0cnVlLAorICAgIGlkOiAidGhlLWlkIiwKKyAgfSk7Cisg
IGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtzZWxlY3RlZE9wdGlvbl07CisgIGNvbnN0IGRldGFp
bHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBzaGlwcGluZ09wdGlvbnMg
fSk7CisgIGNvbnN0IHJlcXVlc3ROb1NoaXBwaW5nUmVxdWVzdGVkMSA9IG5ldyBQYXltZW50UmVx
dWVzdCgKKyAgICBkZWZhdWx0TWV0aG9kcywKKyAgICBkZXRhaWxzCisgICk7CisgIGFzc2VydF9l
cXVhbHMoCisgICAgcmVxdWVzdE5vU2hpcHBpbmdSZXF1ZXN0ZWQxLnNoaXBwaW5nT3B0aW9uLAor
ICAgIG51bGwsCisgICAgIk11c3QgYmUgbnVsbCB3aGVuIG5vIHNoaXBwaW5nIGlzIHJlcXVlc3Rl
ZCAoZGVmYXVsdHMgdG8gZmFsc2UpIgorICApOworICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZ1Jl
cXVlc3RlZDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoCisgICAgZGVmYXVsdE1ldGhvZHMsCisgICAg
ZGV0YWlscywKKyAgICB7IHJlcXVlc3RTaGlwcGluZzogZmFsc2UgfQorICApOworICBhc3NlcnRf
ZXF1YWxzKAorICAgIHJlcXVlc3ROb1NoaXBwaW5nUmVxdWVzdGVkMi5zaGlwcGluZ09wdGlvbiwK
KyAgICBudWxsLAorICAgICJNdXN0IGJlIG51bGwgd2hlbiByZXF1ZXN0U2hpcHBpbmcgaXMgZmFs
c2UiCisgICk7CisgIGNvbnN0IHJlcXVlc3RXaXRoU2hpcHBpbmcgPSBuZXcgUGF5bWVudFJlcXVl
c3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsKKyAgICByZXF1ZXN0U2hpcHBpbmc6ICJ0cnV0
aHkgdmFsdWUiLAorICB9KTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0V2l0aFNoaXBw
aW5nLnNoaXBwaW5nT3B0aW9uLAorICAgICJ0aGUtaWQiLAorICAgICJTZWxlY3RlZCBvcHRpb24g
bXVzdCBiZSAndGhlLWlkJyIKKyAgKTsKK30sICJJZiB0aGVyZSBpcyBhIHNlbGVjdGVkIHNoaXBw
aW5nIG9wdGlvbiwgYW5kIHJlcXVlc3RTaGlwcGluZyBpcyBzZXQsIHRoZW4gdGhhdCBvcHRpb24g
YmVjb21lcyBzeW5jaHJvbm91c2x5IHNlbGVjdGVkIik7CisKK3Rlc3QoKCkgPT4geworICBzbW9r
ZVRlc3QoKTsKKyAgY29uc3QgZmFpbE9wdGlvbjEgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0
U2hpcHBpbmdPcHRpb24sIHsKKyAgICBzZWxlY3RlZDogdHJ1ZSwKKyAgICBpZDogIkZBSUwxIiwK
KyAgfSk7CisgIGNvbnN0IGZhaWxPcHRpb24yID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNo
aXBwaW5nT3B0aW9uLCB7CisgICAgc2VsZWN0ZWQ6IGZhbHNlLAorICAgIGlkOiAiRkFJTDIiLAor
ICB9KTsKKyAgY29uc3QgcGFzc09wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlw
cGluZ09wdGlvbiwgeworICAgIHNlbGVjdGVkOiB0cnVlLAorICAgIGlkOiAidGhlLWlkIiwKKyAg
fSk7CisgIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtmYWlsT3B0aW9uMSwgZmFpbE9wdGlvbjIs
IHBhc3NPcHRpb25dOworICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVs
dERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOworICBjb25zdCByZXF1ZXN0Tm9TaGlwcGlu
ZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeworICAgIHJl
cXVlc3RTaGlwcGluZzogZmFsc2UsCisgIH0pOworICBhc3NlcnRfZXF1YWxzKAorICAgIHJlcXVl
c3ROb1NoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAorICAgIG51bGwsCisgICAgInNoaXBwaW5nT3B0
aW9uIG11c3QgYmUgbnVsbCwgYXMgcmVxdWVzdFNoaXBwaW5nIGlzIGZhbHNlIgorICApOworICBj
b25zdCByZXF1ZXN0V2l0aFNoaXBwaW5nID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBkZXRhaWxzLCB7CisgICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAorICB9KTsKKyAgYXNz
ZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0V2l0aFNoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAorICAg
ICJ0aGUtaWQiLAorICAgICJzZWxlY3RlZCBvcHRpb24gbXVzdCAndGhlLWlkIgorICApOworfSwg
IklmIHJlcXVlc3RTaGlwcGluZyBpcyBzZXQsIGFuZCBpZiB0aGVyZSBpcyBhIG11bHRpcGxlIHNl
bGVjdGVkIHNoaXBwaW5nIG9wdGlvbnMsIG9ubHkgdGhlIGxhc3QgaXMgc2VsZWN0ZWQuIik7CisK
K3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBP
YmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKKyAgICBzZWxlY3RlZDog
dHJ1ZSwKKyAgfSk7CisgIGNvbnN0IHVuc2VsZWN0ZWRPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9
LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKKyAgICBzZWxlY3RlZDogZmFsc2UsCisgIH0pOwor
ICBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSBbc2VsZWN0ZWRPcHRpb24sIHVuc2VsZWN0ZWRPcHRp
b25dOworICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMs
IHsgc2hpcHBpbmdPcHRpb25zIH0pOworICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZyA9IG5ldyBQ
YXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgIGFzc2VydF9lcXVhbHMo
CisgICAgcmVxdWVzdE5vU2hpcHBpbmcuc2hpcHBpbmdPcHRpb24sCisgICAgbnVsbCwKKyAgICAi
c2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxsLCBiZWNhdXNlIHJlcXVlc3RTaGlwcGluZyBpcyBm
YWxzZSIKKyAgKTsKKyAgYXNzZXJ0X3Rocm93c19qcygKKyAgICBUeXBlRXJyb3IsCisgICAgKCkg
PT4geworICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7
IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKKyAgICB9LAorICAgICJFeHBlY3RlZCB0byB0aHJv
dyBhIFR5cGVFcnJvciBiZWNhdXNlIGR1cGxpY2F0ZSBJRHMiCisgICk7Cit9LCAiSWYgdGhlcmUg
YXJlIGFueSBkdXBsaWNhdGUgc2hpcHBpbmcgb3B0aW9uIGlkcywgYW5kIHNoaXBwaW5nIGlzIHJl
cXVlc3RlZCwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOworCit0ZXN0KCgpID0+IHsKKyAgc21v
a2VUZXN0KCk7CisgIGNvbnN0IGR1cFNoaXBwaW5nMSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1
bHRTaGlwcGluZ09wdGlvbiwgeworICAgIHNlbGVjdGVkOiB0cnVlLAorICAgIGlkOiAiRFVQTElD
QVRFIiwKKyAgICBsYWJlbDogIkZhaWwgMSIsCisgIH0pOworICBjb25zdCBkdXBTaGlwcGluZzIg
PSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKKyAgICBzZWxlY3Rl
ZDogZmFsc2UsCisgICAgaWQ6ICJEVVBMSUNBVEUiLAorICAgIGxhYmVsOiAiRmFpbCAyIiwKKyAg
fSk7CisgIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtkdXBTaGlwcGluZzEsIGRlZmF1bHRTaGlw
cGluZ09wdGlvbiwgZHVwU2hpcHBpbmcyXTsKKyAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3Np
Z24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKKyAgY29uc3QgcmVx
dWVzdE5vU2hpcHBpbmcgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFp
bHMpOworICBhc3NlcnRfZXF1YWxzKAorICAgIHJlcXVlc3ROb1NoaXBwaW5nLnNoaXBwaW5nT3B0
aW9uLAorICAgIG51bGwsCisgICAgInNoaXBwaW5nT3B0aW9uIG11c3QgYmUgbnVsbCwgYmVjYXVz
ZSByZXF1ZXN0U2hpcHBpbmcgaXMgZmFsc2UiCisgICk7CisgIGFzc2VydF90aHJvd3NfanMoCisg
ICAgVHlwZUVycm9yLAorICAgICgpID0+IHsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfSk7CisgICAgfSwK
KyAgICAiRXhwZWN0ZWQgdG8gdGhyb3cgYSBUeXBlRXJyb3IgYmVjYXVzZSBkdXBsaWNhdGUgSURz
IgorICApOworfSwgIlRocm93IHdoZW4gdGhlcmUgYXJlIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlv
biBpZHMsIGV2ZW4gaWYgb3RoZXIgdmFsdWVzIGFyZSBkaWZmZXJlbnQiKTsKKworLy8gUHJvY2Vz
cyBwYXltZW50IGRldGFpbHMgbW9kaWZpZXJzOgordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgp
OworICBmb3IgKGNvbnN0IGludmFsaWRUb3RhbCBvZiBpbnZhbGlkVG90YWxBbW91bnRzKSB7Cisg
ICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0geworICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0
dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAgICB0
b3RhbDogeworICAgICAgICBsYWJlbDogIiIsCisgICAgICAgIGFtb3VudDogeworICAgICAgICAg
IGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICB2YWx1ZTogaW52YWxpZFRvdGFsLAorICAgICAg
ICB9LAorICAgICAgfSwKKyAgICB9OworICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICBUeXBl
RXJyb3IsCisgICAgICAoKSA9PiB7CisgICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgeworICAgICAgICAgIG1vZGlmaWVyczogW2ludmFsaWRNb2RpZmllcl0sCisgICAg
ICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAgICAgfSk7CisgICAgICB9LAorICAgICAg
YEV4cGVjdGVkIFR5cGVFcnJvciBmb3IgbW9kaWZpZXIudG90YWwuYW1vdW50LnZhbHVlOiAiJHtp
bnZhbGlkVG90YWx9ImAKKyAgICApOworICB9Cit9LCBgVGhyb3cgVHlwZUVycm9yIGlmIG1vZGlm
aWVyLnRvdGFsLmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZh
bHVlYCk7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgZm9yIChjb25zdCBpbnZh
bGlkQW1vdW50IG9mIGludmFsaWRBbW91bnRzKSB7CisgICAgY29uc3QgaW52YWxpZE1vZGlmaWVy
ID0geworICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0
ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAg
ICAgYWRkaXRpb25hbERpc3BsYXlJdGVtczogWworICAgICAgICB7CisgICAgICAgICAgbGFiZWw6
ICIiLAorICAgICAgICAgIGFtb3VudDogeworICAgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAor
ICAgICAgICAgICAgdmFsdWU6IGludmFsaWRBbW91bnQsCisgICAgICAgICAgfSwKKyAgICAgICAg
fSwKKyAgICAgIF0sCisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgVHlwZUVy
cm9yLAorICAgICAgKCkgPT4geworICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIHsKKyAgICAgICAgICBtb2RpZmllcnM6IFtpbnZhbGlkTW9kaWZpZXJdLAorICAgICAg
ICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAgICAgIH0pOworICAgICAgfSwKKyAgICAgIGBF
eHBlY3RlZCBUeXBlRXJyb3Igd2hlbiBnaXZlbiBib2d1cyBtb2RpZmllci5hZGRpdGlvbmFsRGlz
cGxheUl0ZW1zLmFtb3VudCBvZiAiJHtpbnZhbGlkTW9kaWZpZXJ9ImAKKyAgICApOworICB9Cit9
LCBgSWYgYW1vdW50LnZhbHVlIG9mIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXMgaXMgbm90IGEgdmFs
aWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvcmApOworCit0
ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9IE9i
amVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7CisgICAgbW9kaWZpZXJzOiBbCisgICAg
ICB7CisgICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlz
dGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAgICAgICBkYXRhOiBbInNvbWUtZGF0YSJdLAor
ICAgICAgfSwKKyAgICBdLAorICB9KTsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIG1vZGlmaWVkRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAg
IGFzc2VydF91bnJlYWNoZWQoCisgICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24gdGhyb3duIHdo
ZW4gZ2l2ZW4gYSBsaXN0OiAke2Vyci5tZXNzYWdlfWAKKyAgICApOworICB9Cit9LCAiTW9kaWZp
ZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAoYW4gQXJyYXkgaW4gdGhp
cyBjYXNlKSIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IG1vZGlm
aWVkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7CisgICAgbW9k
aWZpZXJzOiBbCisgICAgICB7CisgICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7
ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAgICAgICBkYXRhOiB7
CisgICAgICAgICAgc29tZTogImRhdGEiLAorICAgICAgICB9LAorICAgICAgfSwKKyAgICBdLAor
ICB9KTsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG1v
ZGlmaWVkRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQo
CisgICAgICBgc2hvdWxkbid0IHRocm93IHdoZW4gZ2l2ZW4gYW4gb2JqZWN0IHZhbHVlOiAke2Vy
ci5tZXNzYWdlfWAKKyAgICApOworICB9Cit9LCAiTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04t
c2VyaWFsaXphYmxlIG9iamVjdCAoYW4gT2JqZWN0IGluIHRoaXMgY2FzZSkiKTsKKwordGVzdCgo
KSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCByZWN1cnNpdmVEaWN0aW9uYXJ5ID0ge307
CisgIHJlY3Vyc2l2ZURpY3Rpb25hcnkuZm9vID0gcmVjdXJzaXZlRGljdGlvbmFyeTsKKyAgY29u
c3QgbW9kaWZpZWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsK
KyAgICBtb2RpZmllcnM6IFsKKyAgICAgIHsKKyAgICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0
dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAgICAg
IGRhdGE6IHJlY3Vyc2l2ZURpY3Rpb25hcnksCisgICAgICB9LAorICAgIF0sCisgIH0pOworICBh
c3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4geworICAgIG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgbW9kaWZpZWREZXRhaWxzKTsKKyAgfSk7Cit9LCAiUmV0aHJvdyBh
bnkgZXhjZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6aW5nIG1vZGlmaWVyLmRhdGEiKTsKKworLy9T
ZXR0aW5nIFNoaXBwaW5nVHlwZSBhdHRyaWJ1dGUgZHVyaW5nIGNvbnN0cnVjdGlvbgordGVzdCgo
KSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkg
PT4geworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFp
bHMsIHsKKyAgICAgIHNoaXBwaW5nVHlwZTogImludmFsaWQiLAorICAgIH0pOworICB9KTsKK30s
ICJTaGlwcGluZyB0eXBlIHNob3VsZCBiZSB2YWxpZCIpOworCit0ZXN0KCgpID0+IHsKKyAgc21v
a2VUZXN0KCk7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7fSk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5zaGlw
cGluZ0FkZHJlc3MsIG51bGwsICJtdXN0IGJlIG51bGwiKTsKK30sICJQYXltZW50UmVxdWVzdC5z
aGlwcGluZ0FkZHJlc3MgbXVzdCBpbml0aWFsbHkgYmUgbnVsbCIpOworCit0ZXN0KCgpID0+IHsK
KyAgc21va2VUZXN0KCk7CisgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRl
ZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywge30pOworICBhc3NlcnRfZXF1YWxzKHJlcXVl
c3QxLnNoaXBwaW5nVHlwZSwgbnVsbCwgIm11c3QgYmUgbnVsbCIpOworICBjb25zdCByZXF1ZXN0
MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHsK
KyAgICByZXF1ZXN0U2hpcHBpbmc6IGZhbHNlLAorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1
ZXN0Mi5zaGlwcGluZ1R5cGUsIG51bGwsICJtdXN0IGJlIG51bGwiKTsKK30sICJJZiBvcHRpb25z
LnJlcXVlc3RTaGlwcGluZyBpcyBub3Qgc2V0LCB0aGVuIHJlcXVlc3Quc2hpcHBpbmdUeXBlIGF0
dHJpYnV0ZSBpcyBudWxsLiIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIC8v
IG9wdGlvbi5zaGlwcGluZ1R5cGUgZGVmYXVsdHMgdG8gJ3NoaXBwaW5nJworICBjb25zdCByZXF1
ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMs
IHsKKyAgICByZXF1ZXN0U2hpcHBpbmc6IHRydWUsCisgIH0pOworICBhc3NlcnRfZXF1YWxzKHJl
cXVlc3QxLnNoaXBwaW5nVHlwZSwgInNoaXBwaW5nIiwgIm11c3QgYmUgc2hpcHBpbmciKTsKKyAg
Y29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1
bHREZXRhaWxzLCB7CisgICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAorICAgIHNoaXBwaW5nVHlw
ZTogImRlbGl2ZXJ5IiwKKyAgfSk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdDIuc2hpcHBpbmdU
eXBlLCAiZGVsaXZlcnkiLCAibXVzdCBiZSBkZWxpdmVyeSIpOworfSwgIklmIG9wdGlvbnMucmVx
dWVzdFNoaXBwaW5nIGlzIHRydWUsIHJlcXVlc3Quc2hpcHBpbmdUeXBlIHdpbGwgYmUgb3B0aW9u
cy5zaGlwcGluZ1R5cGUuIik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVxdWVzdC1jdG9yLWN1cnJlbmN5LWNvZGUtY2hlY2tzLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE2NDE2ODNiZWI1MTVkNWE5ZDYwN2IxZmVhYWY1MzQ0ZDc1NTZl
MWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDMzOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGN1cnJlbmN5IGNvZGUgdXNhZ2UgaW4gUGF5bWVudFJlcXVl
c3QgQ29uc3RydWN0b3I8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3cz
Yy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jY29uc3RydWN0b3IiPgotPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWNvbnN0
IGRlZmF1bHRNZXRob2RzID0gWwotICBPYmplY3QuZnJlZXplKHsKLSAgICBzdXBwb3J0ZWRNZXRo
b2RzOiAiaHR0cHM6Ly93cHQuZnlpIiwKLSAgfSksCi1dOwotY29uc3QgZGVmYXVsdEFtb3VudCA9
IE9iamVjdC5mcmVlemUoewotICBjdXJyZW5jeTogIlVTRCIsCi0gIHZhbHVlOiAiMS4wMCIsCi19
KTsKLWNvbnN0IGRlZmF1bHRUb3RhbCA9IE9iamVjdC5mcmVlemUoewotICBsYWJlbDogIlRvdGFs
IiwKLSAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAotfSk7Ci0KLWNvbnN0IGRlZmF1bHREZXRhaWxz
ID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHRvdGFsOiBPYmplY3QuZnJlZXplKHsKLSAgICBsYWJlbDog
IiIsCi0gICAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAotICB9KSwKLX0pOwotCi0vLyBUaGUgZm9s
bG93aW5nIGFyZSB0aGUgc2FtZSBzZXQgb2YgdmFsaWQvaW52YWxpZCBjb2RlcyB0aGF0IGFyZSB1
c2VkIGluCi0vLyB0aGUgRUNNQVNjcmlwdCBJbnRlcm5hdGlvbmFsaXphdGlvbiBBUEkgU3BlY2lm
aWNhdGlvbiAoRUNNQS00MDIpIHRlc3Qgc3VpdGUuCi1jb25zdCB3ZWxsRm9ybWVkQ3VycmVuY3lD
b2RlcyA9IFsKLSAgIkJPQiIsCi0gICJFVVIiLAotICAidXNkIiwgLy8gY3VycmVuY3kgY29kZXMg
YXJlIGNhc2UtaW5zZW5zaXRpdmUKLSAgIlhkUiIsCi0gICJ4VHMiLAotXTsKLQotY29uc3QgaW52
YWxpZEN1cnJlbmN5Q29kZXMgPSBbCi0gICIiLAotICAi4oKsIiwKLSAgIiQiLAotICAiU0ZyLiIs
Ci0gICJETSIsCi0gICJLUuKCqSIsCi0gICI3MDIiLAotICAiw59QIiwKLSAgIsSxbnIiLAotXTsK
LQotY29uc3QgUkFOR0VfRVJST1IgPSBuZXcgUmFuZ2VFcnJvcigpOwotCi1jb25zdCBpbnZhbGlk
QW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGN1cnJlbmN5OiAiwqFJTlZBTElEISIsCi0gIHZh
bHVlOiAiMS4wMCIsCi19KTsKLQotY29uc3QgaW52YWxpZFRvdGFsID0gewotICB0b3RhbDogewot
ICAgIGxhYmVsOiAiSW52YWxpZCB0b3RhbCIsCi0gICAgYW1vdW50OiBpbnZhbGlkQW1vdW50LAot
ICB9LAotfTsKLQotLy8gRW5zdXJlIHdlIGRvbid0IGdldCBmYWxzZSBwb3NpdGl2ZXMKLWZ1bmN0
aW9uIHNtb2tlVGVzdCgpIHsKLSAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBp
bnZhbGlkVG90YWwpOwotfQotCi0vLyBQcm9jZXNzIHRoZSB0b3RhbDoKLXRlc3QoKCkgPT4gewot
ICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0
ZXN0IHRvIHRocm93LiIpOwotICBmb3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Ygd2VsbEZvcm1l
ZEN1cnJlbmN5Q29kZXMpIHsKLSAgICBjb25zdCBhbW91bnQgPSB7Ci0gICAgICBjdXJyZW5jeTog
dmFsaWRDdXJyZW5jeSwKLSAgICAgIHZhbHVlOiAiMS4wMCIsCi0gICAgfTsKLSAgICBjb25zdCB0
b3RhbCA9IHsKLSAgICAgIGxhYmVsOiAiVG90YWwiLAotICAgICAgYW1vdW50LAotICAgIH07Ci0g
ICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRvdGFsLAotICAgIH07Ci0gICAgdHJ5IHsKLSAg
ICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gICAgfSBj
YXRjaCAoZXJyKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKAotICAgICAgICBgVW5leHBlY3Rl
ZCBleGNlcHRpb24gZm9yIGRldGFpbHMudG90YWwuYW1vdW50ICIke3ZhbGlkQ3VycmVuY3l9Ijog
JHtlcnIubWVzc2FnZX1gCi0gICAgICApOwotICAgIH0KLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5v
bmljYWxpemUgdmFsaWQgZGV0YWlscy50b3RhbC5hbW91bnQiKTsKLQotdGVzdCgoKSA9PiB7Ci0g
IGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRl
c3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRD
dXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYW1vdW50ID0gewotICAgICAgY3VycmVuY3k6IGlu
dmFsaWRDdXJyZW5jeSwKLSAgICAgIHZhbHVlOiAiMS4wMCIsCi0gICAgfTsKLSAgICBjb25zdCB0
b3RhbCA9IHsKLSAgICAgIGxhYmVsOiAiVG90YWwiLAotICAgICAgYW1vdW50LAotICAgIH07Ci0g
ICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRvdGFsLAotICAgIH07Ci0gICAgYXNzZXJ0X3Ro
cm93cygKLSAgICAgIFJBTkdFX0VSUk9SLAotICAgICAgKCkgPT4gewotICAgICAgICBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgfSwKLSAgICAgIGBF
eHBlY3RlZCBSYW5nZUVycm9yIGZvciBkZXRhaWxzLnRvdGFsLmFtb3VudCBnaXZlbiAoIiR7aW52
YWxpZEN1cnJlbmN5fSIpLmAKLSAgICApOwotICB9Ci19LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6
ZSBpbnZhbGlkIGRldGFpbHMudG90YWwuYW1vdW50IGFuZCByZXRocm93IGFueSBleGNlcHRpb25z
LiIpOwotCi0vLyBJZiB0aGUgZGlzcGxheUl0ZW1zIG1lbWJlciBvZiBkZXRhaWxzIGlzIHByZXNl
bnQsIHRoZW4gZm9yIGVhY2ggaXRlbSBpbiBkZXRhaWxzLmRpc3BsYXlJdGVtczoKLXRlc3QoKCkg
PT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBz
bW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBjb25zdCBkaXNwbGF5SXRlbXMgPSBbXTsKLSAgZm9y
IChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxGb3JtZWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAg
Y29uc3QgYW1vdW50ID0gewotICAgICAgY3VycmVuY3k6IHZhbGlkQ3VycmVuY3ksCi0gICAgICB2
YWx1ZTogIjEyMyIsCi0gICAgfTsKLSAgICBjb25zdCBkaXNwbGF5SXRlbSA9IHsKLSAgICAgIGFt
b3VudCwKLSAgICAgIGxhYmVsOiAidmFsaWQgY3VycmVuY3kiLAotICAgIH07Ci0gICAgY29uc3Qg
ZGV0YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBkaXNwbGF5SXRl
bXM6IFtkaXNwbGF5SXRlbV0sCi0gICAgfTsKLSAgICB0cnkgewotICAgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAg
ICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICAgIGBVbmV4cGVjdGVkIGVycm9yIHdpdGggZGlz
cGxheUl0ZW0gdGhhdCBoYWQgYSB2YWxpZCBjdXJyZW5jeSAiJHt2YWxpZEN1cnJlbmN5fSI6ICR7
ZXJyLm1lc3NhZ2V9YAotICAgICAgKTsKLSAgICB9Ci0gICAgZGlzcGxheUl0ZW1zLnB1c2goZGlz
cGxheUl0ZW0pOwotICB9Ci0gIC8vIExldCdzIG1ha2Ugc3VyZSBpdCBkb2Vzbid0IHRocm93IGdp
dmVuIGEgbGlzdCBvZiB2YWxpZCBkaXNwbGF5SXRlbXMKLSAgdHJ5IHsKLSAgICBjb25zdCBkZXRh
aWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgZGlzcGxheUl0ZW1zIH0p
OwotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gIH0g
Y2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICBgVW5leHBlY3RlZCBl
cnJvciB3aXRoIG11bHRpcGxlIHZhbGlkIGRpc3BsYXlJdGVtczogJHtlcnIubWVzc2FnZX1gCi0g
ICAgKTsKLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy5kaXNw
bGF5SXRlbXMgYW1vdW50Iik7Ci0KLXRlc3QoKCkgPT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdF
X0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBm
b3IgKGNvbnN0IGludmFsaWRDdXJyZW5jeSBvZiBpbnZhbGlkQ3VycmVuY3lDb2RlcykgewotICAg
IGNvbnN0IGFtb3VudCA9IHsKLSAgICAgIGN1cnJlbmN5OiBpbnZhbGlkQ3VycmVuY3ksCi0gICAg
ICB2YWx1ZTogIjEyMyIsCi0gICAgfTsKLSAgICBjb25zdCBkaXNwbGF5SXRlbSA9IHsKLSAgICAg
IGFtb3VudCwKLSAgICAgIGxhYmVsOiAiaW52YWxpZCBjdXJyZW5jeSIsCi0gICAgfTsKLSAgICBj
b25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIGRpc3Bs
YXlJdGVtczogW2Rpc3BsYXlJdGVtXSwKLSAgICB9OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAg
ICBSQU5HRV9FUlJPUiwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgUmFu
Z2VFcnJvciB3aXRoIGludmFsaWQgZGlzcGxheUl0ZW0gY3VycmVuY3kgIiR7aW52YWxpZEN1cnJl
bmN5fSIuYAotICAgICk7Ci0gIH0KLX0sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQg
ZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1vdW50IGFuZCByZXRocm93IFJhbmdlRXJyb3IuIik7Ci0K
LS8vIFByb2Nlc3Mgc2hpcHBpbmcgb3B0aW9uczoKLXRlc3QoKCkgPT4gewotICBhc3NlcnRfdGhy
b3dzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93
LiIpOwotICBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSBbXTsKLSAgZm9yIChjb25zdCB2YWxpZEN1
cnJlbmN5IG9mIHdlbGxGb3JtZWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3Qgc2hpcHBpbmdP
cHRpb24gPSB7Ci0gICAgICBpZDogYHRlc3RgICsgTWF0aC5yYW5kb20oKSwKLSAgICAgIGxhYmVs
OiAic2hpcHBpbmcgb3B0aW9uIiwKLSAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogdmFsaWRDdXJy
ZW5jeSwgdmFsdWU6ICI1LjAwIiB9LAotICAgICAgc2VsZWN0ZWQ6ICFzaGlwcGluZ09wdGlvbnMu
bGVuZ3RoLAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZh
dWx0VG90YWwsCi0gICAgICBzaGlwcGluZ09wdGlvbnM6IFtzaGlwcGluZ09wdGlvbl0sCi0gICAg
fTsKLSAgICB0cnkgewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBk
ZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKLSAgICB9IGNhdGNoIChlcnIpIHsK
LSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICAgIGBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3
aXRoIHZhbGlkIHNoaXBwaW5nT3B0aW9uIGN1cnJlbmN5IGNvZGUgIiR7dmFsaWRDdXJyZW5jeX0i
OiAke2Vyci5tZXNzYWdlfS5gCi0gICAgICApOwotICAgIH0KLSAgICBzaGlwcGluZ09wdGlvbnMu
cHVzaChzaGlwcGluZ09wdGlvbik7Ci0gIH0KLSAgdHJ5IHsKLSAgICBjb25zdCBkZXRhaWxzID0g
T2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOwot
ICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0
U2hpcHBpbmc6IHRydWUgfSk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNo
ZWQoCi0gICAgICBgVW5leHBlY3RlZCBlcnJvciB3aXRoIG11bHRpcGxlIHZhbGlkIHNocHBpbmdP
cHRpb25zOiAke2Vyci5tZXNzYWdlfS5gCi0gICAgKTsKLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5v
bmljYWxpemUgdmFsaWQgZGV0YWlscy5zaGlwcGluZ09wdGlvbnMgYW1vdW50LiIpOwotCi10ZXN0
KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0
ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKLSAgZm9yIChjb25zdCBpbnZhbGlkQ3VycmVuY3kg
b2YgaW52YWxpZEN1cnJlbmN5Q29kZXMpIHsKLSAgICBjb25zdCBzaGlwcGluZ09wdGlvbiA9IHsK
LSAgICAgIGlkOiAidGVzdCIsCi0gICAgICBsYWJlbDogInNoaXBwaW5nIG9wdGlvbiIsCi0gICAg
ICBhbW91bnQ6IHsgY3VycmVuY3k6IGludmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI1LjAwIiB9LAot
ICAgICAgc2VsZWN0ZWQ6IHRydWUsCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAg
ICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIHNoaXBwaW5nT3B0aW9uczogW3NoaXBwaW5n
T3B0aW9uXSwKLSAgICB9OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBSQU5HRV9FUlJPUiwK
LSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKLSAgICAgIH0sCi0gICAgICBg
RXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgc2hpcHBpbmdPcHRpb24gY3VycmVuY3kg
Y29kZSAiJHtpbnZhbGlkQ3VycmVuY3l9Ii5gCi0gICAgKTsKLSAgfQotfSwgIkNoZWNrIGFuZCBj
YW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLnNoaXBwaW5nT3B0aW9ucyBhbW91bnQgYW5kIHJl
dGhyb3cgUmFuZ2VFcnJvci4iKTsKLQotLy8gUHJvY2VzcyBwYXltZW50IGRldGFpbHMgbW9kaWZp
ZXJzOgotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNtb2tlVGVz
dCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29uc3QgdmFsaWRD
dXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3VycmVuY3lDb2RlcykgewotICAgIGNvbnN0IG1vZGlmaWVy
ID0gewotICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aSIsCi0gICAgICB0
b3RhbDogewotICAgICAgICBsYWJlbDogIlRvdGFsIGR1ZSIsCi0gICAgICAgIGFtb3VudDogeyBj
dXJyZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI2OC4wMCIgfSwKLSAgICAgIH0sCi0gICAg
fTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAg
ICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKLSAgICB9OwotICAgIHRyeSB7Ci0gICAgICBuZXcg
UGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOwotICAgIH0gY2F0Y2ggKGVy
cikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKLSAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Ig
d2l0aCB2YWxpZCBtb2RpZmllciBjdXJyZW5jeSBjb2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtl
cnIubWVzc2FnZX1gCi0gICAgICApOwotICAgIH0KLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmlj
YWxpemUgdmFsaWQgbW9kaWZpZXJzW25dLnRvdGFsIGFtb3VudC4iKTsKLQotdGVzdCgoKSA9PiB7
Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tl
IHRlc3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFs
aWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgbW9kaWZpZXIgPSB7Ci0gICAgICBzdXBwb3J0
ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpIiwKLSAgICAgIHRvdGFsOiB7Ci0gICAgICAgIGxh
YmVsOiAiVG90YWwgZHVlIiwKLSAgICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiBpbnZhbGlkQ3Vy
cmVuY3ksIHZhbHVlOiAiNjguMDAiIH0sCi0gICAgICB9LAotICAgIH07Ci0gICAgY29uc3QgZGV0
YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBtb2RpZmllcnM6IFtt
b2RpZmllcl0sCi0gICAgfTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgUkFOR0VfRVJST1Is
Ci0gICAgICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGV0YWlscyk7Ci0gICAgICB9LAotICAgICAgYEV4cGVjdGVkIFJhbmdlRXJyb3Igd2l0aCBp
bnZhbGlkIG1vZGlmaWVyIGN1cnJlbmN5IGNvZGUgIiR7aW52YWxpZEN1cnJlbmN5fSIuYAotICAg
ICk7Ci0gIH0KLX0sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgbW9kaWZpZXJzW25d
LnRvdGFsIGFtb3VudCBhbmQgcmV0aHJvdyBSYW5nZUVycm9yLiIpOwotCi0vLyBQcm9jZXNzIHBh
eW1lbnQgZGV0YWlscyBtb2RpZmllcnM6Ci10ZXN0KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhS
QU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsK
LSAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxGb3JtZWRDdXJyZW5jeUNvZGVzKSB7
Ci0gICAgY29uc3QgYWRkaXRpb25hbEl0ZW0gPSB7Ci0gICAgICBsYWJlbDogImFkZGl0aW9uYWxJ
dGVtIiwKLSAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6ICIz
LjAwIiB9LAotICAgIH07Ci0gICAgY29uc3QgbW9kaWZpZXIgPSB7Ci0gICAgICBzdXBwb3J0ZWRN
ZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpIiwKLSAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0g
ICAgICBhZGRpdGlvbmFsRGlzcGxheUl0ZW1zOiBbYWRkaXRpb25hbEl0ZW1dLAotICAgIH07Ci0g
ICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBt
b2RpZmllcnM6IFttb2RpZmllcl0sCi0gICAgfTsKLSAgICB0cnkgewotICAgICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsK
LSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICAgIGBVbmV4cGVjdGVkIGVycm9yIHdpdGgg
dmFsaWQgYWRkaXRpb25hbERpc3BsYXlJdGVtc1tuXSBjdXJyZW5jeSBjb2RlICIke3ZhbGlkQ3Vy
cmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCi0gICAgICApOwotICAgIH0KLSAgfQotfSwgIkNoZWNr
IGFuZCBjYW5vbmljYWxpemUgdmFsaWQgbW9kaWZpZXJzW25dLmFkZGl0aW9uYURpc3BsYXlJdGVt
IGFtb3VudC4iKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1Is
IHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29u
c3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3Qg
YWRkaXRpb25hbEl0ZW0gPSB7Ci0gICAgICBsYWJlbDogImFkZGl0aW9uYWxJdGVtIiwKLSAgICAg
IGFtb3VudDogeyBjdXJyZW5jeTogaW52YWxpZEN1cnJlbmN5LCB2YWx1ZTogIjMuMDAiIH0sCi0g
ICAgfTsKLSAgICBjb25zdCBtb2RpZmllciA9IHsKLSAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJo
dHRwczovL3dwdC5meWkiLAotICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIGFkZGl0
aW9uYWxEaXNwbGF5SXRlbXM6IFthZGRpdGlvbmFsSXRlbV0sCi0gICAgfTsKLSAgICBjb25zdCBk
ZXRhaWxzID0gewotICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIG1vZGlmaWVyczog
W21vZGlmaWVyXSwKLSAgICB9OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBSQU5HRV9FUlJP
UiwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBkZXRhaWxzKTsKLSAgICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRo
IGludmFsaWQgYWRkaXRpb25hbERpc3BsYXlJdGVtc1tuXSBjdXJyZW5jeSBjb2RlICIke2ludmFs
aWRDdXJyZW5jeX0iLmAKLSAgICApOwotICB9Ci19LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBp
bnZhbGlkIG1vZGlmaWVyc1tuXS5hZGRpdGlvbmFEaXNwbGF5SXRlbSBhbW91bnQgYW5kIHJldGhy
b3cgUmFuZ2VFcnJvci4iKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1jdG9yLWN1cnJlbmN5LWNvZGUtY2hlY2tzLmh0dHBzLnN1Yi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE0NTE2YTRlYjA3OGVjODhiYzIzZDYyNjFiZjQ3ZjQ0ZGM2
NjliMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLWN1cnJlbmN5
LWNvZGUtY2hlY2tzLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitQ
QVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy50b3RhbC5hbW91bnQgCitQ
QVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLnRvdGFsLmFtb3VudCBh
bmQgcmV0aHJvdyBhbnkgZXhjZXB0aW9ucy4gCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUg
dmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1vdW50IAorUEFTUyBDaGVjayBhbmQgY2Fub25p
Y2FsaXplIGludmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1vdW50IGFuZCByZXRocm93IFJh
bmdlRXJyb3IuIAorUEFTUyBDaGVjayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIGRldGFpbHMuc2hp
cHBpbmdPcHRpb25zIGFtb3VudC4gCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxp
ZCBkZXRhaWxzLnNoaXBwaW5nT3B0aW9ucyBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4g
CitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgbW9kaWZpZXJzW25dLnRvdGFsIGFt
b3VudC4gCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBtb2RpZmllcnNbbl0u
dG90YWwgYW1vdW50IGFuZCByZXRocm93IFJhbmdlRXJyb3IuIAorUEFTUyBDaGVjayBhbmQgY2Fu
b25pY2FsaXplIHZhbGlkIG1vZGlmaWVyc1tuXS5hZGRpdGlvbmFEaXNwbGF5SXRlbSBhbW91bnQu
IAorUEFTUyBDaGVjayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgbW9kaWZpZXJzW25dLmFkZGl0
aW9uYURpc3BsYXlJdGVtIGFtb3VudCBhbmQgcmV0aHJvdyBSYW5nZUVycm9yLiAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMu
c3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1jdXJyZW5jeS1jb2RlLWNoZWNrcy5o
dHRwcy5zdWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGNhMmEwYzQwYjM5YjNjOTIyMzQzYTlhNzQzNDFi
NjlhMzM4NDU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3Vy
cmVuY3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLmh0bWwKQEAgLTAsMCArMSwzMzkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgY3VycmVuY3kg
Y29kZSB1c2FnZSBpbiBQYXltZW50UmVxdWVzdCBDb25zdHJ1Y3RvcjwvdGl0bGU+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9icm93c2VyLXBheW1lbnQtYXBp
LyNjb25zdHJ1Y3RvciI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBbCisgIE9iamVjdC5m
cmVlemUoeworICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlz
dGVudF19fSIsCisgIH0pLAorXTsKK2NvbnN0IGRlZmF1bHRBbW91bnQgPSBPYmplY3QuZnJlZXpl
KHsKKyAgY3VycmVuY3k6ICJVU0QiLAorICB2YWx1ZTogIjEuMDAiLAorfSk7Citjb25zdCBkZWZh
dWx0VG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAgbGFiZWw6ICJUb3RhbCIsCisgIGFtb3VudDog
ZGVmYXVsdEFtb3VudCwKK30pOworCitjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVl
emUoeworICB0b3RhbDogT2JqZWN0LmZyZWV6ZSh7CisgICAgbGFiZWw6ICIiLAorICAgIGFtb3Vu
dDogZGVmYXVsdEFtb3VudCwKKyAgfSksCit9KTsKKworLy8gVGhlIGZvbGxvd2luZyBhcmUgdGhl
IHNhbWUgc2V0IG9mIHZhbGlkL2ludmFsaWQgY29kZXMgdGhhdCBhcmUgdXNlZCBpbgorLy8gdGhl
IEVDTUFTY3JpcHQgSW50ZXJuYXRpb25hbGl6YXRpb24gQVBJIFNwZWNpZmljYXRpb24gKEVDTUEt
NDAyKSB0ZXN0IHN1aXRlLgorY29uc3Qgd2VsbEZvcm1lZEN1cnJlbmN5Q29kZXMgPSBbCisgICJC
T0IiLAorICAiRVVSIiwKKyAgInVzZCIsIC8vIGN1cnJlbmN5IGNvZGVzIGFyZSBjYXNlLWluc2Vu
c2l0aXZlCisgICJYZFIiLAorICAieFRzIiwKK107CisKK2NvbnN0IGludmFsaWRDdXJyZW5jeUNv
ZGVzID0gWworICAiIiwKKyAgIuKCrCIsCisgICIkIiwKKyAgIlNGci4iLAorICAiRE0iLAorICAi
S1LigqkiLAorICAiNzAyIiwKKyAgIsOfUCIsCisgICLEsW5yIiwKK107CisKK2NvbnN0IFJBTkdF
X0VSUk9SID0gUmFuZ2VFcnJvcjsKKworY29uc3QgaW52YWxpZEFtb3VudCA9IE9iamVjdC5mcmVl
emUoeworICBjdXJyZW5jeTogIsKhSU5WQUxJRCEiLAorICB2YWx1ZTogIjEuMDAiLAorfSk7CisK
K2NvbnN0IGludmFsaWRUb3RhbCA9IHsKKyAgdG90YWw6IHsKKyAgICBsYWJlbDogIkludmFsaWQg
dG90YWwiLAorICAgIGFtb3VudDogaW52YWxpZEFtb3VudCwKKyAgfSwKK307CisKKy8vIEVuc3Vy
ZSB3ZSBkb24ndCBnZXQgZmFsc2UgcG9zaXRpdmVzCitmdW5jdGlvbiBzbW9rZVRlc3QoKSB7Cisg
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgaW52YWxpZFRvdGFsKTsKK30KKwor
Ly8gUHJvY2VzcyB0aGUgdG90YWw6Cit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhS
QU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsK
KyAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxGb3JtZWRDdXJyZW5jeUNvZGVzKSB7
CisgICAgY29uc3QgYW1vdW50ID0geworICAgICAgY3VycmVuY3k6IHZhbGlkQ3VycmVuY3ksCisg
ICAgICB2YWx1ZTogIjEuMDAiLAorICAgIH07CisgICAgY29uc3QgdG90YWwgPSB7CisgICAgICBs
YWJlbDogIlRvdGFsIiwKKyAgICAgIGFtb3VudCwKKyAgICB9OworICAgIGNvbnN0IGRldGFpbHMg
PSB7CisgICAgICB0b3RhbCwKKyAgICB9OworICAgIHRyeSB7CisgICAgICBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOworICAgIH0gY2F0Y2ggKGVycikgeworICAg
ICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICAgYFVuZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBk
ZXRhaWxzLnRvdGFsLmFtb3VudCAiJHt2YWxpZEN1cnJlbmN5fSI6ICR7ZXJyLm1lc3NhZ2V9YAor
ICAgICAgKTsKKyAgICB9CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIGRl
dGFpbHMudG90YWwuYW1vdW50Iik7CisKK3Rlc3QoKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pz
KFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIp
OworICBmb3IgKGNvbnN0IGludmFsaWRDdXJyZW5jeSBvZiBpbnZhbGlkQ3VycmVuY3lDb2Rlcykg
eworICAgIGNvbnN0IGFtb3VudCA9IHsKKyAgICAgIGN1cnJlbmN5OiBpbnZhbGlkQ3VycmVuY3ks
CisgICAgICB2YWx1ZTogIjEuMDAiLAorICAgIH07CisgICAgY29uc3QgdG90YWwgPSB7CisgICAg
ICBsYWJlbDogIlRvdGFsIiwKKyAgICAgIGFtb3VudCwKKyAgICB9OworICAgIGNvbnN0IGRldGFp
bHMgPSB7CisgICAgICB0b3RhbCwKKyAgICB9OworICAgIGFzc2VydF90aHJvd3NfanMoCisgICAg
ICBSQU5HRV9FUlJPUiwKKyAgICAgICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0ZWQgUmFu
Z2VFcnJvciBmb3IgZGV0YWlscy50b3RhbC5hbW91bnQgZ2l2ZW4gKCIke2ludmFsaWRDdXJyZW5j
eX0iKS5gCisgICAgKTsKKyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBk
ZXRhaWxzLnRvdGFsLmFtb3VudCBhbmQgcmV0aHJvdyBhbnkgZXhjZXB0aW9ucy4iKTsKKworLy8g
SWYgdGhlIGRpc3BsYXlJdGVtcyBtZW1iZXIgb2YgZGV0YWlscyBpcyBwcmVzZW50LCB0aGVuIGZv
ciBlYWNoIGl0ZW0gaW4gZGV0YWlscy5kaXNwbGF5SXRlbXM6Cit0ZXN0KCgpID0+IHsKKyAgYXNz
ZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVz
dCB0byB0aHJvdy4iKTsKKyAgY29uc3QgZGlzcGxheUl0ZW1zID0gW107CisgIGZvciAoY29uc3Qg
dmFsaWRDdXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3VycmVuY3lDb2RlcykgeworICAgIGNvbnN0IGFt
b3VudCA9IHsKKyAgICAgIGN1cnJlbmN5OiB2YWxpZEN1cnJlbmN5LAorICAgICAgdmFsdWU6ICIx
MjMiLAorICAgIH07CisgICAgY29uc3QgZGlzcGxheUl0ZW0gPSB7CisgICAgICBhbW91bnQsCisg
ICAgICBsYWJlbDogInZhbGlkIGN1cnJlbmN5IiwKKyAgICB9OworICAgIGNvbnN0IGRldGFpbHMg
PSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgZGlzcGxheUl0ZW1zOiBbZGlz
cGxheUl0ZW1dLAorICAgIH07CisgICAgdHJ5IHsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3Nl
cnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBlY3RlZCBlcnJvciB3aXRoIGRpc3BsYXlJdGVt
IHRoYXQgaGFkIGEgdmFsaWQgY3VycmVuY3kgIiR7dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5tZXNz
YWdlfWAKKyAgICAgICk7CisgICAgfQorICAgIGRpc3BsYXlJdGVtcy5wdXNoKGRpc3BsYXlJdGVt
KTsKKyAgfQorICAvLyBMZXQncyBtYWtlIHN1cmUgaXQgZG9lc24ndCB0aHJvdyBnaXZlbiBhIGxp
c3Qgb2YgdmFsaWQgZGlzcGxheUl0ZW1zCisgIHRyeSB7CisgICAgY29uc3QgZGV0YWlscyA9IE9i
amVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IGRpc3BsYXlJdGVtcyB9KTsKKyAgICBu
ZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOworICB9IGNhdGNoIChl
cnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0
aCBtdWx0aXBsZSB2YWxpZCBkaXNwbGF5SXRlbXM6ICR7ZXJyLm1lc3NhZ2V9YAorICAgICk7Cisg
IH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIGRldGFpbHMuZGlzcGxheUl0ZW1z
IGFtb3VudCIpOworCit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJP
Uiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKKyAgZm9yIChj
b25zdCBpbnZhbGlkQ3VycmVuY3kgb2YgaW52YWxpZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25z
dCBhbW91bnQgPSB7CisgICAgICBjdXJyZW5jeTogaW52YWxpZEN1cnJlbmN5LAorICAgICAgdmFs
dWU6ICIxMjMiLAorICAgIH07CisgICAgY29uc3QgZGlzcGxheUl0ZW0gPSB7CisgICAgICBhbW91
bnQsCisgICAgICBsYWJlbDogImludmFsaWQgY3VycmVuY3kiLAorICAgIH07CisgICAgY29uc3Qg
ZGV0YWlscyA9IHsKKyAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAgICBkaXNwbGF5SXRl
bXM6IFtkaXNwbGF5SXRlbV0sCisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAg
UkFOR0VfRVJST1IsCisgICAgICAoKSA9PiB7CisgICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgICAgICB9LAorICAgICAgYEV4cGVjdGVkIFJhbmdl
RXJyb3Igd2l0aCBpbnZhbGlkIGRpc3BsYXlJdGVtIGN1cnJlbmN5ICIke2ludmFsaWRDdXJyZW5j
eX0iLmAKKyAgICApOworICB9Cit9LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIGRl
dGFpbHMuZGlzcGxheUl0ZW1zIGFtb3VudCBhbmQgcmV0aHJvdyBSYW5nZUVycm9yLiIpOworCisv
LyBQcm9jZXNzIHNoaXBwaW5nIG9wdGlvbnM6Cit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X3Rocm93
c19qcyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJv
dy4iKTsKKyAgY29uc3Qgc2hpcHBpbmdPcHRpb25zID0gW107CisgIGZvciAoY29uc3QgdmFsaWRD
dXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3VycmVuY3lDb2RlcykgeworICAgIGNvbnN0IHNoaXBwaW5n
T3B0aW9uID0geworICAgICAgaWQ6IGB0ZXN0YCArIE1hdGgucmFuZG9tKCksCisgICAgICBsYWJl
bDogInNoaXBwaW5nIG9wdGlvbiIsCisgICAgICBhbW91bnQ6IHsgY3VycmVuY3k6IHZhbGlkQ3Vy
cmVuY3ksIHZhbHVlOiAiNS4wMCIgfSwKKyAgICAgIHNlbGVjdGVkOiAhc2hpcHBpbmdPcHRpb25z
Lmxlbmd0aCwKKyAgICB9OworICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbDogZGVm
YXVsdFRvdGFsLAorICAgICAgc2hpcHBpbmdPcHRpb25zOiBbc2hpcHBpbmdPcHRpb25dLAorICAg
IH07CisgICAgdHJ5IHsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywg
ZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfSk7CisgICAgfSBjYXRjaCAoZXJyKSB7
CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24g
d2l0aCB2YWxpZCBzaGlwcGluZ09wdGlvbiBjdXJyZW5jeSBjb2RlICIke3ZhbGlkQ3VycmVuY3l9
IjogJHtlcnIubWVzc2FnZX0uYAorICAgICAgKTsKKyAgICB9CisgICAgc2hpcHBpbmdPcHRpb25z
LnB1c2goc2hpcHBpbmdPcHRpb24pOworICB9CisgIHRyeSB7CisgICAgY29uc3QgZGV0YWlscyA9
IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsK
KyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsgcmVxdWVz
dFNoaXBwaW5nOiB0cnVlIH0pOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFj
aGVkKAorICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0aCBtdWx0aXBsZSB2YWxpZCBzaHBwaW5n
T3B0aW9uczogJHtlcnIubWVzc2FnZX0uYAorICAgICk7CisgIH0KK30sICJDaGVjayBhbmQgY2Fu
b25pY2FsaXplIHZhbGlkIGRldGFpbHMuc2hpcHBpbmdPcHRpb25zIGFtb3VudC4iKTsKKwordGVz
dCgoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4
cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7CisgIGZvciAoY29uc3QgaW52YWxpZEN1cnJl
bmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7CisgICAgY29uc3Qgc2hpcHBpbmdPcHRpb24g
PSB7CisgICAgICBpZDogInRlc3QiLAorICAgICAgbGFiZWw6ICJzaGlwcGluZyBvcHRpb24iLAor
ICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiBpbnZhbGlkQ3VycmVuY3ksIHZhbHVlOiAiNS4wMCIg
fSwKKyAgICAgIHNlbGVjdGVkOiB0cnVlLAorICAgIH07CisgICAgY29uc3QgZGV0YWlscyA9IHsK
KyAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAgICBzaGlwcGluZ09wdGlvbnM6IFtzaGlw
cGluZ09wdGlvbl0sCisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgUkFOR0Vf
RVJST1IsCisgICAgICAoKSA9PiB7CisgICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfSk7CisgICAgICB9LAor
ICAgICAgYEV4cGVjdGVkIFJhbmdlRXJyb3Igd2l0aCBpbnZhbGlkIHNoaXBwaW5nT3B0aW9uIGN1
cnJlbmN5IGNvZGUgIiR7aW52YWxpZEN1cnJlbmN5fSIuYAorICAgICk7CisgIH0KK30sICJDaGVj
ayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgZGV0YWlscy5zaGlwcGluZ09wdGlvbnMgYW1vdW50
IGFuZCByZXRocm93IFJhbmdlRXJyb3IuIik7CisKKy8vIFByb2Nlc3MgcGF5bWVudCBkZXRhaWxz
IG1vZGlmaWVyczoKK3Rlc3QoKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9S
LCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNv
bnN0IHZhbGlkQ3VycmVuY3kgb2Ygd2VsbEZvcm1lZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25z
dCBtb2RpZmllciA9IHsKKyAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWlu
c1tub25leGlzdGVudF19fSIsCisgICAgICB0b3RhbDogeworICAgICAgICBsYWJlbDogIlRvdGFs
IGR1ZSIsCisgICAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6
ICI2OC4wMCIgfSwKKyAgICAgIH0sCisgICAgfTsKKyAgICBjb25zdCBkZXRhaWxzID0geworICAg
ICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKKyAg
ICB9OworICAgIHRyeSB7CisgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGRldGFpbHMpOworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgK
KyAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0aCB2YWxpZCBtb2RpZmllciBjdXJyZW5jeSBj
b2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCisgICAgICApOworICAgIH0K
KyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgbW9kaWZpZXJzW25dLnRvdGFs
IGFtb3VudC4iKTsKKwordGVzdCgoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMoUkFOR0VfRVJS
T1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7CisgIGZvciAo
Y29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7CisgICAgY29u
c3QgbW9kaWZpZXIgPSB7CisgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFp
bnNbbm9uZXhpc3RlbnRdfX0iLAorICAgICAgdG90YWw6IHsKKyAgICAgICAgbGFiZWw6ICJUb3Rh
bCBkdWUiLAorICAgICAgICBhbW91bnQ6IHsgY3VycmVuY3k6IGludmFsaWRDdXJyZW5jeSwgdmFs
dWU6ICI2OC4wMCIgfSwKKyAgICAgIH0sCisgICAgfTsKKyAgICBjb25zdCBkZXRhaWxzID0gewor
ICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwK
KyAgICB9OworICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICBSQU5HRV9FUlJPUiwKKyAgICAg
ICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRh
aWxzKTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQg
bW9kaWZpZXIgY3VycmVuY3kgY29kZSAiJHtpbnZhbGlkQ3VycmVuY3l9Ii5gCisgICAgKTsKKyAg
fQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBtb2RpZmllcnNbbl0udG90YWwg
YW1vdW50IGFuZCByZXRocm93IFJhbmdlRXJyb3IuIik7CisKKy8vIFByb2Nlc3MgcGF5bWVudCBk
ZXRhaWxzIG1vZGlmaWVyczoKK3Rlc3QoKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdF
X0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBm
b3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Ygd2VsbEZvcm1lZEN1cnJlbmN5Q29kZXMpIHsKKyAg
ICBjb25zdCBhZGRpdGlvbmFsSXRlbSA9IHsKKyAgICAgIGxhYmVsOiAiYWRkaXRpb25hbEl0ZW0i
LAorICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiB2YWxpZEN1cnJlbmN5LCB2YWx1ZTogIjMuMDAi
IH0sCisgICAgfTsKKyAgICBjb25zdCBtb2RpZmllciA9IHsKKyAgICAgIHN1cHBvcnRlZE1ldGhv
ZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fSIsCisgICAgICB0b3RhbDogZGVm
YXVsdFRvdGFsLAorICAgICAgYWRkaXRpb25hbERpc3BsYXlJdGVtczogW2FkZGl0aW9uYWxJdGVt
XSwKKyAgICB9OworICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRv
dGFsLAorICAgICAgbW9kaWZpZXJzOiBbbW9kaWZpZXJdLAorICAgIH07CisgICAgdHJ5IHsKKyAg
ICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgICAgfSBj
YXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBlY3Rl
ZCBlcnJvciB3aXRoIHZhbGlkIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXNbbl0gY3VycmVuY3kgY29k
ZSAiJHt2YWxpZEN1cnJlbmN5fSI6ICR7ZXJyLm1lc3NhZ2V9YAorICAgICAgKTsKKyAgICB9Cisg
IH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIG1vZGlmaWVyc1tuXS5hZGRpdGlv
bmFEaXNwbGF5SXRlbSBhbW91bnQuIik7CisKK3Rlc3QoKCkgPT4geworICBhc3NlcnRfdGhyb3dz
X2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93
LiIpOworICBmb3IgKGNvbnN0IGludmFsaWRDdXJyZW5jeSBvZiBpbnZhbGlkQ3VycmVuY3lDb2Rl
cykgeworICAgIGNvbnN0IGFkZGl0aW9uYWxJdGVtID0geworICAgICAgbGFiZWw6ICJhZGRpdGlv
bmFsSXRlbSIsCisgICAgICBhbW91bnQ6IHsgY3VycmVuY3k6IGludmFsaWRDdXJyZW5jeSwgdmFs
dWU6ICIzLjAwIiB9LAorICAgIH07CisgICAgY29uc3QgbW9kaWZpZXIgPSB7CisgICAgICBzdXBw
b3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0iLAorICAgICAg
dG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAgIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXM6IFthZGRp
dGlvbmFsSXRlbV0sCisgICAgfTsKKyAgICBjb25zdCBkZXRhaWxzID0geworICAgICAgdG90YWw6
IGRlZmF1bHRUb3RhbCwKKyAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKKyAgICB9OworICAg
IGFzc2VydF90aHJvd3NfanMoCisgICAgICBSQU5HRV9FUlJPUiwKKyAgICAgICgpID0+IHsKKyAg
ICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAg
IH0sCisgICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgYWRkaXRpb25hbERp
c3BsYXlJdGVtc1tuXSBjdXJyZW5jeSBjb2RlICIke2ludmFsaWRDdXJyZW5jeX0iLmAKKyAgICAp
OworICB9Cit9LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIG1vZGlmaWVyc1tuXS5h
ZGRpdGlvbmFEaXNwbGF5SXRlbSBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4iKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5n
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1wbWktaGFuZGxpbmcuaHR0cHMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY4ODhmMDM4OWY2Yzc1NmVkZThj
M2U0ODFlY2U3YmNmOGI3MWNjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1wbWktaGFuZGxpbmcuaHR0cHMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDE0OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0g
Q29weXJpZ2h0IMKpIDIwMTcgTW96aWxsYSBhbmQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZl
cnNpdHksIEJlaWhhbmcpLiAtLT4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0
IGZvciB2YWxpZGl0eSBvZiBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVycyBkdXJpbmcgY29uc3Ry
dWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KLTxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7
Ci1jb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoewotICBjdXJyZW5jeTogIlVTRCIs
Ci0gIHZhbHVlOiAiMS4wIiwKLX0pOwotY29uc3QgdmFsaWRUb3RhbCA9IE9iamVjdC5mcmVlemUo
ewotICBsYWJlbDogIkRlZmF1bHQgVG90YWwiLAotICBhbW91bnQ6IHZhbGlkQW1vdW50LAotfSk7
Ci1jb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewotICB0b3RhbDogdmFsaWRU
b3RhbCwKLX0pOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgdmFsaWRNZXRob2RzID0gWwotICAg
ICJodHRwczovL3dwdCIsCi0gICAgImh0dHBzOi8vd3B0LmZ5aS8iLAotICAgICJodHRwczovL3dw
dC5meWkvcGF5bWVudCIsCi0gICAgImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAot
ICAgICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0PyIsCi0gICAgImh0dHBzOi8vd3B0
LmZ5aS9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyIsCi0gICAgImh0dHBzOi8vd3B0LmZ5aS9wYXlt
ZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3RhbGx5IiwKLSAgICAiaHR0cHM6Ly93cHQuZnlpOjQ0My9w
YXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3RhbGx5IiwKLSAgICAiaHR0cHM6Ly93cHQuZnlpOjQ0
My9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3RhbGx5I2ZpbmUiLAotICAgICJodHRwczovLzpA
d3B0LmZ5aTo0NDMvcGF5bWVudC1yZXF1ZXN0P3RoaXM9aXMmdG90YWxseSPwn5GNIiwKLSAgICAi
IFx0aHR0cHM6Ly93cHRcbiAiLAotICAgICJodHRwczovL3huLS1jMXluMzZmIiwKLSAgICAiaHR0
cHM6Ly/pu57nnIsiLAotICBdOwotICBmb3IgKGNvbnN0IHZhbGlkTWV0aG9kIG9mIHZhbGlkTWV0
aG9kcykgewotICAgIHRyeSB7Ci0gICAgICBjb25zdCBtZXRob2RzID0gW3sgc3VwcG9ydGVkTWV0
aG9kczogdmFsaWRNZXRob2QgfV07Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywg
ZGVmYXVsdERldGFpbHMpOwotICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgYXNzZXJ0X3VucmVh
Y2hlZCgKLSAgICAgICAgYFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdpdGggdmFsaWQgc3RhbmRhcmRp
emVkIFBNSTogJHt2YWxpZE1ldGhvZH0uICR7ZXJyfWAKLSAgICAgICk7Ci0gICAgfQotICB9Ci19
LCAiTXVzdCBzdXBwb3J0IHZhbGlkIHN0YW5kYXJkIFVSTCBQTUlzIik7Ci0KLXRlc3QoKCkgPT4g
ewotICBjb25zdCB2YWxpZE1ldGhvZHMgPSBbCi0gICAgImUiLAotICAgICJuNmp6b2YwNW1rMmc0
bGh4ci11LXEtdzEtYy1pLXBhLXR5LWJkdnM5LWhvLWFlNy1wLW1kOC1zLXdxMy1oLXFkLWUtcS1z
YSIsCi0gICAgImEtYi1xLW4tcy1wdzAiLAotICAgICJtLXUiLAotICAgICJzLWw1IiwKLSAgICAi
azktZiIsCi0gICAgIm0tbCIsCi0gICAgInU0LW4tdCIsCi0gICAgImk0ODhqaDYtZzE4LWZjay15
Yi12Ny1pIiwKLSAgICAieC14LXQtdC1jMzQtbyIsCi0gICAgImJhc2ljLWNhcmQiLAotICAgIC8v
IGdldHMgY29lcmNlZCB0byAiYmFzaWMtY2FyZCIsIGZvciBjb21wYXQgd2l0aCBvbGQgdmVyc2lv
biBvZiBzcGVjCi0gICAgWyJiYXNpYy1jYXJkIl0sCi0gIF07Ci0gIGZvciAoY29uc3QgdmFsaWRN
ZXRob2Qgb2YgdmFsaWRNZXRob2RzKSB7Ci0gICAgdHJ5IHsKLSAgICAgIGNvbnN0IG1ldGhvZHMg
PSBbeyBzdXBwb3J0ZWRNZXRob2RzOiB2YWxpZE1ldGhvZCB9XTsKLSAgICAgIG5ldyBQYXltZW50
UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0g
ICAgICBhc3NlcnRfdW5yZWFjaGVkKAotICAgICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24gd2l0
aCB2YWxpZCBzdGFuZGFyZGl6ZWQgUE1JOiAke3ZhbGlkTWV0aG9kfS4gJHtlcnJ9YAotICAgICAg
KTsKLSAgICB9Ci0gIH0KLX0sICJNdXN0IG5vdCB0aHJvdyBvbiBzeW50YWN0aWNhbGx5IHZhbGlk
IHN0YW5kYXJkaXplZCBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVycywgZXZlbiBpZiB0aGV5IGFy
ZSBub3Qgc3VwcG9ydGVkIik7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCBpbnZhbGlkTWV0aG9k
cyA9IFsKLSAgICAiYmFzaWMt8J+SsyIsCi0gICAgIsKhYmFzaWMtKi1jYXJkISIsCi0gICAgIkJh
c2ljLUNhcmQiLAotICAgICIwIiwKLSAgICAiLSIsCi0gICAgIi0tIiwKLSAgICAiYS0tYiIsCi0g
ICAgIi1hLS1iIiwKLSAgICAiYS1iLSIsCi0gICAgIjAtIiwKLSAgICAiMC1hIiwKLSAgICAiYTAt
LSIsCi0gICAgIkEtIiwKLSAgICAiQS1CIiwKLSAgICAiQS1iIiwKLSAgICAiYS0wIiwKLSAgICAi
YS0wYiIsCi0gICAgIiBhLWIiLAotICAgICJcdFxuYS1iIiwKLSAgICAiYS1iICIsCi0gICAgImEt
YlxuXHQiLAotICAgICJiYXNpYy1jYXJkP25vdC1yZWFsbHkiLAotICAgICJiYXNpYy1jYXJkOi8v
bm90LW9rIiwKLSAgICAiYmFzaWMgY2FyZCIsCi0gICAgIi9iYXNpYyBjYXJkLyIsCi0gICAgIkJh
U2ljQ2FyRCIsCi0gICAgIkJBU0lDLUNBUkQiLAotICAgICIgYmFzaWMtY2FyZCAiLAotICAgICJ0
aGlzIGlzIG5vdCBzdXBwb3J0ZWQiLAotICAgICIgIiwKLSAgICAiZm9vLHZhciIsCi0gICAgWyJ2
aXNhIiwibWFzdGVyY2FyZCJdLCAvLyBzdHJpbmdpZmllcyB0byAidmlzYSxtYXN0ZXJjYXJkIgot
ICBdOwotICBmb3IgKGNvbnN0IGludmFsaWRNZXRob2Qgb2YgaW52YWxpZE1ldGhvZHMpIHsKLSAg
ICBhc3NlcnRfdGhyb3dzKAotICAgICAgbmV3IFJhbmdlRXJyb3IoKSwKLSAgICAgICgpID0+IHsK
LSAgICAgICAgY29uc3QgbWV0aG9kcyA9IFt7IHN1cHBvcnRlZE1ldGhvZHM6IGludmFsaWRNZXRo
b2QgfV07Ci0gICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWls
cyk7Ci0gICAgICB9LAotICAgICAgYGV4cGVjdGVkIFJhbmdlRXJyb3IgcHJvY2Vzc2luZyBpbnZh
bGlkIHN0YW5kYXJkaXplZCBQTUkgIiR7aW52YWxpZE1ldGhvZH0iYAotICAgICk7Ci0gIH0KLX0s
ICJNdXN0IHRocm93IG9uIHN5bnRhY3RpY2FsbHkgaW52YWxpZCBzdGFuZGFyZGl6ZWQgcGF5bWVu
dCBtZXRob2QgaWRlbnRpZmllcnMiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGludmFsaWRN
ZXRob2RzID0gWwotICAgICJodHRwczovL3VzZXJuYW1lQGV4YW1wbGUuY29tL3BheSIsCi0gICAg
Imh0dHBzOi8vOnBhc3N3b3JkQGV4YW1wbGUuY29tL3BheSIsCi0gICAgImh0dHBzOi8vdXNlcm5h
bWU6cGFzc3dvcmRAZXhhbXBsZS5jb20vcGF5IiwKLSAgICAiaHR0cDovL3VzZXJuYW1lOnBhc3N3
b3JkQGV4YW1wbGUuY29tL3BheSIsCi0gICAgImh0dHA6Ly9mb28uY29tOjEwMDAwMDAwMC9wYXki
LAotICAgICJub3QtaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi0gICAgIi4uL3Jl
YWxpdGl2ZS91cmwiLAotICAgICIvYWJzb2x1dGUvLi4vcGF0aD8iLAotICAgICJodHRwczovLyIs
Ci0gIF07Ci0gIGZvciAoY29uc3QgaW52YWxpZE1ldGhvZCBvZiBpbnZhbGlkTWV0aG9kcykgewot
ICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBuZXcgUmFuZ2VFcnJvcigpLAotICAgICAgKCkgPT4g
ewotICAgICAgICBjb25zdCBtZXRob2RzID0gW3sgc3VwcG9ydGVkTWV0aG9kczogaW52YWxpZE1l
dGhvZCB9XTsKLSAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRh
aWxzKTsKLSAgICAgIH0sCi0gICAgICBgZXhwZWN0ZWQgUmFuZ2VFcnJvciBwcm9jZXNzaW5nIGlu
dmFsaWQgVVJMIFBNSSAiJHtpbnZhbGlkTWV0aG9kfSJgCi0gICAgKTsKLSAgfQotfSwgIkNvbnN0
cnVjdG9yIE1VU1QgdGhyb3cgaWYgZ2l2ZW4gYW4gaW52YWxpZCBVUkwtYmFzZWQgcGF5bWVudCBt
ZXRob2QgaWRlbnRpZmllciIpOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVxdWVzdC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWEwNDc0ZGU2OWI3NTMxODM3YTUxMzUyZTIzZGFmYWYxMWE0MDQ4OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5z
dWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIE11c3Qgc3VwcG9ydCB2YWxp
ZCBzdGFuZGFyZCBVUkwgUE1JcyAKK1BBU1MgTXVzdCBub3QgdGhyb3cgb24gc3ludGFjdGljYWxs
eSB2YWxpZCBzdGFuZGFyZGl6ZWQgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllcnMsIGV2ZW4gaWYg
dGhleSBhcmUgbm90IHN1cHBvcnRlZCAKK1BBU1MgTXVzdCB0aHJvdyBvbiBzeW50YWN0aWNhbGx5
IGludmFsaWQgc3RhbmRhcmRpemVkIHBheW1lbnQgbWV0aG9kIGlkZW50aWZpZXJzIAorUEFTUyBD
b25zdHJ1Y3RvciBNVVNUIHRocm93IGlmIGdpdmVuIGFuIGludmFsaWQgVVJMLWJhc2VkIHBheW1l
bnQgbWV0aG9kIGlkZW50aWZpZXIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1j
dG9yLXBtaS1oYW5kbGluZy5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9y
LXBtaS1oYW5kbGluZy5odHRwcy5zdWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjE1ODM4ZjhiY2VmOTgz
N2YyMTZlZTM0NjdlZGJjN2M5ZGM0ZDE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBzLnN1Yi5odG1sCkBAIC0wLDAgKzEsMTQ5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgTW96aWxsYSBhbmQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZlcnNpdHksIEJlaWhhbmcpLiAtLT4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0IGZvciB2YWxpZGl0eSBvZiBwYXltZW50IG1ldGhvZCBp
ZGVudGlmaWVycyBkdXJpbmcgY29uc3RydWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2NvbnN0cnVj
dG9yIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Citjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVl
emUoeworICBjdXJyZW5jeTogIlVTRCIsCisgIHZhbHVlOiAiMS4wIiwKK30pOworY29uc3QgdmFs
aWRUb3RhbCA9IE9iamVjdC5mcmVlemUoeworICBsYWJlbDogIkRlZmF1bHQgVG90YWwiLAorICBh
bW91bnQ6IHZhbGlkQW1vdW50LAorfSk7Citjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5m
cmVlemUoeworICB0b3RhbDogdmFsaWRUb3RhbCwKK30pOworCit0ZXN0KCgpID0+IHsKKyAgY29u
c3QgdmFsaWRNZXRob2RzID0gWworICAgICJodHRwczovL3dwdCIsCisgICAgImh0dHBzOi8ve3tk
b21haW5zW25vbmV4aXN0ZW50XX19LyIsCisgICAgImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0
ZW50XX19L3BheW1lbnQiLAorICAgICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9w
YXltZW50LXJlcXVlc3QiLAorICAgICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9w
YXltZW50LXJlcXVlc3Q/IiwKKyAgICAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0v
cGF5bWVudC1yZXF1ZXN0P3RoaXM9aXMiLAorICAgICJodHRwczovL3t7ZG9tYWluc1tub25leGlz
dGVudF19fS9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3RhbGx5IiwKKyAgICAiaHR0cHM6Ly97
e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX06NDQzL3BheW1lbnQtcmVxdWVzdD90aGlzPWlzJnRvdGFs
bHkiLAorICAgICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fTo0NDMvcGF5bWVudC1y
ZXF1ZXN0P3RoaXM9aXMmdG90YWxseSNmaW5lIiwKKyAgICAiaHR0cHM6Ly86QHt7ZG9tYWluc1tu
b25leGlzdGVudF19fTo0NDMvcGF5bWVudC1yZXF1ZXN0P3RoaXM9aXMmdG90YWxseSPwn5GNIiwK
KyAgICAiIFx0aHR0cHM6Ly93cHRcbiAiLAorICAgICJodHRwczovL3huLS1jMXluMzZmIiwKKyAg
ICAiaHR0cHM6Ly/pu57nnIsiLAorICBdOworICBmb3IgKGNvbnN0IHZhbGlkTWV0aG9kIG9mIHZh
bGlkTWV0aG9kcykgeworICAgIHRyeSB7CisgICAgICBjb25zdCBtZXRob2RzID0gW3sgc3VwcG9y
dGVkTWV0aG9kczogdmFsaWRNZXRob2QgfV07CisgICAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0
aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgKKyAgICAgICAgYFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdpdGggdmFsaWQgc3Rh
bmRhcmRpemVkIFBNSTogJHt2YWxpZE1ldGhvZH0uICR7ZXJyfWAKKyAgICAgICk7CisgICAgfQor
ICB9Cit9LCAiTXVzdCBzdXBwb3J0IHZhbGlkIHN0YW5kYXJkIFVSTCBQTUlzIik7CisKK3Rlc3Qo
KCkgPT4geworICBjb25zdCB2YWxpZE1ldGhvZHMgPSBbCisgICAgImUiLAorICAgICJuNmp6b2Yw
NW1rMmc0bGh4ci11LXEtdzEtYy1pLXBhLXR5LWJkdnM5LWhvLWFlNy1wLW1kOC1zLXdxMy1oLXFk
LWUtcS1zYSIsCisgICAgImEtYi1xLW4tcy1wdzAiLAorICAgICJtLXUiLAorICAgICJzLWw1IiwK
KyAgICAiazktZiIsCisgICAgIm0tbCIsCisgICAgInU0LW4tdCIsCisgICAgImk0ODhqaDYtZzE4
LWZjay15Yi12Ny1pIiwKKyAgICAieC14LXQtdC1jMzQtbyIsCisgICAgImJhc2ljLWNhcmQiLAor
ICAgIC8vIGdldHMgY29lcmNlZCB0byAiYmFzaWMtY2FyZCIsIGZvciBjb21wYXQgd2l0aCBvbGQg
dmVyc2lvbiBvZiBzcGVjCisgICAgWyJiYXNpYy1jYXJkIl0sCisgIF07CisgIGZvciAoY29uc3Qg
dmFsaWRNZXRob2Qgb2YgdmFsaWRNZXRob2RzKSB7CisgICAgdHJ5IHsKKyAgICAgIGNvbnN0IG1l
dGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiB2YWxpZE1ldGhvZCB9XTsKKyAgICAgIG5ldyBQ
YXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJy
KSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBlY3RlZCBleGNlcHRp
b24gd2l0aCB2YWxpZCBzdGFuZGFyZGl6ZWQgUE1JOiAke3ZhbGlkTWV0aG9kfS4gJHtlcnJ9YAor
ICAgICAgKTsKKyAgICB9CisgIH0KK30sICJNdXN0IG5vdCB0aHJvdyBvbiBzeW50YWN0aWNhbGx5
IHZhbGlkIHN0YW5kYXJkaXplZCBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVycywgZXZlbiBpZiB0
aGV5IGFyZSBub3Qgc3VwcG9ydGVkIik7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBpbnZhbGlk
TWV0aG9kcyA9IFsKKyAgICAiYmFzaWMt8J+SsyIsCisgICAgIsKhYmFzaWMtKi1jYXJkISIsCisg
ICAgIkJhc2ljLUNhcmQiLAorICAgICIwIiwKKyAgICAiLSIsCisgICAgIi0tIiwKKyAgICAiYS0t
YiIsCisgICAgIi1hLS1iIiwKKyAgICAiYS1iLSIsCisgICAgIjAtIiwKKyAgICAiMC1hIiwKKyAg
ICAiYTAtLSIsCisgICAgIkEtIiwKKyAgICAiQS1CIiwKKyAgICAiQS1iIiwKKyAgICAiYS0wIiwK
KyAgICAiYS0wYiIsCisgICAgIiBhLWIiLAorICAgICJcdFxuYS1iIiwKKyAgICAiYS1iICIsCisg
ICAgImEtYlxuXHQiLAorICAgICJiYXNpYy1jYXJkP25vdC1yZWFsbHkiLAorICAgICJiYXNpYy1j
YXJkOi8vbm90LW9rIiwKKyAgICAiYmFzaWMgY2FyZCIsCisgICAgIi9iYXNpYyBjYXJkLyIsCisg
ICAgIkJhU2ljQ2FyRCIsCisgICAgIkJBU0lDLUNBUkQiLAorICAgICIgYmFzaWMtY2FyZCAiLAor
ICAgICJ0aGlzIGlzIG5vdCBzdXBwb3J0ZWQiLAorICAgICIgIiwKKyAgICAiZm9vLHZhciIsCisg
ICAgWyJ2aXNhIiwibWFzdGVyY2FyZCJdLCAvLyBzdHJpbmdpZmllcyB0byAidmlzYSxtYXN0ZXJj
YXJkIgorICBdOworICBmb3IgKGNvbnN0IGludmFsaWRNZXRob2Qgb2YgaW52YWxpZE1ldGhvZHMp
IHsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgUmFuZ2VFcnJvciwKKyAgICAgICgpID0+
IHsKKyAgICAgICAgY29uc3QgbWV0aG9kcyA9IFt7IHN1cHBvcnRlZE1ldGhvZHM6IGludmFsaWRN
ZXRob2QgfV07CisgICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0
YWlscyk7CisgICAgICB9LAorICAgICAgYGV4cGVjdGVkIFJhbmdlRXJyb3IgcHJvY2Vzc2luZyBp
bnZhbGlkIHN0YW5kYXJkaXplZCBQTUkgIiR7aW52YWxpZE1ldGhvZH0iYAorICAgICk7CisgIH0K
K30sICJNdXN0IHRocm93IG9uIHN5bnRhY3RpY2FsbHkgaW52YWxpZCBzdGFuZGFyZGl6ZWQgcGF5
bWVudCBtZXRob2QgaWRlbnRpZmllcnMiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGludmFs
aWRNZXRob2RzID0gWworICAgICJodHRwczovL3VzZXJuYW1lQGV4YW1wbGUuY29tL3BheSIsCisg
ICAgImh0dHBzOi8vOnBhc3N3b3JkQGV4YW1wbGUuY29tL3BheSIsCisgICAgImh0dHBzOi8vdXNl
cm5hbWU6cGFzc3dvcmRAZXhhbXBsZS5jb20vcGF5IiwKKyAgICAiaHR0cDovL3VzZXJuYW1lOnBh
c3N3b3JkQGV4YW1wbGUuY29tL3BheSIsCisgICAgImh0dHA6Ly9mb28uY29tOjEwMDAwMDAwMC9w
YXkiLAorICAgICJub3QtaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1y
ZXF1ZXN0IiwKKyAgICAiLi4vcmVhbGl0aXZlL3VybCIsCisgICAgIi9hYnNvbHV0ZS8uLi9wYXRo
PyIsCisgICAgImh0dHBzOi8vIiwKKyAgXTsKKyAgZm9yIChjb25zdCBpbnZhbGlkTWV0aG9kIG9m
IGludmFsaWRNZXRob2RzKSB7CisgICAgYXNzZXJ0X3Rocm93c19qcygKKyAgICAgIFJhbmdlRXJy
b3IsCisgICAgICAoKSA9PiB7CisgICAgICAgIGNvbnN0IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRN
ZXRob2RzOiBpbnZhbGlkTWV0aG9kIH1dOworICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0
aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgICAgfSwKKyAgICAgIGBleHBlY3RlZCBSYW5nZUVy
cm9yIHByb2Nlc3NpbmcgaW52YWxpZCBVUkwgUE1JICIke2ludmFsaWRNZXRob2R9ImAKKyAgICAp
OworICB9Cit9LCAiQ29uc3RydWN0b3IgTVVTVCB0aHJvdyBpZiBnaXZlbiBhbiBpbnZhbGlkIFVS
TC1iYXNlZCBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVyIik7CisKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtbWFu
dWFsLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFz
ZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1tYW51YWwudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MGY3MjAwZWRlYTQ4NmI0ODA0ZjJjYmI5ZjI4MjQ3MWM0NmVkMjU1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1
bWVudC1tZXRob2QtbWFudWFsLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNSBAQAorTWFudWFsIHRlc3RzIGZvciBoYXNFbnJvbGxlZEluc3RydW1lbnQoKSBtZXRob2QK
KworRm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgZnJvbSB0b3AgdG8gYm90dG9tLiBDbGljayBvbiBl
YWNoIGJ1dHRvbiBpbiBzZXF1ZW5jZSB3aXRob3V0IHJlZnJlc2hpbmcgdGhlIHBhZ2UuIFNvbWUg
b2YgdGhlIHRlc3RzIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSBhbmQgY2xv
c2UgdGhlbSBhdXRvbWF0aWNhbGx5LiBJZiBhIHBheW1lbnQgc2hlZXQgc3RheXMgb3BlbiwgdGhl
IHRlc3QgaGFzIGZhaWxlZC4KKworRm9sbG93IGJyb3dzZXItc3BlY2lmaWMgaW5zdHJ1Y3Rpb25z
IHRvIHJlbW92ZSBhbGwgY2FyZHMgZnJvbSB0aGUgdGVzdCBwcm9maWxlLgoraGFzRW5yb2xsZWRJ
bnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2Ugd2hlbiB1c2VyIGhhcyBubyBlbnJvbGxlZCBp
bnN0cnVtZW50LgorQWRkIGEgdGVzdCBWaXNhIGNhcmQgdG8geW91ciB0ZXN0IHByb2ZpbGUsIGUu
Zy4gNDAxMjg4ODg4ODg4MTg4MS4KK2hhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHJlc29sdmVzIHRv
IHRydWUgd2hlbiB1c2VyIGhhcyBhbiBlbnJvbGxlZCBpbnN0cnVtZW50LgoraGFzRW5yb2xsZWRJ
bnN0cnVtZW50KCkgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpZiB0aGUgcGF5bWVudCBt
ZXRob2QgZGV0YWlscyBhcmUgaWRlbnRpY2FsLgorRG9uZSEKK0lmIHlvdSBmaW5kIGEgYnVnZ3kg
dGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZp
ZXdlcnMuCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9k
LW1hbnVhbC50ZW50YXRpdmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJv
bGxlZGluc3RydW1lbnQtbWV0aG9kLW1hbnVhbC50ZW50YXRpdmUuaHR0cHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNmIxNjRmN2NjN2I4ZjFjNTdiOGZhOWZkMTRjYmM3ZjVlZjgxZWVhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2Qt
bWFudWFsLnRlbnRhdGl2ZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPk1hbnVhbCB0ZXN0cyBmb3IgUGF5
bWVudFJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgbWV0aG9kPC90aXRsZT4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8j
aGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgorc2V0dXAoeworICBleHBsaWNpdF9k
b25lOiB0cnVlLAorICBleHBsaWNpdF90aW1lb3V0OiB0cnVlLAorfSk7CisKK2NvbnN0IGRlZmF1
bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbCisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAi
YmFzaWMtY2FyZCIsCisgICAgZGF0YTogeworICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsgJ3Zp
c2EnIF0sCisgICAgfSwKKyAgfQorXSk7Citjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5m
cmVlemUoeworICB0b3RhbDogeworICAgIGxhYmVsOiAiVG90YWwiLAorICAgIGFtb3VudDogewor
ICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgdmFsdWU6ICIxLjAwIiwKKyAgICB9LAorICB9
LAorfSk7CisKK2Z1bmN0aW9uIHRlc3RIYXNOb0Vucm9sbGVkSW5zdHJ1bWVudCgpIHsKKyAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgICBhc3NlcnRfZmFsc2Uo
CisgICAgICBhd2FpdCByZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpLAorICAgICAgIk5v
IHRlc3QgZW5yb2xsZWQgaW4gdGhlIHRlc3QgcHJvZmlsZS4iCisgICAgKTsKKyAgfSwgYGhhc0Vu
cm9sbGVkSW5zdHJ1bWVudCgpIHJlc29sdmVzIHRvIGZhbHNlIHdoZW4gdXNlciBoYXMgbm8gZW5y
b2xsZWQgaW5zdHJ1bWVudC5gKTsKK30KKworZnVuY3Rpb24gdGVzdEhhc0Vucm9sbGVkSW5zdHJ1
bWVudCgpIHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHJlcXVlc3Qg
PSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAg
ICBhc3NlcnRfdHJ1ZSgKKyAgICAgIGF3YWl0IHJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50
KCksCisgICAgICAiQSBjYXJkIGlzIGVucm9sbGVkIGluIHRoZSB0ZXN0IHByb2ZpbGUuIgorICAg
ICk7CisgIH0sIGBoYXNFbnJvbGxlZEluc3RydW1lbnQoKSByZXNvbHZlcyB0byB0cnVlIHdoZW4g
dXNlciBoYXMgYW4gZW5yb2xsZWQgaW5zdHJ1bWVudC5gKTsKK30KKworZnVuY3Rpb24gdGVzdEhh
c0Vucm9sbGVkSW5zdHJ1bWVudEFnYWluKCkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywg
ZGVmYXVsdERldGFpbHMpOworICAgIGFzc2VydF90cnVlKAorICAgICAgYXdhaXQgcmVxdWVzdC5o
YXNFbnJvbGxlZEluc3RydW1lbnQoKSwKKyAgICAgICJBIGNhcmQgaXMgZW5yb2xsZWQgaW4gdGhl
IHRlc3QgcHJvZmlsZS4iCisgICAgKTsKKyAgfSwgYGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIGNh
biBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlIHBheW1lbnQgbWV0aG9kIGRldGFpbHMg
YXJlIGlkZW50aWNhbC5gKTsKK30KKzwvc2NyaXB0PgorCis8aDI+TWFudWFsIHRlc3RzIGZvciBo
YXNFbnJvbGxlZEluc3RydW1lbnQoKSBtZXRob2Q8L2gyPgorPHA+CisgIEZvbGxvdyB0aGUgaW5z
dHJ1Y3Rpb25zIGZyb20gdG9wIHRvIGJvdHRvbS4gQ2xpY2sgb24gZWFjaCBidXR0b24gaW4gc2Vx
dWVuY2UKKyAgd2l0aG91dCByZWZyZXNoaW5nIHRoZSBwYWdlLiBTb21lIG9mIHRoZSB0ZXN0cyB3
aWxsIGJyaW5nIHVwIHRoZSBQYXltZW50CisgIFJlcXVlc3QgVUkgYW5kIGNsb3NlIHRoZW0gYXV0
b21hdGljYWxseS4gSWYgYSBwYXltZW50IHNoZWV0IHN0YXlzIG9wZW4sIHRoZQorICB0ZXN0IGhh
cyBmYWlsZWQuCis8L3A+Cis8b2w+CisgIDxsaT5Gb2xsb3cgYnJvd3Nlci1zcGVjaWZpYyBpbnN0
cnVjdGlvbnMgdG8gcmVtb3ZlIGFsbCBjYXJkcyBmcm9tIHRoZSB0ZXN0IHByb2ZpbGUuPC9saT4K
KyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0idGVzdEhhc05vRW5yb2xsZWRJbnN0cnVtZW50
KCkiPgorICAgICAgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2Ugd2hl
biB1c2VyIGhhcyBubyBlbnJvbGxlZCBpbnN0cnVtZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xp
PgorICA8bGk+QWRkIGEgdGVzdCBWaXNhIGNhcmQgdG8geW91ciB0ZXN0IHByb2ZpbGUsIGUuZy4g
NDAxMjg4ODg4ODg4MTg4MS48L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0
SGFzRW5yb2xsZWRJbnN0cnVtZW50KCkiPgorICAgICAgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkg
cmVzb2x2ZXMgdG8gdHJ1ZSB3aGVuIHVzZXIgaGFzIGFuIGVucm9sbGVkIGluc3RydW1lbnQuCisg
ICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InRlc3RI
YXNFbnJvbGxlZEluc3RydW1lbnRBZ2FpbigpIj4KKyAgICAgIGhhc0Vucm9sbGVkSW5zdHJ1bWVu
dCgpIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlIHBheW1lbnQgbWV0aG9kCisg
ICAgICBkZXRhaWxzIGFyZSBpZGVudGljYWwuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxs
aT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9ImRvbmUoKSI+RG9uZSE8L2J1dHRvbj4KKyAgPC9saT4K
Kzwvb2w+Cis8c21hbGw+CisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhy
ZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+Zmls
ZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9N
RVRBLnltbCI+c3VnZ2VzdGVkIHJldmlld2VyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJvdGVjdGlv
bi50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vu
cm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJvdGVjdGlvbi50ZW50YXRpdmUuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmEzMWQ0MDMxMDdmNmVkNTZmNjY5YTE5Y2FjZGZlMmRkN2EyZTMz
NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0
cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACitJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVn
IGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZXJzLgorCitGQUlMIE9wdGlvbmFs
bHksIGF0IHRoZSB1c2VyIGFnZW50J3MgZGlzY3JldGlvbiwgcmV0dXJuIGEgcHJvbWlzZSByZWpl
Y3RlZCB3aXRoIGEgIk5vdEFsbG93ZWRFcnJvciIgRE9NRXhjZXB0aW9uLiBhc3NlcnRfZXF1YWxz
OiBJZiBpdCB0aHJvd3MsIHRoZW4gaXQgbXVzdCBiZSBhIE5vdEFsbG93ZWRFcnJvci4gZXhwZWN0
ZWQgIk5vdEFsbG93ZWRFcnJvciIgYnV0IGdvdCAiVHlwZUVycm9yIgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9u
LnRlbnRhdGl2ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5z
dHJ1bWVudC1tZXRob2QtcHJvdGVjdGlvbi50ZW50YXRpdmUuaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZGExMTMwNGEyMTQyNzA0MGY3MjMxN2UzNzQ2ZmVlYmIyNTFkMTJlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJv
dGVjdGlvbi50ZW50YXRpdmUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0cyBmb3IgUGF5bWVudFJl
cXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgbWV0aG9kPC90aXRsZT4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jaGFzZW5y
b2xsZWRpbnN0cnVtZW50LW1ldGhvZCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpz
Jz48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB2aXNhTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7
CisgICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAorICAgIGRhdGE6IHsKKyAgICAg
IHN1cHBvcnRlZE5ldHdvcmtzOiBbJ3Zpc2EnXQorICAgIH0KK30pOworY29uc3QgbWFzdGVyY2Fy
ZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeworICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1j
YXJkIiwKKyAgICBkYXRhOiB7CisgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWydtYXN0ZXJjYXJk
J10KKyAgICB9Cit9KTsKK2NvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7Cisg
IHRvdGFsOiB7CisgICAgbGFiZWw6ICJUb3RhbCIsCisgICAgYW1vdW50OiB7CisgICAgICBjdXJy
ZW5jeTogIlVTRCIsCisgICAgICB2YWx1ZTogIjEuMDAiLAorICAgIH0sCisgIH0sCit9KTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAvLyBUaGlzIHRlc3QgbWF5IG5ldmVyIGFjdHVh
bGx5IGhpdCBpdHMgYXNzZXJ0aW9uLCBidXQgdGhhdCdzIGFsbG93ZWQuCisgIGNvbnN0IHJlcXVl
c3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3Zpc2FNZXRob2RdLCBkZWZhdWx0RGV0YWlscyk7Cisg
IGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7CisgICAgdHJ5IHsKKyAgICAgIGF3YWl0
IHJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCk7CisgICAgfSBjYXRjaCAoZXJyKSB7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICBlcnIubmFtZSwKKyAgICAgICAgIk5vdEFsbG93
ZWRFcnJvciIsCisgICAgICAgICJJZiBpdCB0aHJvd3MsIHRoZW4gaXQgbXVzdCBiZSBhIE5vdEFs
bG93ZWRFcnJvci4iCisgICAgICApOworICAgICAgYnJlYWs7CisgICAgfQorICB9CisKKyAgZm9y
IChsZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKKyAgICB0cnkgeworICAgICAgY29uc3QgcmVx
dWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoW21hc3RlcmNhcmRNZXRob2RdLCBkZWZhdWx0RGV0
YWlscyk7CisgICAgICBhd2FpdCByZXF1ZXN0Mi5oYXNFbnJvbGxlZEluc3RydW1lbnQoKTsKKyAg
ICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgIGVyci5uYW1l
LAorICAgICAgICAiTm90QWxsb3dlZEVycm9yIiwKKyAgICAgICAgIklmIGl0IHRocm93cywgdGhl
biBpdCBtdXN0IGJlIGEgTm90QWxsb3dlZEVycm9yLiIKKyAgICAgICk7CisgICAgICBicmVhazsK
KyAgICB9CisgIH0KK30sIGBPcHRpb25hbGx5LCBhdCB0aGUgdXNlciBhZ2VudCdzIGRpc2NyZXRp
b24sIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhICJOb3RBbGxvd2VkRXJyb3IiIERP
TUV4Y2VwdGlvbi5gKTsKKworPC9zY3JpcHQ+CisKKzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBi
dWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUg
PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9t
YXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sIj5zdWdnZXN0ZWQgcmV2aWV3ZXJzPC9hPi4K
Kzwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0
cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MWFmNmIxNzA2NWEzZmViNzA3Mzk2NWExMzlhNGUzMjIzZjg1
MDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5z
dHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKK0lmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBv
bmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZpZXdlcnMuCisKK0ZBSUwgaGFzRW5yb2xsZWRJbnN0cnVt
ZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2UgZm9yIHVuc3VwcG9ydGVkIHBheW1lbnQgbWV0aG9kcy4g
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiByZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpJywgJ3JlcXVlc3QuaGFzRW5yb2xs
ZWRJbnN0cnVtZW50JyBpcyB1bmRlZmluZWQpIgorRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBp
cyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAi
SW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiByZXF1ZXN0Lmhhc0Vucm9s
bGVkSW5zdHJ1bWVudCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdyZXF1ZXN0Lmhhc0Vucm9sbGVk
SW5zdHJ1bWVudCgpJywgJ3JlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50JyBpcyB1bmRlZmlu
ZWQpIgorRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4g
YSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRp
b24uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1l
dGhvZC50ZW50YXRpdmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxl
ZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1NTMx
MmNlMzNiMGRhMmZjZDFkMTYxOWI2ZDdmZjhjNjE0YTRmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0cyBmb3IgUGF5bWVudFJlcXVlc3QuaGFzRW5yb2xsZWRJ
bnN0cnVtZW50KCkgbWV0aG9kPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1l
dGhvZCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisidXNlIHN0cmljdCI7Citjb25zdCB1bnN1cHBvcnRlZE1ldGhvZHMgPSBbCisgIHsgc3Vw
cG9ydGVkTWV0aG9kczogInRoaXMtaXMtbm90LXN1cHBvcnRlZCIgfSwKKyAgeyBzdXBwb3J0ZWRN
ZXRob2RzOiAiaHR0cHM6Ly9ub3Quc3VwcG9ydGVkIiB9LAorXTsKK2NvbnN0IGRlZmF1bHRNZXRo
b2RzID0gT2JqZWN0LmZyZWV6ZShbCisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMt
Y2FyZCIsCisgICAgZGF0YTogeworICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsgJ3Zpc2EnIF0s
CisgICAgfSwKKyAgfQorXSk7Citjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUo
eworICB0b3RhbDogeworICAgIGxhYmVsOiAiVG90YWwiLAorICAgIGFtb3VudDogeworICAgICAg
Y3VycmVuY3k6ICJVU0QiLAorICAgICAgdmFsdWU6ICIxLjAwIiwKKyAgICB9LAorICB9LAorfSk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXlt
ZW50UmVxdWVzdCh1bnN1cHBvcnRlZE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgYXNzZXJ0
X2ZhbHNlKAorICAgIGF3YWl0IHJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCksCisgICAg
Imhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHNob3VsZCByZXNvbHZlIHRvIGZhbHNlLiIKKyAgKTsK
K30sIGBoYXNFbnJvbGxlZEluc3RydW1lbnQoKSByZXNvbHZlcyB0byBmYWxzZSBmb3IgdW5zdXBw
b3J0ZWQgcGF5bWVudCBtZXRob2RzLmApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1
bHREZXRhaWxzKTsKKyAgY29uc3QgW2FjY2VwdFByb21pc2UsIGhhc0Vucm9sbGVkSW5zdHJ1bWVu
dFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAic2hvdyBwYXltZW50
IHJlcXVlc3QiLAorICAgICAgKCkgPT4geworICAgICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0g
cmVxdWVzdC5zaG93KCk7ICAvLyBTZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2ZSIKKyAgICAgICAg
Y29uc3QgaGFzRW5yb2xsZWRJbnN0cnVtZW50UHJvbWlzZSA9IHJlcXVlc3QuaGFzRW5yb2xsZWRJ
bnN0cnVtZW50KCk7CisgICAgICAgIHJldHVybiBbYWNjZXB0UHJvbWlzZSwgaGFzRW5yb2xsZWRJ
bnN0cnVtZW50UHJvbWlzZV07CisgICAgICB9KTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2Rv
bSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCBoYXNFbnJvbGxlZEluc3RydW1lbnRQcm9taXNlKTsK
KworICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20o
dCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKK30sIGBJZiByZXF1ZXN0Lltbc3RhdGVd
XSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBh
biAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi5gKTsKKworcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRN
ZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFthYm9ydFByb21pc2UsIGFjY2VwdFBy
b21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoICJzaG93IHBheW1lbnQgcmVxdWVzdCIs
ICgpID0+IHsKKyAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7ICAvLyBT
ZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2ZSIKKyAgICBhY2NlcHRQcm9taXNlLmNhdGNoKCgpID0+
IHt9KTsgIC8vIG5vLW9wLCBqdXN0IHRvIGhhbmRsZSB1bmhhbmRsZWQgcmVqZWN0aW9uIGluIGRl
dnRvb2xzLgorICAgIGNvbnN0IGFib3J0UHJvbWlzZSA9cmVxdWVzdC5hYm9ydCgpOyAgLy8gU2V0
cyBzdGF0ZSB0byAiY2xvc2VkIgorICAgIHJldHVybiBbYWJvcnRQcm9taXNlLCBhY2NlcHRQcm9t
aXNlXTsKKyAgfSk7CisgIGF3YWl0IGFib3J0UHJvbWlzZTsKKyAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzX2RvbSh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UpOworCisgIGNvbnN0IGhhc0Vu
cm9sbGVkSW5zdHJ1bWVudFByb21pc2UgPSByZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgp
OworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIGhh
c0Vucm9sbGVkSW5zdHJ1bWVudFByb21pc2UpOworfSwgYElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlz
ICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxp
ZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi5gKTsKKzwvc2NyaXB0PgorCis8c21hbGw+CisgIElm
IHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRh
ZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+c3VnZ2VzdGVkIHJl
dmlld2VyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LW9u
c2hpcHBpbmdhZGRyZXNzY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LW9uc2hpcHBpbmdhZGRyZXNzY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCmluZGV4
IDVjNTRkNDg1NjhhNDA3ODFkZjg1Nzk4NmJjZGE1ZmM4YWIwODE4OWIuLjViMjUzODk5MmY3NmM3
NzQyNTlmNTJiNzM0YmM4NDQ0NjhmYzE0ZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1vbnNoaXBwaW5nYWRkcmVzc2NoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3Qtb25zaGlwcGluZ2FkZHJlc3NjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0
bWwKQEAgLTcsOCArNywxOCBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICJ1c2Ugc3RyaWN0IjsKK2NvbnN0IGFwcGxl
UGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxl
LmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFu
dElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJV
UyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBw
b3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOwogY29uc3QgYmFzaWNDYXJkID0gT2Jq
ZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IGRl
ZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkXSk7Citjb25zdCBkZWZhdWx0
TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRl
ZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHRvdGFsOiB7CiAgICAgbGFiZWw6ICJU
b3RhbCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtb25zaGlwcGluZ29wdGlvbmNo
YW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5n
b3B0aW9uY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCmluZGV4IGE0ZDhmYmM0ODI1ZjhlNzk3
Zjk0NzhkOGJkZDA4OWU0MzkxNDkxYTkuLjQzZWE1ZGNjZTg3YWZlOWRmZjAzODc4OTFkNTdjMzI2
NWJlMzAzZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5nb3B0aW9u
Y2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1vbnNo
aXBwaW5nb3B0aW9uY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCkBAIC03LDggKzcsMTggQEAK
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUo
eworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAg
ZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hh
bnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2Fw
YWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlz
YSJdLAorICB9Cit9KTsKIGNvbnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0
ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVj
dC5mcmVlemUoW2Jhc2ljQ2FyZF0pOworY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJl
ZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVj
dC5mcmVlemUoewogICB0b3RhbDogewogICAgIGxhYmVsOiAiVG90YWwiLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LXNoaXBwaW5nVHlwZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ1R5cGUtYXR0cmlidXRlLmh0dHBzLmh0bWwKaW5kZXgg
YjFlZDBkMDI4ODYwZWE5Yzk4ZGQxYTYxYmEyMzlkYjc1YTdlMzg2NC4uMTFmNzViMWM4NjIyMjRi
NTY1NWNiNzI0ZDhjOGY1YjI1YWIxYWYwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0
LXNoaXBwaW5nVHlwZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3Qtc2hpcHBpbmdUeXBlLWF0dHJpYnV0ZS5odHRwcy5odG1sCkBAIC04LDggKzgsMTggQEAKIDxz
Y3JpcHQ+CiAidXNlIHN0cmljdCI7CiBjb25zdCBwYXltZW50U2hpcGluZ1R5cGVzID0gT2JqZWN0
LmZyZWV6ZShbImRlbGl2ZXJ5IiwgInBpY2t1cCIsICJzaGlwcGluZyJdKTsKK2NvbnN0IGFwcGxl
UGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxl
LmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFu
dElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJV
UyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBw
b3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOwogY29uc3QgYmFzaWNDYXJkID0gT2Jq
ZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IGRl
ZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkXSk7Citjb25zdCBkZWZhdWx0
TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRl
ZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHRvdGFsOiB7CiAgICAgbGFiZWw6ICIi
LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbAppbmRleCBjNmU2OWQ0
YzU4NzYwMmQ1MTYwMmFlYTQxMjI0NzMxZTY5MmFmMmFlLi5kY2Y3OGVmNDI4MWM0MjU2ZWNiNDE0
MWIzZjkzZDE1YTk0NzgwNWEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1t
ZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0
cHMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgogPHRpdGxlPlRlc3QgZm9yIFBheW1lbnRSZXF1ZXN0LnNob3coKSBtZXRob2Q8L3Rp
dGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nl
ci1wYXltZW50LWFwaS8jc2hvdy1tZXRob2QiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1ZXN0LyNzaG93LW1ldGhvZCI+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KQEAgLTEwLDcgKzEwLDE2IEBACiAi
dXNlIHN0cmljdCI7CiBjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoWwogICB7
IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0sCisgIHsKKyAgICBzdXBwb3J0ZWRNZXRo
b2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgICBkYXRhOiB7CisgICAgICB2
ZXJzaW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1w
bGUiLAorICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgICBtZXJjaGFudENhcGFiaWxpdGll
czogWyJzdXBwb3J0czNEUyJdLAorICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAor
ICAgIH0KKyAgfSwKIF0pOwogCiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUo
ewpAQCAtMjYsNTMgKzM1LDgwIEBAIGNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6
ZSh7CiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKICAgY29uc3QgYWNj
ZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOwotICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwg
IlNlY3VyaXR5RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKKyAgLy8gQWJvcnQgdGhlIHJlcXVlc3Qg
YWZ0ZXIgMiBzZWNvbmRzIGlmIGl0IGhhcyBub3QgcmVqZWN0ZWQuIFRoaXMgYWxsb3dzIHRoZQor
ICAvLyBvdGhlciB0ZXN0cyBpbiB0aGlzIGZpbGUgdG8gcnVuIGV2ZW4gaWYgYSBub24tY29tcGxp
YW50IGJyb3dzZXIgc2hvd3MgdGhlCisgIC8vIHBheW1lbnQgc2hlZXQgd2l0aG91dCB1c2VyIGFj
dGl2YXRpb24uCisgIHQuc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICB0LmZvcmNlX3RpbWVvdXQo
KTsKKyAgICByZXF1ZXN0LmFib3J0KCk7CisgIH0sIDIwMDApOworCisgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20odCwgIlNlY3VyaXR5RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKIH0sIGBDYWxs
aW5nIHNob3coKSB3aXRob3V0IGJlaW5nIHRyaWdnZXJlZCBieSB1c2VyIGludGVyYWN0aW9uIHRo
cm93c2ApOwogCi1wcm9taXNlX3Rlc3QodCA9PiB7Ci0gIHJldHVybiB0ZXN0X2RyaXZlci5ibGVz
cygic2hvdyBwYXltZW50IHJlcXVlc3QiLCBhc3luYyAoKSA9PiB7Ci0gICAgY29uc3QgcmVxdWVz
dCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwot
ICAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0
byAiaW50ZXJhY3RpdmUiCi0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3Rh
dGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKLSAgICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0g
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7
Ci0gIH0pOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0
IFthY2NlcHRQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICJ0ZXN0OiB0
aHJvd3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1dIGlzIG5vdCAnY3JlYXRlZCciLAorICAgICgp
ID0+IHsKKyAgICAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1ZXN0LnNob3coKTsgLy8gU2V0
cyBzdGF0ZSB0byAiaW50ZXJhY3RpdmUiCisgICAgICByZXR1cm4gW2FjY2VwdFByb21pc2VdOwor
ICAgIH0pOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJv
ciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOworICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CiB9LCAi
VGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVdXSBpcyBub3QgJ2NyZWF0ZWQnLiIpOwogCi1w
cm9taXNlX3Rlc3QodCA9PiB7Ci0gIHJldHVybiB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXlt
ZW50IHJlcXVlc3QiLCBhc3luYyAoKSA9PiB7Ci0gICAgY29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgICBjb25zdCBy
ZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFp
bHMpOwotICAgIGNvbnN0IGFjY2VwdFByb21pc2UxID0gcmVxdWVzdDEuc2hvdygpOwotICAgIGNv
bnN0IGFjY2VwdFByb21pc2UyID0gcmVxdWVzdDIuc2hvdygpOwotICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UyKTsKLSAgICBhd2FpdCByZXF1
ZXN0MS5hYm9ydCgpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIs
IGFjY2VwdFByb21pc2UxKTsKLSAgfSk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0
RGV0YWlscyk7CisgIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRN
ZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFthY2NlcHRQcm9taXNlMV0gPSBhd2Fp
dCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICBgdGVzdDogcmVqZWN0IHByb21pc2Ugd2l0aCAiQWJv
cnRlZEVycm9yIiBpZiBwYXltZW50IHJlcXVlc3QgaXMgYWxyZWFkeSBzaG93aW5nYCwKKyAgICBh
c3luYyAoKSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNlMSA9IHJlcXVlc3QxLnNob3co
KTsKKyAgICAgIGNvbnN0IGFjY2VwdFByb21pc2UyID0gcmVxdWVzdDIuc2hvdygpOworICAgICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2Uy
KTsKKyAgICAgIHJldHVybiBbYWNjZXB0UHJvbWlzZTFdOworICAgIH0pOworCisgIGF3YWl0IHJl
cXVlc3QxLmFib3J0KCk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJy
b3IiLCBhY2NlcHRQcm9taXNlMSk7CiB9LCBgSWYgdGhlIHVzZXIgYWdlbnQncyAicGF5bWVudCBy
ZXF1ZXN0IGlzIHNob3dpbmciIGJvb2xlYW4gaXMgdHJ1ZSwgdGhlbiByZXR1cm4gYSBwcm9taXNl
IHJlamVjdGVkIHdpdGggYW4gIkFib3J0RXJyb3IiIERPTUV4Y2VwdGlvbi5gKTsKIAotcHJvbWlz
ZV90ZXN0KHQgPT4gewotICByZXR1cm4gdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCBy
ZXF1ZXN0IiwgYXN5bmMgKCkgPT4gewotICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJl
cXVlc3QoCi0gICAgICBbeyBzdXBwb3J0ZWRNZXRob2RzOiAidGhpcy1pcy1ub3Qtc3VwcG9ydGVk
IiB9XSwKLSAgICAgIGRlZmF1bHREZXRhaWxzCi0gICAgKTsKLSAgICBjb25zdCBhY2NlcHRQcm9t
aXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJOb3RT
dXBwb3J0ZWRFcnJvciIsIGFjY2VwdFByb21pc2UpOwotICB9KTsKK3Byb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCgKKyAgICBbeyBz
dXBwb3J0ZWRNZXRob2RzOiAidGhpcy1pcy1ub3Qtc3VwcG9ydGVkIiB9XSwKKyAgICBkZWZhdWx0
RGV0YWlscworICApOworICBjb25zdCBbYWNjZXB0UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZl
ci5ibGVzcygKKyAgICBgdGVzdDogcmVqZWN0IHByb21pc2Ugd2l0aCAiTm90U3VwcG9ydGVkRXJy
b3IiYCwKKyAgICAoKSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5z
aG93KCk7CisgICAgICByZXR1cm4gW2FjY2VwdFByb21pc2VdOworICAgIH0pOworICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfZG9tKHQsICJOb3RTdXBwb3J0ZWRFcnJvciIsIGFjY2VwdFByb21pc2Up
OwogfSwgYElmIHBheW1lbnQgbWV0aG9kIGNvbnN1bHRhdGlvbiBwcm9kdWNlcyBubyBzdXBwb3J0
ZWQgbWV0aG9kIG9mIHBheW1lbnQsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGEgIk5vdFN1cHBvcnRlZEVycm9yIiBET01FeGNlcHRpb24uYCk7CiAKLXByb21pc2VfdGVzdCh0
ID0+IHsKLSAgcmV0dXJuIHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIs
IGFzeW5jICgpID0+IHsKLSAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAot
ICAgICAgW3sgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH1dLAotICAgICAgZGVmYXVs
dERldGFpbHMKLSAgICApOwotICAgIGNvbnN0IHByb21pc2VzID0gbmV3IFNldChbcmVxdWVzdC5z
aG93KCksIHJlcXVlc3Quc2hvdygpLCByZXF1ZXN0LnNob3coKV0pOwotICAgIGF3YWl0IHJlcXVl
c3QuYWJvcnQoKTsKLSAgICBhc3NlcnRfZXF1YWxzKHByb21pc2VzLnNpemUsIDMsICJNdXN0IGhh
dmUgdGhyZWUgdW5pcXVlIG9iamVjdHMiKTsKLSAgfSk7Ci19LCAiQ2FsbGluZyBzaG93KCkgbXVs
dGlwbGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9iamVjdC4iKTsKK3Byb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBbcDEsIHAyLCBwM10gPSBhd2FpdCB0ZXN0
X2RyaXZlci5ibGVzcygKKyAgICBgdGVzdDogY2FsbGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMg
YWx3YXlzIHJldHVybnMgYSBuZXcgcHJvbWlzZWAsCisgICAgKCkgPT4geworICAgICAgY29uc3Qg
cDEgPSByZXF1ZXN0LnNob3coKTsKKyAgICAgIGNvbnN0IHAyID0gcmVxdWVzdC5zaG93KCk7Cisg
ICAgICBjb25zdCBwMyA9IHJlcXVlc3Quc2hvdygpOworICAgICAgcmV0dXJuIFtwMSwgcDIsIHAz
XTsKKyAgICB9KTsKKyAgY29uc3QgcHJvbWlzZXMgPSBuZXcgU2V0KFtwMSwgcDIsIHAzXSk7Cisg
IGFzc2VydF9lcXVhbHMocHJvbWlzZXMuc2l6ZSwgMywgIk11c3QgaGF2ZSB0aHJlZSB1bmlxdWUg
b2JqZWN0cyIpOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0
ZUVycm9yIiwgcDIpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3Rh
dGVFcnJvciIsIHAzKTsKKworICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CisgIGF3YWl0IHByb21p
c2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBwMSk7Cit9LCAiQ2FsbGluZyBzaG93KCkg
bXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMgYSBuZXcgcHJvbWlzZS4iKTsKKwogPC9zY3Jp
cHQ+CiA8c21hbGw+CiAgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9
Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBh
IGJ1ZzwvYT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvY29tcGxldGUtbWV0aG9k
LW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9jb21wbGV0ZS1tZXRob2Qt
bWFudWFsLmh0dHBzLmh0bWwKaW5kZXggYTlkYTllZWQ5Y2JhZWQwNTQwZWY1NDJmNzU4OTZmNTMy
YTYwZDEzZS4uZjdmYWNkNzk4MDAxNjE4OWQzZGJlZTY1M2EzODg5OWRhMjZiZWQ5NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9jb21wbGV0ZS1tZXRob2QtbWFudWFsLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9jb21wbGV0ZS1tZXRob2QtbWFudWFsLmh0dHBz
Lmh0bWwKQEAgLTEyLDEzICsxMiwxNiBAQCBhc3luYyBmdW5jdGlvbiBydW5NYW51YWxUZXN0KHsg
Y29tcGxldGVXaXRoOiByZXN1bHQgfSwgYnV0dG9uKSB7CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRy
dWU7CiAgIGNvbnN0IHsgcmVzcG9uc2UsIHJlcXVlc3QgfSA9IGF3YWl0IGdldFBheW1lbnRSZXF1
ZXN0UmVzcG9uc2UoKTsKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGxldCBjb21w
bGV0ZVByb21pc2U7CisgICAgbGV0IGludmFsaWRDb21wbGV0ZTsKKyAgICBsZXQgYWZ0ZXJDb21w
bGV0ZTsKICAgICB0cnkgewogICAgICAgLy8gV2UgLmNvbXBsZXRlKCkgYXMgbm9ybWFsLCB1c2lu
ZyB0aGUgcGFzc2VkIHRlc3QgdmFsdWUKLSAgICAgIGNvbnN0IGNvbXBsZXRlUHJvbWlzZSA9IHJl
c3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7CisgICAgICBjb21wbGV0ZVByb21pc2UgPSByZXNwb25z
ZS5jb21wbGV0ZShyZXN1bHQpOwogICAgICAgYXNzZXJ0X3RydWUoY29tcGxldGVQcm9taXNlIGlu
c3RhbmNlb2YgUHJvbWlzZSwgInJldHVybnMgYSBwcm9taXNlIik7CiAgICAgICAvLyBJbW1lZGlh
dGVseSBjYWxsaW5nIGNvbXBsZXRlKCkgYWdhaW4geWllbGRzIGEgcmVqZWN0ZWQgcHJvbWlzZS4K
LSAgICAgIGNvbnN0IGludmFsaWRDb21wbGV0ZSA9IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7
Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwgaW52
YWxpZENvbXBsZXRlKTsKKyAgICAgIGludmFsaWRDb21wbGV0ZSA9IHJlc3BvbnNlLmNvbXBsZXRl
KHJlc3VsdCk7CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3Rh
dGVFcnJvciIsIGludmFsaWRDb21wbGV0ZSk7CiAgICAgICAvLyBidXQgdGhlIG9yaWdpbmFsIHBy
b21pc2UgaXMgdW5hZmZlY3RlZAogICAgICAgY29uc3QgcmV0dXJuZWRWYWx1ZSA9IGF3YWl0IGNv
bXBsZXRlUHJvbWlzZTsKICAgICAgIGFzc2VydF9lcXVhbHMoCkBAIC0yOCw4ICszMSw4IEBAIGFz
eW5jIGZ1bmN0aW9uIHJ1bk1hbnVhbFRlc3QoeyBjb21wbGV0ZVdpdGg6IHJlc3VsdCB9LCBidXR0
b24pIHsKICAgICAgICk7CiAgICAgICAvLyBXZSBub3cgY2FsbCAuY29tcGxldGUoKSBhZ2Fpbiwg
dG8gZm9yY2UgYW4gZXhjZXB0aW9uCiAgICAgICAvLyBiZWNhdXNlIFtbY29tcGxldGVdXSBpcyB0
cnVlLgotICAgICAgY29uc3QgYWZ0ZXJDb21wbGV0ZSA9IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3Vs
dCk7Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwg
YWZ0ZXJDb21wbGV0ZSk7CisgICAgICBhZnRlckNvbXBsZXRlID0gcmVzcG9uc2UuY29tcGxldGUo
cmVzdWx0KTsKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0
ZUVycm9yIiwgYWZ0ZXJDb21wbGV0ZSk7CiAgICAgICBidXR0b24uaW5uZXJIVE1MID0gYOKchSAg
JHtidXR0b24udGV4dENvbnRlbnR9YDsKICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgIGJ1dHRv
bi5pbm5lckhUTUwgPSBg4p2MICAke2J1dHRvbi50ZXh0Q29udGVudH1gOwpAQCAtNDEsNyArNDQs
NyBAQCBhc3luYyBmdW5jdGlvbiBydW5NYW51YWxUZXN0KHsgY29tcGxldGVXaXRoOiByZXN1bHQg
fSwgYnV0dG9uKSB7CiAgICAgICBhZnRlckNvbXBsZXRlLAogICAgIF0pOwogICAgIGFzc2VydF9l
cXVhbHMoCi0gICAgICBhbGxQcm9taXNlcy5sZW5ndGgsCisgICAgICBhbGxQcm9taXNlcy5zaXpl
LAogICAgICAgMywKICAgICAgICJDYWxsaW5nIGNvbXBsZXRlKCkgbXVsdGlwbGUgdGltZXMgaXMg
YWx3YXlzIGEgbmV3IG9iamVjdC4iCiAgICAgKTsKQEAgLTY4LDcgKzcxLDcgQEAgYXN5bmMgZnVu
Y3Rpb24gcnVuTWFudWFsVGVzdCh7IGNvbXBsZXRlV2l0aDogcmVzdWx0IH0sIGJ1dHRvbikgewog
ICAgIDwvYnV0dG9uPgogICA8L2xpPgogICA8bGk+Ci0gICAgPGJ1dHRvbiBvbmNsaWNrPSJydW5N
YW51YWxUZXN0KHtjb21wbGV0ZVdpdGg6ICd1bmtub3duJ30sIHRoaXMpIj4KKyAgICA8YnV0dG9u
IG9uY2xpY2s9InJ1bk1hbnVhbFRlc3Qoe2NvbXBsZXRlV2l0aDogdW5kZWZpbmVkfSwgdGhpcyki
PgogICAgICAgUGFzc2luZyBubyBhcmd1bWVudCBkZWZhdWx0cyB0byAidW5rbm93biIsCiAgICAg
ICBldmVudHVhbGx5IGNsb3NpbmcgdGhlIHNoZWV0IGFuZCBkb2Vzbid0IHRocm93LgogICAgIDwv
YnV0dG9uPgpAQCAtNzksMTAgKzgyLDE4IEBAIGFzeW5jIGZ1bmN0aW9uIHJ1bk1hbnVhbFRlc3Qo
eyBjb21wbGV0ZVdpdGg6IHJlc3VsdCB9LCBidXR0b24pIHsKICAgICA8L2J1dHRvbj4KICAgPC9s
aT4KICAgPGxpPgotICAgIDxidXR0b24gb25jbGljaz0icnVuTWFudWFsVGVzdCh7Y29tcGxldGVX
aXRoOiAnZmFpbCd9LCB0aGlzKS50aGVuKGRvbmUpIj4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InJ1
bk1hbnVhbFRlc3Qoe2NvbXBsZXRlV2l0aDogJ2ZhaWwnfSwgdGhpcykiPgogICAgICAgUGFzc2lu
ZyAiZmFpbCIgZXZlbnR1YWxseSBjbG9zZXMgdGhlIHNoZWV0IGFuZCBkb2Vzbid0IHRocm93Lgog
ICAgIDwvYnV0dG9uPgogICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJydW5N
YW51YWxUZXN0KHtjb21wbGV0ZVdpdGg6ICd1bmtub3duJ30sIHRoaXMpIj4KKyAgICAgIFBhc3Np
bmcgInVua25vd24iIGV2ZW50dWFsbHkgY2xvc2VzIHRoZSBzaGVldCBhbmQgZG9lc24ndCB0aHJv
dy4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0i
ZG9uZSgpIj5Eb25lITwvYnV0dG9uPgorICA8L2xpPgogPC9vbD4KIDxzbWFsbD4KICAgSWYgeW91
IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXNwb25zZS9oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9oZWxw
ZXJzLmpzCmluZGV4IDgwN2Y3OTRlNzFlZmIzNWY4NjIyZWIwYWE0NzhhZTZhNjAzOWMyNjAuLjNl
NGY1Y2ZkMzZmODk4YzExNjcxN2MxMTUxODA2Zjk2NjUxMWE5NDUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVzcG9uc2UvaGVscGVycy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL2hlbHBl
cnMuanMKQEAgLTEsMTAgKzEsMjEgQEAKIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhw
bGljaXRfdGltZW91dDogdHJ1ZSB9KTsKIAorY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXpl
KHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisg
IGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNo
YW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENh
cGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZp
c2EiXSwKKyAgfQorfSk7CisKIGNvbnN0IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CiAg
IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiwKIH0pOwogCi1jb25zdCB2YWxpZE1ldGhv
ZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOworY29uc3QgdmFsaWRNZXRob2RzID0g
T2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5XSk7CiAKIGNvbnN0IHZhbGlkQW1v
dW50ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGN1cnJlbmN5OiAiVVNEIiwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVzcG9uc2Uvb25wYXllcmRldGFpbGNoYW5nZS1hdHRyaWJ1dGUtbWFudWFsLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL29ucGF5ZXJkZXRhaWxjaGFuZ2UtYXR0cmli
dXRlLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGM4ZGQ5MjYzNmM2MzkyYjI0MzZjODIzNTM0MDM1
NWM0NTI5ZTEyYzEuLjU3MzE5NTJjMGViYzBlODA4NWNiMzQwYjViN2NmYzQ3ODg0OWZjOTkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2Uvb25wYXllcmRldGFpbGNoYW5nZS1hdHRyaWJ1
dGUtbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9vbnBheWVyZGV0
YWlsY2hhbmdlLWF0dHJpYnV0ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtMTYsNyArMTYsMTQgQEAg
ZnVuY3Rpb24gcnVuVGVzdChidXR0b24sIG9wdGlvbnMsIGV4cGVjdGVkKXsKICAgICBhd2FpdCBy
ZXNwb25zZS5yZXRyeSh7IGVycm9yIH0pOwogICAgIGNvbnN0IGV2ZW50ID0gYXdhaXQgZXZlbnRQ
cm9taXNlOwogICAgIGFzc2VydF90cnVlKGV2ZW50IGluc3RhbmNlb2YgUGF5bWVudFJlcXVlc3RV
cGRhdGVFdmVudCk7Ci0gICAgZm9yKGNvbnN0IFtwcm9wLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJp
ZXMoZXhwZWN0ZWQpKXsKKyAgICBmb3IoW3Byb3AsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhl
eHBlY3RlZCkpeworICAgICAgaWYgKHByb3AgPT09ICdwYXllclBob25lJykgeworICAgICAgICAv
LyB8cGF5ZXJQaG9uZXwgbWF5IG9wdGlvbmFsbHkgYWRoZXJlIHRvIEUxNjQgc3RydWN0dXJlLCB3
aGljaCBkb2VzIG5vdAorICAgICAgICAvLyBjb250YWluIGZvcm1hdHRpbmcsIGUuZy4gKzE4MDAw
MDAwMCBpbnN0ZWFkIG9mICsxLTgwMC0wMDAtMDAwMC4KKyAgICAgICAgLy8gU3RyaXAgb3V0IHRo
ZSBmb3JtYXR0aW5nIGluIGNhc2UgdGhlIHVzZXIgYWdlbnQgaW1wbGVtZW50cyBFMTY0LgorICAg
ICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1ZXN0LyNhZGRyZXNzaW5p
dC1kaWN0aW9uYXJ5CisgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvWy1cKFwpIF0vZywg
JycpOworICAgICAgfQogICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZVtwcm9wXSwgdmFsdWUp
OwogICAgIH0KICAgICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3VjY2VzcyIpOwpAQCAtNTIs
NyArNTksNyBAQCBmdW5jdGlvbiBydW5UZXN0KGJ1dHRvbiwgb3B0aW9ucywgZXhwZWN0ZWQpewog
ICAgIDxwPgogICAgICAgQ2hhbmdlIHBheWVyJ3MgcGhvbmUgdG8gIisxLTgwMC0wMDAtMDAwMCIu
CiAgICAgPC9wPgotICAgIDxidXR0b24gb25jbGljaz0icnVuVGVzdCh0aGlzLCB7cmVxdWVzdFBh
eWVyUGhvbmU6IHRydWV9LCB7IHBheWVyUGhvbmU6ICcrMS04MDAtMDAwLTAwMDAnIH0pIj4KKyAg
ICA8YnV0dG9uIG9uY2xpY2s9InJ1blRlc3QodGhpcywge3JlcXVlc3RQYXllclBob25lOiB0cnVl
fSwgeyBwYXllclBob25lOiAnKzE4MDAwMDAwMDAwJyB9KSI+CiAgICAgICBQYXltZW50UmVxdWVz
dFVwZGF0ZUV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiBwYXllciBwaG9uZSBjaGFuZ2VzLgogICAg
IDwvYnV0dG9uPgogICA8L2xpPgpAQCAtNjIsNSArNjksNSBAQCBmdW5jdGlvbiBydW5UZXN0KGJ1
dHRvbiwgb3B0aW9ucywgZXhwZWN0ZWQpewogPC9vbD4KIDxzbWFsbD4KICAgSWYgeW91IGZpbmQg
YSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgotICBhbmQgdGFnIG9uZSBvZiB0
aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxv
Yi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L09XTkVSUyI+b3duZXJzPC9hPi4KKyAgYW5kIHRhZyBv
bmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+b3duZXJzPC9hPi4KIDwv
c21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5n
ZS11cGRhdGVXaXRoLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1pbW1lZGlhdGUtbWFu
dWFsLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGJlNTAzMzg2OWFlMTFjNTFhMzlh
YzZhMjc5NjIwYmQ5NGQyM2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitIYW5kbGluZyBQYXltZW50UmVzcG9uc2UucHJv
dG90eXBlLm9ucGF5ZXJkZXRhaWxjaGFuZ2UgZXZlbnRzCisKK1RoZSB0ZXN0IGJyaW5ncyB1cCB0
aGUgUGF5bWVudCBSZXF1ZXN0IFVJIHdpbmRvdy4gV2hlbiBzaG93biB0aGUgcGF5bWVudCBzaGVl
dCwgdXNlIGFueSBkZXRhaWxzIGFuZCBoaXQgcGF5LgorCitXaGVuIGFza2VkIHRvIHJldHJ5IHRo
ZSBwYXltZW50OgorCitDaGFuZ2UgcGF5ZXIncyBuYW1lIHRvIGFueXRoaW5nLgorCit1cGRhdGVX
aXRoKCkgbXVzdCBiZSBjYWxsZWQgaW1tZWRpYXRlbHksIG90aGVyd2lzZSBtdXN0IHRocm93IGFu
IEludmFsaWRTdGF0ZUVycm9yLgorRE9ORSEKK0lmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxl
YXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIG93bmVycy4KKworSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1BBU1MgQ2FuIGNvbnN0cnVjdCBhIHBheW1l
bnQgcmVxdWVzdCAoc21va2UgdGVzdCkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3Bv
bnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRhdGVXaXRoLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgt
aW1tZWRpYXRlLW1hbnVhbC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlMzVkNzg3MDA2ZWJiNTU0
YzMwNWFiYzM4YTQyN2E0MTM1Njc2ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJl
c3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRhdGVXaXRoLWltbWVkaWF0ZS1tYW51YWwuaHR0
cHMuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
dXRmLTg+Cis8dGl0bGU+RGlzcGF0Y2hpbmcgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCBmb3Ig
InBheWVyZGV0YWlsc2NoYW5nZSI8L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdEltbWVkaWF0ZVVwZGF0ZSh7IHRleHRDb250ZW50OiB0ZXN0
TmFtZSB9KSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCByZXNwb25z
ZSA9IGF3YWl0IGdldFBheW1lbnRSZXNwb25zZSh7IHJlcXVlc3RQYXllck5hbWU6IHRydWUgfSk7
CisgICAgY29uc3QgZXZlbnRQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkg
PT4geworICAgICAgcmVzcG9uc2UuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgInBheWVyZGV0
YWlsY2hhbmdlIiwKKyAgICAgICAgZXYgPT4geworICAgICAgICAgIC8vIEZvcmNlcyB1cGRhdGVX
aXRoKCkgdG8gYmUgcnVuIGluIHRoZSBuZXh0IGV2ZW50IGxvb3AgdGljayBzbyB0aGF0CisgICAg
ICAgICAgLy8gW1t3YWl0Rm9yVXBkYXRlXV0gaXMgYWxyZWFkeSB0cnVlIHdoZW4gaXQgcnVucy4K
KyAgICAgICAgICB0LnN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICB0cnkgeworICAg
ICAgICAgICAgICBldi51cGRhdGVXaXRoKHt9KTsKKyAgICAgICAgICAgICAgcmVzb2x2ZSgpOyAv
LyBUaGlzIGlzIGJhZC4KKyAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgICAgICAg
ICByZWplY3QoZXJyKTsgLy8gdGhpcyBpcyBnb29kLgorICAgICAgICAgICAgfQorICAgICAgICAg
IH0pOworICAgICAgICB9LAorICAgICAgICB7IG9uY2U6IHRydWUgfQorICAgICAgKTsKKyAgICB9
KTsKKworICAgIGNvbnN0IHJldHJ5UHJvbWlzZSA9IHJlc3BvbnNlLnJldHJ5KHsKKyAgICAgIHBh
eWVyOiB7IG5hbWU6ICJDaGFuZ2UgbWUhIiB9LAorICAgIH0pOworICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20oCisgICAgICB0LAorICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAg
IGV2ZW50UHJvbWlzZSwKKyAgICAgICJUaGUgZXZlbnQgbG9vcCBhbHJlYWR5IHNwdW4sIHNvIFtb
d2FpdEZvclVwZGF0ZV1dIGlzIG5vdyB0cnVlIgorICAgICk7CisgICAgYXdhaXQgcmV0cnlQcm9t
aXNlOworICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRlKCJzdWNjZXNzIik7CisgIH0sIHRlc3RO
YW1lLnRyaW0oKSk7Cit9Cis8L3NjcmlwdD4KKzxoMj5IYW5kbGluZyBQYXltZW50UmVzcG9uc2Uu
cHJvdG90eXBlLm9ucGF5ZXJkZXRhaWxjaGFuZ2UgZXZlbnRzPC9oMj4KKzxwPgorICBUaGUgdGVz
dCBicmluZ3MgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuCisgIFdoZW4gc2hvd24g
dGhlIHBheW1lbnQgc2hlZXQsIHVzZSBhbnkgZGV0YWlscyBhbmQgaGl0IHBheS4KKzwvcD4KKzxw
PgorICBXaGVuIGFza2VkIHRvIHJldHJ5IHRoZSBwYXltZW50OgorPC9wPgorPG9sPgorICA8bGk+
CisgICAgPHA+CisgICAgICBDaGFuZ2UgcGF5ZXIncyBuYW1lIHRvIGFueXRoaW5nLgorICAgIDwv
cD4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InRlc3RJbW1lZGlhdGVVcGRhdGUodGhpcyk7Ij4KKyAg
ICAgIHVwZGF0ZVdpdGgoKSBtdXN0IGJlIGNhbGxlZCBpbW1lZGlhdGVseSwgb3RoZXJ3aXNlIG11
c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IuCisgICAgPC9idXR0b24+CisgIDwvbGk+Cisg
IDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9ImRvbmUoKTsiPkRPTkUhPC9idXR0b24+CisgIDwv
bGk+Cis8L29sPgorPHNtYWxsPgorICBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSA8
YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMi
PmZpbGUgYSBidWc8L2E+CisgIGFuZCB0YWcgb25lIG9mIHRoZSA8YSBocmVmPSJodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVl
c3QvTUVUQS55bWwiPm93bmVyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1tYW51YWwuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRl
V2l0aC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5M2Q3YTVhZWNhZTEw
MzZhZmEzMGQwZDgyOTQ5NDVmZWYzY2E3MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRhdGVXaXRoLW1hbnVhbC5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorSGFuZGxpbmcgUGF5bWVudFJlc3BvbnNlLnByb3Rv
dHlwZS5vbnBheWVyZGV0YWlsY2hhbmdlIGV2ZW50cworCitUaGUgdGVzdCBicmluZ3MgdXAgdGhl
IFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuIFdoZW4gc2hvd24gdGhlIHBheW1lbnQgc2hlZXQs
IHVzZSBhbnkgZGV0YWlscyBhbmQgaGl0IHBheS4KKworV2hlbiBhc2tlZCB0byByZXRyeSB0aGUg
cGF5bWVudDoKKworQ2hhbmdlIHBheWVyJ3MgbmFtZSB0byBhbnl0aGluZy4KKworQ2FsbGluZyBQ
YXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IHVwZGF0ZVdpdGgoKSB0d2ljZSB0aHJvd3MgYW4gIklu
dmFsaWRTdGF0ZUVycm9yIi4KK0RPTkUhCitJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFz
ZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBvd25lcnMuCisKK0hhcm5lc3MgRXJyb3Ig
KFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitQQVNTIENhbiBjb25zdHJ1Y3QgYSBwYXltZW50
IHJlcXVlc3QgKHNtb2tlIHRlc3QpLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgtbWFudWFsLmh0dHBz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWE3MzQyMzY1ZDY0NGY2NDcwZWEyY2UyNWZlODVjZmZhZTY0Nzk0
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hh
bmdlLXVwZGF0ZVdpdGgtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPkRpc3BhdGNoaW5nIFBheW1l
bnRSZXF1ZXN0VXBkYXRlRXZlbnQgZm9yICJwYXllcmRldGFpbHNjaGFuZ2UiPC90aXRsZT4KKzxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
ImhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoYnV0dG9u
KSB7CisgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldFBheW1lbnRSZXNwb25zZSh7IHJlcXVl
c3RQYXllck5hbWU6IHRydWUgfSk7CisgICAgY29uc3QgZXZlbnRQcm9taXNlID0gbmV3IFByb21p
c2UoKF8sIHJlamVjdCkgPT4geworICAgICAgcmVzcG9uc2UuYWRkRXZlbnRMaXN0ZW5lcigicGF5
ZXJkZXRhaWxjaGFuZ2UiLCBldiA9PiB7CisgICAgICAgIC8vIFtbd2FpdEZvclVwZGF0ZV1dIGJl
Y29tZXMgdHJ1ZS4uLgorICAgICAgICBldi51cGRhdGVXaXRoKHt9KTsKKyAgICAgICAgLy8gU28g
Y2FsbGluZyBpdCBhZ2FpbiB0aHJvd3MgIkludmFsaWRTdGF0ZUVycm9yIi4KKyAgICAgICAgdHJ5
IHsKKyAgICAgICAgICBldi51cGRhdGVXaXRoKHt9KTsKKyAgICAgICAgfSBjYXRjaCAoZXJyKSB7
CisgICAgICAgICAgcmVqZWN0KGVycik7CisgICAgICAgIH0KKyAgICAgIH0pOworICAgIH0pOwor
ICAgIGF3YWl0IHJlc3BvbnNlLnJldHJ5KHsKKyAgICAgIHBheWVyOiB7IG5hbWU6ICJDaGFuZ2Ug
bWUhIiB9LAorICAgIH0pOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFs
aWRTdGF0ZUVycm9yIiwgZXZlbnRQcm9taXNlKTsKKyAgICBhd2FpdCByZXNwb25zZS5jb21wbGV0
ZSgic3VjY2VzcyIpOworICB9LCBidXR0b24udGV4dENvbnRlbnQudHJpbSgpKTsKK30KKzwvc2Ny
aXB0PgorPGgyPkhhbmRsaW5nIFBheW1lbnRSZXNwb25zZS5wcm90b3R5cGUub25wYXllcmRldGFp
bGNoYW5nZSBldmVudHM8L2gyPgorPHA+CisgIFRoZSB0ZXN0IGJyaW5ncyB1cCB0aGUgUGF5bWVu
dCBSZXF1ZXN0IFVJIHdpbmRvdy4KKyAgV2hlbiBzaG93biB0aGUgcGF5bWVudCBzaGVldCwgdXNl
IGFueSBkZXRhaWxzIGFuZCBoaXQgcGF5LgorPC9wPgorPHA+CisgIFdoZW4gYXNrZWQgdG8gcmV0
cnkgdGhlIHBheW1lbnQ6Cis8L3A+Cis8b2w+CisgIDxsaT4KKyAgICA8cD4KKyAgICAgIENoYW5n
ZSBwYXllcidzIG5hbWUgdG8gYW55dGhpbmcuCisgICAgPC9wPgorICAgIDxidXR0b24gb25jbGlj
az0icnVuVGVzdCh0aGlzKTsiPgorICAgICAgQ2FsbGluZyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2
ZW50IHVwZGF0ZVdpdGgoKSB0d2ljZSB0aHJvd3MgYW4gIkludmFsaWRTdGF0ZUVycm9yIi4KKyAg
ICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0iZG9uZSgp
OyI+RE9ORSE8L2J1dHRvbj4KKyAgPC9saT4KKzwvb2w+Cis8c21hbGw+CisgIElmIHlvdSBmaW5k
IGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2Yg
dGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Js
b2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+b3duZXJzPC9hPi4KKzwvc21hbGw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JlamVjdHNfaWZfbm90X2FjdGl2ZS1t
YW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmVqZWN0c19pZl9ub3RfYWN0
aXZlLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDYwZGQ5NjU1ZGQ1YmFmY2RiNzc2OGI5Mjk2OTZj
YjkxMDQyMTRiMjkuLjI4YmI1MzMxM2RjZTkyNjY0NTNiODlmM2JkOThkN2MwMWNiOWVhNjggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVh
bC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmVqZWN0c19pZl9ub3RfYWN0
aXZlLW1hbnVhbC5odHRwcy5odG1sCkBAIC0xMSw3ICsxMSwxNyBAQCBzZXR1cCh7IGV4cGxpY2l0
X2RvbmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7CiBjb25zdCB2YWxpZE1ldGhv
ZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiB9
KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citj
b25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0
cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisg
ICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50
cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0s
CisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKK2NvbnN0IHZhbGlk
TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kLCBhcHBsZVBheV0pOwogY29uc3Qg
dmFsaWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKICAgY3VycmVuY3k6ICJVU0QiLAogICB2YWx1
ZTogIjUuMDAiLApAQCAtNjIsNyArNzIsNyBAQCBmdW5jdGlvbiBtZXRob2ROb3RGdWxseUFjdGl2
ZShidXR0b24sIG1ldGhvZCwgLi4uYXJncykgewogICAgIC8vIE5vdywgcmVzcG9uc2UncyByZWxl
dmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4KICAgICAv
LyBTbywgcHJvbWlzZSBuZWVkcyB0byByZWplY3QgYXBwcm9wcmlhdGVseS4KICAgICBjb25zdCBw
cm9taXNlID0gcmVzcG9uc2VbbWV0aG9kTmFtZV0oLi4uYXJncyk7Ci0gICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAg
ICAgIkFib3J0RXJyb3IiLAogICAgICAgcHJvbWlzZSwKQEAgLTk3LDcgKzEwNyw3IEBAIGZ1bmN0
aW9uIG1ldGhvZEJlY29tZXNOb3RGdWxseUFjdGl2ZShidXR0b24sIG1ldGhvZE5hbWUsIC4uLmFy
Z3MpIHsKIAogICAgIC8vIE5vdywgcmVzcG9uc2UncyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3Mg
ZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4KICAgICAvLyBTbywgcHJvbWlzZSBuZWVkcyB0
byByZWplY3QgYXBwcm9wcmlhdGVseS4KLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAgICAiQWJvcnRFcnJvciIs
CiAgICAgICBwcm9taXNlLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZXRyeS1t
ZXRob2QtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhv
ZC1tYW51YWwuaHR0cHMuaHRtbAppbmRleCAxNmVkMTVlNTQ5MDJiOTM0ODVlZTNiZTdhMjYzNTgy
M2U4NzYzYjA2Li5hNWFhYjQ5ZTM4N2QzMjZjNjhiY2NhMzJkMmFkNWZlNTkzODVmNTE3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRt
bApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBjaGVja0NvbXBsZXRlZENhbnRSZXRyeShidXR0
b24pIHsKICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSBhd2FpdCBnZXRQYXltZW50UmVxdWVzdFJl
c3BvbnNlKCk7CiAgICAgLy8gc2V0cyByZXNwb25zZS5bW2NvbXBsZXRlXV0gdG8gdHJ1ZS4KICAg
ICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3VjY2VzcyIpOwotICAgIHJldHVybiBwcm9taXNl
X3JlamVjdHMoCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAg
ICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIHJlc3BvbnNlLnJldHJ5KCksCkBAIC0zOSw3
ICszOSw3IEBAIGZ1bmN0aW9uIHJlcGVhdGVkQ2FsbHNUb1JldHJ5KGJ1dHRvbikgewogICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgZ2V0
UGF5bWVudFJlcXVlc3RSZXNwb25zZSgpOwogICAgIGNvbnN0IHJldHJ5UHJvbWlzZSA9IHJlc3Bv
bnNlLnJldHJ5KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21p
c2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAg
ICAgIHJlc3BvbnNlLnJldHJ5KCksCkBAIC01NSwxMiArNTUsMzAgQEAgZnVuY3Rpb24gY2FsbENv
bXBsZXRlV2hpbGVSZXRyeWluZyhidXR0b24pIHsKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
ewogICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9u
c2UoKTsKICAgICBjb25zdCByZXRyeVByb21pc2UgPSByZXNwb25zZS5yZXRyeSgpOwotICAgIGF3
YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBjb25zdCBjb21wbGV0ZVByb21pc2UxID0gcmVzcG9u
c2UuY29tcGxldGUoInN1Y2Nlc3MiKTsKKyAgICBjb25zdCBjb21wbGV0ZVByb21pc2UyID0gcmVz
cG9uc2UuY29tcGxldGUoImZhaWwiKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscygKKyAgICAgIGNv
bXBsZXRlUHJvbWlzZTEsCisgICAgICBjb21wbGV0ZVByb21pc2UyLAorICAgICAgImNvbXBsZXRl
KCkgbXVzdCByZXR1cm4gdW5pcXVlIHByb21pc2VzIgorICAgICk7CisgICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAotICAg
ICAgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiKSwKKyAgICAgIGNvbXBsZXRlUHJvbWlzZTEs
CisgICAgICAiQ2FsbGluZyBjb21wbGV0ZSgpIHdoaWxlIHJldHJ5aW5nIHJlamVjdHMgd2l0aCBh
biBJbnZhbGlkU3RhdGVFcnJvciIKKyAgICApOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19k
b20oCisgICAgICB0LAorICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgIGNvbXBsZXRl
UHJvbWlzZTIsCiAgICAgICAiQ2FsbGluZyBjb21wbGV0ZSgpIHdoaWxlIHJldHJ5aW5nIHJlamVj
dHMgd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvciIKICAgICApOworICAgIGFzc2VydF9ub3RfZXF1
YWxzKAorICAgICAgY29tcGxldGVQcm9taXNlMSwKKyAgICAgIGNvbXBsZXRlUHJvbWlzZTIsCisg
ICAgICAiY29tcGxldGUoKSBtdXN0IHJldHVybiB1bmlxdWUgcHJvbWlzZXMiCisgICAgKTsKICAg
ICBhd2FpdCByZXRyeVByb21pc2U7CiAgICAgYXdhaXQgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nl
c3MiKTsKICAgfSwgYnV0dG9uLnRleHRDb250ZW50LnRyaW0oKSk7CkBAIC03MSw3ICs4OSw3IEBA
IGZ1bmN0aW9uIGNhbGxpbmdSZXF1ZXN0QWJvcnRNdXN0Tm90QWJvcnQoYnV0dG9uKSB7CiAgIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCB7IHJlc3BvbnNlLCByZXF1ZXN0IH0g
PSBhd2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3BvbnNlKCk7CiAgICAgY29uc3QgcmV0cnlQcm9t
aXNlID0gcmVzcG9uc2UucmV0cnkoKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAgICAiSW52YWxpZFN0YXRl
RXJyb3IiLAogICAgICAgcmVxdWVzdC5hYm9ydCgpLApAQCAtOTcsNyArMTE1LDcgQEAgZnVuY3Rp
b24gY2FuUmV0cnlNdWx0aXBsZVRpbWVzKGJ1dHRvbikgewogICAgICAgIkV4cGVjdGVkIHVuZGVm
aW5lZCBhcyB0aGUgcmVzb2x2ZSB2YWx1ZSIKICAgICApOwogICAgIGF3YWl0IHJlc3BvbnNlLmNv
bXBsZXRlKCJzdWNjZXNzIik7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0
IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9y
IiwKICAgICAgIHJlc3BvbnNlLnJldHJ5KCksCkBAIC0xMTAsMTkgKzEyOCwxOSBAQCBmdW5jdGlv
biB1c2VyQ2FuQWJvcnRBUmV0cnkoYnV0dG9uKSB7CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7
CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSBh
d2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3BvbnNlKCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkFi
b3J0RXJyb3IiLAogICAgICAgcmVzcG9uc2UucmV0cnkoKSwKICAgICAgICJUaGUgdXNlciBhYm9y
dGluZyBhIHJldHJ5IHJlamVjdHMgd2l0aCBhIEFib3J0RXJyb3IiCiAgICAgKTsKLSAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAg
IHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgcmVzcG9uc2UucmV0cnkoKSwK
ICAgICAgICJBZnRlciB0aGUgdXNlciBhYm9ydHMsIHJlc3BvbnNlIFtbY29tcGxldGVdXSBpcyB0
cnVlIHNvIHJldHJ5KCkgbXVzdCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciIKICAgICAp
OwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
ZG9tKAogICAgICAgdCwKICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICByZXNwb25z
ZS5jb21wbGV0ZSgic3VjY2VzcyIpLApAQCAtMTQ2LDIzICsxNjQsMjUgQEAgZnVuY3Rpb24gdXNl
cklzU2hvd25FcnJvcnNGaWVsZHMoYnV0dG9uKSB7CiBmdW5jdGlvbiBhYm9ydFRoZVVwZGF0ZShi
dXR0b24pIHsKICAgYnV0dG9uLmRpc2FibGVkID0gdHJ1ZTsKICAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewotICAgIGNvbnN0IHsgcmVzcG9uc2UsIHJlcXVlc3QgfSA9IGF3YWl0IGdldFBheW1l
bnRSZXF1ZXN0UmVzcG9uc2UoeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfSk7Ci0gICAgLy8gY2F1
c2VzICJhYm9ydCB0aGUgdXBkYXRlIiB0byBydW4KLSAgICBjb25zdCBzaGlwcGluZ0NoYW5nZWRQ
cm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICByZXF1ZXN0Lm9uc2hpcHBp
bmdvcHRpb25jaGFuZ2UgPSAoKSA9PiB7Ci0gICAgICAgIGV2ZW50LnVwZGF0ZVdpdGgoeyB0b3Rh
bDogeyBhbW91bnQ6IHsgY3VycmVuY3k6ICJVU0QiLCB2YWx1ZTogIklOVkFMSUQiIH0gfX0pOwor
ICAgIGNvbnN0IHsgcmVzcG9uc2UsIHJlcXVlc3QgfSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0
UmVzcG9uc2UoeworICAgICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAorICAgIH0pOworICAgIGNv
bnN0IHNoaXBPcHRpb25DaGFuZ2VQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Cisg
ICAgICByZXF1ZXN0Lm9uc2hpcHBpbmdvcHRpb25jaGFuZ2UgPSBldmVudCA9PiB7CisgICAgICAg
IC8vIGNhdXNlcyAiYWJvcnQgdGhlIHVwZGF0ZSIgdG8gcnVuCisgICAgICAgIGV2ZW50LnVwZGF0
ZVdpdGgoeyB0b3RhbDogImVycm9yISIgfSk7CiAgICAgICAgIHJlc29sdmUoKTsKICAgICAgIH07
CiAgICAgfSk7CiAgICAgY29uc3QgcmV0cnlQcm9taXNlID0gcmVzcG9uc2UucmV0cnkoKTsKLSAg
ICBhd2FpdCBzaGlwcGluZ0NoYW5nZWRQcm9taXNlOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
cygKKyAgICBhd2FpdCBzaGlwT3B0aW9uQ2hhbmdlUHJvbWlzZTsKKyAgICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfanMoCiAgICAgICB0LAotICAgICAgbmV3IFR5cGVFcnJvcigpLAorICAgICAgVHlw
ZUVycm9yLAogICAgICAgcmV0cnlQcm9taXNlLAogICAgICAgInJldHJ5KCkgYWJvcnRzIHdpdGgg
YSBUeXBlRXJyb3IsIGJlY2F1c2UgdG90YWxzJyB2YWx1ZSBpcyBpbnZhbGlkIgogICAgICk7Ci0g
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20o
CiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIHJlc3BvbnNlLmNv
bXBsZXRlKCJzdWNjZXNzIiksCkBAIC0yNDcsNyArMjY3LDkgQEAgZnVuY3Rpb24gY2FsbGluZ1Jl
dHJ5UmV0dXJuc1VuaXF1ZVByb21pc2UoYnV0dG9uKXsKICAgPC9saT4KICAgPGxpPgogICAgIDxw
PgotICAgICAgV2hlbiBzaG93biB0aGUgcGF5bWVudCBzaGVldCwgaGl0IHBheSBvbmNlLiBUaGVu
IHJldHJ5IG9uY2UuCisgICAgICBXaGVuIHNob3duIHRoZSBwYXltZW50IHNoZWV0LCBoaXQgcGF5
IG9uY2UuCisgICAgICBUaGVuLCBjaGFuZ2UgdGhlIHNoaXBwaW5nIG9wdGlvbi4KKyAgICAgIFNl
bGVjdCB0byBwYXkgYWdhaW4uCiAgICAgPC9wPgogICAgIDxidXR0b24gb25jbGljaz0iYWJvcnRU
aGVVcGRhdGUodGhpcyk7Ij4KICAgICAgIFdoZW4gImFib3J0IHRoZSB1cGRhdGUiIG9jY3VycyBi
ZWNhdXNlIG9mIGFuIHVwZGF0ZSBlcnJvciwKQEAgLTI2OSw2ICsyOTEsNiBAQCBmdW5jdGlvbiBj
YWxsaW5nUmV0cnlSZXR1cm5zVW5pcXVlUHJvbWlzZShidXR0b24pewogICA8L2xpPgogPC9vbD4K
IDxzbWFsbD4KLSAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0
cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaXNzdWVzIj5maWxlIGEgYnVn
PC9hPgotICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L09XTkVSUyI+
b3duZXJzPC9hPi4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0i
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEg
YnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEu
eW1sIj5vd25lcnM8L2E+LgogPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9u
c2UvcmV0cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC13YXJuaW5ncy1tYW51YWwuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ5NWViODNlNTY2OGI5N2Q2YzU5N2Y1YjgzYWQ4ZDAzZDlmZWRj
NmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC13
YXJuaW5ncy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK01hbnVh
bCBUZXN0cyAtIFBsZWFzZSBydW4gaW4gb3JkZXIhCisKK1BsZWFzZSBvcGVuIHRoZSBkZXZlbG9w
ZXIgY29uc29sZS4gRWFjaCBvZiB0aGUgdGVzdHMgYmVsb3cgc2hvdWxkIGdlbmVyYXRlIGEgd2Fy
bmluZyBpbiB0aGUgZGV2ZWxvcGVyIGNvbnNvbGUuCisKK1doZW4gcHJlc2VudGVkIHdpdGggdGhl
IHBheW1lbnQgc2hlZXQsIGhpdCBwYXkgdHdpY2UuCisKK1Nob3cgd2FybmluZyBpZiBgcmVxdWVz
dFBheWVyTmFtZWAgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMucGF5ZXIubmFtZWAgaXMgcHJl
c2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFBheWVyRW1haWxgIGlmIGZhbHNlLCBhbmQg
YGVycm9yRmllbGRzLnBheWVyLmVtYWlsYCBpcyBwcmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGBy
ZXF1ZXN0UGF5ZXJQaG9uZWAgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMucGF5ZXIucGhvbmVg
IGlzIHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2Us
IGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzYCBtZW1iZXIgcHJlc2VudC4KK1Nob3cg
d2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5z
aGlwcGluZ0FkZHJlc3MuYWRkcmVzc0xpbmVgIG1lbWJlciBwcmVzZW50LgorU2hvdyB3YXJuaW5n
IGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnNoaXBwaW5n
QWRkcmVzcy5jaXR5YCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNo
aXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MuY291bnRy
eWAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYg
ZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLmRlcGVuZGVudExvY2FsaXR5
YCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBm
YWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3Mub3JnYW5pemF0aW9uYCBtZW1i
ZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwg
YW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucGhvbmVgIG1lbWJlciBwcmVzZW50Lgor
U2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmll
bGRzLnNoaXBwaW5nQWRkcmVzcy5wb3N0YWxDb2RlYCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2Fy
bmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlw
cGluZ0FkZHJlc3MucmVjaXBpZW50YCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBg
cmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJl
c3MucmVnaW9uYCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBw
aW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucmVnaW9uQ29k
ZWAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYg
ZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLnNvcnRpbmdDb2RlYCBtZW1i
ZXIgcHJlc2VudC4KK0RvbmUhCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0g
bnVsbAorCitQQVNTIENhbiBjb25zdHJ1Y3QgYSBwYXltZW50IHJlcXVlc3QgKHNtb2tlIHRlc3Qp
LiAKK1BBU1MgUGF5bWVudFJlc3BvbnNlLnByb3RvdHlwZSBtdXN0IGhhdmUgYSByZXRyeSgpIGZ1
bmN0aW9uIChzbW9rZSB0ZXN0KS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2Uv
cmV0cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNw
b25zZS9yZXRyeS1tZXRob2Qtd2FybmluZ3MtbWFudWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjY4YmYxODMwOTcwMmM0ODFjNzZhZGVmMGNkZGVlMjRjYmQxYjU0MwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5odHRw
cy5odG1sCkBAIC0wLDAgKzEsMTU4IEBACis8IURPQ1RZUEUgaHRtbD4gPG1ldGEgY2hhcnNldD0i
dXRmLTgiIC8+Cis8dGl0bGU+V2FybiB3aGVuIGVycm9yRmllbGRzIGRvbid0IG1hdGNoIHJlcXVl
c3RbW29wdGlvbnNdXTwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZ2l0
aHViLmNvbS93M2MvcGF5bWVudC1yZXF1ZXN0L3B1bGwvODA3IiAvPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImhlbHBlcnMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgdGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3RydWUo
CisgICAgICAicmV0cnkiIGluIFBheW1lbnRSZXNwb25zZS5wcm90b3R5cGUsCisgICAgICAicmV0
cnkgbXVzdCBiZSBpbiBwcm90b3R5cGUiCisgICAgKTsKKyAgICBhc3NlcnRfdHJ1ZSgKKyAgICAg
IFBheW1lbnRSZXNwb25zZS5wcm90b3R5cGUucmV0cnkgaW5zdGFuY2VvZiBGdW5jdGlvbiwKKyAg
ICAgICJyZXRyeSBtdXN0IGJlIGEgZnVuY3Rpb24iCisgICAgKTsKKyAgfSwgIlBheW1lbnRSZXNw
b25zZS5wcm90b3R5cGUgbXVzdCBoYXZlIGEgcmV0cnkoKSBmdW5jdGlvbiAoc21va2UgdGVzdCku
Iik7CisKKyAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7CisgICAgcmVxdWVzdFBheWVyTmFtZTog
ZmFsc2UsCisgICAgcmVxdWVzdFBheWVyRW1haWw6IGZhbHNlLAorICAgIHJlcXVlc3RQYXllclBo
b25lOiBmYWxzZSwKKyAgICByZXF1ZXN0U2hpcHBpbmc6IGZhbHNlLAorICB9OworICBmdW5jdGlv
biB0ZXN0U2hvd1dhcm5pbmcoYnV0dG9uLCBlcnJvckZpZWxkcykgeworICAgIGJ1dHRvbi5kaXNh
YmxlZCA9IHRydWU7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICAgIGNvbnN0
IHsgcmVzcG9uc2UgfSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoZGVmYXVsdE9w
dGlvbnMpOworICAgICAgYXdhaXQgcmVzcG9uc2UucmV0cnkoZXJyb3JGaWVsZHMpOworICAgICAg
YXdhaXQgcmVzcG9uc2UuY29tcGxldGUoKTsKKyAgICB9KTsKKyAgfQorPC9zY3JpcHQ+Cis8aDI+
TWFudWFsIFRlc3RzIC0gUGxlYXNlIHJ1biBpbiBvcmRlciE8L2gyPgorPHA+CisgIFBsZWFzZSBv
cGVuIHRoZSBkZXZlbG9wZXIgY29uc29sZS4gRWFjaCBvZiB0aGUgdGVzdHMgYmVsb3cgc2hvdWxk
IGdlbmVyYXRlIGEKKyAgd2FybmluZyBpbiB0aGUgZGV2ZWxvcGVyIGNvbnNvbGUuCis8L3A+Cis8
cD5XaGVuIHByZXNlbnRlZCB3aXRoIHRoZSBwYXltZW50IHNoZWV0LCBoaXQgcGF5IHR3aWNlLjwv
cD4KKzxvbD4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0idGVzdFNob3dXYXJuaW5nKHRo
aXMsIHtwYXllcjoge25hbWU6ICdEb250IHNob3cgdGhpcyd9fSk7Ij4KKyAgICAgIFNob3cgd2Fy
bmluZyBpZiBgcmVxdWVzdFBheWVyTmFtZWAgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMucGF5
ZXIubmFtZWAgaXMKKyAgICAgIHByZXNlbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxs
aT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3Bh
eWVyOiB7ZW1haWw6ICdEb250IHNob3cgdGhpcyd9fSk7IgorICAgID4KKyAgICAgIFNob3cgd2Fy
bmluZyBpZiBgcmVxdWVzdFBheWVyRW1haWxgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnBh
eWVyLmVtYWlsYAorICAgICAgaXMgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAg
PGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7
cGF5ZXI6IHtwaG9uZTogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3
YXJuaW5nIGlmIGByZXF1ZXN0UGF5ZXJQaG9uZWAgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMu
cGF5ZXIucGhvbmVgCisgICAgICBpcyBwcmVzZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgor
ICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBw
aW5nQWRkcmVzczoge319KTsiPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBp
bmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3NgIG1l
bWJlciBwcmVzZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRv
bgorICAgICAgb25jbGljaz0idGVzdFNob3dXYXJuaW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJlc3M6
IHthZGRyZXNzTGluZTogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3
YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZp
ZWxkcy5zaGlwcGluZ0FkZHJlc3MuYWRkcmVzc0xpbmVgIG1lbWJlciBwcmVzZW50LgorICAgIDwv
YnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbgorICAgICAgb25jbGljaz0idGVz
dFNob3dXYXJuaW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJlc3M6IHtjaXR5OiAnRG9udCBzaG93IHRo
aXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2Ag
aWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5jaXR5YCBt
ZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0
b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNz
OiB7Y291bnRyeTogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJu
aW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxk
cy5zaGlwcGluZ0FkZHJlc3MuY291bnRyeWAgbWVtYmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+
CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dh
cm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczoge2RlcGVuZGVudExvY2FsaXR5OiAnRG9udCBz
aG93IHRoaXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlw
cGluZ2AgaWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5k
ZXBlbmRlbnRMb2NhbGl0eWAgbWVtYmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+
CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhp
cywge3NoaXBwaW5nQWRkcmVzczoge29yZ2FuaXphdGlvbjogJ0RvbnQgc2hvdyB0aGlzJ319KTsi
CisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNl
LCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3Mub3JnYW5pemF0aW9uYCBt
ZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0
b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNz
OiB7cGhvbmU6ICdEb250IHNob3cgdGhpcyd9fSk7IgorICAgID4KKyAgICAgIFNob3cgd2Fybmlu
ZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kCisgICAgICBgZXJyb3JGaWVsZHMu
c2hpcHBpbmdBZGRyZXNzLnBob25lYCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAg
PC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2Fybmlu
Zyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7cG9zdGFsQ29kZTogJ0RvbnQgc2hvdyB0aGlzJ319
KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZh
bHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucG9zdGFsQ29kZWAg
bWVtYmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0
dG9uCisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVz
czoge3JlY2lwaWVudDogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3
YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZp
ZWxkcy5zaGlwcGluZ0FkZHJlc3MucmVjaXBpZW50YCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1
dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RT
aG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7cmVnaW9uOiAnRG9udCBzaG93IHRo
aXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2Ag
aWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5yZWdpb25g
IG1lbWJlciBwcmVzZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1
dHRvbgorICAgICAgb25jbGljaz0idGVzdFNob3dXYXJuaW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJl
c3M6IHtyZWdpb25Db2RlOiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93
IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9y
RmllbGRzLnNoaXBwaW5nQWRkcmVzcy5yZWdpb25Db2RlYCBtZW1iZXIgcHJlc2VudC4KKyAgICA8
L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRl
c3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7c29ydGluZ0NvZGU6ICdEb250
IHNob3cgdGhpcyd9fSk7IgorICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFNo
aXBwaW5nYCBpZiBmYWxzZSwgYW5kCisgICAgICBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNz
LnNvcnRpbmdDb2RlYCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAg
PGxpPjxidXR0b24gb25jbGljaz0iZG9uZSgpIj5Eb25lITwvYnV0dG9uPjwvbGk+Cis8L29sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVzcG9uc2UvdzNjLWltcG9ydC5sb2cKaW5kZXggMDRiYzYzNTBkOTFmODdlOTI3MjUwZTAx
ZmNiODdmZTI2Y2ZmNzY0Mi4uZjI0NTliMTdjMDMyYmZhMTdhNmRhNjI1OTU5ZWNiMDBjNjlmMWY1
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS93M2MtaW1wb3J0LmxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlc3BvbnNlL3czYy1pbXBvcnQubG9nCkBAIC0yMiw4ICsyMiwxMSBAQCBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJFbWFpbC1hdHRyaWJ1dGUtbWFu
dWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyTmFtZS1hdHRyaWJ1dGUt
bWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyUGhvbmUtYXR0cmli
dXRlLW1hbnVhbC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNj
aGFuZ2UtdXBkYXRlV2l0aC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRhdGVXaXRoLW1hbnVhbC5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZWplY3RzX2lmX25vdF9hY3RpdmUtbWFudWFsLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JlcXVlc3RJZC1hdHRyaWJ1dGUtbWFudWFsLmh0
dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9zaGlwcGluZ0FkZHJlc3MtYXR0cmlidXRl
LW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9zaGlwcGluZ09wdGlvbi1h
dHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90
X2FjdGl2ZS1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0
aXZlLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJkNDVkYjM1MTlhZTAz
ZDMyMzhiNzc0Y2Q3OGM3ODg3NjRkMGQxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNf
aWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1BheW1lbnRSZXF1ZXN0IHNob3coKSByZWplY3RzIGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZl
CisKK0NsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNlcXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3
aXRob3V0IHJlZnJlc2hpbmcgdGhlIHBhZ2UuIEVhY2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAgdGhl
IFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cgYW5kIHRoZW4gd2lsbCBjbG9zZSBpdCBhdXRvbWF0
aWNhbGx5LiAoSWYgYSBwYXltZW50IHNoZWV0IHN0YXlzIG9wZW4sIHRoZSB0ZXN0IGhhcyBmYWls
ZWQuKQorCitQYXltZW50UmVxdWVzdC5zaG93KCkgYWJvcnRzIGlmIHRoZSBkb2N1bWVudCBpcyBu
b3QgYWN0aXZlLgorUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQg
aXMgYWN0aXZlLCBidXQgbm90IGZ1bGx5IGFjdGl2ZS4KK0RvbmUhCitJZiB5b3UgZmluZCBhIGJ1
Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQg
cmV2aWV3ZXJzLgorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUtbWFudWFsLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUtbWFudWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGUyMTRjYjYwOTRhMjU0MzYzNzRkYTk4NGRlYWFkZTY2MGNjYzE5MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDE3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlBh
eW1lbnRSZXF1ZXN0IHNob3coKSByZWplY3RzIGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlPC90
aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1l
bnQtcmVxdWVzdC8jc2hvdy1tZXRob2QiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0Pgorc2V0dXAoeworICBleHBsaWNp
dF9kb25lOiB0cnVlLAorICBleHBsaWNpdF90aW1lb3V0OiB0cnVlLAorfSk7CisKK2NvbnN0IGFw
cGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2Fw
cGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJj
aGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6
ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBz
dXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOworY29uc3QgdmFsaWRNZXRob2Qg
PSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAorfSk7
Citjb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQ
YXldKTsKKworY29uc3QgdmFsaWREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiB7
CisgICAgbGFiZWw6ICJUb3RhbCBkdWUiLAorICAgICAgYW1vdW50OiB7CisgICAgICBjdXJyZW5j
eTogIlVTRCIsCisgICAgICB2YWx1ZTogIjUuMDAiLAorICAgIH0sCisgIH0sCit9KTsKKworZnVu
Y3Rpb24gZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoaWZyYW1lLCB1cmwpIHsKKyAgcmV0dXJuIG5l
dyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKAorICAg
ICAgImxvYWQiLAorICAgICAgKCkgPT4geworICAgICAgICBjb25zdCB7IFBheW1lbnRSZXF1ZXN0
IH0gPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKyAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQ
YXltZW50UmVxdWVzdCh2YWxpZE1ldGhvZHMsIHZhbGlkRGV0YWlscyk7CisgICAgICAgIHJlc29s
dmUocmVxdWVzdCk7CisgICAgICB9LAorICAgICAgeyBvbmNlOiB0cnVlIH0KKyAgICApOworICAg
IGlmcmFtZS5zcmMgPSB1cmw7CisgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0QWJvcnRTaG93SWZE
b2N1bWVudElzTm90QWN0aXZlKCkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAg
Y29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgaWZy
YW1lLmFsbG93UGF5bWVudFJlcXVlc3QgPSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyYW1lKTsKKyAgICAvLyBXZSBmaXJzdCBnb3QgdG8gcGFnZTEuaHRtbCwgZ3JhYiBh
IFBheW1lbnRSZXF1ZXN0IGluc3RhbmNlLgorICAgIGNvbnN0IHJlcXVlc3QxID0gYXdhaXQgZ2V0
TG9hZGVkUGF5bWVudFJlcXVlc3QoCisgICAgICBpZnJhbWUsCisgICAgICAiL3BheW1lbnQtcmVx
dWVzdC9yZXNvdXJjZXMvcGFnZTEuaHRtbCIKKyAgICApOworICAgIC8vIFNhdmUgdGhlIERPTUV4
Y2VwdGlvbiBvZiBwYWdlMS5odG1sIGJlZm9yZSBuYXZpZ2F0aW5nIGF3YXkuCisgICAgY29uc3Qg
ZnJhbWVET01FeGNlcHRpb24xID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuRE9NRXhjZXB0aW9uOwor
ICAgIC8vIFdlIG5hdmlnYXRlIHRoZSBpZnJhbWUgYWdhaW4sIHB1dHRpbmcgcmVxdWVzdDEncyBk
b2N1bWVudCBpbnRvIGFuIGluYWN0aXZlIHN0YXRlLgorICAgIGNvbnN0IHJlcXVlc3QyID0gYXdh
aXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCisgICAgICBpZnJhbWUsCisgICAgICAiL3BheW1l
bnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRtbCIKKyAgICApOworICAgIC8vIE5vdywgcmVx
dWVzdDEncyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGFj
dGl2ZS4KKyAgICAvLyBTbywgY2FsbCAuc2hvdygpLCBhbmQgbWFrZSBzdXJlIGl0IHJlamVjdHMg
YXBwcm9wcmlhdGVseS4KKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgdCwK
KyAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgIGZyYW1lRE9NRXhjZXB0aW9uMSwKKyAgICAgIHJl
cXVlc3QxLnNob3coKSwKKyAgICAgICJJbmFjdGl2ZSBkb2N1bWVudCwgc28gbXVzdCB0aHJvdyBB
Ym9ydEVycm9yIgorICAgICk7CisgICAgLy8gcmVxdWVzdDIgaGFzIGFuIGFjdGl2ZSBkb2N1bWVu
dCB0aG8sIHNvIGNvbmZpcm0gaXQncyB3b3JraW5nIGFzIGV4cGVjdGVkOgorICAgIHJlcXVlc3Qy
LnNob3coKTsKKyAgICBhd2FpdCByZXF1ZXN0Mi5hYm9ydCgpOworICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20oCisgICAgICB0LAorICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAg
IGlmcmFtZS5jb250ZW50V2luZG93LkRPTUV4Y2VwdGlvbiwKKyAgICAgIHJlcXVlc3QyLnNob3co
KSwKKyAgICAgICJBYm9ydCBhbHJlYWR5IGNhbGxlZCwgc28gSW52YWxpZFN0YXRlRXJyb3IiCisg
ICAgKTsKKyAgICAvLyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAuCisgICAgaWZyYW1lLnJlbW92
ZSgpOworICB9LCAiUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQg
aXMgbm90IGFjdGl2ZS4iKTsKK30KKworZnVuY3Rpb24gdGVzdEFib3J0U2hvd0lmRG9jdW1lbnRJ
c05vdEZ1bGx5QWN0aXZlKCkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgLy8g
V2UgbmVzdCB0d28gaWZyYW1lcyBhbmQgd2FpdCBmb3IgdGhlbSB0byBsb2FkLgorICAgIGNvbnN0
IG91dGVySWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgb3V0
ZXJJZnJhbWUuYWxsb3dQYXltZW50UmVxdWVzdCA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChvdXRlcklmcmFtZSk7CisgICAgLy8gTG9hZCB0aGUgb3V0ZXIgaWZyYW1lICh3
ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBhd2FpdGVkIHJlcXVlc3QpCisgICAgYXdhaXQgZ2V0TG9h
ZGVkUGF5bWVudFJlcXVlc3QoCisgICAgICBvdXRlcklmcmFtZSwKKyAgICAgICIvcGF5bWVudC1y
ZXF1ZXN0L3Jlc291cmNlcy9wYWdlMS5odG1sIgorICAgICk7CisKKyAgICAvLyBOb3cgd2UgY3Jl
YXRlIHRoZSBpbm5lciBpZnJhbWUKKyAgICBjb25zdCBpbm5lcklmcmFtZSA9IG91dGVySWZyYW1l
LmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBpbm5lcklmcmFt
ZS5hbGxvd1BheW1lbnRSZXF1ZXN0ID0gdHJ1ZTsKKworICAgIC8vIG5lc3QgdGhlbQorICAgIG91
dGVySWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlubmVySWZyYW1lKTsK
KworICAgIC8vIGxvYWQgaW5uZXJJZnJhbWUsIGFuZCBnZXQgdGhlIFBheW1lbnRSZXF1ZXN0IGlu
c3RhbmNlCisgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0
KAorICAgICAgaW5uZXJJZnJhbWUsCisgICAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMv
cGFnZTIuaHRtbCIKKyAgICApOworICAgIC8vIFNhdmUgRE9NRXhjZXB0aW9uIGZyb20gaW5uZXJJ
ZnJhbWUgYmVmb3JlIG5hdmlnYXRpbmcgYXdheS4KKyAgICBjb25zdCBpbm5lcklmcmFtZURPTUV4
Y2VwdGlvbiA9IGlubmVySWZyYW1lLmNvbnRlbnRXaW5kb3cuRE9NRXhjZXB0aW9uOworCisgICAg
Ly8gTmF2aWdhdGUgdGhlIG91dGVyIGlmcmFtZSB0byBhIG5ldyBsb2NhdGlvbi4KKyAgICAvLyBX
YWl0IGZvciB0aGUgbG9hZCBldmVudCB0byBmaXJlLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4geworICAgICAgb3V0ZXJJZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJl
c29sdmUpOworICAgICAgb3V0ZXJJZnJhbWUuc3JjID0gIi9wYXltZW50LXJlcXVlc3QvcmVzb3Vy
Y2VzL3BhZ2UyLmh0bWwiOworICAgIH0pOworCisgICAgY29uc3Qgc2hvd1Byb21pc2UgPSByZXF1
ZXN0LnNob3coKTsKKyAgICAvLyBOb3csIHJlcXVlc3QncyByZWxldmFudCBnbG9iYWwgb2JqZWN0
J3MgZG9jdW1lbnQgaXMgc3RpbGwgYWN0aXZlCisgICAgLy8gKGl0IGlzIHRoZSBhY3RpdmUgZG9j
dW1lbnQgb2YgdGhlIGlubmVyIGlmcmFtZSksIGJ1dCBpcyBub3QgZnVsbHkgYWN0aXZlCisgICAg
Ly8gKHNpbmNlIHRoZSBwYXJlbnQgb2YgdGhlIGlubmVyIGlmcmFtZSBpcyBpdHNlbGYgbm8gbG9u
Z2VyIGFjdGl2ZSkuCisgICAgLy8gU28sIGNhbGwgcmVxdWVzdC5zaG93KCkgYW5kIG1ha2Ugc3Vy
ZSBpdCByZWplY3RzIGFwcHJvcHJpYXRlbHkuCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2Rv
bSgKKyAgICAgIHQsCisgICAgICAiQWJvcnRFcnJvciIsCisgICAgICBpbm5lcklmcmFtZURPTUV4
Y2VwdGlvbiwKKyAgICAgIHNob3dQcm9taXNlLAorICAgICAgIkFjdGl2ZSwgYnV0IG5vdCBmdWxs
eSBhY3RpdmUsIHNvIG11c3QgdGhyb3cgQWJvcnRFcnJvciIKKyAgICApOworICAgIC8vIFdlIGFy
ZSBkb25lLCBzbyBjbGVhbiB1cC4KKworICAgIG91dGVySWZyYW1lLnJlbW92ZSgpOworICB9LCAi
UGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgYWN0aXZlLCBi
dXQgbm90IGZ1bGx5IGFjdGl2ZS4iKTsKK30KKzwvc2NyaXB0PgorCis8aDI+UGF5bWVudFJlcXVl
c3Qgc2hvdygpIHJlamVjdHMgaWYgZG9jIGlzIG5vdCBmdWxseSBhY3RpdmU8L2gyPgorPHA+Cisg
IENsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNlcXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3aXRo
b3V0IHJlZnJlc2hpbmcgdGhlCisgIHBhZ2UuIEVhY2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAgdGhl
IFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cgYW5kIHRoZW4gd2lsbAorICBjbG9zZSBpdCBhdXRv
bWF0aWNhbGx5LiAoSWYgYSBwYXltZW50IHNoZWV0IHN0YXlzIG9wZW4sIHRoZSB0ZXN0IGhhcyBm
YWlsZWQuKQorPC9wPgorPG9sPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0QWJv
cnRTaG93SWZEb2N1bWVudElzTm90QWN0aXZlKCkiPgorICAgICAgUGF5bWVudFJlcXVlc3Quc2hv
dygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgbm90IGFjdGl2ZS4KKyAgICA8L2J1dHRvbj4K
KyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0idGVzdEFib3J0U2hvd0lmRG9j
dW1lbnRJc05vdEZ1bGx5QWN0aXZlKCkiPgorICAgICAgUGF5bWVudFJlcXVlc3Quc2hvdygpIGFi
b3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgYWN0aXZlLCBidXQgbm90IGZ1bGx5CisgICAgICBhY3Rp
dmUuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT48YnV0dG9uIG9uY2xpY2s9ImRvbmUo
KSI+RG9uZSE8L2J1dHRvbj48L2xpPgorPC9vbD4KKzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBi
dWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUg
PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9t
YXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sIj5zdWdnZXN0ZWQgcmV2aWV3ZXJzPC9hPi4K
Kzwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCmluZGV4IGY1ODVlODM2Zjhk
MzBlNDFiZDMzYzdhOGQ4NzYwZWNmNjRmN2E4MGQuLjFjNjY2YWVhNDM1NzU4Y2Q3Zjc5MTcyYWFh
NjkxZjQzZjc5MDdhNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCkBAIC0xLDE4
ICsxLDI3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3No
b3coKS1tZXRob2QiPgogPHRpdGxlPlBheW1lbnRSZXF1ZXN0IHNob3coKSByZWplY3RzIGlmIGRv
YyBpcyBub3QgZnVsbHkgYWN0aXZlPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jc2hvdy1tZXRob2QiPgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI2RvbS1wYXltZW50cmVx
dWVzdC1zaG93KCkiPgogPGJvZHk+CiA8c2NyaXB0PgorY29uc3QgYXBwbGVQYXkgPSBPYmplY3Qu
ZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBh
eSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjog
Im1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJj
aGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtz
OiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUo
ewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiB9KTsKLWNvbnN0IHZhbGlkTWV0
aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citjb25zdCB2YWxpZE1ldGhvZHMg
PSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXldKTsKIGNvbnN0IHZhbGlkQW1v
dW50ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGN1cnJlbmN5OiAiVVNEIiwKICAgdmFsdWU6ICI1LjAw
IiwKQEAgLTQwLDk0ICs0OSw2IEBAIGZ1bmN0aW9uIGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KGlm
cmFtZSwgdXJsKSB7CiAgIH0pOwogfQogCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNv
bnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICBpZnJhbWUu
YWxsb3dQYXltZW50UmVxdWVzdCA9IHRydWU7Ci0gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKLSAgLy8gV2UgZmlyc3QgZ290IHRvIHBhZ2UxLmh0bWwsIGdyYWIgYSBQYXltZW50
UmVxdWVzdCBpbnN0YW5jZS4KLSAgY29uc3QgcmVxdWVzdDEgPSBhd2FpdCBnZXRMb2FkZWRQYXlt
ZW50UmVxdWVzdCgKLSAgICBpZnJhbWUsCi0gICAgIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2Vz
L3BhZ2UxLmh0bWwiCi0gICk7Ci0gIC8vIFdlIG5hdmlnYXRlIHRoZSBpZnJhbWUgYWdhaW4sIHB1
dHRpbmcgcmVxdWVzdDEncyBkb2N1bWVudCBpbnRvIGFuIGluYWN0aXZlIHN0YXRlLgotICBjb25z
dCByZXF1ZXN0MiA9IGF3YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KAotICAgIGlmcmFtZSwK
LSAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRtbCIKLSAgKTsKLSAgYXdh
aXQgdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCByZXF1ZXN0IiwgYXN5bmMgKCkgPT4g
ewotICAgIC8vIE5vdywgcmVxdWVzdDEncyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1l
bnQgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4KLSAgICAvLyBTbywgY2FsbCAuc2hvdygpLCBhbmQgbWFr
ZSBzdXJlIGl0IHJlamVjdHMgYXBwcm9wcmlhdGVseS4KLSAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHMoCi0gICAgICB0LAotICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgcmVxdWVzdDEuc2hvdygp
LAotICAgICAgIkluYWN0aXZlIGRvY3VtZW50LCBzbyBtdXN0IHRocm93IEFib3J0RXJyb3IiCi0g
ICAgKTsKLSAgfSk7Ci0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVx
dWVzdCIsIGFzeW5jICgpID0+IHsKLSAgICAvLyByZXF1ZXN0MiBoYXMgYW4gYWN0aXZlIGRvY3Vt
ZW50IHRobywgc28gY29uZmlybSBpdCdzIHdvcmtpbmcgYXMgZXhwZWN0ZWQ6Ci0gICAgcmVxdWVz
dDIuc2hvdygpOwotICAgIGF3YWl0IHJlcXVlc3QyLmFib3J0KCk7Ci0gICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKAotICAgICAgdCwKLSAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCi0gICAgICBy
ZXF1ZXN0Mi5zaG93KCksCi0gICAgICAiQWJvcnQgYWxyZWFkeSBjYWxsZWQsIHNvIEludmFsaWRT
dGF0ZUVycm9yIgotICAgICk7Ci0gICAgLy8gV2UgYXJlIGRvbmUsIHNvIGNsZWFuIHVwLgotICAg
IGlmcmFtZS5yZW1vdmUoKTsKLSAgfSk7Ci19LCAiUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0
cyBpZiB0aGUgZG9jdW1lbnQgaXMgbm90IGFjdGl2ZSIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7Ci0gIC8vIFdlIG5lc3QgdHdvIGlmcmFtZXMgYW5kIHdhaXQgZm9yIHRoZW0gdG8gbG9h
ZC4KLSAgY29uc3Qgb3V0ZXJJZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUi
KTsKLSAgb3V0ZXJJZnJhbWUuYWxsb3dQYXltZW50UmVxdWVzdCA9IHRydWU7Ci0gIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXJJZnJhbWUpOwotICAvLyBMb2FkIHRoZSBvdXRlciBpZnJh
bWUgKHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGF3YWl0ZWQgcmVxdWVzdCkKLSAgYXdhaXQgZ2V0
TG9hZGVkUGF5bWVudFJlcXVlc3QoCi0gICAgb3V0ZXJJZnJhbWUsCi0gICAgIi9wYXltZW50LXJl
cXVlc3QvcmVzb3VyY2VzL3BhZ2UxLmh0bWwiCi0gICk7Ci0KLSAgLy8gTm93IHdlIGNyZWF0ZSB0
aGUgaW5uZXIgaWZyYW1lCi0gIGNvbnN0IGlubmVySWZyYW1lID0gb3V0ZXJJZnJhbWUuY29udGVu
dERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICBpbm5lcklmcmFtZS5hbGxvd1Bh
eW1lbnRSZXF1ZXN0ID0gdHJ1ZTsKLQotICAvLyBuZXN0IHRoZW0KLSAgb3V0ZXJJZnJhbWUuY29u
dGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5uZXJJZnJhbWUpOwotCi0gIC8vIGxvYWQg
aW5uZXJJZnJhbWUsIGFuZCBnZXQgdGhlIFBheW1lbnRSZXF1ZXN0IGluc3RhbmNlCi0gIGNvbnN0
IHJlcXVlc3QgPSBhd2FpdCBnZXRMb2FkZWRQYXltZW50UmVxdWVzdCgKLSAgICBpbm5lcklmcmFt
ZSwKLSAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRtbCIKLSAgKTsKLQot
ICAvLyBOYXZpZ2F0ZSB0aGUgb3V0ZXIgaWZyYW1lIHRvIGEgbmV3IGxvY2F0aW9uLgotICAvLyBX
YWl0IGZvciB0aGUgbG9hZCBldmVudCB0byBmaXJlLgotICBhd2FpdCBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKLSAgICBvdXRlcklmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2
ZSk7Ci0gICAgb3V0ZXJJZnJhbWUuc3JjID0gIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3Bh
Z2UyLmh0bWwiOwotICB9KTsKLQotICBjb25zdCBzaG93UHJvbWlzZSA9IGF3YWl0IHRlc3RfZHJp
dmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsICgpID0+IHsKLSAgICByZXR1cm4gcmVx
dWVzdC5zaG93KCk7Ci0gIH0pOwotICAvLyBOb3csIHJlcXVlc3QncyByZWxldmFudCBnbG9iYWwg
b2JqZWN0J3MgZG9jdW1lbnQgaXMgc3RpbGwgYWN0aXZlCi0gIC8vIChpdCBpcyB0aGUgYWN0aXZl
IGRvY3VtZW50IG9mIHRoZSBpbm5lciBpZnJhbWUpLCBidXQgaXMgbm90IGZ1bGx5IGFjdGl2ZQot
ICAvLyAoc2luY2UgdGhlIHBhcmVudCBvZiB0aGUgaW5uZXIgaWZyYW1lIGlzIGl0c2VsZiBubyBs
b25nZXIgYWN0aXZlKS4KLSAgLy8gU28sIGNhbGwgcmVxdWVzdC5zaG93KCkgYW5kIG1ha2Ugc3Vy
ZSBpdCByZWplY3RzIGFwcHJvcHJpYXRlbHkuCi0gIGF3YWl0IHByb21pc2VfcmVqZWN0cygKLSAg
ICB0LAotICAgICJBYm9ydEVycm9yIiwKLSAgICBzaG93UHJvbWlzZSwKLSAgICAiQWN0aXZlLCBi
dXQgbm90IGZ1bGx5IGFjdGl2ZSwgc28gbXVzdCB0aHJvdyBBYm9ydEVycm9yIgotICApOwotICAv
LyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAuCi0KLSAgaWZyYW1lLnJlbW92ZSgpOwotfSwgIlBh
eW1lbnRSZXF1ZXN0LnNob3coKSBhYm9ydHMgaWYgdGhlIGRvY3VtZW50IGlzIGFjdGl2ZSwgYnV0
IG5vdCBmdWxseSBhY3RpdmUiKTsKLQogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBjb25z
dCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKICAgaWZyYW1lLmFs
bG93UGF5bWVudFJlcXVlc3QgPSB0cnVlOwpAQCAtMTM3LDIxICs1OCw0MCBAQCBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CiAgICAgaWZyYW1lLAogICAgICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291
cmNlcy9wYWdlMS5odG1sIgogICApOwotICBjb25zdCBzaG93UHJvbWlzZSA9IGF3YWl0IHRlc3Rf
ZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsICgpID0+IHsKLSAgICByZXR1cm4g
cmVxdWVzdC5zaG93KCk7CisgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZl
ci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCAoKSA9PiB7CisgICAgcmV0dXJuIFtyZXF1
ZXN0LnNob3coKV07CiAgIH0pOwogICAvLyBOYXZpZ2F0ZSB0aGUgaWZyYW1lIHRvIGEgbmV3IGxv
Y2F0aW9uLiBXYWl0IGZvciB0aGUgbG9hZCBldmVudCB0byBmaXJlLgogICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKICAgICBpZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJl
c29sdmUpOwogICAgIGlmcmFtZS5zcmMgPSAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFn
ZTIuaHRtbCI7CisgICAgLy8gQW4gaW1wbGVtZW50YXRpb24gbWF5IG9wdGlvbmFsbHkgcmVqZWN0
IHxzaG93UHJvbWlzZXwuCisgICAgc2hvd1Byb21pc2UuY2F0Y2goZSA9PiB7fSk7CiAgIH0pOwot
ICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCi0gICAgdCwKLSAgICAiQWJvcnRFcnJvciIsCi0gICAg
c2hvd1Byb21pc2UsCi0gICAgIlRoZSBpZnJhbWUgd2FzIG5hdmlnYXRlZCBhd2F5LCBzbyBzaG93
UHJvbWlzZSBtdXN0IHJlamVjdCB3aXRoIEFib3J0RXJyb3IiCi0gICk7Ci0gIC8vIFdlIGFyZSBk
b25lLCBzbyBjbGVhbiB1cC4KLSAgaWZyYW1lLnJlbW92ZSgpOwotfSwgIklmIGEgcGF5bWVudCBy
ZXF1ZXN0IGlzIHNob3dpbmcsIGJ1dCBpdHMgZG9jdW1lbnQgaXMgbmF2aWdhdGVkIGF3YXkgKHNv
IG5vIGxvbmdlciBmdWxseSBhY3RpdmUpLCB0aGUgcGF5bWVudCByZXF1ZXN0IGFib3J0cy4iKTsK
KworICAvLyBUaGUgbmF2aWdhdG9uIHNob3VsZCBoYXZlIGRpc21pc3NlZCB0aGUgcHJldmlvdXMg
cGF5bWVudCByZXF1ZXN0IHNvIGl0CisgIC8vIHNob3VsZCBiZSBwb3NzaWJsZSB0byBzaG93IGFu
b3RoZXIgb25lIG5vdy4KKyAgY29uc3QgcmVxdWVzdDIgPSBuZXcgaWZyYW1lLmNvbnRlbnRXaW5k
b3cuUGF5bWVudFJlcXVlc3QoCisgICAgdmFsaWRNZXRob2RzLCB2YWxpZERldGFpbHMpOworICBj
b25zdCBbc2hvd1Byb21pc2UyXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICJzaG93
IDJuZCBwYXltZW50IHJlcXVlc3QiLCAoKSA9PiB7CisgICAgICByZXR1cm4gW3JlcXVlc3QyLnNo
b3coKV07CisgICAgfSk7CisKKyAgLy8gU3RvcCB0aGUgdGVzdCBpbiAxIHNlY29uZCBpZiBpdCBo
YXMgbm90IHJlamVjdGVkLCB3aGljaCBtZWFucyB0aGF0IGEKKyAgLy8gcGF5bWVudCBzaGVldCBp
cyBzdWNjZXNzZnVsbHkgc2hvd24uCisgIHQuc3RlcF90aW1lb3V0KGFzeW5jICgpID0+IHsKKyAg
ICAvLyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAuCisgICAgaWZyYW1lLnJlbW92ZSgpOworICAg
IHQuZG9uZSgpOworICB9LCAxMDAwKTsKKworICAvLyBUaGlzIHNob3VsZCBuZXZlciBzZXR0bGUg
YmVjYXVzZSB0aGUgcGF5bWVudCBzaGVldCBzaG91bGQgYmUgcGVuZGluZy4KKyAgYXdhaXQgc2hv
d1Byb21pc2UyLnRoZW4oKCkgPT4geworICAgIGFzc2VydF90cnVlKGZhbHNlLCAiU2Vjb25kIHBh
eW1lbnQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlc29sdmVkLiIpOworICB9KQorICAuY2F0
Y2goZSA9PiB7CisgICAgYXNzZXJ0X3RydWUoZmFsc2UsICJTZWNvbmQgcGF5bWVudCBzaG91bGQg
YmUgcGVuZGluZyBidXQgaXMgcmVqZWN0ZWQuIik7CisgIH0pOworfSwgIklmIGEgcGF5bWVudCBy
ZXF1ZXN0IGlzIHNob3dpbmcsIGJ1dCBpdHMgZG9jdW1lbnQgaXMgbmF2aWdhdGVkIGF3YXkgKHNv
IG5vIGxvbmdlciBmdWxseSBhY3RpdmUpLCB0aGUgcGF5bWVudCBzaGVldCBpcyBkaXNtaXNzZWQu
Iik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3NoaXBwaW5nLWFkZHJlc3MtY2hhbmdlZC1t
YW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3NoaXBwaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0
cHMuaHRtbAppbmRleCAwN2I1MzA2NTdjMzM5NDM0YWE5MjRkMWRmZTk2ODE0ZmFkMmRiZjNiLi43
OGI3ZjE3Y2VlYjk4NGJkZTgwMDkwOTNhNTY5NjkyNjFlNDRkZDdjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9z
aGlwcGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hpcHBp
bmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5odG1sCkBAIC04LDggKzgsMTggQEAKIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQ+CiBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRy
dWUgfSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRo
b2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNp
b246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAor
ICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBv
cnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNv
bnN0IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNp
Yy1jYXJkIiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0
aG9kXSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwg
YXBwbGVQYXldKTsKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7IGN1cnJlbmN5
OiAiVVNEIiwgdmFsdWU6ICI1LjAwIiB9KTsKIGNvbnN0IHZhbGlkVG90YWwgPSBPYmplY3QuZnJl
ZXplKHsKICAgbGFiZWw6ICJsYWJlbCIsCkBAIC01MywxMCArNjMsMTQgQEAgZnVuY3Rpb24gdGVz
dFNoaXBwaW5nQWRkcmVzc0NoYW5nZSgpIHsKICAgICB9KTsKICAgICByZXF1ZXN0LnNob3coKS5j
YXRjaChlcnIgPT4gZXJyKTsKICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwo
W2xpc3RlbmVyUHJvbWlzZSwgaGFuZGxlclByb21pc2VdKTsKLSAgICBhc3NlcnRfdHJ1ZSgKLSAg
ICAgIHJlc3VsdHMuZXZlcnkob2JqID0+IG9iaiBpbnN0YW5jZW9mIFBheW1lbnRBZGRyZXNzKSwK
LSAgICAgICJFeHBlY3RlZCBpbnN0YW5jZXMgb2YgUGF5bWVudEFkZHJlc3MiCi0gICAgKTsKKyAg
ICByZXN1bHRzLmZvckVhY2gob2JqID0+IHsKKyAgICAgIGFzc2VydF90cnVlKG9iaiBpbnN0YW5j
ZW9mIFBheW1lbnRBZGRyZXNzLAorICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIGluc3RhbmNl
IG9mIFBheW1lbnRBZGRyZXNzIik7CisgICAgICBhc3NlcnRfZXF1YWxzKG9iai5vcmdhbml6YXRp
b24sICIiLCAib3JnYW5pemF0aW9uIHNob3VsZCBiZSByZWRhY3RlZCIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhvYmoucGhvbmUsICIiLCAicGhvbmUgc2hvdWxkIGJlIHJlZGFjdGVkIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKG9iai5yZWNpcGllbnQsICIiLCAicmVjaXBpZW50IHNob3VsZCBiZSBy
ZWRhY3RlZCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhvYmouYWRkcmVzc0xpbmUubGVuZ3RoLCAw
LCAiYWRkcmVzc0xpbmUgc2hvdWxkIGJlIHJlZGFjdGVkIik7CisgICAgfSk7CiAgICAgYXdhaXQg
cmVxdWVzdC5hYm9ydCgpOwogICB9KTsKICAgZG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1t
ZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hv
dy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLW1hbnVhbC5odHRwcy5odG1sCmluZGV4
IDVjMTAyOGVlYzY2N2M4NTczZGY4OTBkMjAxZDFmMWI5MTM2ZGRlNTcuLjFhMzIyNDUyZWI2MTE0
NjMwYjJmMGQxZDJhOTc2MjA5MmFkNWViYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9w
dGlvbmFsLXByb21pc2UtcmVqZWN0cy1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1l
dGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTI0LDYg
KzI0LDEzIEBACiAKICAgY29uc3QgdmFsaWRNZXRob2RBcHBsZVBheSA9IE9iamVjdC5mcmVlemUo
ewogICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAor
ICAgIGRhdGE6IHsKKyAgICAgIHZlcnNpb246IDMsCisgICAgICBtZXJjaGFudElkZW50aWZpZXI6
ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICAg
IG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgICBzdXBwb3J0ZWRO
ZXR3b3JrczogWyJ2aXNhIl0sCisgICAgfQogICB9KTsKIAogICAvLyBNZXRob2RzCkBAIC0xNjEs
NyArMTY4LDEzIEBACiAgICAgICApOwogICAgICAgY29uc3QgZGV0YWlsc1Byb21pc2UgPSBQcm9t
aXNlLnJlc29sdmUoYmFkRGV0YWlscyk7CiAgICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVx
dWVzdC5zaG93KGRldGFpbHNQcm9taXNlKTsKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygK
KyAgICAgIGxldCB0ZXN0X2Z1bmM7CisgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkRXJyb3IgPT0g
ImZ1bmN0aW9uIikgeworICAgICAgICB0ZXN0X2Z1bmMgPSBwcm9taXNlX3JlamVjdHNfanM7Cisg
ICAgICB9IGVsc2UgeworICAgICAgICB0ZXN0X2Z1bmMgPSBwcm9taXNlX3JlamVjdHNfZG9tOwor
ICAgICAgfQorICAgICAgYXdhaXQgdGVzdF9mdW5jKAogICAgICAgICB0LAogICAgICAgICBleHBl
Y3RlZEVycm9yLAogICAgICAgICBhY2NlcHRQcm9taXNlLApAQCAtMTk2LDIwICsyMDksMjAgQEAK
IAogICA8bGk+PGJ1dHRvbiBvbmNsaWNrPSIKICAgICBjb25zdCBpbnZhbGlkRGV0YWlscyA9IHsg
dG90YWw6IGB0aGlzIHdpbGwgY2F1c2UgYSBUeXBlRXJyb3IhYCB9OwotICAgIHRlc3RCYWRVcGRh
dGUodGhpcy50ZXh0Q29udGVudCwgaW52YWxpZERldGFpbHMsIG5ldyBUeXBlRXJyb3IoKSk7Cisg
ICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBpbnZhbGlkRGV0YWlscywgVHlwZUVy
cm9yKTsKICAgIj4KICAgVG90YWwgaW4gdGhlIHVwZGF0ZSBpcyBhIHN0cmluZywgc28gY29udmVy
dGluZyB0byBJREwgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYSBUeXBlRXJyb3IuCiAgIDwv
YnV0dG9uPjwvbGk+CiAKICAgPGxpPjxidXR0b24gb25jbGljaz0iCiAgICAgY29uc3QgaW52YWxp
ZERldGFpbHMgPSB7IHRvdGFsOiByZWN1cnNpdmVEYXRhIH07Ci0gICAgdGVzdEJhZFVwZGF0ZSh0
aGlzLnRleHRDb250ZW50LCBpbnZhbGlkRGV0YWlscywgbmV3IFR5cGVFcnJvcigpKTsKKyAgICB0
ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQsIGludmFsaWREZXRhaWxzLCBUeXBlRXJyb3Ip
OwogICAiPgogICBUb3RhbCBpcyByZWN1cnNpdmUsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3Qg
YWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9yLgogICA8L2J1dHRvbj48L2xpPgogCiAg
IDxsaT48YnV0dG9uIG9uY2xpY2s9IgotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVu
dCwgaW52YWxpZERldGFpbHNOZWdhdGl2ZVRvdGFsLCBuZXcgVHlwZUVycm9yKCkpOworICAgIHRl
c3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgaW52YWxpZERldGFpbHNOZWdhdGl2ZVRvdGFs
LCBUeXBlRXJyb3IpOwogICAiPgogICBVcGRhdGluZyB3aXRoIGEgbmVnYXRpdmUgdG90YWwgcmVz
dWx0cyBpbiBhIFR5cGVFcnJvci4KICAgPC9idXR0b24+PC9saT4KQEAgLTIxOCw3ICsyMzEsNyBA
QAogICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMs
IHsKICAgICAgIGRpc3BsYXlJdGVtczogaW52YWxpZFBheW1lbnRJdGVtcwogICAgIH0pOwotICAg
IHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJy
b3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBS
YW5nZUVycm9yKTsKICAgIj4KICAgVXBkYXRpbmcgd2l0aCBhIGRpc3BsYXlJdGVtIHdpdGggYW4g
aW52YWxpZCBjdXJyZW5jeSByZXN1bHRzIGluIFJhbmdlRXJyb3IuCiAgIDwvYnV0dG9uPjwvbGk+
CkBAIC0yMjgsNyArMjQxLDcgQEAKICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2ln
bih7fSwgdmFsaWREZXRhaWxzLCB7CiAgICAgICBzaGlwcGluZ09wdGlvbnM6IGR1cGxpY2F0ZVNo
aXBwaW5nT3B0aW9ucywKICAgICB9KTsKLSAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRl
bnQsIGJhZERldGFpbHMsIG5ldyBUeXBlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlz
LnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBUeXBlRXJyb3IpOwogICAiPgogICBVcGRhdGluZyB3
aXRoIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbnMgKHNhbWUgSURzKSByZXN1bHRzIGluIGEgVHlw
ZUVycm9yLgogICA8L2J1dHRvbj48L2xpPgpAQCAtMjM2LDcgKzI0OSw3IEBACiAgICAgY29uc3Qg
YmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIHZhbGlkRGV0YWlscywgewogICAgICAgc2hp
cHBpbmdPcHRpb25zOiBpbnZhbGlkU2hpcHBpbmdPcHRpb25zLAogICAgIH0pOwotICAgIHRlc3RC
YWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7
CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVy
cm9yKTsKICAgIj4KICAgVXBkYXRpbmcgd2l0aCBhIHNoaXBwaW5nT3B0aW9uIHdpdGggYW4gaW52
YWxpZCBjdXJyZW5jeSB2YWx1ZSByZXN1bHRzIGluIGEgUmFuZ0Vycm9yLgogICA8L2J1dHRvbj48
L2xpPgpAQCAtMjQ1LDcgKzI1OCw3IEBACiAgICAgLy8gdmFsaWRNb2RpZmllciBpcyB0aGVyZSBh
cyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMKICAgICBjb25zdCBiYWRNb2RpZmllcnMgPSB7IG1v
ZGlmaWVyczogW21vZGlmaWVyV2l0aEludmFsaWRUb3RhbCwgdmFsaWRNb2RpZmllcl0gfTsKICAg
ICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsaWREZXRhaWxzLCBiYWRN
b2RpZmllcnMpOwotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWls
cywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50
LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgIj4KICAgTXVzdCB0aHJvdyBhIFJhbmdlRXJy
b3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwgaXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4K
ICAgPC9idXR0b24+PC9saT4KQEAgLTI1Niw3ICsyNjksNyBAQAogICAgICAgbW9kaWZpZXJzOiBb
bW9kaWZpZXJXaXRoSW52YWxpZERpc3BsYXlJdGVtcywgdmFsaWRNb2RpZmllcl0sCiAgICAgfTsK
ICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsaWREZXRhaWxzLCBi
YWRNb2RpZmllcnMpOwotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0
YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250
ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgIj4KICAgTXVzdCB0aHJvdyBhIFJhbmdl
RXJyb3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkgaXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5j
eS4KICAgPC9idXR0b24+PC9saT4KQEAgLTI2Nyw3ICsyODAsNyBAQAogICAgICAgbW9kaWZpZXJz
OiBbbW9kaWZpZXJXaXRoUmVjdXJzaXZlRGF0YSwgdmFsaWRNb2RpZmllcl0sCiAgICAgfTsKICAg
ICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsaWREZXRhaWxzLCBiYWRN
b2RpZmllcnMpOwotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWls
cywgbmV3IFR5cGVFcnJvcigpKTsKKyAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQs
IGJhZERldGFpbHMsIFR5cGVFcnJvcik7CiAgICI+CiAgIE11c3QgdGhyb3cgYXMgTW9kaWZpZXIg
aGFzIGEgcmVjdXJzaXZlIGRpY3Rpb25hcnkuCiAgIDwvYnV0dG9uPjwvbGk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlc29sdmVzLW1hbnVhbC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZXNvbHZlcy1tYW51YWwuaHR0
cHMuaHRtbAppbmRleCA3MGM5N2ZhYWY3YTQ0OTY5ODJhMzgyYTQxNWUzYTg1ZTlhMTdjNDY1Li41
MzYwYTk3MDRhZjQ1OWYzMDE4MGY5MzhkMTI4MjhmNmRiZjFiNTcwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9z
aG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlc29sdmVzLW1hbnVhbC5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVzb2x2ZXMtbWFudWFsLmh0dHBz
Lmh0bWwKQEAgLTIzLDYgKzIzLDEzIEBAIGNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVl
emUoWwogICB9LAogICB7CiAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29t
L2FwcGxlLXBheSIsCisgICAgZGF0YTogeworICAgICAgdmVyc2lvbjogMywKKyAgICAgIG1lcmNo
YW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICAgIGNvdW50cnlDb2Rl
OiAiVVMiLAorICAgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAg
ICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgICB9CiAgIH0sCiBdKTsKIApAQCAt
MTU3LDkgKzE2NCw5IEBAIGNvbnN0IG5ldXRyYWxEZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CiBm
dW5jdGlvbiBzbW9rZVRlc3QoKSB7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBj
b25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgZmFpbERldGFp
bHMpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfanMoCiAgICAgICB0LAotICAgICAgbmV3IFR5cGVFcnJvcigpLAorICAgICAgVHlwZUVycm9y
LAogICAgICAgcmVxdWVzdC5zaG93KHsKICAgICAgICAgdG90YWw6ICJUaGlzIHRocm93cyBhIFR5
cGVFcnJvciIsCiAgICAgICB9KSwKQEAgLTE3MywxNiArMTgwLDE3IEBAIGZ1bmN0aW9uIHJ1blVw
ZGF0ZURldGFpbHNBbGdvcml0aG0oCiAgIGRldGFpbHMsCiAgIG9wdGlvbnMgPSB7CiAgICAgcmVx
dWVzdFNoaXBwaW5nOiB0cnVlLAotICB9CisgIH0sCisgIGluaXRpYWxEZXRhaWxzID0gZmFpbERl
dGFpbHMsCiApIHsKICAgY29uc3QgdGVzdEFzc2VydGlvbiA9IGJ1dHRvbkVsZW1lbnQudGV4dENv
bnRlbnQudHJpbSgpOwogICBidXR0b25FbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKICAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVl
c3QodmFsaWRNZXRob2RzLCBmYWlsRGV0YWlscywgb3B0aW9ucyk7CisgICAgY29uc3QgcmVxdWVz
dCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxpZE1ldGhvZHMsIGluaXRpYWxEZXRhaWxzLCBvcHRp
b25zKTsKICAgICBjb25zdCBkZXRhaWxzUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShkZXRhaWxz
KTsKICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KGRldGFpbHNQcm9taXNl
KTsKICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaWQsICJ0aGlzIGNhbm5vdCBiZSBjaGFuZ2Vk
IiwgImlkIG11c3QgbmV2ZXIgY2hhbmdlLiIpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygK
KyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgdCwKICAgICAgICJBYm9ydEVy
cm9yIiwKICAgICAgIGFjY2VwdFByb21pc2UsCkBAIC0zMDgsNiArMzE2LDE4IEBAIGZ1bmN0aW9u
IHJ1blVwZGF0ZURldGFpbHNBbGdvcml0aG0oCiAgICAgV2hlbiB0aGUgcGF5bWVudCBzaGVldCBp
cyBzaG93biwgdGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgZXJyb3JzIHNob3duLgogICAgIDwvYnV0
dG9uPgogICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSIKKyAgICAgIGNvbnN0
IGluaXRpYWxEZXRhaWxzID0ge3RvdGFsOiBwYXNzVG90YWwsIGlkOiAndGhpcyBjYW5ub3QgYmUg
Y2hhbmdlZCd9OworICAgICAgY29uc3QgdXBkYXRlZERldGFpbHMgPSB7fTsKKyAgICAgIHJ1blVw
ZGF0ZURldGFpbHNBbGdvcml0aG0oCisgICAgICAgICAgICB0aGlzLCB1cGRhdGVkRGV0YWlscywg
e3JlcXVlc3RTaGlwcGluZzogZmFsc2V9LCBpbml0aWFsRGV0YWlscyk7CisgICAgIj4KKyAgICBS
ZXNvbHZpbmcgdGhlIHNob3cgcHJvbWlzZSB3aXRoIGVtcHR5IGRldGFpbHMgd2lsbCBwcmVzZXJ2
ZSB0aGUgZGV0YWlscyBmcm9tCisgICAgdGhlIGNvbnN0cnVjdG9yLiBXaGVuIHRoZSBwYXltZW50
IHNoZWV0IGlzIHNob3duLCB0aGUgc3RyaW5nCisgICAgIuKchSBURVNUIEhBUyBQQVNTRUQg4pyF
IiBzaG91bGQgYmUgc2hvd24uCisgICAgPC9idXR0b24+CisgIDwvbGk+CiAgIDxsaT4KICAgICA8
YnV0dG9uIG9uY2xpY2s9ImRvbmUoKTsiPkRvbmUhPC9idXR0b24+CiAgIDwvbGk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9zaG93LW1ldGhvZC1wb3N0bWVzc2FnZS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0
aG9kLXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sCmluZGV4IDEyYTFlMGNlZjgyODg2ZjA1MTRjYWU1
NmViOWY0ZTExMzIxYWI1ZGUuLmI1MGYxOGVjY2UzYWM2MmQzMTkzYTg2ZDY2OGY0NTdjMWU5NjI5
YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sCkBAIC0zLDcgKzMsMTYg
QEAKICJ1c2Ugc3RyaWN0IjsKIGNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShb
CiAgIHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0sCi0gIHsgc3VwcG9ydGVkTWV0
aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIgfSwKKyAgeworICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICAgIGRhdGE6IHsKKyAg
ICAgIHZlcnNpb246IDMsCisgICAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20u
ZXhhbXBsZSIsCisgICAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICAgIG1lcmNoYW50Q2FwYWJp
bGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNh
Il0sCisgICAgfQorICB9LAogXSk7CiAKIGNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZy
ZWV6ZSh7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1wb3N0bWVzc2FnZS1tYW51YWwuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLW1hbnVhbC5odHRwcy5odG1sCmlu
ZGV4IGU0YWI1NTBlNDE4OWUxNTE4YTRiNjAxYWE0YzllMjQ5ZGY0YzVlY2QuLjkyMGUwYTk5OTJl
YmExZjYwNGQ1ZDAyNDZmMWM3ZTdlN2I0MmJkMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9k
LXBvc3RtZXNzYWdlLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3Rt
ZXNzYWdlLW1hbnVhbC5odHRwcy5odG1sCkBAIC0xMiwzNCArMTIsNiBAQCBzZXR1cCh7CiAgIGFs
bG93X3VuY2F1Z2h0X2V4Y2VwdGlvbjogdHJ1ZSwKIH0pOwogCi1jb25zdCBkZWZhdWx0TWV0aG9k
cyA9IE9iamVjdC5mcmVlemUoWwotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9
LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0s
Ci1dKTsKLQotY29uc3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKLSAgaWQ6ICJm
YWlsIiwKLSAgdG90YWw6IHsKLSAgICBsYWJlbDogIlRvdGFsIiwKLSAgICBhbW91bnQ6IHsKLSAg
ICAgIGN1cnJlbmN5OiAiVVNEIiwKLSAgICAgIHZhbHVlOiAiMS4wMCIsCi0gICAgfSwKLSAgfSwK
LX0pOwotCi10ZXN0KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cygKLSAgICAiU2VjdXJpdHlFcnJv
ciIsCi0gICAgKCkgPT4gewotICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgICAgcmVxdWVzdC5zaG93KCk7
IC8vIDwtLS0gc2hvdWxkIHRocm93IGhlcmUKLSAgICAgIHJlcXVlc3QuYWJvcnQoKTsKLSAgICB9
LAotICAgICJ0aHJvd3MgYSBTZWN1cml0eUVycm9yIGlmIG5vdCB0cmlnZ2VyZWQgYnkgdXNlciBh
Y3RpdmF0aW9uIgotICApOwotfSk7Ci0KIGFzeW5jIGZ1bmN0aW9uIHJ1blVzZXJBY3RpdmF0aW9u
KGJ1dHRvbikgewogICBidXR0b24uZGlzYWJsZWQgPSB0cnVlOwogICBjb25zdCB7IGNvbnRlbnRX
aW5kb3c6IGlmcmFtZVdpbmRvdyB9ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvdXBkYXRlV2l0aC1tZXRob2QtcG1pLWhhbmRsaW5nLW1hbnVhbC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvdXBkYXRlV2l0aC1tZXRob2QtcG1pLWhhbmRsaW5nLW1hbnVhbC5odHRw
cy5odG1sCmluZGV4IDA2ODUyYmY4YzQ3Y2I5ZTcyMDE5MGI5YjBlMmY4MWQ5ZTdkZGQzMzUuLjFh
NTI5NzhjYTNlMzEyMzkyYzc1NGMwODI2NzQwNTcyM2U1Zjg4MDAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Vw
ZGF0ZVdpdGgtbWV0aG9kLXBtaS1oYW5kbGluZy1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC91
cGRhdGVXaXRoLW1ldGhvZC1wbWktaGFuZGxpbmctbWFudWFsLmh0dHBzLmh0bWwKQEAgLTEsNSAr
MSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgTW96aWxsYSBh
bmQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZlcnNpdHksIEJlaWhhbmcpLiAtLT4KIDxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5UZXN0IGZvciB2YWxpZGl0eSBvZiBwYXltZW50IG1l
dGhvZCBpZGVudGlmaWVycyB3aGVuIGNhbGxpbmcgdXBkYXRlV2l0aCgpIG1ldGhvZDwvdGl0bGU+
CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vd3d3LnczLm9yZy9UUi9wYXltZW50LXJl
cXVlc3QvI3VwZGF0ZXdpdGgoKS1tZXRob2QiPgpAQCAtNywxMiArNiwzMCBAQAogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
ICJ1c2Ugc3RyaWN0IjsKLXNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGlt
ZW91dDogdHJ1ZSB9KTsKK3NldHVwKHsKKyAgZXhwbGljaXRfZG9uZTogdHJ1ZSwKKyAgZXhwbGlj
aXRfdGltZW91dDogdHJ1ZSwKKyAgYWxsb3dfdW5jYXVnaHRfZXhjZXB0aW9uOiB0cnVlLAorfSk7
Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAi
aHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMs
CisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNv
dW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RT
Il0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9LAorfSk7CiBjb25zdCB2
YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6
Ly86QHdwdC5meWk6NDQzL3BheW1lbnQtcmVxdWVzdCIsCiB9KTsKIAotY29uc3QgdmFsaWRNZXRo
b2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2RdKTsKK2NvbnN0IHZhbGlkTWV0aG9kcyA9
IE9iamVjdC5mcmVlemUoWworICB2YWxpZE1ldGhvZCwKKyAgYXBwbGVQYXksCisgIHsgc3VwcG9y
dGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0sCitdKTsKIAogY29uc3QgdmFsaWRBbW91bnQgPSBP
YmplY3QuZnJlZXplKHsKICAgY3VycmVuY3k6ICJVU0QiLApAQCAtNDEsMjMgKzU4LDEyIEBAIGNv
bnN0IHZhbGlkTW9kaWZpZXIgPSBPYmplY3QuZnJlZXplKHsKICAgdG90YWw6IHZhbGlkVG90YWws
CiB9KTsKIAotdGVzdCgoKSA9PiB7Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KHZh
bGlkTWV0aG9kcywgdmFsaWREZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgZG9uZSgp
OwotICAgIHRocm93IGVycjsKLSAgfQotfSwgInNtb2tlIHRlc3QiKTsKLQogZnVuY3Rpb24gbWFu
dWFsVGVzdChidXR0b24sIHsgaW52YWxpZE1ldGhvZCB9KSB7CiAgIGJ1dHRvbi5kaXNhYmxlZCA9
IHRydWU7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBjb25zdCByZXF1ZXN0ID0g
bmV3IFBheW1lbnRSZXF1ZXN0KAotICAgICAgW3sgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNh
cmQiIH1dLAotICAgICAgdmFsaWREZXRhaWxzLAotICAgICAgeyByZXF1ZXN0U2hpcHBpbmc6IHRy
dWUgfQotICAgICk7CisgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxp
ZE1ldGhvZHMsIHZhbGlkRGV0YWlscywgeworICAgICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAor
ICAgIH0pOwogICAgIGNvbnN0IGxpc3RlbmVyID0gZXYgPT4gewogICAgICAgY29uc3QgaW52YWxp
ZE1vZGlmaWVyID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsaWRNb2RpZmllciwgewogICAgICAgICBz
dXBwb3J0ZWRNZXRob2RzOiBpbnZhbGlkTWV0aG9kLApAQCAtNzAsNyArNzYsNyBAQCBmdW5jdGlv
biBtYW51YWxUZXN0KGJ1dHRvbiwgeyBpbnZhbGlkTWV0aG9kIH0pIHsKICAgICAvLyBXZSB0ZXN0
IGFnYWluc3QgYSB2YWxpZCBhbmQgYW4gaW52YWxpZCBtb2RpZmllcgogICAgIHJlcXVlc3QuYWRk
RXZlbnRMaXN0ZW5lcigic2hpcHBpbmdhZGRyZXNzY2hhbmdlIiwgbGlzdGVuZXIsIHsgb25jZTog
dHJ1ZSB9KTsKICAgICBjb25zdCBzaG93UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOwotICAgIGF3
YWl0IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgUmFuZ2VFcnJvcigpLCBzaG93UHJvbWlzZSk7Cisg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2pzKHQsIFJhbmdlRXJyb3IsIHNob3dQcm9taXNlKTsK
ICAgfSwgYnV0dG9uLnRleHRDb250ZW50LnRyaW0oKSk7CiB9CiA8L3NjcmlwdD4KQEAgLTEyMCwx
MCArMTI2LDEzIEBAIGZ1bmN0aW9uIG1hbnVhbFRlc3QoYnV0dG9uLCB7IGludmFsaWRNZXRob2Qg
fSkgewogICAgIDwvYnV0dG9uPgogICA8L2xpPgogICA8bGk+Ci0gICAgPGJ1dHRvbiBvbmNsaWNr
PSJtYW51YWxUZXN0KHRoaXMsIHtpbnZhbGlkTWV0aG9kOiAnQmFzaWMtQ2FyZCd9KTsgZG9uZSgp
OyI+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJtYW51YWxUZXN0KHRoaXMsIHtpbnZhbGlkTWV0aG9k
OiAnQmFzaWMtQ2FyZCd9KTsiPgogICAgICAgTXVzdCB0aHJvdyBpZiBzdGFuZGFyZGl6ZWQgUE1J
IGhhcyB1cHBlcmNhc2UgY2hhcmFjdGVycy4KICAgICA8L2J1dHRvbj4KICAgPC9saT4KKyAgPGxp
PgorICAgIDxidXR0b24gb25jbGljaz0iZG9uZSgpOyI+RG9uZSE8L2J1dHRvbj4KKyAgPC9saT4K
IDwvb2w+CiA8c21hbGw+CiAgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhy
ZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+Zmls
ZSBhIGJ1ZzwvYT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3VzZXItYWJvcnQtYWxnb3JpdGhtLW1hbnVhbC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvdXNlci1hYm9ydC1hbGdvcml0aG0tbWFudWFsLmh0dHBzLmh0bWwKaW5k
ZXggMGJhMDQwNWM1MmZiZDU4MDVhMzZkMjcwNzYxOGRjODRhNzExMTM1MS4uMDc4YmYzZDYxYWU2
ZTc1YjNjY2YwZmVkOGE5ODdlNmI3Y2QzNmZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNlci1hYm9ydC1h
bGdvcml0aG0tbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNlci1hYm9ydC1hbGdvcml0aG0t
bWFudWFsLmh0dHBzLmh0bWwKQEAgLTE3LDEwICsxNywyMCBAQCBjb25zdCB2YWxpZFRvdGFsID0g
T2JqZWN0LmZyZWV6ZSh7CiAgIGxhYmVsOiAiVG90YWwgZHVlIiwKICAgYW1vdW50OiB2YWxpZEFt
b3VudCwKIH0pOworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2
ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxl
IiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJz
dXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7
CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2Rz
OiAiYmFzaWMtY2FyZCIsCiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUo
W3ZhbGlkTWV0aG9kXSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxp
ZE1ldGhvZCwgYXBwbGVQYXldKTsKIGNvbnN0IHZhbGlkRGV0YWlscyA9IE9iamVjdC5mcmVlemUo
ewogICB0b3RhbDogdmFsaWRUb3RhbCwKIH0pOwpAQCAtNDAsOSArNTAsOSBAQCBhc3luYyBmdW5j
dGlvbiBydW5BYm9ydFRlc3QoYnV0dG9uKSB7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgdmFs
aWREZXRhaWxzKTsKICAgICAvLyBBd2FpdCB0aGUgdXNlciB0byBhYm9ydAotICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwog
ICAgIC8vIFtbc3RhdGVdXSBpcyBub3cgY2xvc2VkCi0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
KHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsK
ICAgfSwgdGVzdE5hbWUudHJpbSgpKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNl
ci1hY2NlcHRzLXBheW1lbnQtcmVxdWVzdC1hbGdvLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNl
ci1hY2NlcHRzLXBheW1lbnQtcmVxdWVzdC1hbGdvLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGFi
YWY2Y2I0ZTg1ODBkZjVjNjAzNGU4YjEzN2FlOGZjMzQzMDY3YTYuLjAyMjUxMzc1ODUzYTdkY2Ni
Y2VjYzhkMzFkYzUwZGQ5NGU3NTdjYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3VzZXItYWNjZXB0cy1wYXlt
ZW50LXJlcXVlc3QtYWxnby1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC91c2VyLWFjY2VwdHMt
cGF5bWVudC1yZXF1ZXN0LWFsZ28tbWFudWFsLmh0dHBzLmh0bWwKQEAgLTgsMTMgKzgsMjMgQEAK
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+CiBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6
IHRydWUgfSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRN
ZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZl
cnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUi
LAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1
cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsK
IGNvbnN0IGJhc2ljQ2FyZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRo
b2RzOiAiYmFzaWMtY2FyZCIsCiB9KTsKIGNvbnN0IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6
ZSh7CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJ0aGlzLWlzLWp1c3QtZm9yLXRlc3RpbmdzLXdpbGwt
bmV2ZXItbWF0Y2giLAogfSk7Ci1jb25zdCBtZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWND
YXJkTWV0aG9kLCB2YWxpZE1ldGhvZF0pOworY29uc3QgbWV0aG9kcyA9IE9iamVjdC5mcmVlemUo
W2Jhc2ljQ2FyZE1ldGhvZCwgdmFsaWRNZXRob2QsIGFwcGxlUGF5XSk7CiBjb25zdCB2YWxpZEFt
b3VudCA9IE9iamVjdC5mcmVlemUoewogICBjdXJyZW5jeTogIlVTRCIsCiAgIHZhbHVlOiAiNS4w
MCIsCkBAIC04Nyw3ICs5Nyw3IEBAIGZ1bmN0aW9uIHRlc3RBY2NlcHRSZXF1ZXN0QWxnb3JpdGht
KAogICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRlKCJzdWNjZXNzIik7CiAgICAgLy8gRm9yIGdv
b2QgbWVhc3VyZSwgdGVzdCB0aGF0IHN1YnNlcXVlbnQgY29tcGxldGUoKQogICAgIGZvciAoY29u
c3Qgc3RhdGUgb2YgW3VuZGVmaW5lZCwgInN1Y2Nlc3MiLCAiZmFpbCIsICJ1bmtub3duIl0pIHsK
LSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20oCiAgICAgICAgIHQsCiAgICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICAg
IHJlc3BvbnNlLmNvbXBsZXRlKHN0YXRlKSwKQEAgLTEzMyw3ICsxNDMsNyBAQCBmdW5jdGlvbiB0
ZXN0QWNjZXB0UmVxdWVzdEFsZ29yaXRobSgKICAgICAgICAgYHJlc3BvbnNlLiR7YXR0cn0gbXVz
dCBiZSAke2V4cGVjdGVkVmFsdWV9YAogICAgICAgKTsKICAgICB9Ci0gICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAg
ICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIHJlcXVlc3Quc2hvdygpLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC93M2MtaW1wb3J0LmxvZwppbmRleCBiYWRmNDJjNmY0
NTNiY2YwMGEwNTQ0ZDA4ZDUwNjk0YTM4NWNmNzA5Li43MGFmNWMwZmY5ZmZlYzMwOWY5NDUzOTYz
OTNjMjAzMTFlNTY2Zjg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC93
M2MtaW1wb3J0LmxvZwpAQCAtMTYsMjAgKzE2LDI3IEBAIE5vbmUKIExpc3Qgb2YgZmlsZXM6CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvTUVUQS55bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1zLW1hbnVhbC5odHRwcy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYmlsbGlu
Zy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9ibGFuay5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
Y2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1tYW51YWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlw
cGluZy1vcHRpb24tc2VsZWN0LWxhc3QtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9jb25zdHJ1Y3Rv
cl9jb252ZXJ0X21ldGhvZF9kYXRhLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9keW5hbWljYWxseS1jaGFuZ2Ut
c2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2hpc3RvcmljYWwuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25tZXJjaGFudHZhbGlk
YXRpb24tYXR0cmlidXRlLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZW50aG9kY2hhbmdlLWF0
dHJpYnV0ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXltZW50bWV0aG9kY2hhbmdlLWF0dHJpYnV0ZS5o
dHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2Fu
bWFrZXBheW1lbnQtbWV0aG9kLXByb3RlY3Rpb24uaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVx
dWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0
cnVjdG9yLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1jdXJyZW5jeS1jb2Rl
LWNoZWNrcy5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5n
Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItdGhjcmFzaC5odHRw
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBzLnN1Yi5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1wbWktaGFuZGxpbmcuaHR0cHMuc3ViLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1tYW51YWwu
dGVudGF0aXZlLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0
cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRhdGl2ZS5odHRwcy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaWQtYXR0cmlidXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaW5zZWN1cmUuaHR0cC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LW5vdC1l
eHBvc2VkLmh0dHBzLndvcmtlci5qcwpAQCAtMzksNiArNDYsNyBAQCBMaXN0IG9mIGZpbGVzOgog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ09wdGlvbi1hdHRyaWJ1dGUuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ1R5cGUtYXR0cmlidXRlLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZf
bm90X2FjdGl2ZS1tYW51YWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3Qvc2hpcHBpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLW1hbnVhbC5odHRwcy5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggZTQwNDU1NjVmZjRjZDAxZjZlMWU5ZDUxNzcxM2EwNGM4MTZjNTFmMi4uY2Q2MTI5NjZiZWQ5
N2ZmM2ZjODMwZDRjY2E3ZDkxZGZlNDMxOTU3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTUsNiArNTUsOCBAQCB3ZWJraXQub3JnL2Iv
MTc1NjExIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2Fs
bG93cGF5bWVudAogd2Via2l0Lm9yZy9iLzE3NTYxMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L3JlbW92aW5nLWFsbG93
cGF5bWVudHJlcXVlc3QuaHR0cHMuc3ViLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNzU2
MTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dw
YXltZW50cmVxdWVzdC9zZXR0aW5nLWFsbG93cGF5bWVudHJlcXVlc3QtdGltaW5nLmh0dHBzLnN1
Yi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTc1NjExIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1h
bGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFr
ZXBheW1lbnQtbWV0aG9kLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGlu
c3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMgc2tpcCBp
biBmYXZvciBvZiB0ZXN0cyBpbiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0CiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtYWJv
cnQtbWV0aG9kLmh0dHBzLmh0bWwgWyBXb250Rml4IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ZjA1ZTQ2ZjdlYWIyNjE0YjE4MzIxOGM4
MjEzZjhjYWIxMzAxOGQ2Li5hZDk2OTUyM2Q1ZGY3MjA4OTdkNTM1NmI5OTM0YzY0NTkzOTdjYWVh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBA
IC02NTQsOCArNjU0LDYgQEAgd2Via2l0Lm9yZy9iLzE3MjA0NCBbIERlYnVnIF0gaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvb3Blbi1yZXEKIAogd2Via2l0Lm9yZy9i
LzE3Mzc3OSBbIERlYnVnIF0gZmFzdC9zY3JvbGxpbmcvYXJyb3cta2V5LXNjcm9sbC1pbi1ydGwt
ZG9jdW1lbnQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNzU3NzMgWyBE
ZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5odG1sIFsgU2tpcCBdCi0KIHdl
YmtpdC5vcmcvYi8xNzM2NzIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlL2ludmFsaWRhdGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcv
Yi8xNzM1MDAgaHR0cC90ZXN0cy9sb2FkaW5nL2Jhc2ljLWF1dGgtcmVtb3ZlLWNyZWRlbnRpYWxz
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAtMTAzOSw0ICsxMDM3LDQgQEAgd2Via2l0Lm9yZy9i
LzIxMzYyMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNl
aXZlci1nZXRDb24KIAogd2Via2l0Lm9yZy9iLzIxMzY1MiB3ZWJydGMvdmlkZW8tYXV0b3BsYXkx
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMjE0MDg0IFsgUmVsZWFzZSBd
IHdlYnJ0Yy9saWJ3ZWJydGMvZGVzY3JpcHRpb25HZXR0ZXJzLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dlYmtpdC5vcmcvYi8yMTQwODQgWyBSZWxl
YXNlIF0gd2VicnRjL2xpYndlYnJ0Yy9kZXNjcmlwdGlvbkdldHRlcnMuaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24gYi9MYXlv
dXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KaW5kZXggMTEwMzFiNTlkMjJhOTViZGRkNGI2Mjdi
MDI4ZGY1ODBlNWY3ODRmNC4uMTRhNDc1OWU3NDViNDZhNjBkOGIyY2FkOTkxOWQ5ZjdkMWM5OTE3
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCisrKyBiL0xheW91
dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgpAQCAtMjQ1Niw5ICsyNDU2LDE4IEBACiAgICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFT
dHJlYW1UcmFjay1nZXRTZXR0aW5ncy5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAg
ICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9hbGxvd3BheW1lbnRyZXF1ZXN0L3NldHRpbmctYWxsb3dwYXltZW50cmVxdWVzdC10aW1pbmcu
aHR0cHMuc3ViLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2lu
Zy5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29u
c3RydWN0b3ItY3Jhc2guaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWNvbnN0cnVjdG9yLXRoY3Jhc2guaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNs
b3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9waWN0dXJl
LWluLXBpY3R1cmUvbGVhdmUtcGljdHVyZS1pbi1waWN0dXJlLmh0bWwiOiBbCiAgICAgICAgICJz
bG93IgogICAgIF0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403994</attachid>
            <date>2020-07-10 13:17:00 -0700</date>
            <delta_ts>2020-07-10 14:01:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214167-20200710131659.patch</filename>
            <type>text/plain</type>
            <size>298775</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjM0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmM3MDA0YjMzMDlmNTU2OTk4YjRj
ZWZkZTZlZDY4M2Y2ZDM5MjJiYi4uMDE1MjBmNWE2ZmVlNjhmZjc0MzExYjcyZmNkNjlhZTljNjIy
Y2I3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA3LTA5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KKworICAgICAgICAqIHRlc3RzLW9wdGlvbnMuanNvbjoKKwogMjAyMC0wNy0xMCAgTGF1cm8g
TW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsvV1BF
IGRlYnVnIGNyYXNoIGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
YjFiMzNkNDUwMjMxNGY5YzM2NTUzNmFiNzQyYzBlZjcxZjBjNmY4My4uOTNkYTUzMGRiZTI1NGRi
NThhNjk2YTU0OWUyMzZlMjcwYjc3NmViYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDctMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dCBmcm9tIHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTQxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAg
ICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0IGZyb20gdXBzdHJl
YW0gY2VmOTNiNThlN2NmMzFmMWQ0N2MuCisKKyAgICAgICAgKiByZXNvdXJjZXMvcmVzb3VyY2Ut
ZmlsZXMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
Lyo6IFVwZGF0ZWQuCisKIDIwMjAtMDctMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0YyBmcm9tIHVwc3Ry
ZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwYzdmNzcxYzdhODQyNWM2ZTczNDgxOTA2MmJiYzNm
NWQ1OTVkZDQxLi5hOTkzNGQyMmVmZTkzMDU4MzAyY2U0MmM1YzQ2NDA1ZjFlYzU4MjEyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTMzNiw2ICszMzYsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZlci10aW1pbmcvbmF2aWdhdGlvbl90aW1pbmdfaWRsLmh0dHBzLmh0bWwg
WwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rvcnkv
dGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tl
bi5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIEZhaWx1cmUgUGFzcyBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRp
b24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLXdlaXJkLmh0
bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFw
LWludmFsaWQtYXJncy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KK2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1o
YXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgRHVtcEpT
Q29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZV9FcnJvckV2ZW50X2xpbmVuby5odG0gWyBEdW1wSlNDb25z
b2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb25vZGUtaW50ZXJmYWNlL2F1ZGlvbm9kZS1kaXNjb25u
ZWN0LWF1ZGlvcGFyYW0uaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLXBhbm5l
cm5vZGUtaW50ZXJmYWNlL3Bhbm5lci1hdXRvbWF0aW9uLWJhc2ljLmh0bWwgWyBEdW1wSlNDb25z
b2xlTG9nSW5TdGRFcnIgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCmluZGV4IDVlODJlZDlkOGRlOWNjYjljNmEyZTFk
MjZkMGI5MjE4NWUxY2FjZGYuLjEzMjZjNjdkMzk0ZjVkMDlkMDVlYmEyZmI4MWM3OTM0MzU5MTBi
ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3Vy
Y2UtZmlsZXMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3Jl
c291cmNlLWZpbGVzLmpzb24KQEAgLTI1NTgsNiArMjU1OCw3IEBACiAgICAgICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvbWF0aG1sL3JlbGF0aW9ucy9odG1sNS10cmVlL3VuaXF1ZS1pZGVudGlmaWVy
LTEtaWZyYW1lLTIuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0
dXJlLXJlY29yZC9zdXBwb3J0L01lZGlhUmVjb3JkZXItaWZyYW1lLmh0bWwiLAogICAgICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2Vj
aG8tUGF5bWVudFJlcXVlc3QuaHRtbCIsCisgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L2JsYW5rLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtcmVzcG9uc2UtaWQuaHRtbCIsCiAgICAgICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNz
YWdlLWlmcmFtZS5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10
aW1pbmcvaWZyYW1lLXNldGRvbWFpbi5zdWIuaHRtbCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NRVRBLnlt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L01FVEEueW1sCmluZGV4IGU2MDhjMGVlMjc5ZmNiNzk4N2Y5MTY3ZjgyMjNmM2ZlZGNl
NjZjMzMuLjI0NDA3MjAxMzhkMzRkNWNjN2VhYWI5YTQ2NDhmMDc4Mjk2MzMwYjAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L01FVEEueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sCkBAIC0yLDggKzIsNyBAQCBzcGVjOiBo
dHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1ZXN0Lwogc3VnZ2VzdGVkX3Jldmlld2Vy
czoKICAgLSBtYXJjb3NjYWNlcmVzCiAgIC0gcnNvbG9tYWtoaW4KLSAgLSBkb21lbmljCiAgIC0g
em91aGlyCi0gIC0gbW5vb3JlbmJlcmdoZQogICAtIHJvbWFuZGV2Ci0gIC0gZWRlbmNodWFuZwor
ICAtIGFlc3RlcworICAtIGRhbnlhbwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9u
RXZlbnQvY29tcGxldGUtbWV0aG9kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25F
dmVudC9jb21wbGV0ZS1tZXRob2QuaHR0cHMuaHRtbAppbmRleCA0ZWRmZDU0ZjQwZTRhZWZkMDQ4
ODA4OTY3Njg5NjQwZDI4N2M3YWM3Li4zNmJmZGIyMTYwYTdjN2Y3MWE2NGVjZWMwNzAyNGI3MDBi
YjFkZTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb21wbGV0ZS1t
ZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb21wbGV0
ZS1tZXRob2QuaHR0cHMuaHRtbApAQCAtOCw3ICs4LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0KCgpID0+
IHsKICAgY29uc3QgZXZlbnQgPSBuZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQoInRlc3QiKTsK
LSAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCAoKSA9PiB7CisgIGFzc2VydF90
aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJvciIsICgpID0+IHsKICAgICBldmVudC5jb21wbGV0
ZSgiIik7CiAgIH0pCiB9LCAiSWYgZXZlbnQncyBpc1RydXN0ZWQgYXR0cmlidXRlIGlzIGZhbHNl
LCB0aGVuIHRoZW4gdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgRE9NRXhjZXB0aW9uLiIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQvY29uc3RydWN0b3IuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQvY29uc3RydWN0b3IuaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IGUzOTA3Mzk3NWFkY2QyZmUzYmYzYjQ4YzBjZjBmNzM1ZjZi
MDA2NjUuLmQzM2UxNWY0YzA0ZGM2NDFhMTkwMDk0ZmU0YjU2OWYwNWE0OWEyMTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb25zdHJ1Y3Rvci5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTUsNiArNSw3IEBAIFBBU1MgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQg
Y2FuIGJlIGRpc3BhdGNoZWQsIGV2ZW4gaWYgbm90IHRydXN0ZWQuCiBQQVNTIE11c3QgaGF2ZSBh
IHZhbGlkYXRpb25VUkwgSURMIGF0dHJpYnV0ZSwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgd2l0aCB0
byB0aGUgdmFsaWRhdGlvblVSTCBkaWN0aW9uYXJ5IHZhbHVlLiAKIFBBU1MgTXVzdCB0aHJvdyBU
eXBlRXJyb3IgaWYgaW5pdGlhbGl6ZWQgd2l0aCBhbiBpbnZhbGlkIFVSTC4gCiBQQVNTIFJlbGF0
aXZlIHZhbGlkYXRpb25VUkxzIHVzZSB0aGUgZG9jdW1lbnQgYXMgdGhlIGJhc2UuIAorRkFJTCBS
ZWxhdGl2ZSB2YWxpZGF0aW9uVVJMcyB1c2UgdGhlIGRvY3VtZW50LmJhc2VVUkkgYXMgdGhlIGJh
c2UuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwczovL3Bhc3MuY29tL3Bhc3MiIGJ1dCBn
b3QgImh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvcGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRh
dGlvbkV2ZW50L3Bhc3MiCiBQQVNTIE11c3QgaGF2ZSBhIG1ldGhvZE5hbWUgSURMIGF0dHJpYnV0
ZSwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgd2l0aCB0byB0aGUgbWV0aG9kTmFtZSBkaWN0aW9uYXJ5
IHZhbHVlLiAKIFBBU1MgV2hlbiBubyBtZXRob2ROYW1lIGlzIHBhc3NlZCwgbWV0aG9kTmFtZSBh
dHRyaWJ1dGUgZGVmYXVsdHMgdG8gdGhlIGVtcHR5IHN0cmluZyAKIFBBU1MgTWVyY2hhbnRWYWxp
ZGF0aW9uRXZlbnQgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggdmFsaWQgUE1JcyAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb25zdHJ1Y3Rvci5odHRwcy5odG1sCmluZGV4IGVj
OGE0ZmYxZWQwOTI1YTM1NGYyNjMxZDg0NTkzMzdlNDdhYjA3OWQuLjlmZGY3OGRkYjNkZWE0ZGU3
MmU0OGQxYWU1Mjg4YzBhOWYxNjFkNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlv
bkV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9u
RXZlbnQvY29uc3RydWN0b3IuaHR0cHMuaHRtbApAQCAtOCw2ICs4LDEzIEBACiA8c2NyaXB0Pgog
Y29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKICAgc3VwcG9ydGVkTWV0aG9kczogImh0
dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAor
ICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3Vu
dHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJd
LAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQogfSk7CiBjb25zdCBiYXNp
Y0NhcmQgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0p
OwogY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxl
UGF5XSk7CkBAIC01Nyw3ICs2NCw3IEBAIHRlc3QoKCkgPT4gewogCiB0ZXN0KCgpID0+IHsKICAg
Y29uc3QgdmFsaWRhdGlvblVSTCA9ICJodHRwOi8vXHUwMDVCIjsgLy8gaW52YWxpZCBVUkwKLSAg
YXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsICgpID0+IHsKICAgICBuZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQoInRl
c3QiLCB7IHZhbGlkYXRpb25VUkwgfSk7CiAgIH0pOwogfSwgIk11c3QgdGhyb3cgVHlwZUVycm9y
IGlmIGluaXRpYWxpemVkIHdpdGggYW4gaW52YWxpZCBVUkwuIik7CkBAIC03Miw2ICs3OSwyMCBA
QCB0ZXN0KCgpID0+IHsKICAgfQogfSwgIlJlbGF0aXZlIHZhbGlkYXRpb25VUkxzIHVzZSB0aGUg
ZG9jdW1lbnQgYXMgdGhlIGJhc2UuIik7CiAKK3Rlc3QoKCkgPT4geworICBjb25zdCB2YWxpZGF0
aW9uVVJMID0gInBhc3MiOworICBjb25zdCBiYXNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
YmFzZSIpOworICBiYXNlLmhyZWYgPSAiaHR0cHM6Ly9wYXNzLmNvbSI7CisgIGRvY3VtZW50Lmhl
YWQuYXBwZW5kKGJhc2UpOworICBjb25zdCBldmVudCA9IG5ldyBNZXJjaGFudFZhbGlkYXRpb25F
dmVudCgidGVzdCIsIHsgdmFsaWRhdGlvblVSTCB9KTsKKyAgdHJ5IHsKKyAgICBhc3NlcnRfaWRs
X2F0dHJpYnV0ZShldmVudCwgInZhbGlkYXRpb25VUkwiKTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2
ZW50LnZhbGlkYXRpb25VUkwsICJodHRwczovL3Bhc3MuY29tL3Bhc3MiKTsKKyAgfSBmaW5hbGx5
IHsKKyAgICBiYXNlLnJlbW92ZSgpOworICB9Cit9LCAiUmVsYXRpdmUgdmFsaWRhdGlvblVSTHMg
dXNlIHRoZSBkb2N1bWVudC5iYXNlVVJJIGFzIHRoZSBiYXNlLiIpOworCiB0ZXN0KCgpID0+IHsK
ICAgY29uc3QgbWV0aG9kTmFtZSA9ICJodHRwczovL3Bhc3MuY29tIjsKICAgY29uc3QgZXZlbnQg
PSBuZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQoInRlc3QiLCB7IG1ldGhvZE5hbWUgfSk7CkBA
IC0xMTQsOCArMTM1LDggQEAgdGVzdCgoKSA9PiB7CiAgICAgInVua25vd246Ly9leGFtcGxlLmNv
bS9wYXkiLAogICBdOwogICBmb3IgKGNvbnN0IG1ldGhvZE5hbWUgb2YgaW52YWxpZFBNSXMpIHsK
LSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgbmV3IFJhbmdlRXJyb3IoKSwKKyAgICBhc3NlcnRf
dGhyb3dzX2pzKAorICAgICAgUmFuZ2VFcnJvciwKICAgICAgICgpID0+IHsKICAgICAgICAgY29u
c3QgZXZlbnQgPSBuZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQoInRlc3QiLCB7IG1ldGhvZE5h
bWUgfSk7CiAgICAgICB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudEFkZHJlc3MvYXR0cmlidXRl
cy1hbmQtdG9KU09OLW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRBZGRyZXNz
L2F0dHJpYnV0ZXMtYW5kLXRvSlNPTi1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggZWRk
ZTUzM2JlNmIyZTQ5NDE1YjgxYWU0ZGYxNjcxMzkxMTdhMGQ3Yy4uOGFmY2ExOWY5MjNkNDVhMmQ5
N2ExMzRlY2MxYzlhMDJiZjRhZWE4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudEFkZHJlc3MvYXR0
cmlidXRlcy1hbmQtdG9KU09OLW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXlt
ZW50QWRkcmVzcy9hdHRyaWJ1dGVzLWFuZC10b0pTT04tbWV0aG9kLW1hbnVhbC5odHRwcy5odG1s
CkBAIC0yOCw4ICsyOCw4IEBAIGZ1bmN0aW9uIHJ1bk1hbnVhbFRlc3QoYnV0dG9uLCBleHBlY3Rl
ZCA9IHt9KSB7CiAgICAgICBhZGRyLmFkZHJlc3NMaW5lIGluc3RhbmNlb2YgQXJyYXksCiAgICAg
ICAiRXhwZWN0ZWQgYWRkcmVzc0xpbmUgdG8gYmUgYW4gYXJyYXkiCiAgICAgKTsKLSAgICBhc3Nl
cnRfdGhyb3dzKAotICAgICAgbmV3IFR5cGVFcnJvcigpLAorICAgIGFzc2VydF90aHJvd3NfanMo
CisgICAgICBUeXBlRXJyb3IsCiAgICAgICAoKSA9PiB7CiAgICAgICAgIGFkZHIuYWRkcmVzc0xp
bmUucHVzaCgidGhpcyBtdXN0IHRocm93Iik7CiAgICAgICB9LApAQCAtNzMsNiArNzMsNyBAQCBm
dW5jdGlvbiBydW5NYW51YWxUZXN0KGJ1dHRvbiwgZXhwZWN0ZWQgPSB7fSkgewogICAgICAgY2l0
eTogJ0NoYXBlbCBIaWxsJywKICAgICAgIGRlcGVuZGVudExvY2FsaXR5OiAnJywKICAgICAgIHBv
c3RhbENvZGU6ICc2MDk1JywKKyAgICAgIHJlZ2lvbjogJ1FMRCcsCiAgICAgICBzb3J0aW5nQ29k
ZTogJycsCiAgICAgICBvcmdhbml6YXRpb246ICd3M2MnLAogICAgICAgcmVjaXBpZW50OiAnd2Vi
IHBsYXRmb3JtIHRlc3QnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50
L21ldGhvZERldGFpbHMtYXR0cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50TWV0aG9kQ2hh
bmdlRXZlbnQvbWV0aG9kRGV0YWlscy1hdHRyaWJ1dGUuaHR0cHMuaHRtbAppbmRleCBlYzBhYTk2
ZGRkYjQ2YjI2NjE3MDY0YWI1NGU5ZDAyZTJhNTg4Y2JiLi5mZWFhZWY2NmFkZjhhNDMzODY4ZDMz
YmNmNzIyNTI1YWY2YzBkMmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZl
bnQvbWV0aG9kRGV0YWlscy1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50TWV0
aG9kQ2hhbmdlRXZlbnQvbWV0aG9kRGV0YWlscy1hdHRyaWJ1dGUuaHR0cHMuaHRtbApAQCAtMTcs
NyArMTcsNiBAQCB0ZXN0KCgpID0+IHsKICAgYXNzZXJ0X2lkbF9hdHRyaWJ1dGUoZXZlbnQsICJt
ZXRob2REZXRhaWxzIik7CiAgIGNvbnN0IHsgdGVzdCB9ID0gZXZlbnQubWV0aG9kRGV0YWlsczsK
ICAgYXNzZXJ0X2VxdWFscyh0ZXN0LCAicGFzcyIpOwotICBhc3NlcnRfZXF1YWxzKGV2ZW50Lm1l
dGhvZERldGFpbHMsIG1ldGhvZERldGFpbHMpOwogfSwgIk11c3QgaGF2ZSBhIG1ldGhvZERldGFp
bHMgSURMIGF0dHJpYnV0ZSwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgd2l0aCB0byB0aGUgbWV0aG9k
TmFtZSBkaWN0aW9uYXJ5IHZhbHVlIik7CiAKIHRlc3QoKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
UGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC9jb25zdHJ1Y3Rvci5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5
bWVudFJlcXVlc3RVcGRhdGVFdmVudC9jb25zdHJ1Y3Rvci5odHRwcy5odG1sCmluZGV4IGZkNjY0
OTNiZjRmMmFhMDA2ZTk5MTk4MDk0ZDFiN2FmZDM0ZjQ1NDMuLmU4ZGY3YjM1YTk0MjgwYTZjNzFk
N2Q4YWM2ZjE0NTI5MDQ1MzVkZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRl
RXZlbnQvY29uc3RydWN0b3IuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0
ZUV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwKQEAgLTYsOCArNiwxOCBAQAogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KK2NvbnN0
IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczov
L2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBt
ZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNv
ZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAg
ICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOwogY29uc3QgYmFzaWNDYXJk
ID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKLWNv
bnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkXSk7Citjb25zdCBk
ZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZCwgYXBwbGVQYXldKTsKIGNv
bnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHRvdGFsOiB7CiAgICAgbGFi
ZWw6ICJUb3RhbCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3Vw
ZGF0ZVdpdGgtY2FsbC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVx
dWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtY2FsbC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLmh0
bWwKaW5kZXggY2Q5MjhkNGJlMWQ4NjA5YTM0ZDA2ZTBhOTYwMzA2ZmM5NWI4NGUzMi4uMTM2NWVj
ZWZlYmViMjc5ZGIyZWRlOWRlOTlkMmYwYzk4NDcwOGM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVu
dFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWNhbGwtaW1tZWRpYXRlLW1hbnVhbC5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1jYWxs
LWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtOSw4ICs5LDE4IEBACiA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgog
c2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlLCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOwor
Y29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0
dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAor
ICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3Vu
dHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJd
LAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxp
ZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIg
fSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOwor
Y29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5
XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIs
IHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAg
IGxhYmVsOiAibGFiZWwiLApAQCAtNDUsMjYgKzU1LDI5IEBAIGZ1bmN0aW9uIHRlc3RJbW1lZGlh
dGVVcGRhdGUoeyB0ZXh0Q29udGVudDogdGVzdE5hbWUgfSkgewogICAgIGNvbnN0IGV2ZW50UHJv
bWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgIHJlcXVlc3Qu
YWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgInNoaXBwaW5nYWRkcmVzc2NoYW5nZSIsCi0gICAg
ICAgIGFzeW5jIGV2ID0+IHsKLSAgICAgICAgICAvLyBzcGluIHRoZSBldmVudCBsb29wLCBzZXRz
IFtbd2FpdEZvclVwZGF0ZV1dIHRvIHRydWUuCi0gICAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNv
bHZlKCk7Ci0gICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGV2LnVwZGF0ZVdpdGgodmFsaWRE
ZXRhaWxzKTsKLSAgICAgICAgICAgIHJlc29sdmUoKTsgLy8gVGhpcyBpcyBiYWQuCi0gICAgICAg
ICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICAgICAgICByZWplY3QoZXJyKTsgLy8gdGhpcyBpcyBn
b29kLgotICAgICAgICAgIH0KKyAgICAgICAgZXYgPT4geworICAgICAgICAgIC8vIEZvcmNlcyB1
cGRhdGVXaXRoKCkgdG8gYmUgcnVuIGluIHRoZSBuZXh0IGV2ZW50IGxvb3AgdGljayBzbyB0aGF0
CisgICAgICAgICAgLy8gW1t3YWl0Rm9yVXBkYXRlXV0gaXMgYWxyZWFkeSB0cnVlIHdoZW4gaXQg
cnVucy4KKyAgICAgICAgICB0LnN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICB0cnkg
eworICAgICAgICAgICAgICBldi51cGRhdGVXaXRoKHZhbGlkRGV0YWlscyk7CisgICAgICAgICAg
ICAgIHJlc29sdmUoKTsgLy8gVGhpcyBpcyBiYWQuCisgICAgICAgICAgICB9IGNhdGNoIChlcnIp
IHsKKyAgICAgICAgICAgICAgcmVqZWN0KGVycik7IC8vIHRoaXMgaXMgZ29vZC4KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICB9KTsKICAgICAgICAgfSwKICAgICAgICAgeyBvbmNlOiB0cnVlIH0K
ICAgICAgICk7CiAgICAgfSk7Ci0gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0LnNo
b3coKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgY29uc3QgYWNjZXB0UHJvbWlz
ZSA9IHJlcXVlc3Quc2hvdygpOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAg
ICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIGV2ZW50UHJvbWlzZSwKICAg
ICAgICJUaGUgZXZlbnQgbG9vcCBhbHJlYWR5IHNwdW4sIHNvIFtbd2FpdEZvclVwZGF0ZV1dIGlz
IG5vdyB0cnVlIgogICAgICk7CisgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhY2NlcHRQcm9t
aXNlOwogICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRlKCk7CiAgIH0sIHRlc3ROYW1lLnRyaW0o
KSk7CiB9CkBAIC05MCw3ICsxMDMsNyBAQCBmdW5jdGlvbiB0ZXN0U3Vic2VxdWVudFVwZGF0ZVdp
dGhDYWxscyh7IHRleHRDb250ZW50OiB0ZXN0TmFtZSB9KSB7CiAgICAgICB9KTsKICAgICB9KTsK
ICAgICBjb25zdCByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKLSAgICBhd2FpdCBw
cm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQs
CiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgZXZlbnRQcm9taXNlLApAQCAtMTM1
LDcgKzE0OCw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN5Y2xlRXZlbnRzKHsgdGV4dENvbnRlbnQ6IHRl
c3ROYW1lIH0pIHsKIAogICAgIC8vIEhlcmUsIHdlIHRyeSB0byBiZSBzbmVha3ksIGFuZCByZXVz
ZSB0aGUgYWRkcmVzc0NoYW5nZUV2ZW50IHRvIHBlcmZvcm0gdGhlIHVwZGF0ZS4KICAgICAvLyBI
b3dldmVyLCBhZGRyZXNzQ2hhbmdlRXZlbnQgW1t3YWl0aW5nRm9yVXBkYXRlXV0gaXMgdHJ1ZSwg
c28gaXQgdGhyb3dzLgotICAgIGFzc2VydF90aHJvd3MoCisgICAgYXNzZXJ0X3Rocm93c19kb20o
CiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgKCkgPT4gewogICAgICAgICBhZGRy
ZXNzQ2hhbmdlRXZlbnQudXBkYXRlV2l0aCh2YWxpZERldGFpbHMpOwpAQCAtMTQ2LDcgKzE1OSw3
IEBAIGZ1bmN0aW9uIHRlc3RSZWN5Y2xlRXZlbnRzKHsgdGV4dENvbnRlbnQ6IHRlc3ROYW1lIH0p
IHsKICAgICAvLyBCdXQgb3B0aW9uQ2hhbmdlRXZlbnQgaXMgc3RpbGwgdXNhYmxlIHRobywgc28u
Li4KICAgICBvcHRpb25DaGFuZ2VFdmVudC51cGRhdGVXaXRoKHZhbGlkRGV0YWlscyk7CiAKLSAg
ICBhc3NlcnRfdGhyb3dzKAorICAgIGFzc2VydF90aHJvd3NfZG9tKAogICAgICAgIkludmFsaWRT
dGF0ZUVycm9yIiwKICAgICAgICgpID0+IHsKICAgICAgICAgb3B0aW9uQ2hhbmdlRXZlbnQudXBk
YXRlV2l0aCh2YWxpZERldGFpbHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRh
dGVFdmVudC91cGRhdGVXaXRoLWR1cGxpY2F0ZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWR1cGxpY2F0
ZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDQwYmEzMDU3ZTBjYjEw
NDEyZGY3NTk1MTZlZTE5MzkyYWU3MGYxYzMuLmE0YTdhZmQ3ZjYzMzdjMzEzNGQyNTRmMTI1NzQ2
M2Q2OWVmZDMwZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBk
YXRlV2l0aC1kdXBsaWNhdGUtc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtZHVwbGljYXRlLXNoaXBw
aW5nLW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTgsOSArOCwxOCBAQAogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
IHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsK
LQorY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAz
LAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBj
b3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNE
UyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2
YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2Fy
ZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBbdmFsaWRNZXRob2RdOworY29uc3QgdmFsaWRN
ZXRob2RzID0gW3ZhbGlkTWV0aG9kLCBhcHBsZVBheV07CiBjb25zdCB2YWxpZEFtb3VudCA9IE9i
amVjdC5mcmVlemUoewogICBjdXJyZW5jeTogIlVTRCIsCiAgIHZhbHVlOiAiNS4wMCIsCkBAIC02
NCw5ICs3Myw5IEBAIGZ1bmN0aW9uIHRlc3RGaXJlRXZlbnRzKGJ1dHRvbikgewogICAgICAgZXZl
bnQudXBkYXRlV2l0aChuZXdEZXRhaWxzKTsKICAgICB9KTsKICAgICBjb25zdCBhY2NlcHRQcm9t
aXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19qcygKICAgICAgIHQsCi0gICAgICBuZXcgVHlwZUVycm9yKCks
CisgICAgICBUeXBlRXJyb3IsCiAgICAgICBhY2NlcHRQcm9taXNlLAogICAgICAgIkR1cGxpY2F0
ZSBzaGlwcGluZ09wdGlvbiBpZHMgbXVzdCBhYm9ydCB3aXRoIFR5cGVFcnJvciIKICAgICApOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWluY3Jl
bWVudGFsLXVwZGF0ZS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRl
RXZlbnQvdXBkYXRlV2l0aC1pbmNyZW1lbnRhbC11cGRhdGUtbWFudWFsLmh0dHBzLmh0bWwKaW5k
ZXggM2QxYmZiNDFiODRkNmIwZWNjMmQ0YmRlMjVlYWIyZGVhZDQ2NWUzNC4uYzFlZDFiNWY2ODUw
YzdmMjY1NjZmZmI2ZTk4YjA2ZWE1MTczOWUxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVl
c3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWluY3JlbWVudGFsLXVwZGF0ZS1tYW51YWwuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtaW5jcmVt
ZW50YWwtdXBkYXRlLW1hbnVhbC5odHRwcy5odG1sCkBAIC0xNCw2ICsxNCwxNSBAQCBzZXR1cCh7
CiAKIGNvbnN0IG1ldGhvZHMgPSBbewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIs
Cit9LCB7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXki
LAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJt
ZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hh
bnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3Jrczog
WyJ2aXNhIl0sCisgIH0KIH1dOwogCiBjb25zdCBvcHRpb25zID0gewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
UGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLW1ldGhvZC1hYm9ydC11cGRhdGUt
bWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdp
dGgtbWV0aG9kLWFib3J0LXVwZGF0ZS1tYW51YWwuaHR0cHMuaHRtbAppbmRleCAwZmY3ZjIzYjY0
Nzk2OTU5MDdhZWUzZTQ3OTQzNmI1ZmYxM2UxNjVhLi5lMjQ0NTJjMmE5OWQzMDFiOGVhYzAzMzA4
M2UzNzk1ZTU0YmJlMTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50
L3VwZGF0ZVdpdGgtbWV0aG9kLWFib3J0LXVwZGF0ZS1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtbWV0aG9kLWFib3J0LXVwZGF0
ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtMTgsOCArMTgsMTkgQEAgY29uc3QgdmFsaWRNZXRob2RC
YXNpY0NhcmQgPSBPYmplY3QuZnJlZXplKHsKICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNh
cmQiLAogfSk7CiAKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAg
dmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBs
ZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsi
c3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30p
OworCiAvLyBNZXRob2RzCi1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxp
ZE1ldGhvZEJhc2ljQ2FyZCwgdmFsaWRNZXRob2RdKTsKK2NvbnN0IHZhbGlkTWV0aG9kcyA9IE9i
amVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kQmFzaWNDYXJkLCB2YWxpZE1ldGhvZCwgYXBwbGVQYXld
KTsKIAogLy8gQW1vdW50cwogY29uc3QgdmFsaWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKQEAg
LTEzMCw3ICsxNDEsNyBAQCByZWN1cnNpdmVEYXRhLmZvbyA9IHJlY3Vyc2l2ZURhdGE7CiBPYmpl
Y3QuZnJlZXplKHJlY3Vyc2l2ZURhdGEpOwogCiBjb25zdCBtb2RpZmllcldpdGhSZWN1cnNpdmVE
YXRhID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHN1cHBvcnRlZE1ldGhvZHM6IHZhbGlkTWV0aG9kQmFz
aWNDYXJkLAorICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiAgIHRvdGFsOiB2YWxp
ZFRvdGFsLAogICBkYXRhOiByZWN1cnNpdmVEYXRhLAogfSk7CkBAIC0xNDgsMTQgKzE1OSwyMCBA
QCBmdW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFkRGV0YWlscywgZXhwZWN0ZWRFcnJv
ciwgZXJyb3JDb2RlKSB7CiAgICAgfTsKICAgICAvLyBGaXJzdCB3ZSBjaGVjayB0aGUgYmFkIHVw
ZGF0ZS4KICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGxldCB0ZXN0X2Z1bmM7CisgICAgaWYgKHR5cGVvZiBl
eHBlY3RlZEVycm9yID09ICJmdW5jdGlvbiIpIHsKKyAgICAgIHRlc3RfZnVuYyA9IHByb21pc2Vf
cmVqZWN0c19qczsKKyAgICB9IGVsc2UgeworICAgICAgdGVzdF9mdW5jID0gcHJvbWlzZV9yZWpl
Y3RzX2RvbTsKKyAgICB9CisgICAgYXdhaXQgdGVzdF9mdW5jKAogICAgICAgdCwKICAgICAgIGV4
cGVjdGVkRXJyb3IsCiAgICAgICBhY2NlcHRQcm9taXNlLAogICAgICAgImJhZERldGFpbHMgbXVz
dCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IiCiAgICAg
KTsKICAgICAvLyBUaGUgcmVxdWVzdCBbW3N0YXRlXV0gaXMgbm93ICJjbG9zZWQiLCBzbyBsZXQn
cyBjaGVjayBmb3IgSW52YWxpZFN0YXRlRXJyb3IKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMo
CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAgICAiSW52YWxp
ZFN0YXRlRXJyb3IiLAogICAgICAgcmVxdWVzdC5zaG93KCksCkBAIC0xNzUsNyArMTkyLDcgQEAg
ZnVuY3Rpb24gdGVzdEJhZFVwZGF0ZShidXR0b24sIGJhZERldGFpbHMsIGV4cGVjdGVkRXJyb3Is
IGVycm9yQ29kZSkgewogPG9sPgogICA8bGk+CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSIKLSAgICAg
IGNvbnN0IHJlamVjdGVkUHJvbWlzZSA9IFByb21pc2UucmVqZWN0KG5ldyBTeW50YXhFcnJvcign
dGVzdCcpKS5jYXRjaChlcnIgPT4gZXJyKTsKKyAgICAgIGNvbnN0IHJlamVjdGVkUHJvbWlzZSA9
IFByb21pc2UucmVqZWN0KG5ldyBTeW50YXhFcnJvcigndGVzdCcpKTsKICAgICAgIHRlc3RCYWRV
cGRhdGUodGhpcywgcmVqZWN0ZWRQcm9taXNlLCAnQWJvcnRFcnJvcicpOwogICAgICI+CiAgICAg
ICBSZWplY3Rpb24gb2YgZGV0YWlsc1Byb21pc2UgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGgg
YW4gIkFib3J0RXJyb3IiIERPTUV4Y2VwdGlvbi4KQEAgLTE4NCw3ICsyMDEsNyBAQCBmdW5jdGlv
biB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFkRGV0YWlscywgZXhwZWN0ZWRFcnJvciwgZXJyb3JD
b2RlKSB7CiAgIDxsaT4KICAgICA8YnV0dG9uIG9uY2xpY2s9IgogICAgICAgY29uc3QgaW52YWxp
ZERldGFpbHMgPSB7IHRvdGFsOiBgdGhpcyB3aWxsIGNhdXNlIGEgVHlwZUVycm9yIWAgfTsKLSAg
ICAgIHRlc3RCYWRVcGRhdGUodGhpcywgaW52YWxpZERldGFpbHMsIG5ldyBUeXBlRXJyb3IoKSk7
CisgICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGludmFsaWREZXRhaWxzLCBUeXBlRXJyb3IpOwog
ICAgICI+CiAgICAgICBUb3RhbCBpbiB0aGUgdXBkYXRlIGlzIGEgc3RyaW5nLCBzbyBjb252ZXJ0
aW5nIHRvIElETCBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhIFR5cGVFcnJvci4KICAgICA8
L2J1dHRvbj4KQEAgLTE5MiwxNCArMjA5LDE0IEBAIGZ1bmN0aW9uIHRlc3RCYWRVcGRhdGUoYnV0
dG9uLCBiYWREZXRhaWxzLCBleHBlY3RlZEVycm9yLCBlcnJvckNvZGUpIHsKICAgPGxpPgogICAg
IDxidXR0b24gb25jbGljaz0iCiAgICAgICBjb25zdCBpbnZhbGlkRGV0YWlscyA9IHsgdG90YWw6
IHJlY3Vyc2l2ZURhdGEgfTsKLSAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgaW52YWxpZERldGFp
bHMsIG5ldyBUeXBlRXJyb3IoKSk7CisgICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGludmFsaWRE
ZXRhaWxzLCBUeXBlRXJyb3IpOwogICAgICI+CiAgICAgICBUb3RhbCBpcyByZWN1cnNpdmUsIHNv
IGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9y
LgogICAgIDwvYnV0dG9uPgogICA8L2xpPgogICA8bGk+CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSIK
LSAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgaW52YWxpZERldGFpbHNOZWdhdGl2ZVRvdGFsLCBu
ZXcgVHlwZUVycm9yKCkpOworICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBpbnZhbGlkRGV0YWls
c05lZ2F0aXZlVG90YWwsIFR5cGVFcnJvcik7CiAgICAgIj4KICAgICAgIFVwZGF0aW5nIHdpdGgg
YSBuZWdhdGl2ZSB0b3RhbCByZXN1bHRzIGluIGEgVHlwZUVycm9yLgogICAgIDwvYnV0dG9uPgpA
QCAtMjA3LDE2ICsyMjQsMTYgQEAgZnVuY3Rpb24gdGVzdEJhZFVwZGF0ZShidXR0b24sIGJhZERl
dGFpbHMsIGV4cGVjdGVkRXJyb3IsIGVycm9yQ29kZSkgewogICA8bGk+CiAgICAgPGJ1dHRvbiBv
bmNsaWNrPSIKICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCB2YWxp
ZERldGFpbHMsIHsgZGlzcGxheUl0ZW1zOiBpbnZhbGlkUGF5bWVudEl0ZW1zIH0pOwotICAgICAg
dGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBuZXcgUmFuZ2VFcnJvcigpKTsKKyAgICAg
IHRlc3RCYWRVcGRhdGUodGhpcywgYmFkRGV0YWlscywgUmFuZ2VFcnJvcik7CiAgICAgIj4KLSAg
ICAgIFVwZGF0aW5nIHdpdGggYSBkaXNwbGF5SXRlbSB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kg
cmVzdWx0cyBpbiBUeXBlRXJyb3IuCisgICAgICBVcGRhdGluZyB3aXRoIGEgZGlzcGxheUl0ZW0g
d2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5IHJlc3VsdHMgaW4gUmFuZ2VFcnJvci4KICAgICA8L2J1
dHRvbj4KICAgPC9saT4KICAgPGxpPgogICAgIDxidXR0b24gb25jbGljaz0iCiAgICAgICBjb25z
dCBkdXBsaWNhdGVTaGlwcGluZ09wdGlvbnMgPSBbdmFsaWRTaGlwcGluZ09wdGlvbiwgdmFsaWRT
aGlwcGluZ09wdGlvbl07CiAgICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7
fSwgdmFsaWREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9uczogZHVwbGljYXRlU2hpcHBpbmdPcHRp
b25zIH0pOwotICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBuZXcgVHlwZUVy
cm9yKCkpOworICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBUeXBlRXJyb3Ip
OwogICAgICI+CiAgICAgICBVcGRhdGluZyB3aXRoIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbnMg
KHNhbWUgSURzKSByZXN1bHRzIGluIGEgVHlwZUVycm9yLgogICAgIDwvYnV0dG9uPgpAQCAtMjI0
LDcgKzI0MSw3IEBAIGZ1bmN0aW9uIHRlc3RCYWRVcGRhdGUoYnV0dG9uLCBiYWREZXRhaWxzLCBl
eHBlY3RlZEVycm9yLCBlcnJvckNvZGUpIHsKICAgPGxpPgogICAgIDxidXR0b24gb25jbGljaz0i
CiAgICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsaWREZXRhaWxz
LCB7IHNoaXBwaW5nT3B0aW9uczogaW52YWxpZFNoaXBwaW5nT3B0aW9ucyB9KTsKLSAgICAgIHRl
c3RCYWRVcGRhdGUodGhpcywgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgICB0
ZXN0QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIFJhbmdlRXJyb3IpOwogICAgICI+CiAgICAg
ICBVcGRhdGluZyB3aXRoIGEgc2hpcHBpbmdPcHRpb24gd2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5
IHZhbHVlIHJlc3VsdHMgaW4gYSBSYW5nRXJyb3IuCiAgICAgPC9idXR0b24+CkBAIC0yMzQsNyAr
MjUxLDcgQEAgZnVuY3Rpb24gdGVzdEJhZFVwZGF0ZShidXR0b24sIGJhZERldGFpbHMsIGV4cGVj
dGVkRXJyb3IsIGVycm9yQ29kZSkgewogICAgICAgLy8gdmFsaWRNb2RpZmllciBpcyB0aGVyZSBh
cyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMgLSBpdCBzaG91bGQganVzdCBnZXQgaWdub3JlZAog
ICAgICAgY29uc3QgYmFkTW9kaWZpZXJzID0geyBtb2RpZmllcnM6IFsgbW9kaWZpZXJXaXRoSW52
YWxpZFRvdGFsLCB2YWxpZE1vZGlmaWVyIF0gfTsKICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBP
YmplY3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMsIGJhZE1vZGlmaWVycyk7Ci0gICAgICB0ZXN0
QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIG5ldyBSYW5nZUVycm9yKCkpOworICAgICAgdGVz
dEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgICAiPgogICAgICAg
TXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwgaXRlbSBoYXMg
YW4gaW52YWxpZCBjdXJyZW5jeS4KICAgICA8L2J1dHRvbj4KQEAgLTI0NCw3ICsyNjEsNyBAQCBm
dW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFkRGV0YWlscywgZXhwZWN0ZWRFcnJvciwg
ZXJyb3JDb2RlKSB7CiAgICAgICAvLyB2YWxpZE1vZGlmaWVyIGlzIHRoZXJlIGFzIHRvIGF2b2lk
IGZhbHNlIHBvc2l0aXZlcyAtIGl0IHNob3VsZCBqdXN0IGdldCBpZ25vcmVkCiAgICAgICBjb25z
dCBiYWRNb2RpZmllcnMgPSB7IG1vZGlmaWVyczogWyBtb2RpZmllcldpdGhJbnZhbGlkRGlzcGxh
eUl0ZW1zLCB2YWxpZE1vZGlmaWVyIF0gfTsKICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmpl
Y3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMsIGJhZE1vZGlmaWVycyk7Ci0gICAgICB0ZXN0QmFk
VXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIG5ldyBSYW5nZUVycm9yKCkpOworICAgICAgdGVzdEJh
ZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgICAiPgogICAgICAgTXVz
dCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkgaXRlbSBoYXMgYW4g
aW52YWxpZCBjdXJyZW5jeS4KICAgIDwvYnV0dG9uPgpAQCAtMjU0LDcgKzI3MSw3IEBAIGZ1bmN0
aW9uIHRlc3RCYWRVcGRhdGUoYnV0dG9uLCBiYWREZXRhaWxzLCBleHBlY3RlZEVycm9yLCBlcnJv
ckNvZGUpIHsKICAgICAgIC8vIHZhbGlkTW9kaWZpZXIgaXMgdGhlcmUgYXMgdG8gYXZvaWQgZmFs
c2UgcG9zaXRpdmVzIC0gaXQgc2hvdWxkIGp1c3QgZ2V0IGlnbm9yZWQKICAgICAgIGNvbnN0IGJh
ZE1vZGlmaWVycyA9IHsgbW9kaWZpZXJzOiBbIG1vZGlmaWVyV2l0aFJlY3Vyc2l2ZURhdGEsIHZh
bGlkTW9kaWZpZXIgXSB9OwogICAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24o
e30sIHZhbGlkRGV0YWlscywgYmFkTW9kaWZpZXJzKTsKLSAgICAgIHRlc3RCYWRVcGRhdGUodGhp
cywgYmFkRGV0YWlscywgbmV3IFR5cGVFcnJvcigpKTsKKyAgICAgIHRlc3RCYWRVcGRhdGUodGhp
cywgYmFkRGV0YWlscywgVHlwZUVycm9yKTsKICAgICAiPgogICAgICAgTXVzdCB0aHJvdyBhcyBN
b2RpZmllciBoYXMgYSByZWN1cnNpdmUgZGljdGlvbmFyeS4KICAgICA8L2J1dHRvbj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1zdGF0ZS1jaGVj
a3MtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0
ZVdpdGgtc3RhdGUtY2hlY2tzLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDRkNGVmNzM5NDlkZDFk
ZDI3MTUyMWM1MDA1Y2E0ZTkzMTA4YWI4NDQuLmZiMTZkZTU2OTlhYTc0ZTlmYjcxNzg4ZTIzNzhk
ZjZlMjE4NDdmMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBk
YXRlV2l0aC1zdGF0ZS1jaGVja3MtbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJl
cXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLXN0YXRlLWNoZWNrcy1tYW51YWwuaHR0cHMuaHRt
bApAQCAtNiw4ICs2LDE4IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgogc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVl
LCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJl
ZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIs
CisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1l
cmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFu
dENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBb
InZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBz
dXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOworY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0
LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9i
amVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIsIHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2
YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGxhYmVsOiAibGFiZWwiLApAQCAtNDUsNyAr
NTUsNyBAQCBmdW5jdGlvbiB0ZXN0UmVxdWVzdElzQ2xvc2VkKGJ1dHRvbikgewogICAgIHJlc3Bv
bnNlUHJvbWlzZS5jYXRjaChlcnIgPT4gZXJyKTsKICAgICAvLyBTZXQgcmVxdWVzdC5bW3N0YXRl
XV0gdG8gY2xvc2VkCiAgICAgYXdhaXQgZXZlbnQudGFyZ2V0LmFib3J0KCk7Ci0gICAgYXNzZXJ0
X3Rocm93cygKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgKICAgICAgICJJbnZhbGlkU3RhdGVFcnJv
ciIsCiAgICAgICAoKSA9PiB7CiAgICAgICAgIGV2ZW50LnVwZGF0ZVdpdGgodmFsaWREZXRhaWxz
KTsKQEAgLTcwLDcgKzgwLDcgQEAgZnVuY3Rpb24gdGVzdFJlcXVlc3RJc1VwZGF0aW5nKGJ1dHRv
bikgewogICAgIH0pOwogICAgIC8vIFNldCByZXF1ZXN0LltbdXBkYXRpbmddXSB0byB0cnVlCiAg
ICAgZXZlbnQudXBkYXRlV2l0aChwZW5kaW5nUHJvbWlzZSk7Ci0gICAgYXNzZXJ0X3Rocm93cygK
KyAgICBhc3NlcnRfdGhyb3dzX2RvbSgKICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAg
ICAoKSA9PiB7CiAgICAgICAgIGV2ZW50LnVwZGF0ZVdpdGgodmFsaWREZXRhaWxzKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRld2l0aC1tZXRob2QuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRld2l0aC1tZXRob2Qu
aHR0cHMuaHRtbAppbmRleCBhZGFjZGYzZjA2ZDFjMWFkYjUwYTY1NTg1YjY0NDQxYzVlMDBkZTYz
Li5hY2M2MmY1ZTJjZTk4MGVhZDE1ZTI1YTcwYjkwY2E0ZTQ1ZDU2YjNmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZXdpdGgtbWV0aG9kLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGV3aXRoLW1ldGhvZC5odHRw
cy5odG1sCkBAIC02LDggKzYsMTggQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVl
emUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwK
KyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVy
Y2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50
Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsi
dmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoeyBzdXBw
b3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9i
amVjdC5mcmVlemUoW2Jhc2ljQ2FyZF0pOworY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3Qu
ZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9i
amVjdC5mcmVlemUoewogICB0b3RhbDogewogICAgIGxhYmVsOiAiVG90YWwiLApAQCAtMzMsNyAr
NDMsNyBAQCB0ZXN0KCgpID0+IHsKICAgICBuZXcgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCgi
c2hpcHBpbmdhZGRyZXNzY2hhbmdlIiksCiAgICAgbmV3IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZl
bnQoInNoaXBwaW5nb3B0aW9uY2hhbmdlIiksCiAgIF0uZm9yRWFjaChldiA9PiB7Ci0gICAgYXNz
ZXJ0X3Rocm93cygKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgKICAgICAgICJJbnZhbGlkU3RhdGVF
cnJvciIsCiAgICAgICAoKSA9PiB7CiAgICAgICAgIGV2LnVwZGF0ZVdpdGgoUHJvbWlzZS5yZXNv
bHZlKCkpOwpAQCAtNTMsNyArNjMsNyBAQCB0ZXN0KCgpID0+IHsKICAgXS5tYXAoZXYgPT4gewog
ICAgIHJlcXVlc3QuZGlzcGF0Y2hFdmVudChldik7IC8vIHNldCAudGFyZ2V0IGFuZCBkaXNwYXRj
aCBmbGFnCiAgICAgLy8gdW5zdHJ1c3RlZCBldmVudC4KLSAgICBhc3NlcnRfdGhyb3dzKAorICAg
IGFzc2VydF90aHJvd3NfZG9tKAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgICgp
ID0+IHsKICAgICAgICAgZXYudXBkYXRlV2l0aChQcm9taXNlLnJlc29sdmUoKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dzLWVycm9yLW1lbWJlci1t
YW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dz
LWVycm9yLW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbAppbmRleCBiM2E1MzllZjhmNGI4YWE5ZGQ5
YTNlZDBjYjZiNTI3ZjE4NGNiMDRmLi45MTM1NTIwY2Q3NjJmM2U2Mjg2YjVmM2JhNTcyZjg4Y2Fl
OTIwZmExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93
cy1lcnJvci1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlkYXRp
b25FcnJvcnMvcmV0cnktc2hvd3MtZXJyb3ItbWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCkBAIC00
NSw2ICs0NSw2IEBAIGZ1bmN0aW9uIHJldHJ5U2hvd3NFcnJvck1lbWJlcihidXR0b24pIHsKICAg
PC9saT4KIDwvb2w+CiA8c21hbGw+Ci0gIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNl
IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lzc3Vl
cyI+ZmlsZSBhIGJ1ZzwvYT4KLSAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVx
dWVzdC9PV05FUlMiPm93bmVyczwvYT4uCisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxl
YXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lz
c3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQt
cmVxdWVzdC9NRVRBLnltbCI+b3duZXJzPC9hPi4KIDwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9Q
YXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93cy1wYXllci1tZW1iZXItbWFudWFsLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93cy1wYXllci1t
ZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggOGRiYzc2MGZkMDdmZTk5MGI4YmJkZWQ1NmZm
Y2E1OTA5MTQ5MmZkOC4uZjgxMTVlNjllYzVkN2MzMTcyYTZlNDJkNGU0NDY4OThkMDRmOWE4YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJvcnMvcmV0cnktc2hvd3MtcGF5ZXIt
bWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3Jz
L3JldHJ5LXNob3dzLXBheWVyLW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbApAQCAtNjAsNiArNjAs
NiBAQCBmdW5jdGlvbiByZXRyeVNob3dzUGF5ZXJNZW1iZXIoYnV0dG9uLCBlcnJvcikgewogICA8
L2xpPgogPC9vbD4KIDxzbWFsbD4KLSAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2Ug
PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaXNzdWVz
Ij5maWxlIGEgYnVnPC9hPgotICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1
ZXN0L09XTkVSUyI+b3duZXJzPC9hPi4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVh
c2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1y
ZXF1ZXN0L01FVEEueW1sIj5vd25lcnM8L2E+LgogPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1Bh
eW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dzLXNoaXBwaW5nQWRkcmVzcy1tZW1iZXIt
bWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93
cy1zaGlwcGluZ0FkZHJlc3MtbWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDM1NmYzMGRh
NmI1NGJlZjQxMzZhMmIzYTgwNjMxM2JmNGJiMWY3NjYuLjk0ZTZmYTUxMDViMjBhNzEyNzI5MmRl
NTdhZGNmYjIwZjNiODA2ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3Jz
L3JldHJ5LXNob3dzLXNoaXBwaW5nQWRkcmVzcy1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJvcnMvcmV0cnktc2hvd3Mtc2hpcHBpbmdBZGRyZXNz
LW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbApAQCAtOTgsNiArOTgsNiBAQCBmdW5jdGlvbiByZXRy
eVNob3dzU2hpcHBpbmdBZGRyZXNzTWVtYmVyKGJ1dHRvbiwgZXJyb3IpIHsKICAgPC9saT4KIDwv
b2w+CiA8c21hbGw+Ci0gIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9
Imh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lzc3VlcyI+ZmlsZSBh
IGJ1ZzwvYT4KLSAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9PV05F
UlMiPm93bmVyczwvYT4uCisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhy
ZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+Zmls
ZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9N
RVRBLnltbCI+b3duZXJzPC9hPi4KIDwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1z
LW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxnb3JpdGhtcy1tYW51YWwuaHR0cHMuaHRtbAppbmRl
eCA1NDk0MzUzYzZiY2ViNGVkMGQzODg4NTJiZDdmNDI2ZTU3MTUxODZkLi5iOTBjMzEyYWJhM2Jm
NDk3ODk4NmRlZmUwMGY1MTk1Yzc0Yjg4YjYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1zLW1h
bnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsZ29yaXRobXMtbWFudWFsLmh0dHBzLmh0bWwKQEAg
LTE1LDYgKzE1LDE2IEBAIGNvbnN0IG1ldGhvZHMgPSBbCiAgIHsKICAgICBzdXBwb3J0ZWRNZXRo
b2RzOiAiYmFzaWMtY2FyZCIsCiAgIH0sCisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0
cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAz
LAorICAgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAg
ICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBw
b3J0czNEUyJdLAorICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0sCisg
IH0KIF07CiBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSB7CiAgIHNoaXBwaW5nT3B0aW9uczogWwpA
QCAtMTAwLDkgKzExMCw5IEBAIGFzeW5jIGZ1bmN0aW9uIHJ1bkFib3J0VGVzdChidXR0b24pIHsK
ICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5
bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlsc05vU2hpcHBpbmdPcHRpb25zKTsKICAgICAvLyBB
d2FpdCB0aGUgdXNlciB0byBhYm9ydAotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJv
cnRFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KHQsICJBYm9ydEVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwogICAgIC8vIFtbc3RhdGVdXSBpcyBu
b3cgY2xvc2VkCi0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJv
ciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJ
bnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKICAgfSwgdGVzdE5hbWUudHJpbSgp
KTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3Rp
dmUtZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxv
d3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dAppbmRleCA2MTViZTliMGIwOWI1NmExYTE1YzQ2ZTAxMTU5NGE0MzQzYTA0ZWRi
Li43YWFhZjFmMWFhNDA2NjBkODQ2NTMzYzgyNTAxMTU4YzUzMzE2NjhkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1
bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDcgQEAK
IEJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0
NDMvY29tbW9uL2JsYW5rLmh0bWwKIAogCi1QQVNTIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxs
b3dwYXltZW50cmVxdWVzdD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAoY3Jvc3Mtb3JpZ2luKSAK
K0ZBSUwgUGF5bWVudFJlcXVlc3QgPGlmcmFtZSBhbGxvd3BheW1lbnRyZXF1ZXN0PiBpbiBub24t
YWN0aXZlIGRvY3VtZW50IChjcm9zcy1vcmlnaW4pIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlv
biAiKCkgPT4geworICAgICAgICBuZXcgZ3JhYmJlZFBheW1lbnRSZXF1ZXN0KC4uLnBheW1lbnRB
cmdzKTsKKyAgICAgIH0iIHRocmV3IGFuIGV4Y2VwdGlvbiBmcm9tIHRoZSB3cm9uZyBnbG9iYWwK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtY3Jv
c3Mtb3JpZ2luLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUt
ZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi5odG1sCmluZGV4IDQ4ZjZkOTA2NjMyOGQ2
ZGU0YTI2YWI0MmM2OWEzNGQ4MjJlY2UyZTguLjI5ZDdjNjAxMGVjZWI4MzYxMjEzZjYyYWJjNWZi
ZTBlMTAyZDMyYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRv
Y3VtZW50LWNyb3NzLW9yaWdpbi5odHRwcy5zdWIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLmh0bWwKQEAgLTE3
LDcgKzE3LDcgQEAgYXN5bmNfdGVzdCgodCkgPT4gewogICAgICAgcGF0aDogJy9jb21tb24vYmxh
bmsuaHRtbCcKICAgICB9KTsKICAgICBpZnJhbWUub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgo
KSA9PiB7Ci0gICAgICBhc3NlcnRfdGhyb3dzKHtuYW1lOiAnU2VjdXJpdHlFcnJvcid9LCAoKSA9
PiB7CisgICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnU2VjdXJpdHlFcnJvcicsICgpID0+IHsKICAg
ICAgICAgbmV3IGdyYWJiZWRQYXltZW50UmVxdWVzdCguLi5wYXltZW50QXJncyk7CiAgICAgICB9
KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRv
Y3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJl
cXVlc3QvYWN0aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCAwMWU4NzhlZTUwYjk2ZDg0NThjOTY0NzhkNTI5YmE0YmFmZGI0MDM3Li42NWQ3ZjFkZmYxNGRi
NWYyM2IwY2NhZDJlOTI0NzFmYjNkMDM0NzBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNiBAQAogCiAKLVBBU1MgUGF5bWVudFJlcXVlc3Qg
PGlmcmFtZSBhbGxvd3BheW1lbnRyZXF1ZXN0PiBpbiBub24tYWN0aXZlIGRvY3VtZW50IChzYW1l
LW9yaWdpbikgCitGQUlMIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVz
dD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAoc2FtZS1vcmlnaW4pIGFzc2VydF90aHJvd3NfZG9t
OiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgICBuZXcgZ3JhYmJlZFBheW1lbnRSZXF1ZXN0KC4u
LnBheW1lbnRBcmdzKTsKKyAgICAgIH0iIHRocmV3IGFuIGV4Y2VwdGlvbiBmcm9tIHRoZSB3cm9u
ZyBnbG9iYWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9j
dW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0
aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLmh0bWwKaW5kZXggYmJjYzAyNmQ1Mjc0YTEz
OWU2ZTFkMzI1MzQzMjIwYjViN2U5NTlkZi4uOWQ1ZDMwY2RjYWI2MWY4ZGUzYjM2ZDYyYjhhY2Ni
MGUwZjczYjQxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9j
dW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0
L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRwcy5odG1sCkBAIC0xMyw3ICsxMyw3IEBA
IGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICBjb25zdCBncmFiYmVkUGF5bWVudFJlcXVlc3QgPSB3
aW4uUGF5bWVudFJlcXVlc3Q7CiAgICAgd2luLmxvY2F0aW9uLmhyZWYgPSAnL2NvbW1vbi9ibGFu
ay5odG1sJzsKICAgICBpZnJhbWUub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7Ci0g
ICAgICBhc3NlcnRfdGhyb3dzKHtuYW1lOiAnU2VjdXJpdHlFcnJvcid9LCAoKSA9PiB7CisgICAg
ICBhc3NlcnRfdGhyb3dzX2RvbSgnU2VjdXJpdHlFcnJvcicsICgpID0+IHsKICAgICAgICAgbmV3
IGdyYWJiZWRQYXltZW50UmVxdWVzdCguLi5wYXltZW50QXJncyk7CiAgICAgICB9KTsKICAgICB9
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvcmVtb3ZpbmctYWxsb3dwYXlt
ZW50cmVxdWVzdC5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvcmVtb3Zp
bmctYWxsb3dwYXltZW50cmVxdWVzdC5odHRwcy5zdWIuaHRtbAppbmRleCAwOTBhZjM5ZWQ3NmJj
MmVmNDVlYzYwOGMzYmMwNWY3Yzc0YWMwYmQyLi42NGJhZWJiNTAyNDY1MTRlOWZkM2RiNTlkM2Rh
ZGE0YWY5NzIwODI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L3JlbW92aW5n
LWFsbG93cGF5bWVudHJlcXVlc3QuaHR0cHMuc3ViLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50
cmVxdWVzdC9yZW1vdmluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCkBAIC0y
Nyw2ICsyNyw5IEBAIGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgfSk7CiAKICAgd2luZG93Lm9ubWVz
c2FnZSA9IHQuc3RlcF9mdW5jKChlKSA9PiB7CisgICAgLy8gSWdub3JlIG1lc3NhZ2VzIHRoYXQg
YXJlIG5vdCBwYXJ0IG9mIHRoZSB0ZXN0LgorICAgIGlmIChlLnNvdXJjZSAhPSBpZnJhbWUuY29u
dGVudFdpbmRvdykgcmV0dXJuOworCiAgICAgaSsrOwogICAgIGlmIChpID09PSAxKSB7CiAgICAg
ICAvLyA1LiBUaGlzIGlzIHRoZSBmaXJzdCBtZXNzYWdlIHdlIHJlY2VpdmUsIGZyb20gdGhlIGZp
cnN0IGxvYWQuCkBAIC00OCw3ICs1MSw5IEBAIGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICAgIC8v
IDguIFRoaXMgaXMgdGhlIHNlY29uZCBtZXNzYWdlIHdlIHJlY2VpdmUsIGZyb20gdGhlIHNlY29u
ZCBsb2FkLgogICAgICAgLy8gU2luY2UgdGhlIGFsbG93cGF5bWVudHJlcXVlc3QgZmxhZyB3YXMg
bm90IHNldCwgd2UgZXhwZWN0IGFuIGV4Y2VwdGlvbi4KICAgICAgIGFzc2VydF9lcXVhbHMoZS5k
YXRhLm1lc3NhZ2UsICdFeGNlcHRpb24nLCAnYWZ0ZXIgbmF2aWdhdGlvbicpOwotICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEuZGV0YWlscywgW3RydWUgLyogZXggaW5zdGFuY2VvZiBE
T01FeGNlcHRpb24qLywgMTggLyogZXguY29kZSAqLywgJ1NlY3VyaXR5RXJyb3InIC8qIGV4Lm5h
bWUgKi9dLCAnYWZ0ZXIgbmF2aWdhdGlvbicpOworICAgICAgYXNzZXJ0X2VxdWFscyg0LCBlLmRh
dGEuZGV0YWlscy5sZW5ndGgpOworICAgICAgLy8gVGhlIGxhc3QgZW50cnkgaXMgdGhlIGVycm9y
IHN0YWNrdHJhY2UuIElnbm9yZSBpdCBpbiBjb21wYXJpc29uLgorICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhlLmRhdGEuZGV0YWlscy5zbGljZSgwLCAzKSwgW3RydWUgLyogZXggaW5zdGFuY2Vv
ZiBET01FeGNlcHRpb24qLywgMTggLyogZXguY29kZSAqLywgJ1NlY3VyaXR5RXJyb3InIC8qIGV4
Lm5hbWUgKi9dLCAnYWZ0ZXIgbmF2aWdhdGlvbicpOwogICAgICAgdC5kb25lKCk7CiAgICAgfQog
ICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3Bh
eW1lbnRyZXF1ZXN0LXRpbWluZy5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVl
c3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0LXRpbWluZy5odHRwcy5zdWIuaHRtbAppbmRl
eCAwNzJiOTRmMjg2ZWQzMzVmMDYzOWU4ZjVjZTg5YzBhZjUyZDM1OTE3Li5hNzQxMjk2ZDVkYTc1
NDYwZjNkMjg3N2YyMjhkNGM1OWUxM2Q2NDNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L3NldHRpbmctYWxsb3dwYXltZW50cmVxdWVzdC10aW1pbmcuaHR0cHMuc3ViLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9zZXR0aW5nLWFsbG93cGF5bWVudHJlcXVlc3Qt
dGltaW5nLmh0dHBzLnN1Yi5odG1sCkBAIC0xLDUgKzEsNiBAQAogPCFkb2N0eXBlIGh0bWw+CiA8
dGl0bGU+UGF5bWVudFJlcXVlc3Qgc2V0dGluZyBhbGxvd3BheW1lbnRyZXF1ZXN0IGFmdGVyIGRv
Y3VtZW50IGNyZWF0aW9uLCBiZWZvcmUgcmVzcG9uc2U8L3RpdGxlPgorPG1ldGEgbmFtZT0idGlt
ZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cz48L3NjcmlwdD4KIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CkBAIC0yMSw5ICsyMiwxNSBAQCBhc3lu
Y190ZXN0KCh0KSA9PiB7CiAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoJ1do
YXQgaXMgdGhlIHJlc3VsdCBvZiBuZXcgUGF5bWVudFJlcXVlc3QoLi4uKT8nLCAnKicpOwogICB9
KTsKIAotICB3aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1bmNfZG9uZSgoZSkgPT4geworICB3
aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoKGUpID0+IHsKKyAgICAvLyBJZ25vcmUgbWVz
c2FnZXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlc3QuCisgICAgaWYgKGUuc291cmNlICE9
IGlmcmFtZS5jb250ZW50V2luZG93KSByZXR1cm47CisKICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0
YS5tZXNzYWdlLCAnRXhjZXB0aW9uJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEu
ZGV0YWlscywgW3RydWUgLyogZXggaW5zdGFuY2VvZiBET01FeGNlcHRpb24gKi8sIERPTUV4Y2Vw
dGlvbi5TRUNVUklUWV9FUlIsICdTZWN1cml0eUVycm9yJ10pOworICAgIGFzc2VydF9lcXVhbHMo
NCwgZS5kYXRhLmRldGFpbHMubGVuZ3RoKTsKKyAgICAvLyBUaGUgbGFzdCBlbnRyeSBpcyB0aGUg
ZXJyb3Igc3RhY2t0cmFjZS4gSWdub3JlIGl0IGluIGNvbXBhcmlzb24uCisgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhlLmRhdGEuZGV0YWlscy5zbGljZSgwLCAzKSwgW3RydWUgLyogZXggaW5zdGFu
Y2VvZiBET01FeGNlcHRpb24gKi8sIERPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIsICdTZWN1cml0
eUVycm9yJ10pOworICAgIHQuZG9uZSgpOwogICB9KTsKIAogICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L3NldHRp
bmctYWxsb3dwYXltZW50cmVxdWVzdC5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJl
cXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCmluZGV4IDQ1
NjRkMjY0YzRlMmM1NDJiMjU3NDBlOTI3MDljOWU3YzBhMTRhMWQuLmMxZDUzYTRiYzI2MTc1OWQ1
ZWU3MjQzYzkwZTRiZWI3ZjhiN2RlNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVl
c3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2Fs
bG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5o
dG1sCkBAIC0yMCwxMCArMjAsMTUgQEAgYXN5bmNfdGVzdCgodCkgPT4gewogICB9KTsKIAogICB3
aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoKGUpID0+IHsKKyAgICAvLyBJZ25vcmUgbWVz
c2FnZXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlc3QuCisgICAgaWYgKGUuc291cmNlICE9
IGlmcmFtZS5jb250ZW50V2luZG93KSByZXR1cm47CisKICAgICBpKys7CiAgICAgaWYgKGkgPT09
IDEpIHsKICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLm1lc3NhZ2UsICdFeGNlcHRpb24nLCAn
YmVmb3JlIG5hdmlnYXRpb24nKTsKLSAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZS5kYXRhLmRl
dGFpbHMsIFt0cnVlIC8qIGV4IGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uKi8sIDE4IC8qIGV4LmNv
ZGUgKi8sICdTZWN1cml0eUVycm9yJyAvKiBleC5uYW1lICovXSwgJ2JlZm9yZSBuYXZpZ2F0aW9u
Jyk7CisgICAgICBhc3NlcnRfZXF1YWxzKDQsIGUuZGF0YS5kZXRhaWxzLmxlbmd0aCk7CisgICAg
ICAvLyBUaGUgbGFzdCBlbnRyeSBpcyB0aGUgZXJyb3Igc3RhY2t0cmFjZS4gSWdub3JlIGl0IGlu
IGNvbXBhcmlzb24uCisgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0YS5kZXRhaWxzLnNs
aWNlKDAsIDMpLCBbdHJ1ZSAvKiBleCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiovLCAxOCAvKiBl
eC5jb2RlICovLCAnU2VjdXJpdHlFcnJvcicgLyogZXgubmFtZSAqL10sICdiZWZvcmUgbmF2aWdh
dGlvbicpOwogCiAgICAgICAvLyBOYXZpZ2F0ZSB0aGUgaWZyYW1lLiBUaGlzIHdpbGwgZmlyZSBh
IHNlY29uZCAnbG9hZCcgZXZlbnQgb24gdGhlIGlmcmFtZS4KICAgICAgIGlmcmFtZS5jb250ZW50
V2luZG93LmxvY2F0aW9uLmhyZWYgPSBpZnJhbWUuc3JjICsgJz8yJzsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9i
aWxsaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY0ODE1NzczMzM1Nzg1NGE3OTZjOTFhMjIzZWU0MzAxZWNkYzI0OGMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9iaWxsaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKK1JlcXVlc3QgYmlsbGluZyBhZGRyZXNzCisKK0NsaWNrIG9u
IGVhY2ggYnV0dG9uIGluIHNlcXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3aXRob3V0IHJlZnJl
c2hpbmcgdGhlIHBhZ2UuIEVhY2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVx
dWVzdCBVSSB3aW5kb3cuCisKK1doZW4gdGhlIHBheW1lbnQgc2hlZXQgaXMgcHJlc2VudGVkLCBz
ZWxlY3QgYSBwYXltZW50IG1ldGhvZCAoZS5nLiwgYSBjcmVkaXQgY2FyZCkuCisKK1doZW4gbm8g
YmlsbGluZyBhZGRyZXNzIGlzIHJlcXVlc3RlZCwgYFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5t
ZXRob2REZXRhaWxzLmJpbGxpbmdBZGRyZXNzYCBpcyBudWxsLgorV2hlbiBiaWxsaW5nIGFkZHJl
c3MgaXMgcmVxdWVzdGVkLGBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQubWV0aG9kRGV0YWlscy5i
aWxsaW5nQWRkcmVzc2AgaXMgYSBgUGF5bWVudEFkZHJlc3NgLgorRG9uZSEKK0lmIHlvdSBmaW5k
IGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1Z2dl
c3RlZCByZXZpZXdlcnMuCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVs
bAorCitQQVNTIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBpcyBpbiBwcm90b3R5cGUgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
YmlsbGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZm
OWNiMjg1N2ZmNmE1YzZlNTdiM2ZlNDNhNzFlMmZlZDc1YWFiYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5odG1sCkBAIC0wLDAgKzEs
MTE0IEBACis8IURPQ1RZUEUgaHRtbD4gPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cis8dGl0bGU+
VGVzdCBmb3IgcmVxdWVzdGluZyBiaWxsaW5nIGFkZHJlc3M8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgc2V0dXAo
eworICAgIGV4cGxpY2l0X2RvbmU6IHRydWUsCisgICAgZXhwbGljaXRfdGltZW91dDogdHJ1ZSwK
KyAgfSk7CisKKyAgY29uc3QgbWV0aG9kcyA9IFsKKyAgICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJi
YXNpYy1jYXJkIiB9LAorICAgIHsKKyAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2Fw
cGxlLmNvbS9hcHBsZS1wYXkiLAorICAgICAgZGF0YTogeworICAgICAgICB2ZXJzaW9uOiAzLAor
ICAgICAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAg
ICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJz
dXBwb3J0czNEUyJdLAorICAgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAg
ICB9LAorICAgIH0sCisgIF07CisKKyAgY29uc3QgZGV0YWlscyA9IHsKKyAgICB0b3RhbDogewor
ICAgICAgbGFiZWw6ICJsYWJlbCIsCisgICAgICBhbW91bnQ6IHsgY3VycmVuY3k6ICJVU0QiLCB2
YWx1ZTogIjUuMDAiIH0sCisgICAgfSwKKyAgfTsKKyAgdGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0
X3RydWUoCisgICAgICAib25wYXltZW50bWV0aG9kY2hhbmdlIiBpbiBQYXltZW50UmVxdWVzdC5w
cm90b3R5cGUsCisgICAgICAiVGhlIHBheW1lbnRtZXRob2RjaGFuZ2UgaXMgbm90IHN1cHBvcnRl
ZCIKKyAgICApOworICB9LCAib25wYXltZW50bWV0aG9kY2hhbmdlIGlzIGluIHByb3RvdHlwZSIp
OworCisgIGZ1bmN0aW9uIGRvbnRSZXF1ZXN0QmlsbGluZ0FkZHJlc3MoKSB7CisgICAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVx
dWVzdChtZXRob2RzLCBkZXRhaWxzLCB7fSk7CisgICAgICBjb25zdCBzaG93UHJvbWlzZSA9IHJl
cXVlc3Quc2hvdygpOworCisgICAgICAvLyBMZXQncyBjaGVjayB0aGUgbWV0aG9kIGRhdGEgZnJv
bSBldmVudC4KKyAgICAgIGNvbnN0IHsgbWV0aG9kRGV0YWlscyB9ID0gYXdhaXQgbmV3IFByb21p
c2UocmVzb2x2ZSA9PgorICAgICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInBheW1lbnRt
ZXRob2RjaGFuZ2UiLCByZXNvbHZlKQorICAgICAgKTsKKworICAgICAgYXNzZXJ0X3RydWUoImJp
bGxpbmdBZGRyZXNzIiBpbiBtZXRob2REZXRhaWxzKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoCisg
ICAgICAgIG1ldGhvZERldGFpbHMuYmlsbGluZ0FkZHJlc3MsCisgICAgICAgIG51bGwsCisgICAg
ICAgICJFeHBlY3RlZCBtZXRob2REZXRhaWxzLmJpbGxpbmdBZGRyZXNzIHRvIGJlIG51bGwiCisg
ICAgICApOworICAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOworICAgIH0pOworICB9CisKKyAg
ZnVuY3Rpb24gcmVxdWVzdEJpbGxpbmdBZGRyZXNzKCkgeworICAgIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9k
cywgZGV0YWlscywgeworICAgICAgICByZXF1ZXN0QmlsbGluZ0FkZHJlc3M6IHRydWUsCisgICAg
ICB9KTsKKyAgICAgIGNvbnN0IHNob3dQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisKKyAgICAg
IC8vIExldCdzIGNoZWNrIHRoZSBtZXRob2QgZGF0YSBmcm9tIGV2ZW50LgorICAgICAgY29uc3Qg
eyBtZXRob2REZXRhaWxzIH0gPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+CisgICAgICAg
IHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigicGF5bWVudG1ldGhvZGNoYW5nZSIsIHJlc29sdmUp
CisgICAgICApOworCisgICAgICBhc3NlcnRfdHJ1ZSgiYmlsbGluZ0FkZHJlc3MiIGluIG1ldGhv
ZERldGFpbHMpOworCisgICAgICBjb25zdCB7IGJpbGxpbmdBZGRyZXNzIH0gPSBtZXRob2REZXRh
aWxzOworICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgIGJpbGxpbmdBZGRyZXNzIGluc3RhbmNl
b2YgUGF5bWVudEFkZHJlc3MsCisgICAgICAgICJFeHBlY3RlZCBpbnN0YW5jZSBvZiBQYXltZW50
QWRkcmVzcyIKKyAgICAgICk7CisgICAgICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CisgICAgfSk7
CisgIH0KKzwvc2NyaXB0PgorCis8aDI+UmVxdWVzdCBiaWxsaW5nIGFkZHJlc3M8L2gyPgorPHA+
CisgIENsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNlcXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3
aXRob3V0IHJlZnJlc2hpbmcgdGhlCisgIHBhZ2UuIEVhY2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAg
dGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuCis8L3A+Cis8cD4KKyAgV2hlbiB0aGUgcGF5
bWVudCBzaGVldCBpcyBwcmVzZW50ZWQsIHNlbGVjdCBhIHBheW1lbnQgbWV0aG9kIChlLmcuLCBh
IGNyZWRpdAorICBjYXJkKS4KKzwvcD4KKzxvbD4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGlj
az0iZG9udFJlcXVlc3RCaWxsaW5nQWRkcmVzcygpIj4KKyAgICAgIFdoZW4gbm8gYmlsbGluZyBh
ZGRyZXNzIGlzIHJlcXVlc3RlZCwKKyAgICAgIGBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQubWV0
aG9kRGV0YWlscy5iaWxsaW5nQWRkcmVzc2AgaXMgbnVsbC4KKyAgICA8L2J1dHRvbj4KKyAgPC9s
aT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0icmVxdWVzdEJpbGxpbmdBZGRyZXNzKCki
PgorICAgICAgV2hlbiBiaWxsaW5nIGFkZHJlc3MgaXMKKyAgICAgIHJlcXVlc3RlZCxgUGF5bWVu
dE1ldGhvZENoYW5nZUV2ZW50Lm1ldGhvZERldGFpbHMuYmlsbGluZ0FkZHJlc3NgIGlzIGEKKyAg
ICAgIGBQYXltZW50QWRkcmVzc2AuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT48YnV0
dG9uIG9uY2xpY2s9ImRvbmUoKSI+RG9uZSE8L2J1dHRvbj48L2xpPgorPC9vbD4KKzxzbWFsbD4K
KyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UKKyAgPGEgaHJlZj0iaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPiBh
bmQKKyAgdGFnIG9uZSBvZiB0aGUKKyAgPGEKKyAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55
bWwiCisgICAgPnN1Z2dlc3RlZCByZXZpZXdlcnM8L2E+LgorPC9zbWFsbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L2JsYW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9ibGFuay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkZWFhNDViYjYyMDc4
ODI0MjcxMTcyNWNmZDgxODliNjgxODM1YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9ibGFuay5o
dG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5CbGFuayBQYWdlPC90aXRs
ZT4KKyAgICA8c2NyaXB0PgorICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgb25sb2FkIGV2ZW50IGZp
cmVzIHdoZW4gdGhpcyBwYWdlIGlzCisgICAgICAgIC8vIG9wZW5lZCBhcyBhIHBvcHVwLgorICAg
ICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVs
bC8xODE1NworICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1t
YW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlwcGluZy1vcHRpb24tbWFudWFsLmh0dHBz
Lmh0bWwKaW5kZXggYTMzMzY1YmFjNzNlZDUxYjY4NzMyMTVkMGY1NGQ3OWE3MzQyMjE2My4uNDM4
MDAxODA0YWNkYWNhMjE0MTBjZTBkMzY3YTgyMDhjYWM2MGFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hh
bmdlLXNoaXBwaW5nLW9wdGlvbi1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9jaGFuZ2Utc2hp
cHBpbmctb3B0aW9uLW1hbnVhbC5odHRwcy5odG1sCkBAIC05LDcgKzksMTcgQEAKIDxzY3JpcHQ+
CiBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7
CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAi
YmFzaWMtY2FyZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxp
ZE1ldGhvZF0pOworY29uc3QgYXBwbGVQYXlNZXRob2QgPSB7CisgIHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjog
MywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAg
Y291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMz
RFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0sCit9OworY29uc3Qg
dmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5TWV0aG9k
XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIs
IHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAg
IGxhYmVsOiAibGFiZWwiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1z
ZWxlY3QtbGFzdC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlwcGluZy1vcHRpb24t
c2VsZWN0LWxhc3QtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggZjA4NDkxMTUwYWM3ZWU2ZDY5NTIw
YTkzNmViMjg2OGQ2MDM5M2M1Ny4uNGFkMzFkNjUzMTczMzhmMDQ3NGMyNGU2ZTM1Njg4ZWI4ZjJi
NGNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1zZWxlY3QtbGFzdC1t
YW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9jaGFuZ2Utc2hpcHBpbmctb3B0aW9uLXNlbGVjdC1s
YXN0LW1hbnVhbC5odHRwcy5odG1sCkBAIC04LDcgKzgsMTYgQEAKIHNldHVwKHsgZXhwbGljaXRf
ZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsKIGNvbnN0IHZhbGlkTWV0aG9k
cyA9IE9iamVjdC5mcmVlemUoWwogICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9
LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0s
CisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5
IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVudGlm
aWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisg
ICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgICAgc3VwcG9y
dGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0sCisgIH0sCiBdKTsKIGNvbnN0IHZhbGlkQW1v
dW50ID0gT2JqZWN0LmZyZWV6ZSh7IGN1cnJlbmN5OiAiVVNEIiwgdmFsdWU6ICI1LjAwIiB9KTsK
IGNvbnN0IHZhbGlkVG90YWwgPSBPYmplY3QuZnJlZXplKHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NvbnN0
cnVjdG9yX2NvbnZlcnRfbWV0aG9kX2RhdGEuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NvbnN0cnVjdG9yX2Nv
bnZlcnRfbWV0aG9kX2RhdGEuaHR0cHMuaHRtbAppbmRleCA1Njg2NmI0M2E0ODFlNzM4Yzg0NDUz
N2NiOWMzNTVlOTYzOGEyOWZhLi5mNGE5YTcyMWQwN2M5MWQzMWQ3YjVkMzY0NzFhMjM5ZTRlN2Fi
ZTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9jb25zdHJ1Y3Rvcl9jb252ZXJ0X21ldGhvZF9kYXRhLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvY29uc3RydWN0b3JfY29udmVydF9tZXRob2RfZGF0YS5odHRwcy5odG1s
CkBAIC0zMiw4ICszMiw4IEBACiAgICAgZm9yIChjb25zdCBzdXBwb3J0ZWRNZXRob2RzIG9mIFtd
LmNvbmNhdChrbm93blBNSXMpLmNvbmNhdCh1bmtub3duUE1JcykpIHsKICAgICAgIGNvbnN0IG1l
dGhvZCA9IHsgc3VwcG9ydGVkTWV0aG9kcyB9OwogICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQ
YXltZW50UmVxdWVzdChbbWV0aG9kXSwgZGV0YWlscyk7Ci0gICAgICBhc3NlcnRfdGhyb3dzKAot
ICAgICAgICBuZXcgVHlwZUVycm9yKCksCisgICAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAg
ICBUeXBlRXJyb3IsCiAgICAgICAgICgpID0+IHsKICAgICAgICAgICBjb25zdCBiYWRNZXRob2Qg
PSBPYmplY3QuYXNzaWduKAogICAgICAgICAgICAge30sCkBAIC01NSw4ICs1NSw4IEBACiAgICAg
ICAvLyBPbmx5IGNoZWNrIHRoZSBQTUlzIHRoYXQgYXJlIGFjdHVhbGx5IHN1cHBvcnRlZAogICAg
ICAgaWYgKCEoYXdhaXQgcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpKSkgY29udGludWU7CiAKLSAg
ICAgIGFzc2VydF90aHJvd3MoCi0gICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIGFzc2Vy
dF90aHJvd3NfanMoCisgICAgICAgIFR5cGVFcnJvciwKICAgICAgICAgKCkgPT4gewogICAgICAg
ICAgIGNvbnN0IGJhZE1ldGhvZCA9IE9iamVjdC5hc3NpZ24oCiAgICAgICAgICAgICB7fSwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L2R5bmFtaWNhbGx5LWNoYW5nZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9keW5hbWljYWxseS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9u
cy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5MWM5ZmViYjg0M2MyNzQy
ZTg5NjhlMGZkOTM1ODNlYzVjZjczNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9keW5hbWljYWxs
eS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTUgQEAKK1BheW1lbnRSZXF1ZXN0IHNoaXBwaW5nT3B0aW9uIGF0dHJpYnV0ZQorCitD
bGljayBvbiBlYWNoIGJ1dHRvbiBpbiBzZXF1ZW5jZSBmcm9tIHRvcCB0byBib3R0b20gd2l0aG91
dCByZWZyZXNoaW5nIHRoZSBwYWdlLiBFYWNoIGJ1dHRvbiAoZXhjZXB0IHRoZSAnRG9uZScgYnV0
dG9uKSB3aWxsIGJyaW5nIHVwIHRoZSBQYXltZW50IFJlcXVlc3QgVUkgd2luZG93LgorCitXaGVu
IHRoZSBwYXltZW50IHNoZWV0IGlzIHByZXNlbnRlZCwgdmlldyBvcHRpb25zIGZvciBTaGlwcGlu
ZyBNZXRob2QuIFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZTogIkRlZmF1bHQgc2hpcHBpbmcgbWV0
aG9kIgorQ2hhbmdlIHlvdXIgU2hpcHBpbmcgQWRkcmVzcyAtIGVpdGhlciB1cGRhdGUgeW91ciBl
eGlzdGluZyBvbmUgYnkgY2hhbmdpbmcgc29tZXRoaW5nIChuYW1lLCBhZGRyZXNzLCBldGMpLCBv
ciBzZWxlY3QgYSBkaWZmZXJlbnQgU2hpcHBpbmcgQWRkcmVzcywgb3IgYWRkIGEgbmV3IFNoaXBw
aW5nIEFkZHJlc3MgYW5kIHNlbGVjdCBpdC4KK0dvIGJhY2sgdG8gU2hpcHBpbmcgTWV0aG9kLCBh
bmQgdGhlcmUgaXMgbm93IGFuIG9wdGlvbiBjYWxsZWQgIkR5bmFtaWNhbGx5IGFkZGVkIHNoaXBw
aW5nIG9wdGlvbiIuIFNlbGVjdCBpdAorQ2xpY2sgb24gdGhlICdEb25lJyBidXR0b24KK1doZW4g
dGhlIGFkZHJlc3MgaXMgY2hhbmdlZCwgc2hpcHBpbmcgbWV0aG9kcyBjYW4gYmUgdXBkYXRlZAor
RG9uZQorSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFn
IG9uZSBvZiB0aGUgc3VnZ2VzdGVkIHJldmlld2Vycy4KKworSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvZHluYW1pY2FsbHktY2hhbmdl
LXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9keW5hbWljYWxseS1jaGFu
Z2Utc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2I3MDUz
NTBkNGQ5ZjU1ODUzMzQ0NDY5NTIxOThkZmFjNDdkMDQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
ZHluYW1pY2FsbHktY2hhbmdlLXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSwxNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+
Cis8dGl0bGU+VGVzdCBmb3IgUGF5bWVudFJlcXVlc3Qgc2hpcHBpbmdPcHRpb24gZHluYW1pYyB1
cGRhdGluZzwvdGl0bGU+Cis8bGluaworICByZWw9ImhlbHAiCisgIGhyZWY9Imh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3NoaXBwaW5nb3B0aW9uLWF0dHJpYnV0ZSIKKy8+
Cis8bGluaworICByZWw9ImhlbHAiCisgIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXlt
ZW50LXJlcXVlc3QvI29uc2hpcHBpbmdvcHRpb25jaGFuZ2UtYXR0cmlidXRlIgorLz4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cisg
IHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsK
KyAgY29uc3QgdmFsaWRNZXRob2QgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczog
ImJhc2ljLWNhcmQiIH0pOworICBjb25zdCBhcHBsZVBheU1ldGhvZCA9IHsKKyAgICBzdXBwb3J0
ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgICBkYXRhOiB7Cisg
ICAgICB2ZXJzaW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29t
LmV4YW1wbGUiLAorICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgICBtZXJjaGFudENhcGFi
aWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlz
YSJdLAorICAgIH0sCisgIH07CisgIGNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUo
W3ZhbGlkTWV0aG9kLCBhcHBsZVBheU1ldGhvZF0pOworICBjb25zdCB2YWxpZEFtb3VudCA9IE9i
amVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIsIHZhbHVlOiAiNS4wMCIgfSk7CisgIGNvbnN0
IHZhbGlkVG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAgICBsYWJlbDogImxhYmVsIiwKKyAgICBh
bW91bnQ6IHZhbGlkQW1vdW50LAorICB9KTsKKyAgY29uc3QgdmFsaWREZXRhaWxzID0gT2JqZWN0
LmZyZWV6ZSh7IHRvdGFsOiB2YWxpZFRvdGFsIH0pOworCisgIGNvbnN0IGluaXRpYWxWYWxpZFNo
aXBwaW5nT3B0aW9uID0gT2JqZWN0LmZyZWV6ZSh7CisgICAgaWQ6ICJkZWZhdWx0LW1ldGhvZCIs
CisgICAgbGFiZWw6ICJEZWZhdWx0IHNoaXBwaW5nIG1ldGhvZCIsCisgICAgYW1vdW50OiB2YWxp
ZEFtb3VudCwKKyAgICBzZWxlY3RlZDogdHJ1ZSwKKyAgfSk7CisKKyAgY29uc3QgdmFsaWREeW5h
bWljU2hpcHBpbmdPcHRpb24gPSBPYmplY3QuZnJlZXplKHsKKyAgICBpZDogImR5bmFtaWNhbGx5
LWFkZGVkLWlkIiwKKyAgICBsYWJlbDogIkR5bmFtaWNhbGx5IGFkZGVkIHNoaXBwaW5nIG9wdGlv
biIsCisgICAgYW1vdW50OiB2YWxpZEFtb3VudCwKKyAgICBzZWxlY3RlZDogZmFsc2UsCisgIH0p
OworCisgIGNvbnN0IHJlcXVlc3RTaGlwcGluZyA9IE9iamVjdC5mcmVlemUoeworICAgIHJlcXVl
c3RTaGlwcGluZzogdHJ1ZSwKKyAgfSk7CisKKyAgZnVuY3Rpb24gdGVzdFNoaXBwaW5nT3B0aW9u
Q2hhbmdlZCgpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgICAgIGNvbnN0
IGRldGFpbHNXaXRoU2hpcHBpbmdPcHRpb25zID0geworICAgICAgICAuLi52YWxpZERldGFpbHMs
CisgICAgICAgIHNoaXBwaW5nT3B0aW9uczogW2luaXRpYWxWYWxpZFNoaXBwaW5nT3B0aW9uXSwK
KyAgICAgIH07CisgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAorICAg
ICAgICB2YWxpZE1ldGhvZHMsCisgICAgICAgIGRldGFpbHNXaXRoU2hpcHBpbmdPcHRpb25zLAor
ICAgICAgICByZXF1ZXN0U2hpcHBpbmcKKyAgICAgICk7CisgICAgICBjb25zdCBzaGlwcGluZ0Fk
ZHJlc3NDaGFuZ2VMaXN0ZW5lciA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAg
IHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAic2hpcHBpbmdhZGRyZXNzY2hh
bmdlIiwKKyAgICAgICAgICAoZXYpID0+IHsKKyAgICAgICAgICAgIC8vIHJlc29sdmUocmVxdWVz
dC5zaGlwcGluZ09wdGlvbik7CisgICAgICAgICAgICBldi51cGRhdGVXaXRoKHsKKyAgICAgICAg
ICAgICAgc2hpcHBpbmdPcHRpb25zOiBbCisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbGlkU2hp
cHBpbmdPcHRpb24sCisgICAgICAgICAgICAgICAgdmFsaWREeW5hbWljU2hpcHBpbmdPcHRpb24s
CisgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHsgb25jZTogdHJ1ZSB9CisgICAgICAgICk7Cisg
ICAgICB9KTsKKyAgICAgIGNvbnN0IGhhbmRsZXJQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsKKyAgICAgICAgcmVxdWVzdC5vbnNoaXBwaW5nb3B0aW9uY2hhbmdlID0gKCkgPT4g
eworICAgICAgICAgIHJlc29sdmUocmVxdWVzdC5zaGlwcGluZ09wdGlvbik7CisgICAgICAgIH07
CisgICAgICB9KTsKKyAgICAgIHJlcXVlc3Quc2hvdygpLmNhdGNoKChlcnIpID0+IGVycik7CisK
KyAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgIHNoaXBw
aW5nQWRkcmVzc0NoYW5nZUxpc3RlbmVyLAorICAgICAgICBoYW5kbGVyUHJvbWlzZSwKKyAgICAg
IF0pOworICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgIHJlc3VsdHNbMV0gPT09ICJkeW5hbWlj
YWxseS1hZGRlZC1pZCIsCisgICAgICAgICJFeHBlY3RlZCBkeW5hbWljYWxseS1hZGRlZC1pZCBh
cyB0aGUgc2hpcHBpbmdPcHRpb24iCisgICAgICApOworICAgICAgYXdhaXQgcmVxdWVzdC5hYm9y
dCgpOworICAgIH0pOworICB9Cis8L3NjcmlwdD4KKworPGgyPlBheW1lbnRSZXF1ZXN0IHNoaXBw
aW5nT3B0aW9uIGF0dHJpYnV0ZTwvaDI+Cis8cD4KKyAgQ2xpY2sgb24gZWFjaCBidXR0b24gaW4g
c2VxdWVuY2UgZnJvbSB0b3AgdG8gYm90dG9tIHdpdGhvdXQgcmVmcmVzaGluZyB0aGUKKyAgcGFn
ZS4gRWFjaCBidXR0b24gKGV4Y2VwdCB0aGUgJ0RvbmUnIGJ1dHRvbikgd2lsbCBicmluZyB1cCB0
aGUgUGF5bWVudCBSZXF1ZXN0CisgIFVJIHdpbmRvdy4KKzwvcD4KKzxvbD4KKyAgPGxpPgorICAg
IFdoZW4gdGhlIHBheW1lbnQgc2hlZXQgaXMgcHJlc2VudGVkLCB2aWV3IG9wdGlvbnMgZm9yIFNo
aXBwaW5nIE1ldGhvZC4gVGhlcmUKKyAgICBzaG91bGQgb25seSBiZSBvbmU6ICJEZWZhdWx0IHNo
aXBwaW5nIG1ldGhvZCIKKyAgPC9saT4KKyAgPGxpPgorICAgIENoYW5nZSB5b3VyIFNoaXBwaW5n
IEFkZHJlc3MgLSBlaXRoZXIgdXBkYXRlIHlvdXIgZXhpc3Rpbmcgb25lIGJ5IGNoYW5naW5nCisg
ICAgc29tZXRoaW5nIChuYW1lLCBhZGRyZXNzLCBldGMpLCBvciBzZWxlY3QgYSBkaWZmZXJlbnQg
U2hpcHBpbmcgQWRkcmVzcywgb3IKKyAgICBhZGQgYSBuZXcgU2hpcHBpbmcgQWRkcmVzcyBhbmQg
c2VsZWN0IGl0LgorICA8L2xpPgorICA8bGk+CisgICAgR28gYmFjayB0byBTaGlwcGluZyBNZXRo
b2QsIGFuZCB0aGVyZSBpcyBub3cgYW4gb3B0aW9uIGNhbGxlZCAiRHluYW1pY2FsbHkKKyAgICBh
ZGRlZCBzaGlwcGluZyBvcHRpb24iLiBTZWxlY3QgaXQKKyAgPC9saT4KKyAgPGxpPgorICAgIENs
aWNrIG9uIHRoZSAnRG9uZScgYnV0dG9uCisgIDwvbGk+Cis8L29sPgorPHVsPgorICA8bGk+Cisg
ICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0U2hpcHBpbmdPcHRpb25DaGFuZ2VkKCkiPgorICAgICAg
V2hlbiB0aGUgYWRkcmVzcyBpcyBjaGFuZ2VkLCBzaGlwcGluZyBtZXRob2RzIGNhbiBiZSB1cGRh
dGVkCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9
ImRvbmUoKSI+RG9uZTwvYnV0dG9uPgorICA8L2xpPgorPC91bD4KKzxzbWFsbD4KKyAgSWYgeW91
IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UKKyAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPiBhbmQKKyAgdGFn
IG9uZSBvZiB0aGUKKyAgPGEKKyAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwiCisgICAg
PnN1Z2dlc3RlZCByZXZpZXdlcnM8L2E+LgorPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2hpc3Rv
cmljYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L2hpc3RvcmljYWwuaHR0cHMuaHRtbAppbmRleCBjYmQyOWQ0
Y2ZmODY5ODM2NWMwNWFjZmU3NTUwNGRlNWVjN2UxYWVjLi42NjYzZTYzMWJmZDI4NTdkYzYzZmY5
ODU0ZTg2NTc4OTNjNzFhN2VkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9oaXN0b3JpY2FsLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvaGlzdG9yaWNhbC5odHRwcy5odG1sCkBAIC0zNCw3ICszNCw3IEBAIHRlc3QoKCkg
PT4gewogICBjb25zdCB1bmV4cGVjdGVkRXJyb3IgPSB7bmFtZTogJ3NlcXVlbmNlPERPTVN0cmlu
Zz4gY29udmVyc2lvbiBpcyBub3QgYWxsb3dlZCd9OwogICBtZXRob2RzLnRvU3RyaW5nID0gKCkg
PT4geyB0aHJvdyBleHBlY3RlZEVycm9yOyB9OwogICBPYmplY3QuZGVmaW5lUHJvcGVydHkobWV0
aG9kcywgJzAnLCB7IGdldDogKCkgPT4geyB0aHJvdyB1bmV4cGVjdGVkRXJyb3I7IH0gfSk7Ci0g
IGFzc2VydF90aHJvd3MoZXhwZWN0ZWRFcnJvciwgKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2V4
YWN0bHkoZXhwZWN0ZWRFcnJvciwgKCkgPT4gewogICAgIG5ldyBQYXltZW50UmVxdWVzdChbe3N1
cHBvcnRlZE1ldGhvZHM6IG1ldGhvZHN9XSwge3RvdGFsOiB7bGFiZWw6ICdiYXInLCBhbW91bnQ6
IHtjdXJyZW5jeTogJ0JBWicsIHZhbHVlOiAnMCd9fX0pOwogICB9KTsKIH0sICdzdXBwb3J0ZWRN
ZXRob2RzIG11c3Qgbm90IHN1cHBvcnQgc2VxdWVuY2U8RE9NU3RyaW5nPicpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3Qvb25tZXJjaGFudHZhbGlkYXRpb24tYXR0cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbm1l
cmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1dGUuaHR0cHMuaHRtbAppbmRleCBjMGVkMjMxNjdlZDkz
NzhlYzMyZTc2OWJkNGYzZTNhZmFlZjUwNDBjLi5kMzFhYzJkZDcyYWJjZjUxYTI4ZWNlYzg1MDQw
MGY1ZjBjNmI5YmI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbm1lcmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1
dGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbm1lcmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1dGUuaHR0
cHMuaHRtbApAQCAtNyw3ICs3LDE2IEBACiA8c2NyaXB0PgogInVzZSBzdHJpY3QiOwogY29uc3Qg
dGVzdE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAibm90LWEtcmVh
bC1tZXRob2QiIH0pOwotY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIgfSk7Citjb25zdCBhcHBsZVBh
eSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5j
b20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJ
ZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMi
LAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9y
dGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9LAorfSk7CiBjb25zdCBkZWZhdWx0TWV0aG9kcyA9
IE9iamVjdC5mcmVlemUoW3Rlc3RNZXRob2QsIGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0
YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3RhbDogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXlt
ZW50bWVudGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXlt
ZW50bWVudGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhMmY4NzRlOTI3NjhmMTgyZDg4YmQ3ZjgyNTc2NjZlZjdkOTU2
YzlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29u
cGF5bWVudG1lbnRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1QQVNTIE11c3QgaGF2ZSBhIG9ucGF5bWVudG1ldGhv
ZGNoYW5nZSBJREwgYXR0cmlidXRlIAotUEFTUyBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmli
dXRlIGlzIGEgZ2VuZXJpYyBoYW5kbGVyIGZvciAicGF5bWVudG1ldGhvZGNoYW5nZSIgCi1QQVNT
IG9ucGF5bWVudG1ldGhvZGNoYW5nZSBhdHRyaWJ1dGUgaXMgYSBoYW5kbGVyIGZvciBQYXltZW50
TWV0aG9kQ2hhbmdlRXZlbnQgCi1QQVNTIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBhdHRyaWJ1dGUg
YW5kIGxpc3RlbmVycyBib3RoIHdvcmsgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1lbnRo
b2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZW50aG9kY2hhbmdl
LWF0dHJpYnV0ZS5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDg0
ZWI4NjhmOTgzZTNjZGIwZWZjZWFiNWZlMmIzYzYwODRiNGFiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1lbnRob2RjaGFuZ2UtYXR0
cmlidXRlLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGZvciBvbnBheW1l
bnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI29ucGF5bWVudG1ldGhv
ZGNoYW5nZS1hdHRyaWJ1dGUiPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWNvbnN0IHRlc3RNZXRob2Qg
PSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogIm5vdC1hLXJlYWwtbWV0aG9kIiB9
KTsKLWNvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJo
dHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0pOwotY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFt0ZXN0TWV0aG9kLCBhcHBsZVBheV0pOwotY29uc3QgZGVmYXVsdERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKLSAgdG90YWw6IHsKLSAgICBsYWJlbDogIlRvdGFsIiwKLSAg
ICBhbW91bnQ6IHsKLSAgICAgIGN1cnJlbmN5OiAiVVNEIiwKLSAgICAgIHZhbHVlOiAiMS4wMCIs
Ci0gICAgfSwKLSAgfSwKLX0pOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICBhc3Nl
cnRfaWRsX2F0dHJpYnV0ZShyZXF1ZXN0LCAib25wYXltZW50bWV0aG9kY2hhbmdlIik7Ci19LCAi
TXVzdCBoYXZlIGEgb25wYXltZW50bWV0aG9kY2hhbmdlIElETCBhdHRyaWJ1dGUiKTsKLQotdGVz
dCgoKSA9PiB7Ci0gIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgY29uc3QgZXYgPSBuZXcgRXZlbnQoInBheW1lbnRt
ZXRob2RjaGFuZ2UiKTsKLSAgbGV0IGRpZEhhbmRsZSA9IGZhbHNlOwotICByZXF1ZXN0Lm9ucGF5
bWVudG1ldGhvZGNoYW5nZSA9IGV2dCA9PiB7Ci0gICAgYXNzZXJ0X2VxdWFscyhldiwgZXZ0LCAi
bXVzdCBiZSBzYW1lIGV2ZW50Iik7Ci0gICAgZGlkSGFuZGxlID0gdHJ1ZTsKLSAgfTsKLSAgcmVx
dWVzdC5kaXNwYXRjaEV2ZW50KGV2KTsKLSAgYXNzZXJ0X3RydWUoZGlkSGFuZGxlLCAiZXZlbnQg
ZGlkIG5vdCBmaXJlIik7Ci19LCBgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBpcyBh
IGdlbmVyaWMgaGFuZGxlciBmb3IgInBheW1lbnRtZXRob2RjaGFuZ2UiYCk7Ci0KLXRlc3QoKCkg
PT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IGV2ID0gbmV3IFBheW1lbnRNZXRob2RDaGFuZ2VF
dmVudCgicGF5bWVudG1ldGhvZGNoYW5nZSIpOwotICBsZXQgZGlkSGFuZGxlID0gZmFsc2U7Ci0g
IHJlcXVlc3Qub25wYXltZW50bWV0aG9kY2hhbmdlID0gZXZ0ID0+IHsKLSAgICBhc3NlcnRfZXF1
YWxzKGV2LCBldnQsICJtdXN0IGJlIHNhbWUgZXZlbnQiKTsKLSAgICBkaWRIYW5kbGUgPSB0cnVl
OwotICB9OwotICByZXF1ZXN0LmRpc3BhdGNoRXZlbnQoZXYpOwotICBhc3NlcnRfdHJ1ZShkaWRI
YW5kbGUsICJldmVudCBkaWQgbm90IGZpcmUiKTsKLX0sIGBvbnBheW1lbnRtZXRob2RjaGFuZ2Ug
YXR0cmlidXRlIGlzIGEgaGFuZGxlciBmb3IgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50YCk7Ci0K
LXRlc3QoKCkgPT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IGV2ID0gbmV3IFBheW1lbnRNZXRo
b2RDaGFuZ2VFdmVudCgicGF5bWVudG1ldGhvZGNoYW5nZSIsIHsKLSAgICBtZXRob2ROYW1lOiAi
dGVzdCIKLSAgfSk7Ci0gIGxldCBkaWRIYW5kbGUgPSBmYWxzZTsKLSAgbGV0IGRpZExpc3RlbiA9
IGZhbHNlOwotICByZXF1ZXN0Lm9ucGF5bWVudG1ldGhvZGNoYW5nZSA9IGV2dCA9PiB7Ci0gICAg
YXNzZXJ0X2VxdWFscyhldiwgZXZ0LCAibXVzdCBiZSBzYW1lIGV2ZW50Iik7Ci0gICAgZGlkSGFu
ZGxlID0gdHJ1ZTsKLSAgfTsKLSAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJwYXltZW50bWV0
aG9kY2hhbmdlIiwgZXZ0ID0+IHsKLSAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJtdXN0IGJl
IHNhbWUgZXZlbnQiKTsKLSAgICBkaWRMaXN0ZW4gPSB0cnVlOwotICB9KTsKLSAgcmVxdWVzdC5k
aXNwYXRjaEV2ZW50KGV2KTsKLSAgYXNzZXJ0X3RydWUoZGlkSGFuZGxlLCAib25wYXltZW50bWV0
aG9kY2hhbmdlIGRpZCBub3QgcmVjZWl2ZSB0aGUgZXZlbnQiKTsKLSAgYXNzZXJ0X3RydWUoZGlk
TGlzdGVuLCAiYWRkRXZlbnRMaXN0ZW5lciBkaWQgbm90IHJlY2VpdmUgdGhlIGV2ZW50Iik7Ci19
LCBgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBhbmQgbGlzdGVuZXJzIGJvdGggd29y
a2ApOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZXRob2RjaGFuZ2UtYXR0
cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRy
aWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyZjg3NGU5Mjc2OGYxODJkODhi
ZDdmODI1NzY2NmVmN2Q5NTZjOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZXRo
b2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKwor
UEFTUyBNdXN0IGhhdmUgYSBvbnBheW1lbnRtZXRob2RjaGFuZ2UgSURMIGF0dHJpYnV0ZSAKK1BB
U1Mgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBpcyBhIGdlbmVyaWMgaGFuZGxlciBm
b3IgInBheW1lbnRtZXRob2RjaGFuZ2UiIAorUEFTUyBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0
cmlidXRlIGlzIGEgaGFuZGxlciBmb3IgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50IAorUEFTUyBv
bnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGFuZCBsaXN0ZW5lcnMgYm90aCB3b3JrIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZXRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9vbnBheW1lbnRtZXRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjY0MWJlYzRhYTkxZDhiZTRmMTgwMTg2OWViNjk5Y2E0YmFkMDNhMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDc5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5UZXN0IGZvciBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlPC90aXRsZT4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5
bWVudC1hcGkvI29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRyaWJ1dGUiPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3Ry
aWN0IjsKK2NvbnN0IHRlc3RNZXRob2QgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9k
czogIm5vdC1hLXJlYWwtbWV0aG9kIiB9KTsKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6
ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAor
ICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJj
aGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRD
YXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2
aXNhIl0sCisgIH0KK30pOworY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt0
ZXN0TWV0aG9kLCBhcHBsZVBheV0pOworY29uc3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJl
ZXplKHsKKyAgdG90YWw6IHsKKyAgICBsYWJlbDogIlRvdGFsIiwKKyAgICBhbW91bnQ6IHsKKyAg
ICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgIHZhbHVlOiAiMS4wMCIsCisgICAgfSwKKyAgfSwK
K30pOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBhc3NlcnRfaWRsX2F0dHJpYnV0
ZShyZXF1ZXN0LCAib25wYXltZW50bWV0aG9kY2hhbmdlIik7Cit9LCAiTXVzdCBoYXZlIGEgb25w
YXltZW50bWV0aG9kY2hhbmdlIElETCBhdHRyaWJ1dGUiKTsKKwordGVzdCgoKSA9PiB7CisgIGNv
bnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHRE
ZXRhaWxzKTsKKyAgY29uc3QgZXYgPSBuZXcgRXZlbnQoInBheW1lbnRtZXRob2RjaGFuZ2UiKTsK
KyAgbGV0IGRpZEhhbmRsZSA9IGZhbHNlOworICByZXF1ZXN0Lm9ucGF5bWVudG1ldGhvZGNoYW5n
ZSA9IGV2dCA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyhldiwgZXZ0LCAibXVzdCBiZSBzYW1lIGV2
ZW50Iik7CisgICAgZGlkSGFuZGxlID0gdHJ1ZTsKKyAgfTsKKyAgcmVxdWVzdC5kaXNwYXRjaEV2
ZW50KGV2KTsKKyAgYXNzZXJ0X3RydWUoZGlkSGFuZGxlLCAiZXZlbnQgZGlkIG5vdCBmaXJlIik7
Cit9LCBgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBpcyBhIGdlbmVyaWMgaGFuZGxl
ciBmb3IgInBheW1lbnRtZXRob2RjaGFuZ2UiYCk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBy
ZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWls
cyk7CisgIGNvbnN0IGV2ID0gbmV3IFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudCgicGF5bWVudG1l
dGhvZGNoYW5nZSIpOworICBsZXQgZGlkSGFuZGxlID0gZmFsc2U7CisgIHJlcXVlc3Qub25wYXlt
ZW50bWV0aG9kY2hhbmdlID0gZXZ0ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJt
dXN0IGJlIHNhbWUgZXZlbnQiKTsKKyAgICBkaWRIYW5kbGUgPSB0cnVlOworICB9OworICByZXF1
ZXN0LmRpc3BhdGNoRXZlbnQoZXYpOworICBhc3NlcnRfdHJ1ZShkaWRIYW5kbGUsICJldmVudCBk
aWQgbm90IGZpcmUiKTsKK30sIGBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGlzIGEg
aGFuZGxlciBmb3IgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50YCk7CisKK3Rlc3QoKCkgPT4gewor
ICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZh
dWx0RGV0YWlscyk7CisgIGNvbnN0IGV2ID0gbmV3IFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudCgi
cGF5bWVudG1ldGhvZGNoYW5nZSIsIHsKKyAgICBtZXRob2ROYW1lOiAidGVzdCIKKyAgfSk7Cisg
IGxldCBkaWRIYW5kbGUgPSBmYWxzZTsKKyAgbGV0IGRpZExpc3RlbiA9IGZhbHNlOworICByZXF1
ZXN0Lm9ucGF5bWVudG1ldGhvZGNoYW5nZSA9IGV2dCA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyhl
diwgZXZ0LCAibXVzdCBiZSBzYW1lIGV2ZW50Iik7CisgICAgZGlkSGFuZGxlID0gdHJ1ZTsKKyAg
fTsKKyAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJwYXltZW50bWV0aG9kY2hhbmdlIiwgZXZ0
ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJtdXN0IGJlIHNhbWUgZXZlbnQiKTsK
KyAgICBkaWRMaXN0ZW4gPSB0cnVlOworICB9KTsKKyAgcmVxdWVzdC5kaXNwYXRjaEV2ZW50KGV2
KTsKKyAgYXNzZXJ0X3RydWUoZGlkSGFuZGxlLCAib25wYXltZW50bWV0aG9kY2hhbmdlIGRpZCBu
b3QgcmVjZWl2ZSB0aGUgZXZlbnQiKTsKKyAgYXNzZXJ0X3RydWUoZGlkTGlzdGVuLCAiYWRkRXZl
bnRMaXN0ZW5lciBkaWQgbm90IHJlY2VpdmUgdGhlIGV2ZW50Iik7Cit9LCBgb25wYXltZW50bWV0
aG9kY2hhbmdlIGF0dHJpYnV0ZSBhbmQgbGlzdGVuZXJzIGJvdGggd29ya2ApOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjgx
NjRjMmVjZDAzYjM4YThlYjI5ZmUxNzAzYTRmZWNhMWI2Njc5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBA
CitUaGlzIHRlc3QgcmVxdWlyZXMgdXNlciBpbnRlcmFjdGlvbi4KK1BsZWFzZSBjbGljayBoZXJl
IHRvIGFsbG93IHRlc3Rpbmcgb25lIHBheW1lbnQgc2hlZXQgcGVyIHdpbmRvdy4KKworSGFybmVz
cyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgVGhlIHRvcCBicm93
c2luZyBjb250ZXh0IGNhbiBvbmx5IHNob3cgb25lIHBheW1lbnQgc2hlZXQgYXQgYSB0aW1lLiBU
ZXN0IHRpbWVkIG91dAorTk9UUlVOIElmIGFuIGlmcmFtZSBzaG93cyBhIHBheW1lbnQgcmVxdWVz
dCwgdGhlIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0IGNhbid0IGFsc28gc2hvdyBvbmUuIAor
Tk9UUlVOIEFuIGlmcmFtZSBjYW5ub3Qgc2hvdyBhIHBheW1lbnQgcmVxdWVzdCBpZiB0aGUgdG9w
LWxldmVsIHdpbmRvdyBpcyBhbHJlYWR5IHNob3dpbmcgb25lLiAKK05PVFJVTiBVc2luZyBhIHBv
cHVwIHdpbmRvdyBwcmV2ZW50cyB0aGUgdG9wLWJyb3dzaW5nIGNvbnRleHQgZnJvbSBzaG93aW5n
IGEgcGF5bWVudCByZXF1ZXN0IAorTk9UUlVOIEdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2lu
ZyBjb250ZXh0cywgYW5kIHdpbmRvdyBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBi
cm93c2luZyBjb250ZXh0cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4gCitOT1RSVU4gR2l2ZW4gbXVs
dGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgcG9wdXAgY2FsbHMgc2hvdygpIGZp
cnN0LCBvdGhlciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2FuJ3Qgc2hvdyBhIHJlcXVlc3Qu
IAorTk9UUlVOIEdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250ZXh0cywgYW5kIGFu
IGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0
cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4gCitOT1RSVU4gTmF2aWdhdGluZyBhbiBpZnJhbWUgYXMg
YSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2lu
ZyBib29sZWFuJyB0byBmYWxzZS4gCitOT1RSVU4gTmF2aWdhdGluZyBhIHBvcHVwIGFzIGEgbmVz
dGVkIGJyb3dzaW5nIGNvbnRleHQgc2V0cyAncGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmcgYm9v
bGVhbicgdG8gZmFsc2UuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBl
YTAyODA4ZWUyYTEyMDEzZTQxZTgxOWRhMzIzZmVkZjhkODUzZmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbApAQCAtMCwwICsxLDUwMiBAQAorPCFE
T0NUWVBFIGh0bWw+IDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorPHRpdGxlPlRlc3QgZm9yIFBh
eW1lbnRSZXF1ZXN0LnNob3cob3B0aW9uYWwgcHJvbWlzZSkgbWV0aG9kPC90aXRsZT4KKzxsaW5r
CisgIHJlbD0iaGVscCIKKyAgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5
bWVudC1hcGkvI2Rmbi1wYXltZW50LXJlcXVlc3QtaXMtc2hvd2luZyIKKy8+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIu
anMiPjwvc2NyaXB0PgorPGJvZHk+CisgIDxzY3JpcHQ+CisgICAgInVzZSBzdHJpY3QiOworICAg
IGNvbnN0IGFwcGxlUGF5TWV0aG9kID0geworICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBz
Oi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgICAgICBkYXRhOiB7CisgICAgICAgIHZlcnNpb246
IDMsCisgICAgICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwK
KyAgICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVz
OiBbInN1cHBvcnRzM0RTIl0sCisgICAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwK
KyAgICAgIH0sCisgICAgfTsKKyAgICBjb25zdCBtZXRob2RzID0gW3tzdXBwb3J0ZWRNZXRob2Rz
OiAiYmFzaWMtY2FyZCJ9LCBhcHBsZVBheU1ldGhvZF07CisgICAgY29uc3QgZGV0YWlscyA9IHsK
KyAgICAgIHRvdGFsOiB7CisgICAgICAgIGxhYmVsOiAiVG90YWwiLAorICAgICAgICBhbW91bnQ6
IHsKKyAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICAgICAgdmFsdWU6ICIxLjAwIiwK
KyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEF0dGFjaGVz
IGFuIGlmcmFtZSB0byB3aW5kb3cuZG9jdW1lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge1N0
cmluZ30gc3JjIE9wdGlvbmFsIHJlc291cmNlIFVSTCB0byBsb2FkLgorICAgICAqIEByZXR1cm5z
IHtQcm9taXNlfSBSZXNvbHZlcyB3aGVuIHRoZSBzcmMgbG9hZHMuCisgICAgICovCisgICAgYXN5
bmMgZnVuY3Rpb24gYXR0YWNoSWZyYW1lKHNyYyA9ICJibGFuay5odG1sIikgeworICAgICAgY29u
c3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICBpZnJh
bWUuYWxsb3dQYXltZW50UmVxdWVzdCA9IHRydWU7CisgICAgICBpZnJhbWUuc3JjID0gc3JjOwor
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgcmVzb2x2ZSwge29uY2U6IHRydWV9KTsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIGlm
cmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcG9wdXAgd2luZG93LiBU
aGUgY2FsbGVyIG11c3QgYmUgdHJpZ2dlcmVkIHdpdGggYSB1c2VyIGdlc3R1cmUuCisgICAgICoK
KyAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3JjIE9wdGlvbmFsIHJlc291cmNlIFVSTCB0byBsb2Fk
LgorICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBSZXNvbHZlcyB3aGVuIHRoZSBzcmMgbG9hZHMu
CisgICAgICovCisgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUo
c3JjID0gImJsYW5rLmh0bWwiKSB7CisgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IHdpbmRvdy5v
cGVuKHNyYywgIiIsICJ3aWR0aD00MDAsaGVpZ2h0PTQwMCIpOworICAgICAgYXdhaXQgbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIHBvcHVwV2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCByZXNvbHZlLCB7b25jZTogdHJ1ZX0pOworICAgICAgfSk7CisgICAgICBwb3B1cFdp
bmRvdy5mb2N1cygpOworICAgICAgcmV0dXJuIHBvcHVwV2luZG93OworICAgIH0KKworICAgIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1l
bnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3QgcmVxdWVzdDIgPSBuZXcg
UGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisKKyAgICAgIC8vIFNldHMgdGhlICJw
YXltZW50LXJlbGV2YW50IGJyb3dzaW5nIGNvbnRleHQncyBwYXltZW50IHJlcXVlc3QgaXMKKyAg
ICAgIC8vIHNob3dpbmcgYm9vbGVhbiIgdG8gdHJ1ZSBhbmQgdGhlbiB0cnkgdG8gc2hvdyBhIHNl
Y29uZCBwYXltZW50IHNoZWV0IGluCisgICAgICAvLyB0aGUgc2FtZSB3aW5kb3cuIFRoZSBzZWNv
bmQgc2hvdygpIHNob3VsZCByZWplY3QuCisgICAgICBjb25zdCBbc2hvd1Byb21pc2UxLCBzaG93
UHJvbWlzZTJdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0aW5nIG9u
ZSBwYXltZW50IHNoZWV0IHBlciB3aW5kb3ciLAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAg
cmV0dXJuIFtyZXF1ZXN0MS5zaG93KCksIHJlcXVlc3QyLnNob3coKV07CisgICAgICAgIH0sCisg
ICAgICApOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAg
ICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICBzaG93UHJvbWlzZTIsCisgICAgICAgICJBdHRl
bXB0aW5nIHRvIHNob3cgYSBzZWNvbmQgcGF5bWVudCByZXF1ZXN0IG11c3QgcmVqZWN0LiIsCisg
ICAgICApOworCisgICAgICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOworICAgICAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAg
ICAgICBzaG93UHJvbWlzZTEsCisgICAgICAgICJyZXF1ZXN0MSB3YXMgYWJvcnRlZCB2aWEgLmFi
b3J0KCkiLAorICAgICAgKTsKKworICAgICAgLy8gRmluYWxseSwgcmVxdWVzdDIgc2hvdWxkIGhh
dmUgYmVlbiAiY2xvc2VkIiwgc28gdHJ5aW5nIHRvIHNob3cKKyAgICAgIC8vIGl0IHdpbGwgYWdh
aW4gcmVzdWx0IGluIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvci4K
KyAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3czYy9wYXltZW50LXJlcXVlc3QvcHVs
bC84MjEKKyAgICAgIGNvbnN0IHJlamVjdGVkUHJvbWlzZSA9IHJlcXVlc3QyLnNob3coKTsKKyAg
ICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJJbnZh
bGlkU3RhdGVFcnJvciIsCisgICAgICAgIHJlamVjdGVkUHJvbWlzZSwKKyAgICAgICAgIkF0dGVt
cHRpbmcgdG8gc2hvdyBhIHNlY29uZCBwYXltZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIiwKKyAg
ICAgICk7CisgICAgICAvLyBGaW5hbGx5LCB3ZSBjb25maXJtIHRoYXQgcmVxdWVzdDIncyByZXR1
cm5lZCBwcm9taXNlcyBhcmUgdW5pcXVlLgorICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoCisgICAg
ICAgIHNob3dQcm9taXNlMiwKKyAgICAgICAgcmVqZWN0ZWRQcm9taXNlLAorICAgICAgICAiUmV0
dXJuZWQgUHJvbWlzZXMgYmUgdW5pcXVlIiwKKyAgICAgICk7CisgICAgfSwgIlRoZSB0b3AgYnJv
d3NpbmcgY29udGV4dCBjYW4gb25seSBzaG93IG9uZSBwYXltZW50IHNoZWV0IGF0IGEgdGltZS4i
KTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IGlmcmFtZSA9
IGF3YWl0IGF0dGFjaElmcmFtZSgpOworICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1l
LmNvbnRlbnRXaW5kb3c7CisKKyAgICAgIC8vIFBheW1lbnQgcmVxdWVzdHMKKyAgICAgIGNvbnN0
IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMs
IGRldGFpbHMpOworICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisKKyAgICAgIC8vIExldCdzIGdldCBzb21lIGJs
ZXNzZWQgc2hvd1Byb21pc2VzCisgICAgICBjb25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQgdGVz
dF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0aW5nIHRvcCB3aW5kb3cgc2hvdygpIGJsb2Nr
ZWQgYnkgcGF5bWVudCBzaGVldCBpbiBpZnJhbWUiLAorICAgICAgICAoKSA9PiB7CisgICAgICAg
ICAgLy8gaWZyYW1lIHNldHMgImlzIHNob3dpbmcgYm9vbGVhbiIsIGlnbm9yZSB0aGUgcmV0dXJu
ZWQgcHJvbWlzZS4KKyAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKTsKKyAgICAgICAgICAv
LyBUaGUgdG9wIGxldmVsIHdpbmRvdyBub3cgdHJpZXMgdG8gc2hvdygpIHRoZSBwYXltZW50IHJl
cXVlc3QuCisgICAgICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKV07CisgICAgICAg
IH0sCisgICAgICApOworCisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAg
ICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHNob3dQcm9taXNlLAorICAgICAg
ICAiaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4iLAorICAgICAg
KTsKKworICAgICAgLy8gQ2xlYW51cAorICAgICAgYXdhaXQgaWZyYW1lUmVxdWVzdC5hYm9ydCgp
OworICAgICAgaWZyYW1lLnJlbW92ZSgpOworICAgIH0sICJJZiBhbiBpZnJhbWUgc2hvd3MgYSBw
YXltZW50IHJlcXVlc3QsIHRoZSB0b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dCBjYW4ndCBhbHNv
IHNob3cgb25lLiIpOworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29u
c3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7CisgICAgICBjb25zdCBpZnJhbWVXaW5k
b3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKworICAgICAgLy8gUGF5bWVudCByZXF1ZXN0cwor
ICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7CisgICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdp
bmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKworICAgICAgLy8gV2UgZmly
c3Qgc2hvdyBhIHBheW1lbnQgcmVxdWVzdCB2aWEgdGhlIHRoZSB0b3AgbGV2ZWwgYnJvd3Npbmcg
Y29udGV4dCwKKyAgICAgIC8vIHdpbmRvd1JlcXVlc3Quc2hvdygpIHNldHMgImlzIHNob3dpbmcg
Ym9vbGVhbiIgdG8gdHJ1ZS4gVGhlbiB3ZSB0cnkgdG8KKyAgICAgIC8vIHNob3cgYSBwYXltZW50
IHJlcXVlc3QgaW4gdGhlIGlmcmFtZSwgd2hpY2ggc2hvdWxkIHJlamVjdC4KKyAgICAgIGNvbnN0
IFt3aW5kb3dTaG93UHJvbWlzZSwgaWZyYW1lU2hvd1Byb21pc2VdID0gYXdhaXQgdGVzdF9kcml2
ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0aW5nIGlmcmFtZSBzaG93KCkgYmxvY2tlZCBieSBwYXlt
ZW50IHNoZWV0IGluIHRvcCB3aW5kb3ciLAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0
dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKSwgaWZyYW1lUmVxdWVzdC5zaG93KCldOworICAgICAg
ICB9LAorICAgICAgKTsKKworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAg
ICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwK
KyAgICAgICAgIlRoZSB0b3Agd2luZG93IGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVx
dWVzdC4iLAorICAgICAgKTsKKworICAgICAgLy8gQ2xlYW51cAorICAgICAgYXdhaXQgd2luZG93
UmVxdWVzdC5hYm9ydCgpOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAg
ICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwK
KyAgICAgICAgIlRoZSB3aW5kb3cgcGF5bWVudCByZXF1ZXN0IHNob3VsZCBiZSBhYm9ydGVkIGJ5
IHRlc3QuIiwKKyAgICAgICAgKTsKKyAgICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAgICB9LCAiQW4g
aWZyYW1lIGNhbm5vdCBzaG93IGEgcGF5bWVudCByZXF1ZXN0IGlmIHRoZSB0b3AtbGV2ZWwgd2lu
ZG93IGlzIGFscmVhZHkgc2hvd2luZyBvbmUuIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgICAgICAvLyBDcmVhdGUgYSBQYXltZW50UmV1cWVzdCBpbiB0b3AtbGV2ZWwgd2lu
ZG93LgorICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7CisKKyAgICAgIC8vIFVzZSBhIHNpbmdsZSB1c2VyIGdlc3R1
cmUgdG8gb3BlbiBhIHBvcHVwIHdpbmRvdyB3aXRoIGEgUGF5bWVudFJlcXVlc3QuCisgICAgICAv
LyBUaGVuIHRyaWdnZXIgc2hvdygpIGZpcnN0IG9uIHxwb3B1cFJlcXVlc3R8IHRoZW4gb24gfHdp
bmRvd1JlcXVlc3R8LgorICAgICAgLy8gVGhlIGxhdHRlciBzaG91bGQgcmVqZWN0LgorICAgICAg
Y29uc3QgWworICAgICAgICBwb3B1cFdpbmRvdywKKyAgICAgICAgcG9wdXBSZXF1ZXN0LAorICAg
ICAgICBwb3B1cFNob3dQcm9taXNlLAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAg
IF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAgICAgInRlc3RpbmcgdG9wLWxldmVs
IHNob3coKSBibG9ja2VkIGJ5IHBheW1lbnQgc2hlZXQgaW4gcG9wdXAiLAorICAgICAgICBhc3lu
YyAoKSA9PiB7CisgICAgICAgICAgY29uc3QgcG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJ
bnNpZGVVc2VyR2VzdHVyZSgpOworICAgICAgICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5ldyBw
b3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgICAgICBj
b25zdCBwb3B1cFNob3dQcm9taXNlID0gcG9wdXBSZXF1ZXN0LnNob3coKTsKKyAgICAgICAgICBj
b25zdCB3aW5kb3dTaG93UHJvbWlzZSA9IHdpbmRvd1JlcXVlc3Quc2hvdygpOworICAgICAgICAg
IHJldHVybiBbCisgICAgICAgICAgICBwb3B1cFdpbmRvdywKKyAgICAgICAgICAgIHBvcHVwUmVx
dWVzdCwKKyAgICAgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisgICAgICAgICAgICB3aW5kb3dT
aG93UHJvbWlzZSwKKyAgICAgICAgICBdOworICAgICAgICB9LAorICAgICAgKTsKKworICAgICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJy
b3IiLAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgICAgIkV4cGVjdGVkIHdpbmRv
dydzIHNob3dQcm9taXNlIHRvIHJlamVjdCwgcmVxdWVzdCBpcyBhbHJlYWR5IHNob3dpbmciLAor
ICAgICAgKTsKKworICAgICAgYXdhaXQgcG9wdXBSZXF1ZXN0LmFib3J0KCk7CisgICAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIs
CisgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQ
cm9taXNlIHRvIGJlIGFib3J0ZWQgYnkgdGVzdC4iLAorICAgICAgKTsKKyAgICAgIHBvcHVwV2lu
ZG93LmNsb3NlKCk7CisgICAgfSwgIlVzaW5nIGEgcG9wdXAgd2luZG93IHByZXZlbnRzIHRoZSB0
b3AtYnJvd3NpbmcgY29udGV4dCBmcm9tIHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QiKTsKKwor
ICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0
IGF0dGFjaElmcmFtZSgpOworICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRl
bnRXaW5kb3c7CisKKyAgICAgIC8vIENyZWF0ZSByZXF1ZXN0cworICAgICAgY29uc3Qgd2luZG93
UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Cisg
ICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZXRhaWxzKTsKKworICAgICAgLy8gT3BlbiBhIHBvcHVwIHdpbmRvdworICAg
ICAgY29uc3QgW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3RdID0KKyAgICAgIGF3YWl0IHRlc3Rf
ZHJpdmVyLmJsZXNzKAorICAgICAgICAib3BlbiBwb3B1cCB0byB0ZXN0IG11bHRpcGxlIGNvbnRl
eHQgYW5kIHdpbmRvdyBjYWxscyBzaG93KCkgZmlyc3QiLAorICAgICAgICBhc3luYyAoKSA9PiB7
CisgICAgICAgICAgY29uc3QgcG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJbnNpZGVVc2Vy
R2VzdHVyZSgpOworICAgICAgICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRv
dy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgICAgICByZXR1cm4gW3Bv
cHVwV2luZG93LCBwb3B1cFJlcXVlc3RdOworICAgICAgICB9LAorICAgICAgKTsKKworICAgICAg
Ly8gR2V0IHRoZSBzaG93UHJvbWlzZSBmb3IgZWFjaCBicm93c2luZyBjb250ZXh0LiBEb2luZyB0
aGlzIGluIGEgc2VwYXJhdGUKKyAgICAgIC8vIHRlc3RfZHJpdmVyLmJsZXNzKCkgaXMgaW1wb3J0
YW50IGJlY2F1c2UgdGhlIHVzZXIgZ2VzdHVyZSBicmluZ3MKKyAgICAgIC8vIHx3aW5kb3d8IHRv
IHRoZSBmb3JlZ3JvdW5kLCBzbyB0aGF0IHRoZSBwYXltZW50IHNoZWV0IGNhbiBzaG93LgorICAg
ICAgY29uc3QgWworICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgICAgcG9wdXBTaG93
UHJvbWlzZSwKKyAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCisgICAgICBdID0gYXdhaXQgdGVz
dF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0IG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBj
b250ZXh0IiwKKyAgICAgICAgKCkgPT4geworICAgICAgICAgIHJldHVybiBbCisgICAgICAgICAg
ICB3aW5kb3dSZXF1ZXN0LnNob3coKSwKKyAgICAgICAgICAgIHBvcHVwUmVxdWVzdC5zaG93KCks
CisgICAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKSwKKyAgICAgICAgICBdOworICAgICAg
ICB9LAorICAgICAgKTsKKyAgICAgIC8vIHBvcHVwUmVxdWVzdCBhbmQgaWZyYW1lUmVxdWVzdCB3
aWxsIGJvdGggcmVqZWN0CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAg
ICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisg
ICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQcm9taXNlIHRvIHJlamVjdCwgcmVxdWVzdCBpcyBh
bHJlYWR5IHNob3dpbmcuIiwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgaWZyYW1l
U2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byByZWpl
Y3QsIHJlcXVlc3QgaXMgYWxyZWFkeSBzaG93aW5nLiIsCisgICAgICApOworCisgICAgICBhd2Fp
dCB3aW5kb3dSZXF1ZXN0LmFib3J0KCk7CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHdpbmRvd1Nob3dQ
cm9taXNlLAorICAgICAgICAiRXhwZWN0IHdpbmRvdyBwcm9taXNlIHRvIGJlIGFib3J0ZWQgYnkg
dGVzdC4iCisgICAgICApOworICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsKKyAgICAgIGlmcmFt
ZS5yZW1vdmUoKTsKKyAgICB9LCAiR2l2ZW4gbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRl
eHRzLCBhbmQgd2luZG93IGNhbGxzIHNob3coKSBmaXJzdCwgb3RoZXIgbmVzdGVkIGJyb3dzaW5n
IGNvbnRleHRzIGNhbid0IHNob3cgYSByZXF1ZXN0LiIpOworCisgICAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICAgICAgY29uc3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7Cisg
ICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKworICAgICAg
Ly8gQ3JlYXRlIHJlcXVlc3RzCisgICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRv
dy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGNvbnN0IGlmcmFtZVJl
cXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMp
OworCisgICAgICAvLyBPcGVuIGEgcG9wdXAgd2luZG93CisgICAgICBjb25zdCBbCisgICAgICAg
IHBvcHVwV2luZG93LAorICAgICAgICBwb3B1cFJlcXVlc3QsCisgICAgICAgIHBvcHVwU2hvd1By
b21pc2UsCisgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAorICAgICAgICBpZnJhbWVTaG93UHJv
bWlzZQorICAgICAgXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICAgICAidGVzdCBt
dWx0aXBsZSBicm93c2luZyBjb250ZXh0IGFuZCBpZnJhbWUgY2FsbHMgc2hvdygpIGZpcnN0IiwK
KyAgICAgICAgYXN5bmMgKCkgPT4geworICAgICAgICAgIGNvbnN0IHBvcHVwV2luZG93ID0gYXdh
aXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKKyAgICAgICAgICBjb25zdCBwb3B1cFJl
cXVlc3QgPSBuZXcgcG9wdXBXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7
CisgICAgICAgICAgY29uc3QgcG9wdXBTaG93UHJvbWlzZSA9IHBvcHVwUmVxdWVzdC5zaG93KCk7
CisgICAgICAgICAgY29uc3Qgd2luZG93U2hvd1Byb21pc2UgPSB3aW5kb3dSZXF1ZXN0LnNob3co
KTsKKyAgICAgICAgICBjb25zdCBpZnJhbWVTaG93UHJvbWlzZSA9IGlmcmFtZVJlcXVlc3Quc2hv
dygpOworICAgICAgICAgIHJldHVybiBbcG9wdXBXaW5kb3csCisgICAgICAgICAgICAgICAgICBw
b3B1cFJlcXVlc3QsCisgICAgICAgICAgICAgICAgICBwb3B1cFNob3dQcm9taXNlLAorICAgICAg
ICAgICAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCisgICAgICAgICAgICAgICAgICBpZnJhbWVT
aG93UHJvbWlzZV07CisgICAgICB9KTsKKworICAgICAgLy8gd2luZG93U2hvd1Byb21pc2UgYW5k
IGlmcmFtZVJlcXVlc3Qgd2lsbCBib3RoIHJlamVjdAorICAgICAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICB3aW5k
b3dTaG93UHJvbWlzZSwKKyAgICAgICAgIkV4cGVjdGVkIHdpbmRvd1Nob3dQcm9taXNlIHRvIHJl
amVjdCwgdGhlIHBvcHVwIGlzIHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKKyAgICAgICk7
CisKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAg
ICJBYm9ydEVycm9yIiwKKyAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCisgICAgICAgICJFeHBl
Y3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byByZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEg
cGF5bWVudCByZXF1ZXN0LiIsCisgICAgICApOworCisgICAgICBhd2FpdCBwb3B1cFJlcXVlc3Qu
YWJvcnQoKTsKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisg
ICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKKyAgICAgICAg
IkV4cGVjdGVkIHBvcHVwU2hvd1Byb21pc2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIsCisgICAg
ICApOworICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsKKyAgICAgIGlmcmFtZS5yZW1vdmUoKTsK
KyAgICB9LCAiR2l2ZW4gbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgcG9w
dXAgY2FsbHMgc2hvdygpIGZpcnN0LCBvdGhlciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2Fu
J3Qgc2hvdyBhIHJlcXVlc3QuIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKKyAgICAgIGNvbnN0IGlm
cmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93OworCisgICAgICAvLyBDcmVhdGUgcmVx
dWVzdHMKKyAgICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1
ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBp
ZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisKKyAgICAgIGNv
bnN0IFtwb3B1cFdpbmRvdywgcG9wdXBSZXF1ZXN0XSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNz
KAorICAgICAgICAib3BlbiBwb3B1cCB0byB0ZXN0IG11bHRpcGxlIGNvbnRleHQgYW5kIGlmcmFt
ZSBjYWxscyBzaG93KCkgZmlyc3QiLAorICAgICAgICBhc3luYyAoKSA9PiB7CisgICAgICAgICAg
Y29uc3QgdyA9IGF3YWl0IGxvYWRQb3B1cEluc2lkZVVzZXJHZXN0dXJlKCk7CisgICAgICAgICAg
Y29uc3QgciA9IG5ldyB3LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAg
ICAgIHJldHVybiBbdywgcl07CisgICAgICAgIH0sCisgICAgICApOworCisgICAgICAvLyBHZXQg
dGhlIHNob3dQcm9taXNlIGZvciBlYWNoIGJyb3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4g
YSBzZXBhcmF0ZQorICAgICAgLy8gdGVzdF9kcml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVj
YXVzZSB0aGUgdXNlciBnZXN0dXJlIGJyaW5ncworICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZv
cmVncm91bmQsIHNvIHRoYXQgdGhlIHBheW1lbnQgc2hlZXQgY2FuIHNob3cuCisgICAgICBjb25z
dCBbCisgICAgICAgIGlmcmFtZVNob3dQcm9taXNlLAorICAgICAgICBwb3B1cFNob3dQcm9taXNl
LAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgIF0gPSBhd2FpdCB0ZXN0X2RyaXZl
ci5ibGVzcygKKyAgICAgICAgInRlc3QgbXVsdGlwbGUgYnJvd3NpbmcgY29udGV4dCBhbmQgaWZy
YW1lIGNhbGxzIHNob3coKSBmaXJzdCIsCisgICAgICAgIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICByZXR1cm4gWworICAgICAgICAgICAgaWZyYW1lUmVxdWVzdC5zaG93KCksCisgICAgICAgICAg
ICBwb3B1cFJlcXVlc3Quc2hvdygpLAorICAgICAgICAgICAgd2luZG93UmVxdWVzdC5zaG93KCks
CisgICAgICAgICAgXTsKKyAgICAgICAgfSwKKyAgICAgICk7CisKKyAgICAgIC8vIHdpbmRvd1No
b3dQcm9taXNlIGFuZCBpZnJhbWVSZXF1ZXN0IHdpbGwgYm90aCByZWplY3QKKyAgICAgIGF3YWl0
IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwK
KyAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCB3aW5kb3dTaG93
UHJvbWlzZSB0byByZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0
LiIsCisgICAgICApOworCisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAg
ICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisg
ICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlz
IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0IGlm
cmFtZVJlcXVlc3QuYWJvcnQoKTsKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisg
ICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgaWZyYW1lU2hvd1Byb21p
c2UsCisgICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5
IHRlc3QuIgorICAgICAgKTsKKyAgICAgIHBvcHVwV2luZG93LmNsb3NlKCk7CisgICAgICBpZnJh
bWUucmVtb3ZlKCk7CisgICAgfSwgIkdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250
ZXh0cywgYW5kIGFuIGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93
c2luZyBjb250ZXh0cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4iKTsKKworICAgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgp
OworICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CisgICAg
ICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdCht
ZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGNvbnN0IGlmcmFtZVNob3dQcm9taXNlID0gdGVzdF9k
cml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0IG5hdmlnYXRpbmcgaWZyYW1lIGFmdGVyIHNob3co
KSIsCisgICAgICAgICgpID0+IGlmcmFtZVJlcXVlc3Quc2hvdygpLAorICAgICAgKTsKKworICAg
ICAgLy8gV2UgbmF2aWdhdGUgYXdheSwgY2F1c2luZyB0aGUgcGF5bWVudCBzaGVldCB0byBjbG9z
ZQorICAgICAgLy8gYW5kIHRoZSByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbiB0byBiZWNvbWUg
ZmFsc2UuCisgICAgICBpZnJhbWUuc3JjID0gImJsYW5rLmh0bWw/YWJjPTEyMyI7CisgICAgICBh
d2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IChpZnJhbWUub25sb2FkID0gcmVzb2x2ZSkpOwor
ICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFi
b3J0RXJyb3IiLAorICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKKyAgICAgICAgIk5hdmlnYXRp
bmcgaWZyYW1lIGF3YXkgbXVzdCBjYXVzZSB0aGUgaWZyYW1lU2hvd1Byb21pc2UgdG8gcmVqZWN0
LiIsCisgICAgICApOworICAgICAgaWZyYW1lLnJlbW92ZSgpOworCisgICAgICAvLyBOb3cgd2Ug
c2hvdWxkIGJlIG9rIHRvIHNwaW4gdXAgYSBuZXcgcGF5bWVudCByZXF1ZXN0CisgICAgICBjb25z
dCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsK
KyAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAg
ICAgICAgICAic3RhcnQgYSBuZXcgcGF5bWVudCByZXF1ZXN0IiwKKyAgICAgICAgICAoKSA9PiB7
CisgICAgICAgICAgICByZXR1cm4gW3JlcXVlc3Quc2hvdygpXTsKKyAgICAgICAgICB9KTsKKwor
ICAgICAgLy8gSWYgYSBwYXltZW50IHNoZWV0IGZhaWxzIHRvIHNob3csIGl0IHNob3VsZCByZWpl
Y3QgaW1tZWRpYXRlbHkuIElmIGl0CisgICAgICAvLyBoYXNuJ3QgcmVqZWN0ZWQgaW4gMSBzZWNv
bmQsIHRoZW4gdGhlIHRlc3QgaGFzIHBhc3NlZC4KKyAgICAgIHQuc3RlcF90aW1lb3V0KGFzeW5j
ICgpID0+IHsKKyAgICAgICAgLy8gV2UncmUgZG9uZS4gQ2xlYW4gdXAuCisgICAgICAgIGF3YWl0
IHJlcXVlc3QuYWJvcnQoKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgICB9KTsKKworICAgICAg
Ly8gSWYgdGhlIG5hdmlnYXRpb24gaW4gaWZyYW1lIGZhaWxlZCB0byBjbG9zZSB0aGUgb3JpZ2lu
YWwgcGF5bWVudCBzaGVldAorICAgICAgLy8gdGhlcmUsIHxzaG93UHJvbWlzZXwgc2hvdWxkIHJl
amVjdCBpbW1lZGlhdGVseSBhbmQgdGhpcyBpbmRpY2F0ZXMgYQorICAgICAgLy8gZmFpbHVyZSBv
ZiB0aGlzIHRlc3QuCisgICAgICBhd2FpdCBzaG93UHJvbWlzZS50aGVuKCgpID0+IHsKKyAgICAg
ICAgYXNzZXJ0X3RydWUoZmFsc2UsCisgICAgICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0IHNo
b3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZXNvbHZlZC4iKTsKKyAgICAgIH0pCisgICAgICAuY2F0
Y2goZSA9PiB7CisgICAgICAgIGFzc2VydF90cnVlKGZhbHNlLAorICAgICAgICAgICJTZWNvbmQg
cGF5bWVudCBzaGVldCBzaG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVqZWN0ZWQuIiArIGUubWVz
c2FnZSk7CisgICAgICB9KTsKKyAgICB9LCAiTmF2aWdhdGluZyBhbiBpZnJhbWUgYXMgYSBuZXN0
ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29s
ZWFuJyB0byBmYWxzZS4iKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAg
IGNvbnN0IFtwb3B1cFdpbmRvdywgcG9wdXBSZXF1ZXN0LCBwb3B1cFNob3dQcm9taXNlXSA9Cisg
ICAgICAgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICAgICAgICJ0cmlnZ2VyIHBheW1l
bnQgaW4gYSBwb3B1cCB3aW5kb3ciLAorICAgICAgICAgIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgIGNvbnN0IHBvcHVwV2luZG93ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUo
KTsKKyAgICAgICAgICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXlt
ZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgICAgICAgIHJldHVybiBbcG9wdXBX
aW5kb3csIHBvcHVwUmVxdWVzdCwgcG9wdXBSZXF1ZXN0LnNob3coKV07CisgICAgICAgICAgfSk7
CisKKyAgICAgIC8vIFdlIG5hdmlnYXRlIGF3YXksIGNhdXNpbmcgdGhlIHBheW1lbnQgc2hlZXQg
dG8gY2xvc2UKKyAgICAgIC8vIGFuZCB0aGUgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xlYW4gdG8g
YmVjb21lIGZhbHNlLgorICAgICAgcG9wdXBXaW5kb3cubG9jYXRpb24gPSAiYmxhbmsuaHRtbD9h
YmM9MTIzIjsKKyAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gKHBvcHVwV2luZG93
Lm9ubG9hZCA9IHJlc29sdmUpKTsKKworICAgICAgLy8gRG9uJ3Qgd2FpdCBmb3IgfHBvcHVwU2hv
d1Byb21pc2V8IHRvIHJlamVjdCBiZWNhdXNlIGl0IG1heSBuZXZlciBkbworICAgICAgLy8gKHNl
ZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3BheW1lbnQtcmVxdWVzdC9pc3N1ZXMvODcyKS4gSW5z
dGVhZCwgdHJ5CisgICAgICAvLyB0byBzcGluIHVwIGEgbmV3IHBheW1lbnQgcmVxdWVzdCBhbmQg
bWFrZSBzdXJlIGl0IHN1Y2NlZWRzLgorICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyB3aW5kb3cu
UGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisgICAgICBjb25zdCBbc2hvd1Byb21p
c2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0cmlnZ2VyIHBheW1lbnQg
aW4gbWFpbiB3aW5kb3ciLAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFtyZXF1
ZXN0LnNob3coKV07CisgICAgICAgIH0pOworCisgICAgICAvLyBJZiBhIHBheW1lbnQgc2hlZXQg
ZmFpbHMgdG8gc2hvdywgaXQgc2hvdWxkIHJlamVjdCBpbW1lZGlhdGVseS4gSWYgaXQKKyAgICAg
IC8vIGhhc24ndCByZWplY3RlZCBpbiAxIHNlY29uZCwgdGhlbiB0aGUgdGVzdCBoYXMgcGFzc2Vk
LgorICAgICAgdC5zdGVwX3RpbWVvdXQoYXN5bmMgKCkgPT4geworICAgICAgICAvLyBXZSdyZSBk
b25lLiBDbGVhbiB1cC4KKyAgICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsKKyAgICAgICAgYXdh
aXQgcmVxdWVzdC5hYm9ydCgpOworICAgICAgICB0LmRvbmUoKTsKKyAgICAgIH0sIDEwMDApOwor
CisgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBpbiBwb3B1cCB3aW5kb3cgZmFpbGVkIHRvIGNs
b3NlIHRoZSBvcmlnaW5hbCBwYXltZW50CisgICAgICAvLyBzaGVldCB0aGVyZSwgfHNob3dQcm9t
aXNlfCBzaG91bGQgcmVqZWN0IGltbWVkaWF0ZWx5IGFuZCB0aGlzIGluZGljYXRlcworICAgICAg
Ly8gYSBmYWlsdXJlIG9mIHRoaXMgdGVzdC4KKyAgICAgIGF3YWl0IHNob3dQcm9taXNlLnRoZW4o
KCkgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZShmYWxzZSwKKyAgICAgICAgICAiU2Vjb25kIHBh
eW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlc29sdmVkLiIpOworICAgICAg
fSkKKyAgICAgIC5jYXRjaChlID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCisgICAg
ICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZWpl
Y3RlZC4iKTsKKyAgICAgIH0pOworICAgIH0sICJOYXZpZ2F0aW5nIGEgcG9wdXAgYXMgYSBuZXN0
ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29s
ZWFuJyB0byBmYWxzZS4iKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0bWwKaW5kZXggOGU1NjFiMjg4ZDE1ZmEzMDk3MWRkMWY4
OGI5MzA2NzFjODNhNTg4Ny4uODIzMGUyNDU4YWFhM2UwMzY0ZGM0NTk4NWY1OTY3NTlmMDA5NTQ3
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWFib3J0LW1ldGhvZC5odHRwcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1hYm9ydC1tZXRob2QuaHR0cHMuaHRtbApAQCAtMSwx
MSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0
bGU+VGVzdCBmb3IgUGF5bWVudFJlcXVlc3QuYWJvcnQoKSBtZXRob2Q8L3RpdGxlPgotPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFw
aS8jYWJvcnQtbWV0aG9kIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jYWJvcnQtbWV0aG9kIj4KIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPScvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRy
aXZlci12ZW5kb3IuanMnPjwvc2NyaXB0PgogPHNjcmlwdD4KICJ1c2Ugc3RyaWN0IjsKIHNldHVw
KHsKQEAgLTE3LDYgKzE3LDEzIEBAIHNldHVwKHsKIGNvbnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5m
cmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7CiBjb25zdCBhcHBsZVBh
eSA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5j
b20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJ
ZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMi
LAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9y
dGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9CiB9KTsKIGNvbnN0IGRlZmF1bHRNZXRob2RzID0g
T2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkLCBhcHBsZVBheV0pOwogY29uc3QgZGVmYXVsdERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKQEAgLTMyLDUwICszOSw1NiBAQCBjb25zdCBkZWZhdWx0RGV0
YWlscyA9IE9iamVjdC5mcmVlemUoewogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAvLyBy
ZXF1ZXN0IGlzIGluICJjcmVhdGVkIiBzdGF0ZQogICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGF3YWl0IHByb21p
c2VfcmVqZWN0cyh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOworICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Qu
YWJvcnQoKSk7CiB9LCBgVGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVdXSBpcyBub3QgImlu
dGVyYWN0aXZlImApOwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IHJlcXVl
c3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsK
LSAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQg
cmVxdWVzdCIsICgpID0+Ci0gICAgcmVxdWVzdC5zaG93KCkKLSAgKTsKLSAgdHJ5IHsKLSAgICBh
d2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJl
YWNoZWQoIlVuZXhwZWN0ZWQgcHJvbWlzZSByZWplY3Rpb246ICIgKyBlcnIubWVzc2FnZSk7Ci0g
IH0KLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlz
ZSk7CisgIGNvbnN0IHByb21pc2VzID0gbmV3IFNldChbcmVxdWVzdC5hYm9ydCgpLCByZXF1ZXN0
LmFib3J0KCksIHJlcXVlc3QuYWJvcnQoKV0pOworICBhc3NlcnRfZXF1YWxzKHByb21pc2VzLnNp
emUsIDMsICJNdXN0IGhhdmUgdGhyZWUgdW5pcXVlIG9iamVjdHMiKTsKK30sICJDYWxsaW5nIGFi
b3J0KCkgbXVsdGlwbGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9iamVjdC4iKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFthYm9ydFByb21pc2Us
IGFjY2VwdFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgInNob3cgcGF5
bWVudCByZXF1ZXN0IiwKKyAgICAoKSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0g
cmVxdWVzdC5zaG93KCkKKyAgICAgIGFjY2VwdFByb21pc2UuY2F0Y2goKCkgPT4ge30pOyAvLyBu
by1vcCwganVzdCB0byBzaWxlbmNlIHVuaGFuZGxlZCByZWplY3Rpb24gaW4gZGV2dG9vbHMuCisg
ICAgICBjb25zdCBhYm9ydFByb21pc2UgPSByZXF1ZXN0LmFib3J0KCk7CisgICAgICByZXR1cm4g
W2Fib3J0UHJvbWlzZSwgYWNjZXB0UHJvbWlzZV07CisgICAgfSk7CisKKyAgYXdhaXQgYWJvcnRQ
cm9taXNlOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNj
ZXB0UHJvbWlzZSk7CiAgIC8vIEFzIHJlcXVlc3QgaXMgbm93ICJjbG9zZWQiLCB0cnlpbmcgdG8g
c2hvdyBpdCB3aWxsIGZhaWwKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3Rh
dGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0
LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CiB9LCAiVGhlIHNhbWUgcmVx
dWVzdCBjYW5ub3QgYmUgc2hvd24gbXVsdGlwbGUgdGltZXMuIik7CiAKIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKICAgLy8gcmVxdWVzdCBpcyBpbiAiY3JlYXRlZCIgc3RhdGUuCiAgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRh
aWxzKTsKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJl
cXVlc3QuYWJvcnQoKSk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRT
dGF0ZUVycm9yIiwgcmVxdWVzdC5hYm9ydCgpKTsKICAgLy8gQ2FsbCBpdCBhZ2FpbiwgZm9yIGdv
b2QgbWVhc3VyZS4KLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJv
ciIsIHJlcXVlc3QuYWJvcnQoKSk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIklu
dmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5hYm9ydCgpKTsKICAgLy8gVGhlIHJlcXVlc3QncyBz
dGF0ZSBpcyAiY3JlYXRlZCIsIHNvIGxldCdzIHNob3cgaXQKICAgLy8gd2hpY2ggY2hhbmdlcyB0
aGUgc3RhdGUgdG8gImludGVyYWN0aXZlLiIuCi0gIGNvbnN0IGFjY2VwdFByb21pc2UgPSB0ZXN0
X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCAoKSA9PgotICAgIHJlcXVlc3Qu
c2hvdygpCi0gICk7Ci0gIC8vIExldCdzIHNldCByZXF1ZXN0IHRoZSBzdGF0ZSB0byAiY2xvc2Vk
IiBieSBjYWxsaW5nIC5hYm9ydCgpCi0gIHRyeSB7Ci0gICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgp
OwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIHBy
b21pc2UgcmVqZWN0aW9uOiAiICsgZXJyLm1lc3NhZ2UpOwotICB9CisgIGNvbnN0IFthYm9ydFBy
b21pc2UsIGFjY2VwdFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgInNo
b3cgcGF5bWVudCByZXF1ZXN0IiwKKyAgICAoKSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9t
aXNlID0gcmVxdWVzdC5zaG93KCkKKyAgICAgIC8vIExldCdzIHNldCByZXF1ZXN0IHRoZSBzdGF0
ZSB0byAiY2xvc2VkIiBieSBjYWxsaW5nIC5hYm9ydCgpCisgICAgICBjb25zdCBhYm9ydFByb21p
c2UgPSByZXF1ZXN0LmFib3J0KCk7CisgICAgICByZXR1cm4gW2Fib3J0UHJvbWlzZSwgYWNjZXB0
UHJvbWlzZV07CisgICAgfSk7CisKKyAgYXdhaXQgYWJvcnRQcm9taXNlOwogICAvLyBUaGUgcmVx
dWVzdCBpcyBub3cgImNsb3NlZCIsIHNvLi4uCi0gIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAi
SW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOwotICBhd2FpdCBwcm9taXNlX3Jl
amVjdHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKKyAgYXdhaXQgcHJvbWlzZV9y
ZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOworICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7
CiB9LCAiQWJvcnRpbmcgYSByZXF1ZXN0IGJlZm9yZSBpdCBpcyBzaG93biBkb2Vzbid0IHByZXZl
bnQgaXQgZnJvbSBiZWluZyBzaG93biBsYXRlci4iKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IHByb21pc2VzID0gbmV3IFNldChbcmVxdWVzdC5h
Ym9ydCgpLCByZXF1ZXN0LmFib3J0KCksIHJlcXVlc3QuYWJvcnQoKV0pOwotICBhc3NlcnRfZXF1
YWxzKHByb21pc2VzLnNpemUsIDMsICJNdXN0IGhhdmUgdGhyZWUgdW5pcXVlIG9iamVjdHMiKTsK
LX0sICJDYWxsaW5nIGFib3J0KCkgbXVsdGlwbGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9iamVj
dC4iKTsKIDwvc2NyaXB0PgotCis8c21hbGw+CisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwg
cGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1l
bnQtcmVxdWVzdC9NRVRBLnltbCI+c3VnZ2VzdGVkIHJldmlld2VyczwvYT4uCis8L3NtYWxsPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC1wcm90
ZWN0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0
aG9kLXByb3RlY3Rpb24uaHR0cHMuaHRtbAppbmRleCBiMDU4MmQ1MjBkMzA2NzYwZDc1NzU0Nzc5
ZGUxY2VlZjFkMDY0YTkyLi5lMjIxMDM0ZGQ0ZWJkMDVjNWJkNzAxZTA1YTgxODk1Yjg0NTdjM2I3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLXBy
b3RlY3Rpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1l
bnQtbWV0aG9kLXByb3RlY3Rpb24uaHR0cHMuaHRtbApAQCAtOCw3ICs4LDE2IEBACiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBjb25z
dCBiYXNpY0NhcmQgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNh
cmQiIH0pOwotY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9k
czogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIgfSk7Citjb25zdCBhcHBsZVBheSA9IE9i
amVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBw
bGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlm
aWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAg
IG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0
d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0
LmZyZWV6ZShbYmFzaWNDYXJkLCBhcHBsZVBheV0pOwogY29uc3QgZGVmYXVsdERldGFpbHMgPSBP
YmplY3QuZnJlZXplKHsKICAgdG90YWw6IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZTZl
ODJlM2JhMzI3MWUyY2I0YjQwMmJmNDczMDI5MGRiMGI2MjY2MC4uN2ZkY2Y3YTg1YTBkOWNjNzgy
ZTkzZGI4ZDI5NTNiNDhmODkxNjc5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNh
bm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEg
KzEsOSBAQAotVGhpcyB0ZXN0IHJlcXVpcmVzIHVzZXIgaW50ZXJhY3Rpb24uCi1QbGVhc2UgY2xp
Y2sgaGVyZSB0byBhbGxvdyBzaG93IHBheW1lbnQgcmVxdWVzdC5UaGlzIHRlc3QgcmVxdWlyZXMg
dXNlciBpbnRlcmFjdGlvbi4KLVBsZWFzZSBjbGljayBoZXJlIHRvIGFsbG93IHNob3cgcGF5bWVu
dCByZXF1ZXN0LiBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFu
ZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZXJzLgorSWYgeW91IGZpbmQgYSBidWdn
eSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFnIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIHJl
dmlld2Vycy4KIAogUEFTUyBJZiBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVyIGFyZSBzdXBwb3J0
ZWQsIHJlc29sdmUgcHJvbWlzZSB3aXRoIHRydWUuIAotRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVd
XSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBh
biAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gYXNzZXJ0X3VucmVhY2hlZDogU2hv
dWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZB
SUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNsb3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlz
ZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlk
U3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKIFBBU1MgSWYg
cmVxdWVzdC5bW3N0YXRlXV0gaXMgImNyZWF0ZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgdGhh
dCByZXNvbHZlcyB0byB0cnVlIGZvciBrbm93biBtZXRob2QuIAogUEFTUyBBbGwgbWV0aG9kcyBh
cmUgdW5zdXBwb3J0ZWQgCiBQQVNTIE1peCBvZiBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIG1l
dGhvZHMsIGF0IGxlYXN0IG9uZSBtZXRob2QgaXMgc3VwcG9ydGVkLiAKK0ZBSUwgSWYgcmVxdWVz
dC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVj
dGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uIGFzc2VydF91bnJl
YWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJs
ZSBjb2RlCitGQUlMIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVy
biBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2Vw
dGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4i
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2Qu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0
cHMuaHRtbAppbmRleCBmMzhjYWEwMGI5MzEzZGM4MGY1YWI1MTgwZGMxMGU4NTBlYjU3MTQ3Li5m
MDI0NzRkZTEyZTViNDE0MTc0MmMzMWJiZWIzOGQ2NjY2N2VhMzYzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
cGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy5odG1sCkBAIC0xLDE1
ICsxLDIzIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRs
ZT5UZXN0cyBmb3IgUGF5bWVudFJlcXVlc3QuY2FuTWFrZVBheW1lbnQoKSBtZXRob2Q8L3RpdGxl
PgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1w
YXltZW50LWFwaS8jc2hvdy1tZXRob2QiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1ZXN0LyNjYW5tYWtlcGF5bWVudC1tZXRob2QiPgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMnPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0n
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0PgorInVz
ZSBzdHJpY3QiOwogY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1l
dGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKIGNvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7
CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBk
YXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFu
dC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBh
YmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNh
Il0sCisgIH0KIH0pOwogY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNp
Y0NhcmQsIGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUo
ewpAQCAtMzUsNTEgKzQzLDYgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICApOwogfSwg
YElmIHBheW1lbnQgbWV0aG9kIGlkZW50aWZpZXIgYXJlIHN1cHBvcnRlZCwgcmVzb2x2ZSBwcm9t
aXNlIHdpdGggdHJ1ZS5gKTsKIAotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBy
ZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWls
cyk7Ci0gIGNvbnN0IGFjY2VwdFByb21pc2UgPSB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXlt
ZW50IHJlcXVlc3QiLCAoKSA9PiB7Ci0gICAgcmVxdWVzdC5zaG93KCk7IC8vIFNldHMgc3RhdGUg
dG8gImludGVyYWN0aXZlIgotICB9KTsKLSAgY29uc3QgY2FuTWFrZVBheW1lbnRQcm9taXNlID0g
cmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpOwotICB0cnkgewotICAgIGNvbnN0IHJlc3VsdCA9IGF3
YWl0IGNhbk1ha2VQYXltZW50UHJvbWlzZTsKLSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgIGZhbHNl
LAotICAgICAgYGNhbk1ha2VQYXltZW50UHJvbWlzZSBzaG91bGQgaGF2ZSB0aHJvd24gSW52YWxp
ZFN0YXRlRXJyb3JgCi0gICAgKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIGNhbk1ha2VQYXltZW50UHJvbWlzZSk7
Ci0gIH0gZmluYWxseSB7Ci0gICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwotICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UpOwotICB9Ci0gIC8v
IFRoZSBzdGF0ZSBzaG91bGQgYmUgImNsb3NlZCIKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQs
ICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuY2FuTWFrZVBheW1lbnQoKSk7Ci19LCAnSWYg
cmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9taXNl
IHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uJyk7Ci0K
LXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBhY2NlcHRQ
cm9taXNlID0gdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCByZXF1ZXN0IiwgKCkgPT4g
ewotICAgIHJlcXVlc3Quc2hvdygpOyAvLyBTZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2ZSIKLSAg
fSk7Ci0gIGFjY2VwdFByb21pc2UuY2F0Y2goKCkgPT4ge30pOyAvLyBuby1vcCwganVzdCB0byBz
aWxlbmNlIHVuaGFuZGxlZCByZWplY3Rpb24gaW4gZGV2dG9vbHMuCi0gIGF3YWl0IHJlcXVlc3Qu
YWJvcnQoKTsgLy8gVGhlIHN0YXRlIGlzIG5vdyAiY2xvc2VkIgotICBhd2FpdCBwcm9taXNlX3Jl
amVjdHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpKTsK
LSAgdHJ5IHsKLSAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0LmNhbk1ha2VQYXltZW50
KCk7Ci0gICAgYXNzZXJ0X3RydWUoCi0gICAgICBmYWxzZSwKLSAgICAgIGBzaG91bGQgaGF2ZSB0
aHJvd24gSW52YWxpZFN0YXRlRXJyb3IsIGJ1dCBpbnN0ZWFkIHJldHVybmVkICIke3Jlc3VsdH0i
YAotICAgICk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9lcXVhbHMoCi0gICAgICBl
cnIubmFtZSwKLSAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCi0gICAgICAibXVzdCBiZSBhbiBJ
bnZhbGlkU3RhdGVFcnJvci4iCi0gICAgKTsKLSAgfQotfSwgJ0lmIHJlcXVlc3QuW1tzdGF0ZV1d
IGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52
YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4nKTsKLQogcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewogICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7CiAgIHRyeSB7CkBAIC0xMTUsNiArNzgsNDAgQEAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewogICApLmNhbk1ha2VQYXltZW50KCk7CiAgIGFzc2VydF90cnVlKGF3
YWl0IHNvbWVTdXBwb3J0ZWQsIGBBdCBsZWFzdCBvbmUgbWV0aG9kIGlzIGV4cGVjdGVkIHRvIGJl
IHN1cHBvcnRlZC5gKTsKIH0sIGBNaXggb2Ygc3VwcG9ydGVkIGFuZCB1bnN1cHBvcnRlZCBtZXRo
b2RzLCBhdCBsZWFzdCBvbmUgbWV0aG9kIGlzIHN1cHBvcnRlZC5gKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFthY2NlcHRQcm9taXNlLCBjYW5N
YWtlUGF5bWVudFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgInNob3cg
cGF5bWVudCByZXF1ZXN0IiwKKyAgICAoKSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNl
ID0gcmVxdWVzdC5zaG93KCk7IC8vIFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZlIgorICAgICAg
Y29uc3QgY2FuTWFrZVBheW1lbnRQcm9taXNlID0gcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpOwor
ICAgICAgcmV0dXJuIFthY2NlcHRQcm9taXNlLCBjYW5NYWtlUGF5bWVudFByb21pc2VdOworICAg
IH0pOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9y
IiwgY2FuTWFrZVBheW1lbnRQcm9taXNlKTsKKyAgcmVxdWVzdC5hYm9ydCgpOworICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CisKKyAg
Ly8gVGhlIHN0YXRlIHNob3VsZCBiZSAiY2xvc2VkIgorICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
ZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuY2FuTWFrZVBheW1lbnQoKSk7Cit9
LCAnSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBw
cm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24u
Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQ
YXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBb
YWJvcnRQcm9taXNlLCBhY2NlcHRQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAor
ICAgICJzaG93IHBheW1lbnQgcmVxdWVzdCIsCisgICAgKCkgPT4geworICAgICAgY29uc3QgYWNj
ZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOyAvLyBTZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2
ZSIKKyAgICAgIGFjY2VwdFByb21pc2UuY2F0Y2goKCkgPT4ge30pOyAvLyBuby1vcCwganVzdCB0
byBzaWxlbmNlIHVuaGFuZGxlZCByZWplY3Rpb24gaW4gZGV2dG9vbHMuCisgICAgICBjb25zdCBh
Ym9ydFByb21pc2UgPSByZXF1ZXN0LmFib3J0KCk7ICAvLyBTZXRzIHN0YXRlIHRvICJjbG9zZWQi
CisgICAgICByZXR1cm4gW2Fib3J0UHJvbWlzZSwgYWNjZXB0UHJvbWlzZV07CisgICAgfSk7CisK
KyAgYXdhaXQgYWJvcnRQcm9taXNlOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJB
Ym9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20o
dCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpKTsKK30sICdJ
ZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uJyk7CiA8L3Nj
cmlwdD4KIAogPHNtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVj
dG9yLWNyYXNoLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1
Y3Rvci1jcmFzaC5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQ4MDg5MWUzMmZhODdkMmJkZjExZTY0NDExMWIzMjNmNzhhYjI5NWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNv
bnN0cnVjdG9yLWNyYXNoLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEy
ICswLDAgQEAKLQotUEFTUyBEb24ndCBjcmFzaCBpZiB0aGVyZSBpcyBhbiBhYnVzaXZlIG51bWJl
ciBvZiBwYXltZW50IG1ldGhvZHMgaW4gdGhlIG1ldGhvZERhdGEgc2VxdWVuY2UgCi1QQVNTIERv
bid0IGNyYXNoIGlmIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRlZE1ldGhvZHMgaXMgYW4gYWJ1
c2l2ZSBsZW5ndGggCi1QQVNTIERvbid0IGNyYXNoIGlmIHRoZSByZXF1ZXN0IGlkIGhhcyBhbiBh
YnVzaXZlIGxlbmd0aCAKLVBBU1MgRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudERldGFpbHNJbml0LnRv
dGFsLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVuZ3RoIAotUEFTUyBEb24ndCBjcmFzaCBpZiB0b3Rh
bC5hbW91bnQudmFsdWUgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCi1QQVNTIERvbid0IGNyYXNoIGlm
IGRldGFpbHMuZGlzcGxheUl0ZW1zIGhhcyBhbiBhYnVzaXZlIG51bWJlciBvZiBpdGVtcyAKLVBB
U1MgRG9uJ3QgY3Jhc2ggaWYgZGV0YWlscy5zaGlwcGluZ09wdGlvbnMgaGFzIGFuIGFidXNpdmUg
bnVtYmVyIG9mIGl0ZW1zIAotUEFTUyBEb24ndCBjcmFzaCBpZiBQYXltZW50U2hpcHBpbmdPcHRp
b25zLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVuZ3RoIAotUEFTUyBEb24ndCBjcmFzaCBpZiB0aGUg
UGF5bWVudFNoaXBwaW5nT3B0aW9ucy5hbW91bnQudmFsdWUgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgg
Ci1QQVNTIERvbid0IGNyYXNoIGlmIFBheW1lbnRJdGVtLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVu
Z3RoIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItY3Jhc2gu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzI1NjgxYTRhY2Y2ODQxYjY3YjJk
ZDQwZDIwY2YwZGNjNDQ5ZDhmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjYxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Ci08
dGl0bGU+Q3Jhc2ggdGVzdHMgUGF5bWVudFJlcXVlc3QgQ29uc3RydWN0b3I8L3RpdGxlPgotPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50
LWFwaS8jY29uc3RydWN0b3IiPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLS8qKgotICAgIGRpY3Rpb25hcnkgUGF5bWVudEl0ZW0g
ewotICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgICAgICAgICAgICAgbGFiZWw7Ci0gICAgICAg
IHJlcXVpcmVkIFBheW1lbnRDdXJyZW5jeUFtb3VudCBhbW91bnQ7Ci0gICAgICAgICAgICAgICAg
IGJvb2xlYW4gICAgICAgICAgICAgICBwZW5kaW5nID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIGRp
Y3Rpb25hcnkgUGF5bWVudERldGFpbHNCYXNlIHsKLSAgICAgICAgc2VxdWVuY2U8UGF5bWVudEl0
ZW0+ICAgICAgICAgICAgZGlzcGxheUl0ZW1zOwotICAgICAgICBzZXF1ZW5jZTxQYXltZW50U2hp
cHBpbmdPcHRpb24+ICBzaGlwcGluZ09wdGlvbnM7Ci0gICAgICAgIHNlcXVlbmNlPFBheW1lbnRE
ZXRhaWxzTW9kaWZpZXI+IG1vZGlmaWVyczsKLSAgICB9OwotCi0gICAgZGljdGlvbmFyeSBQYXlt
ZW50Q3VycmVuY3lBbW91bnQgewotICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgY3VycmVuY3k7
Ci0gICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyB2YWx1ZTsKLSAgICB9OwotKiovCi0KLSJ1c2Ug
c3RyaWN0IjsKLWNvbnN0IEFCVVNJVkVfQU1PVU5UID0gMTAwMDAwOwotCi1jb25zdCBiYXNpY0Nh
cmQgPSBPYmplY3QuZnJlZXplKHsKLSAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAot
fSk7Ci0KLWNvbnN0IGRlZmF1bHRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKLSAgY3VycmVuY3k6
ICJVU0QiLAotICB2YWx1ZTogIjEuMDAiLAotfSk7Ci0KLWNvbnN0IGV2aWxBbW91bnQgPSBPYmpl
Y3QuZnJlZXplKHsKLSAgY3VycmVuY3k6ICJVU0QiLAotICB2YWx1ZTogIjEiLnJlcGVhdChBQlVT
SVZFX0FNT1VOVCksCi19KTsKLQotY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXpl
KFtiYXNpY0NhcmRdKTsKLQotY29uc3QgZGVmYXVsdFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7Ci0g
IGxhYmVsOiAibGFiZWwiLAotICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi19KTsKLQotY29uc3Qg
ZXZpbFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGxhYmVsOiAiYSIucmVwZWF0KEFCVVNJVkVf
QU1PVU5UKSwKLSAgYW1vdW50OiBldmlsQW1vdW50LAotfSk7Ci0KLWNvbnN0IGRlZmF1bHREZXRh
aWxzID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gIGdldCBpZCgp
IHsKLSAgICByZXR1cm4gTWF0aC5yYW5kb20oKTsKLSAgfSwKLX0pOwotCi1jb25zdCBkZWZhdWx0
UGF5bWVudEl0ZW0gPSBPYmplY3QuZnJlZXplKHsKLSAgbGFiZWw6ICJsYWJlbCIsCi0gIGFtb3Vu
dDogZGVmYXVsdEFtb3VudCwKLX0pOwotCi1jb25zdCBkZWZhdWx0U2hpcHBpbmdPcHRpb24gPSB7
Ci0gIGdldCBpZCgpIHsKLSAgICByZXR1cm4gInNoaXBwaW5nIG9wdGlvbiAiICsgTWF0aC5yYW5k
b20oKTsKLSAgfSwKLSAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAotICBsYWJlbDogInNoaXBwaW5n
IG9wdGlvbiBsYWJlbCIsCi19OwotCi0vLyBGaXJzdCBhcmd1bWVudCBpcyBzZXF1ZW5jZTxQYXlt
ZW50TWV0aG9kRGF0YT4gbWV0aG9kRGF0YQotdGVzdCgoKSA9PiB7Ci0gIGxldCBldmlsTWV0aG9k
cyA9IFtPYmplY3QuYXNzaWduKHt9LCBiYXNpY0NhcmQpXTsKLSAgLy8gc21va2UgdGVzdAotICB0
cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChldmlsTWV0aG9kcywgZGVmYXVsdERldGFpbHMp
OwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2Ug
dGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCBsZXQncyBhZGQgYW4gYWJ1c2l2
ZSBhbW91bnQgb2YgbWV0aG9kcy4KLSAgd2hpbGUgKGV2aWxNZXRob2RzLmxlbmd0aCA8IEFCVVNJ
VkVfQU1PVU5UKSB7Ci0gICAgZXZpbE1ldGhvZHMgPSBldmlsTWV0aG9kcy5jb25jYXQoZXZpbE1l
dGhvZHMpOwotICB9Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGV2aWxNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9lcXVhbHMo
ZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwotICB9Ci19LCAi
RG9uJ3QgY3Jhc2ggaWYgdGhlcmUgaXMgYW4gYWJ1c2l2ZSBudW1iZXIgb2YgcGF5bWVudCBtZXRo
b2RzIGluIHRoZSBtZXRob2REYXRhIHNlcXVlbmNlIik7Ci0KLS8vIFBheW1lbnRNZXRob2REYXRh
LnN1cHBvcnRlZE1ldGhvZHMKLXRlc3QoKCkgPT4gewotICBjb25zdCBzdXBwb3J0ZWRNZXRob2Rz
ID0gImJhc2ljLWNhcmQiOwotICAvLyBTbW9rZSB0ZXN0Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1l
bnRSZXF1ZXN0KFt7IHN1cHBvcnRlZE1ldGhvZHMgfV0sIGRlZmF1bHREZXRhaWxzKTsKLSAgfSBj
YXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIg
KyBlcnIuc3RhY2spOwotICB9Ci0gIC8vIE5vdywgd2UgbWFrZSBzdXBwb3J0ZWRNZXRob2RzIHN1
cGVyIGxhcmdlCi0gIGNvbnN0IGV2aWxNZXRob2REYXRhID0gWwotICAgIHsKLSAgICAgIHN1cHBv
cnRlZE1ldGhvZHM6IHN1cHBvcnRlZE1ldGhvZHMucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKLSAg
ICB9LAotICBdOwotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChldmlsTWV0aG9kRGF0
YSwgZGVmYXVsdERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfZXF1YWxz
KGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKLSAgfQotfSwg
IkRvbid0IGNyYXNoIGlmIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRlZE1ldGhvZHMgaXMgYW4g
YWJ1c2l2ZSBsZW5ndGgiKTsKLQotLy8gUGF5bWVudERldGFpbHNJbml0LmlkCi10ZXN0KCgpID0+
IHsKLSAgY29uc3QgaWQgPSAiYWJjIjsKLSAgLy8gU21va2UgVGVzdAotICB0cnkgewotICAgIG5l
dyBQYXltZW50UmVxdWVzdCgKLSAgICAgIGRlZmF1bHRNZXRob2RzLAotICAgICAgT2JqZWN0LmFz
c2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgaWQgfSkKLSAgICApOwotICB9IGNhdGNoIChlcnIp
IHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFj
ayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBtYWtlIHRoZSBpZCBzdXBlciBsYXJnZTsKLSAgY29uc3Qg
ZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgewotICAgIGlk
OiBpZC5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpLAotICB9KTsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJy
KSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEg
VHlwZUVycm9yIik7Ci0gIH0KLX0sICJEb24ndCBjcmFzaCBpZiB0aGUgcmVxdWVzdCBpZCBoYXMg
YW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLQotLy8gUGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVs
Ci10ZXN0KCgpID0+IHsKLSAgY29uc3QgZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBk
ZWZhdWx0RGV0YWlscyk7Ci0gIC8vIFNtb2tlIFRlc3QKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7
Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2sp
OwotICB9Ci0gIC8vIE5vdywgd2UgbWFrZSB0aGUgbGFiZWwgc3VwZXIgbGFyZ2U7Ci0gIGV2aWxE
ZXRhaWxzLnRvdGFsID0gewotICAgIGxhYmVsOiAibCIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwK
LSAgICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi0gIH07Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikg
ewotICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5
cGVFcnJvciIpOwotICB9Ci19LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudERldGFpbHNJbml0LnRv
dGFsLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVuZ3RoIik7Ci0KLXRlc3QoKCkgPT4gewotICBjb25z
dCBldmlsRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzKTsKLSAgLy8g
U21va2UgVGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVk
KCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBj
YW4gdXNlIGV2aWxBbW91bnQKLSAgZXZpbERldGFpbHMudG90YWwgPSBldmlsQW1vdW50OwotICB0
cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMp
OwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVy
cm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKLSAgfQotfSwgIkRvbid0IGNyYXNoIGlmIHRv
dGFsLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCIpOwotCi1mb3IgKGNvbnN0IFtw
cm9wLCBkZWZhdWx0VmFsdWVdIG9mIFsKLSAgWyJkaXNwbGF5SXRlbXMiLCBkZWZhdWx0UGF5bWVu
dEl0ZW1dLAotICBbInNoaXBwaW5nT3B0aW9ucyIsIGRlZmF1bHRTaGlwcGluZ09wdGlvbl0sCi1d
KSB7Ci0gIHRlc3QoKCkgPT4gewotICAgIGNvbnN0IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2ln
bih7fSwgZGVmYXVsdERldGFpbHMpOwotICAgIGV2aWxEZXRhaWxzW3Byb3BdID0gW2RlZmF1bHRW
YWx1ZV07Ci0gICAgLy8gU21va2UgVGVzdAotICAgIHRyeSB7Ci0gICAgICBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsK
LSAgICAgIGFzc2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNr
KTsKLSAgICB9Ci0gICAgd2hpbGUgKGV2aWxEZXRhaWxzW3Byb3BdLmxlbmd0aCA8IEFCVVNJVkVf
QU1PVU5UKSB7Ci0gICAgICBldmlsRGV0YWlsc1twcm9wXSA9IGV2aWxEZXRhaWxzW3Byb3BdLmNv
bmNhdChldmlsRGV0YWlsc1twcm9wXSk7Ci0gICAgfQotICAgIC8vIE5vdywgY29uc3RydWN0IHdp
dGggZXZpbCBpdGVtcyEKLSAgICB0cnkgewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICBhc3Nl
cnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsK
LSAgICB9Ci0gIH0sIGBEb24ndCBjcmFzaCBpZiBkZXRhaWxzLiR7cHJvcH0gaGFzIGFuIGFidXNp
dmUgbnVtYmVyIG9mIGl0ZW1zYCk7Ci19Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCBldmlsRGV0
YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzKTsKLSAgY29uc3QgZXZpbFNo
aXBwaW5nT3B0aW9uID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uKTsK
LSAgZXZpbERldGFpbHMuc2hpcHBpbmdPcHRpb25zID0gW2V2aWxTaGlwcGluZ09wdGlvbl07Ci0g
IC8vIFNtb2tlIFRlc3QKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVh
Y2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOwotICB9Ci0gIC8vIE5vdywg
d2UgbWFrZSB0aGUgbGFiZWwgc3VwZXIgbGFyZ2U7Ci0gIGV2aWxTaGlwcGluZ09wdGlvbi5sYWJl
bCA9ICJsIi5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpOwotICB0cnkgewotICAgIG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsK
LSAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBl
RXJyb3IiKTsKLSAgfQotfSwgIkRvbid0IGNyYXNoIGlmIFBheW1lbnRTaGlwcGluZ09wdGlvbnMu
bGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGV2
aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBl
dmlsU2hpcHBpbmdPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRp
b24pOwotICBldmlsRGV0YWlscy5zaGlwcGluZ09wdGlvbnMgPSBbZXZpbFNoaXBwaW5nT3B0aW9u
XTsKLSAgLy8gU21va2UgVGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRf
dW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8g
Tm93LCB3ZSBtYWtlIHVzZSBvZiBldmlsQW1vdW50OwotICBldmlsU2hpcHBpbmdPcHRpb24uYW1v
dW50ID0gZXZpbEFtb3VudDsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7Ci0gIH0K
LX0sICJEb24ndCBjcmFzaCBpZiB0aGUgUGF5bWVudFNoaXBwaW5nT3B0aW9ucy5hbW91bnQudmFs
dWUgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGV2aWxE
ZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBldmls
RGlzcGxheUl0ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0UGF5bWVudEl0ZW0pOwotICBl
dmlsRGV0YWlscy5kaXNwbGF5SXRlbXMgPSBbZXZpbERpc3BsYXlJdGVtXTsKLSAgLy8gU21va2Ug
VGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZp
bERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWls
ZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBtYWtlIHRo
ZSBsYWJlbCBzdXBlciBsYXJnZTsKLSAgZXZpbERpc3BsYXlJdGVtLmxhYmVsID0gImwiLnJlcGVh
dChBQlVTSVZFX0FNT1VOVCk7Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9l
cXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwotICB9
Ci19LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudEl0ZW0ubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5n
dGgiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVj
dG9yLXRoY3Jhc2guaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0
cnVjdG9yLXRoY3Jhc2guaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MDg5MWUzMmZh
ODdkMmJkZjExZTY0NDExMWIzMjNmNzhhYjI5NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtY29uc3RydWN0b3ItdGhjcmFzaC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorCitQQVNTIERvbid0IGNyYXNoIGlmIHRoZXJlIGlzIGFuIGFidXNpdmUgbnVt
YmVyIG9mIHBheW1lbnQgbWV0aG9kcyBpbiB0aGUgbWV0aG9kRGF0YSBzZXF1ZW5jZSAKK1BBU1Mg
RG9uJ3QgY3Jhc2ggaWYgUGF5bWVudE1ldGhvZERhdGEuc3VwcG9ydGVkTWV0aG9kcyBpcyBhbiBh
YnVzaXZlIGxlbmd0aCAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgdGhlIHJlcXVlc3QgaWQgaGFzIGFu
IGFidXNpdmUgbGVuZ3RoIAorUEFTUyBEb24ndCBjcmFzaCBpZiBQYXltZW50RGV0YWlsc0luaXQu
dG90YWwubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCitQQVNTIERvbid0IGNyYXNoIGlmIHRv
dGFsLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCAKK1BBU1MgRG9uJ3QgY3Jhc2gg
aWYgZGV0YWlscy5kaXNwbGF5SXRlbXMgaGFzIGFuIGFidXNpdmUgbnVtYmVyIG9mIGl0ZW1zIAor
UEFTUyBEb24ndCBjcmFzaCBpZiBkZXRhaWxzLnNoaXBwaW5nT3B0aW9ucyBoYXMgYW4gYWJ1c2l2
ZSBudW1iZXIgb2YgaXRlbXMgCitQQVNTIERvbid0IGNyYXNoIGlmIFBheW1lbnRTaGlwcGluZ09w
dGlvbnMubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCitQQVNTIERvbid0IGNyYXNoIGlmIHRo
ZSBQYXltZW50U2hpcHBpbmdPcHRpb25zLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0
aCAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudEl0ZW0ubGFiZWwgaXMgYW4gYWJ1c2l2ZSBs
ZW5ndGggCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci10aGNy
YXNoLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItdGhjcmFzaC5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3NjM2MTViZGQxODZkMGE4YTY1NmFmOGE4OWJmZGY4YmJm
YWMxODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3It
dGhjcmFzaC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxvbmci
PgorPHRpdGxlPkNyYXNoIHRlc3RzIFBheW1lbnRSZXF1ZXN0IENvbnN0cnVjdG9yPC90aXRsZT4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5
bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisvKioKKyAgICBkaWN0aW9uYXJ5IFBheW1lbnRJ
dGVtIHsKKyAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICAgICAgICAgIGxhYmVsOworICAg
ICAgICByZXF1aXJlZCBQYXltZW50Q3VycmVuY3lBbW91bnQgYW1vdW50OworICAgICAgICAgICAg
ICAgICBib29sZWFuICAgICAgICAgICAgICAgcGVuZGluZyA9IGZhbHNlOworICAgIH07CisKKyAg
ICBkaWN0aW9uYXJ5IFBheW1lbnREZXRhaWxzQmFzZSB7CisgICAgICAgIHNlcXVlbmNlPFBheW1l
bnRJdGVtPiAgICAgICAgICAgIGRpc3BsYXlJdGVtczsKKyAgICAgICAgc2VxdWVuY2U8UGF5bWVu
dFNoaXBwaW5nT3B0aW9uPiAgc2hpcHBpbmdPcHRpb25zOworICAgICAgICBzZXF1ZW5jZTxQYXlt
ZW50RGV0YWlsc01vZGlmaWVyPiBtb2RpZmllcnM7CisgICAgfTsKKworICAgIGRpY3Rpb25hcnkg
UGF5bWVudEN1cnJlbmN5QW1vdW50IHsKKyAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nIGN1cnJl
bmN5OworICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgdmFsdWU7CisgICAgfTsKKyoqLworCisi
dXNlIHN0cmljdCI7Citjb25zdCBBQlVTSVZFX0FNT1VOVCA9IDEwMDAwMDsKKworY29uc3QgYXBw
bGVQYXkgPSB7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1w
YXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6
ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVy
Y2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3Jr
czogWyJ2aXNhIl0sCisgIH0KK307CisKK2NvbnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUo
eworICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCit9KTsKKworY29uc3QgZGVmYXVs
dEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIlVTRCIsCisgIHZhbHVlOiAi
MS4wMCIsCit9KTsKKworY29uc3QgZXZpbEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJy
ZW5jeTogIlVTRCIsCisgIHZhbHVlOiAiMSIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKK30pOwor
Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZCwgYXBwbGVQ
YXldKTsKKworY29uc3QgZGVmYXVsdFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CisgIGxhYmVsOiAi
bGFiZWwiLAorICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCit9KTsKKworY29uc3QgZXZpbFRvdGFs
ID0gT2JqZWN0LmZyZWV6ZSh7CisgIGxhYmVsOiAiYSIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwK
KyAgYW1vdW50OiBldmlsQW1vdW50LAorfSk7CisKK2NvbnN0IGRlZmF1bHREZXRhaWxzID0gT2Jq
ZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgIGdldCBpZCgpIHsKKyAgICBy
ZXR1cm4gTWF0aC5yYW5kb20oKTsKKyAgfSwKK30pOworCitjb25zdCBkZWZhdWx0UGF5bWVudEl0
ZW0gPSBPYmplY3QuZnJlZXplKHsKKyAgbGFiZWw6ICJsYWJlbCIsCisgIGFtb3VudDogZGVmYXVs
dEFtb3VudCwKK30pOworCitjb25zdCBkZWZhdWx0U2hpcHBpbmdPcHRpb24gPSB7CisgIGdldCBp
ZCgpIHsKKyAgICByZXR1cm4gInNoaXBwaW5nIG9wdGlvbiAiICsgTWF0aC5yYW5kb20oKTsKKyAg
fSwKKyAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAorICBsYWJlbDogInNoaXBwaW5nIG9wdGlvbiBs
YWJlbCIsCit9OworCisvLyBGaXJzdCBhcmd1bWVudCBpcyBzZXF1ZW5jZTxQYXltZW50TWV0aG9k
RGF0YT4gbWV0aG9kRGF0YQordGVzdCgoKSA9PiB7CisgIGxldCBldmlsTWV0aG9kcyA9IFtPYmpl
Y3QuYXNzaWduKHt9LCBiYXNpY0NhcmQpXTsKKyAgLy8gc21va2UgdGVzdAorICB0cnkgeworICAg
IG5ldyBQYXltZW50UmVxdWVzdChldmlsTWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICB9IGNh
dGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiAr
IGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCBsZXQncyBhZGQgYW4gYWJ1c2l2ZSBhbW91bnQg
b2YgbWV0aG9kcy4KKyAgd2hpbGUgKGV2aWxNZXRob2RzLmxlbmd0aCA8IEFCVVNJVkVfQU1PVU5U
KSB7CisgICAgZXZpbE1ldGhvZHMgPSBldmlsTWV0aG9kcy5jb25jYXQoZXZpbE1ldGhvZHMpOwor
ICB9CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGV2aWxNZXRob2RzLCBkZWZhdWx0
RGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUs
ICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOworICB9Cit9LCAiRG9uJ3QgY3Jh
c2ggaWYgdGhlcmUgaXMgYW4gYWJ1c2l2ZSBudW1iZXIgb2YgcGF5bWVudCBtZXRob2RzIGluIHRo
ZSBtZXRob2REYXRhIHNlcXVlbmNlIik7CisKKy8vIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRl
ZE1ldGhvZHMKK3Rlc3QoKCkgPT4geworICBjb25zdCBzdXBwb3J0ZWRNZXRob2RzID0gImJhc2lj
LWNhcmQiOworICAvLyBTbW9rZSB0ZXN0CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0
KFt7IHN1cHBvcnRlZE1ldGhvZHMgfV0sIGRlZmF1bHREZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJy
KSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3Rh
Y2spOworICB9CisgIC8vIE5vdywgd2UgbWFrZSBzdXBwb3J0ZWRNZXRob2RzIHN1cGVyIGxhcmdl
CisgIGNvbnN0IGV2aWxNZXRob2REYXRhID0gWworICAgIHsKKyAgICAgIHN1cHBvcnRlZE1ldGhv
ZHM6IHN1cHBvcnRlZE1ldGhvZHMucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKKyAgICB9LAorICBd
OworICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChldmlsTWV0aG9kRGF0YSwgZGVmYXVs
dERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1l
LCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgfQorfSwgIkRvbid0IGNy
YXNoIGlmIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRlZE1ldGhvZHMgaXMgYW4gYWJ1c2l2ZSBs
ZW5ndGgiKTsKKworLy8gUGF5bWVudERldGFpbHNJbml0LmlkCit0ZXN0KCgpID0+IHsKKyAgY29u
c3QgaWQgPSAiYWJjIjsKKyAgLy8gU21va2UgVGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50
UmVxdWVzdCgKKyAgICAgIGRlZmF1bHRNZXRob2RzLAorICAgICAgT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMsIHsgaWQgfSkKKyAgICApOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBh
c3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0K
KyAgLy8gTm93LCB3ZSBtYWtlIHRoZSBpZCBzdXBlciBsYXJnZTsKKyAgY29uc3QgZXZpbERldGFp
bHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeworICAgIGlkOiBpZC5yZXBl
YXQoQUJVU0lWRV9BTU9VTlQpLAorICB9KTsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVl
c3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAg
YXNzZXJ0X2VxdWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9y
Iik7CisgIH0KK30sICJEb24ndCBjcmFzaCBpZiB0aGUgcmVxdWVzdCBpZCBoYXMgYW4gYWJ1c2l2
ZSBsZW5ndGgiKTsKKworLy8gUGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVsCit0ZXN0KCgp
ID0+IHsKKyAgY29uc3QgZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0
YWlscyk7CisgIC8vIFNtb2tlIFRlc3QKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNz
ZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOworICB9Cisg
IC8vIE5vdywgd2UgbWFrZSB0aGUgbGFiZWwgc3VwZXIgbGFyZ2U7CisgIGV2aWxEZXRhaWxzLnRv
dGFsID0geworICAgIGxhYmVsOiAibCIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKKyAgICBhbW91
bnQ6IGRlZmF1bHRBbW91bnQsCisgIH07CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFz
c2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIp
OworICB9Cit9LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVs
IGlzIGFuIGFidXNpdmUgbGVuZ3RoIik7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBldmlsRGV0
YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzKTsKKyAgLy8gU21va2UgVGVz
dAorICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERl
dGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQg
c21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCB3ZSBjYW4gdXNlIGV2
aWxBbW91bnQKKyAgZXZpbERldGFpbHMudG90YWwgPSBldmlsQW1vdW50OworICB0cnkgeworICAg
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNh
dGNoIChlcnIpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11
c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgfQorfSwgIkRvbid0IGNyYXNoIGlmIHRvdGFsLmFtb3Vu
dC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCIpOworCitmb3IgKGNvbnN0IFtwcm9wLCBkZWZh
dWx0VmFsdWVdIG9mIFsKKyAgWyJkaXNwbGF5SXRlbXMiLCBkZWZhdWx0UGF5bWVudEl0ZW1dLAor
ICBbInNoaXBwaW5nT3B0aW9ucyIsIGRlZmF1bHRTaGlwcGluZ09wdGlvbl0sCitdKSB7CisgIHRl
c3QoKCkgPT4geworICAgIGNvbnN0IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVm
YXVsdERldGFpbHMpOworICAgIGV2aWxEZXRhaWxzW3Byb3BdID0gW2RlZmF1bHRWYWx1ZV07Cisg
ICAgLy8gU21va2UgVGVzdAorICAgIHRyeSB7CisgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVm
YXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFz
c2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKKyAgICB9
CisgICAgd2hpbGUgKGV2aWxEZXRhaWxzW3Byb3BdLmxlbmd0aCA8IEFCVVNJVkVfQU1PVU5UKSB7
CisgICAgICBldmlsRGV0YWlsc1twcm9wXSA9IGV2aWxEZXRhaWxzW3Byb3BdLmNvbmNhdChldmls
RGV0YWlsc1twcm9wXSk7CisgICAgfQorICAgIC8vIE5vdywgY29uc3RydWN0IHdpdGggZXZpbCBp
dGVtcyEKKyAgICB0cnkgeworICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBldmlsRGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfZXF1YWxz
KGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgICB9Cisg
IH0sIGBEb24ndCBjcmFzaCBpZiBkZXRhaWxzLiR7cHJvcH0gaGFzIGFuIGFidXNpdmUgbnVtYmVy
IG9mIGl0ZW1zYCk7Cit9CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBldmlsRGV0YWlscyA9IE9i
amVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzKTsKKyAgY29uc3QgZXZpbFNoaXBwaW5nT3B0
aW9uID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uKTsKKyAgZXZpbERl
dGFpbHMuc2hpcHBpbmdPcHRpb25zID0gW2V2aWxTaGlwcGluZ09wdGlvbl07CisgIC8vIFNtb2tl
IFRlc3QKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2
aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFp
bGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOworICB9CisgIC8vIE5vdywgd2UgbWFrZSB0
aGUgbGFiZWwgc3VwZXIgbGFyZ2U7CisgIGV2aWxTaGlwcGluZ09wdGlvbi5sYWJlbCA9ICJsIi5y
ZXBlYXQoQUJVU0lWRV9BTU9VTlQpOworICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3Nl
cnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsK
KyAgfQorfSwgIkRvbid0IGNyYXNoIGlmIFBheW1lbnRTaGlwcGluZ09wdGlvbnMubGFiZWwgaXMg
YW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGV2aWxEZXRhaWxz
ID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBldmlsU2hpcHBp
bmdPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pOworICBl
dmlsRGV0YWlscy5zaGlwcGluZ09wdGlvbnMgPSBbZXZpbFNoaXBwaW5nT3B0aW9uXTsKKyAgLy8g
U21va2UgVGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVk
KCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCB3ZSBt
YWtlIHVzZSBvZiBldmlsQW1vdW50OworICBldmlsU2hpcHBpbmdPcHRpb24uYW1vdW50ID0gZXZp
bEFtb3VudDsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X2VxdWFscyhlcnIu
bmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7CisgIH0KK30sICJEb24n
dCBjcmFzaCBpZiB0aGUgUGF5bWVudFNoaXBwaW5nT3B0aW9ucy5hbW91bnQudmFsdWUgaXMgYW4g
YWJ1c2l2ZSBsZW5ndGgiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGV2aWxEZXRhaWxzID0g
T2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBldmlsRGlzcGxheUl0
ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0UGF5bWVudEl0ZW0pOworICBldmlsRGV0YWls
cy5kaXNwbGF5SXRlbXMgPSBbZXZpbERpc3BsYXlJdGVtXTsKKyAgLy8gU21va2UgVGVzdAorICB0
cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMp
OworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2Ug
dGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCB3ZSBtYWtlIHRoZSBsYWJlbCBz
dXBlciBsYXJnZTsKKyAgZXZpbERpc3BsYXlJdGVtLmxhYmVsID0gImwiLnJlcGVhdChBQlVTSVZF
X0FNT1VOVCk7CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBldmlsRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF9lcXVhbHMoZXJy
Lm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOworICB9Cit9LCAiRG9u
J3QgY3Jhc2ggaWYgUGF5bWVudEl0ZW0ubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTljMjVkMTcyMzQ1OWJlZjU2OWNhOWU2MmVjMjllMGM4
ODk1MzRmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDY4NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcg
Q2hyb21pdW0gYXV0aG9ycyBhbmQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3NhY2h1
c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZlcnNpdHksIEJl
aWhhbmcpLiAtLT4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGZvciBQYXlt
ZW50UmVxdWVzdCBDb25zdHJ1Y3RvcjwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9icm93c2VyLXBheW1lbnQtYXBpLyNjb25zdHJ1Y3RvciI+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotInVzZSBzdHJpY3QiOwotY29uc3QgdGVzdE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewotICBz
dXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi19KTsK
LWNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdGVzdE1ldGhvZF0pOwotY29u
c3QgZGVmYXVsdEFtb3VudCA9IE9iamVjdC5mcmVlemUoewotICBjdXJyZW5jeTogIlVTRCIsCi0g
IHZhbHVlOiAiMS4wIiwKLX0pOwotY29uc3QgZGVmYXVsdE51bWJlckFtb3VudCA9IE9iamVjdC5m
cmVlemUoewotICBjdXJyZW5jeTogIlVTRCIsCi0gIHZhbHVlOiAxLjAsCi19KTsKLWNvbnN0IGRl
ZmF1bHRUb3RhbCA9IE9iamVjdC5mcmVlemUoewotICBsYWJlbDogIkRlZmF1bHQgVG90YWwiLAot
ICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi19KTsKLWNvbnN0IGRlZmF1bHROdW1iZXJUb3RhbCA9
IE9iamVjdC5mcmVlemUoewotICBsYWJlbDogIkRlZmF1bHQgTnVtYmVyIFRvdGFsIiwKLSAgYW1v
dW50OiBkZWZhdWx0TnVtYmVyQW1vdW50LAotfSk7Ci1jb25zdCBkZWZhdWx0RGV0YWlscyA9IE9i
amVjdC5mcmVlemUoewotICB0b3RhbDogZGVmYXVsdFRvdGFsLAotICBkaXNwbGF5SXRlbXM6IFsK
LSAgICB7Ci0gICAgICBsYWJlbDogIkRlZmF1bHQgRGlzcGxheSBJdGVtIiwKLSAgICAgIGFtb3Vu
dDogZGVmYXVsdEFtb3VudCwKLSAgICB9LAotICBdLAotfSk7Ci1jb25zdCBkZWZhdWx0TnVtYmVy
RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewotICB0b3RhbDogZGVmYXVsdE51bWJlclRvdGFsLAot
ICBkaXNwbGF5SXRlbXM6IFsKLSAgICB7Ci0gICAgICBsYWJlbDogIkRlZmF1bHQgRGlzcGxheSBJ
dGVtIiwKLSAgICAgIGFtb3VudDogZGVmYXVsdE51bWJlckFtb3VudCwKLSAgICB9LAotICBdLAot
fSk7Ci0KLS8vIEF2b2lkIGZhbHNlIHBvc2l0aXZlcywgdGhpcyBzaG91bGQgYWx3YXlzIHBhc3MK
LWZ1bmN0aW9uIHNtb2tlVGVzdCgpIHsKLSAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGVmYXVsdE51bWJlckRldGFpbHMpOwotfQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgp
OwotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBk
ZWZhdWx0RGV0YWlscyk7Ci0gIGFzc2VydF90cnVlKEJvb2xlYW4ocmVxdWVzdC5pZCksICJtdXN0
IGJlIHNvbWUgdHJ1dGh5IHZhbHVlIik7Ci19LCAiSWYgZGV0YWlscy5pZCBpcyBtaXNzaW5nLCBh
c3NpZ24gYW4gaWRlbnRpZmllciIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0g
IGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZh
dWx0RGV0YWlscyk7Ci0gIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGFzc2VydF9ub3RfZXF1YWxzKHJlcXVlc3Qx
LmlkLCByZXF1ZXN0Mi5pZCwgIlVBIGdlbmVyYXRlZCBJRCBtdXN0IGJlIHVuaXF1ZSIpOwotICBj
b25zdCBzZWVuID0gbmV3IFNldCgpOwotICAvLyBMZXQncyB0cnkgY3JlYXRpbmcgbG90cyBvZiBy
ZXF1ZXN0cywgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhbGwgdW5pcXVlCi0gIGZvciAobGV0IGkg
PSAwOyBpIDwgMTAyNDsgaSsrKSB7Ci0gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVx
dWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIGFzc2VydF9mYWxzZSgK
LSAgICAgIHNlZW4uaGFzKHJlcXVlc3QuaWQpLAotICAgICAgYFVBIGdlbmVyYXRlZCBJRCBtdXN0
IGJlIHVuaXF1ZSwgYnV0IGdvdCBkdXBsaWNhdGUhICgke3JlcXVlc3QuaWR9KWAKLSAgICApOwot
ICAgIHNlZW4uYWRkKHJlcXVlc3QuaWQpOwotICB9Ci19LCAiSWYgZGV0YWlscy5pZCBpcyBtaXNz
aW5nLCBhc3NpZ24gYSB1bmlxdWUgaWRlbnRpZmllciIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21v
a2VUZXN0KCk7Ci0gIGNvbnN0IG5ld0RldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0
RGV0YWlscywgeyBpZDogInRlc3QxMjMiIH0pOwotICBjb25zdCByZXF1ZXN0MSA9IG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbmV3RGV0YWlscyk7Ci0gIGNvbnN0IHJlcXVlc3Qy
ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBuZXdEZXRhaWxzKTsKLSAgYXNz
ZXJ0X2VxdWFscyhyZXF1ZXN0MS5pZCwgbmV3RGV0YWlscy5pZCwgYGlkIG11c3QgYmUgJHtuZXdE
ZXRhaWxzLmlkfWApOwotICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QyLmlkLCBuZXdEZXRhaWxzLmlk
LCBgaWQgbXVzdCBiZSAke25ld0RldGFpbHMuaWR9YCk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVz
dDEuaWQsIHJlcXVlc3QyLmlkLCAiaWRzIG5lZWQgdG8gYmUgdGhlIHNhbWUiKTsKLX0sICJJZiB0
aGUgc2FtZSBpZCBpcyBwcm92aWRlZCwgdGhlbiB1c2UgaXQiKTsKLQotdGVzdCgoKSA9PiB7Ci0g
IHNtb2tlVGVzdCgpOwotICBjb25zdCBuZXdEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVm
YXVsdERldGFpbHMsIHsKLSAgICBpZDogIiIucGFkU3RhcnQoMTAyNCwgImEiKSwKLSAgfSk7Ci0g
IGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG5ld0Rl
dGFpbHMpOwotICBhc3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3QuaWQsCi0gICAgbmV3RGV0YWls
cy5pZCwKLSAgICBgaWQgbXVzdCBiZSBwcm92aWRlZCB2YWx1ZSwgZXZlbiBpZiB2ZXJ5IGxvbmcg
YW5kIGNvbnRhaW4gc3BhY2VzYAotICApOwotfSwgIlVzZSBpZHMgZXZlbiBpZiB0aGV5IGFyZSBz
dHJhbmdlIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgcmVxdWVz
dCA9IG5ldyBQYXltZW50UmVxdWVzdCgKLSAgICBkZWZhdWx0TWV0aG9kcywKLSAgICBPYmplY3Qu
YXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBpZDogImZvbyIgfSkKLSAgKTsKLSAgYXNzZXJ0
X2VxdWFscyhyZXF1ZXN0LmlkLCAiZm9vIik7Ci19LCAiVXNlIHByb3ZpZGVkIHJlcXVlc3QgSUQi
KTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgKCkgPT4gbmV3IFBheW1lbnRSZXF1ZXN0KFtdLCBkZWZhdWx0RGV0YWlscykp
OwotfSwgIklmIHRoZSBsZW5ndGggb2YgdGhlIG1ldGhvZERhdGEgc2VxdWVuY2UgaXMgemVybywg
dGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7
Ci0gIGNvbnN0IEpTT05TZXJpYWxpemFibGVzID0gW1tdLCB7IG9iamVjdDoge30gfV07Ci0gIGZv
ciAoY29uc3QgZGF0YSBvZiBKU09OU2VyaWFsaXphYmxlcykgewotICAgIHRyeSB7Ci0gICAgICBj
b25zdCBtZXRob2RzID0gWwotICAgICAgICB7Ci0gICAgICAgICAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICAgICAgIGRhdGEsCi0gICAg
ICAgIH0sCi0gICAgICBdOwotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1
bHREZXRhaWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQo
Ci0gICAgICAgIGBVbmV4cGVjdGVkIGVycm9yIHBhcnNpbmcgc3RyaW5naWZpYWJsZSBKU09OOiAk
e0pTT04uc3RyaW5naWZ5KAotICAgICAgICAgIGRhdGEKLSAgICAgICAgKX06ICR7ZXJyLm1lc3Nh
Z2V9YAotICAgICAgKTsKLSAgICB9Ci0gIH0KLX0sICJNb2RpZmllciBtZXRob2QgZGF0YSBtdXN0
IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VU
ZXN0KCk7Ci0gIGNvbnN0IHJlY3Vyc2l2ZURpY3Rpb25hcnkgPSB7fTsKLSAgcmVjdXJzaXZlRGlj
dGlvbmFyeS5mb28gPSByZWN1cnNpdmVEaWN0aW9uYXJ5OwotICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgKCkgPT4gewotICAgIGNvbnN0IG1ldGhvZHMgPSBbCi0gICAgICB7Ci0gICAg
ICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwK
LSAgICAgICAgZGF0YTogcmVjdXJzaXZlRGljdGlvbmFyeSwKLSAgICAgIH0sCi0gICAgXTsKLSAg
ICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICB9KTsKLSAg
YXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKLSAgICBjb25zdCBtZXRob2Rz
ID0gWwotICAgICAgewotICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlp
L3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICAgIGRhdGE6ICJhIHN0cmluZyIsCi0gICAgICB9LAot
ICAgIF07Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsK
LSAgfSk7Ci0gIGFzc2VydF90aHJvd3MoCi0gICAgbmV3IFR5cGVFcnJvcigpLAotICAgICgpID0+
IHsKLSAgICAgIGNvbnN0IG1ldGhvZHMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICBzdXBwb3J0
ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICAgICAg
ZGF0YTogbnVsbCwKLSAgICAgICAgfSwKLSAgICAgIF07Ci0gICAgICBuZXcgUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIH0sCi0gICAgIkV2ZW4gdGhvdWdoIG51
bGwgaXMgSlNPTi1zZXJpYWxpemFibGUsIGl0J3Mgbm90IHR5cGUgJ09iamVjdCcgcGVyIEVTIHNw
ZWMiCi0gICk7Ci19LCAiUmV0aHJvdyBhbnkgZXhjZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6aW5n
IHBheW1lbnRNZXRob2QuZGF0YSBpbnRvIGEgc3RyaW5nIik7Ci0KLS8vIHByb2Nlc3MgdG90YWwK
LWNvbnN0IGludmFsaWRBbW91bnRzID0gWwotICAiLSIsCi0gICJub3RkaWdpdHMiLAotICAiQUxT
T05PVERJR0lUUyIsCi0gICIxMC4iLAotICAiLjk5IiwKLSAgIi0xMC4iLAotICAiLS45OSIsCi0g
ICIxMC0iLAotICAiMS0wIiwKLSAgIjEuMC4wIiwKLSAgIjEvMyIsCi0gICIiLAotICBudWxsLAot
ICAiIDEuMCAgIiwKLSAgIiAxLjAgIiwKLSAgIjEuMCAiLAotICAiVVNEJDEuMCIsCi0gICIkMS4w
IiwKLSAgewotICAgIHRvU3RyaW5nKCkgewotICAgICAgcmV0dXJuICIgMS4wIjsKLSAgICB9LAot
ICB9LAotXTsKLWNvbnN0IGludmFsaWRUb3RhbEFtb3VudHMgPSBpbnZhbGlkQW1vdW50cy5jb25j
YXQoWwotICAiLTEiLAotICAiLTEuMCIsCi0gICItMS4wMCIsCi0gICItMTAwMC4wMDAiLAotICAt
MTAsCi1dKTsKLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgZm9yIChjb25zdCBpbnZh
bGlkQW1vdW50IG9mIGludmFsaWRUb3RhbEFtb3VudHMpIHsKLSAgICBjb25zdCBpbnZhbGlkRGV0
YWlscyA9IHsKLSAgICAgIHRvdGFsOiB7Ci0gICAgICAgIGxhYmVsOiAiIiwKLSAgICAgICAgYW1v
dW50OiB7Ci0gICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAgICAgIHZhbHVlOiBpbnZh
bGlkQW1vdW50LAotICAgICAgICB9LAotICAgICAgfSwKLSAgICB9OwotICAgIGFzc2VydF90aHJv
d3MoCi0gICAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQ
YXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgaW52YWxpZERldGFpbHMpOwotICAgICAgfSwK
LSAgICAgIGBFeHBlY3QgVHlwZUVycm9yIHdoZW4gZGV0YWlscy50b3RhbC5hbW91bnQudmFsdWUg
aXMgJHtpbnZhbGlkQW1vdW50fWAKLSAgICApOwotICB9Ci19LCBgSWYgZGV0YWlscy50b3RhbC5h
bW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0
aHJvdyBhIFR5cGVFcnJvcmApOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGZv
ciAoY29uc3QgcHJvcCBpbiBbImRpc3BsYXlJdGVtcyIsICJzaGlwcGluZ09wdGlvbnMiLCAibW9k
aWZpZXJzIl0pIHsKLSAgICB0cnkgewotICAgICAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3Np
Z24oe30sIGRlZmF1bHREZXRhaWxzLCB7IFtwcm9wXTogW10gfSk7Ci0gICAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgYXNzZXJ0X3VucmVhY2hl
ZChgUGF5bWVudERldGFpbHNCYXNlLiR7cHJvcH0gY2FuIGJlIHplcm8gbGVuZ3RoYCk7Ci0gICAg
fSBjYXRjaCAoZXJyKSB7fQotICB9Ci19LCBgUGF5bWVudERldGFpbHNCYXNlIG1lbWJlcnMgY2Fu
IGJlIDAgbGVuZ3RoYCk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIHsKLSAgICAgIHRvdGFsOiB7Ci0gICAgICAgIGxhYmVsOiAiIiwKLSAg
ICAgICAgYW1vdW50OiB7Ci0gICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAgICAgIHZh
bHVlOiAiLTEuMDAiLAotICAgICAgICB9LAotICAgICAgfSwKLSAgICB9KTsKLSAgfSk7Ci19LCAi
SWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBkZXRhaWxzLnRvdGFsLmFtb3VudC52YWx1ZSBpcyBV
KzAwMkQgSFlQSEVOLU1JTlVTLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIik7Ci0KLXRlc3QoKCkg
PT4gewotICBzbW9rZVRlc3QoKTsKLSAgZm9yIChjb25zdCBpbnZhbGlkQW1vdW50IG9mIGludmFs
aWRBbW91bnRzKSB7Ci0gICAgY29uc3QgaW52YWxpZERldGFpbHMgPSB7Ci0gICAgICB0b3RhbDog
ZGVmYXVsdEFtb3VudCwKLSAgICAgIGRpc3BsYXlJdGVtczogWwotICAgICAgICB7Ci0gICAgICAg
ICAgbGFiZWw6ICIiLAotICAgICAgICAgIGFtb3VudDogewotICAgICAgICAgICAgY3VycmVuY3k6
ICJVU0QiLAotICAgICAgICAgICAgdmFsdWU6IGludmFsaWRBbW91bnQsCi0gICAgICAgICAgfSwK
LSAgICAgICAgfSwKLSAgICAgIF0sCi0gICAgfTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAg
bmV3IFR5cGVFcnJvcigpLAotICAgICAgKCkgPT4gewotICAgICAgICBuZXcgUGF5bWVudFJlcXVl
c3QoZGVmYXVsdE1ldGhvZHMsIGludmFsaWREZXRhaWxzKTsKLSAgICAgIH0sCi0gICAgICBgRXhw
ZWN0ZWQgVHlwZUVycm9yIHdoZW4gaXRlbS5hbW91bnQudmFsdWUgaXMgIiR7aW52YWxpZEFtb3Vu
dH0iYAotICAgICk7Ci0gIH0KLX0sIGBGb3IgZWFjaCBpdGVtIGluIGRldGFpbHMuZGlzcGxheUl0
ZW1zOiBpZiBpdGVtLmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5
IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yYCk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9r
ZVRlc3QoKTsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoCi0gICAgICBbCi0gICAg
ICAgIHsKLSAgICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1l
bnQtcmVxdWVzdCIsCi0gICAgICAgIH0sCi0gICAgICBdLAotICAgICAgewotICAgICAgICB0b3Rh
bDogZGVmYXVsdFRvdGFsLAotICAgICAgICBkaXNwbGF5SXRlbXM6IFsKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICBsYWJlbDogIiIsCi0gICAgICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICAg
ICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAgICAgICAgICB2YWx1ZTogIi0xMDAwIiwKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBsYWJlbDog
IiIsCi0gICAgICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICAgICAgY3VycmVuY3k6ICJBVUQi
LAotICAgICAgICAgICAgICB2YWx1ZTogIi0yMDAwLjAwIiwKLSAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgfSwKLSAgICAgICAgXSwKLSAgICAgIH0KLSAgICApOwotICB9IGNhdGNoIChlcnIpIHsK
LSAgICBhc3NlcnRfdW5yZWFjaGVkKAotICAgICAgYHNob3VsZG4ndCB0aHJvdyB3aGVuIGdpdmVu
IGEgbmVnYXRpdmUgdmFsdWU6ICR7ZXJyLm1lc3NhZ2V9YAotICAgICk7Ci0gIH0KLX0sICJOZWdh
dGl2ZSB2YWx1ZXMgYXJlIGFsbG93ZWQgZm9yIGRpc3BsYXlJdGVtcy5hbW91bnQudmFsdWUsIGly
cmVzcGVjdGl2ZSBvZiB0b3RhbCBhbW91bnQiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVz
dCgpOwotICBjb25zdCBsYXJnZU1vbmV5ID0gIjEiLnJlcGVhdCg1MTApOwotICB0cnkgewotICAg
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgewotICAgICAgdG90YWw6IHsKLSAg
ICAgICAgbGFiZWw6ICIiLAotICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICBjdXJyZW5jeTog
IlVTRCIsCi0gICAgICAgICAgdmFsdWU6IGAke2xhcmdlTW9uZXl9LiR7bGFyZ2VNb25leX1gLAot
ICAgICAgICB9LAotICAgICAgfSwKLSAgICAgIGRpc3BsYXlJdGVtczogWwotICAgICAgICB7Ci0g
ICAgICAgICAgbGFiZWw6ICIiLAotICAgICAgICAgIGFtb3VudDogewotICAgICAgICAgICAgY3Vy
cmVuY3k6ICJVU0QiLAotICAgICAgICAgICAgdmFsdWU6IGAtJHtsYXJnZU1vbmV5fWAsCi0gICAg
ICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIGxhYmVsOiAiIiwKLSAg
ICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICAgIGN1cnJlbmN5OiAiQVVEIiwKLSAgICAgICAg
ICAgIHZhbHVlOiBgLSR7bGFyZ2VNb25leX0uJHtsYXJnZU1vbmV5fWAsCi0gICAgICAgICAgfSwK
LSAgICAgICAgfSwKLSAgICAgIF0sCi0gICAgfSk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFz
c2VydF91bnJlYWNoZWQoCi0gICAgICBgc2hvdWxkbid0IHRocm93IHdoZW4gZ2l2ZW4gYWJzdXJk
IG1vbmV0YXJ5IHZhbHVlczogJHtlcnIubWVzc2FnZX1gCi0gICAgKTsKLSAgfQotfSwgIml0IGhh
bmRsZXMgaGlnaCBwcmVjaXNpb24gY3VycmVuY3kgdmFsdWVzIHdpdGhvdXQgdGhyb3dpbmciKTsK
LQotLy8gUHJvY2VzcyBzaGlwcGluZyBvcHRpb25zOgotCi1jb25zdCBkZWZhdWx0U2hpcHBpbmdP
cHRpb24gPSBPYmplY3QuZnJlZXplKHsKLSAgaWQ6ICJkZWZhdWx0IiwKLSAgbGFiZWw6ICIiLAot
ICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi0gIHNlbGVjdGVkOiBmYWxzZSwKLX0pOwotY29uc3Qg
ZGVmYXVsdFNoaXBwaW5nT3B0aW9ucyA9IE9iamVjdC5mcmVlemUoWwotICBPYmplY3QuYXNzaWdu
KHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pLAotXSk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9r
ZVRlc3QoKTsKLSAgZm9yIChjb25zdCBhbW91bnQgb2YgaW52YWxpZEFtb3VudHMpIHsKLSAgICBj
b25zdCBpbnZhbGlkQW1vdW50ID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdEFtb3VudCwgewot
ICAgICAgdmFsdWU6IGFtb3VudCwKLSAgICB9KTsKLSAgICBjb25zdCBpbnZhbGlkU2hpcHBpbmdP
cHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICAg
IGFtb3VudDogaW52YWxpZEFtb3VudCwKLSAgICB9KTsKLSAgICBjb25zdCBkZXRhaWxzID0gT2Jq
ZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsKLSAgICAgIHNoaXBwaW5nT3B0aW9uczog
W2ludmFsaWRTaGlwcGluZ09wdGlvbl0sCi0gICAgfSk7Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAg
ICAgIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9
KTsKLSAgICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgVHlwZUVycm9yIGZvciBvcHRpb24uYW1vdW50
LnZhbHVlOiAiJHthbW91bnR9ImAKLSAgICApOwotICB9Ci19LCBgRm9yIGVhY2ggb3B0aW9uIGlu
IGRldGFpbHMuc2hpcHBpbmdPcHRpb25zOiBpZiBvcHRpb24uYW1vdW50LnZhbHVlIGlzIG5vdCBh
IHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkgdmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3JgKTsK
LQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBjb25zdCBzaGlwcGluZ09wdGlvbnMg
PSBbZGVmYXVsdFNoaXBwaW5nT3B0aW9uXTsKLSAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3Np
Z24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKLSAgY29uc3QgcmVx
dWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gIGFz
c2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdC5zaGlwcGluZ09wdGlvbiwKLSAgICBudWxsLAotICAg
ICJzaGlwcGluZ09wdGlvbiBtdXN0IGJlIG51bGwsIGFzIHJlcXVlc3RTaGlwcGluZyBpcyBtaXNz
aW5nIgotICApOwotICAvLyBkZWZhdWx0RGV0YWlscyBsYWNrcyBzaGlwcGluZyBvcHRpb25zCi0g
IGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZh
dWx0RGV0YWlscywgewotICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwKLSAgfSk7Ci0gIGFzc2Vy
dF9lcXVhbHMoCi0gICAgcmVxdWVzdDIuc2hpcHBpbmdPcHRpb24sCi0gICAgbnVsbCwKLSAgICBg
cmVxdWVzdDIuc2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxsYAotICApOwotfSwgIklmIHRoZXJl
IGlzIG5vIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbiwgdGhlbiBQYXltZW50UmVxdWVzdC5zaGlw
cGluZ09wdGlvbiByZW1haW5zIG51bGwiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgp
OwotICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlw
cGluZ09wdGlvbiwgewotICAgIHNlbGVjdGVkOiB0cnVlLAotICAgIGlkOiAidGhlLWlkIiwKLSAg
fSk7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtzZWxlY3RlZE9wdGlvbl07Ci0gIGNvbnN0
IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBzaGlwcGluZ09w
dGlvbnMgfSk7Ci0gIGNvbnN0IHJlcXVlc3ROb1NoaXBwaW5nUmVxdWVzdGVkMSA9IG5ldyBQYXlt
ZW50UmVxdWVzdCgKLSAgICBkZWZhdWx0TWV0aG9kcywKLSAgICBkZXRhaWxzCi0gICk7Ci0gIGFz
c2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdE5vU2hpcHBpbmdSZXF1ZXN0ZWQxLnNoaXBwaW5nT3B0
aW9uLAotICAgIG51bGwsCi0gICAgIk11c3QgYmUgbnVsbCB3aGVuIG5vIHNoaXBwaW5nIGlzIHJl
cXVlc3RlZCAoZGVmYXVsdHMgdG8gZmFsc2UpIgotICApOwotICBjb25zdCByZXF1ZXN0Tm9TaGlw
cGluZ1JlcXVlc3RlZDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoCi0gICAgZGVmYXVsdE1ldGhvZHMs
Ci0gICAgZGV0YWlscywKLSAgICB7IHJlcXVlc3RTaGlwcGluZzogZmFsc2UgfQotICApOwotICBh
c3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3ROb1NoaXBwaW5nUmVxdWVzdGVkMi5zaGlwcGluZ09w
dGlvbiwKLSAgICBudWxsLAotICAgICJNdXN0IGJlIG51bGwgd2hlbiByZXF1ZXN0U2hpcHBpbmcg
aXMgZmFsc2UiCi0gICk7Ci0gIGNvbnN0IHJlcXVlc3RXaXRoU2hpcHBpbmcgPSBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsKLSAgICByZXF1ZXN0U2hpcHBpbmc6
ICJ0cnV0aHkgdmFsdWUiLAotICB9KTsKLSAgYXNzZXJ0X2VxdWFscygKLSAgICByZXF1ZXN0V2l0
aFNoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAotICAgICJ0aGUtaWQiLAotICAgICJTZWxlY3RlZCBv
cHRpb24gbXVzdCBiZSAndGhlLWlkJyIKLSAgKTsKLX0sICJJZiB0aGVyZSBpcyBhIHNlbGVjdGVk
IHNoaXBwaW5nIG9wdGlvbiwgYW5kIHJlcXVlc3RTaGlwcGluZyBpcyBzZXQsIHRoZW4gdGhhdCBv
cHRpb24gYmVjb21lcyBzeW5jaHJvbm91c2x5IHNlbGVjdGVkIik7Ci0KLXRlc3QoKCkgPT4gewot
ICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgZmFpbE9wdGlvbjEgPSBPYmplY3QuYXNzaWduKHt9LCBk
ZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICBzZWxlY3RlZDogdHJ1ZSwKLSAgICBpZDogIkZB
SUwxIiwKLSAgfSk7Ci0gIGNvbnN0IGZhaWxPcHRpb24yID0gT2JqZWN0LmFzc2lnbih7fSwgZGVm
YXVsdFNoaXBwaW5nT3B0aW9uLCB7Ci0gICAgc2VsZWN0ZWQ6IGZhbHNlLAotICAgIGlkOiAiRkFJ
TDIiLAotICB9KTsKLSAgY29uc3QgcGFzc09wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1
bHRTaGlwcGluZ09wdGlvbiwgewotICAgIHNlbGVjdGVkOiB0cnVlLAotICAgIGlkOiAidGhlLWlk
IiwKLSAgfSk7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtmYWlsT3B0aW9uMSwgZmFpbE9w
dGlvbjIsIHBhc3NPcHRpb25dOwotICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOwotICBjb25zdCByZXF1ZXN0Tm9T
aGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgewot
ICAgIHJlcXVlc3RTaGlwcGluZzogZmFsc2UsCi0gIH0pOwotICBhc3NlcnRfZXF1YWxzKAotICAg
IHJlcXVlc3ROb1NoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAotICAgIG51bGwsCi0gICAgInNoaXBw
aW5nT3B0aW9uIG11c3QgYmUgbnVsbCwgYXMgcmVxdWVzdFNoaXBwaW5nIGlzIGZhbHNlIgotICAp
OwotICBjb25zdCByZXF1ZXN0V2l0aFNoaXBwaW5nID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZXRhaWxzLCB7Ci0gICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAotICB9KTsK
LSAgYXNzZXJ0X2VxdWFscygKLSAgICByZXF1ZXN0V2l0aFNoaXBwaW5nLnNoaXBwaW5nT3B0aW9u
LAotICAgICJ0aGUtaWQiLAotICAgICJzZWxlY3RlZCBvcHRpb24gbXVzdCAndGhlLWlkIgotICAp
OwotfSwgIklmIHJlcXVlc3RTaGlwcGluZyBpcyBzZXQsIGFuZCBpZiB0aGVyZSBpcyBhIG11bHRp
cGxlIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbnMsIG9ubHkgdGhlIGxhc3QgaXMgc2VsZWN0ZWQu
Iik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3Qgc2VsZWN0ZWRPcHRp
b24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICBzZWxl
Y3RlZDogdHJ1ZSwKLSAgfSk7Ci0gIGNvbnN0IHVuc2VsZWN0ZWRPcHRpb24gPSBPYmplY3QuYXNz
aWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICBzZWxlY3RlZDogZmFsc2UsCi0g
IH0pOwotICBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSBbc2VsZWN0ZWRPcHRpb24sIHVuc2VsZWN0
ZWRPcHRpb25dOwotICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERl
dGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOwotICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZyA9
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gIGFzc2VydF9l
cXVhbHMoCi0gICAgcmVxdWVzdE5vU2hpcHBpbmcuc2hpcHBpbmdPcHRpb24sCi0gICAgbnVsbCwK
LSAgICAic2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxsLCBiZWNhdXNlIHJlcXVlc3RTaGlwcGlu
ZyBpcyBmYWxzZSIKLSAgKTsKLSAgYXNzZXJ0X3Rocm93cygKLSAgICBuZXcgVHlwZUVycm9yKCks
Ci0gICAgKCkgPT4gewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBk
ZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKLSAgICB9LAotICAgICJFeHBlY3Rl
ZCB0byB0aHJvdyBhIFR5cGVFcnJvciBiZWNhdXNlIGR1cGxpY2F0ZSBJRHMiCi0gICk7Ci19LCAi
SWYgdGhlcmUgYXJlIGFueSBkdXBsaWNhdGUgc2hpcHBpbmcgb3B0aW9uIGlkcywgYW5kIHNoaXBw
aW5nIGlzIHJlcXVlc3RlZCwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOwotCi10ZXN0KCgpID0+
IHsKLSAgc21va2VUZXN0KCk7Ci0gIGNvbnN0IGR1cFNoaXBwaW5nMSA9IE9iamVjdC5hc3NpZ24o
e30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgewotICAgIHNlbGVjdGVkOiB0cnVlLAotICAgIGlk
OiAiRFVQTElDQVRFIiwKLSAgICBsYWJlbDogIkZhaWwgMSIsCi0gIH0pOwotICBjb25zdCBkdXBT
aGlwcGluZzIgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAg
ICBzZWxlY3RlZDogZmFsc2UsCi0gICAgaWQ6ICJEVVBMSUNBVEUiLAotICAgIGxhYmVsOiAiRmFp
bCAyIiwKLSAgfSk7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtkdXBTaGlwcGluZzEsIGRl
ZmF1bHRTaGlwcGluZ09wdGlvbiwgZHVwU2hpcHBpbmcyXTsKLSAgY29uc3QgZGV0YWlscyA9IE9i
amVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKLSAg
Y29uc3QgcmVxdWVzdE5vU2hpcHBpbmcgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhv
ZHMsIGRldGFpbHMpOwotICBhc3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3ROb1NoaXBwaW5nLnNo
aXBwaW5nT3B0aW9uLAotICAgIG51bGwsCi0gICAgInNoaXBwaW5nT3B0aW9uIG11c3QgYmUgbnVs
bCwgYmVjYXVzZSByZXF1ZXN0U2hpcHBpbmcgaXMgZmFsc2UiCi0gICk7Ci0gIGFzc2VydF90aHJv
d3MoCi0gICAgbmV3IFR5cGVFcnJvcigpLAotICAgICgpID0+IHsKLSAgICAgIG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUg
fSk7Ci0gICAgfSwKLSAgICAiRXhwZWN0ZWQgdG8gdGhyb3cgYSBUeXBlRXJyb3IgYmVjYXVzZSBk
dXBsaWNhdGUgSURzIgotICApOwotfSwgIlRocm93IHdoZW4gdGhlcmUgYXJlIGR1cGxpY2F0ZSBz
aGlwcGluZ09wdGlvbiBpZHMsIGV2ZW4gaWYgb3RoZXIgdmFsdWVzIGFyZSBkaWZmZXJlbnQiKTsK
LQotLy8gUHJvY2VzcyBwYXltZW50IGRldGFpbHMgbW9kaWZpZXJzOgotdGVzdCgoKSA9PiB7Ci0g
IHNtb2tlVGVzdCgpOwotICBmb3IgKGNvbnN0IGludmFsaWRUb3RhbCBvZiBpbnZhbGlkVG90YWxB
bW91bnRzKSB7Ci0gICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0gewotICAgICAgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICAgdG90YWw6
IHsKLSAgICAgICAgbGFiZWw6ICIiLAotICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICBjdXJy
ZW5jeTogIlVTRCIsCi0gICAgICAgICAgdmFsdWU6IGludmFsaWRUb3RhbCwKLSAgICAgICAgfSwK
LSAgICAgIH0sCi0gICAgfTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgbmV3IFR5cGVFcnJv
cigpLAotICAgICAgKCkgPT4gewotICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIHsKLSAgICAgICAgICBtb2RpZmllcnM6IFtpbnZhbGlkTW9kaWZpZXJdLAotICAgICAg
ICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICAgIH0pOwotICAgICAgfSwKLSAgICAgIGBF
eHBlY3RlZCBUeXBlRXJyb3IgZm9yIG1vZGlmaWVyLnRvdGFsLmFtb3VudC52YWx1ZTogIiR7aW52
YWxpZFRvdGFsfSJgCi0gICAgKTsKLSAgfQotfSwgYFRocm93IFR5cGVFcnJvciBpZiBtb2RpZmll
ci50b3RhbC5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1
ZWApOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGZvciAoY29uc3QgaW52YWxp
ZEFtb3VudCBvZiBpbnZhbGlkQW1vdW50cykgewotICAgIGNvbnN0IGludmFsaWRNb2RpZmllciA9
IHsKLSAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1
ZXN0IiwKLSAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBhZGRpdGlvbmFsRGlzcGxh
eUl0ZW1zOiBbCi0gICAgICAgIHsKLSAgICAgICAgICBsYWJlbDogIiIsCi0gICAgICAgICAgYW1v
dW50OiB7Ci0gICAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCi0gICAgICAgICAgICB2YWx1ZTog
aW52YWxpZEFtb3VudCwKLSAgICAgICAgICB9LAotICAgICAgICB9LAotICAgICAgXSwKLSAgICB9
OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgICAoKSA9
PiB7Ci0gICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgewotICAgICAg
ICAgIG1vZGlmaWVyczogW2ludmFsaWRNb2RpZmllcl0sCi0gICAgICAgICAgdG90YWw6IGRlZmF1
bHRUb3RhbCwKLSAgICAgICAgfSk7Ci0gICAgICB9LAotICAgICAgYEV4cGVjdGVkIFR5cGVFcnJv
ciB3aGVuIGdpdmVuIGJvZ3VzIG1vZGlmaWVyLmFkZGl0aW9uYWxEaXNwbGF5SXRlbXMuYW1vdW50
IG9mICIke2ludmFsaWRNb2RpZmllcn0iYAotICAgICk7Ci0gIH0KLX0sIGBJZiBhbW91bnQudmFs
dWUgb2YgYWRkaXRpb25hbERpc3BsYXlJdGVtcyBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0
YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yYCk7Ci0KLXRlc3QoKCkgPT4gewotICBz
bW9rZVRlc3QoKTsKLSAgY29uc3QgbW9kaWZpZWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMsIHsKLSAgICBtb2RpZmllcnM6IFsKLSAgICAgIHsKLSAgICAgICAgc3Vw
cG9ydGVkTWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICAg
ICBkYXRhOiBbInNvbWUtZGF0YSJdLAotICAgICAgfSwKLSAgICBdLAotICB9KTsKLSAgdHJ5IHsK
LSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG1vZGlmaWVkRGV0YWlscyk7
Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICBgVW5leHBl
Y3RlZCBleGNlcHRpb24gdGhyb3duIHdoZW4gZ2l2ZW4gYSBsaXN0OiAke2Vyci5tZXNzYWdlfWAK
LSAgICApOwotICB9Ci19LCAiTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxl
IG9iamVjdCAoYW4gQXJyYXkgaW4gdGhpcyBjYXNlKSIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21v
a2VUZXN0KCk7Ci0gIGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRl
ZmF1bHREZXRhaWxzLCB7Ci0gICAgbW9kaWZpZXJzOiBbCi0gICAgICB7Ci0gICAgICAgIHN1cHBv
cnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwKLSAgICAgICAg
ZGF0YTogewotICAgICAgICAgIHNvbWU6ICJkYXRhIiwKLSAgICAgICAgfSwKLSAgICAgIH0sCi0g
ICAgXSwKLSAgfSk7Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBtb2RpZmllZERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5y
ZWFjaGVkKAotICAgICAgYHNob3VsZG4ndCB0aHJvdyB3aGVuIGdpdmVuIGFuIG9iamVjdCB2YWx1
ZTogJHtlcnIubWVzc2FnZX1gCi0gICAgKTsKLSAgfQotfSwgIk1vZGlmaWVyIGRhdGEgbXVzdCBi
ZSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3QgKGFuIE9iamVjdCBpbiB0aGlzIGNhc2UpIik7Ci0K
LXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgcmVjdXJzaXZlRGljdGlvbmFy
eSA9IHt9OwotICByZWN1cnNpdmVEaWN0aW9uYXJ5LmZvbyA9IHJlY3Vyc2l2ZURpY3Rpb25hcnk7
Ci0gIGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRh
aWxzLCB7Ci0gICAgbW9kaWZpZXJzOiBbCi0gICAgICB7Ci0gICAgICAgIHN1cHBvcnRlZE1ldGhv
ZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwKLSAgICAgICAgZGF0YTogcmVj
dXJzaXZlRGljdGlvbmFyeSwKLSAgICAgIH0sCi0gICAgXSwKLSAgfSk7Ci0gIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBtb2RpZmllZERldGFpbHMpOwotICB9KTsKLX0sICJSZXRocm93IGFueSBleGNl
cHRpb25zIG9mIEpTT04tc2VyaWFsaXppbmcgbW9kaWZpZXIuZGF0YSIpOwotCi0vL1NldHRpbmcg
U2hpcHBpbmdUeXBlIGF0dHJpYnV0ZSBkdXJpbmcgY29uc3RydWN0aW9uCi10ZXN0KCgpID0+IHsK
LSAgc21va2VUZXN0KCk7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7
Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywg
ewotICAgICAgc2hpcHBpbmdUeXBlOiAiaW52YWxpZCIsCi0gICAgfSk7Ci0gIH0pOwotfSwgIlNo
aXBwaW5nIHR5cGUgc2hvdWxkIGJlIHZhbGlkIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRl
c3QoKTsKLSAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGVmYXVsdERldGFpbHMsIHt9KTsKLSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LnNoaXBwaW5n
QWRkcmVzcywgbnVsbCwgIm11c3QgYmUgbnVsbCIpOwotfSwgIlBheW1lbnRSZXF1ZXN0LnNoaXBw
aW5nQWRkcmVzcyBtdXN0IGluaXRpYWxseSBiZSBudWxsIik7Ci0KLXRlc3QoKCkgPT4gewotICBz
bW9rZVRlc3QoKTsKLSAgY29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7fSk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVzdDEu
c2hpcHBpbmdUeXBlLCBudWxsLCAibXVzdCBiZSBudWxsIik7Ci0gIGNvbnN0IHJlcXVlc3QyID0g
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgewotICAg
IHJlcXVlc3RTaGlwcGluZzogZmFsc2UsCi0gIH0pOwotICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qy
LnNoaXBwaW5nVHlwZSwgbnVsbCwgIm11c3QgYmUgbnVsbCIpOwotfSwgIklmIG9wdGlvbnMucmVx
dWVzdFNoaXBwaW5nIGlzIG5vdCBzZXQsIHRoZW4gcmVxdWVzdC5zaGlwcGluZ1R5cGUgYXR0cmli
dXRlIGlzIG51bGwuIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgLy8gb3B0
aW9uLnNoaXBwaW5nVHlwZSBkZWZhdWx0cyB0byAnc2hpcHBpbmcnCi0gIGNvbnN0IHJlcXVlc3Qx
ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgewot
ICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwKLSAgfSk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVz
dDEuc2hpcHBpbmdUeXBlLCAic2hpcHBpbmciLCAibXVzdCBiZSBzaGlwcGluZyIpOwotICBjb25z
dCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERl
dGFpbHMsIHsKLSAgICByZXF1ZXN0U2hpcHBpbmc6IHRydWUsCi0gICAgc2hpcHBpbmdUeXBlOiAi
ZGVsaXZlcnkiLAotICB9KTsKLSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0Mi5zaGlwcGluZ1R5cGUs
ICJkZWxpdmVyeSIsICJtdXN0IGJlIGRlbGl2ZXJ5Iik7Ci19LCAiSWYgb3B0aW9ucy5yZXF1ZXN0
U2hpcHBpbmcgaXMgdHJ1ZSwgcmVxdWVzdC5zaGlwcGluZ1R5cGUgd2lsbCBiZSBvcHRpb25zLnNo
aXBwaW5nVHlwZS4iKTsKLQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtY29uc3RydWN0b3IuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jb25zdHJ1Y3Rvci5odHRwcy5zdWItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzYzBhYTI0
NmY0YmM5NzY5ZDE2ZGU4NWZkZTM4ZDJlMGI1OTFmODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMyIEBACisKK1BBU1MgSWYgZGV0YWlscy5pZCBpcyBtaXNzaW5nLCBhc3NpZ24gYW4gaWRl
bnRpZmllciAKK1BBU1MgSWYgZGV0YWlscy5pZCBpcyBtaXNzaW5nLCBhc3NpZ24gYSB1bmlxdWUg
aWRlbnRpZmllciAKK1BBU1MgSWYgdGhlIHNhbWUgaWQgaXMgcHJvdmlkZWQsIHRoZW4gdXNlIGl0
IAorUEFTUyBVc2UgaWRzIGV2ZW4gaWYgdGhleSBhcmUgc3RyYW5nZSAKK1BBU1MgVXNlIHByb3Zp
ZGVkIHJlcXVlc3QgSUQgCitQQVNTIElmIHRoZSBsZW5ndGggb2YgdGhlIG1ldGhvZERhdGEgc2Vx
dWVuY2UgaXMgemVybywgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK0ZBSUwgSWYgcGF5bWVudCBt
ZXRob2QgaXMgZHVwbGljYXRlLCB0aGVuIHRocm93IGEgUmFuZ2VFcnJvciBhc3NlcnRfdGhyb3dz
X2pzOiBmdW5jdGlvbiAiKCkgPT4gbmV3IFBheW1lbnRSZXF1ZXN0KGR1cGxpY2F0ZU1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKSIgZGlkIG5vdCB0aHJvdworUEFTUyBNb2RpZmllciBtZXRob2QgZGF0
YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAKK1BBU1MgUmV0aHJvdyBhbnkgZXhj
ZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6aW5nIHBheW1lbnRNZXRob2QuZGF0YSBpbnRvIGEgc3Ry
aW5nIAorUEFTUyBJZiBkZXRhaWxzLnRvdGFsLmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBk
ZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIAorUEFTUyBQYXlt
ZW50RGV0YWlsc0Jhc2UgbWVtYmVycyBjYW4gYmUgMCBsZW5ndGggCitQQVNTIElmIHRoZSBmaXJz
dCBjaGFyYWN0ZXIgb2YgZGV0YWlscy50b3RhbC5hbW91bnQudmFsdWUgaXMgVSswMDJEIEhZUEhF
Ti1NSU5VUywgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgRm9yIGVhY2ggaXRlbSBpbiBk
ZXRhaWxzLmRpc3BsYXlJdGVtczogaWYgaXRlbS5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQg
ZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgTmVn
YXRpdmUgdmFsdWVzIGFyZSBhbGxvd2VkIGZvciBkaXNwbGF5SXRlbXMuYW1vdW50LnZhbHVlLCBp
cnJlc3BlY3RpdmUgb2YgdG90YWwgYW1vdW50IAorUEFTUyBpdCBoYW5kbGVzIGhpZ2ggcHJlY2lz
aW9uIGN1cnJlbmN5IHZhbHVlcyB3aXRob3V0IHRocm93aW5nIAorUEFTUyBGb3IgZWFjaCBvcHRp
b24gaW4gZGV0YWlscy5zaGlwcGluZ09wdGlvbnM6IGlmIG9wdGlvbi5hbW91bnQudmFsdWUgaXMg
bm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJv
ciAKK1BBU1MgSWYgdGhlcmUgaXMgbm8gc2VsZWN0ZWQgc2hpcHBpbmcgb3B0aW9uLCB0aGVuIFBh
eW1lbnRSZXF1ZXN0LnNoaXBwaW5nT3B0aW9uIHJlbWFpbnMgbnVsbCAKK1BBU1MgSWYgdGhlcmUg
aXMgYSBzZWxlY3RlZCBzaGlwcGluZyBvcHRpb24sIGFuZCByZXF1ZXN0U2hpcHBpbmcgaXMgc2V0
LCB0aGVuIHRoYXQgb3B0aW9uIGJlY29tZXMgc3luY2hyb25vdXNseSBzZWxlY3RlZCAKK1BBU1Mg
SWYgcmVxdWVzdFNoaXBwaW5nIGlzIHNldCwgYW5kIGlmIHRoZXJlIGlzIGEgbXVsdGlwbGUgc2Vs
ZWN0ZWQgc2hpcHBpbmcgb3B0aW9ucywgb25seSB0aGUgbGFzdCBpcyBzZWxlY3RlZC4gCitQQVNT
IElmIHRoZXJlIGFyZSBhbnkgZHVwbGljYXRlIHNoaXBwaW5nIG9wdGlvbiBpZHMsIGFuZCBzaGlw
cGluZyBpcyByZXF1ZXN0ZWQsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgCitQQVNTIFRocm93IHdo
ZW4gdGhlcmUgYXJlIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbiBpZHMsIGV2ZW4gaWYgb3RoZXIg
dmFsdWVzIGFyZSBkaWZmZXJlbnQgCitQQVNTIFRocm93IFR5cGVFcnJvciBpZiBtb2RpZmllci50
b3RhbC5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSAK
K1BBU1MgSWYgYW1vdW50LnZhbHVlIG9mIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXMgaXMgbm90IGEg
dmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK1BB
U1MgTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAoYW4gQXJy
YXkgaW4gdGhpcyBjYXNlKSAKK1BBU1MgTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFs
aXphYmxlIG9iamVjdCAoYW4gT2JqZWN0IGluIHRoaXMgY2FzZSkgCitQQVNTIFJldGhyb3cgYW55
IGV4Y2VwdGlvbnMgb2YgSlNPTi1zZXJpYWxpemluZyBtb2RpZmllci5kYXRhIAorUEFTUyBTaGlw
cGluZyB0eXBlIHNob3VsZCBiZSB2YWxpZCAKK1BBU1MgUGF5bWVudFJlcXVlc3Quc2hpcHBpbmdB
ZGRyZXNzIG11c3QgaW5pdGlhbGx5IGJlIG51bGwgCitQQVNTIElmIG9wdGlvbnMucmVxdWVzdFNo
aXBwaW5nIGlzIG5vdCBzZXQsIHRoZW4gcmVxdWVzdC5zaGlwcGluZ1R5cGUgYXR0cmlidXRlIGlz
IG51bGwuIAorUEFTUyBJZiBvcHRpb25zLnJlcXVlc3RTaGlwcGluZyBpcyB0cnVlLCByZXF1ZXN0
LnNoaXBwaW5nVHlwZSB3aWxsIGJlIG9wdGlvbnMuc2hpcHBpbmdUeXBlLiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBzLnN1Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMGFk
MDY0NTRmOTMzMGJhNDExNWJmZjI5OTA2NDdiNDdhZGJkMmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuc3ViLmh0bWwKQEAgLTAsMCArMSw2
OTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBDaHJvbWl1bSBh
dXRob3JzIGFuZCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAoTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRVJDSU0sIEtlaW8gVW5pdmVyc2l0eSwgQmVpaGFuZykuIC0t
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgZm9yIFBheW1lbnRSZXF1ZXN0
IENvbnN0cnVjdG9yPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0
cmljdCI7Citjb25zdCB0ZXN0TWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1l
dGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3Qi
LAorfSk7Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3Rlc3RNZXRob2Rd
KTsKK2NvbnN0IGRlZmF1bHRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKKyAgY3VycmVuY3k6ICJV
U0QiLAorICB2YWx1ZTogIjEuMCIsCit9KTsKK2NvbnN0IGRlZmF1bHROdW1iZXJBbW91bnQgPSBP
YmplY3QuZnJlZXplKHsKKyAgY3VycmVuY3k6ICJVU0QiLAorICB2YWx1ZTogMS4wLAorfSk7Citj
b25zdCBkZWZhdWx0VG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAgbGFiZWw6ICJEZWZhdWx0IFRv
dGFsIiwKKyAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAorfSk7Citjb25zdCBkZWZhdWx0TnVtYmVy
VG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAgbGFiZWw6ICJEZWZhdWx0IE51bWJlciBUb3RhbCIs
CisgIGFtb3VudDogZGVmYXVsdE51bWJlckFtb3VudCwKK30pOworY29uc3QgZGVmYXVsdERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKKyAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgZGlzcGxheUl0
ZW1zOiBbCisgICAgeworICAgICAgbGFiZWw6ICJEZWZhdWx0IERpc3BsYXkgSXRlbSIsCisgICAg
ICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCisgICAgfSwKKyAgXSwKK30pOworY29uc3QgZGVmYXVs
dE51bWJlckRldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKKyAgdG90YWw6IGRlZmF1bHROdW1iZXJU
b3RhbCwKKyAgZGlzcGxheUl0ZW1zOiBbCisgICAgeworICAgICAgbGFiZWw6ICJEZWZhdWx0IERp
c3BsYXkgSXRlbSIsCisgICAgICBhbW91bnQ6IGRlZmF1bHROdW1iZXJBbW91bnQsCisgICAgfSwK
KyAgXSwKK30pOworCisvLyBBdm9pZCBmYWxzZSBwb3NpdGl2ZXMsIHRoaXMgc2hvdWxkIGFsd2F5
cyBwYXNzCitmdW5jdGlvbiBzbW9rZVRlc3QoKSB7CisgIG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRlZmF1bHROdW1iZXJEZXRhaWxzKTsKK30KK3Rlc3QoKCkgPT4geworICBzbW9r
ZVRlc3QoKTsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgZGVmYXVsdERldGFpbHMpOworICBhc3NlcnRfdHJ1ZShCb29sZWFuKHJlcXVlc3QuaWQp
LCAibXVzdCBiZSBzb21lIHRydXRoeSB2YWx1ZSIpOworfSwgIklmIGRldGFpbHMuaWQgaXMgbWlz
c2luZywgYXNzaWduIGFuIGlkZW50aWZpZXIiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVz
dCgpOworICBjb25zdCByZXF1ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBhc3NlcnRfbm90X2VxdWFscyhy
ZXF1ZXN0MS5pZCwgcmVxdWVzdDIuaWQsICJVQSBnZW5lcmF0ZWQgSUQgbXVzdCBiZSB1bmlxdWUi
KTsKKyAgY29uc3Qgc2VlbiA9IG5ldyBTZXQoKTsKKyAgLy8gTGV0J3MgdHJ5IGNyZWF0aW5nIGxv
dHMgb2YgcmVxdWVzdHMsIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgYWxsIHVuaXF1ZQorICBmb3Ig
KGxldCBpID0gMDsgaSA8IDEwMjQ7IGkrKykgeworICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgICBhc3NlcnRf
ZmFsc2UoCisgICAgICBzZWVuLmhhcyhyZXF1ZXN0LmlkKSwKKyAgICAgIGBVQSBnZW5lcmF0ZWQg
SUQgbXVzdCBiZSB1bmlxdWUsIGJ1dCBnb3QgZHVwbGljYXRlISAoJHtyZXF1ZXN0LmlkfSlgCisg
ICAgKTsKKyAgICBzZWVuLmFkZChyZXF1ZXN0LmlkKTsKKyAgfQorfSwgIklmIGRldGFpbHMuaWQg
aXMgbWlzc2luZywgYXNzaWduIGEgdW5pcXVlIGlkZW50aWZpZXIiKTsKKwordGVzdCgoKSA9PiB7
CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBuZXdEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMsIHsgaWQ6ICJ0ZXN0MTIzIiB9KTsKKyAgY29uc3QgcmVxdWVzdDEgPSBu
ZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG5ld0RldGFpbHMpOworICBjb25zdCBy
ZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbmV3RGV0YWlscyk7
CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdDEuaWQsIG5ld0RldGFpbHMuaWQsIGBpZCBtdXN0IGJl
ICR7bmV3RGV0YWlscy5pZH1gKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0Mi5pZCwgbmV3RGV0
YWlscy5pZCwgYGlkIG11c3QgYmUgJHtuZXdEZXRhaWxzLmlkfWApOworICBhc3NlcnRfZXF1YWxz
KHJlcXVlc3QxLmlkLCByZXF1ZXN0Mi5pZCwgImlkcyBuZWVkIHRvIGJlIHRoZSBzYW1lIik7Cit9
LCAiSWYgdGhlIHNhbWUgaWQgaXMgcHJvdmlkZWQsIHRoZW4gdXNlIGl0Iik7CisKK3Rlc3QoKCkg
PT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgbmV3RGV0YWlscyA9IE9iamVjdC5hc3NpZ24o
e30sIGRlZmF1bHREZXRhaWxzLCB7CisgICAgaWQ6ICIiLnBhZFN0YXJ0KDEwMjQsICJhIiksCisg
IH0pOworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBuZXdEZXRhaWxzKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0LmlkLAorICAgIG5l
d0RldGFpbHMuaWQsCisgICAgYGlkIG11c3QgYmUgcHJvdmlkZWQgdmFsdWUsIGV2ZW4gaWYgdmVy
eSBsb25nIGFuZCBjb250YWluIHNwYWNlc2AKKyAgKTsKK30sICJVc2UgaWRzIGV2ZW4gaWYgdGhl
eSBhcmUgc3RyYW5nZSIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoCisgICAgZGVmYXVsdE1ldGhvZHMsCisgICAg
T2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgaWQ6ICJmb28iIH0pCisgICk7Cisg
IGFzc2VydF9lcXVhbHMocmVxdWVzdC5pZCwgImZvbyIpOworfSwgIlVzZSBwcm92aWRlZCByZXF1
ZXN0IElEIik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsICgpID0+IG5ldyBQYXltZW50UmVxdWVzdChbXSwgZGVmYXVsdERldGFp
bHMpKTsKK30sICJJZiB0aGUgbGVuZ3RoIG9mIHRoZSBtZXRob2REYXRhIHNlcXVlbmNlIGlzIHpl
cm8sIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVz
dCgpOworICBjb25zdCBkdXBsaWNhdGVNZXRob2RzID0gWworICAgIHsKKyAgICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVl
c3QiLAorICAgIH0sCisgICAgeworICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tk
b21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAgfSwKKyAgXTsKKyAg
YXNzZXJ0X3Rocm93c19qcyhSYW5nZUVycm9yLCAoKSA9PiBuZXcgUGF5bWVudFJlcXVlc3QoZHVw
bGljYXRlTWV0aG9kcywgZGVmYXVsdERldGFpbHMpKTsKK30sICJJZiBwYXltZW50IG1ldGhvZCBp
cyBkdXBsaWNhdGUsIHRoZW4gdGhyb3cgYSBSYW5nZUVycm9yIik7CisKK3Rlc3QoKCkgPT4gewor
ICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgSlNPTlNlcmlhbGl6YWJsZXMgPSBbW10sIHsgb2JqZWN0
OiB7fSB9XTsKKyAgZm9yIChjb25zdCBkYXRhIG9mIEpTT05TZXJpYWxpemFibGVzKSB7CisgICAg
dHJ5IHsKKyAgICAgIGNvbnN0IG1ldGhvZHMgPSBbCisgICAgICAgIHsKKyAgICAgICAgICBzdXBw
b3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1y
ZXF1ZXN0IiwKKyAgICAgICAgICBkYXRhLAorICAgICAgICB9LAorICAgICAgXTsKKyAgICAgIG5l
dyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgICAgfSBjYXRjaCAo
ZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBlY3RlZCBlcnJv
ciBwYXJzaW5nIHN0cmluZ2lmaWFibGUgSlNPTjogJHtKU09OLnN0cmluZ2lmeSgKKyAgICAgICAg
ICBkYXRhCisgICAgICAgICl9OiAke2Vyci5tZXNzYWdlfWAKKyAgICAgICk7CisgICAgfQorICB9
Cit9LCAiTW9kaWZpZXIgbWV0aG9kIGRhdGEgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZSBvYmpl
Y3QiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCByZWN1cnNpdmVE
aWN0aW9uYXJ5ID0ge307CisgIHJlY3Vyc2l2ZURpY3Rpb25hcnkuZm9vID0gcmVjdXJzaXZlRGlj
dGlvbmFyeTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKKyAgICBjb25z
dCBtZXRob2RzID0gWworICAgICAgeworICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6
Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAgICAgZGF0
YTogcmVjdXJzaXZlRGljdGlvbmFyeSwKKyAgICAgIH0sCisgICAgXTsKKyAgICBuZXcgUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICB9KTsKKyAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsICgpID0+IHsKKyAgICBjb25zdCBtZXRob2RzID0gWworICAgICAgewor
ICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRd
fX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAgICAgZGF0YTogImEgc3RyaW5nIiwKKyAgICAgIH0s
CisgICAgXTsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMp
OworICB9KTsKKyAgYXNzZXJ0X3Rocm93c19qcygKKyAgICBUeXBlRXJyb3IsCisgICAgKCkgPT4g
eworICAgICAgY29uc3QgbWV0aG9kcyA9IFsKKyAgICAgICAgeworICAgICAgICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVl
c3QiLAorICAgICAgICAgIGRhdGE6IG51bGwsCisgICAgICAgIH0sCisgICAgICBdOworICAgICAg
bmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgICB9LAorICAg
ICJFdmVuIHRob3VnaCBudWxsIGlzIEpTT04tc2VyaWFsaXphYmxlLCBpdCdzIG5vdCB0eXBlICdP
YmplY3QnIHBlciBFUyBzcGVjIgorICApOworfSwgIlJldGhyb3cgYW55IGV4Y2VwdGlvbnMgb2Yg
SlNPTi1zZXJpYWxpemluZyBwYXltZW50TWV0aG9kLmRhdGEgaW50byBhIHN0cmluZyIpOworCisv
LyBwcm9jZXNzIHRvdGFsCitjb25zdCBpbnZhbGlkQW1vdW50cyA9IFsKKyAgIi0iLAorICAibm90
ZGlnaXRzIiwKKyAgIkFMU09OT1RESUdJVFMiLAorICAiMTAuIiwKKyAgIi45OSIsCisgICItMTAu
IiwKKyAgIi0uOTkiLAorICAiMTAtIiwKKyAgIjEtMCIsCisgICIxLjAuMCIsCisgICIxLzMiLAor
ICAiIiwKKyAgbnVsbCwKKyAgIiAxLjAgICIsCisgICIgMS4wICIsCisgICIxLjAgIiwKKyAgIlVT
RCQxLjAiLAorICAiJDEuMCIsCisgIHsKKyAgICB0b1N0cmluZygpIHsKKyAgICAgIHJldHVybiAi
IDEuMCI7CisgICAgfSwKKyAgfSwKK107Citjb25zdCBpbnZhbGlkVG90YWxBbW91bnRzID0gaW52
YWxpZEFtb3VudHMuY29uY2F0KFsKKyAgIi0xIiwKKyAgIi0xLjAiLAorICAiLTEuMDAiLAorICAi
LTEwMDAuMDAwIiwKKyAgLTEwLAorXSk7Cit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7Cisg
IGZvciAoY29uc3QgaW52YWxpZEFtb3VudCBvZiBpbnZhbGlkVG90YWxBbW91bnRzKSB7CisgICAg
Y29uc3QgaW52YWxpZERldGFpbHMgPSB7CisgICAgICB0b3RhbDogeworICAgICAgICBsYWJlbDog
IiIsCisgICAgICAgIGFtb3VudDogeworICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAg
ICAgICB2YWx1ZTogaW52YWxpZEFtb3VudCwKKyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgfTsK
KyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgVHlwZUVycm9yLAorICAgICAgKCkgPT4gewor
ICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGludmFsaWREZXRhaWxz
KTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0IFR5cGVFcnJvciB3aGVuIGRldGFpbHMudG90YWwu
YW1vdW50LnZhbHVlIGlzICR7aW52YWxpZEFtb3VudH1gCisgICAgKTsKKyAgfQorfSwgYElmIGRl
dGFpbHMudG90YWwuYW1vdW50LnZhbHVlIGlzIG5vdCBhIHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkg
dmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3JgKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tl
VGVzdCgpOworICBmb3IgKGNvbnN0IHByb3AgaW4gWyJkaXNwbGF5SXRlbXMiLCAic2hpcHBpbmdP
cHRpb25zIiwgIm1vZGlmaWVycyJdKSB7CisgICAgdHJ5IHsKKyAgICAgIGNvbnN0IGRldGFpbHMg
PSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBbcHJvcF06IFtdIH0pOworICAg
ICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGFz
c2VydF91bnJlYWNoZWQoYFBheW1lbnREZXRhaWxzQmFzZS4ke3Byb3B9IGNhbiBiZSB6ZXJvIGxl
bmd0aGApOworICAgIH0gY2F0Y2ggKGVycikge30KKyAgfQorfSwgYFBheW1lbnREZXRhaWxzQmFz
ZSBtZW1iZXJzIGNhbiBiZSAwIGxlbmd0aGApOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0
KCk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiB7CisgICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCB7CisgICAgICB0b3RhbDogeworICAgICAgICBsYWJl
bDogIiIsCisgICAgICAgIGFtb3VudDogeworICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAg
ICAgICAgICB2YWx1ZTogIi0xLjAwIiwKKyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgfSk7Cisg
IH0pOworfSwgIklmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgZGV0YWlscy50b3RhbC5hbW91bnQu
dmFsdWUgaXMgVSswMDJEIEhZUEhFTi1NSU5VUywgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOwor
Cit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGZvciAoY29uc3QgaW52YWxpZEFtb3Vu
dCBvZiBpbnZhbGlkQW1vdW50cykgeworICAgIGNvbnN0IGludmFsaWREZXRhaWxzID0geworICAg
ICAgdG90YWw6IGRlZmF1bHRBbW91bnQsCisgICAgICBkaXNwbGF5SXRlbXM6IFsKKyAgICAgICAg
eworICAgICAgICAgIGxhYmVsOiAiIiwKKyAgICAgICAgICBhbW91bnQ6IHsKKyAgICAgICAgICAg
IGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICAgIHZhbHVlOiBpbnZhbGlkQW1vdW50LAorICAg
ICAgICAgIH0sCisgICAgICAgIH0sCisgICAgICBdLAorICAgIH07CisgICAgYXNzZXJ0X3Rocm93
c19qcygKKyAgICAgIFR5cGVFcnJvciwKKyAgICAgICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBpbnZhbGlkRGV0YWlscyk7CisgICAgICB9LAorICAg
ICAgYEV4cGVjdGVkIFR5cGVFcnJvciB3aGVuIGl0ZW0uYW1vdW50LnZhbHVlIGlzICIke2ludmFs
aWRBbW91bnR9ImAKKyAgICApOworICB9Cit9LCBgRm9yIGVhY2ggaXRlbSBpbiBkZXRhaWxzLmRp
c3BsYXlJdGVtczogaWYgaXRlbS5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBt
b25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvcmApOworCit0ZXN0KCgpID0+IHsK
KyAgc21va2VUZXN0KCk7CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KAorICAgICAg
WworICAgICAgICB7CisgICAgICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21h
aW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAgICAgIH0sCisgICAgICBd
LAorICAgICAgeworICAgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgICBkaXNwbGF5
SXRlbXM6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogIiIsCisgICAgICAgICAg
ICBhbW91bnQ6IHsKKyAgICAgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgICAgICAg
ICB2YWx1ZTogIi0xMDAwIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSwKKyAgICAgICAg
ICB7CisgICAgICAgICAgICBsYWJlbDogIiIsCisgICAgICAgICAgICBhbW91bnQ6IHsKKyAgICAg
ICAgICAgICAgY3VycmVuY3k6ICJBVUQiLAorICAgICAgICAgICAgICB2YWx1ZTogIi0yMDAwLjAw
IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSwKKyAgICAgICAgXSwKKyAgICAgIH0KKyAg
ICApOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgYHNo
b3VsZG4ndCB0aHJvdyB3aGVuIGdpdmVuIGEgbmVnYXRpdmUgdmFsdWU6ICR7ZXJyLm1lc3NhZ2V9
YAorICAgICk7CisgIH0KK30sICJOZWdhdGl2ZSB2YWx1ZXMgYXJlIGFsbG93ZWQgZm9yIGRpc3Bs
YXlJdGVtcy5hbW91bnQudmFsdWUsIGlycmVzcGVjdGl2ZSBvZiB0b3RhbCBhbW91bnQiKTsKKwor
dGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBsYXJnZU1vbmV5ID0gIjEiLnJl
cGVhdCg1MTApOworICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgeworICAgICAgdG90YWw6IHsKKyAgICAgICAgbGFiZWw6ICIiLAorICAgICAgICBhbW91bnQ6
IHsKKyAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICAgICAgdmFsdWU6IGAke2xhcmdl
TW9uZXl9LiR7bGFyZ2VNb25leX1gLAorICAgICAgICB9LAorICAgICAgfSwKKyAgICAgIGRpc3Bs
YXlJdGVtczogWworICAgICAgICB7CisgICAgICAgICAgbGFiZWw6ICIiLAorICAgICAgICAgIGFt
b3VudDogeworICAgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgICAgICAgdmFsdWU6
IGAtJHtsYXJnZU1vbmV5fWAsCisgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgIGxhYmVsOiAiIiwKKyAgICAgICAgICBhbW91bnQ6IHsKKyAgICAgICAgICAgIGN1
cnJlbmN5OiAiQVVEIiwKKyAgICAgICAgICAgIHZhbHVlOiBgLSR7bGFyZ2VNb25leX0uJHtsYXJn
ZU1vbmV5fWAsCisgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgIF0sCisgICAgfSk7Cisg
IH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICBgc2hvdWxkbid0
IHRocm93IHdoZW4gZ2l2ZW4gYWJzdXJkIG1vbmV0YXJ5IHZhbHVlczogJHtlcnIubWVzc2FnZX1g
CisgICAgKTsKKyAgfQorfSwgIml0IGhhbmRsZXMgaGlnaCBwcmVjaXNpb24gY3VycmVuY3kgdmFs
dWVzIHdpdGhvdXQgdGhyb3dpbmciKTsKKworLy8gUHJvY2VzcyBzaGlwcGluZyBvcHRpb25zOgor
Citjb25zdCBkZWZhdWx0U2hpcHBpbmdPcHRpb24gPSBPYmplY3QuZnJlZXplKHsKKyAgaWQ6ICJk
ZWZhdWx0IiwKKyAgbGFiZWw6ICIiLAorICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCisgIHNlbGVj
dGVkOiBmYWxzZSwKK30pOworY29uc3QgZGVmYXVsdFNoaXBwaW5nT3B0aW9ucyA9IE9iamVjdC5m
cmVlemUoWworICBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pLAorXSk7
CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgZm9yIChjb25zdCBhbW91bnQgb2Yg
aW52YWxpZEFtb3VudHMpIHsKKyAgICBjb25zdCBpbnZhbGlkQW1vdW50ID0gT2JqZWN0LmFzc2ln
bih7fSwgZGVmYXVsdEFtb3VudCwgeworICAgICAgdmFsdWU6IGFtb3VudCwKKyAgICB9KTsKKyAg
ICBjb25zdCBpbnZhbGlkU2hpcHBpbmdPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0
U2hpcHBpbmdPcHRpb24sIHsKKyAgICAgIGFtb3VudDogaW52YWxpZEFtb3VudCwKKyAgICB9KTsK
KyAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsK
KyAgICAgIHNoaXBwaW5nT3B0aW9uczogW2ludmFsaWRTaGlwcGluZ09wdGlvbl0sCisgICAgfSk7
CisgICAgYXNzZXJ0X3Rocm93c19qcygKKyAgICAgIFR5cGVFcnJvciwKKyAgICAgICgpID0+IHsK
KyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJl
cXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0ZWQgVHlwZUVy
cm9yIGZvciBvcHRpb24uYW1vdW50LnZhbHVlOiAiJHthbW91bnR9ImAKKyAgICApOworICB9Cit9
LCBgRm9yIGVhY2ggb3B0aW9uIGluIGRldGFpbHMuc2hpcHBpbmdPcHRpb25zOiBpZiBvcHRpb24u
YW1vdW50LnZhbHVlIGlzIG5vdCBhIHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkgdmFsdWUsIHRoZW4g
dGhyb3cgYSBUeXBlRXJyb3JgKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBj
b25zdCBzaGlwcGluZ09wdGlvbnMgPSBbZGVmYXVsdFNoaXBwaW5nT3B0aW9uXTsKKyAgY29uc3Qg
ZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0
aW9ucyB9KTsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgZGV0YWlscyk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdC5zaGlwcGluZ09w
dGlvbiwKKyAgICBudWxsLAorICAgICJzaGlwcGluZ09wdGlvbiBtdXN0IGJlIG51bGwsIGFzIHJl
cXVlc3RTaGlwcGluZyBpcyBtaXNzaW5nIgorICApOworICAvLyBkZWZhdWx0RGV0YWlscyBsYWNr
cyBzaGlwcGluZyBvcHRpb25zCisgIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgeworICAgIHJlcXVlc3RTaGlwcGluZzog
dHJ1ZSwKKyAgfSk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdDIuc2hpcHBpbmdPcHRp
b24sCisgICAgbnVsbCwKKyAgICBgcmVxdWVzdDIuc2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxs
YAorICApOworfSwgIklmIHRoZXJlIGlzIG5vIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbiwgdGhl
biBQYXltZW50UmVxdWVzdC5zaGlwcGluZ09wdGlvbiByZW1haW5zIG51bGwiKTsKKwordGVzdCgo
KSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IE9iamVjdC5h
c3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgeworICAgIHNlbGVjdGVkOiB0cnVlLAor
ICAgIGlkOiAidGhlLWlkIiwKKyAgfSk7CisgIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtzZWxl
Y3RlZE9wdGlvbl07CisgIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0
RGV0YWlscywgeyBzaGlwcGluZ09wdGlvbnMgfSk7CisgIGNvbnN0IHJlcXVlc3ROb1NoaXBwaW5n
UmVxdWVzdGVkMSA9IG5ldyBQYXltZW50UmVxdWVzdCgKKyAgICBkZWZhdWx0TWV0aG9kcywKKyAg
ICBkZXRhaWxzCisgICk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdE5vU2hpcHBpbmdS
ZXF1ZXN0ZWQxLnNoaXBwaW5nT3B0aW9uLAorICAgIG51bGwsCisgICAgIk11c3QgYmUgbnVsbCB3
aGVuIG5vIHNoaXBwaW5nIGlzIHJlcXVlc3RlZCAoZGVmYXVsdHMgdG8gZmFsc2UpIgorICApOwor
ICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZ1JlcXVlc3RlZDIgPSBuZXcgUGF5bWVudFJlcXVlc3Qo
CisgICAgZGVmYXVsdE1ldGhvZHMsCisgICAgZGV0YWlscywKKyAgICB7IHJlcXVlc3RTaGlwcGlu
ZzogZmFsc2UgfQorICApOworICBhc3NlcnRfZXF1YWxzKAorICAgIHJlcXVlc3ROb1NoaXBwaW5n
UmVxdWVzdGVkMi5zaGlwcGluZ09wdGlvbiwKKyAgICBudWxsLAorICAgICJNdXN0IGJlIG51bGwg
d2hlbiByZXF1ZXN0U2hpcHBpbmcgaXMgZmFsc2UiCisgICk7CisgIGNvbnN0IHJlcXVlc3RXaXRo
U2hpcHBpbmcgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsK
KyAgICByZXF1ZXN0U2hpcHBpbmc6ICJ0cnV0aHkgdmFsdWUiLAorICB9KTsKKyAgYXNzZXJ0X2Vx
dWFscygKKyAgICByZXF1ZXN0V2l0aFNoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAorICAgICJ0aGUt
aWQiLAorICAgICJTZWxlY3RlZCBvcHRpb24gbXVzdCBiZSAndGhlLWlkJyIKKyAgKTsKK30sICJJ
ZiB0aGVyZSBpcyBhIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbiwgYW5kIHJlcXVlc3RTaGlwcGlu
ZyBpcyBzZXQsIHRoZW4gdGhhdCBvcHRpb24gYmVjb21lcyBzeW5jaHJvbm91c2x5IHNlbGVjdGVk
Iik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgZmFpbE9wdGlvbjEg
PSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKKyAgICBzZWxlY3Rl
ZDogdHJ1ZSwKKyAgICBpZDogIkZBSUwxIiwKKyAgfSk7CisgIGNvbnN0IGZhaWxPcHRpb24yID0g
T2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uLCB7CisgICAgc2VsZWN0ZWQ6
IGZhbHNlLAorICAgIGlkOiAiRkFJTDIiLAorICB9KTsKKyAgY29uc3QgcGFzc09wdGlvbiA9IE9i
amVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgeworICAgIHNlbGVjdGVkOiB0
cnVlLAorICAgIGlkOiAidGhlLWlkIiwKKyAgfSk7CisgIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9
IFtmYWlsT3B0aW9uMSwgZmFpbE9wdGlvbjIsIHBhc3NPcHRpb25dOworICBjb25zdCBkZXRhaWxz
ID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0p
OworICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscywgeworICAgIHJlcXVlc3RTaGlwcGluZzogZmFsc2UsCisgIH0pOwor
ICBhc3NlcnRfZXF1YWxzKAorICAgIHJlcXVlc3ROb1NoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAor
ICAgIG51bGwsCisgICAgInNoaXBwaW5nT3B0aW9uIG11c3QgYmUgbnVsbCwgYXMgcmVxdWVzdFNo
aXBwaW5nIGlzIGZhbHNlIgorICApOworICBjb25zdCByZXF1ZXN0V2l0aFNoaXBwaW5nID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7CisgICAgcmVxdWVzdFNo
aXBwaW5nOiB0cnVlLAorICB9KTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0V2l0aFNo
aXBwaW5nLnNoaXBwaW5nT3B0aW9uLAorICAgICJ0aGUtaWQiLAorICAgICJzZWxlY3RlZCBvcHRp
b24gbXVzdCAndGhlLWlkIgorICApOworfSwgIklmIHJlcXVlc3RTaGlwcGluZyBpcyBzZXQsIGFu
ZCBpZiB0aGVyZSBpcyBhIG11bHRpcGxlIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbnMsIG9ubHkg
dGhlIGxhc3QgaXMgc2VsZWN0ZWQuIik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsK
KyAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBp
bmdPcHRpb24sIHsKKyAgICBzZWxlY3RlZDogdHJ1ZSwKKyAgfSk7CisgIGNvbnN0IHVuc2VsZWN0
ZWRPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKKyAg
ICBzZWxlY3RlZDogZmFsc2UsCisgIH0pOworICBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSBbc2Vs
ZWN0ZWRPcHRpb24sIHVuc2VsZWN0ZWRPcHRpb25dOworICBjb25zdCBkZXRhaWxzID0gT2JqZWN0
LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOworICBjb25z
dCByZXF1ZXN0Tm9TaGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywg
ZGV0YWlscyk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdE5vU2hpcHBpbmcuc2hpcHBp
bmdPcHRpb24sCisgICAgbnVsbCwKKyAgICAic2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxsLCBi
ZWNhdXNlIHJlcXVlc3RTaGlwcGluZyBpcyBmYWxzZSIKKyAgKTsKKyAgYXNzZXJ0X3Rocm93c19q
cygKKyAgICBUeXBlRXJyb3IsCisgICAgKCkgPT4geworICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKKyAg
ICB9LAorICAgICJFeHBlY3RlZCB0byB0aHJvdyBhIFR5cGVFcnJvciBiZWNhdXNlIGR1cGxpY2F0
ZSBJRHMiCisgICk7Cit9LCAiSWYgdGhlcmUgYXJlIGFueSBkdXBsaWNhdGUgc2hpcHBpbmcgb3B0
aW9uIGlkcywgYW5kIHNoaXBwaW5nIGlzIHJlcXVlc3RlZCwgdGhlbiB0aHJvdyBhIFR5cGVFcnJv
ciIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IGR1cFNoaXBwaW5n
MSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgeworICAgIHNlbGVj
dGVkOiB0cnVlLAorICAgIGlkOiAiRFVQTElDQVRFIiwKKyAgICBsYWJlbDogIkZhaWwgMSIsCisg
IH0pOworICBjb25zdCBkdXBTaGlwcGluZzIgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hp
cHBpbmdPcHRpb24sIHsKKyAgICBzZWxlY3RlZDogZmFsc2UsCisgICAgaWQ6ICJEVVBMSUNBVEUi
LAorICAgIGxhYmVsOiAiRmFpbCAyIiwKKyAgfSk7CisgIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9
IFtkdXBTaGlwcGluZzEsIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgZHVwU2hpcHBpbmcyXTsKKyAg
Y29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBw
aW5nT3B0aW9ucyB9KTsKKyAgY29uc3QgcmVxdWVzdE5vU2hpcHBpbmcgPSBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOworICBhc3NlcnRfZXF1YWxzKAorICAgIHJl
cXVlc3ROb1NoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAorICAgIG51bGwsCisgICAgInNoaXBwaW5n
T3B0aW9uIG11c3QgYmUgbnVsbCwgYmVjYXVzZSByZXF1ZXN0U2hpcHBpbmcgaXMgZmFsc2UiCisg
ICk7CisgIGFzc2VydF90aHJvd3NfanMoCisgICAgVHlwZUVycm9yLAorICAgICgpID0+IHsKKyAg
ICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0
U2hpcHBpbmc6IHRydWUgfSk7CisgICAgfSwKKyAgICAiRXhwZWN0ZWQgdG8gdGhyb3cgYSBUeXBl
RXJyb3IgYmVjYXVzZSBkdXBsaWNhdGUgSURzIgorICApOworfSwgIlRocm93IHdoZW4gdGhlcmUg
YXJlIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbiBpZHMsIGV2ZW4gaWYgb3RoZXIgdmFsdWVzIGFy
ZSBkaWZmZXJlbnQiKTsKKworLy8gUHJvY2VzcyBwYXltZW50IGRldGFpbHMgbW9kaWZpZXJzOgor
dGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBmb3IgKGNvbnN0IGludmFsaWRUb3RhbCBv
ZiBpbnZhbGlkVG90YWxBbW91bnRzKSB7CisgICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0gewor
ICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19
L3BheW1lbnQtcmVxdWVzdCIsCisgICAgICB0b3RhbDogeworICAgICAgICBsYWJlbDogIiIsCisg
ICAgICAgIGFtb3VudDogeworICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICB2
YWx1ZTogaW52YWxpZFRvdGFsLAorICAgICAgICB9LAorICAgICAgfSwKKyAgICB9OworICAgIGFz
c2VydF90aHJvd3NfanMoCisgICAgICBUeXBlRXJyb3IsCisgICAgICAoKSA9PiB7CisgICAgICAg
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgeworICAgICAgICAgIG1vZGlmaWVy
czogW2ludmFsaWRNb2RpZmllcl0sCisgICAgICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAg
ICAgICAgfSk7CisgICAgICB9LAorICAgICAgYEV4cGVjdGVkIFR5cGVFcnJvciBmb3IgbW9kaWZp
ZXIudG90YWwuYW1vdW50LnZhbHVlOiAiJHtpbnZhbGlkVG90YWx9ImAKKyAgICApOworICB9Cit9
LCBgVGhyb3cgVHlwZUVycm9yIGlmIG1vZGlmaWVyLnRvdGFsLmFtb3VudC52YWx1ZSBpcyBub3Qg
YSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlYCk7CisKK3Rlc3QoKCkgPT4geworICBzbW9r
ZVRlc3QoKTsKKyAgZm9yIChjb25zdCBpbnZhbGlkQW1vdW50IG9mIGludmFsaWRBbW91bnRzKSB7
CisgICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0geworICAgICAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAg
ICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgYWRkaXRpb25hbERpc3BsYXlJdGVtczogWwor
ICAgICAgICB7CisgICAgICAgICAgbGFiZWw6ICIiLAorICAgICAgICAgIGFtb3VudDogeworICAg
ICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgICAgICAgdmFsdWU6IGludmFsaWRBbW91
bnQsCisgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgIF0sCisgICAgfTsKKyAgICBhc3Nl
cnRfdGhyb3dzX2pzKAorICAgICAgVHlwZUVycm9yLAorICAgICAgKCkgPT4geworICAgICAgICBu
ZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIHsKKyAgICAgICAgICBtb2RpZmllcnM6
IFtpbnZhbGlkTW9kaWZpZXJdLAorICAgICAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAg
ICAgIH0pOworICAgICAgfSwKKyAgICAgIGBFeHBlY3RlZCBUeXBlRXJyb3Igd2hlbiBnaXZlbiBi
b2d1cyBtb2RpZmllci5hZGRpdGlvbmFsRGlzcGxheUl0ZW1zLmFtb3VudCBvZiAiJHtpbnZhbGlk
TW9kaWZpZXJ9ImAKKyAgICApOworICB9Cit9LCBgSWYgYW1vdW50LnZhbHVlIG9mIGFkZGl0aW9u
YWxEaXNwbGF5SXRlbXMgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhl
biB0aHJvdyBhIFR5cGVFcnJvcmApOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7Cisg
IGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxz
LCB7CisgICAgbW9kaWZpZXJzOiBbCisgICAgICB7CisgICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAg
ICAgICBkYXRhOiBbInNvbWUtZGF0YSJdLAorICAgICAgfSwKKyAgICBdLAorICB9KTsKKyAgdHJ5
IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG1vZGlmaWVkRGV0YWls
cyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICBgVW5l
eHBlY3RlZCBleGNlcHRpb24gdGhyb3duIHdoZW4gZ2l2ZW4gYSBsaXN0OiAke2Vyci5tZXNzYWdl
fWAKKyAgICApOworICB9Cit9LCAiTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXph
YmxlIG9iamVjdCAoYW4gQXJyYXkgaW4gdGhpcyBjYXNlKSIpOworCit0ZXN0KCgpID0+IHsKKyAg
c21va2VUZXN0KCk7CisgIGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30s
IGRlZmF1bHREZXRhaWxzLCB7CisgICAgbW9kaWZpZXJzOiBbCisgICAgICB7CisgICAgICAgIHN1
cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50
LXJlcXVlc3QiLAorICAgICAgICBkYXRhOiB7CisgICAgICAgICAgc29tZTogImRhdGEiLAorICAg
ICAgICB9LAorICAgICAgfSwKKyAgICBdLAorICB9KTsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG1vZGlmaWVkRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVy
cikgeworICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICBgc2hvdWxkbid0IHRocm93IHdoZW4g
Z2l2ZW4gYW4gb2JqZWN0IHZhbHVlOiAke2Vyci5tZXNzYWdlfWAKKyAgICApOworICB9Cit9LCAi
TW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAoYW4gT2JqZWN0
IGluIHRoaXMgY2FzZSkiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25z
dCByZWN1cnNpdmVEaWN0aW9uYXJ5ID0ge307CisgIHJlY3Vyc2l2ZURpY3Rpb25hcnkuZm9vID0g
cmVjdXJzaXZlRGljdGlvbmFyeTsKKyAgY29uc3QgbW9kaWZpZWREZXRhaWxzID0gT2JqZWN0LmFz
c2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsKKyAgICBtb2RpZmllcnM6IFsKKyAgICAgIHsKKyAg
ICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19
L3BheW1lbnQtcmVxdWVzdCIsCisgICAgICAgIGRhdGE6IHJlY3Vyc2l2ZURpY3Rpb25hcnksCisg
ICAgICB9LAorICAgIF0sCisgIH0pOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkg
PT4geworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbW9kaWZpZWREZXRh
aWxzKTsKKyAgfSk7Cit9LCAiUmV0aHJvdyBhbnkgZXhjZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6
aW5nIG1vZGlmaWVyLmRhdGEiKTsKKworLy9TZXR0aW5nIFNoaXBwaW5nVHlwZSBhdHRyaWJ1dGUg
ZHVyaW5nIGNvbnN0cnVjdGlvbgordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBhc3Nl
cnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4geworICAgIG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHsKKyAgICAgIHNoaXBwaW5nVHlwZTogImlu
dmFsaWQiLAorICAgIH0pOworICB9KTsKK30sICJTaGlwcGluZyB0eXBlIHNob3VsZCBiZSB2YWxp
ZCIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IHJlcXVlc3QgPSBu
ZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7fSk7Cisg
IGFzc2VydF9lcXVhbHMocmVxdWVzdC5zaGlwcGluZ0FkZHJlc3MsIG51bGwsICJtdXN0IGJlIG51
bGwiKTsKK30sICJQYXltZW50UmVxdWVzdC5zaGlwcGluZ0FkZHJlc3MgbXVzdCBpbml0aWFsbHkg
YmUgbnVsbCIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IHJlcXVl
c3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywg
e30pOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QxLnNoaXBwaW5nVHlwZSwgbnVsbCwgIm11c3Qg
YmUgbnVsbCIpOworICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHsKKyAgICByZXF1ZXN0U2hpcHBpbmc6IGZhbHNlLAor
ICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0Mi5zaGlwcGluZ1R5cGUsIG51bGwsICJtdXN0
IGJlIG51bGwiKTsKK30sICJJZiBvcHRpb25zLnJlcXVlc3RTaGlwcGluZyBpcyBub3Qgc2V0LCB0
aGVuIHJlcXVlc3Quc2hpcHBpbmdUeXBlIGF0dHJpYnV0ZSBpcyBudWxsLiIpOworCit0ZXN0KCgp
ID0+IHsKKyAgc21va2VUZXN0KCk7CisgIC8vIG9wdGlvbi5zaGlwcGluZ1R5cGUgZGVmYXVsdHMg
dG8gJ3NoaXBwaW5nJworICBjb25zdCByZXF1ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHsKKyAgICByZXF1ZXN0U2hpcHBpbmc6IHRydWUs
CisgIH0pOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QxLnNoaXBwaW5nVHlwZSwgInNoaXBwaW5n
IiwgIm11c3QgYmUgc2hpcHBpbmciKTsKKyAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7CisgICAgcmVxdWVzdFNoaXBw
aW5nOiB0cnVlLAorICAgIHNoaXBwaW5nVHlwZTogImRlbGl2ZXJ5IiwKKyAgfSk7CisgIGFzc2Vy
dF9lcXVhbHMocmVxdWVzdDIuc2hpcHBpbmdUeXBlLCAiZGVsaXZlcnkiLCAibXVzdCBiZSBkZWxp
dmVyeSIpOworfSwgIklmIG9wdGlvbnMucmVxdWVzdFNoaXBwaW5nIGlzIHRydWUsIHJlcXVlc3Qu
c2hpcHBpbmdUeXBlIHdpbGwgYmUgb3B0aW9ucy5zaGlwcGluZ1R5cGUuIik7CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVj
a3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLWN1cnJlbmN5LWNvZGUtY2hl
Y2tzLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NDE2ODNiZWI1
MTVkNWE5ZDYwN2IxZmVhYWY1MzQ0ZDc1NTZlMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29k
ZS1jaGVja3MuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzOSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGN1cnJlbmN5
IGNvZGUgdXNhZ2UgaW4gUGF5bWVudFJlcXVlc3QgQ29uc3RydWN0b3I8L3RpdGxlPgotPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFw
aS8jY29uc3RydWN0b3IiPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWNvbnN0IGRlZmF1bHRNZXRob2RzID0gWwotICBPYmplY3Qu
ZnJlZXplKHsKLSAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpIiwKLSAgfSks
Ci1dOwotY29uc3QgZGVmYXVsdEFtb3VudCA9IE9iamVjdC5mcmVlemUoewotICBjdXJyZW5jeTog
IlVTRCIsCi0gIHZhbHVlOiAiMS4wMCIsCi19KTsKLWNvbnN0IGRlZmF1bHRUb3RhbCA9IE9iamVj
dC5mcmVlemUoewotICBsYWJlbDogIlRvdGFsIiwKLSAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAot
fSk7Ci0KLWNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHRvdGFsOiBP
YmplY3QuZnJlZXplKHsKLSAgICBsYWJlbDogIiIsCi0gICAgYW1vdW50OiBkZWZhdWx0QW1vdW50
LAotICB9KSwKLX0pOwotCi0vLyBUaGUgZm9sbG93aW5nIGFyZSB0aGUgc2FtZSBzZXQgb2YgdmFs
aWQvaW52YWxpZCBjb2RlcyB0aGF0IGFyZSB1c2VkIGluCi0vLyB0aGUgRUNNQVNjcmlwdCBJbnRl
cm5hdGlvbmFsaXphdGlvbiBBUEkgU3BlY2lmaWNhdGlvbiAoRUNNQS00MDIpIHRlc3Qgc3VpdGUu
Ci1jb25zdCB3ZWxsRm9ybWVkQ3VycmVuY3lDb2RlcyA9IFsKLSAgIkJPQiIsCi0gICJFVVIiLAot
ICAidXNkIiwgLy8gY3VycmVuY3kgY29kZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUKLSAgIlhkUiIs
Ci0gICJ4VHMiLAotXTsKLQotY29uc3QgaW52YWxpZEN1cnJlbmN5Q29kZXMgPSBbCi0gICIiLAot
ICAi4oKsIiwKLSAgIiQiLAotICAiU0ZyLiIsCi0gICJETSIsCi0gICJLUuKCqSIsCi0gICI3MDIi
LAotICAiw59QIiwKLSAgIsSxbnIiLAotXTsKLQotY29uc3QgUkFOR0VfRVJST1IgPSBuZXcgUmFu
Z2VFcnJvcigpOwotCi1jb25zdCBpbnZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGN1
cnJlbmN5OiAiwqFJTlZBTElEISIsCi0gIHZhbHVlOiAiMS4wMCIsCi19KTsKLQotY29uc3QgaW52
YWxpZFRvdGFsID0gewotICB0b3RhbDogewotICAgIGxhYmVsOiAiSW52YWxpZCB0b3RhbCIsCi0g
ICAgYW1vdW50OiBpbnZhbGlkQW1vdW50LAotICB9LAotfTsKLQotLy8gRW5zdXJlIHdlIGRvbid0
IGdldCBmYWxzZSBwb3NpdGl2ZXMKLWZ1bmN0aW9uIHNtb2tlVGVzdCgpIHsKLSAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBpbnZhbGlkVG90YWwpOwotfQotCi0vLyBQcm9jZXNz
IHRoZSB0b3RhbDoKLXRlc3QoKCkgPT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VSUk9SLCBz
bW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBmb3IgKGNvbnN0
IHZhbGlkQ3VycmVuY3kgb2Ygd2VsbEZvcm1lZEN1cnJlbmN5Q29kZXMpIHsKLSAgICBjb25zdCBh
bW91bnQgPSB7Ci0gICAgICBjdXJyZW5jeTogdmFsaWRDdXJyZW5jeSwKLSAgICAgIHZhbHVlOiAi
MS4wMCIsCi0gICAgfTsKLSAgICBjb25zdCB0b3RhbCA9IHsKLSAgICAgIGxhYmVsOiAiVG90YWwi
LAotICAgICAgYW1vdW50LAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRv
dGFsLAotICAgIH07Ci0gICAgdHJ5IHsKLSAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscyk7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICBhc3NlcnRfdW5y
ZWFjaGVkKAotICAgICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24gZm9yIGRldGFpbHMudG90YWwu
YW1vdW50ICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCi0gICAgICApOwotICAg
IH0KLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy50b3RhbC5h
bW91bnQiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNt
b2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29uc3Qg
aW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYW1v
dW50ID0gewotICAgICAgY3VycmVuY3k6IGludmFsaWRDdXJyZW5jeSwKLSAgICAgIHZhbHVlOiAi
MS4wMCIsCi0gICAgfTsKLSAgICBjb25zdCB0b3RhbCA9IHsKLSAgICAgIGxhYmVsOiAiVG90YWwi
LAotICAgICAgYW1vdW50LAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRv
dGFsLAotICAgIH07Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAgICAgIFJBTkdFX0VSUk9SLAotICAg
ICAgKCkgPT4gewotICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
dGFpbHMpOwotICAgICAgfSwKLSAgICAgIGBFeHBlY3RlZCBSYW5nZUVycm9yIGZvciBkZXRhaWxz
LnRvdGFsLmFtb3VudCBnaXZlbiAoIiR7aW52YWxpZEN1cnJlbmN5fSIpLmAKLSAgICApOwotICB9
Ci19LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIGRldGFpbHMudG90YWwuYW1vdW50
IGFuZCByZXRocm93IGFueSBleGNlcHRpb25zLiIpOwotCi0vLyBJZiB0aGUgZGlzcGxheUl0ZW1z
IG1lbWJlciBvZiBkZXRhaWxzIGlzIHByZXNlbnQsIHRoZW4gZm9yIGVhY2ggaXRlbSBpbiBkZXRh
aWxzLmRpc3BsYXlJdGVtczoKLXRlc3QoKCkgPT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VS
Uk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBjb25z
dCBkaXNwbGF5SXRlbXMgPSBbXTsKLSAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxG
b3JtZWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYW1vdW50ID0gewotICAgICAgY3VycmVu
Y3k6IHZhbGlkQ3VycmVuY3ksCi0gICAgICB2YWx1ZTogIjEyMyIsCi0gICAgfTsKLSAgICBjb25z
dCBkaXNwbGF5SXRlbSA9IHsKLSAgICAgIGFtb3VudCwKLSAgICAgIGxhYmVsOiAidmFsaWQgY3Vy
cmVuY3kiLAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZh
dWx0VG90YWwsCi0gICAgICBkaXNwbGF5SXRlbXM6IFtkaXNwbGF5SXRlbV0sCi0gICAgfTsKLSAg
ICB0cnkgewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxz
KTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICAg
IGBVbmV4cGVjdGVkIGVycm9yIHdpdGggZGlzcGxheUl0ZW0gdGhhdCBoYWQgYSB2YWxpZCBjdXJy
ZW5jeSAiJHt2YWxpZEN1cnJlbmN5fSI6ICR7ZXJyLm1lc3NhZ2V9YAotICAgICAgKTsKLSAgICB9
Ci0gICAgZGlzcGxheUl0ZW1zLnB1c2goZGlzcGxheUl0ZW0pOwotICB9Ci0gIC8vIExldCdzIG1h
a2Ugc3VyZSBpdCBkb2Vzbid0IHRocm93IGdpdmVuIGEgbGlzdCBvZiB2YWxpZCBkaXNwbGF5SXRl
bXMKLSAgdHJ5IHsKLSAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVs
dERldGFpbHMsIHsgZGlzcGxheUl0ZW1zIH0pOwotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJl
YWNoZWQoCi0gICAgICBgVW5leHBlY3RlZCBlcnJvciB3aXRoIG11bHRpcGxlIHZhbGlkIGRpc3Bs
YXlJdGVtczogJHtlcnIubWVzc2FnZX1gCi0gICAgKTsKLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5v
bmljYWxpemUgdmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1vdW50Iik7Ci0KLXRlc3QoKCkg
PT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBz
bW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBmb3IgKGNvbnN0IGludmFsaWRDdXJyZW5jeSBvZiBp
bnZhbGlkQ3VycmVuY3lDb2RlcykgewotICAgIGNvbnN0IGFtb3VudCA9IHsKLSAgICAgIGN1cnJl
bmN5OiBpbnZhbGlkQ3VycmVuY3ksCi0gICAgICB2YWx1ZTogIjEyMyIsCi0gICAgfTsKLSAgICBj
b25zdCBkaXNwbGF5SXRlbSA9IHsKLSAgICAgIGFtb3VudCwKLSAgICAgIGxhYmVsOiAiaW52YWxp
ZCBjdXJyZW5jeSIsCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6
IGRlZmF1bHRUb3RhbCwKLSAgICAgIGRpc3BsYXlJdGVtczogW2Rpc3BsYXlJdGVtXSwKLSAgICB9
OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBSQU5HRV9FUlJPUiwKLSAgICAgICgpID0+IHsK
LSAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAg
ICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgZGlzcGxheUl0
ZW0gY3VycmVuY3kgIiR7aW52YWxpZEN1cnJlbmN5fSIuYAotICAgICk7Ci0gIH0KLX0sICJDaGVj
ayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1vdW50IGFu
ZCByZXRocm93IFJhbmdlRXJyb3IuIik7Ci0KLS8vIFByb2Nlc3Mgc2hpcHBpbmcgb3B0aW9uczoK
LXRlc3QoKCkgPT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJF
eHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBjb25zdCBzaGlwcGluZ09wdGlvbnMg
PSBbXTsKLSAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxGb3JtZWRDdXJyZW5jeUNv
ZGVzKSB7Ci0gICAgY29uc3Qgc2hpcHBpbmdPcHRpb24gPSB7Ci0gICAgICBpZDogYHRlc3RgICsg
TWF0aC5yYW5kb20oKSwKLSAgICAgIGxhYmVsOiAic2hpcHBpbmcgb3B0aW9uIiwKLSAgICAgIGFt
b3VudDogeyBjdXJyZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI1LjAwIiB9LAotICAgICAg
c2VsZWN0ZWQ6ICFzaGlwcGluZ09wdGlvbnMubGVuZ3RoLAotICAgIH07Ci0gICAgY29uc3QgZGV0
YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBzaGlwcGluZ09wdGlv
bnM6IFtzaGlwcGluZ09wdGlvbl0sCi0gICAgfTsKLSAgICB0cnkgewotICAgICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1
ZSB9KTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAg
ICAgIGBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aXRoIHZhbGlkIHNoaXBwaW5nT3B0aW9uIGN1cnJl
bmN5IGNvZGUgIiR7dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5tZXNzYWdlfS5gCi0gICAgICApOwot
ICAgIH0KLSAgICBzaGlwcGluZ09wdGlvbnMucHVzaChzaGlwcGluZ09wdGlvbik7Ci0gIH0KLSAg
dHJ5IHsKLSAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFp
bHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOwotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfSk7Ci0gIH0gY2F0Y2gg
KGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICBgVW5leHBlY3RlZCBlcnJvciB3
aXRoIG11bHRpcGxlIHZhbGlkIHNocHBpbmdPcHRpb25zOiAke2Vyci5tZXNzYWdlfS5gCi0gICAg
KTsKLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy5zaGlwcGlu
Z09wdGlvbnMgYW1vdW50LiIpOwotCi10ZXN0KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhSQU5H
RV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKLSAg
Zm9yIChjb25zdCBpbnZhbGlkQ3VycmVuY3kgb2YgaW52YWxpZEN1cnJlbmN5Q29kZXMpIHsKLSAg
ICBjb25zdCBzaGlwcGluZ09wdGlvbiA9IHsKLSAgICAgIGlkOiAidGVzdCIsCi0gICAgICBsYWJl
bDogInNoaXBwaW5nIG9wdGlvbiIsCi0gICAgICBhbW91bnQ6IHsgY3VycmVuY3k6IGludmFsaWRD
dXJyZW5jeSwgdmFsdWU6ICI1LjAwIiB9LAotICAgICAgc2VsZWN0ZWQ6IHRydWUsCi0gICAgfTsK
LSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAg
IHNoaXBwaW5nT3B0aW9uczogW3NoaXBwaW5nT3B0aW9uXSwKLSAgICB9OwotICAgIGFzc2VydF90
aHJvd3MoCi0gICAgICBSQU5HRV9FUlJPUiwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3IFBh
eW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzog
dHJ1ZSB9KTsKLSAgICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFs
aWQgc2hpcHBpbmdPcHRpb24gY3VycmVuY3kgY29kZSAiJHtpbnZhbGlkQ3VycmVuY3l9Ii5gCi0g
ICAgKTsKLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLnNo
aXBwaW5nT3B0aW9ucyBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4iKTsKLQotLy8gUHJv
Y2VzcyBwYXltZW50IGRldGFpbHMgbW9kaWZpZXJzOgotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90
aHJvd3MoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhy
b3cuIik7Ci0gIGZvciAoY29uc3QgdmFsaWRDdXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3VycmVuY3lD
b2RlcykgewotICAgIGNvbnN0IG1vZGlmaWVyID0gewotICAgICAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vd3B0LmZ5aSIsCi0gICAgICB0b3RhbDogewotICAgICAgICBsYWJlbDogIlRvdGFs
IGR1ZSIsCi0gICAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6
ICI2OC4wMCIgfSwKLSAgICAgIH0sCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAg
ICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKLSAg
ICB9OwotICAgIHRyeSB7Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGRldGFpbHMpOwotICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgK
LSAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0aCB2YWxpZCBtb2RpZmllciBjdXJyZW5jeSBj
b2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCi0gICAgICApOwotICAgIH0K
LSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgbW9kaWZpZXJzW25dLnRvdGFs
IGFtb3VudC4iKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1Is
IHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29u
c3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3Qg
bW9kaWZpZXIgPSB7Ci0gICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpIiwK
LSAgICAgIHRvdGFsOiB7Ci0gICAgICAgIGxhYmVsOiAiVG90YWwgZHVlIiwKLSAgICAgICAgYW1v
dW50OiB7IGN1cnJlbmN5OiBpbnZhbGlkQ3VycmVuY3ksIHZhbHVlOiAiNjguMDAiIH0sCi0gICAg
ICB9LAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZhdWx0
VG90YWwsCi0gICAgICBtb2RpZmllcnM6IFttb2RpZmllcl0sCi0gICAgfTsKLSAgICBhc3NlcnRf
dGhyb3dzKAotICAgICAgUkFOR0VfRVJST1IsCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQ
YXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICB9LAotICAgICAg
YEV4cGVjdGVkIFJhbmdlRXJyb3Igd2l0aCBpbnZhbGlkIG1vZGlmaWVyIGN1cnJlbmN5IGNvZGUg
IiR7aW52YWxpZEN1cnJlbmN5fSIuYAotICAgICk7Ci0gIH0KLX0sICJDaGVjayBhbmQgY2Fub25p
Y2FsaXplIGludmFsaWQgbW9kaWZpZXJzW25dLnRvdGFsIGFtb3VudCBhbmQgcmV0aHJvdyBSYW5n
ZUVycm9yLiIpOwotCi0vLyBQcm9jZXNzIHBheW1lbnQgZGV0YWlscyBtb2RpZmllcnM6Ci10ZXN0
KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0
ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKLSAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9m
IHdlbGxGb3JtZWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYWRkaXRpb25hbEl0ZW0gPSB7
Ci0gICAgICBsYWJlbDogImFkZGl0aW9uYWxJdGVtIiwKLSAgICAgIGFtb3VudDogeyBjdXJyZW5j
eTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6ICIzLjAwIiB9LAotICAgIH07Ci0gICAgY29uc3QgbW9k
aWZpZXIgPSB7Ci0gICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpIiwKLSAg
ICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBhZGRpdGlvbmFsRGlzcGxheUl0ZW1zOiBb
YWRkaXRpb25hbEl0ZW1dLAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRv
dGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBtb2RpZmllcnM6IFttb2RpZmllcl0sCi0gICAgfTsK
LSAgICB0cnkgewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRh
aWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAg
ICAgIGBVbmV4cGVjdGVkIGVycm9yIHdpdGggdmFsaWQgYWRkaXRpb25hbERpc3BsYXlJdGVtc1tu
XSBjdXJyZW5jeSBjb2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCi0gICAg
ICApOwotICAgIH0KLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgbW9kaWZp
ZXJzW25dLmFkZGl0aW9uYURpc3BsYXlJdGVtIGFtb3VudC4iKTsKLQotdGVzdCgoKSA9PiB7Ci0g
IGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRl
c3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRD
dXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYWRkaXRpb25hbEl0ZW0gPSB7Ci0gICAgICBsYWJl
bDogImFkZGl0aW9uYWxJdGVtIiwKLSAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogaW52YWxpZEN1
cnJlbmN5LCB2YWx1ZTogIjMuMDAiIH0sCi0gICAgfTsKLSAgICBjb25zdCBtb2RpZmllciA9IHsK
LSAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkiLAotICAgICAgdG90YWw6
IGRlZmF1bHRUb3RhbCwKLSAgICAgIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXM6IFthZGRpdGlvbmFs
SXRlbV0sCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6IGRlZmF1
bHRUb3RhbCwKLSAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKLSAgICB9OwotICAgIGFzc2Vy
dF90aHJvd3MoCi0gICAgICBSQU5HRV9FUlJPUiwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIH0sCi0gICAg
ICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgYWRkaXRpb25hbERpc3BsYXlJdGVt
c1tuXSBjdXJyZW5jeSBjb2RlICIke2ludmFsaWRDdXJyZW5jeX0iLmAKLSAgICApOwotICB9Ci19
LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIG1vZGlmaWVyc1tuXS5hZGRpdGlvbmFE
aXNwbGF5SXRlbSBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4iKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3Mu
aHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLWN1cnJlbmN5
LWNvZGUtY2hlY2tzLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE0NTE2YTRl
YjA3OGVjODhiYzIzZDYyNjFiZjQ3ZjQ0ZGM2NjliMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1jdG9yLWN1cnJlbmN5LWNvZGUtY2hlY2tzLmh0dHBzLnN1Yi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFs
aWQgZGV0YWlscy50b3RhbC5hbW91bnQgCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52
YWxpZCBkZXRhaWxzLnRvdGFsLmFtb3VudCBhbmQgcmV0aHJvdyBhbnkgZXhjZXB0aW9ucy4gCitQ
QVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1v
dW50IAorUEFTUyBDaGVjayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgZGV0YWlscy5kaXNwbGF5
SXRlbXMgYW1vdW50IGFuZCByZXRocm93IFJhbmdlRXJyb3IuIAorUEFTUyBDaGVjayBhbmQgY2Fu
b25pY2FsaXplIHZhbGlkIGRldGFpbHMuc2hpcHBpbmdPcHRpb25zIGFtb3VudC4gCitQQVNTIENo
ZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLnNoaXBwaW5nT3B0aW9ucyBhbW91
bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4gCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUg
dmFsaWQgbW9kaWZpZXJzW25dLnRvdGFsIGFtb3VudC4gCitQQVNTIENoZWNrIGFuZCBjYW5vbmlj
YWxpemUgaW52YWxpZCBtb2RpZmllcnNbbl0udG90YWwgYW1vdW50IGFuZCByZXRocm93IFJhbmdl
RXJyb3IuIAorUEFTUyBDaGVjayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIG1vZGlmaWVyc1tuXS5h
ZGRpdGlvbmFEaXNwbGF5SXRlbSBhbW91bnQuIAorUEFTUyBDaGVjayBhbmQgY2Fub25pY2FsaXpl
IGludmFsaWQgbW9kaWZpZXJzW25dLmFkZGl0aW9uYURpc3BsYXlJdGVtIGFtb3VudCBhbmQgcmV0
aHJvdyBSYW5nZUVycm9yLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3It
Y3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
Y3Rvci1jdXJyZW5jeS1jb2RlLWNoZWNrcy5odHRwcy5zdWIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGNh
MmEwYzQwYjM5YjNjOTIyMzQzYTlhNzQzNDFiNjlhMzM4NDU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLmh0
bWwKQEAgLTAsMCArMSwzMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPlRlc3QgY3VycmVuY3kgY29kZSB1c2FnZSBpbiBQYXltZW50UmVxdWVzdCBD
b25zdHJ1Y3RvcjwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9icm93c2VyLXBheW1lbnQtYXBpLyNjb25zdHJ1Y3RvciI+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3QgZGVm
YXVsdE1ldGhvZHMgPSBbCisgIE9iamVjdC5mcmVlemUoeworICAgIHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fSIsCisgIH0pLAorXTsKK2NvbnN0IGRl
ZmF1bHRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKKyAgY3VycmVuY3k6ICJVU0QiLAorICB2YWx1
ZTogIjEuMDAiLAorfSk7Citjb25zdCBkZWZhdWx0VG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAg
bGFiZWw6ICJUb3RhbCIsCisgIGFtb3VudDogZGVmYXVsdEFtb3VudCwKK30pOworCitjb25zdCBk
ZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogT2JqZWN0LmZyZWV6ZSh7
CisgICAgbGFiZWw6ICIiLAorICAgIGFtb3VudDogZGVmYXVsdEFtb3VudCwKKyAgfSksCit9KTsK
KworLy8gVGhlIGZvbGxvd2luZyBhcmUgdGhlIHNhbWUgc2V0IG9mIHZhbGlkL2ludmFsaWQgY29k
ZXMgdGhhdCBhcmUgdXNlZCBpbgorLy8gdGhlIEVDTUFTY3JpcHQgSW50ZXJuYXRpb25hbGl6YXRp
b24gQVBJIFNwZWNpZmljYXRpb24gKEVDTUEtNDAyKSB0ZXN0IHN1aXRlLgorY29uc3Qgd2VsbEZv
cm1lZEN1cnJlbmN5Q29kZXMgPSBbCisgICJCT0IiLAorICAiRVVSIiwKKyAgInVzZCIsIC8vIGN1
cnJlbmN5IGNvZGVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlCisgICJYZFIiLAorICAieFRzIiwKK107
CisKK2NvbnN0IGludmFsaWRDdXJyZW5jeUNvZGVzID0gWworICAiIiwKKyAgIuKCrCIsCisgICIk
IiwKKyAgIlNGci4iLAorICAiRE0iLAorICAiS1LigqkiLAorICAiNzAyIiwKKyAgIsOfUCIsCisg
ICLEsW5yIiwKK107CisKK2NvbnN0IFJBTkdFX0VSUk9SID0gUmFuZ2VFcnJvcjsKKworY29uc3Qg
aW52YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIsKhSU5WQUxJRCEi
LAorICB2YWx1ZTogIjEuMDAiLAorfSk7CisKK2NvbnN0IGludmFsaWRUb3RhbCA9IHsKKyAgdG90
YWw6IHsKKyAgICBsYWJlbDogIkludmFsaWQgdG90YWwiLAorICAgIGFtb3VudDogaW52YWxpZEFt
b3VudCwKKyAgfSwKK307CisKKy8vIEVuc3VyZSB3ZSBkb24ndCBnZXQgZmFsc2UgcG9zaXRpdmVz
CitmdW5jdGlvbiBzbW9rZVRlc3QoKSB7CisgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgaW52YWxpZFRvdGFsKTsKK30KKworLy8gUHJvY2VzcyB0aGUgdG90YWw6Cit0ZXN0KCgp
ID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0
ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKKyAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9m
IHdlbGxGb3JtZWRDdXJyZW5jeUNvZGVzKSB7CisgICAgY29uc3QgYW1vdW50ID0geworICAgICAg
Y3VycmVuY3k6IHZhbGlkQ3VycmVuY3ksCisgICAgICB2YWx1ZTogIjEuMDAiLAorICAgIH07Cisg
ICAgY29uc3QgdG90YWwgPSB7CisgICAgICBsYWJlbDogIlRvdGFsIiwKKyAgICAgIGFtb3VudCwK
KyAgICB9OworICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbCwKKyAgICB9OworICAg
IHRyeSB7CisgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMp
OworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICAg
YFVuZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBkZXRhaWxzLnRvdGFsLmFtb3VudCAiJHt2YWxpZEN1
cnJlbmN5fSI6ICR7ZXJyLm1lc3NhZ2V9YAorICAgICAgKTsKKyAgICB9CisgIH0KK30sICJDaGVj
ayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIGRldGFpbHMudG90YWwuYW1vdW50Iik7CisKK3Rlc3Qo
KCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBl
Y3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IGludmFsaWRDdXJyZW5j
eSBvZiBpbnZhbGlkQ3VycmVuY3lDb2RlcykgeworICAgIGNvbnN0IGFtb3VudCA9IHsKKyAgICAg
IGN1cnJlbmN5OiBpbnZhbGlkQ3VycmVuY3ksCisgICAgICB2YWx1ZTogIjEuMDAiLAorICAgIH07
CisgICAgY29uc3QgdG90YWwgPSB7CisgICAgICBsYWJlbDogIlRvdGFsIiwKKyAgICAgIGFtb3Vu
dCwKKyAgICB9OworICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbCwKKyAgICB9Owor
ICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICBSQU5HRV9FUlJPUiwKKyAgICAgICgpID0+IHsK
KyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAg
ICAgIH0sCisgICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciBmb3IgZGV0YWlscy50b3RhbC5hbW91
bnQgZ2l2ZW4gKCIke2ludmFsaWRDdXJyZW5jeX0iKS5gCisgICAgKTsKKyAgfQorfSwgIkNoZWNr
IGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLnRvdGFsLmFtb3VudCBhbmQgcmV0aHJv
dyBhbnkgZXhjZXB0aW9ucy4iKTsKKworLy8gSWYgdGhlIGRpc3BsYXlJdGVtcyBtZW1iZXIgb2Yg
ZGV0YWlscyBpcyBwcmVzZW50LCB0aGVuIGZvciBlYWNoIGl0ZW0gaW4gZGV0YWlscy5kaXNwbGF5
SXRlbXM6Cit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21v
a2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKKyAgY29uc3QgZGlzcGxh
eUl0ZW1zID0gW107CisgIGZvciAoY29uc3QgdmFsaWRDdXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3Vy
cmVuY3lDb2RlcykgeworICAgIGNvbnN0IGFtb3VudCA9IHsKKyAgICAgIGN1cnJlbmN5OiB2YWxp
ZEN1cnJlbmN5LAorICAgICAgdmFsdWU6ICIxMjMiLAorICAgIH07CisgICAgY29uc3QgZGlzcGxh
eUl0ZW0gPSB7CisgICAgICBhbW91bnQsCisgICAgICBsYWJlbDogInZhbGlkIGN1cnJlbmN5IiwK
KyAgICB9OworICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFs
LAorICAgICAgZGlzcGxheUl0ZW1zOiBbZGlzcGxheUl0ZW1dLAorICAgIH07CisgICAgdHJ5IHsK
KyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgICAg
fSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBl
Y3RlZCBlcnJvciB3aXRoIGRpc3BsYXlJdGVtIHRoYXQgaGFkIGEgdmFsaWQgY3VycmVuY3kgIiR7
dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5tZXNzYWdlfWAKKyAgICAgICk7CisgICAgfQorICAgIGRp
c3BsYXlJdGVtcy5wdXNoKGRpc3BsYXlJdGVtKTsKKyAgfQorICAvLyBMZXQncyBtYWtlIHN1cmUg
aXQgZG9lc24ndCB0aHJvdyBnaXZlbiBhIGxpc3Qgb2YgdmFsaWQgZGlzcGxheUl0ZW1zCisgIHRy
eSB7CisgICAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxz
LCB7IGRpc3BsYXlJdGVtcyB9KTsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhv
ZHMsIGRldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKAor
ICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0aCBtdWx0aXBsZSB2YWxpZCBkaXNwbGF5SXRlbXM6
ICR7ZXJyLm1lc3NhZ2V9YAorICAgICk7CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXpl
IHZhbGlkIGRldGFpbHMuZGlzcGxheUl0ZW1zIGFtb3VudCIpOworCit0ZXN0KCgpID0+IHsKKyAg
YXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2Ug
dGVzdCB0byB0aHJvdy4iKTsKKyAgZm9yIChjb25zdCBpbnZhbGlkQ3VycmVuY3kgb2YgaW52YWxp
ZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25zdCBhbW91bnQgPSB7CisgICAgICBjdXJyZW5jeTog
aW52YWxpZEN1cnJlbmN5LAorICAgICAgdmFsdWU6ICIxMjMiLAorICAgIH07CisgICAgY29uc3Qg
ZGlzcGxheUl0ZW0gPSB7CisgICAgICBhbW91bnQsCisgICAgICBsYWJlbDogImludmFsaWQgY3Vy
cmVuY3kiLAorICAgIH07CisgICAgY29uc3QgZGV0YWlscyA9IHsKKyAgICAgIHRvdGFsOiBkZWZh
dWx0VG90YWwsCisgICAgICBkaXNwbGF5SXRlbXM6IFtkaXNwbGF5SXRlbV0sCisgICAgfTsKKyAg
ICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgUkFOR0VfRVJST1IsCisgICAgICAoKSA9PiB7Cisg
ICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgICAg
ICB9LAorICAgICAgYEV4cGVjdGVkIFJhbmdlRXJyb3Igd2l0aCBpbnZhbGlkIGRpc3BsYXlJdGVt
IGN1cnJlbmN5ICIke2ludmFsaWRDdXJyZW5jeX0iLmAKKyAgICApOworICB9Cit9LCAiQ2hlY2sg
YW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIGRldGFpbHMuZGlzcGxheUl0ZW1zIGFtb3VudCBhbmQg
cmV0aHJvdyBSYW5nZUVycm9yLiIpOworCisvLyBQcm9jZXNzIHNoaXBwaW5nIG9wdGlvbnM6Cit0
ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAi
RXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKKyAgY29uc3Qgc2hpcHBpbmdPcHRpb25z
ID0gW107CisgIGZvciAoY29uc3QgdmFsaWRDdXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3VycmVuY3lD
b2RlcykgeworICAgIGNvbnN0IHNoaXBwaW5nT3B0aW9uID0geworICAgICAgaWQ6IGB0ZXN0YCAr
IE1hdGgucmFuZG9tKCksCisgICAgICBsYWJlbDogInNoaXBwaW5nIG9wdGlvbiIsCisgICAgICBh
bW91bnQ6IHsgY3VycmVuY3k6IHZhbGlkQ3VycmVuY3ksIHZhbHVlOiAiNS4wMCIgfSwKKyAgICAg
IHNlbGVjdGVkOiAhc2hpcHBpbmdPcHRpb25zLmxlbmd0aCwKKyAgICB9OworICAgIGNvbnN0IGRl
dGFpbHMgPSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgc2hpcHBpbmdPcHRp
b25zOiBbc2hpcHBpbmdPcHRpb25dLAorICAgIH07CisgICAgdHJ5IHsKKyAgICAgIG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRy
dWUgfSk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAg
ICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24gd2l0aCB2YWxpZCBzaGlwcGluZ09wdGlvbiBjdXJy
ZW5jeSBjb2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX0uYAorICAgICAgKTsK
KyAgICB9CisgICAgc2hpcHBpbmdPcHRpb25zLnB1c2goc2hpcHBpbmdPcHRpb24pOworICB9Cisg
IHRyeSB7CisgICAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRh
aWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRldGFpbHMsIHsgcmVxdWVzdFNoaXBwaW5nOiB0cnVlIH0pOworICB9IGNhdGNo
IChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Ig
d2l0aCBtdWx0aXBsZSB2YWxpZCBzaHBwaW5nT3B0aW9uczogJHtlcnIubWVzc2FnZX0uYAorICAg
ICk7CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIGRldGFpbHMuc2hpcHBp
bmdPcHRpb25zIGFtb3VudC4iKTsKKwordGVzdCgoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMo
UkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7
CisgIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7
CisgICAgY29uc3Qgc2hpcHBpbmdPcHRpb24gPSB7CisgICAgICBpZDogInRlc3QiLAorICAgICAg
bGFiZWw6ICJzaGlwcGluZyBvcHRpb24iLAorICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiBpbnZh
bGlkQ3VycmVuY3ksIHZhbHVlOiAiNS4wMCIgfSwKKyAgICAgIHNlbGVjdGVkOiB0cnVlLAorICAg
IH07CisgICAgY29uc3QgZGV0YWlscyA9IHsKKyAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisg
ICAgICBzaGlwcGluZ09wdGlvbnM6IFtzaGlwcGluZ09wdGlvbl0sCisgICAgfTsKKyAgICBhc3Nl
cnRfdGhyb3dzX2pzKAorICAgICAgUkFOR0VfRVJST1IsCisgICAgICAoKSA9PiB7CisgICAgICAg
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hp
cHBpbmc6IHRydWUgfSk7CisgICAgICB9LAorICAgICAgYEV4cGVjdGVkIFJhbmdlRXJyb3Igd2l0
aCBpbnZhbGlkIHNoaXBwaW5nT3B0aW9uIGN1cnJlbmN5IGNvZGUgIiR7aW52YWxpZEN1cnJlbmN5
fSIuYAorICAgICk7CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgZGV0
YWlscy5zaGlwcGluZ09wdGlvbnMgYW1vdW50IGFuZCByZXRocm93IFJhbmdlRXJyb3IuIik7CisK
Ky8vIFByb2Nlc3MgcGF5bWVudCBkZXRhaWxzIG1vZGlmaWVyczoKK3Rlc3QoKCkgPT4geworICBh
c3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0
ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Ygd2VsbEZvcm1l
ZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25zdCBtb2RpZmllciA9IHsKKyAgICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fSIsCisgICAgICB0b3Rh
bDogeworICAgICAgICBsYWJlbDogIlRvdGFsIGR1ZSIsCisgICAgICAgIGFtb3VudDogeyBjdXJy
ZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI2OC4wMCIgfSwKKyAgICAgIH0sCisgICAgfTsK
KyAgICBjb25zdCBkZXRhaWxzID0geworICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAg
IG1vZGlmaWVyczogW21vZGlmaWVyXSwKKyAgICB9OworICAgIHRyeSB7CisgICAgICBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOworICAgIH0gY2F0Y2ggKGVycikg
eworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0
aCB2YWxpZCBtb2RpZmllciBjdXJyZW5jeSBjb2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIu
bWVzc2FnZX1gCisgICAgICApOworICAgIH0KKyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxp
emUgdmFsaWQgbW9kaWZpZXJzW25dLnRvdGFsIGFtb3VudC4iKTsKKwordGVzdCgoKSA9PiB7Cisg
IGFzc2VydF90aHJvd3NfanMoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tl
IHRlc3QgdG8gdGhyb3cuIik7CisgIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFs
aWRDdXJyZW5jeUNvZGVzKSB7CisgICAgY29uc3QgbW9kaWZpZXIgPSB7CisgICAgICBzdXBwb3J0
ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0iLAorICAgICAgdG90
YWw6IHsKKyAgICAgICAgbGFiZWw6ICJUb3RhbCBkdWUiLAorICAgICAgICBhbW91bnQ6IHsgY3Vy
cmVuY3k6IGludmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI2OC4wMCIgfSwKKyAgICAgIH0sCisgICAg
fTsKKyAgICBjb25zdCBkZXRhaWxzID0geworICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAg
ICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKKyAgICB9OworICAgIGFzc2VydF90aHJvd3NfanMo
CisgICAgICBSQU5HRV9FUlJPUiwKKyAgICAgICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0
ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgbW9kaWZpZXIgY3VycmVuY3kgY29kZSAiJHtpbnZh
bGlkQ3VycmVuY3l9Ii5gCisgICAgKTsKKyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUg
aW52YWxpZCBtb2RpZmllcnNbbl0udG90YWwgYW1vdW50IGFuZCByZXRocm93IFJhbmdlRXJyb3Iu
Iik7CisKKy8vIFByb2Nlc3MgcGF5bWVudCBkZXRhaWxzIG1vZGlmaWVyczoKK3Rlc3QoKCkgPT4g
eworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBz
bW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Ygd2Vs
bEZvcm1lZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25zdCBhZGRpdGlvbmFsSXRlbSA9IHsKKyAg
ICAgIGxhYmVsOiAiYWRkaXRpb25hbEl0ZW0iLAorICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiB2
YWxpZEN1cnJlbmN5LCB2YWx1ZTogIjMuMDAiIH0sCisgICAgfTsKKyAgICBjb25zdCBtb2RpZmll
ciA9IHsKKyAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlz
dGVudF19fSIsCisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgYWRkaXRpb25hbERp
c3BsYXlJdGVtczogW2FkZGl0aW9uYWxJdGVtXSwKKyAgICB9OworICAgIGNvbnN0IGRldGFpbHMg
PSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgbW9kaWZpZXJzOiBbbW9kaWZp
ZXJdLAorICAgIH07CisgICAgdHJ5IHsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKAorICAgICAgICBgVW5leHBlY3RlZCBlcnJvciB3aXRoIHZhbGlkIGFkZGl0aW9uYWxE
aXNwbGF5SXRlbXNbbl0gY3VycmVuY3kgY29kZSAiJHt2YWxpZEN1cnJlbmN5fSI6ICR7ZXJyLm1l
c3NhZ2V9YAorICAgICAgKTsKKyAgICB9CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXpl
IHZhbGlkIG1vZGlmaWVyc1tuXS5hZGRpdGlvbmFEaXNwbGF5SXRlbSBhbW91bnQuIik7CisKK3Rl
c3QoKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJF
eHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IGludmFsaWRDdXJy
ZW5jeSBvZiBpbnZhbGlkQ3VycmVuY3lDb2RlcykgeworICAgIGNvbnN0IGFkZGl0aW9uYWxJdGVt
ID0geworICAgICAgbGFiZWw6ICJhZGRpdGlvbmFsSXRlbSIsCisgICAgICBhbW91bnQ6IHsgY3Vy
cmVuY3k6IGludmFsaWRDdXJyZW5jeSwgdmFsdWU6ICIzLjAwIiB9LAorICAgIH07CisgICAgY29u
c3QgbW9kaWZpZXIgPSB7CisgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFp
bnNbbm9uZXhpc3RlbnRdfX0iLAorICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAgIGFk
ZGl0aW9uYWxEaXNwbGF5SXRlbXM6IFthZGRpdGlvbmFsSXRlbV0sCisgICAgfTsKKyAgICBjb25z
dCBkZXRhaWxzID0geworICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAgIG1vZGlmaWVy
czogW21vZGlmaWVyXSwKKyAgICB9OworICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICBSQU5H
RV9FUlJPUiwKKyAgICAgICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJv
ciB3aXRoIGludmFsaWQgYWRkaXRpb25hbERpc3BsYXlJdGVtc1tuXSBjdXJyZW5jeSBjb2RlICIk
e2ludmFsaWRDdXJyZW5jeX0iLmAKKyAgICApOworICB9Cit9LCAiQ2hlY2sgYW5kIGNhbm9uaWNh
bGl6ZSBpbnZhbGlkIG1vZGlmaWVyc1tuXS5hZGRpdGlvbmFEaXNwbGF5SXRlbSBhbW91bnQgYW5k
IHJldGhyb3cgUmFuZ2VFcnJvci4iKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtY3Rvci1wbWktaGFuZGxpbmcuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNWY4ODhmMDM4OWY2Yzc1NmVkZThjM2U0ODFlY2U3YmNmOGI3MWNjZi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
Y3Rvci1wbWktaGFuZGxpbmcuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0OSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgTW96aWxsYSBhbmQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRl
Y2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZlcnNpdHksIEJlaWhhbmcpLiAtLT4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGZvciB2YWxpZGl0eSBvZiBwYXltZW50IG1ldGhv
ZCBpZGVudGlmaWVycyBkdXJpbmcgY29uc3RydWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2NvbnN0
cnVjdG9yIj4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1jb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5m
cmVlemUoewotICBjdXJyZW5jeTogIlVTRCIsCi0gIHZhbHVlOiAiMS4wIiwKLX0pOwotY29uc3Qg
dmFsaWRUb3RhbCA9IE9iamVjdC5mcmVlemUoewotICBsYWJlbDogIkRlZmF1bHQgVG90YWwiLAot
ICBhbW91bnQ6IHZhbGlkQW1vdW50LAotfSk7Ci1jb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVj
dC5mcmVlemUoewotICB0b3RhbDogdmFsaWRUb3RhbCwKLX0pOwotCi10ZXN0KCgpID0+IHsKLSAg
Y29uc3QgdmFsaWRNZXRob2RzID0gWwotICAgICJodHRwczovL3dwdCIsCi0gICAgImh0dHBzOi8v
d3B0LmZ5aS8iLAotICAgICJodHRwczovL3dwdC5meWkvcGF5bWVudCIsCi0gICAgImh0dHBzOi8v
d3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICJodHRwczovL3dwdC5meWkvcGF5bWVudC1y
ZXF1ZXN0PyIsCi0gICAgImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyIs
Ci0gICAgImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3RhbGx5IiwK
LSAgICAiaHR0cHM6Ly93cHQuZnlpOjQ0My9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3RhbGx5
IiwKLSAgICAiaHR0cHM6Ly93cHQuZnlpOjQ0My9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3Rh
bGx5I2ZpbmUiLAotICAgICJodHRwczovLzpAd3B0LmZ5aTo0NDMvcGF5bWVudC1yZXF1ZXN0P3Ro
aXM9aXMmdG90YWxseSPwn5GNIiwKLSAgICAiIFx0aHR0cHM6Ly93cHRcbiAiLAotICAgICJodHRw
czovL3huLS1jMXluMzZmIiwKLSAgICAiaHR0cHM6Ly/pu57nnIsiLAotICBdOwotICBmb3IgKGNv
bnN0IHZhbGlkTWV0aG9kIG9mIHZhbGlkTWV0aG9kcykgewotICAgIHRyeSB7Ci0gICAgICBjb25z
dCBtZXRob2RzID0gW3sgc3VwcG9ydGVkTWV0aG9kczogdmFsaWRNZXRob2QgfV07Ci0gICAgICBu
ZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIH0gY2F0Y2gg
KGVycikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKLSAgICAgICAgYFVuZXhwZWN0ZWQgZXhj
ZXB0aW9uIHdpdGggdmFsaWQgc3RhbmRhcmRpemVkIFBNSTogJHt2YWxpZE1ldGhvZH0uICR7ZXJy
fWAKLSAgICAgICk7Ci0gICAgfQotICB9Ci19LCAiTXVzdCBzdXBwb3J0IHZhbGlkIHN0YW5kYXJk
IFVSTCBQTUlzIik7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCB2YWxpZE1ldGhvZHMgPSBbCi0g
ICAgImUiLAotICAgICJuNmp6b2YwNW1rMmc0bGh4ci11LXEtdzEtYy1pLXBhLXR5LWJkdnM5LWhv
LWFlNy1wLW1kOC1zLXdxMy1oLXFkLWUtcS1zYSIsCi0gICAgImEtYi1xLW4tcy1wdzAiLAotICAg
ICJtLXUiLAotICAgICJzLWw1IiwKLSAgICAiazktZiIsCi0gICAgIm0tbCIsCi0gICAgInU0LW4t
dCIsCi0gICAgImk0ODhqaDYtZzE4LWZjay15Yi12Ny1pIiwKLSAgICAieC14LXQtdC1jMzQtbyIs
Ci0gICAgImJhc2ljLWNhcmQiLAotICAgIC8vIGdldHMgY29lcmNlZCB0byAiYmFzaWMtY2FyZCIs
IGZvciBjb21wYXQgd2l0aCBvbGQgdmVyc2lvbiBvZiBzcGVjCi0gICAgWyJiYXNpYy1jYXJkIl0s
Ci0gIF07Ci0gIGZvciAoY29uc3QgdmFsaWRNZXRob2Qgb2YgdmFsaWRNZXRob2RzKSB7Ci0gICAg
dHJ5IHsKLSAgICAgIGNvbnN0IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiB2YWxpZE1l
dGhvZCB9XTsKLSAgICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWls
cyk7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKAotICAgICAg
ICBgVW5leHBlY3RlZCBleGNlcHRpb24gd2l0aCB2YWxpZCBzdGFuZGFyZGl6ZWQgUE1JOiAke3Zh
bGlkTWV0aG9kfS4gJHtlcnJ9YAotICAgICAgKTsKLSAgICB9Ci0gIH0KLX0sICJNdXN0IG5vdCB0
aHJvdyBvbiBzeW50YWN0aWNhbGx5IHZhbGlkIHN0YW5kYXJkaXplZCBwYXltZW50IG1ldGhvZCBp
ZGVudGlmaWVycywgZXZlbiBpZiB0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIik7Ci0KLXRlc3QoKCkg
PT4gewotICBjb25zdCBpbnZhbGlkTWV0aG9kcyA9IFsKLSAgICAiYmFzaWMt8J+SsyIsCi0gICAg
IsKhYmFzaWMtKi1jYXJkISIsCi0gICAgIkJhc2ljLUNhcmQiLAotICAgICIwIiwKLSAgICAiLSIs
Ci0gICAgIi0tIiwKLSAgICAiYS0tYiIsCi0gICAgIi1hLS1iIiwKLSAgICAiYS1iLSIsCi0gICAg
IjAtIiwKLSAgICAiMC1hIiwKLSAgICAiYTAtLSIsCi0gICAgIkEtIiwKLSAgICAiQS1CIiwKLSAg
ICAiQS1iIiwKLSAgICAiYS0wIiwKLSAgICAiYS0wYiIsCi0gICAgIiBhLWIiLAotICAgICJcdFxu
YS1iIiwKLSAgICAiYS1iICIsCi0gICAgImEtYlxuXHQiLAotICAgICJiYXNpYy1jYXJkP25vdC1y
ZWFsbHkiLAotICAgICJiYXNpYy1jYXJkOi8vbm90LW9rIiwKLSAgICAiYmFzaWMgY2FyZCIsCi0g
ICAgIi9iYXNpYyBjYXJkLyIsCi0gICAgIkJhU2ljQ2FyRCIsCi0gICAgIkJBU0lDLUNBUkQiLAot
ICAgICIgYmFzaWMtY2FyZCAiLAotICAgICJ0aGlzIGlzIG5vdCBzdXBwb3J0ZWQiLAotICAgICIg
IiwKLSAgICAiZm9vLHZhciIsCi0gICAgWyJ2aXNhIiwibWFzdGVyY2FyZCJdLCAvLyBzdHJpbmdp
ZmllcyB0byAidmlzYSxtYXN0ZXJjYXJkIgotICBdOwotICBmb3IgKGNvbnN0IGludmFsaWRNZXRo
b2Qgb2YgaW52YWxpZE1ldGhvZHMpIHsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgbmV3IFJh
bmdlRXJyb3IoKSwKLSAgICAgICgpID0+IHsKLSAgICAgICAgY29uc3QgbWV0aG9kcyA9IFt7IHN1
cHBvcnRlZE1ldGhvZHM6IGludmFsaWRNZXRob2QgfV07Ci0gICAgICAgIG5ldyBQYXltZW50UmVx
dWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gICAgICB9LAotICAgICAgYGV4cGVjdGVk
IFJhbmdlRXJyb3IgcHJvY2Vzc2luZyBpbnZhbGlkIHN0YW5kYXJkaXplZCBQTUkgIiR7aW52YWxp
ZE1ldGhvZH0iYAotICAgICk7Ci0gIH0KLX0sICJNdXN0IHRocm93IG9uIHN5bnRhY3RpY2FsbHkg
aW52YWxpZCBzdGFuZGFyZGl6ZWQgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllcnMiKTsKLQotdGVz
dCgoKSA9PiB7Ci0gIGNvbnN0IGludmFsaWRNZXRob2RzID0gWwotICAgICJodHRwczovL3VzZXJu
YW1lQGV4YW1wbGUuY29tL3BheSIsCi0gICAgImh0dHBzOi8vOnBhc3N3b3JkQGV4YW1wbGUuY29t
L3BheSIsCi0gICAgImh0dHBzOi8vdXNlcm5hbWU6cGFzc3dvcmRAZXhhbXBsZS5jb20vcGF5IiwK
LSAgICAiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQGV4YW1wbGUuY29tL3BheSIsCi0gICAgImh0
dHA6Ly9mb28uY29tOjEwMDAwMDAwMC9wYXkiLAotICAgICJub3QtaHR0cHM6Ly93cHQuZnlpL3Bh
eW1lbnQtcmVxdWVzdCIsCi0gICAgIi4uL3JlYWxpdGl2ZS91cmwiLAotICAgICIvYWJzb2x1dGUv
Li4vcGF0aD8iLAotICAgICJodHRwczovLyIsCi0gIF07Ci0gIGZvciAoY29uc3QgaW52YWxpZE1l
dGhvZCBvZiBpbnZhbGlkTWV0aG9kcykgewotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBuZXcg
UmFuZ2VFcnJvcigpLAotICAgICAgKCkgPT4gewotICAgICAgICBjb25zdCBtZXRob2RzID0gW3sg
c3VwcG9ydGVkTWV0aG9kczogaW52YWxpZE1ldGhvZCB9XTsKLSAgICAgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgICAgIH0sCi0gICAgICBgZXhwZWN0
ZWQgUmFuZ2VFcnJvciBwcm9jZXNzaW5nIGludmFsaWQgVVJMIFBNSSAiJHtpbnZhbGlkTWV0aG9k
fSJgCi0gICAgKTsKLSAgfQotfSwgIkNvbnN0cnVjdG9yIE1VU1QgdGhyb3cgaWYgZ2l2ZW4gYW4g
aW52YWxpZCBVUkwtYmFzZWQgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllciIpOwotCi08L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLXBtaS1oYW5kbGluZy5odHRw
cy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5n
Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWEwNDc0ZGU2OWI3NTMxODM3YTUx
MzUyZTIzZGFmYWYxMWE0MDQ4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5zdWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorCitQQVNTIE11c3Qgc3VwcG9ydCB2YWxpZCBzdGFuZGFyZCBVUkwgUE1JcyAKK1BBU1MgTXVz
dCBub3QgdGhyb3cgb24gc3ludGFjdGljYWxseSB2YWxpZCBzdGFuZGFyZGl6ZWQgcGF5bWVudCBt
ZXRob2QgaWRlbnRpZmllcnMsIGV2ZW4gaWYgdGhleSBhcmUgbm90IHN1cHBvcnRlZCAKK1BBU1Mg
TXVzdCB0aHJvdyBvbiBzeW50YWN0aWNhbGx5IGludmFsaWQgc3RhbmRhcmRpemVkIHBheW1lbnQg
bWV0aG9kIGlkZW50aWZpZXJzIAorUEFTUyBDb25zdHJ1Y3RvciBNVVNUIHRocm93IGlmIGdpdmVu
IGFuIGludmFsaWQgVVJMLWJhc2VkIHBheW1lbnQgbWV0aG9kIGlkZW50aWZpZXIgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5zdWIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5zdWIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNjE1ODM4ZjhiY2VmOTgzN2YyMTZlZTM0NjdlZGJjN2M5ZGM0ZDE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBz
LnN1Yi5odG1sCkBAIC0wLDAgKzEsMTQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gQ29weXJp
Z2h0IMKpIDIwMTcgTW96aWxsYSBhbmQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3Nh
Y2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZlcnNpdHks
IEJlaWhhbmcpLiAtLT4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0IGZvciB2
YWxpZGl0eSBvZiBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVycyBkdXJpbmcgY29uc3RydWN0aW9u
PC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jy
b3dzZXItcGF5bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Citjb25z
dCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIlVTRCIsCisgIHZh
bHVlOiAiMS4wIiwKK30pOworY29uc3QgdmFsaWRUb3RhbCA9IE9iamVjdC5mcmVlemUoeworICBs
YWJlbDogIkRlZmF1bHQgVG90YWwiLAorICBhbW91bnQ6IHZhbGlkQW1vdW50LAorfSk7Citjb25z
dCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogdmFsaWRUb3RhbCwK
K30pOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgdmFsaWRNZXRob2RzID0gWworICAgICJodHRw
czovL3dwdCIsCisgICAgImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19LyIsCisgICAg
Imh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQiLAorICAgICJodHRwczov
L3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAgICJodHRwczov
L3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3Q/IiwKKyAgICAiaHR0cHM6
Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0P3RoaXM9aXMiLAorICAg
ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3Q/dGhpcz1p
cyZ0b3RhbGx5IiwKKyAgICAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX06NDQzL3Bh
eW1lbnQtcmVxdWVzdD90aGlzPWlzJnRvdGFsbHkiLAorICAgICJodHRwczovL3t7ZG9tYWluc1tu
b25leGlzdGVudF19fTo0NDMvcGF5bWVudC1yZXF1ZXN0P3RoaXM9aXMmdG90YWxseSNmaW5lIiwK
KyAgICAiaHR0cHM6Ly86QHt7ZG9tYWluc1tub25leGlzdGVudF19fTo0NDMvcGF5bWVudC1yZXF1
ZXN0P3RoaXM9aXMmdG90YWxseSPwn5GNIiwKKyAgICAiIFx0aHR0cHM6Ly93cHRcbiAiLAorICAg
ICJodHRwczovL3huLS1jMXluMzZmIiwKKyAgICAiaHR0cHM6Ly/pu57nnIsiLAorICBdOworICBm
b3IgKGNvbnN0IHZhbGlkTWV0aG9kIG9mIHZhbGlkTWV0aG9kcykgeworICAgIHRyeSB7CisgICAg
ICBjb25zdCBtZXRob2RzID0gW3sgc3VwcG9ydGVkTWV0aG9kczogdmFsaWRNZXRob2QgfV07Cisg
ICAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgIH0g
Y2F0Y2ggKGVycikgeworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICAgYFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdpdGggdmFsaWQgc3RhbmRhcmRpemVkIFBNSTogJHt2YWxpZE1ldGhvZH0u
ICR7ZXJyfWAKKyAgICAgICk7CisgICAgfQorICB9Cit9LCAiTXVzdCBzdXBwb3J0IHZhbGlkIHN0
YW5kYXJkIFVSTCBQTUlzIik7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCB2YWxpZE1ldGhvZHMg
PSBbCisgICAgImUiLAorICAgICJuNmp6b2YwNW1rMmc0bGh4ci11LXEtdzEtYy1pLXBhLXR5LWJk
dnM5LWhvLWFlNy1wLW1kOC1zLXdxMy1oLXFkLWUtcS1zYSIsCisgICAgImEtYi1xLW4tcy1wdzAi
LAorICAgICJtLXUiLAorICAgICJzLWw1IiwKKyAgICAiazktZiIsCisgICAgIm0tbCIsCisgICAg
InU0LW4tdCIsCisgICAgImk0ODhqaDYtZzE4LWZjay15Yi12Ny1pIiwKKyAgICAieC14LXQtdC1j
MzQtbyIsCisgICAgImJhc2ljLWNhcmQiLAorICAgIC8vIGdldHMgY29lcmNlZCB0byAiYmFzaWMt
Y2FyZCIsIGZvciBjb21wYXQgd2l0aCBvbGQgdmVyc2lvbiBvZiBzcGVjCisgICAgWyJiYXNpYy1j
YXJkIl0sCisgIF07CisgIGZvciAoY29uc3QgdmFsaWRNZXRob2Qgb2YgdmFsaWRNZXRob2RzKSB7
CisgICAgdHJ5IHsKKyAgICAgIGNvbnN0IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiB2
YWxpZE1ldGhvZCB9XTsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0
RGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAor
ICAgICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24gd2l0aCB2YWxpZCBzdGFuZGFyZGl6ZWQgUE1J
OiAke3ZhbGlkTWV0aG9kfS4gJHtlcnJ9YAorICAgICAgKTsKKyAgICB9CisgIH0KK30sICJNdXN0
IG5vdCB0aHJvdyBvbiBzeW50YWN0aWNhbGx5IHZhbGlkIHN0YW5kYXJkaXplZCBwYXltZW50IG1l
dGhvZCBpZGVudGlmaWVycywgZXZlbiBpZiB0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIik7CisKK3Rl
c3QoKCkgPT4geworICBjb25zdCBpbnZhbGlkTWV0aG9kcyA9IFsKKyAgICAiYmFzaWMt8J+SsyIs
CisgICAgIsKhYmFzaWMtKi1jYXJkISIsCisgICAgIkJhc2ljLUNhcmQiLAorICAgICIwIiwKKyAg
ICAiLSIsCisgICAgIi0tIiwKKyAgICAiYS0tYiIsCisgICAgIi1hLS1iIiwKKyAgICAiYS1iLSIs
CisgICAgIjAtIiwKKyAgICAiMC1hIiwKKyAgICAiYTAtLSIsCisgICAgIkEtIiwKKyAgICAiQS1C
IiwKKyAgICAiQS1iIiwKKyAgICAiYS0wIiwKKyAgICAiYS0wYiIsCisgICAgIiBhLWIiLAorICAg
ICJcdFxuYS1iIiwKKyAgICAiYS1iICIsCisgICAgImEtYlxuXHQiLAorICAgICJiYXNpYy1jYXJk
P25vdC1yZWFsbHkiLAorICAgICJiYXNpYy1jYXJkOi8vbm90LW9rIiwKKyAgICAiYmFzaWMgY2Fy
ZCIsCisgICAgIi9iYXNpYyBjYXJkLyIsCisgICAgIkJhU2ljQ2FyRCIsCisgICAgIkJBU0lDLUNB
UkQiLAorICAgICIgYmFzaWMtY2FyZCAiLAorICAgICJ0aGlzIGlzIG5vdCBzdXBwb3J0ZWQiLAor
ICAgICIgIiwKKyAgICAiZm9vLHZhciIsCisgICAgWyJ2aXNhIiwibWFzdGVyY2FyZCJdLCAvLyBz
dHJpbmdpZmllcyB0byAidmlzYSxtYXN0ZXJjYXJkIgorICBdOworICBmb3IgKGNvbnN0IGludmFs
aWRNZXRob2Qgb2YgaW52YWxpZE1ldGhvZHMpIHsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAg
ICAgUmFuZ2VFcnJvciwKKyAgICAgICgpID0+IHsKKyAgICAgICAgY29uc3QgbWV0aG9kcyA9IFt7
IHN1cHBvcnRlZE1ldGhvZHM6IGludmFsaWRNZXRob2QgfV07CisgICAgICAgIG5ldyBQYXltZW50
UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgICAgICB9LAorICAgICAgYGV4cGVj
dGVkIFJhbmdlRXJyb3IgcHJvY2Vzc2luZyBpbnZhbGlkIHN0YW5kYXJkaXplZCBQTUkgIiR7aW52
YWxpZE1ldGhvZH0iYAorICAgICk7CisgIH0KK30sICJNdXN0IHRocm93IG9uIHN5bnRhY3RpY2Fs
bHkgaW52YWxpZCBzdGFuZGFyZGl6ZWQgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllcnMiKTsKKwor
dGVzdCgoKSA9PiB7CisgIGNvbnN0IGludmFsaWRNZXRob2RzID0gWworICAgICJodHRwczovL3Vz
ZXJuYW1lQGV4YW1wbGUuY29tL3BheSIsCisgICAgImh0dHBzOi8vOnBhc3N3b3JkQGV4YW1wbGUu
Y29tL3BheSIsCisgICAgImh0dHBzOi8vdXNlcm5hbWU6cGFzc3dvcmRAZXhhbXBsZS5jb20vcGF5
IiwKKyAgICAiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQGV4YW1wbGUuY29tL3BheSIsCisgICAg
Imh0dHA6Ly9mb28uY29tOjEwMDAwMDAwMC9wYXkiLAorICAgICJub3QtaHR0cHM6Ly97e2RvbWFp
bnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAiLi4vcmVhbGl0aXZlL3Vy
bCIsCisgICAgIi9hYnNvbHV0ZS8uLi9wYXRoPyIsCisgICAgImh0dHBzOi8vIiwKKyAgXTsKKyAg
Zm9yIChjb25zdCBpbnZhbGlkTWV0aG9kIG9mIGludmFsaWRNZXRob2RzKSB7CisgICAgYXNzZXJ0
X3Rocm93c19qcygKKyAgICAgIFJhbmdlRXJyb3IsCisgICAgICAoKSA9PiB7CisgICAgICAgIGNv
bnN0IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiBpbnZhbGlkTWV0aG9kIH1dOworICAg
ICAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgICAg
fSwKKyAgICAgIGBleHBlY3RlZCBSYW5nZUVycm9yIHByb2Nlc3NpbmcgaW52YWxpZCBVUkwgUE1J
ICIke2ludmFsaWRNZXRob2R9ImAKKyAgICApOworICB9Cit9LCAiQ29uc3RydWN0b3IgTVVTVCB0
aHJvdyBpZiBnaXZlbiBhbiBpbnZhbGlkIFVSTC1iYXNlZCBwYXltZW50IG1ldGhvZCBpZGVudGlm
aWVyIik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vu
cm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtbWFudWFsLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1tYW51
YWwudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MGY3MjAwZWRlYTQ4
NmI0ODA0ZjJjYmI5ZjI4MjQ3MWM0NmVkMjU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtbWFudWFsLnRlbnRhdGl2ZS5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorTWFudWFsIHRlc3RzIGZvciBoYXNF
bnJvbGxlZEluc3RydW1lbnQoKSBtZXRob2QKKworRm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgZnJv
bSB0b3AgdG8gYm90dG9tLiBDbGljayBvbiBlYWNoIGJ1dHRvbiBpbiBzZXF1ZW5jZSB3aXRob3V0
IHJlZnJlc2hpbmcgdGhlIHBhZ2UuIFNvbWUgb2YgdGhlIHRlc3RzIHdpbGwgYnJpbmcgdXAgdGhl
IFBheW1lbnQgUmVxdWVzdCBVSSBhbmQgY2xvc2UgdGhlbSBhdXRvbWF0aWNhbGx5LiBJZiBhIHBh
eW1lbnQgc2hlZXQgc3RheXMgb3BlbiwgdGhlIHRlc3QgaGFzIGZhaWxlZC4KKworRm9sbG93IGJy
b3dzZXItc3BlY2lmaWMgaW5zdHJ1Y3Rpb25zIHRvIHJlbW92ZSBhbGwgY2FyZHMgZnJvbSB0aGUg
dGVzdCBwcm9maWxlLgoraGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2Ug
d2hlbiB1c2VyIGhhcyBubyBlbnJvbGxlZCBpbnN0cnVtZW50LgorQWRkIGEgdGVzdCBWaXNhIGNh
cmQgdG8geW91ciB0ZXN0IHByb2ZpbGUsIGUuZy4gNDAxMjg4ODg4ODg4MTg4MS4KK2hhc0Vucm9s
bGVkSW5zdHJ1bWVudCgpIHJlc29sdmVzIHRvIHRydWUgd2hlbiB1c2VyIGhhcyBhbiBlbnJvbGxl
ZCBpbnN0cnVtZW50LgoraGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgY2FuIGJlIGNhbGxlZCBtdWx0
aXBsZSB0aW1lcyBpZiB0aGUgcGF5bWVudCBtZXRob2QgZGV0YWlscyBhcmUgaWRlbnRpY2FsLgor
RG9uZSEKK0lmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRh
ZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZpZXdlcnMuCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1o
YXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLW1hbnVhbC50ZW50YXRpdmUuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLW1hbnVhbC50
ZW50YXRpdmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmIxNjRmN2NjN2I4ZjFjNTdiOGZhOWZk
MTRjYmM3ZjVlZjgxZWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhh
c2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtbWFudWFsLnRlbnRhdGl2ZS5odHRwcy5odG1sCkBA
IC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPk1hbnVhbCB0ZXN0cyBmb3IgUGF5bWVudFJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVt
ZW50KCkgbWV0aG9kPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZCI+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0Pgorc2V0dXAoeworICBleHBsaWNpdF9kb25lOiB0cnVlLAorICBleHBsaWNpdF90aW1lb3V0
OiB0cnVlLAorfSk7CisKK2NvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbCisg
IHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCisgICAgZGF0YTogeworICAg
ICAgc3VwcG9ydGVkTmV0d29ya3M6IFsgJ3Zpc2EnIF0sCisgICAgfSwKKyAgfQorXSk7Citjb25z
dCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogeworICAgIGxhYmVs
OiAiVG90YWwiLAorICAgIGFtb3VudDogeworICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAg
dmFsdWU6ICIxLjAwIiwKKyAgICB9LAorICB9LAorfSk7CisKK2Z1bmN0aW9uIHRlc3RIYXNOb0Vu
cm9sbGVkSW5zdHJ1bWVudCgpIHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNv
bnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHRE
ZXRhaWxzKTsKKyAgICBhc3NlcnRfZmFsc2UoCisgICAgICBhd2FpdCByZXF1ZXN0Lmhhc0Vucm9s
bGVkSW5zdHJ1bWVudCgpLAorICAgICAgIk5vIHRlc3QgZW5yb2xsZWQgaW4gdGhlIHRlc3QgcHJv
ZmlsZS4iCisgICAgKTsKKyAgfSwgYGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHJlc29sdmVzIHRv
IGZhbHNlIHdoZW4gdXNlciBoYXMgbm8gZW5yb2xsZWQgaW5zdHJ1bWVudC5gKTsKK30KKworZnVu
Y3Rpb24gdGVzdEhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgIGF3YWl0IHJl
cXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCksCisgICAgICAiQSBjYXJkIGlzIGVucm9sbGVk
IGluIHRoZSB0ZXN0IHByb2ZpbGUuIgorICAgICk7CisgIH0sIGBoYXNFbnJvbGxlZEluc3RydW1l
bnQoKSByZXNvbHZlcyB0byB0cnVlIHdoZW4gdXNlciBoYXMgYW4gZW5yb2xsZWQgaW5zdHJ1bWVu
dC5gKTsKK30KKworZnVuY3Rpb24gdGVzdEhhc0Vucm9sbGVkSW5zdHJ1bWVudEFnYWluKCkgewor
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgIGFzc2VydF90
cnVlKAorICAgICAgYXdhaXQgcmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQoKSwKKyAgICAg
ICJBIGNhcmQgaXMgZW5yb2xsZWQgaW4gdGhlIHRlc3QgcHJvZmlsZS4iCisgICAgKTsKKyAgfSwg
YGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYg
dGhlIHBheW1lbnQgbWV0aG9kIGRldGFpbHMgYXJlIGlkZW50aWNhbC5gKTsKK30KKzwvc2NyaXB0
PgorCis8aDI+TWFudWFsIHRlc3RzIGZvciBoYXNFbnJvbGxlZEluc3RydW1lbnQoKSBtZXRob2Q8
L2gyPgorPHA+CisgIEZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gdG9wIHRvIGJvdHRvbS4g
Q2xpY2sgb24gZWFjaCBidXR0b24gaW4gc2VxdWVuY2UKKyAgd2l0aG91dCByZWZyZXNoaW5nIHRo
ZSBwYWdlLiBTb21lIG9mIHRoZSB0ZXN0cyB3aWxsIGJyaW5nIHVwIHRoZSBQYXltZW50CisgIFJl
cXVlc3QgVUkgYW5kIGNsb3NlIHRoZW0gYXV0b21hdGljYWxseS4gSWYgYSBwYXltZW50IHNoZWV0
IHN0YXlzIG9wZW4sIHRoZQorICB0ZXN0IGhhcyBmYWlsZWQuCis8L3A+Cis8b2w+CisgIDxsaT5G
b2xsb3cgYnJvd3Nlci1zcGVjaWZpYyBpbnN0cnVjdGlvbnMgdG8gcmVtb3ZlIGFsbCBjYXJkcyBm
cm9tIHRoZSB0ZXN0IHByb2ZpbGUuPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0i
dGVzdEhhc05vRW5yb2xsZWRJbnN0cnVtZW50KCkiPgorICAgICAgaGFzRW5yb2xsZWRJbnN0cnVt
ZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2Ugd2hlbiB1c2VyIGhhcyBubyBlbnJvbGxlZCBpbnN0cnVt
ZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+QWRkIGEgdGVzdCBWaXNhIGNhcmQg
dG8geW91ciB0ZXN0IHByb2ZpbGUsIGUuZy4gNDAxMjg4ODg4ODg4MTg4MS48L2xpPgorICA8bGk+
CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0SGFzRW5yb2xsZWRJbnN0cnVtZW50KCkiPgorICAg
ICAgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8gdHJ1ZSB3aGVuIHVzZXIgaGFz
IGFuIGVucm9sbGVkIGluc3RydW1lbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4K
KyAgICA8YnV0dG9uIG9uY2xpY2s9InRlc3RIYXNFbnJvbGxlZEluc3RydW1lbnRBZ2FpbigpIj4K
KyAgICAgIGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGlt
ZXMgaWYgdGhlIHBheW1lbnQgbWV0aG9kCisgICAgICBkZXRhaWxzIGFyZSBpZGVudGljYWwuCisg
ICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9ImRvbmUo
KSI+RG9uZSE8L2J1dHRvbj4KKyAgPC9saT4KKzwvb2w+Cis8c21hbGw+CisgIElmIHlvdSBmaW5k
IGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2Yg
dGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Js
b2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+c3VnZ2VzdGVkIHJldmlld2Vyczwv
YT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVk
aW5zdHJ1bWVudC1tZXRob2QtcHJvdGVjdGlvbi50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJvdGVj
dGlvbi50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMWQ0MDMxMDdm
NmVkNTZmNjY5YTE5Y2FjZGZlMmRkN2EyZTMzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRh
dGl2ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitJZiB5b3UgZmluZCBhIGJ1
Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQg
cmV2aWV3ZXJzLgorCitGQUlMIE9wdGlvbmFsbHksIGF0IHRoZSB1c2VyIGFnZW50J3MgZGlzY3Jl
dGlvbiwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgIk5vdEFsbG93ZWRFcnJvciIg
RE9NRXhjZXB0aW9uLiBhc3NlcnRfZXF1YWxzOiBJZiBpdCB0aHJvd3MsIHRoZW4gaXQgbXVzdCBi
ZSBhIE5vdEFsbG93ZWRFcnJvci4gZXhwZWN0ZWQgIk5vdEFsbG93ZWRFcnJvciIgYnV0IGdvdCAi
VHlwZUVycm9yIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRp
bnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRhdGl2ZS5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJvdGVjdGlvbi50ZW50
YXRpdmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGExMTMwNGEyMTQyNzA0MGY3MjMxN2UzNzQ2
ZmVlYmIyNTFkMTJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vu
cm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJvdGVjdGlvbi50ZW50YXRpdmUuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5UZXN0cyBmb3IgUGF5bWVudFJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkg
bWV0aG9kPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL3BheW1lbnQtcmVxdWVzdC8jaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZCI+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVz
b3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB2
aXNhTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CisgICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2lj
LWNhcmQiLAorICAgIGRhdGE6IHsKKyAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbJ3Zpc2EnXQor
ICAgIH0KK30pOworY29uc3QgbWFzdGVyY2FyZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeworICAg
IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiwKKyAgICBkYXRhOiB7CisgICAgICBzdXBw
b3J0ZWROZXR3b3JrczogWydtYXN0ZXJjYXJkJ10KKyAgICB9Cit9KTsKK2NvbnN0IGRlZmF1bHRE
ZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiB7CisgICAgbGFiZWw6ICJUb3RhbCIs
CisgICAgYW1vdW50OiB7CisgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICB2YWx1ZTogIjEu
MDAiLAorICAgIH0sCisgIH0sCit9KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAv
LyBUaGlzIHRlc3QgbWF5IG5ldmVyIGFjdHVhbGx5IGhpdCBpdHMgYXNzZXJ0aW9uLCBidXQgdGhh
dCdzIGFsbG93ZWQuCisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3Zpc2FN
ZXRob2RdLCBkZWZhdWx0RGV0YWlscyk7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgaSsr
KSB7CisgICAgdHJ5IHsKKyAgICAgIGF3YWl0IHJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50
KCk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICBl
cnIubmFtZSwKKyAgICAgICAgIk5vdEFsbG93ZWRFcnJvciIsCisgICAgICAgICJJZiBpdCB0aHJv
d3MsIHRoZW4gaXQgbXVzdCBiZSBhIE5vdEFsbG93ZWRFcnJvci4iCisgICAgICApOworICAgICAg
YnJlYWs7CisgICAgfQorICB9CisKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsK
KyAgICB0cnkgeworICAgICAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoW21h
c3RlcmNhcmRNZXRob2RdLCBkZWZhdWx0RGV0YWlscyk7CisgICAgICBhd2FpdCByZXF1ZXN0Mi5o
YXNFbnJvbGxlZEluc3RydW1lbnQoKTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoCisgICAgICAgIGVyci5uYW1lLAorICAgICAgICAiTm90QWxsb3dlZEVycm9yIiwK
KyAgICAgICAgIklmIGl0IHRocm93cywgdGhlbiBpdCBtdXN0IGJlIGEgTm90QWxsb3dlZEVycm9y
LiIKKyAgICAgICk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KK30sIGBPcHRpb25hbGx5LCBh
dCB0aGUgdXNlciBhZ2VudCdzIGRpc2NyZXRpb24sIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQg
d2l0aCBhICJOb3RBbGxvd2VkRXJyb3IiIERPTUV4Y2VwdGlvbi5gKTsKKworPC9zY3JpcHQ+CisK
KzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVn
PC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1s
Ij5zdWdnZXN0ZWQgcmV2aWV3ZXJzPC9hPi4KKzwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1t
ZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWFmNmIxNzA2
NWEzZmViNzA3Mzk2NWExMzlhNGUzMjIzZjg1MDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0lmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwg
cGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZpZXdlcnMu
CisKK0ZBSUwgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2UgZm9yIHVu
c3VwcG9ydGVkIHBheW1lbnQgbWV0aG9kcy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiByZXF1ZXN0Lmhhc0Vucm9sbGVkSW5z
dHJ1bWVudCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1
bWVudCgpJywgJ3JlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50JyBpcyB1bmRlZmluZWQpIgor
RkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBh
IHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlv
bi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiByZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpJywgJ3JlcXVlc3QuaGFzRW5y
b2xsZWRJbnN0cnVtZW50JyBpcyB1bmRlZmluZWQpIgorRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVd
XSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIklu
dmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0
IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1NTMxMmNlMzNiMGRhMmZjZDFkMTYxOWI2ZDdmZjhjNjE0
YTRmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRp
bnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDc1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0cyBmb3Ig
UGF5bWVudFJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgbWV0aG9kPC90aXRsZT4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVz
dC8jaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Citjb25zdCB1bnN1
cHBvcnRlZE1ldGhvZHMgPSBbCisgIHsgc3VwcG9ydGVkTWV0aG9kczogInRoaXMtaXMtbm90LXN1
cHBvcnRlZCIgfSwKKyAgeyBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9ub3Quc3VwcG9ydGVk
IiB9LAorXTsKK2NvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbCisgIHsKKyAg
ICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCisgICAgZGF0YTogeworICAgICAgc3Vw
cG9ydGVkTmV0d29ya3M6IFsgJ3Zpc2EnIF0sCisgICAgfSwKKyAgfQorXSk7Citjb25zdCBkZWZh
dWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogeworICAgIGxhYmVsOiAiVG90
YWwiLAorICAgIGFtb3VudDogeworICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgdmFsdWU6
ICIxLjAwIiwKKyAgICB9LAorICB9LAorfSk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCh1bnN1cHBvcnRlZE1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKTsKKyAgYXNzZXJ0X2ZhbHNlKAorICAgIGF3YWl0IHJlcXVlc3QuaGFz
RW5yb2xsZWRJbnN0cnVtZW50KCksCisgICAgImhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHNob3Vs
ZCByZXNvbHZlIHRvIGZhbHNlLiIKKyAgKTsKK30sIGBoYXNFbnJvbGxlZEluc3RydW1lbnQoKSBy
ZXNvbHZlcyB0byBmYWxzZSBmb3IgdW5zdXBwb3J0ZWQgcGF5bWVudCBtZXRob2RzLmApOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgY29uc3QgW2FjY2VwdFBy
b21pc2UsIGhhc0Vucm9sbGVkSW5zdHJ1bWVudFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoCisgICAgICAic2hvdyBwYXltZW50IHJlcXVlc3QiLAorICAgICAgKCkgPT4geworICAg
ICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7ICAvLyBTZXRzIHN0YXRl
IHRvICJpbnRlcmFjdGl2ZSIKKyAgICAgICAgY29uc3QgaGFzRW5yb2xsZWRJbnN0cnVtZW50UHJv
bWlzZSA9IHJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCk7CisgICAgICAgIHJldHVybiBb
YWNjZXB0UHJvbWlzZSwgaGFzRW5yb2xsZWRJbnN0cnVtZW50UHJvbWlzZV07CisgICAgICB9KTsK
KyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCBoYXNF
bnJvbGxlZEluc3RydW1lbnRQcm9taXNlKTsKKworICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Cisg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNl
KTsKK30sIGBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVy
biBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2Vw
dGlvbi5gKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0g
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNv
bnN0IFthYm9ydFByb21pc2UsIGFjY2VwdFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxl
c3MoICJzaG93IHBheW1lbnQgcmVxdWVzdCIsICgpID0+IHsKKyAgICBjb25zdCBhY2NlcHRQcm9t
aXNlID0gcmVxdWVzdC5zaG93KCk7ICAvLyBTZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2ZSIKKyAg
ICBhY2NlcHRQcm9taXNlLmNhdGNoKCgpID0+IHt9KTsgIC8vIG5vLW9wLCBqdXN0IHRvIGhhbmRs
ZSB1bmhhbmRsZWQgcmVqZWN0aW9uIGluIGRldnRvb2xzLgorICAgIGNvbnN0IGFib3J0UHJvbWlz
ZSA9cmVxdWVzdC5hYm9ydCgpOyAgLy8gU2V0cyBzdGF0ZSB0byAiY2xvc2VkIgorICAgIHJldHVy
biBbYWJvcnRQcm9taXNlLCBhY2NlcHRQcm9taXNlXTsKKyAgfSk7CisgIGF3YWl0IGFib3J0UHJv
bWlzZTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiQWJvcnRFcnJvciIsIGFjY2Vw
dFByb21pc2UpOworCisgIGNvbnN0IGhhc0Vucm9sbGVkSW5zdHJ1bWVudFByb21pc2UgPSByZXF1
ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIGhhc0Vucm9sbGVkSW5zdHJ1bWVudFByb21pc2UpOwor
fSwgYElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21p
c2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi5gKTsK
Kzwvc2NyaXB0PgorCis8c21hbGw+CisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNl
IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vl
cyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVx
dWVzdC9NRVRBLnltbCI+c3VnZ2VzdGVkIHJldmlld2VyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LW9uc2hpcHBpbmdhZGRyZXNzY2hhbmdlLWF0dHJpYnV0
ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LW9uc2hpcHBpbmdhZGRyZXNzY2hhbmdl
LWF0dHJpYnV0ZS5odHRwcy5odG1sCmluZGV4IDVjNTRkNDg1NjhhNDA3ODFkZjg1Nzk4NmJjZGE1
ZmM4YWIwODE4OWIuLjViMjUzODk5MmY3NmM3NzQyNTlmNTJiNzM0YmM4NDQ0NjhmYzE0ZjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5nYWRkcmVzc2NoYW5nZS1hdHRy
aWJ1dGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtb25zaGlwcGluZ2FkZHJl
c3NjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0bWwKQEAgLTcsOCArNywxOCBAQAogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
ICJ1c2Ugc3RyaWN0IjsKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBv
cnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7Cisg
ICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhh
bXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6
IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0K
K30pOwogY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6
ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShb
YmFzaWNDYXJkXSk7Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2lj
Q2FyZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7
CiAgIHRvdGFsOiB7CiAgICAgbGFiZWw6ICJUb3RhbCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3Qtb25zaGlwcGluZ29wdGlvbmNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5nb3B0aW9uY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5o
dG1sCmluZGV4IGE0ZDhmYmM0ODI1ZjhlNzk3Zjk0NzhkOGJkZDA4OWU0MzkxNDkxYTkuLjQzZWE1
ZGNjZTg3YWZlOWRmZjAzODc4OTFkNTdjMzI2NWJlMzAzZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVxdWVzdC1vbnNoaXBwaW5nb3B0aW9uY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5nb3B0aW9uY2hhbmdlLWF0dHJpYnV0ZS5o
dHRwcy5odG1sCkBAIC03LDggKzcsMTggQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7Citjb25z
dCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6
Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAg
bWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlD
b2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisg
ICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IGJhc2ljQ2Fy
ZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1j
b25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZF0pOworY29uc3Qg
ZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5XSk7CiBj
b25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3RhbDogewogICAgIGxh
YmVsOiAiVG90YWwiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNoaXBwaW5nVHlw
ZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ1R5cGUt
YXR0cmlidXRlLmh0dHBzLmh0bWwKaW5kZXggYjFlZDBkMDI4ODYwZWE5Yzk4ZGQxYTYxYmEyMzlk
Yjc1YTdlMzg2NC4uMTFmNzViMWM4NjIyMjRiNTY1NWNiNzI0ZDhjOGY1YjI1YWIxYWYwMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNoaXBwaW5nVHlwZS1hdHRyaWJ1dGUuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hpcHBpbmdUeXBlLWF0dHJpYnV0ZS5odHRw
cy5odG1sCkBAIC04LDggKzgsMTggQEAKIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7CiBjb25zdCBw
YXltZW50U2hpcGluZ1R5cGVzID0gT2JqZWN0LmZyZWV6ZShbImRlbGl2ZXJ5IiwgInBpY2t1cCIs
ICJzaGlwcGluZyJdKTsKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBv
cnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7Cisg
ICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhh
bXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6
IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0K
K30pOwogY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6
ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShb
YmFzaWNDYXJkXSk7Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2lj
Q2FyZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7
CiAgIHRvdGFsOiB7CiAgICAgbGFiZWw6ICIiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRo
b2QuaHR0cHMuaHRtbAppbmRleCBjNmU2OWQ0YzU4NzYwMmQ1MTYwMmFlYTQxMjI0NzMxZTY5MmFm
MmFlLi5kY2Y3OGVmNDI4MWM0MjU2ZWNiNDE0MWIzZjkzZDE1YTk0NzgwNWEzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDwhRE9D
VFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPlRlc3QgZm9yIFBheW1l
bnRSZXF1ZXN0LnNob3coKSBtZXRob2Q8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jc2hvdy1tZXRob2QiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1
ZXN0LyNzaG93LW1ldGhvZCI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3Nj
cmlwdD4KQEAgLTEwLDcgKzEwLDE2IEBACiAidXNlIHN0cmljdCI7CiBjb25zdCBkZWZhdWx0TWV0
aG9kcyA9IE9iamVjdC5mcmVlemUoWwogICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJk
IiB9LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXki
IH0sCisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUt
cGF5IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVu
dGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgICAgY291bnRyeUNvZGU6ICJVUyIs
CisgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgICAgc3Vw
cG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0KKyAgfSwKIF0pOwogCiBjb25zdCBkZWZh
dWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewpAQCAtMjYsNTMgKzM1LDgwIEBAIGNvbnN0IGRl
ZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
ZmF1bHREZXRhaWxzKTsKICAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOwot
ICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIlNlY3VyaXR5RXJyb3IiLCBhY2NlcHRQcm9taXNl
KTsKKyAgLy8gQWJvcnQgdGhlIHJlcXVlc3QgYWZ0ZXIgMiBzZWNvbmRzIGlmIGl0IGhhcyBub3Qg
cmVqZWN0ZWQuIFRoaXMgYWxsb3dzIHRoZQorICAvLyBvdGhlciB0ZXN0cyBpbiB0aGlzIGZpbGUg
dG8gcnVuIGV2ZW4gaWYgYSBub24tY29tcGxpYW50IGJyb3dzZXIgc2hvd3MgdGhlCisgIC8vIHBh
eW1lbnQgc2hlZXQgd2l0aG91dCB1c2VyIGFjdGl2YXRpb24uCisgIHQuc3RlcF90aW1lb3V0KCgp
ID0+IHsKKyAgICB0LmZvcmNlX3RpbWVvdXQoKTsKKyAgICByZXF1ZXN0LmFib3J0KCk7CisgIH0s
IDIwMDApOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIlNlY3VyaXR5RXJyb3Ii
LCBhY2NlcHRQcm9taXNlKTsKIH0sIGBDYWxsaW5nIHNob3coKSB3aXRob3V0IGJlaW5nIHRyaWdn
ZXJlZCBieSB1c2VyIGludGVyYWN0aW9uIHRocm93c2ApOwogCi1wcm9taXNlX3Rlc3QodCA9PiB7
Ci0gIHJldHVybiB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCBhc3lu
YyAoKSA9PiB7Ci0gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1
ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0byAiaW50ZXJhY3RpdmUiCi0gICAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKLSAg
ICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJB
Ym9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7Ci0gIH0pOworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFthY2NlcHRQcm9taXNlXSA9IGF3YWl0IHRlc3Rf
ZHJpdmVyLmJsZXNzKAorICAgICJ0ZXN0OiB0aHJvd3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1d
IGlzIG5vdCAnY3JlYXRlZCciLAorICAgICgpID0+IHsKKyAgICAgIGNvbnN0IGFjY2VwdFByb21p
c2UgPSByZXF1ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0byAiaW50ZXJhY3RpdmUiCisgICAg
ICByZXR1cm4gW2FjY2VwdFByb21pc2VdOworICAgIH0pOworICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgYXdhaXQg
cmVxdWVzdC5hYm9ydCgpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVy
cm9yIiwgYWNjZXB0UHJvbWlzZSk7CiB9LCAiVGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVd
XSBpcyBub3QgJ2NyZWF0ZWQnLiIpOwogCi1wcm9taXNlX3Rlc3QodCA9PiB7Ci0gIHJldHVybiB0
ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCBhc3luYyAoKSA9PiB7Ci0g
ICAgY29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
ZmF1bHREZXRhaWxzKTsKLSAgICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIGNvbnN0IGFjY2VwdFByb21pc2Ux
ID0gcmVxdWVzdDEuc2hvdygpOwotICAgIGNvbnN0IGFjY2VwdFByb21pc2UyID0gcmVxdWVzdDIu
c2hvdygpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2Vw
dFByb21pc2UyKTsKLSAgICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOwotICAgIGF3YWl0IHByb21p
c2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UxKTsKLSAgfSk7Citwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1
ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IHJlcXVlc3QyID0g
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNv
bnN0IFthY2NlcHRQcm9taXNlMV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICBgdGVz
dDogcmVqZWN0IHByb21pc2Ugd2l0aCAiQWJvcnRlZEVycm9yIiBpZiBwYXltZW50IHJlcXVlc3Qg
aXMgYWxyZWFkeSBzaG93aW5nYCwKKyAgICBhc3luYyAoKSA9PiB7CisgICAgICBjb25zdCBhY2Nl
cHRQcm9taXNlMSA9IHJlcXVlc3QxLnNob3coKTsKKyAgICAgIGNvbnN0IGFjY2VwdFByb21pc2Uy
ID0gcmVxdWVzdDIuc2hvdygpOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAi
QWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UyKTsKKyAgICAgIHJldHVybiBbYWNjZXB0UHJvbWlz
ZTFdOworICAgIH0pOworCisgIGF3YWl0IHJlcXVlc3QxLmFib3J0KCk7CisgIGF3YWl0IHByb21p
c2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlMSk7CiB9LCBgSWYg
dGhlIHVzZXIgYWdlbnQncyAicGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmciIGJvb2xlYW4gaXMg
dHJ1ZSwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkFib3J0RXJyb3Ii
IERPTUV4Y2VwdGlvbi5gKTsKIAotcHJvbWlzZV90ZXN0KHQgPT4gewotICByZXR1cm4gdGVzdF9k
cml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCByZXF1ZXN0IiwgYXN5bmMgKCkgPT4gewotICAgIGNv
bnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoCi0gICAgICBbeyBzdXBwb3J0ZWRNZXRo
b2RzOiAidGhpcy1pcy1ub3Qtc3VwcG9ydGVkIiB9XSwKLSAgICAgIGRlZmF1bHREZXRhaWxzCi0g
ICAgKTsKLSAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzKHQsICJOb3RTdXBwb3J0ZWRFcnJvciIsIGFjY2VwdFByb21pc2Up
OwotICB9KTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdCgKKyAgICBbeyBzdXBwb3J0ZWRNZXRob2RzOiAidGhpcy1pcy1ub3Qt
c3VwcG9ydGVkIiB9XSwKKyAgICBkZWZhdWx0RGV0YWlscworICApOworICBjb25zdCBbYWNjZXB0
UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICBgdGVzdDogcmVqZWN0IHBy
b21pc2Ugd2l0aCAiTm90U3VwcG9ydGVkRXJyb3IiYCwKKyAgICAoKSA9PiB7CisgICAgICBjb25z
dCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisgICAgICByZXR1cm4gW2FjY2VwdFBy
b21pc2VdOworICAgIH0pOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJOb3RTdXBw
b3J0ZWRFcnJvciIsIGFjY2VwdFByb21pc2UpOwogfSwgYElmIHBheW1lbnQgbWV0aG9kIGNvbnN1
bHRhdGlvbiBwcm9kdWNlcyBubyBzdXBwb3J0ZWQgbWV0aG9kIG9mIHBheW1lbnQsIHRoZW4gcmV0
dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgIk5vdFN1cHBvcnRlZEVycm9yIiBET01FeGNl
cHRpb24uYCk7CiAKLXByb21pc2VfdGVzdCh0ID0+IHsKLSAgcmV0dXJuIHRlc3RfZHJpdmVyLmJs
ZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsIGFzeW5jICgpID0+IHsKLSAgICBjb25zdCByZXF1
ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAotICAgICAgW3sgc3VwcG9ydGVkTWV0aG9kczogImJh
c2ljLWNhcmQiIH1dLAotICAgICAgZGVmYXVsdERldGFpbHMKLSAgICApOwotICAgIGNvbnN0IHBy
b21pc2VzID0gbmV3IFNldChbcmVxdWVzdC5zaG93KCksIHJlcXVlc3Quc2hvdygpLCByZXF1ZXN0
LnNob3coKV0pOwotICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKLSAgICBhc3NlcnRfZXF1YWxz
KHByb21pc2VzLnNpemUsIDMsICJNdXN0IGhhdmUgdGhyZWUgdW5pcXVlIG9iamVjdHMiKTsKLSAg
fSk7Ci19LCAiQ2FsbGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9i
amVjdC4iKTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25z
dCBbcDEsIHAyLCBwM10gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICBgdGVzdDogY2Fs
bGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMgYSBuZXcgcHJvbWlzZWAs
CisgICAgKCkgPT4geworICAgICAgY29uc3QgcDEgPSByZXF1ZXN0LnNob3coKTsKKyAgICAgIGNv
bnN0IHAyID0gcmVxdWVzdC5zaG93KCk7CisgICAgICBjb25zdCBwMyA9IHJlcXVlc3Quc2hvdygp
OworICAgICAgcmV0dXJuIFtwMSwgcDIsIHAzXTsKKyAgICB9KTsKKyAgY29uc3QgcHJvbWlzZXMg
PSBuZXcgU2V0KFtwMSwgcDIsIHAzXSk7CisgIGFzc2VydF9lcXVhbHMocHJvbWlzZXMuc2l6ZSwg
MywgIk11c3QgaGF2ZSB0aHJlZSB1bmlxdWUgb2JqZWN0cyIpOworCisgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcDIpOworICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHAzKTsKKworICBhd2FpdCByZXF1
ZXN0LmFib3J0KCk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3Ii
LCBwMSk7Cit9LCAiQ2FsbGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMg
YSBuZXcgcHJvbWlzZS4iKTsKKwogPC9zY3JpcHQ+CiA8c21hbGw+CiAgIElmIHlvdSBmaW5kIGEg
YnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVzcG9uc2UvY29tcGxldGUtbWV0aG9kLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXNwb25zZS9jb21wbGV0ZS1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggYTlkYTll
ZWQ5Y2JhZWQwNTQwZWY1NDJmNzU4OTZmNTMyYTYwZDEzZS4uZjdmYWNkNzk4MDAxNjE4OWQzZGJl
ZTY1M2EzODg5OWRhMjZiZWQ5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9jb21w
bGV0ZS1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9j
b21wbGV0ZS1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTEyLDEzICsxMiwxNiBAQCBhc3lu
YyBmdW5jdGlvbiBydW5NYW51YWxUZXN0KHsgY29tcGxldGVXaXRoOiByZXN1bHQgfSwgYnV0dG9u
KSB7CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CiAgIGNvbnN0IHsgcmVzcG9uc2UsIHJlcXVl
c3QgfSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoKTsKICAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgIGxldCBjb21wbGV0ZVByb21pc2U7CisgICAgbGV0IGludmFsaWRD
b21wbGV0ZTsKKyAgICBsZXQgYWZ0ZXJDb21wbGV0ZTsKICAgICB0cnkgewogICAgICAgLy8gV2Ug
LmNvbXBsZXRlKCkgYXMgbm9ybWFsLCB1c2luZyB0aGUgcGFzc2VkIHRlc3QgdmFsdWUKLSAgICAg
IGNvbnN0IGNvbXBsZXRlUHJvbWlzZSA9IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7CisgICAg
ICBjb21wbGV0ZVByb21pc2UgPSByZXNwb25zZS5jb21wbGV0ZShyZXN1bHQpOwogICAgICAgYXNz
ZXJ0X3RydWUoY29tcGxldGVQcm9taXNlIGluc3RhbmNlb2YgUHJvbWlzZSwgInJldHVybnMgYSBw
cm9taXNlIik7CiAgICAgICAvLyBJbW1lZGlhdGVseSBjYWxsaW5nIGNvbXBsZXRlKCkgYWdhaW4g
eWllbGRzIGEgcmVqZWN0ZWQgcHJvbWlzZS4KLSAgICAgIGNvbnN0IGludmFsaWRDb21wbGV0ZSA9
IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMo
dCwgIkludmFsaWRTdGF0ZUVycm9yIiwgaW52YWxpZENvbXBsZXRlKTsKKyAgICAgIGludmFsaWRD
b21wbGV0ZSA9IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7CisgICAgICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIGludmFsaWRDb21wbGV0ZSk7CiAg
ICAgICAvLyBidXQgdGhlIG9yaWdpbmFsIHByb21pc2UgaXMgdW5hZmZlY3RlZAogICAgICAgY29u
c3QgcmV0dXJuZWRWYWx1ZSA9IGF3YWl0IGNvbXBsZXRlUHJvbWlzZTsKICAgICAgIGFzc2VydF9l
cXVhbHMoCkBAIC0yOCw4ICszMSw4IEBAIGFzeW5jIGZ1bmN0aW9uIHJ1bk1hbnVhbFRlc3QoeyBj
b21wbGV0ZVdpdGg6IHJlc3VsdCB9LCBidXR0b24pIHsKICAgICAgICk7CiAgICAgICAvLyBXZSBu
b3cgY2FsbCAuY29tcGxldGUoKSBhZ2FpbiwgdG8gZm9yY2UgYW4gZXhjZXB0aW9uCiAgICAgICAv
LyBiZWNhdXNlIFtbY29tcGxldGVdXSBpcyB0cnVlLgotICAgICAgY29uc3QgYWZ0ZXJDb21wbGV0
ZSA9IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwgYWZ0ZXJDb21wbGV0ZSk7CisgICAgICBhZnRlckNv
bXBsZXRlID0gcmVzcG9uc2UuY29tcGxldGUocmVzdWx0KTsKKyAgICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgYWZ0ZXJDb21wbGV0ZSk7CiAgICAg
ICBidXR0b24uaW5uZXJIVE1MID0gYOKchSAgJHtidXR0b24udGV4dENvbnRlbnR9YDsKICAgICB9
IGNhdGNoIChlcnIpIHsKICAgICAgIGJ1dHRvbi5pbm5lckhUTUwgPSBg4p2MICAke2J1dHRvbi50
ZXh0Q29udGVudH1gOwpAQCAtNDEsNyArNDQsNyBAQCBhc3luYyBmdW5jdGlvbiBydW5NYW51YWxU
ZXN0KHsgY29tcGxldGVXaXRoOiByZXN1bHQgfSwgYnV0dG9uKSB7CiAgICAgICBhZnRlckNvbXBs
ZXRlLAogICAgIF0pOwogICAgIGFzc2VydF9lcXVhbHMoCi0gICAgICBhbGxQcm9taXNlcy5sZW5n
dGgsCisgICAgICBhbGxQcm9taXNlcy5zaXplLAogICAgICAgMywKICAgICAgICJDYWxsaW5nIGNv
bXBsZXRlKCkgbXVsdGlwbGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9iamVjdC4iCiAgICAgKTsK
QEAgLTY4LDcgKzcxLDcgQEAgYXN5bmMgZnVuY3Rpb24gcnVuTWFudWFsVGVzdCh7IGNvbXBsZXRl
V2l0aDogcmVzdWx0IH0sIGJ1dHRvbikgewogICAgIDwvYnV0dG9uPgogICA8L2xpPgogICA8bGk+
Ci0gICAgPGJ1dHRvbiBvbmNsaWNrPSJydW5NYW51YWxUZXN0KHtjb21wbGV0ZVdpdGg6ICd1bmtu
b3duJ30sIHRoaXMpIj4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InJ1bk1hbnVhbFRlc3Qoe2NvbXBs
ZXRlV2l0aDogdW5kZWZpbmVkfSwgdGhpcykiPgogICAgICAgUGFzc2luZyBubyBhcmd1bWVudCBk
ZWZhdWx0cyB0byAidW5rbm93biIsCiAgICAgICBldmVudHVhbGx5IGNsb3NpbmcgdGhlIHNoZWV0
IGFuZCBkb2Vzbid0IHRocm93LgogICAgIDwvYnV0dG9uPgpAQCAtNzksMTAgKzgyLDE4IEBAIGFz
eW5jIGZ1bmN0aW9uIHJ1bk1hbnVhbFRlc3QoeyBjb21wbGV0ZVdpdGg6IHJlc3VsdCB9LCBidXR0
b24pIHsKICAgICA8L2J1dHRvbj4KICAgPC9saT4KICAgPGxpPgotICAgIDxidXR0b24gb25jbGlj
az0icnVuTWFudWFsVGVzdCh7Y29tcGxldGVXaXRoOiAnZmFpbCd9LCB0aGlzKS50aGVuKGRvbmUp
Ij4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InJ1bk1hbnVhbFRlc3Qoe2NvbXBsZXRlV2l0aDogJ2Zh
aWwnfSwgdGhpcykiPgogICAgICAgUGFzc2luZyAiZmFpbCIgZXZlbnR1YWxseSBjbG9zZXMgdGhl
IHNoZWV0IGFuZCBkb2Vzbid0IHRocm93LgogICAgIDwvYnV0dG9uPgogICA8L2xpPgorICA8bGk+
CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJydW5NYW51YWxUZXN0KHtjb21wbGV0ZVdpdGg6ICd1bmtu
b3duJ30sIHRoaXMpIj4KKyAgICAgIFBhc3NpbmcgInVua25vd24iIGV2ZW50dWFsbHkgY2xvc2Vz
IHRoZSBzaGVldCBhbmQgZG9lc24ndCB0aHJvdy4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAg
PGxpPgorICAgIDxidXR0b24gb25jbGljaz0iZG9uZSgpIj5Eb25lITwvYnV0dG9uPgorICA8L2xp
PgogPC9vbD4KIDxzbWFsbD4KICAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEg
aHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5m
aWxlIGEgYnVnPC9hPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9oZWxwZXJzLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXNwb25zZS9oZWxwZXJzLmpzCmluZGV4IDgwN2Y3OTRlNzFlZmIzNWY4
NjIyZWIwYWE0NzhhZTZhNjAzOWMyNjAuLjNlNGY1Y2ZkMzZmODk4YzExNjcxN2MxMTUxODA2Zjk2
NjUxMWE5NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvaGVscGVycy5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlc3BvbnNlL2hlbHBlcnMuanMKQEAgLTEsMTAgKzEsMjEgQEAKIHNldHVw
KHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsKIAorY29u
c3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBz
Oi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAg
IG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5
Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAor
ICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CisKIGNvbnN0IHZhbGlk
TWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJk
IiwKIH0pOwogCi1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhv
ZF0pOworY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFw
cGxlUGF5XSk7CiAKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGN1cnJl
bmN5OiAiVVNEIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2Uvb25wYXllcmRldGFp
bGNoYW5nZS1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNl
L29ucGF5ZXJkZXRhaWxjaGFuZ2UtYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGM4
ZGQ5MjYzNmM2MzkyYjI0MzZjODIzNTM0MDM1NWM0NTI5ZTEyYzEuLjU3MzE5NTJjMGViYzBlODA4
NWNiMzQwYjViN2NmYzQ3ODg0OWZjOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2Uv
b25wYXllcmRldGFpbGNoYW5nZS1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
cGF5bWVudC1yZXNwb25zZS9vbnBheWVyZGV0YWlsY2hhbmdlLWF0dHJpYnV0ZS1tYW51YWwuaHR0
cHMuaHRtbApAQCAtMTYsNyArMTYsMTQgQEAgZnVuY3Rpb24gcnVuVGVzdChidXR0b24sIG9wdGlv
bnMsIGV4cGVjdGVkKXsKICAgICBhd2FpdCByZXNwb25zZS5yZXRyeSh7IGVycm9yIH0pOwogICAg
IGNvbnN0IGV2ZW50ID0gYXdhaXQgZXZlbnRQcm9taXNlOwogICAgIGFzc2VydF90cnVlKGV2ZW50
IGluc3RhbmNlb2YgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCk7Ci0gICAgZm9yKGNvbnN0IFtw
cm9wLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZXhwZWN0ZWQpKXsKKyAgICBmb3IoW3Byb3As
IHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhleHBlY3RlZCkpeworICAgICAgaWYgKHByb3AgPT09
ICdwYXllclBob25lJykgeworICAgICAgICAvLyB8cGF5ZXJQaG9uZXwgbWF5IG9wdGlvbmFsbHkg
YWRoZXJlIHRvIEUxNjQgc3RydWN0dXJlLCB3aGljaCBkb2VzIG5vdAorICAgICAgICAvLyBjb250
YWluIGZvcm1hdHRpbmcsIGUuZy4gKzE4MDAwMDAwMCBpbnN0ZWFkIG9mICsxLTgwMC0wMDAtMDAw
MC4KKyAgICAgICAgLy8gU3RyaXAgb3V0IHRoZSBmb3JtYXR0aW5nIGluIGNhc2UgdGhlIHVzZXIg
YWdlbnQgaW1wbGVtZW50cyBFMTY0LgorICAgICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8v
cGF5bWVudC1yZXF1ZXN0LyNhZGRyZXNzaW5pdC1kaWN0aW9uYXJ5CisgICAgICAgIHZhbHVlID0g
dmFsdWUucmVwbGFjZSgvWy1cKFwpIF0vZywgJycpOworICAgICAgfQogICAgICAgYXNzZXJ0X2Vx
dWFscyhyZXNwb25zZVtwcm9wXSwgdmFsdWUpOwogICAgIH0KICAgICBhd2FpdCByZXNwb25zZS5j
b21wbGV0ZSgic3VjY2VzcyIpOwpAQCAtNTIsNyArNTksNyBAQCBmdW5jdGlvbiBydW5UZXN0KGJ1
dHRvbiwgb3B0aW9ucywgZXhwZWN0ZWQpewogICAgIDxwPgogICAgICAgQ2hhbmdlIHBheWVyJ3Mg
cGhvbmUgdG8gIisxLTgwMC0wMDAtMDAwMCIuCiAgICAgPC9wPgotICAgIDxidXR0b24gb25jbGlj
az0icnVuVGVzdCh0aGlzLCB7cmVxdWVzdFBheWVyUGhvbmU6IHRydWV9LCB7IHBheWVyUGhvbmU6
ICcrMS04MDAtMDAwLTAwMDAnIH0pIj4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InJ1blRlc3QodGhp
cywge3JlcXVlc3RQYXllclBob25lOiB0cnVlfSwgeyBwYXllclBob25lOiAnKzE4MDAwMDAwMDAw
JyB9KSI+CiAgICAgICBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IGlzIGRpc3BhdGNoZWQgd2hl
biBwYXllciBwaG9uZSBjaGFuZ2VzLgogICAgIDwvYnV0dG9uPgogICA8L2xpPgpAQCAtNjIsNSAr
NjksNSBAQCBmdW5jdGlvbiBydW5UZXN0KGJ1dHRvbiwgb3B0aW9ucywgZXhwZWN0ZWQpewogPC9v
bD4KIDxzbWFsbD4KICAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0i
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEg
YnVnPC9hPgotICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L09XTkVS
UyI+b3duZXJzPC9hPi4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVz
dC9NRVRBLnltbCI+b3duZXJzPC9hPi4KIDwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRhdGVXaXRoLWltbWVkaWF0ZS1tYW51YWwu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFu
Z2UtdXBkYXRlV2l0aC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMGJlNTAzMzg2OWFlMTFjNTFhMzlhYzZhMjc5NjIwYmQ5NGQyM2E2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0
aC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitI
YW5kbGluZyBQYXltZW50UmVzcG9uc2UucHJvdG90eXBlLm9ucGF5ZXJkZXRhaWxjaGFuZ2UgZXZl
bnRzCisKK1RoZSB0ZXN0IGJyaW5ncyB1cCB0aGUgUGF5bWVudCBSZXF1ZXN0IFVJIHdpbmRvdy4g
V2hlbiBzaG93biB0aGUgcGF5bWVudCBzaGVldCwgdXNlIGFueSBkZXRhaWxzIGFuZCBoaXQgcGF5
LgorCitXaGVuIGFza2VkIHRvIHJldHJ5IHRoZSBwYXltZW50OgorCitDaGFuZ2UgcGF5ZXIncyBu
YW1lIHRvIGFueXRoaW5nLgorCit1cGRhdGVXaXRoKCkgbXVzdCBiZSBjYWxsZWQgaW1tZWRpYXRl
bHksIG90aGVyd2lzZSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yLgorRE9ORSEKK0lm
IHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2Yg
dGhlIG93bmVycy4KKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisK
K1BBU1MgQ2FuIGNvbnN0cnVjdCBhIHBheW1lbnQgcmVxdWVzdCAoc21va2UgdGVzdCkuIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRhdGVX
aXRoLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5
ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgtaW1tZWRpYXRlLW1hbnVhbC5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdlMzVkNzg3MDA2ZWJiNTU0YzMwNWFiYzM4YTQyN2E0MTM1Njc2ZjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRh
dGVXaXRoLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+RGlzcGF0Y2hpbmcgUGF5
bWVudFJlcXVlc3RVcGRhdGVFdmVudCBmb3IgInBheWVyZGV0YWlsc2NoYW5nZSI8L3RpdGxlPgor
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdEltbWVkaWF0
ZVVwZGF0ZSh7IHRleHRDb250ZW50OiB0ZXN0TmFtZSB9KSB7CisgIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldFBheW1lbnRSZXNwb25zZSh7
IHJlcXVlc3RQYXllck5hbWU6IHRydWUgfSk7CisgICAgY29uc3QgZXZlbnRQcm9taXNlID0gbmV3
IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgcmVzcG9uc2UuYWRkRXZlbnRM
aXN0ZW5lcigKKyAgICAgICAgInBheWVyZGV0YWlsY2hhbmdlIiwKKyAgICAgICAgZXYgPT4gewor
ICAgICAgICAgIC8vIEZvcmNlcyB1cGRhdGVXaXRoKCkgdG8gYmUgcnVuIGluIHRoZSBuZXh0IGV2
ZW50IGxvb3AgdGljayBzbyB0aGF0CisgICAgICAgICAgLy8gW1t3YWl0Rm9yVXBkYXRlXV0gaXMg
YWxyZWFkeSB0cnVlIHdoZW4gaXQgcnVucy4KKyAgICAgICAgICB0LnN0ZXBfdGltZW91dCgoKSA9
PiB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICBldi51cGRhdGVXaXRoKHt9KTsK
KyAgICAgICAgICAgICAgcmVzb2x2ZSgpOyAvLyBUaGlzIGlzIGJhZC4KKyAgICAgICAgICAgIH0g
Y2F0Y2ggKGVycikgeworICAgICAgICAgICAgICByZWplY3QoZXJyKTsgLy8gdGhpcyBpcyBnb29k
LgorICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAgICAgICB9LAorICAgICAgICB7IG9u
Y2U6IHRydWUgfQorICAgICAgKTsKKyAgICB9KTsKKworICAgIGNvbnN0IHJldHJ5UHJvbWlzZSA9
IHJlc3BvbnNlLnJldHJ5KHsKKyAgICAgIHBheWVyOiB7IG5hbWU6ICJDaGFuZ2UgbWUhIiB9LAor
ICAgIH0pOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICB0LAorICAgICAg
IkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgIGV2ZW50UHJvbWlzZSwKKyAgICAgICJUaGUgZXZl
bnQgbG9vcCBhbHJlYWR5IHNwdW4sIHNvIFtbd2FpdEZvclVwZGF0ZV1dIGlzIG5vdyB0cnVlIgor
ICAgICk7CisgICAgYXdhaXQgcmV0cnlQcm9taXNlOworICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBs
ZXRlKCJzdWNjZXNzIik7CisgIH0sIHRlc3ROYW1lLnRyaW0oKSk7Cit9Cis8L3NjcmlwdD4KKzxo
Mj5IYW5kbGluZyBQYXltZW50UmVzcG9uc2UucHJvdG90eXBlLm9ucGF5ZXJkZXRhaWxjaGFuZ2Ug
ZXZlbnRzPC9oMj4KKzxwPgorICBUaGUgdGVzdCBicmluZ3MgdXAgdGhlIFBheW1lbnQgUmVxdWVz
dCBVSSB3aW5kb3cuCisgIFdoZW4gc2hvd24gdGhlIHBheW1lbnQgc2hlZXQsIHVzZSBhbnkgZGV0
YWlscyBhbmQgaGl0IHBheS4KKzwvcD4KKzxwPgorICBXaGVuIGFza2VkIHRvIHJldHJ5IHRoZSBw
YXltZW50OgorPC9wPgorPG9sPgorICA8bGk+CisgICAgPHA+CisgICAgICBDaGFuZ2UgcGF5ZXIn
cyBuYW1lIHRvIGFueXRoaW5nLgorICAgIDwvcD4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InRlc3RJ
bW1lZGlhdGVVcGRhdGUodGhpcyk7Ij4KKyAgICAgIHVwZGF0ZVdpdGgoKSBtdXN0IGJlIGNhbGxl
ZCBpbW1lZGlhdGVseSwgb3RoZXJ3aXNlIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Iu
CisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9ImRv
bmUoKTsiPkRPTkUhPC9idXR0b24+CisgIDwvbGk+Cis8L29sPgorPHNtYWxsPgorICBJZiB5b3Ug
ZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMiPmZpbGUgYSBidWc8L2E+CisgIGFuZCB0YWcgb25l
IG9mIHRoZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwiPm93bmVyczwvYT4uCis8L3Nt
YWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2Ut
dXBkYXRlV2l0aC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY5M2Q3YTVhZWNhZTEwMzZhZmEzMGQwZDgyOTQ5NDVmZWYzY2E3MzkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11
cGRhdGVXaXRoLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorSGFu
ZGxpbmcgUGF5bWVudFJlc3BvbnNlLnByb3RvdHlwZS5vbnBheWVyZGV0YWlsY2hhbmdlIGV2ZW50
cworCitUaGUgdGVzdCBicmluZ3MgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuIFdo
ZW4gc2hvd24gdGhlIHBheW1lbnQgc2hlZXQsIHVzZSBhbnkgZGV0YWlscyBhbmQgaGl0IHBheS4K
KworV2hlbiBhc2tlZCB0byByZXRyeSB0aGUgcGF5bWVudDoKKworQ2hhbmdlIHBheWVyJ3MgbmFt
ZSB0byBhbnl0aGluZy4KKworQ2FsbGluZyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IHVwZGF0
ZVdpdGgoKSB0d2ljZSB0aHJvd3MgYW4gIkludmFsaWRTdGF0ZUVycm9yIi4KK0RPTkUhCitJZiB5
b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRo
ZSBvd25lcnMuCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitQ
QVNTIENhbiBjb25zdHJ1Y3QgYSBwYXltZW50IHJlcXVlc3QgKHNtb2tlIHRlc3QpLiAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0
aC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hh
bmdlLXVwZGF0ZVdpdGgtbWFudWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE3MzQyMzY1ZDY0
NGY2NDcwZWEyY2UyNWZlODVjZmZhZTY0Nzk0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgtbWFudWFsLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw1NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPkRpc3BhdGNoaW5nIFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQgZm9yICJwYXll
cmRldGFpbHNjaGFuZ2UiPC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIHJ1blRlc3QoYnV0dG9uKSB7CisgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7
CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0
IGdldFBheW1lbnRSZXNwb25zZSh7IHJlcXVlc3RQYXllck5hbWU6IHRydWUgfSk7CisgICAgY29u
c3QgZXZlbnRQcm9taXNlID0gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4geworICAgICAgcmVz
cG9uc2UuYWRkRXZlbnRMaXN0ZW5lcigicGF5ZXJkZXRhaWxjaGFuZ2UiLCBldiA9PiB7CisgICAg
ICAgIC8vIFtbd2FpdEZvclVwZGF0ZV1dIGJlY29tZXMgdHJ1ZS4uLgorICAgICAgICBldi51cGRh
dGVXaXRoKHt9KTsKKyAgICAgICAgLy8gU28gY2FsbGluZyBpdCBhZ2FpbiB0aHJvd3MgIkludmFs
aWRTdGF0ZUVycm9yIi4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBldi51cGRhdGVXaXRoKHt9
KTsKKyAgICAgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICAgICAgcmVqZWN0KGVycik7CisgICAg
ICAgIH0KKyAgICAgIH0pOworICAgIH0pOworICAgIGF3YWl0IHJlc3BvbnNlLnJldHJ5KHsKKyAg
ICAgIHBheWVyOiB7IG5hbWU6ICJDaGFuZ2UgbWUhIiB9LAorICAgIH0pOworICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgZXZlbnRQcm9taXNlKTsK
KyAgICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3VjY2VzcyIpOworICB9LCBidXR0b24udGV4
dENvbnRlbnQudHJpbSgpKTsKK30KKzwvc2NyaXB0PgorPGgyPkhhbmRsaW5nIFBheW1lbnRSZXNw
b25zZS5wcm90b3R5cGUub25wYXllcmRldGFpbGNoYW5nZSBldmVudHM8L2gyPgorPHA+CisgIFRo
ZSB0ZXN0IGJyaW5ncyB1cCB0aGUgUGF5bWVudCBSZXF1ZXN0IFVJIHdpbmRvdy4KKyAgV2hlbiBz
aG93biB0aGUgcGF5bWVudCBzaGVldCwgdXNlIGFueSBkZXRhaWxzIGFuZCBoaXQgcGF5LgorPC9w
PgorPHA+CisgIFdoZW4gYXNrZWQgdG8gcmV0cnkgdGhlIHBheW1lbnQ6Cis8L3A+Cis8b2w+Cisg
IDxsaT4KKyAgICA8cD4KKyAgICAgIENoYW5nZSBwYXllcidzIG5hbWUgdG8gYW55dGhpbmcuCisg
ICAgPC9wPgorICAgIDxidXR0b24gb25jbGljaz0icnVuVGVzdCh0aGlzKTsiPgorICAgICAgQ2Fs
bGluZyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IHVwZGF0ZVdpdGgoKSB0d2ljZSB0aHJvd3Mg
YW4gIkludmFsaWRTdGF0ZUVycm9yIi4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgor
ICAgIDxidXR0b24gb25jbGljaz0iZG9uZSgpOyI+RE9ORSE8L2J1dHRvbj4KKyAgPC9saT4KKzwv
b2w+Cis8c21hbGw+CisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9
Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBh
IGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRB
LnltbCI+b3duZXJzPC9hPi4KKzwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3Bv
bnNlL3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVzcG9uc2UvcmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDYw
ZGQ5NjU1ZGQ1YmFmY2RiNzc2OGI5Mjk2OTZjYjkxMDQyMTRiMjkuLjI4YmI1MzMxM2RjZTkyNjY0
NTNiODlmM2JkOThkN2MwMWNiOWVhNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2Uv
cmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVzcG9uc2UvcmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVhbC5odHRwcy5odG1sCkBAIC0xMSw3
ICsxMSwxNyBAQCBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6
IHRydWUgfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0
ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVj
dC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUo
eworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAg
ZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hh
bnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2Fw
YWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlz
YSJdLAorICB9Cit9KTsKK2NvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlk
TWV0aG9kLCBhcHBsZVBheV0pOwogY29uc3QgdmFsaWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsK
ICAgY3VycmVuY3k6ICJVU0QiLAogICB2YWx1ZTogIjUuMDAiLApAQCAtNjIsNyArNzIsNyBAQCBm
dW5jdGlvbiBtZXRob2ROb3RGdWxseUFjdGl2ZShidXR0b24sIG1ldGhvZCwgLi4uYXJncykgewog
ICAgIC8vIE5vdywgcmVzcG9uc2UncyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQg
aXMgbm8gbG9uZ2VyIGFjdGl2ZS4KICAgICAvLyBTbywgcHJvbWlzZSBuZWVkcyB0byByZWplY3Qg
YXBwcm9wcmlhdGVseS4KICAgICBjb25zdCBwcm9taXNlID0gcmVzcG9uc2VbbWV0aG9kTmFtZV0o
Li4uYXJncyk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgcHJvbWlz
ZSwKQEAgLTk3LDcgKzEwNyw3IEBAIGZ1bmN0aW9uIG1ldGhvZEJlY29tZXNOb3RGdWxseUFjdGl2
ZShidXR0b24sIG1ldGhvZE5hbWUsIC4uLmFyZ3MpIHsKIAogICAgIC8vIE5vdywgcmVzcG9uc2Un
cyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4K
ICAgICAvLyBTbywgcHJvbWlzZSBuZWVkcyB0byByZWplY3QgYXBwcm9wcmlhdGVseS4KLSAgICBh
d2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAg
ICAgIHQsCiAgICAgICAiQWJvcnRFcnJvciIsCiAgICAgICBwcm9taXNlLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXNwb25zZS9yZXRyeS1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbAppbmRleCAxNmVk
MTVlNTQ5MDJiOTM0ODVlZTNiZTdhMjYzNTgyM2U4NzYzYjA2Li5hNWFhYjQ5ZTM4N2QzMjZjNjhi
Y2NhMzJkMmFkNWZlNTkzODVmNTE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3Jl
dHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3Jl
dHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBj
aGVja0NvbXBsZXRlZENhbnRSZXRyeShidXR0b24pIHsKICAgICBjb25zdCB7IHJlc3BvbnNlIH0g
PSBhd2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3BvbnNlKCk7CiAgICAgLy8gc2V0cyByZXNwb25z
ZS5bW2NvbXBsZXRlXV0gdG8gdHJ1ZS4KICAgICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3Vj
Y2VzcyIpOwotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMoCisgICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAg
IHJlc3BvbnNlLnJldHJ5KCksCkBAIC0zOSw3ICszOSw3IEBAIGZ1bmN0aW9uIHJlcGVhdGVkQ2Fs
bHNUb1JldHJ5KGJ1dHRvbikgewogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29u
c3QgeyByZXNwb25zZSB9ID0gYXdhaXQgZ2V0UGF5bWVudFJlcXVlc3RSZXNwb25zZSgpOwogICAg
IGNvbnN0IHJldHJ5UHJvbWlzZSA9IHJlc3BvbnNlLnJldHJ5KCk7Ci0gICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAg
ICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIHJlc3BvbnNlLnJldHJ5KCksCkBAIC01NSwx
MiArNTUsMzAgQEAgZnVuY3Rpb24gY2FsbENvbXBsZXRlV2hpbGVSZXRyeWluZyhidXR0b24pIHsK
ICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF3
YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoKTsKICAgICBjb25zdCByZXRyeVByb21pc2Ug
PSByZXNwb25zZS5yZXRyeSgpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBjb25z
dCBjb21wbGV0ZVByb21pc2UxID0gcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiKTsKKyAgICBj
b25zdCBjb21wbGV0ZVByb21pc2UyID0gcmVzcG9uc2UuY29tcGxldGUoImZhaWwiKTsKKyAgICBh
c3NlcnRfbm90X2VxdWFscygKKyAgICAgIGNvbXBsZXRlUHJvbWlzZTEsCisgICAgICBjb21wbGV0
ZVByb21pc2UyLAorICAgICAgImNvbXBsZXRlKCkgbXVzdCByZXR1cm4gdW5pcXVlIHByb21pc2Vz
IgorICAgICk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAg
ICAiSW52YWxpZFN0YXRlRXJyb3IiLAotICAgICAgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3Mi
KSwKKyAgICAgIGNvbXBsZXRlUHJvbWlzZTEsCisgICAgICAiQ2FsbGluZyBjb21wbGV0ZSgpIHdo
aWxlIHJldHJ5aW5nIHJlamVjdHMgd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvciIKKyAgICApOwor
ICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICB0LAorICAgICAgIkludmFsaWRT
dGF0ZUVycm9yIiwKKyAgICAgIGNvbXBsZXRlUHJvbWlzZTIsCiAgICAgICAiQ2FsbGluZyBjb21w
bGV0ZSgpIHdoaWxlIHJldHJ5aW5nIHJlamVjdHMgd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvciIK
ICAgICApOworICAgIGFzc2VydF9ub3RfZXF1YWxzKAorICAgICAgY29tcGxldGVQcm9taXNlMSwK
KyAgICAgIGNvbXBsZXRlUHJvbWlzZTIsCisgICAgICAiY29tcGxldGUoKSBtdXN0IHJldHVybiB1
bmlxdWUgcHJvbWlzZXMiCisgICAgKTsKICAgICBhd2FpdCByZXRyeVByb21pc2U7CiAgICAgYXdh
aXQgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiKTsKICAgfSwgYnV0dG9uLnRleHRDb250ZW50
LnRyaW0oKSk7CkBAIC03MSw3ICs4OSw3IEBAIGZ1bmN0aW9uIGNhbGxpbmdSZXF1ZXN0QWJvcnRN
dXN0Tm90QWJvcnQoYnV0dG9uKSB7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBj
b25zdCB7IHJlc3BvbnNlLCByZXF1ZXN0IH0gPSBhd2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3Bv
bnNlKCk7CiAgICAgY29uc3QgcmV0cnlQcm9taXNlID0gcmVzcG9uc2UucmV0cnkoKTsKLSAgICBh
d2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAg
ICAgIHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgcmVxdWVzdC5hYm9ydCgp
LApAQCAtOTcsNyArMTE1LDcgQEAgZnVuY3Rpb24gY2FuUmV0cnlNdWx0aXBsZVRpbWVzKGJ1dHRv
bikgewogICAgICAgIkV4cGVjdGVkIHVuZGVmaW5lZCBhcyB0aGUgcmVzb2x2ZSB2YWx1ZSIKICAg
ICApOwogICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRlKCJzdWNjZXNzIik7Ci0gICAgYXdhaXQg
cHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0
LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIHJlc3BvbnNlLnJldHJ5KCksCkBA
IC0xMTAsMTkgKzEyOCwxOSBAQCBmdW5jdGlvbiB1c2VyQ2FuQWJvcnRBUmV0cnkoYnV0dG9uKSB7
CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSBhd2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3BvbnNl
KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20oCiAgICAgICB0LAogICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgcmVzcG9uc2UucmV0
cnkoKSwKICAgICAgICJUaGUgdXNlciBhYm9ydGluZyBhIHJldHJ5IHJlamVjdHMgd2l0aCBhIEFi
b3J0RXJyb3IiCiAgICAgKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQg
cHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3Ii
LAogICAgICAgcmVzcG9uc2UucmV0cnkoKSwKICAgICAgICJBZnRlciB0aGUgdXNlciBhYm9ydHMs
IHJlc3BvbnNlIFtbY29tcGxldGVdXSBpcyB0cnVlIHNvIHJldHJ5KCkgbXVzdCByZWplY3Qgd2l0
aCBJbnZhbGlkU3RhdGVFcnJvciIKICAgICApOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygK
KyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgdCwKICAgICAgICJJbnZhbGlk
U3RhdGVFcnJvciIsCiAgICAgICByZXNwb25zZS5jb21wbGV0ZSgic3VjY2VzcyIpLApAQCAtMTQ2
LDIzICsxNjQsMjUgQEAgZnVuY3Rpb24gdXNlcklzU2hvd25FcnJvcnNGaWVsZHMoYnV0dG9uKSB7
CiBmdW5jdGlvbiBhYm9ydFRoZVVwZGF0ZShidXR0b24pIHsKICAgYnV0dG9uLmRpc2FibGVkID0g
dHJ1ZTsKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0IHsgcmVzcG9uc2Us
IHJlcXVlc3QgfSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoeyByZXF1ZXN0U2hp
cHBpbmc6IHRydWUgfSk7Ci0gICAgLy8gY2F1c2VzICJhYm9ydCB0aGUgdXBkYXRlIiB0byBydW4K
LSAgICBjb25zdCBzaGlwcGluZ0NoYW5nZWRQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7Ci0gICAgICByZXF1ZXN0Lm9uc2hpcHBpbmdvcHRpb25jaGFuZ2UgPSAoKSA9PiB7Ci0gICAg
ICAgIGV2ZW50LnVwZGF0ZVdpdGgoeyB0b3RhbDogeyBhbW91bnQ6IHsgY3VycmVuY3k6ICJVU0Qi
LCB2YWx1ZTogIklOVkFMSUQiIH0gfX0pOworICAgIGNvbnN0IHsgcmVzcG9uc2UsIHJlcXVlc3Qg
fSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoeworICAgICAgcmVxdWVzdFNoaXBw
aW5nOiB0cnVlLAorICAgIH0pOworICAgIGNvbnN0IHNoaXBPcHRpb25DaGFuZ2VQcm9taXNlID0g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICByZXF1ZXN0Lm9uc2hpcHBpbmdvcHRpb25j
aGFuZ2UgPSBldmVudCA9PiB7CisgICAgICAgIC8vIGNhdXNlcyAiYWJvcnQgdGhlIHVwZGF0ZSIg
dG8gcnVuCisgICAgICAgIGV2ZW50LnVwZGF0ZVdpdGgoeyB0b3RhbDogImVycm9yISIgfSk7CiAg
ICAgICAgIHJlc29sdmUoKTsKICAgICAgIH07CiAgICAgfSk7CiAgICAgY29uc3QgcmV0cnlQcm9t
aXNlID0gcmVzcG9uc2UucmV0cnkoKTsKLSAgICBhd2FpdCBzaGlwcGluZ0NoYW5nZWRQcm9taXNl
OwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBzaGlwT3B0aW9uQ2hhbmdl
UHJvbWlzZTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfanMoCiAgICAgICB0LAotICAgICAg
bmV3IFR5cGVFcnJvcigpLAorICAgICAgVHlwZUVycm9yLAogICAgICAgcmV0cnlQcm9taXNlLAog
ICAgICAgInJldHJ5KCkgYWJvcnRzIHdpdGggYSBUeXBlRXJyb3IsIGJlY2F1c2UgdG90YWxzJyB2
YWx1ZSBpcyBpbnZhbGlkIgogICAgICk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0
ZUVycm9yIiwKICAgICAgIHJlc3BvbnNlLmNvbXBsZXRlKCJzdWNjZXNzIiksCkBAIC0yNDcsNyAr
MjY3LDkgQEAgZnVuY3Rpb24gY2FsbGluZ1JldHJ5UmV0dXJuc1VuaXF1ZVByb21pc2UoYnV0dG9u
KXsKICAgPC9saT4KICAgPGxpPgogICAgIDxwPgotICAgICAgV2hlbiBzaG93biB0aGUgcGF5bWVu
dCBzaGVldCwgaGl0IHBheSBvbmNlLiBUaGVuIHJldHJ5IG9uY2UuCisgICAgICBXaGVuIHNob3du
IHRoZSBwYXltZW50IHNoZWV0LCBoaXQgcGF5IG9uY2UuCisgICAgICBUaGVuLCBjaGFuZ2UgdGhl
IHNoaXBwaW5nIG9wdGlvbi4KKyAgICAgIFNlbGVjdCB0byBwYXkgYWdhaW4uCiAgICAgPC9wPgog
ICAgIDxidXR0b24gb25jbGljaz0iYWJvcnRUaGVVcGRhdGUodGhpcyk7Ij4KICAgICAgIFdoZW4g
ImFib3J0IHRoZSB1cGRhdGUiIG9jY3VycyBiZWNhdXNlIG9mIGFuIHVwZGF0ZSBlcnJvciwKQEAg
LTI2OSw2ICsyOTEsNiBAQCBmdW5jdGlvbiBjYWxsaW5nUmV0cnlSZXR1cm5zVW5pcXVlUHJvbWlz
ZShidXR0b24pewogICA8L2xpPgogPC9vbD4KIDxzbWFsbD4KLSAgSWYgeW91IGZpbmQgYSBidWdn
eSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgotICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEg
aHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmxvYi9tYXN0
ZXIvcGF5bWVudC1yZXF1ZXN0L09XTkVSUyI+b3duZXJzPC9hPi4KKyAgSWYgeW91IGZpbmQgYSBi
dWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUg
PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9t
YXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sIj5vd25lcnM8L2E+LgogPC9zbWFsbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVh
bC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC13
YXJuaW5ncy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NWViODNlNTY2
OGI5N2Q2YzU5N2Y1YjgzYWQ4ZDAzZDlmZWRjNmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC13YXJuaW5ncy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjggQEAKK01hbnVhbCBUZXN0cyAtIFBsZWFzZSBydW4gaW4gb3JkZXIh
CisKK1BsZWFzZSBvcGVuIHRoZSBkZXZlbG9wZXIgY29uc29sZS4gRWFjaCBvZiB0aGUgdGVzdHMg
YmVsb3cgc2hvdWxkIGdlbmVyYXRlIGEgd2FybmluZyBpbiB0aGUgZGV2ZWxvcGVyIGNvbnNvbGUu
CisKK1doZW4gcHJlc2VudGVkIHdpdGggdGhlIHBheW1lbnQgc2hlZXQsIGhpdCBwYXkgdHdpY2Uu
CisKK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFBheWVyTmFtZWAgaWYgZmFsc2UsIGFuZCBgZXJy
b3JGaWVsZHMucGF5ZXIubmFtZWAgaXMgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVz
dFBheWVyRW1haWxgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnBheWVyLmVtYWlsYCBpcyBw
cmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0UGF5ZXJQaG9uZWAgaWYgZmFsc2UsIGFu
ZCBgZXJyb3JGaWVsZHMucGF5ZXIucGhvbmVgIGlzIHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYg
YHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRy
ZXNzYCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBp
ZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MuYWRkcmVzc0xpbmVgIG1l
bWJlciBwcmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNl
LCBhbmQgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5jaXR5YCBtZW1iZXIgcHJlc2VudC4K
K1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZp
ZWxkcy5zaGlwcGluZ0FkZHJlc3MuY291bnRyeWAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdhcm5p
bmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBp
bmdBZGRyZXNzLmRlcGVuZGVudExvY2FsaXR5YCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2Fybmlu
ZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGlu
Z0FkZHJlc3Mub3JnYW5pemF0aW9uYCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBg
cmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJl
c3MucGhvbmVgIG1lbWJlciBwcmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBp
bmdgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5wb3N0YWxDb2Rl
YCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBm
YWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucmVjaXBpZW50YCBtZW1iZXIg
cHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5k
IGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucmVnaW9uYCBtZW1iZXIgcHJlc2VudC4KK1No
b3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxk
cy5zaGlwcGluZ0FkZHJlc3MucmVnaW9uQ29kZWAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdhcm5p
bmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBp
bmdBZGRyZXNzLnNvcnRpbmdDb2RlYCBtZW1iZXIgcHJlc2VudC4KK0RvbmUhCisKK0hhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitQQVNTIENhbiBjb25zdHJ1Y3QgYSBw
YXltZW50IHJlcXVlc3QgKHNtb2tlIHRlc3QpLiAKK1BBU1MgUGF5bWVudFJlc3BvbnNlLnByb3Rv
dHlwZSBtdXN0IGhhdmUgYSByZXRyeSgpIGZ1bmN0aW9uIChzbW9rZSB0ZXN0KS4gCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZXRyeS1tZXRob2Qtd2FybmluZ3MtbWFu
dWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY4YmYxODMwOTcwMmM0ODFjNzZhZGVmMGNkZGVl
MjRjYmQxYjU0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0cnkt
bWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTU4IEBACis8IURP
Q1RZUEUgaHRtbD4gPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cis8dGl0bGU+V2FybiB3aGVuIGVy
cm9yRmllbGRzIGRvbid0IG1hdGNoIHJlcXVlc3RbW29wdGlvbnNdXTwvdGl0bGU+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcGF5bWVudC1yZXF1ZXN0L3B1
bGwvODA3IiAvPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9ImhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgdGVz
dCgoKSA9PiB7CisgICAgYXNzZXJ0X3RydWUoCisgICAgICAicmV0cnkiIGluIFBheW1lbnRSZXNw
b25zZS5wcm90b3R5cGUsCisgICAgICAicmV0cnkgbXVzdCBiZSBpbiBwcm90b3R5cGUiCisgICAg
KTsKKyAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgIFBheW1lbnRSZXNwb25zZS5wcm90b3R5cGUucmV0
cnkgaW5zdGFuY2VvZiBGdW5jdGlvbiwKKyAgICAgICJyZXRyeSBtdXN0IGJlIGEgZnVuY3Rpb24i
CisgICAgKTsKKyAgfSwgIlBheW1lbnRSZXNwb25zZS5wcm90b3R5cGUgbXVzdCBoYXZlIGEgcmV0
cnkoKSBmdW5jdGlvbiAoc21va2UgdGVzdCkuIik7CisKKyAgY29uc3QgZGVmYXVsdE9wdGlvbnMg
PSB7CisgICAgcmVxdWVzdFBheWVyTmFtZTogZmFsc2UsCisgICAgcmVxdWVzdFBheWVyRW1haWw6
IGZhbHNlLAorICAgIHJlcXVlc3RQYXllclBob25lOiBmYWxzZSwKKyAgICByZXF1ZXN0U2hpcHBp
bmc6IGZhbHNlLAorICB9OworICBmdW5jdGlvbiB0ZXN0U2hvd1dhcm5pbmcoYnV0dG9uLCBlcnJv
ckZpZWxkcykgeworICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CisgICAgcHJvbWlzZV90ZXN0
KGFzeW5jICgpID0+IHsKKyAgICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF3YWl0IGdldFBheW1l
bnRSZXF1ZXN0UmVzcG9uc2UoZGVmYXVsdE9wdGlvbnMpOworICAgICAgYXdhaXQgcmVzcG9uc2Uu
cmV0cnkoZXJyb3JGaWVsZHMpOworICAgICAgYXdhaXQgcmVzcG9uc2UuY29tcGxldGUoKTsKKyAg
ICB9KTsKKyAgfQorPC9zY3JpcHQ+Cis8aDI+TWFudWFsIFRlc3RzIC0gUGxlYXNlIHJ1biBpbiBv
cmRlciE8L2gyPgorPHA+CisgIFBsZWFzZSBvcGVuIHRoZSBkZXZlbG9wZXIgY29uc29sZS4gRWFj
aCBvZiB0aGUgdGVzdHMgYmVsb3cgc2hvdWxkIGdlbmVyYXRlIGEKKyAgd2FybmluZyBpbiB0aGUg
ZGV2ZWxvcGVyIGNvbnNvbGUuCis8L3A+Cis8cD5XaGVuIHByZXNlbnRlZCB3aXRoIHRoZSBwYXlt
ZW50IHNoZWV0LCBoaXQgcGF5IHR3aWNlLjwvcD4KKzxvbD4KKyAgPGxpPgorICAgIDxidXR0b24g
b25jbGljaz0idGVzdFNob3dXYXJuaW5nKHRoaXMsIHtwYXllcjoge25hbWU6ICdEb250IHNob3cg
dGhpcyd9fSk7Ij4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFBheWVyTmFtZWAgaWYg
ZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMucGF5ZXIubmFtZWAgaXMKKyAgICAgIHByZXNlbnQuCisg
ICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNr
PSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3BheWVyOiB7ZW1haWw6ICdEb250IHNob3cgdGhpcyd9
fSk7IgorICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFBheWVyRW1haWxgIGlm
IGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnBheWVyLmVtYWlsYAorICAgICAgaXMgcHJlc2VudC4K
KyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xp
Y2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7cGF5ZXI6IHtwaG9uZTogJ0RvbnQgc2hvdyB0aGlz
J319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0UGF5ZXJQaG9uZWAg
aWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMucGF5ZXIucGhvbmVgCisgICAgICBpcyBwcmVzZW50
LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0
ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczoge319KTsiPgorICAgICAgU2hv
dyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJv
ckZpZWxkcy5zaGlwcGluZ0FkZHJlc3NgIG1lbWJlciBwcmVzZW50LgorICAgIDwvYnV0dG9uPgor
ICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbgorICAgICAgb25jbGljaz0idGVzdFNob3dXYXJu
aW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJlc3M6IHthZGRyZXNzTGluZTogJ0RvbnQgc2hvdyB0aGlz
J319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlm
IGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MuYWRkcmVzc0xp
bmVgIG1lbWJlciBwcmVzZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAg
PGJ1dHRvbgorICAgICAgb25jbGljaz0idGVzdFNob3dXYXJuaW5nKHRoaXMsIHtzaGlwcGluZ0Fk
ZHJlc3M6IHtjaXR5OiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdh
cm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmll
bGRzLnNoaXBwaW5nQWRkcmVzcy5jaXR5YCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4K
KyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2Fy
bmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7Y291bnRyeTogJ0RvbnQgc2hvdyB0aGlzJ319
KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZh
bHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MuY291bnRyeWAgbWVt
YmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9u
CisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczog
e2RlcGVuZGVudExvY2FsaXR5OiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAgICA+CisgICAgICBT
aG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZAorICAgICAgYGVy
cm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5kZXBlbmRlbnRMb2NhbGl0eWAgbWVtYmVyIHByZXNl
bnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBv
bmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczoge29yZ2FuaXph
dGlvbjogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlm
IGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlw
cGluZ0FkZHJlc3Mub3JnYW5pemF0aW9uYCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4K
KyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2Fy
bmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7cGhvbmU6ICdEb250IHNob3cgdGhpcyd9fSk7
IgorICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxz
ZSwgYW5kCisgICAgICBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLnBob25lYCBtZW1iZXIg
cHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAg
ICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7cG9z
dGFsQ29kZTogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5n
IGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5z
aGlwcGluZ0FkZHJlc3MucG9zdGFsQ29kZWAgbWVtYmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+
CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dh
cm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczoge3JlY2lwaWVudDogJ0RvbnQgc2hvdyB0aGlz
J319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlm
IGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucmVjaXBpZW50
YCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxi
dXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdBZGRy
ZXNzOiB7cmVnaW9uOiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdh
cm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmll
bGRzLnNoaXBwaW5nQWRkcmVzcy5yZWdpb25gIG1lbWJlciBwcmVzZW50LgorICAgIDwvYnV0dG9u
PgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbgorICAgICAgb25jbGljaz0idGVzdFNob3dX
YXJuaW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJlc3M6IHtyZWdpb25Db2RlOiAnRG9udCBzaG93IHRo
aXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2Ag
aWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5yZWdpb25D
b2RlYCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAg
IDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdB
ZGRyZXNzOiB7c29ydGluZ0NvZGU6ICdEb250IHNob3cgdGhpcyd9fSk7IgorICAgID4KKyAgICAg
IFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kCisgICAgICBg
ZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLnNvcnRpbmdDb2RlYCBtZW1iZXIgcHJlc2VudC4K
KyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPjxidXR0b24gb25jbGljaz0iZG9uZSgpIj5E
b25lITwvYnV0dG9uPjwvbGk+Cis8L29sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvdzNjLWltcG9ydC5sb2cKaW5k
ZXggMDRiYzYzNTBkOTFmODdlOTI3MjUwZTAxZmNiODdmZTI2Y2ZmNzY0Mi4uZjI0NTliMTdjMDMy
YmZhMTdhNmRhNjI1OTU5ZWNiMDBjNjlmMWY1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNw
b25zZS93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3czYy1pbXBvcnQu
bG9nCkBAIC0yMiw4ICsyMiwxMSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9u
c2UvcGF5ZXJFbWFpbC1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJl
c3BvbnNlL3BheWVyTmFtZS1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlc3BvbnNlL3BheWVyUGhvbmUtYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1pbW1lZGlhdGUtbWFu
dWFsLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11
cGRhdGVXaXRoLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZWplY3Rz
X2lmX25vdF9hY3RpdmUtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3Jl
cXVlc3RJZC1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNl
L3JldHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0
cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS9zaGlwcGluZ0FkZHJlc3MtYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXNwb25zZS9zaGlwcGluZ09wdGlvbi1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGJkNDVkYjM1MTlhZTAzZDMyMzhiNzc0Y2Q3OGM3ODg3NjRkMGQxZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1BheW1lbnRSZXF1ZXN0IHNob3coKSByZWplY3Rz
IGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlCisKK0NsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNl
cXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3aXRob3V0IHJlZnJlc2hpbmcgdGhlIHBhZ2UuIEVh
Y2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cgYW5k
IHRoZW4gd2lsbCBjbG9zZSBpdCBhdXRvbWF0aWNhbGx5LiAoSWYgYSBwYXltZW50IHNoZWV0IHN0
YXlzIG9wZW4sIHRoZSB0ZXN0IGhhcyBmYWlsZWQuKQorCitQYXltZW50UmVxdWVzdC5zaG93KCkg
YWJvcnRzIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgYWN0aXZlLgorUGF5bWVudFJlcXVlc3Quc2hv
dygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgYWN0aXZlLCBidXQgbm90IGZ1bGx5IGFjdGl2
ZS4KK0RvbmUhCitJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFu
ZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZXJzLgorCitIYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25v
dF9hY3RpdmUtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUtbWFu
dWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUyMTRjYjYwOTRhMjU0MzYzNzRkYTk4NGRlYWFk
ZTY2MGNjYzE5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1t
YW51YWwuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlBheW1lbnRSZXF1ZXN0IHNob3coKSByZWplY3RzIGlm
IGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jc2hvdy1tZXRob2QiPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8
c2NyaXB0Pgorc2V0dXAoeworICBleHBsaWNpdF9kb25lOiB0cnVlLAorICBleHBsaWNpdF90aW1l
b3V0OiB0cnVlLAorfSk7CisKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1
cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7
CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20u
ZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRp
ZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisg
IH0KK30pOworY29uc3QgdmFsaWRNZXRob2QgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVk
TWV0aG9kczogImJhc2ljLWNhcmQiLAorfSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3Qu
ZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXldKTsKKworY29uc3QgdmFsaWREZXRhaWxzID0g
T2JqZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiB7CisgICAgbGFiZWw6ICJUb3RhbCBkdWUiLAorICAg
ICAgYW1vdW50OiB7CisgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICB2YWx1ZTogIjUuMDAi
LAorICAgIH0sCisgIH0sCit9KTsKKworZnVuY3Rpb24gZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3Qo
aWZyYW1lLCB1cmwpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIGlm
cmFtZS5hZGRFdmVudExpc3RlbmVyKAorICAgICAgImxvYWQiLAorICAgICAgKCkgPT4geworICAg
ICAgICBjb25zdCB7IFBheW1lbnRSZXF1ZXN0IH0gPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxpZE1ldGhvZHMsIHZh
bGlkRGV0YWlscyk7CisgICAgICAgIHJlc29sdmUocmVxdWVzdCk7CisgICAgICB9LAorICAgICAg
eyBvbmNlOiB0cnVlIH0KKyAgICApOworICAgIGlmcmFtZS5zcmMgPSB1cmw7CisgIH0pOworfQor
CitmdW5jdGlvbiB0ZXN0QWJvcnRTaG93SWZEb2N1bWVudElzTm90QWN0aXZlKCkgeworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgaWZyYW1lLmFsbG93UGF5bWVudFJlcXVlc3QgPSB0cnVl
OworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICAvLyBXZSBmaXJz
dCBnb3QgdG8gcGFnZTEuaHRtbCwgZ3JhYiBhIFBheW1lbnRSZXF1ZXN0IGluc3RhbmNlLgorICAg
IGNvbnN0IHJlcXVlc3QxID0gYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCisgICAgICBp
ZnJhbWUsCisgICAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTEuaHRtbCIKKyAg
ICApOworICAgIC8vIFNhdmUgdGhlIERPTUV4Y2VwdGlvbiBvZiBwYWdlMS5odG1sIGJlZm9yZSBu
YXZpZ2F0aW5nIGF3YXkuCisgICAgY29uc3QgZnJhbWVET01FeGNlcHRpb24xID0gaWZyYW1lLmNv
bnRlbnRXaW5kb3cuRE9NRXhjZXB0aW9uOworICAgIC8vIFdlIG5hdmlnYXRlIHRoZSBpZnJhbWUg
YWdhaW4sIHB1dHRpbmcgcmVxdWVzdDEncyBkb2N1bWVudCBpbnRvIGFuIGluYWN0aXZlIHN0YXRl
LgorICAgIGNvbnN0IHJlcXVlc3QyID0gYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCisg
ICAgICBpZnJhbWUsCisgICAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRt
bCIKKyAgICApOworICAgIC8vIE5vdywgcmVxdWVzdDEncyByZWxldmFudCBnbG9iYWwgb2JqZWN0
J3MgZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4KKyAgICAvLyBTbywgY2FsbCAuc2hvdygp
LCBhbmQgbWFrZSBzdXJlIGl0IHJlamVjdHMgYXBwcm9wcmlhdGVseS4KKyAgICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfZG9tKAorICAgICAgdCwKKyAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgIGZy
YW1lRE9NRXhjZXB0aW9uMSwKKyAgICAgIHJlcXVlc3QxLnNob3coKSwKKyAgICAgICJJbmFjdGl2
ZSBkb2N1bWVudCwgc28gbXVzdCB0aHJvdyBBYm9ydEVycm9yIgorICAgICk7CisgICAgLy8gcmVx
dWVzdDIgaGFzIGFuIGFjdGl2ZSBkb2N1bWVudCB0aG8sIHNvIGNvbmZpcm0gaXQncyB3b3JraW5n
IGFzIGV4cGVjdGVkOgorICAgIHJlcXVlc3QyLnNob3coKTsKKyAgICBhd2FpdCByZXF1ZXN0Mi5h
Ym9ydCgpOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICB0LAorICAgICAg
IkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LkRPTUV4Y2Vw
dGlvbiwKKyAgICAgIHJlcXVlc3QyLnNob3coKSwKKyAgICAgICJBYm9ydCBhbHJlYWR5IGNhbGxl
ZCwgc28gSW52YWxpZFN0YXRlRXJyb3IiCisgICAgKTsKKyAgICAvLyBXZSBhcmUgZG9uZSwgc28g
Y2xlYW4gdXAuCisgICAgaWZyYW1lLnJlbW92ZSgpOworICB9LCAiUGF5bWVudFJlcXVlc3Quc2hv
dygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgbm90IGFjdGl2ZS4iKTsKK30KKworZnVuY3Rp
b24gdGVzdEFib3J0U2hvd0lmRG9jdW1lbnRJc05vdEZ1bGx5QWN0aXZlKCkgeworICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgLy8gV2UgbmVzdCB0d28gaWZyYW1lcyBhbmQgd2FpdCBm
b3IgdGhlbSB0byBsb2FkLgorICAgIGNvbnN0IG91dGVySWZyYW1lID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgb3V0ZXJJZnJhbWUuYWxsb3dQYXltZW50UmVxdWVzdCA9
IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvdXRlcklmcmFtZSk7CisgICAg
Ly8gTG9hZCB0aGUgb3V0ZXIgaWZyYW1lICh3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBhd2FpdGVk
IHJlcXVlc3QpCisgICAgYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCisgICAgICBvdXRl
cklmcmFtZSwKKyAgICAgICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMS5odG1sIgor
ICAgICk7CisKKyAgICAvLyBOb3cgd2UgY3JlYXRlIHRoZSBpbm5lciBpZnJhbWUKKyAgICBjb25z
dCBpbm5lcklmcmFtZSA9IG91dGVySWZyYW1lLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKKyAgICBpbm5lcklmcmFtZS5hbGxvd1BheW1lbnRSZXF1ZXN0ID0gdHJ1ZTsK
KworICAgIC8vIG5lc3QgdGhlbQorICAgIG91dGVySWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGlubmVySWZyYW1lKTsKKworICAgIC8vIGxvYWQgaW5uZXJJZnJhbWUsIGFu
ZCBnZXQgdGhlIFBheW1lbnRSZXF1ZXN0IGluc3RhbmNlCisgICAgY29uc3QgcmVxdWVzdCA9IGF3
YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KAorICAgICAgaW5uZXJJZnJhbWUsCisgICAgICAi
L3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRtbCIKKyAgICApOworICAgIC8vIFNh
dmUgRE9NRXhjZXB0aW9uIGZyb20gaW5uZXJJZnJhbWUgYmVmb3JlIG5hdmlnYXRpbmcgYXdheS4K
KyAgICBjb25zdCBpbm5lcklmcmFtZURPTUV4Y2VwdGlvbiA9IGlubmVySWZyYW1lLmNvbnRlbnRX
aW5kb3cuRE9NRXhjZXB0aW9uOworCisgICAgLy8gTmF2aWdhdGUgdGhlIG91dGVyIGlmcmFtZSB0
byBhIG5ldyBsb2NhdGlvbi4KKyAgICAvLyBXYWl0IGZvciB0aGUgbG9hZCBldmVudCB0byBmaXJl
LgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgb3V0ZXJJZnJhbWUu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUpOworICAgICAgb3V0ZXJJZnJhbWUuc3Jj
ID0gIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UyLmh0bWwiOworICAgIH0pOworCisg
ICAgY29uc3Qgc2hvd1Byb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAvLyBOb3csIHJlcXVl
c3QncyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgc3RpbGwgYWN0aXZlCisg
ICAgLy8gKGl0IGlzIHRoZSBhY3RpdmUgZG9jdW1lbnQgb2YgdGhlIGlubmVyIGlmcmFtZSksIGJ1
dCBpcyBub3QgZnVsbHkgYWN0aXZlCisgICAgLy8gKHNpbmNlIHRoZSBwYXJlbnQgb2YgdGhlIGlu
bmVyIGlmcmFtZSBpcyBpdHNlbGYgbm8gbG9uZ2VyIGFjdGl2ZSkuCisgICAgLy8gU28sIGNhbGwg
cmVxdWVzdC5zaG93KCkgYW5kIG1ha2Ugc3VyZSBpdCByZWplY3RzIGFwcHJvcHJpYXRlbHkuCisg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgIHQsCisgICAgICAiQWJvcnRFcnJv
ciIsCisgICAgICBpbm5lcklmcmFtZURPTUV4Y2VwdGlvbiwKKyAgICAgIHNob3dQcm9taXNlLAor
ICAgICAgIkFjdGl2ZSwgYnV0IG5vdCBmdWxseSBhY3RpdmUsIHNvIG11c3QgdGhyb3cgQWJvcnRF
cnJvciIKKyAgICApOworICAgIC8vIFdlIGFyZSBkb25lLCBzbyBjbGVhbiB1cC4KKworICAgIG91
dGVySWZyYW1lLnJlbW92ZSgpOworICB9LCAiUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBp
ZiB0aGUgZG9jdW1lbnQgaXMgYWN0aXZlLCBidXQgbm90IGZ1bGx5IGFjdGl2ZS4iKTsKK30KKzwv
c2NyaXB0PgorCis8aDI+UGF5bWVudFJlcXVlc3Qgc2hvdygpIHJlamVjdHMgaWYgZG9jIGlzIG5v
dCBmdWxseSBhY3RpdmU8L2gyPgorPHA+CisgIENsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNlcXVl
bmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3aXRob3V0IHJlZnJlc2hpbmcgdGhlCisgIHBhZ2UuIEVh
Y2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cgYW5k
IHRoZW4gd2lsbAorICBjbG9zZSBpdCBhdXRvbWF0aWNhbGx5LiAoSWYgYSBwYXltZW50IHNoZWV0
IHN0YXlzIG9wZW4sIHRoZSB0ZXN0IGhhcyBmYWlsZWQuKQorPC9wPgorPG9sPgorICA8bGk+Cisg
ICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0QWJvcnRTaG93SWZEb2N1bWVudElzTm90QWN0aXZlKCki
PgorICAgICAgUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMg
bm90IGFjdGl2ZS4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24g
b25jbGljaz0idGVzdEFib3J0U2hvd0lmRG9jdW1lbnRJc05vdEZ1bGx5QWN0aXZlKCkiPgorICAg
ICAgUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgYWN0aXZl
LCBidXQgbm90IGZ1bGx5CisgICAgICBhY3RpdmUuCisgICAgPC9idXR0b24+CisgIDwvbGk+Cisg
IDxsaT48YnV0dG9uIG9uY2xpY2s9ImRvbmUoKSI+RG9uZSE8L2J1dHRvbj48L2xpPgorPC9vbD4K
KzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVn
PC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1s
Ij5zdWdnZXN0ZWQgcmV2aWV3ZXJzPC9hPi4KKzwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWpl
Y3RzX2lmX25vdF9hY3RpdmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5o
dHRwcy5odG1sCmluZGV4IGY1ODVlODM2ZjhkMzBlNDFiZDMzYzdhOGQ4NzYwZWNmNjRmN2E4MGQu
LjFjNjY2YWVhNDM1NzU4Y2Q3Zjc5MTcyYWFhNjkxZjQzZjc5MDdhNDcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90
X2FjdGl2ZS5odHRwcy5odG1sCkBAIC0xLDE4ICsxLDI3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxt
ZXRhIGNoYXJzZXQ9dXRmLTg+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3Nob3coKS1tZXRob2QiPgogPHRpdGxlPlBheW1lbnRS
ZXF1ZXN0IHNob3coKSByZWplY3RzIGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlPC90aXRsZT4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVx
dWVzdC8jc2hvdy1tZXRob2QiPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9z
Y3JpcHQ+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXlt
ZW50LXJlcXVlc3QvI2RvbS1wYXltZW50cmVxdWVzdC1zaG93KCkiPgogPGJvZHk+CiA8c2NyaXB0
PgorY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAz
LAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBj
b3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNE
UyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2
YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMt
Y2FyZCIsCiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0
aG9kXSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwg
YXBwbGVQYXldKTsKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGN1cnJl
bmN5OiAiVVNEIiwKICAgdmFsdWU6ICI1LjAwIiwKQEAgLTQwLDk0ICs0OSw2IEBAIGZ1bmN0aW9u
IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KGlmcmFtZSwgdXJsKSB7CiAgIH0pOwogfQogCi1wcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOwotICBpZnJhbWUuYWxsb3dQYXltZW50UmVxdWVzdCA9IHRydWU7Ci0g
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLSAgLy8gV2UgZmlyc3QgZ290IHRv
IHBhZ2UxLmh0bWwsIGdyYWIgYSBQYXltZW50UmVxdWVzdCBpbnN0YW5jZS4KLSAgY29uc3QgcmVx
dWVzdDEgPSBhd2FpdCBnZXRMb2FkZWRQYXltZW50UmVxdWVzdCgKLSAgICBpZnJhbWUsCi0gICAg
Ii9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UxLmh0bWwiCi0gICk7Ci0gIC8vIFdlIG5h
dmlnYXRlIHRoZSBpZnJhbWUgYWdhaW4sIHB1dHRpbmcgcmVxdWVzdDEncyBkb2N1bWVudCBpbnRv
IGFuIGluYWN0aXZlIHN0YXRlLgotICBjb25zdCByZXF1ZXN0MiA9IGF3YWl0IGdldExvYWRlZFBh
eW1lbnRSZXF1ZXN0KAotICAgIGlmcmFtZSwKLSAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJj
ZXMvcGFnZTIuaHRtbCIKLSAgKTsKLSAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5
bWVudCByZXF1ZXN0IiwgYXN5bmMgKCkgPT4gewotICAgIC8vIE5vdywgcmVxdWVzdDEncyByZWxl
dmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4KLSAgICAv
LyBTbywgY2FsbCAuc2hvdygpLCBhbmQgbWFrZSBzdXJlIGl0IHJlamVjdHMgYXBwcm9wcmlhdGVs
eS4KLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCi0gICAgICB0LAotICAgICAgIkFib3J0RXJy
b3IiLAotICAgICAgcmVxdWVzdDEuc2hvdygpLAotICAgICAgIkluYWN0aXZlIGRvY3VtZW50LCBz
byBtdXN0IHRocm93IEFib3J0RXJyb3IiCi0gICAgKTsKLSAgfSk7Ci0gIGF3YWl0IHRlc3RfZHJp
dmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsIGFzeW5jICgpID0+IHsKLSAgICAvLyBy
ZXF1ZXN0MiBoYXMgYW4gYWN0aXZlIGRvY3VtZW50IHRobywgc28gY29uZmlybSBpdCdzIHdvcmtp
bmcgYXMgZXhwZWN0ZWQ6Ci0gICAgcmVxdWVzdDIuc2hvdygpOwotICAgIGF3YWl0IHJlcXVlc3Qy
LmFib3J0KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAotICAgICAgdCwKLSAgICAgICJJ
bnZhbGlkU3RhdGVFcnJvciIsCi0gICAgICByZXF1ZXN0Mi5zaG93KCksCi0gICAgICAiQWJvcnQg
YWxyZWFkeSBjYWxsZWQsIHNvIEludmFsaWRTdGF0ZUVycm9yIgotICAgICk7Ci0gICAgLy8gV2Ug
YXJlIGRvbmUsIHNvIGNsZWFuIHVwLgotICAgIGlmcmFtZS5yZW1vdmUoKTsKLSAgfSk7Ci19LCAi
UGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgbm90IGFjdGl2
ZSIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIC8vIFdlIG5lc3QgdHdvIGlmcmFt
ZXMgYW5kIHdhaXQgZm9yIHRoZW0gdG8gbG9hZC4KLSAgY29uc3Qgb3V0ZXJJZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgb3V0ZXJJZnJhbWUuYWxsb3dQYXltZW50
UmVxdWVzdCA9IHRydWU7Ci0gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXJJZnJhbWUp
OwotICAvLyBMb2FkIHRoZSBvdXRlciBpZnJhbWUgKHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGF3
YWl0ZWQgcmVxdWVzdCkKLSAgYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCi0gICAgb3V0
ZXJJZnJhbWUsCi0gICAgIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UxLmh0bWwiCi0g
ICk7Ci0KLSAgLy8gTm93IHdlIGNyZWF0ZSB0aGUgaW5uZXIgaWZyYW1lCi0gIGNvbnN0IGlubmVy
SWZyYW1lID0gb3V0ZXJJZnJhbWUuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOwotICBpbm5lcklmcmFtZS5hbGxvd1BheW1lbnRSZXF1ZXN0ID0gdHJ1ZTsKLQotICAvLyBu
ZXN0IHRoZW0KLSAgb3V0ZXJJZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aW5uZXJJZnJhbWUpOwotCi0gIC8vIGxvYWQgaW5uZXJJZnJhbWUsIGFuZCBnZXQgdGhlIFBheW1l
bnRSZXF1ZXN0IGluc3RhbmNlCi0gIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBnZXRMb2FkZWRQYXlt
ZW50UmVxdWVzdCgKLSAgICBpbm5lcklmcmFtZSwKLSAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNv
dXJjZXMvcGFnZTIuaHRtbCIKLSAgKTsKLQotICAvLyBOYXZpZ2F0ZSB0aGUgb3V0ZXIgaWZyYW1l
IHRvIGEgbmV3IGxvY2F0aW9uLgotICAvLyBXYWl0IGZvciB0aGUgbG9hZCBldmVudCB0byBmaXJl
LgotICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICBvdXRlcklmcmFtZS5hZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSk7Ci0gICAgb3V0ZXJJZnJhbWUuc3JjID0gIi9w
YXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UyLmh0bWwiOwotICB9KTsKLQotICBjb25zdCBz
aG93UHJvbWlzZSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVz
dCIsICgpID0+IHsKLSAgICByZXR1cm4gcmVxdWVzdC5zaG93KCk7Ci0gIH0pOwotICAvLyBOb3cs
IHJlcXVlc3QncyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgc3RpbGwgYWN0
aXZlCi0gIC8vIChpdCBpcyB0aGUgYWN0aXZlIGRvY3VtZW50IG9mIHRoZSBpbm5lciBpZnJhbWUp
LCBidXQgaXMgbm90IGZ1bGx5IGFjdGl2ZQotICAvLyAoc2luY2UgdGhlIHBhcmVudCBvZiB0aGUg
aW5uZXIgaWZyYW1lIGlzIGl0c2VsZiBubyBsb25nZXIgYWN0aXZlKS4KLSAgLy8gU28sIGNhbGwg
cmVxdWVzdC5zaG93KCkgYW5kIG1ha2Ugc3VyZSBpdCByZWplY3RzIGFwcHJvcHJpYXRlbHkuCi0g
IGF3YWl0IHByb21pc2VfcmVqZWN0cygKLSAgICB0LAotICAgICJBYm9ydEVycm9yIiwKLSAgICBz
aG93UHJvbWlzZSwKLSAgICAiQWN0aXZlLCBidXQgbm90IGZ1bGx5IGFjdGl2ZSwgc28gbXVzdCB0
aHJvdyBBYm9ydEVycm9yIgotICApOwotICAvLyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAuCi0K
LSAgaWZyYW1lLnJlbW92ZSgpOwotfSwgIlBheW1lbnRSZXF1ZXN0LnNob3coKSBhYm9ydHMgaWYg
dGhlIGRvY3VtZW50IGlzIGFjdGl2ZSwgYnV0IG5vdCBmdWxseSBhY3RpdmUiKTsKLQogcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewogICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpZnJhbWUiKTsKICAgaWZyYW1lLmFsbG93UGF5bWVudFJlcXVlc3QgPSB0cnVlOwpAQCAt
MTM3LDIxICs1OCw0MCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgaWZyYW1lLAog
ICAgICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMS5odG1sIgogICApOwotICBjb25z
dCBzaG93UHJvbWlzZSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVx
dWVzdCIsICgpID0+IHsKLSAgICByZXR1cm4gcmVxdWVzdC5zaG93KCk7CisgIGNvbnN0IFtzaG93
UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3Qi
LCAoKSA9PiB7CisgICAgcmV0dXJuIFtyZXF1ZXN0LnNob3coKV07CiAgIH0pOwogICAvLyBOYXZp
Z2F0ZSB0aGUgaWZyYW1lIHRvIGEgbmV3IGxvY2F0aW9uLiBXYWl0IGZvciB0aGUgbG9hZCBldmVu
dCB0byBmaXJlLgogICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgICBpZnJhbWUu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUpOwogICAgIGlmcmFtZS5zcmMgPSAiL3Bh
eW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRtbCI7CisgICAgLy8gQW4gaW1wbGVtZW50
YXRpb24gbWF5IG9wdGlvbmFsbHkgcmVqZWN0IHxzaG93UHJvbWlzZXwuCisgICAgc2hvd1Byb21p
c2UuY2F0Y2goZSA9PiB7fSk7CiAgIH0pOwotICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCi0gICAg
dCwKLSAgICAiQWJvcnRFcnJvciIsCi0gICAgc2hvd1Byb21pc2UsCi0gICAgIlRoZSBpZnJhbWUg
d2FzIG5hdmlnYXRlZCBhd2F5LCBzbyBzaG93UHJvbWlzZSBtdXN0IHJlamVjdCB3aXRoIEFib3J0
RXJyb3IiCi0gICk7Ci0gIC8vIFdlIGFyZSBkb25lLCBzbyBjbGVhbiB1cC4KLSAgaWZyYW1lLnJl
bW92ZSgpOwotfSwgIklmIGEgcGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmcsIGJ1dCBpdHMgZG9j
dW1lbnQgaXMgbmF2aWdhdGVkIGF3YXkgKHNvIG5vIGxvbmdlciBmdWxseSBhY3RpdmUpLCB0aGUg
cGF5bWVudCByZXF1ZXN0IGFib3J0cy4iKTsKKworICAvLyBUaGUgbmF2aWdhdG9uIHNob3VsZCBo
YXZlIGRpc21pc3NlZCB0aGUgcHJldmlvdXMgcGF5bWVudCByZXF1ZXN0IHNvIGl0CisgIC8vIHNo
b3VsZCBiZSBwb3NzaWJsZSB0byBzaG93IGFub3RoZXIgb25lIG5vdy4KKyAgY29uc3QgcmVxdWVz
dDIgPSBuZXcgaWZyYW1lLmNvbnRlbnRXaW5kb3cuUGF5bWVudFJlcXVlc3QoCisgICAgdmFsaWRN
ZXRob2RzLCB2YWxpZERldGFpbHMpOworICBjb25zdCBbc2hvd1Byb21pc2UyXSA9IGF3YWl0IHRl
c3RfZHJpdmVyLmJsZXNzKAorICAgICJzaG93IDJuZCBwYXltZW50IHJlcXVlc3QiLCAoKSA9PiB7
CisgICAgICByZXR1cm4gW3JlcXVlc3QyLnNob3coKV07CisgICAgfSk7CisKKyAgLy8gU3RvcCB0
aGUgdGVzdCBpbiAxIHNlY29uZCBpZiBpdCBoYXMgbm90IHJlamVjdGVkLCB3aGljaCBtZWFucyB0
aGF0IGEKKyAgLy8gcGF5bWVudCBzaGVldCBpcyBzdWNjZXNzZnVsbHkgc2hvd24uCisgIHQuc3Rl
cF90aW1lb3V0KGFzeW5jICgpID0+IHsKKyAgICAvLyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAu
CisgICAgaWZyYW1lLnJlbW92ZSgpOworICAgIHQuZG9uZSgpOworICB9LCAxMDAwKTsKKworICAv
LyBUaGlzIHNob3VsZCBuZXZlciBzZXR0bGUgYmVjYXVzZSB0aGUgcGF5bWVudCBzaGVldCBzaG91
bGQgYmUgcGVuZGluZy4KKyAgYXdhaXQgc2hvd1Byb21pc2UyLnRoZW4oKCkgPT4geworICAgIGFz
c2VydF90cnVlKGZhbHNlLCAiU2Vjb25kIHBheW1lbnQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlz
IHJlc29sdmVkLiIpOworICB9KQorICAuY2F0Y2goZSA9PiB7CisgICAgYXNzZXJ0X3RydWUoZmFs
c2UsICJTZWNvbmQgcGF5bWVudCBzaG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVqZWN0ZWQuIik7
CisgIH0pOworfSwgIklmIGEgcGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmcsIGJ1dCBpdHMgZG9j
dW1lbnQgaXMgbmF2aWdhdGVkIGF3YXkgKHNvIG5vIGxvbmdlciBmdWxseSBhY3RpdmUpLCB0aGUg
cGF5bWVudCBzaGVldCBpcyBkaXNtaXNzZWQuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3NoaXBwaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3NoaXBwaW5n
LWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMuaHRtbAppbmRleCAwN2I1MzA2NTdjMzM5NDM0
YWE5MjRkMWRmZTk2ODE0ZmFkMmRiZjNiLi43OGI3ZjE3Y2VlYjk4NGJkZTgwMDkwOTNhNTY5Njky
NjFlNDRkZDdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaGlwcGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFs
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hpcHBpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRw
cy5odG1sCkBAIC04LDggKzgsMTggQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6
IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVj
dC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUt
cGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVy
OiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1l
cmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29y
a3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6
ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9k
cyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXldKTsKIGNvbnN0IHZhbGlkQW1vdW50
ID0gT2JqZWN0LmZyZWV6ZSh7IGN1cnJlbmN5OiAiVVNEIiwgdmFsdWU6ICI1LjAwIiB9KTsKIGNv
bnN0IHZhbGlkVG90YWwgPSBPYmplY3QuZnJlZXplKHsKICAgbGFiZWw6ICJsYWJlbCIsCkBAIC01
MywxMCArNjMsMTQgQEAgZnVuY3Rpb24gdGVzdFNoaXBwaW5nQWRkcmVzc0NoYW5nZSgpIHsKICAg
ICB9KTsKICAgICByZXF1ZXN0LnNob3coKS5jYXRjaChlcnIgPT4gZXJyKTsKICAgICBjb25zdCBy
ZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW2xpc3RlbmVyUHJvbWlzZSwgaGFuZGxlclByb21p
c2VdKTsKLSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgIHJlc3VsdHMuZXZlcnkob2JqID0+IG9iaiBp
bnN0YW5jZW9mIFBheW1lbnRBZGRyZXNzKSwKLSAgICAgICJFeHBlY3RlZCBpbnN0YW5jZXMgb2Yg
UGF5bWVudEFkZHJlc3MiCi0gICAgKTsKKyAgICByZXN1bHRzLmZvckVhY2gob2JqID0+IHsKKyAg
ICAgIGFzc2VydF90cnVlKG9iaiBpbnN0YW5jZW9mIFBheW1lbnRBZGRyZXNzLAorICAgICAgICAg
ICAgICAgICAgIkV4cGVjdGVkIGluc3RhbmNlIG9mIFBheW1lbnRBZGRyZXNzIik7CisgICAgICBh
c3NlcnRfZXF1YWxzKG9iai5vcmdhbml6YXRpb24sICIiLCAib3JnYW5pemF0aW9uIHNob3VsZCBi
ZSByZWRhY3RlZCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhvYmoucGhvbmUsICIiLCAicGhvbmUg
c2hvdWxkIGJlIHJlZGFjdGVkIik7CisgICAgICBhc3NlcnRfZXF1YWxzKG9iai5yZWNpcGllbnQs
ICIiLCAicmVjaXBpZW50IHNob3VsZCBiZSByZWRhY3RlZCIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhvYmouYWRkcmVzc0xpbmUubGVuZ3RoLCAwLCAiYWRkcmVzc0xpbmUgc2hvdWxkIGJlIHJlZGFj
dGVkIik7CisgICAgfSk7CiAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwogICB9KTsKICAgZG9u
ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3Rz
LW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWpl
Y3RzLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDVjMTAyOGVlYzY2N2M4NTczZGY4OTBkMjAxZDFm
MWI5MTM2ZGRlNTcuLjFhMzIyNDUyZWI2MTE0NjMwYjJmMGQxZDJhOTc2MjA5MmFkNWViYjkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy1tYW51YWwu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMt
bWFudWFsLmh0dHBzLmh0bWwKQEAgLTI0LDYgKzI0LDEzIEBACiAKICAgY29uc3QgdmFsaWRNZXRo
b2RBcHBsZVBheSA9IE9iamVjdC5mcmVlemUoewogICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRw
czovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICAgIGRhdGE6IHsKKyAgICAgIHZlcnNpb246IDMs
CisgICAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAg
ICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBv
cnRzM0RTIl0sCisgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAgfQogICB9
KTsKIAogICAvLyBNZXRob2RzCkBAIC0xNjEsNyArMTY4LDEzIEBACiAgICAgICApOwogICAgICAg
Y29uc3QgZGV0YWlsc1Byb21pc2UgPSBQcm9taXNlLnJlc29sdmUoYmFkRGV0YWlscyk7CiAgICAg
ICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KGRldGFpbHNQcm9taXNlKTsKLSAg
ICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICAgIGxldCB0ZXN0X2Z1bmM7CisgICAgICBp
ZiAodHlwZW9mIGV4cGVjdGVkRXJyb3IgPT0gImZ1bmN0aW9uIikgeworICAgICAgICB0ZXN0X2Z1
bmMgPSBwcm9taXNlX3JlamVjdHNfanM7CisgICAgICB9IGVsc2UgeworICAgICAgICB0ZXN0X2Z1
bmMgPSBwcm9taXNlX3JlamVjdHNfZG9tOworICAgICAgfQorICAgICAgYXdhaXQgdGVzdF9mdW5j
KAogICAgICAgICB0LAogICAgICAgICBleHBlY3RlZEVycm9yLAogICAgICAgICBhY2NlcHRQcm9t
aXNlLApAQCAtMTk2LDIwICsyMDksMjAgQEAKIAogICA8bGk+PGJ1dHRvbiBvbmNsaWNrPSIKICAg
ICBjb25zdCBpbnZhbGlkRGV0YWlscyA9IHsgdG90YWw6IGB0aGlzIHdpbGwgY2F1c2UgYSBUeXBl
RXJyb3IhYCB9OwotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgaW52YWxpZERl
dGFpbHMsIG5ldyBUeXBlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250
ZW50LCBpbnZhbGlkRGV0YWlscywgVHlwZUVycm9yKTsKICAgIj4KICAgVG90YWwgaW4gdGhlIHVw
ZGF0ZSBpcyBhIHN0cmluZywgc28gY29udmVydGluZyB0byBJREwgbXVzdCBhYm9ydCB0aGUgdXBk
YXRlIHdpdGggYSBUeXBlRXJyb3IuCiAgIDwvYnV0dG9uPjwvbGk+CiAKICAgPGxpPjxidXR0b24g
b25jbGljaz0iCiAgICAgY29uc3QgaW52YWxpZERldGFpbHMgPSB7IHRvdGFsOiByZWN1cnNpdmVE
YXRhIH07Ci0gICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBpbnZhbGlkRGV0YWls
cywgbmV3IFR5cGVFcnJvcigpKTsKKyAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQs
IGludmFsaWREZXRhaWxzLCBUeXBlRXJyb3IpOwogICAiPgogICBUb3RhbCBpcyByZWN1cnNpdmUs
IHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVy
cm9yLgogICA8L2J1dHRvbj48L2xpPgogCiAgIDxsaT48YnV0dG9uIG9uY2xpY2s9IgotICAgIHRl
c3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgaW52YWxpZERldGFpbHNOZWdhdGl2ZVRvdGFs
LCBuZXcgVHlwZUVycm9yKCkpOworICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwg
aW52YWxpZERldGFpbHNOZWdhdGl2ZVRvdGFsLCBUeXBlRXJyb3IpOwogICAiPgogICBVcGRhdGlu
ZyB3aXRoIGEgbmVnYXRpdmUgdG90YWwgcmVzdWx0cyBpbiBhIFR5cGVFcnJvci4KICAgPC9idXR0
b24+PC9saT4KQEAgLTIxOCw3ICsyMzEsNyBAQAogICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmpl
Y3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMsIHsKICAgICAgIGRpc3BsYXlJdGVtczogaW52YWxp
ZFBheW1lbnRJdGVtcwogICAgIH0pOwotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVu
dCwgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlz
LnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgIj4KICAgVXBkYXRpbmcg
d2l0aCBhIGRpc3BsYXlJdGVtIHdpdGggYW4gaW52YWxpZCBjdXJyZW5jeSByZXN1bHRzIGluIFJh
bmdlRXJyb3IuCiAgIDwvYnV0dG9uPjwvbGk+CkBAIC0yMjgsNyArMjQxLDcgQEAKICAgICBjb25z
dCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsaWREZXRhaWxzLCB7CiAgICAgICBz
aGlwcGluZ09wdGlvbnM6IGR1cGxpY2F0ZVNoaXBwaW5nT3B0aW9ucywKICAgICB9KTsKLSAgICB0
ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQsIGJhZERldGFpbHMsIG5ldyBUeXBlRXJyb3Io
KSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBUeXBl
RXJyb3IpOwogICAiPgogICBVcGRhdGluZyB3aXRoIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbnMg
KHNhbWUgSURzKSByZXN1bHRzIGluIGEgVHlwZUVycm9yLgogICA8L2J1dHRvbj48L2xpPgpAQCAt
MjM2LDcgKzI0OSw3IEBACiAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30s
IHZhbGlkRGV0YWlscywgewogICAgICAgc2hpcHBpbmdPcHRpb25zOiBpbnZhbGlkU2hpcHBpbmdP
cHRpb25zLAogICAgIH0pOwotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgYmFk
RGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRD
b250ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgIj4KICAgVXBkYXRpbmcgd2l0aCBh
IHNoaXBwaW5nT3B0aW9uIHdpdGggYW4gaW52YWxpZCBjdXJyZW5jeSB2YWx1ZSByZXN1bHRzIGlu
IGEgUmFuZ0Vycm9yLgogICA8L2J1dHRvbj48L2xpPgpAQCAtMjQ1LDcgKzI1OCw3IEBACiAgICAg
Ly8gdmFsaWRNb2RpZmllciBpcyB0aGVyZSBhcyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMKICAg
ICBjb25zdCBiYWRNb2RpZmllcnMgPSB7IG1vZGlmaWVyczogW21vZGlmaWVyV2l0aEludmFsaWRU
b3RhbCwgdmFsaWRNb2RpZmllcl0gfTsKICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFz
c2lnbih7fSwgdmFsaWREZXRhaWxzLCBiYWRNb2RpZmllcnMpOwotICAgIHRlc3RCYWRVcGRhdGUo
dGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgdGVz
dEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAg
Ij4KICAgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwgaXRl
bSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4KICAgPC9idXR0b24+PC9saT4KQEAgLTI1Niw3ICsy
NjksNyBAQAogICAgICAgbW9kaWZpZXJzOiBbbW9kaWZpZXJXaXRoSW52YWxpZERpc3BsYXlJdGVt
cywgdmFsaWRNb2RpZmllcl0sCiAgICAgfTsKICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0
LmFzc2lnbih7fSwgdmFsaWREZXRhaWxzLCBiYWRNb2RpZmllcnMpOwotICAgIHRlc3RCYWRVcGRh
dGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAg
dGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsK
ICAgIj4KICAgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkg
aXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4KICAgPC9idXR0b24+PC9saT4KQEAgLTI2Nyw3
ICsyODAsNyBAQAogICAgICAgbW9kaWZpZXJzOiBbbW9kaWZpZXJXaXRoUmVjdXJzaXZlRGF0YSwg
dmFsaWRNb2RpZmllcl0sCiAgICAgfTsKICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFz
c2lnbih7fSwgdmFsaWREZXRhaWxzLCBiYWRNb2RpZmllcnMpOwotICAgIHRlc3RCYWRVcGRhdGUo
dGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgbmV3IFR5cGVFcnJvcigpKTsKKyAgICB0ZXN0
QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQsIGJhZERldGFpbHMsIFR5cGVFcnJvcik7CiAgICI+
CiAgIE11c3QgdGhyb3cgYXMgTW9kaWZpZXIgaGFzIGEgcmVjdXJzaXZlIGRpY3Rpb25hcnkuCiAg
IDwvYnV0dG9uPjwvbGk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9t
aXNlLXJlc29sdmVzLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwt
cHJvbWlzZS1yZXNvbHZlcy1tYW51YWwuaHR0cHMuaHRtbAppbmRleCA3MGM5N2ZhYWY3YTQ0OTY5
ODJhMzgyYTQxNWUzYTg1ZTlhMTdjNDY1Li41MzYwYTk3MDRhZjQ1OWYzMDE4MGY5MzhkMTI4Mjhm
NmRiZjFiNTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJl
c29sdmVzLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXBy
b21pc2UtcmVzb2x2ZXMtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTIzLDYgKzIzLDEzIEBAIGNvbnN0
IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoWwogICB9LAogICB7CiAgICAgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgICAgZGF0YTogeworICAg
ICAgdmVyc2lvbjogMywKKyAgICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5l
eGFtcGxlIiwKKyAgICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgICAgbWVyY2hhbnRDYXBhYmls
aXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2Ei
XSwKKyAgICB9CiAgIH0sCiBdKTsKIApAQCAtMTU3LDkgKzE2NCw5IEBAIGNvbnN0IG5ldXRyYWxE
ZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CiBmdW5jdGlvbiBzbW9rZVRlc3QoKSB7CiAgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1
ZXN0KHZhbGlkTWV0aG9kcywgZmFpbERldGFpbHMpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfanMoCiAgICAgICB0LAotICAgICAgbmV3IFR5
cGVFcnJvcigpLAorICAgICAgVHlwZUVycm9yLAogICAgICAgcmVxdWVzdC5zaG93KHsKICAgICAg
ICAgdG90YWw6ICJUaGlzIHRocm93cyBhIFR5cGVFcnJvciIsCiAgICAgICB9KSwKQEAgLTE3Mywx
NiArMTgwLDE3IEBAIGZ1bmN0aW9uIHJ1blVwZGF0ZURldGFpbHNBbGdvcml0aG0oCiAgIGRldGFp
bHMsCiAgIG9wdGlvbnMgPSB7CiAgICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAotICB9CisgIH0s
CisgIGluaXRpYWxEZXRhaWxzID0gZmFpbERldGFpbHMsCiApIHsKICAgY29uc3QgdGVzdEFzc2Vy
dGlvbiA9IGJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpOwogICBidXR0b25FbGVtZW50
LmRpc2FibGVkID0gdHJ1ZTsKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QodmFsaWRNZXRob2RzLCBmYWlsRGV0YWlscywg
b3B0aW9ucyk7CisgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxpZE1l
dGhvZHMsIGluaXRpYWxEZXRhaWxzLCBvcHRpb25zKTsKICAgICBjb25zdCBkZXRhaWxzUHJvbWlz
ZSA9IFByb21pc2UucmVzb2x2ZShkZXRhaWxzKTsKICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0g
cmVxdWVzdC5zaG93KGRldGFpbHNQcm9taXNlKTsKICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qu
aWQsICJ0aGlzIGNhbm5vdCBiZSBjaGFuZ2VkIiwgImlkIG11c3QgbmV2ZXIgY2hhbmdlLiIpOwot
ICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KAogICAgICAgdCwKICAgICAgICJBYm9ydEVycm9yIiwKICAgICAgIGFjY2VwdFByb21pc2UsCkBA
IC0zMDgsNiArMzE2LDE4IEBAIGZ1bmN0aW9uIHJ1blVwZGF0ZURldGFpbHNBbGdvcml0aG0oCiAg
ICAgV2hlbiB0aGUgcGF5bWVudCBzaGVldCBpcyBzaG93biwgdGhlcmUgc2hvdWxkIG5vdCBiZSBh
bnkgZXJyb3JzIHNob3duLgogICAgIDwvYnV0dG9uPgogICA8L2xpPgorICA8bGk+CisgICAgPGJ1
dHRvbiBvbmNsaWNrPSIKKyAgICAgIGNvbnN0IGluaXRpYWxEZXRhaWxzID0ge3RvdGFsOiBwYXNz
VG90YWwsIGlkOiAndGhpcyBjYW5ub3QgYmUgY2hhbmdlZCd9OworICAgICAgY29uc3QgdXBkYXRl
ZERldGFpbHMgPSB7fTsKKyAgICAgIHJ1blVwZGF0ZURldGFpbHNBbGdvcml0aG0oCisgICAgICAg
ICAgICB0aGlzLCB1cGRhdGVkRGV0YWlscywge3JlcXVlc3RTaGlwcGluZzogZmFsc2V9LCBpbml0
aWFsRGV0YWlscyk7CisgICAgIj4KKyAgICBSZXNvbHZpbmcgdGhlIHNob3cgcHJvbWlzZSB3aXRo
IGVtcHR5IGRldGFpbHMgd2lsbCBwcmVzZXJ2ZSB0aGUgZGV0YWlscyBmcm9tCisgICAgdGhlIGNv
bnN0cnVjdG9yLiBXaGVuIHRoZSBwYXltZW50IHNoZWV0IGlzIHNob3duLCB0aGUgc3RyaW5nCisg
ICAgIuKchSBURVNUIEhBUyBQQVNTRUQg4pyFIiBzaG91bGQgYmUgc2hvd24uCisgICAgPC9idXR0
b24+CisgIDwvbGk+CiAgIDxsaT4KICAgICA8YnV0dG9uIG9uY2xpY2s9ImRvbmUoKTsiPkRvbmUh
PC9idXR0b24+CiAgIDwvbGk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1wb3N0bWVzc2Fn
ZS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sCmlu
ZGV4IDEyYTFlMGNlZjgyODg2ZjA1MTRjYWU1NmViOWY0ZTExMzIxYWI1ZGUuLmI1MGYxOGVjY2Uz
YWM2MmQzMTkzYTg2ZDY2OGY0NTdjMWU5NjI5YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9k
LXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdl
LWlmcmFtZS5odG1sCkBAIC0zLDcgKzMsMTYgQEAKICJ1c2Ugc3RyaWN0IjsKIGNvbnN0IGRlZmF1
bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbCiAgIHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2lj
LWNhcmQiIH0sCi0gIHsgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxl
LXBheSIgfSwKKyAgeworICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9h
cHBsZS1wYXkiLAorICAgIGRhdGE6IHsKKyAgICAgIHZlcnNpb246IDMsCisgICAgICBtZXJjaGFu
dElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgICBjb3VudHJ5Q29kZTog
IlVTIiwKKyAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAg
ICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAgfQorICB9LAogXSk7CiAKIGNvbnN0
IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1l
dGhvZC1wb3N0bWVzc2FnZS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3Rt
ZXNzYWdlLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGU0YWI1NTBlNDE4OWUxNTE4YTRiNjAxYWE0
YzllMjQ5ZGY0YzVlY2QuLjkyMGUwYTk5OTJlYmExZjYwNGQ1ZDAyNDZmMWM3ZTdlN2I0MmJkMWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLW1hbnVhbC5odHRwcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLW1hbnVhbC5odHRwcy5odG1sCkBAIC0x
MiwzNCArMTIsNiBAQCBzZXR1cCh7CiAgIGFsbG93X3VuY2F1Z2h0X2V4Y2VwdGlvbjogdHJ1ZSwK
IH0pOwogCi1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoWwotICB7IHN1cHBv
cnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRw
czovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0sCi1dKTsKLQotY29uc3QgZGVmYXVsdERldGFpbHMg
PSBPYmplY3QuZnJlZXplKHsKLSAgaWQ6ICJmYWlsIiwKLSAgdG90YWw6IHsKLSAgICBsYWJlbDog
IlRvdGFsIiwKLSAgICBhbW91bnQ6IHsKLSAgICAgIGN1cnJlbmN5OiAiVVNEIiwKLSAgICAgIHZh
bHVlOiAiMS4wMCIsCi0gICAgfSwKLSAgfSwKLX0pOwotCi10ZXN0KCgpID0+IHsKLSAgYXNzZXJ0
X3Rocm93cygKLSAgICAiU2VjdXJpdHlFcnJvciIsCi0gICAgKCkgPT4gewotICAgICAgY29uc3Qg
cmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFp
bHMpOwotICAgICAgcmVxdWVzdC5zaG93KCk7IC8vIDwtLS0gc2hvdWxkIHRocm93IGhlcmUKLSAg
ICAgIHJlcXVlc3QuYWJvcnQoKTsKLSAgICB9LAotICAgICJ0aHJvd3MgYSBTZWN1cml0eUVycm9y
IGlmIG5vdCB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uIgotICApOwotfSk7Ci0KIGFzeW5j
IGZ1bmN0aW9uIHJ1blVzZXJBY3RpdmF0aW9uKGJ1dHRvbikgewogICBidXR0b24uZGlzYWJsZWQg
PSB0cnVlOwogICBjb25zdCB7IGNvbnRlbnRXaW5kb3c6IGlmcmFtZVdpbmRvdyB9ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXBkYXRlV2l0aC1t
ZXRob2QtcG1pLWhhbmRsaW5nLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXBkYXRlV2l0aC1tZXRo
b2QtcG1pLWhhbmRsaW5nLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDA2ODUyYmY4YzQ3Y2I5ZTcy
MDE5MGI5YjBlMmY4MWQ5ZTdkZGQzMzUuLjFhNTI5NzhjYTNlMzEyMzkyYzc1NGMwODI2NzQwNTcy
M2U1Zjg4MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3VwZGF0ZVdpdGgtbWV0aG9kLXBtaS1oYW5kbGluZy1t
YW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC91cGRhdGVXaXRoLW1ldGhvZC1wbWktaGFuZGxpbmct
bWFudWFsLmh0dHBzLmh0bWwKQEAgLTEsNSArMSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTwhLS0g
Q29weXJpZ2h0IMKpIDIwMTcgTW96aWxsYSBhbmQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZl
cnNpdHksIEJlaWhhbmcpLiAtLT4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5UZXN0
IGZvciB2YWxpZGl0eSBvZiBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVycyB3aGVuIGNhbGxpbmcg
dXBkYXRlV2l0aCgpIG1ldGhvZDwvdGl0bGU+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vd3d3LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3QvI3VwZGF0ZXdpdGgoKS1tZXRob2QiPgpA
QCAtNywxMiArNiwzMCBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICJ1c2Ugc3RyaWN0IjsKLXNldHVwKHsgZXhwbGlj
aXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsKK3NldHVwKHsKKyAgZXhw
bGljaXRfZG9uZTogdHJ1ZSwKKyAgZXhwbGljaXRfdGltZW91dDogdHJ1ZSwKKyAgYWxsb3dfdW5j
YXVnaHRfZXhjZXB0aW9uOiB0cnVlLAorfSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVl
emUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwK
KyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVy
Y2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50
Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsi
dmlzYSJdLAorICB9LAorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewog
ICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly86QHdwdC5meWk6NDQzL3BheW1lbnQtcmVxdWVz
dCIsCiB9KTsKIAotY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRo
b2RdKTsKK2NvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoWworICB2YWxpZE1ldGhv
ZCwKKyAgYXBwbGVQYXksCisgIHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0sCitd
KTsKIAogY29uc3QgdmFsaWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKICAgY3VycmVuY3k6ICJV
U0QiLApAQCAtNDEsMjMgKzU4LDEyIEBAIGNvbnN0IHZhbGlkTW9kaWZpZXIgPSBPYmplY3QuZnJl
ZXplKHsKICAgdG90YWw6IHZhbGlkVG90YWwsCiB9KTsKIAotdGVzdCgoKSA9PiB7Ci0gIHRyeSB7
Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgdmFsaWREZXRhaWxzKTsKLSAg
fSBjYXRjaCAoZXJyKSB7Ci0gICAgZG9uZSgpOwotICAgIHRocm93IGVycjsKLSAgfQotfSwgInNt
b2tlIHRlc3QiKTsKLQogZnVuY3Rpb24gbWFudWFsVGVzdChidXR0b24sIHsgaW52YWxpZE1ldGhv
ZCB9KSB7CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CiAgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAotICAgICAgW3sg
c3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH1dLAotICAgICAgdmFsaWREZXRhaWxzLAot
ICAgICAgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfQotICAgICk7CisgICAgY29uc3QgcmVxdWVz
dCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxpZE1ldGhvZHMsIHZhbGlkRGV0YWlscywgeworICAg
ICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAorICAgIH0pOwogICAgIGNvbnN0IGxpc3RlbmVyID0g
ZXYgPT4gewogICAgICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0gT2JqZWN0LmFzc2lnbih7fSwg
dmFsaWRNb2RpZmllciwgewogICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiBpbnZhbGlkTWV0aG9k
LApAQCAtNzAsNyArNzYsNyBAQCBmdW5jdGlvbiBtYW51YWxUZXN0KGJ1dHRvbiwgeyBpbnZhbGlk
TWV0aG9kIH0pIHsKICAgICAvLyBXZSB0ZXN0IGFnYWluc3QgYSB2YWxpZCBhbmQgYW4gaW52YWxp
ZCBtb2RpZmllcgogICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigic2hpcHBpbmdhZGRyZXNz
Y2hhbmdlIiwgbGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTsKICAgICBjb25zdCBzaG93UHJvbWlz
ZSA9IHJlcXVlc3Quc2hvdygpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgUmFu
Z2VFcnJvcigpLCBzaG93UHJvbWlzZSk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2pzKHQs
IFJhbmdlRXJyb3IsIHNob3dQcm9taXNlKTsKICAgfSwgYnV0dG9uLnRleHRDb250ZW50LnRyaW0o
KSk7CiB9CiA8L3NjcmlwdD4KQEAgLTEyMCwxMCArMTI2LDEzIEBAIGZ1bmN0aW9uIG1hbnVhbFRl
c3QoYnV0dG9uLCB7IGludmFsaWRNZXRob2QgfSkgewogICAgIDwvYnV0dG9uPgogICA8L2xpPgog
ICA8bGk+Ci0gICAgPGJ1dHRvbiBvbmNsaWNrPSJtYW51YWxUZXN0KHRoaXMsIHtpbnZhbGlkTWV0
aG9kOiAnQmFzaWMtQ2FyZCd9KTsgZG9uZSgpOyI+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJtYW51
YWxUZXN0KHRoaXMsIHtpbnZhbGlkTWV0aG9kOiAnQmFzaWMtQ2FyZCd9KTsiPgogICAgICAgTXVz
dCB0aHJvdyBpZiBzdGFuZGFyZGl6ZWQgUE1JIGhhcyB1cHBlcmNhc2UgY2hhcmFjdGVycy4KICAg
ICA8L2J1dHRvbj4KICAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0iZG9uZSgp
OyI+RG9uZSE8L2J1dHRvbj4KKyAgPC9saT4KIDwvb2w+CiA8c21hbGw+CiAgIElmIHlvdSBmaW5k
IGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Vz
ZXItYWJvcnQtYWxnb3JpdGhtLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNlci1hYm9ydC1hbGdv
cml0aG0tbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggMGJhMDQwNWM1MmZiZDU4MDVhMzZkMjcwNzYx
OGRjODRhNzExMTM1MS4uMDc4YmYzZDYxYWU2ZTc1YjNjY2YwZmVkOGE5ODdlNmI3Y2QzNmZmZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvdXNlci1hYm9ydC1hbGdvcml0aG0tbWFudWFsLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvdXNlci1hYm9ydC1hbGdvcml0aG0tbWFudWFsLmh0dHBzLmh0bWwKQEAgLTE3LDEwICsx
NywyMCBAQCBjb25zdCB2YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGxhYmVsOiAiVG90
YWwgZHVlIiwKICAgYW1vdW50OiB2YWxpZEFtb3VudCwKIH0pOworY29uc3QgYXBwbGVQYXkgPSBP
YmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2Fw
cGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRp
ZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAg
ICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5l
dHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5m
cmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiB9KTsKLWNvbnN0IHZh
bGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citjb25zdCB2YWxpZE1l
dGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXldKTsKIGNvbnN0IHZh
bGlkRGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3RhbDogdmFsaWRUb3RhbCwKIH0pOwpA
QCAtNDAsOSArNTAsOSBAQCBhc3luYyBmdW5jdGlvbiBydW5BYm9ydFRlc3QoYnV0dG9uKSB7CiAg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1l
bnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgdmFsaWREZXRhaWxzKTsKICAgICAvLyBBd2FpdCB0aGUg
dXNlciB0byBhYm9ydAotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIs
IHJlcXVlc3Quc2hvdygpKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9y
dEVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwogICAgIC8vIFtbc3RhdGVdXSBpcyBub3cgY2xvc2Vk
Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVl
c3Quc2hvdygpKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3Rh
dGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKICAgfSwgdGVzdE5hbWUudHJpbSgpKTsKIH0KIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNlci1hY2NlcHRzLXBheW1lbnQtcmVxdWVzdC1hbGdv
LW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNlci1hY2NlcHRzLXBheW1lbnQtcmVxdWVzdC1hbGdv
LW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGFiYWY2Y2I0ZTg1ODBkZjVjNjAzNGU4YjEzN2FlOGZj
MzQzMDY3YTYuLjAyMjUxMzc1ODUzYTdkY2NiY2VjYzhkMzFkYzUwZGQ5NGU3NTdjYmIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3VzZXItYWNjZXB0cy1wYXltZW50LXJlcXVlc3QtYWxnby1tYW51YWwuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC91c2VyLWFjY2VwdHMtcGF5bWVudC1yZXF1ZXN0LWFsZ28tbWFudWFsLmh0
dHBzLmh0bWwKQEAgLTgsMTMgKzgsMjMgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBzZXR1cCh7IGV4cGxpY2l0X2Rv
bmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7Citjb25zdCBhcHBsZVBheSA9IE9i
amVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBw
bGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlm
aWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAg
IG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0
d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IGJhc2ljQ2FyZE1ldGhvZCA9IE9iamVj
dC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiB9KTsKIGNvbnN0
IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJ0aGlz
LWlzLWp1c3QtZm9yLXRlc3RpbmdzLXdpbGwtbmV2ZXItbWF0Y2giLAogfSk7Ci1jb25zdCBtZXRo
b2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkTWV0aG9kLCB2YWxpZE1ldGhvZF0pOworY29u
c3QgbWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZE1ldGhvZCwgdmFsaWRNZXRob2Qs
IGFwcGxlUGF5XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoewogICBjdXJy
ZW5jeTogIlVTRCIsCiAgIHZhbHVlOiAiNS4wMCIsCkBAIC04Nyw3ICs5Nyw3IEBAIGZ1bmN0aW9u
IHRlc3RBY2NlcHRSZXF1ZXN0QWxnb3JpdGhtKAogICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRl
KCJzdWNjZXNzIik7CiAgICAgLy8gRm9yIGdvb2QgbWVhc3VyZSwgdGVzdCB0aGF0IHN1YnNlcXVl
bnQgY29tcGxldGUoKQogICAgIGZvciAoY29uc3Qgc3RhdGUgb2YgW3VuZGVmaW5lZCwgInN1Y2Nl
c3MiLCAiZmFpbCIsICJ1bmtub3duIl0pIHsKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygK
KyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICAgIHQsCiAgICAgICAgICJJ
bnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICAgIHJlc3BvbnNlLmNvbXBsZXRlKHN0YXRlKSwKQEAg
LTEzMyw3ICsxNDMsNyBAQCBmdW5jdGlvbiB0ZXN0QWNjZXB0UmVxdWVzdEFsZ29yaXRobSgKICAg
ICAgICAgYHJlc3BvbnNlLiR7YXR0cn0gbXVzdCBiZSAke2V4cGVjdGVkVmFsdWV9YAogICAgICAg
KTsKICAgICB9Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAg
IHJlcXVlc3Quc2hvdygpLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC93M2Mt
aW1wb3J0LmxvZwppbmRleCBiYWRmNDJjNmY0NTNiY2YwMGEwNTQ0ZDA4ZDUwNjk0YTM4NWNmNzA5
Li43MGFmNWMwZmY5ZmZlYzMwOWY5NDUzOTYzOTNjMjAzMTFlNTY2Zjg3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC93M2MtaW1wb3J0LmxvZwpAQCAtMTYsMjAgKzE2LDI3
IEBAIE5vbmUKIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1zLW1h
bnVhbC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvYmlsbGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBz
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9ibGFuay5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1tYW51YWwu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlwcGluZy1vcHRpb24tc2VsZWN0LWxhc3QtbWFudWFs
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9jb25zdHJ1Y3Rvcl9jb252ZXJ0X21ldGhvZF9kYXRhLmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9keW5hbWljYWxseS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L2hpc3RvcmljYWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2lkbGhhcm5lc3MuaHR0cHMud2lu
ZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3Qvb25tZXJjaGFudHZhbGlkYXRpb24tYXR0cmlidXRlLmh0dHBzLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9vbnBheW1lbnRtZW50aG9kY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXlt
ZW50bWV0aG9kY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93
aW5nLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLXByb3RlY3Rpb24u
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0
cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3QtY3Rvci1jdXJyZW5jeS1jb2RlLWNoZWNrcy5odHRwcy5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtY29uc3RydWN0b3ItdGhjcmFzaC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNv
bnN0cnVjdG9yLmh0dHBzLnN1Yi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVu
Y3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1w
bWktaGFuZGxpbmcuaHR0cHMuc3ViLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xs
ZWRpbnN0cnVtZW50LW1ldGhvZC1tYW51YWwudGVudGF0aXZlLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRh
dGl2ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVu
dC1tZXRob2QudGVudGF0aXZlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaWQtYXR0
cmlidXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaW5zZWN1cmUuaHR0cC5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LW5vdC1leHBvc2VkLmh0dHBzLndvcmtlci5qcwpAQCAtMzks
NiArNDYsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ09w
dGlvbi1hdHRyaWJ1dGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ1R5
cGUtYXR0cmlidXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2Qu
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hpcHBpbmctYWRkcmVz
cy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJv
bWlzZS1yZWplY3RzLW1hbnVhbC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
YWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGlu
c3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzY5Y2NhNzQ5M2M5MmE5MGQzMjFmMDNhYzEzMmM3MzNhZDI5MmNhYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRo
b2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0lmIHlvdSBm
aW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1
Z2dlc3RlZCByZXZpZXdlcnMuCisKK0ZBSUwgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2
ZXMgdG8gZmFsc2UgZm9yIHVuc3VwcG9ydGVkIHBheW1lbnQgbWV0aG9kcy4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IFBheW1lbnRSZXF1ZXN0IgorRkFJTCBJZiByZXF1ZXN0Lltb
c3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQg
d2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IFBheW1lbnRSZXF1ZXN0IgorRkFJTCBJZiByZXF1ZXN0Lltbc3Rh
dGVdXSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4g
IkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBQYXltZW50UmVxdWVzdCIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU0MDQ1NTY1ZmY0Y2QwMWY2ZTFlOWQ1MTc3MTNh
MDRjODE2YzUxZjIuLmNkNjEyOTY2YmVkOTdmZjNmYzgzMGQ0Y2NhN2Q5MWRmZTQzMTk1NzAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU1
LDYgKzU1LDggQEAgd2Via2l0Lm9yZy9iLzE3NTYxMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnQKIHdlYmtpdC5vcmcvYi8xNzU2MTEg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXlt
ZW50cmVxdWVzdC9yZW1vdmluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sIFsg
U2tpcCBdCiB3ZWJraXQub3JnL2IvMTc1NjExIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1l
bnRyZXF1ZXN0LXRpbWluZy5odHRwcy5zdWIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE3
NTYxMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxv
d3BheW1lbnRyZXF1ZXN0L3NldHRpbmctYWxsb3dwYXltZW50cmVxdWVzdC5odHRwcy5zdWIuaHRt
bCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy5odG1sIFsgU2tp
cCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMu
aHRtbCBbIFNraXAgXQogCiAjIHNraXAgaW4gZmF2b3Igb2YgdGVzdHMgaW4gaHR0cC90ZXN0cy9w
YXltZW50cmVxdWVzdAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWFib3J0LW1ldGhvZC5odHRwcy5odG1sIFsgV29udEZpeCBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
OWYwNWU0NmY3ZWFiMjYxNGIxODMyMThjODIxM2Y4Y2FiMTMwMThkNi4uYWQ5Njk1MjNkNWRmNzIw
ODk3ZDUzNTZiOTkzNGM2NDU5Mzk3Y2FlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjU0LDggKzY1NCw2IEBAIHdlYmtpdC5vcmcvYi8x
NzIwNDQgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L29wZW4tcmVxCiAKIHdlYmtpdC5vcmcvYi8xNzM3NzkgWyBEZWJ1ZyBdIGZhc3Qvc2Nyb2xsaW5n
L2Fycm93LWtleS1zY3JvbGwtaW4tcnRsLWRvY3VtZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQog
Ci13ZWJraXQub3JnL2IvMTc1NzczIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItY3Jhc2gu
aHR0cHMuaHRtbCBbIFNraXAgXQotCiB3ZWJraXQub3JnL2IvMTczNjcyIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9pbnZhbGlkYXRlLmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTczNTAwIGh0dHAvdGVzdHMvbG9hZGluZy9iYXNp
Yy1hdXRoLXJlbW92ZS1jcmVkZW50aWFscy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KQEAgLTEwMzks
NCArMTAzNyw0IEBAIHdlYmtpdC5vcmcvYi8yMTM2MjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0Q29uCiAKIHdlYmtpdC5vcmcvYi8yMTM2
NTIgd2VicnRjL3ZpZGVvLWF1dG9wbGF5MS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0
Lm9yZy9iLzIxNDA4NCBbIFJlbGVhc2UgXSB3ZWJydGMvbGlid2VicnRjL2Rlc2NyaXB0aW9uR2V0
dGVycy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3
ZWJraXQub3JnL2IvMjE0MDg0IFsgUmVsZWFzZSBdIHdlYnJ0Yy9saWJ3ZWJydGMvZGVzY3JpcHRp
b25HZXR0ZXJzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dGVzdHMtb3B0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCmluZGV4
IDExMDMxYjU5ZDIyYTk1YmRkZDRiNjI3YjAyOGRmNTgwZTVmNzg0ZjQuLjE0YTQ3NTllNzQ1YjQ2
YTYwZDhiMmNhZDk5MTlkOWY3ZDFjOTkxN2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Rlc3Rz
LW9wdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KQEAgLTI0
NTYsOSArMjQ1NiwxOCBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMuaHRt
bCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9zZXR0aW5nLWFs
bG93cGF5bWVudHJlcXVlc3QtdGltaW5nLmh0dHBzLnN1Yi5odG1sIjogWworICAgICAgICAic2xv
dyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ci
CisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLWNyYXNoLmh0dHBzLmh0bWwiOiBbCiAg
ICAgICAgICJzbG93IgogICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci10aGNyYXNoLmh0
dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1pbi1waWN0dXJlL2xlYXZlLXBpY3R1cmUtaW4tcGlj
dHVyZS5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403998</attachid>
            <date>2020-07-10 14:01:59 -0700</date>
            <delta_ts>2020-07-10 14:48:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214167-20200710140158.patch</filename>
            <type>text/plain</type>
            <size>298802</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjM0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmM3MDA0YjMzMDlmNTU2OTk4YjRj
ZWZkZTZlZDY4M2Y2ZDM5MjJiYi4uMDE1MjBmNWE2ZmVlNjhmZjc0MzExYjcyZmNkNjlhZTljNjIy
Y2I3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA3LTA5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KKworICAgICAgICAqIHRlc3RzLW9wdGlvbnMuanNvbjoKKwogMjAyMC0wNy0xMCAgTGF1cm8g
TW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsvV1BF
IGRlYnVnIGNyYXNoIGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
YjFiMzNkNDUwMjMxNGY5YzM2NTUzNmFiNzQyYzBlZjcxZjBjNmY4My4uOTNkYTUzMGRiZTI1NGRi
NThhNjk2YTU0OWUyMzZlMjcwYjc3NmViYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDctMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dCBmcm9tIHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTQxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAg
ICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0IGZyb20gdXBzdHJl
YW0gY2VmOTNiNThlN2NmMzFmMWQ0N2MuCisKKyAgICAgICAgKiByZXNvdXJjZXMvcmVzb3VyY2Ut
ZmlsZXMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
Lyo6IFVwZGF0ZWQuCisKIDIwMjAtMDctMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0YyBmcm9tIHVwc3Ry
ZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwYzdmNzcxYzdhODQyNWM2ZTczNDgxOTA2MmJiYzNm
NWQ1OTVkZDQxLi5hOTkzNGQyMmVmZTkzMDU4MzAyY2U0MmM1YzQ2NDA1ZjFlYzU4MjEyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTMzNiw2ICszMzYsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZlci10aW1pbmcvbmF2aWdhdGlvbl90aW1pbmdfaWRsLmh0dHBzLmh0bWwg
WwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rvcnkv
dGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tl
bi5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIEZhaWx1cmUgUGFzcyBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRp
b24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLXdlaXJkLmh0
bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFw
LWludmFsaWQtYXJncy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KK2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1o
YXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgRHVtcEpT
Q29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZV9FcnJvckV2ZW50X2xpbmVuby5odG0gWyBEdW1wSlNDb25z
b2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb25vZGUtaW50ZXJmYWNlL2F1ZGlvbm9kZS1kaXNjb25u
ZWN0LWF1ZGlvcGFyYW0uaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLXBhbm5l
cm5vZGUtaW50ZXJmYWNlL3Bhbm5lci1hdXRvbWF0aW9uLWJhc2ljLmh0bWwgWyBEdW1wSlNDb25z
b2xlTG9nSW5TdGRFcnIgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCmluZGV4IDVlODJlZDlkOGRlOWNjYjljNmEyZTFk
MjZkMGI5MjE4NWUxY2FjZGYuLjEzMjZjNjdkMzk0ZjVkMDlkMDVlYmEyZmI4MWM3OTM0MzU5MTBi
ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3Vy
Y2UtZmlsZXMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3Jl
c291cmNlLWZpbGVzLmpzb24KQEAgLTI1NTgsNiArMjU1OCw3IEBACiAgICAgICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvbWF0aG1sL3JlbGF0aW9ucy9odG1sNS10cmVlL3VuaXF1ZS1pZGVudGlmaWVy
LTEtaWZyYW1lLTIuaHRtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0
dXJlLXJlY29yZC9zdXBwb3J0L01lZGlhUmVjb3JkZXItaWZyYW1lLmh0bWwiLAogICAgICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2Vj
aG8tUGF5bWVudFJlcXVlc3QuaHRtbCIsCisgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L2JsYW5rLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtcmVzcG9uc2UtaWQuaHRtbCIsCiAgICAgICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNz
YWdlLWlmcmFtZS5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10
aW1pbmcvaWZyYW1lLXNldGRvbWFpbi5zdWIuaHRtbCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NRVRBLnlt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L01FVEEueW1sCmluZGV4IGU2MDhjMGVlMjc5ZmNiNzk4N2Y5MTY3ZjgyMjNmM2ZlZGNl
NjZjMzMuLjI0NDA3MjAxMzhkMzRkNWNjN2VhYWI5YTQ2NDhmMDc4Mjk2MzMwYjAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L01FVEEueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sCkBAIC0yLDggKzIsNyBAQCBzcGVjOiBo
dHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1ZXN0Lwogc3VnZ2VzdGVkX3Jldmlld2Vy
czoKICAgLSBtYXJjb3NjYWNlcmVzCiAgIC0gcnNvbG9tYWtoaW4KLSAgLSBkb21lbmljCiAgIC0g
em91aGlyCi0gIC0gbW5vb3JlbmJlcmdoZQogICAtIHJvbWFuZGV2Ci0gIC0gZWRlbmNodWFuZwor
ICAtIGFlc3RlcworICAtIGRhbnlhbwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9u
RXZlbnQvY29tcGxldGUtbWV0aG9kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25F
dmVudC9jb21wbGV0ZS1tZXRob2QuaHR0cHMuaHRtbAppbmRleCA0ZWRmZDU0ZjQwZTRhZWZkMDQ4
ODA4OTY3Njg5NjQwZDI4N2M3YWM3Li4zNmJmZGIyMTYwYTdjN2Y3MWE2NGVjZWMwNzAyNGI3MDBi
YjFkZTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb21wbGV0ZS1t
ZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb21wbGV0
ZS1tZXRob2QuaHR0cHMuaHRtbApAQCAtOCw3ICs4LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0KCgpID0+
IHsKICAgY29uc3QgZXZlbnQgPSBuZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQoInRlc3QiKTsK
LSAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCAoKSA9PiB7CisgIGFzc2VydF90
aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJvciIsICgpID0+IHsKICAgICBldmVudC5jb21wbGV0
ZSgiIik7CiAgIH0pCiB9LCAiSWYgZXZlbnQncyBpc1RydXN0ZWQgYXR0cmlidXRlIGlzIGZhbHNl
LCB0aGVuIHRoZW4gdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgRE9NRXhjZXB0aW9uLiIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQvY29uc3RydWN0b3IuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQvY29uc3RydWN0b3IuaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IGUzOTA3Mzk3NWFkY2QyZmUzYmYzYjQ4YzBjZjBmNzM1ZjZi
MDA2NjUuLmQzM2UxNWY0YzA0ZGM2NDFhMTkwMDk0ZmU0YjU2OWYwNWE0OWEyMTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb25zdHJ1Y3Rvci5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTUsNiArNSw3IEBAIFBBU1MgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQg
Y2FuIGJlIGRpc3BhdGNoZWQsIGV2ZW4gaWYgbm90IHRydXN0ZWQuCiBQQVNTIE11c3QgaGF2ZSBh
IHZhbGlkYXRpb25VUkwgSURMIGF0dHJpYnV0ZSwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgd2l0aCB0
byB0aGUgdmFsaWRhdGlvblVSTCBkaWN0aW9uYXJ5IHZhbHVlLiAKIFBBU1MgTXVzdCB0aHJvdyBU
eXBlRXJyb3IgaWYgaW5pdGlhbGl6ZWQgd2l0aCBhbiBpbnZhbGlkIFVSTC4gCiBQQVNTIFJlbGF0
aXZlIHZhbGlkYXRpb25VUkxzIHVzZSB0aGUgZG9jdW1lbnQgYXMgdGhlIGJhc2UuIAorRkFJTCBS
ZWxhdGl2ZSB2YWxpZGF0aW9uVVJMcyB1c2UgdGhlIGRvY3VtZW50LmJhc2VVUkkgYXMgdGhlIGJh
c2UuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwczovL3Bhc3MuY29tL3Bhc3MiIGJ1dCBn
b3QgImh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvcGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRh
dGlvbkV2ZW50L3Bhc3MiCiBQQVNTIE11c3QgaGF2ZSBhIG1ldGhvZE5hbWUgSURMIGF0dHJpYnV0
ZSwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgd2l0aCB0byB0aGUgbWV0aG9kTmFtZSBkaWN0aW9uYXJ5
IHZhbHVlLiAKIFBBU1MgV2hlbiBubyBtZXRob2ROYW1lIGlzIHBhc3NlZCwgbWV0aG9kTmFtZSBh
dHRyaWJ1dGUgZGVmYXVsdHMgdG8gdGhlIGVtcHR5IHN0cmluZyAKIFBBU1MgTWVyY2hhbnRWYWxp
ZGF0aW9uRXZlbnQgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggdmFsaWQgUE1JcyAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlvbkV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9NZXJjaGFudFZhbGlkYXRpb25FdmVudC9jb25zdHJ1Y3Rvci5odHRwcy5odG1sCmluZGV4IGVj
OGE0ZmYxZWQwOTI1YTM1NGYyNjMxZDg0NTkzMzdlNDdhYjA3OWQuLjlmZGY3OGRkYjNkZWE0ZGU3
MmU0OGQxYWU1Mjg4YzBhOWYxNjFkNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L01lcmNoYW50VmFsaWRhdGlv
bkV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9u
RXZlbnQvY29uc3RydWN0b3IuaHR0cHMuaHRtbApAQCAtOCw2ICs4LDEzIEBACiA8c2NyaXB0Pgog
Y29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKICAgc3VwcG9ydGVkTWV0aG9kczogImh0
dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAor
ICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3Vu
dHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJd
LAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQogfSk7CiBjb25zdCBiYXNp
Y0NhcmQgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0p
OwogY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxl
UGF5XSk7CkBAIC01Nyw3ICs2NCw3IEBAIHRlc3QoKCkgPT4gewogCiB0ZXN0KCgpID0+IHsKICAg
Y29uc3QgdmFsaWRhdGlvblVSTCA9ICJodHRwOi8vXHUwMDVCIjsgLy8gaW52YWxpZCBVUkwKLSAg
YXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsICgpID0+IHsKICAgICBuZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQoInRl
c3QiLCB7IHZhbGlkYXRpb25VUkwgfSk7CiAgIH0pOwogfSwgIk11c3QgdGhyb3cgVHlwZUVycm9y
IGlmIGluaXRpYWxpemVkIHdpdGggYW4gaW52YWxpZCBVUkwuIik7CkBAIC03Miw2ICs3OSwyMCBA
QCB0ZXN0KCgpID0+IHsKICAgfQogfSwgIlJlbGF0aXZlIHZhbGlkYXRpb25VUkxzIHVzZSB0aGUg
ZG9jdW1lbnQgYXMgdGhlIGJhc2UuIik7CiAKK3Rlc3QoKCkgPT4geworICBjb25zdCB2YWxpZGF0
aW9uVVJMID0gInBhc3MiOworICBjb25zdCBiYXNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
YmFzZSIpOworICBiYXNlLmhyZWYgPSAiaHR0cHM6Ly9wYXNzLmNvbSI7CisgIGRvY3VtZW50Lmhl
YWQuYXBwZW5kKGJhc2UpOworICBjb25zdCBldmVudCA9IG5ldyBNZXJjaGFudFZhbGlkYXRpb25F
dmVudCgidGVzdCIsIHsgdmFsaWRhdGlvblVSTCB9KTsKKyAgdHJ5IHsKKyAgICBhc3NlcnRfaWRs
X2F0dHJpYnV0ZShldmVudCwgInZhbGlkYXRpb25VUkwiKTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2
ZW50LnZhbGlkYXRpb25VUkwsICJodHRwczovL3Bhc3MuY29tL3Bhc3MiKTsKKyAgfSBmaW5hbGx5
IHsKKyAgICBiYXNlLnJlbW92ZSgpOworICB9Cit9LCAiUmVsYXRpdmUgdmFsaWRhdGlvblVSTHMg
dXNlIHRoZSBkb2N1bWVudC5iYXNlVVJJIGFzIHRoZSBiYXNlLiIpOworCiB0ZXN0KCgpID0+IHsK
ICAgY29uc3QgbWV0aG9kTmFtZSA9ICJodHRwczovL3Bhc3MuY29tIjsKICAgY29uc3QgZXZlbnQg
PSBuZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQoInRlc3QiLCB7IG1ldGhvZE5hbWUgfSk7CkBA
IC0xMTQsOCArMTM1LDggQEAgdGVzdCgoKSA9PiB7CiAgICAgInVua25vd246Ly9leGFtcGxlLmNv
bS9wYXkiLAogICBdOwogICBmb3IgKGNvbnN0IG1ldGhvZE5hbWUgb2YgaW52YWxpZFBNSXMpIHsK
LSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgbmV3IFJhbmdlRXJyb3IoKSwKKyAgICBhc3NlcnRf
dGhyb3dzX2pzKAorICAgICAgUmFuZ2VFcnJvciwKICAgICAgICgpID0+IHsKICAgICAgICAgY29u
c3QgZXZlbnQgPSBuZXcgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQoInRlc3QiLCB7IG1ldGhvZE5h
bWUgfSk7CiAgICAgICB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudEFkZHJlc3MvYXR0cmlidXRl
cy1hbmQtdG9KU09OLW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRBZGRyZXNz
L2F0dHJpYnV0ZXMtYW5kLXRvSlNPTi1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggZWRk
ZTUzM2JlNmIyZTQ5NDE1YjgxYWU0ZGYxNjcxMzkxMTdhMGQ3Yy4uOGFmY2ExOWY5MjNkNDVhMmQ5
N2ExMzRlY2MxYzlhMDJiZjRhZWE4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudEFkZHJlc3MvYXR0
cmlidXRlcy1hbmQtdG9KU09OLW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXlt
ZW50QWRkcmVzcy9hdHRyaWJ1dGVzLWFuZC10b0pTT04tbWV0aG9kLW1hbnVhbC5odHRwcy5odG1s
CkBAIC0yOCw4ICsyOCw4IEBAIGZ1bmN0aW9uIHJ1bk1hbnVhbFRlc3QoYnV0dG9uLCBleHBlY3Rl
ZCA9IHt9KSB7CiAgICAgICBhZGRyLmFkZHJlc3NMaW5lIGluc3RhbmNlb2YgQXJyYXksCiAgICAg
ICAiRXhwZWN0ZWQgYWRkcmVzc0xpbmUgdG8gYmUgYW4gYXJyYXkiCiAgICAgKTsKLSAgICBhc3Nl
cnRfdGhyb3dzKAotICAgICAgbmV3IFR5cGVFcnJvcigpLAorICAgIGFzc2VydF90aHJvd3NfanMo
CisgICAgICBUeXBlRXJyb3IsCiAgICAgICAoKSA9PiB7CiAgICAgICAgIGFkZHIuYWRkcmVzc0xp
bmUucHVzaCgidGhpcyBtdXN0IHRocm93Iik7CiAgICAgICB9LApAQCAtNzMsNiArNzMsNyBAQCBm
dW5jdGlvbiBydW5NYW51YWxUZXN0KGJ1dHRvbiwgZXhwZWN0ZWQgPSB7fSkgewogICAgICAgY2l0
eTogJ0NoYXBlbCBIaWxsJywKICAgICAgIGRlcGVuZGVudExvY2FsaXR5OiAnJywKICAgICAgIHBv
c3RhbENvZGU6ICc2MDk1JywKKyAgICAgIHJlZ2lvbjogJ1FMRCcsCiAgICAgICBzb3J0aW5nQ29k
ZTogJycsCiAgICAgICBvcmdhbml6YXRpb246ICd3M2MnLAogICAgICAgcmVjaXBpZW50OiAnd2Vi
IHBsYXRmb3JtIHRlc3QnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50
L21ldGhvZERldGFpbHMtYXR0cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50TWV0aG9kQ2hh
bmdlRXZlbnQvbWV0aG9kRGV0YWlscy1hdHRyaWJ1dGUuaHR0cHMuaHRtbAppbmRleCBlYzBhYTk2
ZGRkYjQ2YjI2NjE3MDY0YWI1NGU5ZDAyZTJhNTg4Y2JiLi5mZWFhZWY2NmFkZjhhNDMzODY4ZDMz
YmNmNzIyNTI1YWY2YzBkMmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZl
bnQvbWV0aG9kRGV0YWlscy1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50TWV0
aG9kQ2hhbmdlRXZlbnQvbWV0aG9kRGV0YWlscy1hdHRyaWJ1dGUuaHR0cHMuaHRtbApAQCAtMTcs
NyArMTcsNiBAQCB0ZXN0KCgpID0+IHsKICAgYXNzZXJ0X2lkbF9hdHRyaWJ1dGUoZXZlbnQsICJt
ZXRob2REZXRhaWxzIik7CiAgIGNvbnN0IHsgdGVzdCB9ID0gZXZlbnQubWV0aG9kRGV0YWlsczsK
ICAgYXNzZXJ0X2VxdWFscyh0ZXN0LCAicGFzcyIpOwotICBhc3NlcnRfZXF1YWxzKGV2ZW50Lm1l
dGhvZERldGFpbHMsIG1ldGhvZERldGFpbHMpOwogfSwgIk11c3QgaGF2ZSBhIG1ldGhvZERldGFp
bHMgSURMIGF0dHJpYnV0ZSwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgd2l0aCB0byB0aGUgbWV0aG9k
TmFtZSBkaWN0aW9uYXJ5IHZhbHVlIik7CiAKIHRlc3QoKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
UGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC9jb25zdHJ1Y3Rvci5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5
bWVudFJlcXVlc3RVcGRhdGVFdmVudC9jb25zdHJ1Y3Rvci5odHRwcy5odG1sCmluZGV4IGZkNjY0
OTNiZjRmMmFhMDA2ZTk5MTk4MDk0ZDFiN2FmZDM0ZjQ1NDMuLmU4ZGY3YjM1YTk0MjgwYTZjNzFk
N2Q4YWM2ZjE0NTI5MDQ1MzVkZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRl
RXZlbnQvY29uc3RydWN0b3IuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0
ZUV2ZW50L2NvbnN0cnVjdG9yLmh0dHBzLmh0bWwKQEAgLTYsOCArNiwxOCBAQAogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KK2NvbnN0
IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczov
L2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBt
ZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNv
ZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAg
ICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30pOwogY29uc3QgYmFzaWNDYXJk
ID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKLWNv
bnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkXSk7Citjb25zdCBk
ZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZCwgYXBwbGVQYXldKTsKIGNv
bnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHRvdGFsOiB7CiAgICAgbGFi
ZWw6ICJUb3RhbCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3Vw
ZGF0ZVdpdGgtY2FsbC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVx
dWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtY2FsbC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLmh0
bWwKaW5kZXggY2Q5MjhkNGJlMWQ4NjA5YTM0ZDA2ZTBhOTYwMzA2ZmM5NWI4NGUzMi4uMTM2NWVj
ZWZlYmViMjc5ZGIyZWRlOWRlOTlkMmYwYzk4NDcwOGM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVu
dFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWNhbGwtaW1tZWRpYXRlLW1hbnVhbC5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1jYWxs
LWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtOSw4ICs5LDE4IEBACiA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgog
c2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlLCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOwor
Y29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0
dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAor
ICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3Vu
dHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJd
LAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxp
ZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIg
fSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOwor
Y29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5
XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIs
IHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAg
IGxhYmVsOiAibGFiZWwiLApAQCAtNDUsMjYgKzU1LDI5IEBAIGZ1bmN0aW9uIHRlc3RJbW1lZGlh
dGVVcGRhdGUoeyB0ZXh0Q29udGVudDogdGVzdE5hbWUgfSkgewogICAgIGNvbnN0IGV2ZW50UHJv
bWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgIHJlcXVlc3Qu
YWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgInNoaXBwaW5nYWRkcmVzc2NoYW5nZSIsCi0gICAg
ICAgIGFzeW5jIGV2ID0+IHsKLSAgICAgICAgICAvLyBzcGluIHRoZSBldmVudCBsb29wLCBzZXRz
IFtbd2FpdEZvclVwZGF0ZV1dIHRvIHRydWUuCi0gICAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNv
bHZlKCk7Ci0gICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGV2LnVwZGF0ZVdpdGgodmFsaWRE
ZXRhaWxzKTsKLSAgICAgICAgICAgIHJlc29sdmUoKTsgLy8gVGhpcyBpcyBiYWQuCi0gICAgICAg
ICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICAgICAgICByZWplY3QoZXJyKTsgLy8gdGhpcyBpcyBn
b29kLgotICAgICAgICAgIH0KKyAgICAgICAgZXYgPT4geworICAgICAgICAgIC8vIEZvcmNlcyB1
cGRhdGVXaXRoKCkgdG8gYmUgcnVuIGluIHRoZSBuZXh0IGV2ZW50IGxvb3AgdGljayBzbyB0aGF0
CisgICAgICAgICAgLy8gW1t3YWl0Rm9yVXBkYXRlXV0gaXMgYWxyZWFkeSB0cnVlIHdoZW4gaXQg
cnVucy4KKyAgICAgICAgICB0LnN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICB0cnkg
eworICAgICAgICAgICAgICBldi51cGRhdGVXaXRoKHZhbGlkRGV0YWlscyk7CisgICAgICAgICAg
ICAgIHJlc29sdmUoKTsgLy8gVGhpcyBpcyBiYWQuCisgICAgICAgICAgICB9IGNhdGNoIChlcnIp
IHsKKyAgICAgICAgICAgICAgcmVqZWN0KGVycik7IC8vIHRoaXMgaXMgZ29vZC4KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICB9KTsKICAgICAgICAgfSwKICAgICAgICAgeyBvbmNlOiB0cnVlIH0K
ICAgICAgICk7CiAgICAgfSk7Ci0gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0LnNo
b3coKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgY29uc3QgYWNjZXB0UHJvbWlz
ZSA9IHJlcXVlc3Quc2hvdygpOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAg
ICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIGV2ZW50UHJvbWlzZSwKICAg
ICAgICJUaGUgZXZlbnQgbG9vcCBhbHJlYWR5IHNwdW4sIHNvIFtbd2FpdEZvclVwZGF0ZV1dIGlz
IG5vdyB0cnVlIgogICAgICk7CisgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhY2NlcHRQcm9t
aXNlOwogICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRlKCk7CiAgIH0sIHRlc3ROYW1lLnRyaW0o
KSk7CiB9CkBAIC05MCw3ICsxMDMsNyBAQCBmdW5jdGlvbiB0ZXN0U3Vic2VxdWVudFVwZGF0ZVdp
dGhDYWxscyh7IHRleHRDb250ZW50OiB0ZXN0TmFtZSB9KSB7CiAgICAgICB9KTsKICAgICB9KTsK
ICAgICBjb25zdCByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKLSAgICBhd2FpdCBw
cm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQs
CiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgZXZlbnRQcm9taXNlLApAQCAtMTM1
LDcgKzE0OCw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN5Y2xlRXZlbnRzKHsgdGV4dENvbnRlbnQ6IHRl
c3ROYW1lIH0pIHsKIAogICAgIC8vIEhlcmUsIHdlIHRyeSB0byBiZSBzbmVha3ksIGFuZCByZXVz
ZSB0aGUgYWRkcmVzc0NoYW5nZUV2ZW50IHRvIHBlcmZvcm0gdGhlIHVwZGF0ZS4KICAgICAvLyBI
b3dldmVyLCBhZGRyZXNzQ2hhbmdlRXZlbnQgW1t3YWl0aW5nRm9yVXBkYXRlXV0gaXMgdHJ1ZSwg
c28gaXQgdGhyb3dzLgotICAgIGFzc2VydF90aHJvd3MoCisgICAgYXNzZXJ0X3Rocm93c19kb20o
CiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgKCkgPT4gewogICAgICAgICBhZGRy
ZXNzQ2hhbmdlRXZlbnQudXBkYXRlV2l0aCh2YWxpZERldGFpbHMpOwpAQCAtMTQ2LDcgKzE1OSw3
IEBAIGZ1bmN0aW9uIHRlc3RSZWN5Y2xlRXZlbnRzKHsgdGV4dENvbnRlbnQ6IHRlc3ROYW1lIH0p
IHsKICAgICAvLyBCdXQgb3B0aW9uQ2hhbmdlRXZlbnQgaXMgc3RpbGwgdXNhYmxlIHRobywgc28u
Li4KICAgICBvcHRpb25DaGFuZ2VFdmVudC51cGRhdGVXaXRoKHZhbGlkRGV0YWlscyk7CiAKLSAg
ICBhc3NlcnRfdGhyb3dzKAorICAgIGFzc2VydF90aHJvd3NfZG9tKAogICAgICAgIkludmFsaWRT
dGF0ZUVycm9yIiwKICAgICAgICgpID0+IHsKICAgICAgICAgb3B0aW9uQ2hhbmdlRXZlbnQudXBk
YXRlV2l0aCh2YWxpZERldGFpbHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRh
dGVFdmVudC91cGRhdGVXaXRoLWR1cGxpY2F0ZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWR1cGxpY2F0
ZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDQwYmEzMDU3ZTBjYjEw
NDEyZGY3NTk1MTZlZTE5MzkyYWU3MGYxYzMuLmE0YTdhZmQ3ZjYzMzdjMzEzNGQyNTRmMTI1NzQ2
M2Q2OWVmZDMwZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBk
YXRlV2l0aC1kdXBsaWNhdGUtc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtZHVwbGljYXRlLXNoaXBw
aW5nLW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTgsOSArOCwxOCBAQAogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
IHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsK
LQorY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAz
LAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBj
b3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNE
UyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2
YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2Fy
ZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBbdmFsaWRNZXRob2RdOworY29uc3QgdmFsaWRN
ZXRob2RzID0gW3ZhbGlkTWV0aG9kLCBhcHBsZVBheV07CiBjb25zdCB2YWxpZEFtb3VudCA9IE9i
amVjdC5mcmVlemUoewogICBjdXJyZW5jeTogIlVTRCIsCiAgIHZhbHVlOiAiNS4wMCIsCkBAIC02
NCw5ICs3Myw5IEBAIGZ1bmN0aW9uIHRlc3RGaXJlRXZlbnRzKGJ1dHRvbikgewogICAgICAgZXZl
bnQudXBkYXRlV2l0aChuZXdEZXRhaWxzKTsKICAgICB9KTsKICAgICBjb25zdCBhY2NlcHRQcm9t
aXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19qcygKICAgICAgIHQsCi0gICAgICBuZXcgVHlwZUVycm9yKCks
CisgICAgICBUeXBlRXJyb3IsCiAgICAgICBhY2NlcHRQcm9taXNlLAogICAgICAgIkR1cGxpY2F0
ZSBzaGlwcGluZ09wdGlvbiBpZHMgbXVzdCBhYm9ydCB3aXRoIFR5cGVFcnJvciIKICAgICApOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWluY3Jl
bWVudGFsLXVwZGF0ZS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRl
RXZlbnQvdXBkYXRlV2l0aC1pbmNyZW1lbnRhbC11cGRhdGUtbWFudWFsLmh0dHBzLmh0bWwKaW5k
ZXggM2QxYmZiNDFiODRkNmIwZWNjMmQ0YmRlMjVlYWIyZGVhZDQ2NWUzNC4uYzFlZDFiNWY2ODUw
YzdmMjY1NjZmZmI2ZTk4YjA2ZWE1MTczOWUxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJlcXVl
c3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLWluY3JlbWVudGFsLXVwZGF0ZS1tYW51YWwuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtaW5jcmVt
ZW50YWwtdXBkYXRlLW1hbnVhbC5odHRwcy5odG1sCkBAIC0xNCw2ICsxNCwxNSBAQCBzZXR1cCh7
CiAKIGNvbnN0IG1ldGhvZHMgPSBbewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIs
Cit9LCB7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXki
LAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJt
ZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hh
bnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3Jrczog
WyJ2aXNhIl0sCisgIH0KIH1dOwogCiBjb25zdCBvcHRpb25zID0gewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
UGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLW1ldGhvZC1hYm9ydC11cGRhdGUt
bWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdp
dGgtbWV0aG9kLWFib3J0LXVwZGF0ZS1tYW51YWwuaHR0cHMuaHRtbAppbmRleCAwZmY3ZjIzYjY0
Nzk2OTU5MDdhZWUzZTQ3OTQzNmI1ZmYxM2UxNjVhLi5lMjQ0NTJjMmE5OWQzMDFiOGVhYzAzMzA4
M2UzNzk1ZTU0YmJlMTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50
L3VwZGF0ZVdpdGgtbWV0aG9kLWFib3J0LXVwZGF0ZS1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZVdpdGgtbWV0aG9kLWFib3J0LXVwZGF0
ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtMTgsOCArMTgsMTkgQEAgY29uc3QgdmFsaWRNZXRob2RC
YXNpY0NhcmQgPSBPYmplY3QuZnJlZXplKHsKICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNh
cmQiLAogfSk7CiAKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAg
dmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBs
ZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsi
c3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0KK30p
OworCiAvLyBNZXRob2RzCi1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxp
ZE1ldGhvZEJhc2ljQ2FyZCwgdmFsaWRNZXRob2RdKTsKK2NvbnN0IHZhbGlkTWV0aG9kcyA9IE9i
amVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kQmFzaWNDYXJkLCB2YWxpZE1ldGhvZCwgYXBwbGVQYXld
KTsKIAogLy8gQW1vdW50cwogY29uc3QgdmFsaWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKQEAg
LTEzMCw3ICsxNDEsNyBAQCByZWN1cnNpdmVEYXRhLmZvbyA9IHJlY3Vyc2l2ZURhdGE7CiBPYmpl
Y3QuZnJlZXplKHJlY3Vyc2l2ZURhdGEpOwogCiBjb25zdCBtb2RpZmllcldpdGhSZWN1cnNpdmVE
YXRhID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHN1cHBvcnRlZE1ldGhvZHM6IHZhbGlkTWV0aG9kQmFz
aWNDYXJkLAorICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiAgIHRvdGFsOiB2YWxp
ZFRvdGFsLAogICBkYXRhOiByZWN1cnNpdmVEYXRhLAogfSk7CkBAIC0xNDgsMTQgKzE1OSwyMCBA
QCBmdW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFkRGV0YWlscywgZXhwZWN0ZWRFcnJv
ciwgZXJyb3JDb2RlKSB7CiAgICAgfTsKICAgICAvLyBGaXJzdCB3ZSBjaGVjayB0aGUgYmFkIHVw
ZGF0ZS4KICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGxldCB0ZXN0X2Z1bmM7CisgICAgaWYgKHR5cGVvZiBl
eHBlY3RlZEVycm9yID09ICJmdW5jdGlvbiIpIHsKKyAgICAgIHRlc3RfZnVuYyA9IHByb21pc2Vf
cmVqZWN0c19qczsKKyAgICB9IGVsc2UgeworICAgICAgdGVzdF9mdW5jID0gcHJvbWlzZV9yZWpl
Y3RzX2RvbTsKKyAgICB9CisgICAgYXdhaXQgdGVzdF9mdW5jKAogICAgICAgdCwKICAgICAgIGV4
cGVjdGVkRXJyb3IsCiAgICAgICBhY2NlcHRQcm9taXNlLAogICAgICAgImJhZERldGFpbHMgbXVz
dCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IiCiAgICAg
KTsKICAgICAvLyBUaGUgcmVxdWVzdCBbW3N0YXRlXV0gaXMgbm93ICJjbG9zZWQiLCBzbyBsZXQn
cyBjaGVjayBmb3IgSW52YWxpZFN0YXRlRXJyb3IKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMo
CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAgICAiSW52YWxp
ZFN0YXRlRXJyb3IiLAogICAgICAgcmVxdWVzdC5zaG93KCksCkBAIC0xNzUsNyArMTkyLDcgQEAg
ZnVuY3Rpb24gdGVzdEJhZFVwZGF0ZShidXR0b24sIGJhZERldGFpbHMsIGV4cGVjdGVkRXJyb3Is
IGVycm9yQ29kZSkgewogPG9sPgogICA8bGk+CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSIKLSAgICAg
IGNvbnN0IHJlamVjdGVkUHJvbWlzZSA9IFByb21pc2UucmVqZWN0KG5ldyBTeW50YXhFcnJvcign
dGVzdCcpKS5jYXRjaChlcnIgPT4gZXJyKTsKKyAgICAgIGNvbnN0IHJlamVjdGVkUHJvbWlzZSA9
IFByb21pc2UucmVqZWN0KG5ldyBTeW50YXhFcnJvcigndGVzdCcpKTsKICAgICAgIHRlc3RCYWRV
cGRhdGUodGhpcywgcmVqZWN0ZWRQcm9taXNlLCAnQWJvcnRFcnJvcicpOwogICAgICI+CiAgICAg
ICBSZWplY3Rpb24gb2YgZGV0YWlsc1Byb21pc2UgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGgg
YW4gIkFib3J0RXJyb3IiIERPTUV4Y2VwdGlvbi4KQEAgLTE4NCw3ICsyMDEsNyBAQCBmdW5jdGlv
biB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFkRGV0YWlscywgZXhwZWN0ZWRFcnJvciwgZXJyb3JD
b2RlKSB7CiAgIDxsaT4KICAgICA8YnV0dG9uIG9uY2xpY2s9IgogICAgICAgY29uc3QgaW52YWxp
ZERldGFpbHMgPSB7IHRvdGFsOiBgdGhpcyB3aWxsIGNhdXNlIGEgVHlwZUVycm9yIWAgfTsKLSAg
ICAgIHRlc3RCYWRVcGRhdGUodGhpcywgaW52YWxpZERldGFpbHMsIG5ldyBUeXBlRXJyb3IoKSk7
CisgICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGludmFsaWREZXRhaWxzLCBUeXBlRXJyb3IpOwog
ICAgICI+CiAgICAgICBUb3RhbCBpbiB0aGUgdXBkYXRlIGlzIGEgc3RyaW5nLCBzbyBjb252ZXJ0
aW5nIHRvIElETCBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhIFR5cGVFcnJvci4KICAgICA8
L2J1dHRvbj4KQEAgLTE5MiwxNCArMjA5LDE0IEBAIGZ1bmN0aW9uIHRlc3RCYWRVcGRhdGUoYnV0
dG9uLCBiYWREZXRhaWxzLCBleHBlY3RlZEVycm9yLCBlcnJvckNvZGUpIHsKICAgPGxpPgogICAg
IDxidXR0b24gb25jbGljaz0iCiAgICAgICBjb25zdCBpbnZhbGlkRGV0YWlscyA9IHsgdG90YWw6
IHJlY3Vyc2l2ZURhdGEgfTsKLSAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgaW52YWxpZERldGFp
bHMsIG5ldyBUeXBlRXJyb3IoKSk7CisgICAgICB0ZXN0QmFkVXBkYXRlKHRoaXMsIGludmFsaWRE
ZXRhaWxzLCBUeXBlRXJyb3IpOwogICAgICI+CiAgICAgICBUb3RhbCBpcyByZWN1cnNpdmUsIHNv
IGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9y
LgogICAgIDwvYnV0dG9uPgogICA8L2xpPgogICA8bGk+CiAgICAgPGJ1dHRvbiBvbmNsaWNrPSIK
LSAgICAgIHRlc3RCYWRVcGRhdGUodGhpcywgaW52YWxpZERldGFpbHNOZWdhdGl2ZVRvdGFsLCBu
ZXcgVHlwZUVycm9yKCkpOworICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBpbnZhbGlkRGV0YWls
c05lZ2F0aXZlVG90YWwsIFR5cGVFcnJvcik7CiAgICAgIj4KICAgICAgIFVwZGF0aW5nIHdpdGgg
YSBuZWdhdGl2ZSB0b3RhbCByZXN1bHRzIGluIGEgVHlwZUVycm9yLgogICAgIDwvYnV0dG9uPgpA
QCAtMjA3LDE2ICsyMjQsMTYgQEAgZnVuY3Rpb24gdGVzdEJhZFVwZGF0ZShidXR0b24sIGJhZERl
dGFpbHMsIGV4cGVjdGVkRXJyb3IsIGVycm9yQ29kZSkgewogICA8bGk+CiAgICAgPGJ1dHRvbiBv
bmNsaWNrPSIKICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCB2YWxp
ZERldGFpbHMsIHsgZGlzcGxheUl0ZW1zOiBpbnZhbGlkUGF5bWVudEl0ZW1zIH0pOwotICAgICAg
dGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBuZXcgUmFuZ2VFcnJvcigpKTsKKyAgICAg
IHRlc3RCYWRVcGRhdGUodGhpcywgYmFkRGV0YWlscywgUmFuZ2VFcnJvcik7CiAgICAgIj4KLSAg
ICAgIFVwZGF0aW5nIHdpdGggYSBkaXNwbGF5SXRlbSB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kg
cmVzdWx0cyBpbiBUeXBlRXJyb3IuCisgICAgICBVcGRhdGluZyB3aXRoIGEgZGlzcGxheUl0ZW0g
d2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5IHJlc3VsdHMgaW4gUmFuZ2VFcnJvci4KICAgICA8L2J1
dHRvbj4KICAgPC9saT4KICAgPGxpPgogICAgIDxidXR0b24gb25jbGljaz0iCiAgICAgICBjb25z
dCBkdXBsaWNhdGVTaGlwcGluZ09wdGlvbnMgPSBbdmFsaWRTaGlwcGluZ09wdGlvbiwgdmFsaWRT
aGlwcGluZ09wdGlvbl07CiAgICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7
fSwgdmFsaWREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9uczogZHVwbGljYXRlU2hpcHBpbmdPcHRp
b25zIH0pOwotICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBuZXcgVHlwZUVy
cm9yKCkpOworICAgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBUeXBlRXJyb3Ip
OwogICAgICI+CiAgICAgICBVcGRhdGluZyB3aXRoIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbnMg
KHNhbWUgSURzKSByZXN1bHRzIGluIGEgVHlwZUVycm9yLgogICAgIDwvYnV0dG9uPgpAQCAtMjI0
LDcgKzI0MSw3IEBAIGZ1bmN0aW9uIHRlc3RCYWRVcGRhdGUoYnV0dG9uLCBiYWREZXRhaWxzLCBl
eHBlY3RlZEVycm9yLCBlcnJvckNvZGUpIHsKICAgPGxpPgogICAgIDxidXR0b24gb25jbGljaz0i
CiAgICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsaWREZXRhaWxz
LCB7IHNoaXBwaW5nT3B0aW9uczogaW52YWxpZFNoaXBwaW5nT3B0aW9ucyB9KTsKLSAgICAgIHRl
c3RCYWRVcGRhdGUodGhpcywgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgICB0
ZXN0QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIFJhbmdlRXJyb3IpOwogICAgICI+CiAgICAg
ICBVcGRhdGluZyB3aXRoIGEgc2hpcHBpbmdPcHRpb24gd2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5
IHZhbHVlIHJlc3VsdHMgaW4gYSBSYW5nRXJyb3IuCiAgICAgPC9idXR0b24+CkBAIC0yMzQsNyAr
MjUxLDcgQEAgZnVuY3Rpb24gdGVzdEJhZFVwZGF0ZShidXR0b24sIGJhZERldGFpbHMsIGV4cGVj
dGVkRXJyb3IsIGVycm9yQ29kZSkgewogICAgICAgLy8gdmFsaWRNb2RpZmllciBpcyB0aGVyZSBh
cyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMgLSBpdCBzaG91bGQganVzdCBnZXQgaWdub3JlZAog
ICAgICAgY29uc3QgYmFkTW9kaWZpZXJzID0geyBtb2RpZmllcnM6IFsgbW9kaWZpZXJXaXRoSW52
YWxpZFRvdGFsLCB2YWxpZE1vZGlmaWVyIF0gfTsKICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBP
YmplY3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMsIGJhZE1vZGlmaWVycyk7Ci0gICAgICB0ZXN0
QmFkVXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIG5ldyBSYW5nZUVycm9yKCkpOworICAgICAgdGVz
dEJhZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgICAiPgogICAgICAg
TXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwgaXRlbSBoYXMg
YW4gaW52YWxpZCBjdXJyZW5jeS4KICAgICA8L2J1dHRvbj4KQEAgLTI0NCw3ICsyNjEsNyBAQCBm
dW5jdGlvbiB0ZXN0QmFkVXBkYXRlKGJ1dHRvbiwgYmFkRGV0YWlscywgZXhwZWN0ZWRFcnJvciwg
ZXJyb3JDb2RlKSB7CiAgICAgICAvLyB2YWxpZE1vZGlmaWVyIGlzIHRoZXJlIGFzIHRvIGF2b2lk
IGZhbHNlIHBvc2l0aXZlcyAtIGl0IHNob3VsZCBqdXN0IGdldCBpZ25vcmVkCiAgICAgICBjb25z
dCBiYWRNb2RpZmllcnMgPSB7IG1vZGlmaWVyczogWyBtb2RpZmllcldpdGhJbnZhbGlkRGlzcGxh
eUl0ZW1zLCB2YWxpZE1vZGlmaWVyIF0gfTsKICAgICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmpl
Y3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMsIGJhZE1vZGlmaWVycyk7Ci0gICAgICB0ZXN0QmFk
VXBkYXRlKHRoaXMsIGJhZERldGFpbHMsIG5ldyBSYW5nZUVycm9yKCkpOworICAgICAgdGVzdEJh
ZFVwZGF0ZSh0aGlzLCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgICAiPgogICAgICAgTXVz
dCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkgaXRlbSBoYXMgYW4g
aW52YWxpZCBjdXJyZW5jeS4KICAgIDwvYnV0dG9uPgpAQCAtMjU0LDcgKzI3MSw3IEBAIGZ1bmN0
aW9uIHRlc3RCYWRVcGRhdGUoYnV0dG9uLCBiYWREZXRhaWxzLCBleHBlY3RlZEVycm9yLCBlcnJv
ckNvZGUpIHsKICAgICAgIC8vIHZhbGlkTW9kaWZpZXIgaXMgdGhlcmUgYXMgdG8gYXZvaWQgZmFs
c2UgcG9zaXRpdmVzIC0gaXQgc2hvdWxkIGp1c3QgZ2V0IGlnbm9yZWQKICAgICAgIGNvbnN0IGJh
ZE1vZGlmaWVycyA9IHsgbW9kaWZpZXJzOiBbIG1vZGlmaWVyV2l0aFJlY3Vyc2l2ZURhdGEsIHZh
bGlkTW9kaWZpZXIgXSB9OwogICAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24o
e30sIHZhbGlkRGV0YWlscywgYmFkTW9kaWZpZXJzKTsKLSAgICAgIHRlc3RCYWRVcGRhdGUodGhp
cywgYmFkRGV0YWlscywgbmV3IFR5cGVFcnJvcigpKTsKKyAgICAgIHRlc3RCYWRVcGRhdGUodGhp
cywgYmFkRGV0YWlscywgVHlwZUVycm9yKTsKICAgICAiPgogICAgICAgTXVzdCB0aHJvdyBhcyBN
b2RpZmllciBoYXMgYSByZWN1cnNpdmUgZGljdGlvbmFyeS4KICAgICA8L2J1dHRvbj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRlV2l0aC1zdGF0ZS1jaGVj
a3MtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0
ZVdpdGgtc3RhdGUtY2hlY2tzLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDRkNGVmNzM5NDlkZDFk
ZDI3MTUyMWM1MDA1Y2E0ZTkzMTA4YWI4NDQuLmZiMTZkZTU2OTlhYTc0ZTlmYjcxNzg4ZTIzNzhk
ZjZlMjE4NDdmMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBk
YXRlV2l0aC1zdGF0ZS1jaGVja3MtbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFJl
cXVlc3RVcGRhdGVFdmVudC91cGRhdGVXaXRoLXN0YXRlLWNoZWNrcy1tYW51YWwuaHR0cHMuaHRt
bApAQCAtNiw4ICs2LDE4IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgogc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVl
LCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOworY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJl
ZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIs
CisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1l
cmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFu
dENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBb
InZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBz
dXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZF0pOworY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0
LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9i
amVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIsIHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2
YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGxhYmVsOiAibGFiZWwiLApAQCAtNDUsNyAr
NTUsNyBAQCBmdW5jdGlvbiB0ZXN0UmVxdWVzdElzQ2xvc2VkKGJ1dHRvbikgewogICAgIHJlc3Bv
bnNlUHJvbWlzZS5jYXRjaChlcnIgPT4gZXJyKTsKICAgICAvLyBTZXQgcmVxdWVzdC5bW3N0YXRl
XV0gdG8gY2xvc2VkCiAgICAgYXdhaXQgZXZlbnQudGFyZ2V0LmFib3J0KCk7Ci0gICAgYXNzZXJ0
X3Rocm93cygKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgKICAgICAgICJJbnZhbGlkU3RhdGVFcnJv
ciIsCiAgICAgICAoKSA9PiB7CiAgICAgICAgIGV2ZW50LnVwZGF0ZVdpdGgodmFsaWREZXRhaWxz
KTsKQEAgLTcwLDcgKzgwLDcgQEAgZnVuY3Rpb24gdGVzdFJlcXVlc3RJc1VwZGF0aW5nKGJ1dHRv
bikgewogICAgIH0pOwogICAgIC8vIFNldCByZXF1ZXN0LltbdXBkYXRpbmddXSB0byB0cnVlCiAg
ICAgZXZlbnQudXBkYXRlV2l0aChwZW5kaW5nUHJvbWlzZSk7Ci0gICAgYXNzZXJ0X3Rocm93cygK
KyAgICBhc3NlcnRfdGhyb3dzX2RvbSgKICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAg
ICAoKSA9PiB7CiAgICAgICAgIGV2ZW50LnVwZGF0ZVdpdGgodmFsaWREZXRhaWxzKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRld2l0aC1tZXRob2QuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQvdXBkYXRld2l0aC1tZXRob2Qu
aHR0cHMuaHRtbAppbmRleCBhZGFjZGYzZjA2ZDFjMWFkYjUwYTY1NTg1YjY0NDQxYzVlMDBkZTYz
Li5hY2M2MmY1ZTJjZTk4MGVhZDE1ZTI1YTcwYjkwY2E0ZTQ1ZDU2YjNmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50L3VwZGF0ZXdpdGgtbWV0aG9kLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC91cGRhdGV3aXRoLW1ldGhvZC5odHRw
cy5odG1sCkBAIC02LDggKzYsMTggQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVl
emUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwK
KyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVy
Y2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50
Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsi
dmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUoeyBzdXBw
b3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9i
amVjdC5mcmVlemUoW2Jhc2ljQ2FyZF0pOworY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3Qu
ZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9i
amVjdC5mcmVlemUoewogICB0b3RhbDogewogICAgIGxhYmVsOiAiVG90YWwiLApAQCAtMzMsNyAr
NDMsNyBAQCB0ZXN0KCgpID0+IHsKICAgICBuZXcgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCgi
c2hpcHBpbmdhZGRyZXNzY2hhbmdlIiksCiAgICAgbmV3IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZl
bnQoInNoaXBwaW5nb3B0aW9uY2hhbmdlIiksCiAgIF0uZm9yRWFjaChldiA9PiB7Ci0gICAgYXNz
ZXJ0X3Rocm93cygKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgKICAgICAgICJJbnZhbGlkU3RhdGVF
cnJvciIsCiAgICAgICAoKSA9PiB7CiAgICAgICAgIGV2LnVwZGF0ZVdpdGgoUHJvbWlzZS5yZXNv
bHZlKCkpOwpAQCAtNTMsNyArNjMsNyBAQCB0ZXN0KCgpID0+IHsKICAgXS5tYXAoZXYgPT4gewog
ICAgIHJlcXVlc3QuZGlzcGF0Y2hFdmVudChldik7IC8vIHNldCAudGFyZ2V0IGFuZCBkaXNwYXRj
aCBmbGFnCiAgICAgLy8gdW5zdHJ1c3RlZCBldmVudC4KLSAgICBhc3NlcnRfdGhyb3dzKAorICAg
IGFzc2VydF90aHJvd3NfZG9tKAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgICgp
ID0+IHsKICAgICAgICAgZXYudXBkYXRlV2l0aChQcm9taXNlLnJlc29sdmUoKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dzLWVycm9yLW1lbWJlci1t
YW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dz
LWVycm9yLW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbAppbmRleCBiM2E1MzllZjhmNGI4YWE5ZGQ5
YTNlZDBjYjZiNTI3ZjE4NGNiMDRmLi45MTM1NTIwY2Q3NjJmM2U2Mjg2YjVmM2JhNTcyZjg4Y2Fl
OTIwZmExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93
cy1lcnJvci1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlkYXRp
b25FcnJvcnMvcmV0cnktc2hvd3MtZXJyb3ItbWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCkBAIC00
NSw2ICs0NSw2IEBAIGZ1bmN0aW9uIHJldHJ5U2hvd3NFcnJvck1lbWJlcihidXR0b24pIHsKICAg
PC9saT4KIDwvb2w+CiA8c21hbGw+Ci0gIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNl
IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lzc3Vl
cyI+ZmlsZSBhIGJ1ZzwvYT4KLSAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVx
dWVzdC9PV05FUlMiPm93bmVyczwvYT4uCisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxl
YXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lz
c3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQt
cmVxdWVzdC9NRVRBLnltbCI+b3duZXJzPC9hPi4KIDwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9Q
YXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93cy1wYXllci1tZW1iZXItbWFudWFsLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93cy1wYXllci1t
ZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggOGRiYzc2MGZkMDdmZTk5MGI4YmJkZWQ1NmZm
Y2E1OTA5MTQ5MmZkOC4uZjgxMTVlNjllYzVkN2MzMTcyYTZlNDJkNGU0NDY4OThkMDRmOWE4YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJvcnMvcmV0cnktc2hvd3MtcGF5ZXIt
bWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3Jz
L3JldHJ5LXNob3dzLXBheWVyLW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbApAQCAtNjAsNiArNjAs
NiBAQCBmdW5jdGlvbiByZXRyeVNob3dzUGF5ZXJNZW1iZXIoYnV0dG9uLCBlcnJvcikgewogICA8
L2xpPgogPC9vbD4KIDxzbWFsbD4KLSAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2Ug
PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaXNzdWVz
Ij5maWxlIGEgYnVnPC9hPgotICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1
ZXN0L09XTkVSUyI+b3duZXJzPC9hPi4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVh
c2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1y
ZXF1ZXN0L01FVEEueW1sIj5vd25lcnM8L2E+LgogPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1Bh
eW1lbnRWYWxpZGF0aW9uRXJyb3JzL3JldHJ5LXNob3dzLXNoaXBwaW5nQWRkcmVzcy1tZW1iZXIt
bWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9QYXltZW50VmFsaWRhdGlvbkVycm9ycy9yZXRyeS1zaG93
cy1zaGlwcGluZ0FkZHJlc3MtbWVtYmVyLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDM1NmYzMGRh
NmI1NGJlZjQxMzZhMmIzYTgwNjMxM2JmNGJiMWY3NjYuLjk0ZTZmYTUxMDViMjBhNzEyNzI5MmRl
NTdhZGNmYjIwZjNiODA2ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L1BheW1lbnRWYWxpZGF0aW9uRXJyb3Jz
L3JldHJ5LXNob3dzLXNoaXBwaW5nQWRkcmVzcy1tZW1iZXItbWFudWFsLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvUGF5bWVudFZhbGlkYXRpb25FcnJvcnMvcmV0cnktc2hvd3Mtc2hpcHBpbmdBZGRyZXNz
LW1lbWJlci1tYW51YWwuaHR0cHMuaHRtbApAQCAtOTgsNiArOTgsNiBAQCBmdW5jdGlvbiByZXRy
eVNob3dzU2hpcHBpbmdBZGRyZXNzTWVtYmVyKGJ1dHRvbiwgZXJyb3IpIHsKICAgPC9saT4KIDwv
b2w+CiA8c21hbGw+Ci0gIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9
Imh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lzc3VlcyI+ZmlsZSBh
IGJ1ZzwvYT4KLSAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9PV05F
UlMiPm93bmVyczwvYT4uCisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhy
ZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+Zmls
ZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9N
RVRBLnltbCI+b3duZXJzPC9hPi4KIDwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1z
LW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxnb3JpdGhtcy1tYW51YWwuaHR0cHMuaHRtbAppbmRl
eCA1NDk0MzUzYzZiY2ViNGVkMGQzODg4NTJiZDdmNDI2ZTU3MTUxODZkLi5iOTBjMzEyYWJhM2Jm
NDk3ODk4NmRlZmUwMGY1MTk1Yzc0Yjg4YjYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1zLW1h
bnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsZ29yaXRobXMtbWFudWFsLmh0dHBzLmh0bWwKQEAg
LTE1LDYgKzE1LDE2IEBAIGNvbnN0IG1ldGhvZHMgPSBbCiAgIHsKICAgICBzdXBwb3J0ZWRNZXRo
b2RzOiAiYmFzaWMtY2FyZCIsCiAgIH0sCisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0
cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAz
LAorICAgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAg
ICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBw
b3J0czNEUyJdLAorICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0sCisg
IH0KIF07CiBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSB7CiAgIHNoaXBwaW5nT3B0aW9uczogWwpA
QCAtMTAwLDkgKzExMCw5IEBAIGFzeW5jIGZ1bmN0aW9uIHJ1bkFib3J0VGVzdChidXR0b24pIHsK
ICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5
bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlsc05vU2hpcHBpbmdPcHRpb25zKTsKICAgICAvLyBB
d2FpdCB0aGUgdXNlciB0byBhYm9ydAotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJv
cnRFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KHQsICJBYm9ydEVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwogICAgIC8vIFtbc3RhdGVdXSBpcyBu
b3cgY2xvc2VkCi0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJv
ciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJ
bnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKICAgfSwgdGVzdE5hbWUudHJpbSgp
KTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3Rp
dmUtZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxv
d3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dAppbmRleCA2MTViZTliMGIwOWI1NmExYTE1YzQ2ZTAxMTU5NGE0MzQzYTA0ZWRi
Li43YWFhZjFmMWFhNDA2NjBkODQ2NTMzYzgyNTAxMTU4YzUzMzE2NjhkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1
bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDcgQEAK
IEJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0
NDMvY29tbW9uL2JsYW5rLmh0bWwKIAogCi1QQVNTIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxs
b3dwYXltZW50cmVxdWVzdD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAoY3Jvc3Mtb3JpZ2luKSAK
K0ZBSUwgUGF5bWVudFJlcXVlc3QgPGlmcmFtZSBhbGxvd3BheW1lbnRyZXF1ZXN0PiBpbiBub24t
YWN0aXZlIGRvY3VtZW50IChjcm9zcy1vcmlnaW4pIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlv
biAiKCkgPT4geworICAgICAgICBuZXcgZ3JhYmJlZFBheW1lbnRSZXF1ZXN0KC4uLnBheW1lbnRB
cmdzKTsKKyAgICAgIH0iIHRocmV3IGFuIGV4Y2VwdGlvbiBmcm9tIHRoZSB3cm9uZyBnbG9iYWwK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtY3Jv
c3Mtb3JpZ2luLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUt
ZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi5odG1sCmluZGV4IDQ4ZjZkOTA2NjMyOGQ2
ZGU0YTI2YWI0MmM2OWEzNGQ4MjJlY2UyZTguLjI5ZDdjNjAxMGVjZWI4MzYxMjEzZjYyYWJjNWZi
ZTBlMTAyZDMyYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRv
Y3VtZW50LWNyb3NzLW9yaWdpbi5odHRwcy5zdWIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLmh0bWwKQEAgLTE3
LDcgKzE3LDcgQEAgYXN5bmNfdGVzdCgodCkgPT4gewogICAgICAgcGF0aDogJy9jb21tb24vYmxh
bmsuaHRtbCcKICAgICB9KTsKICAgICBpZnJhbWUub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgo
KSA9PiB7Ci0gICAgICBhc3NlcnRfdGhyb3dzKHtuYW1lOiAnU2VjdXJpdHlFcnJvcid9LCAoKSA9
PiB7CisgICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnU2VjdXJpdHlFcnJvcicsICgpID0+IHsKICAg
ICAgICAgbmV3IGdyYWJiZWRQYXltZW50UmVxdWVzdCguLi5wYXltZW50QXJncyk7CiAgICAgICB9
KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRv
Y3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJl
cXVlc3QvYWN0aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCAwMWU4NzhlZTUwYjk2ZDg0NThjOTY0NzhkNTI5YmE0YmFmZGI0MDM3Li42NWQ3ZjFkZmYxNGRi
NWYyM2IwY2NhZDJlOTI0NzFmYjNkMDM0NzBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNiBAQAogCiAKLVBBU1MgUGF5bWVudFJlcXVlc3Qg
PGlmcmFtZSBhbGxvd3BheW1lbnRyZXF1ZXN0PiBpbiBub24tYWN0aXZlIGRvY3VtZW50IChzYW1l
LW9yaWdpbikgCitGQUlMIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVz
dD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAoc2FtZS1vcmlnaW4pIGFzc2VydF90aHJvd3NfZG9t
OiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgICBuZXcgZ3JhYmJlZFBheW1lbnRSZXF1ZXN0KC4u
LnBheW1lbnRBcmdzKTsKKyAgICAgIH0iIHRocmV3IGFuIGV4Y2VwdGlvbiBmcm9tIHRoZSB3cm9u
ZyBnbG9iYWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9j
dW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0
aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLmh0bWwKaW5kZXggYmJjYzAyNmQ1Mjc0YTEz
OWU2ZTFkMzI1MzQzMjIwYjViN2U5NTlkZi4uOWQ1ZDMwY2RjYWI2MWY4ZGUzYjM2ZDYyYjhhY2Ni
MGUwZjczYjQxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9j
dW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0
L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRwcy5odG1sCkBAIC0xMyw3ICsxMyw3IEBA
IGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICBjb25zdCBncmFiYmVkUGF5bWVudFJlcXVlc3QgPSB3
aW4uUGF5bWVudFJlcXVlc3Q7CiAgICAgd2luLmxvY2F0aW9uLmhyZWYgPSAnL2NvbW1vbi9ibGFu
ay5odG1sJzsKICAgICBpZnJhbWUub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7Ci0g
ICAgICBhc3NlcnRfdGhyb3dzKHtuYW1lOiAnU2VjdXJpdHlFcnJvcid9LCAoKSA9PiB7CisgICAg
ICBhc3NlcnRfdGhyb3dzX2RvbSgnU2VjdXJpdHlFcnJvcicsICgpID0+IHsKICAgICAgICAgbmV3
IGdyYWJiZWRQYXltZW50UmVxdWVzdCguLi5wYXltZW50QXJncyk7CiAgICAgICB9KTsKICAgICB9
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvcmVtb3ZpbmctYWxsb3dwYXlt
ZW50cmVxdWVzdC5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvcmVtb3Zp
bmctYWxsb3dwYXltZW50cmVxdWVzdC5odHRwcy5zdWIuaHRtbAppbmRleCAwOTBhZjM5ZWQ3NmJj
MmVmNDVlYzYwOGMzYmMwNWY3Yzc0YWMwYmQyLi42NGJhZWJiNTAyNDY1MTRlOWZkM2RiNTlkM2Rh
ZGE0YWY5NzIwODI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L3JlbW92aW5n
LWFsbG93cGF5bWVudHJlcXVlc3QuaHR0cHMuc3ViLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50
cmVxdWVzdC9yZW1vdmluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCkBAIC0y
Nyw2ICsyNyw5IEBAIGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgfSk7CiAKICAgd2luZG93Lm9ubWVz
c2FnZSA9IHQuc3RlcF9mdW5jKChlKSA9PiB7CisgICAgLy8gSWdub3JlIG1lc3NhZ2VzIHRoYXQg
YXJlIG5vdCBwYXJ0IG9mIHRoZSB0ZXN0LgorICAgIGlmIChlLnNvdXJjZSAhPSBpZnJhbWUuY29u
dGVudFdpbmRvdykgcmV0dXJuOworCiAgICAgaSsrOwogICAgIGlmIChpID09PSAxKSB7CiAgICAg
ICAvLyA1LiBUaGlzIGlzIHRoZSBmaXJzdCBtZXNzYWdlIHdlIHJlY2VpdmUsIGZyb20gdGhlIGZp
cnN0IGxvYWQuCkBAIC00OCw3ICs1MSw5IEBAIGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICAgIC8v
IDguIFRoaXMgaXMgdGhlIHNlY29uZCBtZXNzYWdlIHdlIHJlY2VpdmUsIGZyb20gdGhlIHNlY29u
ZCBsb2FkLgogICAgICAgLy8gU2luY2UgdGhlIGFsbG93cGF5bWVudHJlcXVlc3QgZmxhZyB3YXMg
bm90IHNldCwgd2UgZXhwZWN0IGFuIGV4Y2VwdGlvbi4KICAgICAgIGFzc2VydF9lcXVhbHMoZS5k
YXRhLm1lc3NhZ2UsICdFeGNlcHRpb24nLCAnYWZ0ZXIgbmF2aWdhdGlvbicpOwotICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEuZGV0YWlscywgW3RydWUgLyogZXggaW5zdGFuY2VvZiBE
T01FeGNlcHRpb24qLywgMTggLyogZXguY29kZSAqLywgJ1NlY3VyaXR5RXJyb3InIC8qIGV4Lm5h
bWUgKi9dLCAnYWZ0ZXIgbmF2aWdhdGlvbicpOworICAgICAgYXNzZXJ0X2VxdWFscyg0LCBlLmRh
dGEuZGV0YWlscy5sZW5ndGgpOworICAgICAgLy8gVGhlIGxhc3QgZW50cnkgaXMgdGhlIGVycm9y
IHN0YWNrdHJhY2UuIElnbm9yZSBpdCBpbiBjb21wYXJpc29uLgorICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhlLmRhdGEuZGV0YWlscy5zbGljZSgwLCAzKSwgW3RydWUgLyogZXggaW5zdGFuY2Vv
ZiBET01FeGNlcHRpb24qLywgMTggLyogZXguY29kZSAqLywgJ1NlY3VyaXR5RXJyb3InIC8qIGV4
Lm5hbWUgKi9dLCAnYWZ0ZXIgbmF2aWdhdGlvbicpOwogICAgICAgdC5kb25lKCk7CiAgICAgfQog
ICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3Bh
eW1lbnRyZXF1ZXN0LXRpbWluZy5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVl
c3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0LXRpbWluZy5odHRwcy5zdWIuaHRtbAppbmRl
eCAwNzJiOTRmMjg2ZWQzMzVmMDYzOWU4ZjVjZTg5YzBhZjUyZDM1OTE3Li5hNzQxMjk2ZDVkYTc1
NDYwZjNkMjg3N2YyMjhkNGM1OWUxM2Q2NDNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L3NldHRpbmctYWxsb3dwYXltZW50cmVxdWVzdC10aW1pbmcuaHR0cHMuc3ViLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9zZXR0aW5nLWFsbG93cGF5bWVudHJlcXVlc3Qt
dGltaW5nLmh0dHBzLnN1Yi5odG1sCkBAIC0xLDUgKzEsNiBAQAogPCFkb2N0eXBlIGh0bWw+CiA8
dGl0bGU+UGF5bWVudFJlcXVlc3Qgc2V0dGluZyBhbGxvd3BheW1lbnRyZXF1ZXN0IGFmdGVyIGRv
Y3VtZW50IGNyZWF0aW9uLCBiZWZvcmUgcmVzcG9uc2U8L3RpdGxlPgorPG1ldGEgbmFtZT0idGlt
ZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cz48L3NjcmlwdD4KIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CkBAIC0yMSw5ICsyMiwxNSBAQCBhc3lu
Y190ZXN0KCh0KSA9PiB7CiAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoJ1do
YXQgaXMgdGhlIHJlc3VsdCBvZiBuZXcgUGF5bWVudFJlcXVlc3QoLi4uKT8nLCAnKicpOwogICB9
KTsKIAotICB3aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1bmNfZG9uZSgoZSkgPT4geworICB3
aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoKGUpID0+IHsKKyAgICAvLyBJZ25vcmUgbWVz
c2FnZXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlc3QuCisgICAgaWYgKGUuc291cmNlICE9
IGlmcmFtZS5jb250ZW50V2luZG93KSByZXR1cm47CisKICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0
YS5tZXNzYWdlLCAnRXhjZXB0aW9uJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGEu
ZGV0YWlscywgW3RydWUgLyogZXggaW5zdGFuY2VvZiBET01FeGNlcHRpb24gKi8sIERPTUV4Y2Vw
dGlvbi5TRUNVUklUWV9FUlIsICdTZWN1cml0eUVycm9yJ10pOworICAgIGFzc2VydF9lcXVhbHMo
NCwgZS5kYXRhLmRldGFpbHMubGVuZ3RoKTsKKyAgICAvLyBUaGUgbGFzdCBlbnRyeSBpcyB0aGUg
ZXJyb3Igc3RhY2t0cmFjZS4gSWdub3JlIGl0IGluIGNvbXBhcmlzb24uCisgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhlLmRhdGEuZGV0YWlscy5zbGljZSgwLCAzKSwgW3RydWUgLyogZXggaW5zdGFu
Y2VvZiBET01FeGNlcHRpb24gKi8sIERPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIsICdTZWN1cml0
eUVycm9yJ10pOworICAgIHQuZG9uZSgpOwogICB9KTsKIAogICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L3NldHRp
bmctYWxsb3dwYXltZW50cmVxdWVzdC5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJl
cXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCmluZGV4IDQ1
NjRkMjY0YzRlMmM1NDJiMjU3NDBlOTI3MDljOWU3YzBhMTRhMWQuLmMxZDUzYTRiYzI2MTc1OWQ1
ZWU3MjQzYzkwZTRiZWI3ZjhiN2RlNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVl
c3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2Fs
bG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5o
dG1sCkBAIC0yMCwxMCArMjAsMTUgQEAgYXN5bmNfdGVzdCgodCkgPT4gewogICB9KTsKIAogICB3
aW5kb3cub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoKGUpID0+IHsKKyAgICAvLyBJZ25vcmUgbWVz
c2FnZXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHRlc3QuCisgICAgaWYgKGUuc291cmNlICE9
IGlmcmFtZS5jb250ZW50V2luZG93KSByZXR1cm47CisKICAgICBpKys7CiAgICAgaWYgKGkgPT09
IDEpIHsKICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLm1lc3NhZ2UsICdFeGNlcHRpb24nLCAn
YmVmb3JlIG5hdmlnYXRpb24nKTsKLSAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZS5kYXRhLmRl
dGFpbHMsIFt0cnVlIC8qIGV4IGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uKi8sIDE4IC8qIGV4LmNv
ZGUgKi8sICdTZWN1cml0eUVycm9yJyAvKiBleC5uYW1lICovXSwgJ2JlZm9yZSBuYXZpZ2F0aW9u
Jyk7CisgICAgICBhc3NlcnRfZXF1YWxzKDQsIGUuZGF0YS5kZXRhaWxzLmxlbmd0aCk7CisgICAg
ICAvLyBUaGUgbGFzdCBlbnRyeSBpcyB0aGUgZXJyb3Igc3RhY2t0cmFjZS4gSWdub3JlIGl0IGlu
IGNvbXBhcmlzb24uCisgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0YS5kZXRhaWxzLnNs
aWNlKDAsIDMpLCBbdHJ1ZSAvKiBleCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiovLCAxOCAvKiBl
eC5jb2RlICovLCAnU2VjdXJpdHlFcnJvcicgLyogZXgubmFtZSAqL10sICdiZWZvcmUgbmF2aWdh
dGlvbicpOwogCiAgICAgICAvLyBOYXZpZ2F0ZSB0aGUgaWZyYW1lLiBUaGlzIHdpbGwgZmlyZSBh
IHNlY29uZCAnbG9hZCcgZXZlbnQgb24gdGhlIGlmcmFtZS4KICAgICAgIGlmcmFtZS5jb250ZW50
V2luZG93LmxvY2F0aW9uLmhyZWYgPSBpZnJhbWUuc3JjICsgJz8yJzsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9i
aWxsaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY0ODE1NzczMzM1Nzg1NGE3OTZjOTFhMjIzZWU0MzAxZWNkYzI0OGMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9iaWxsaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKK1JlcXVlc3QgYmlsbGluZyBhZGRyZXNzCisKK0NsaWNrIG9u
IGVhY2ggYnV0dG9uIGluIHNlcXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3aXRob3V0IHJlZnJl
c2hpbmcgdGhlIHBhZ2UuIEVhY2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVx
dWVzdCBVSSB3aW5kb3cuCisKK1doZW4gdGhlIHBheW1lbnQgc2hlZXQgaXMgcHJlc2VudGVkLCBz
ZWxlY3QgYSBwYXltZW50IG1ldGhvZCAoZS5nLiwgYSBjcmVkaXQgY2FyZCkuCisKK1doZW4gbm8g
YmlsbGluZyBhZGRyZXNzIGlzIHJlcXVlc3RlZCwgYFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5t
ZXRob2REZXRhaWxzLmJpbGxpbmdBZGRyZXNzYCBpcyBudWxsLgorV2hlbiBiaWxsaW5nIGFkZHJl
c3MgaXMgcmVxdWVzdGVkLGBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQubWV0aG9kRGV0YWlscy5i
aWxsaW5nQWRkcmVzc2AgaXMgYSBgUGF5bWVudEFkZHJlc3NgLgorRG9uZSEKK0lmIHlvdSBmaW5k
IGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1Z2dl
c3RlZCByZXZpZXdlcnMuCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVs
bAorCitQQVNTIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBpcyBpbiBwcm90b3R5cGUgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
YmlsbGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZm
OWNiMjg1N2ZmNmE1YzZlNTdiM2ZlNDNhNzFlMmZlZDc1YWFiYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L2JpbGxpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5odG1sCkBAIC0wLDAgKzEs
MTE0IEBACis8IURPQ1RZUEUgaHRtbD4gPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cis8dGl0bGU+
VGVzdCBmb3IgcmVxdWVzdGluZyBiaWxsaW5nIGFkZHJlc3M8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgc2V0dXAo
eworICAgIGV4cGxpY2l0X2RvbmU6IHRydWUsCisgICAgZXhwbGljaXRfdGltZW91dDogdHJ1ZSwK
KyAgfSk7CisKKyAgY29uc3QgbWV0aG9kcyA9IFsKKyAgICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJi
YXNpYy1jYXJkIiB9LAorICAgIHsKKyAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2Fw
cGxlLmNvbS9hcHBsZS1wYXkiLAorICAgICAgZGF0YTogeworICAgICAgICB2ZXJzaW9uOiAzLAor
ICAgICAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAg
ICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJz
dXBwb3J0czNEUyJdLAorICAgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAg
ICB9LAorICAgIH0sCisgIF07CisKKyAgY29uc3QgZGV0YWlscyA9IHsKKyAgICB0b3RhbDogewor
ICAgICAgbGFiZWw6ICJsYWJlbCIsCisgICAgICBhbW91bnQ6IHsgY3VycmVuY3k6ICJVU0QiLCB2
YWx1ZTogIjUuMDAiIH0sCisgICAgfSwKKyAgfTsKKyAgdGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0
X3RydWUoCisgICAgICAib25wYXltZW50bWV0aG9kY2hhbmdlIiBpbiBQYXltZW50UmVxdWVzdC5w
cm90b3R5cGUsCisgICAgICAiVGhlIHBheW1lbnRtZXRob2RjaGFuZ2UgaXMgbm90IHN1cHBvcnRl
ZCIKKyAgICApOworICB9LCAib25wYXltZW50bWV0aG9kY2hhbmdlIGlzIGluIHByb3RvdHlwZSIp
OworCisgIGZ1bmN0aW9uIGRvbnRSZXF1ZXN0QmlsbGluZ0FkZHJlc3MoKSB7CisgICAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVx
dWVzdChtZXRob2RzLCBkZXRhaWxzLCB7fSk7CisgICAgICBjb25zdCBzaG93UHJvbWlzZSA9IHJl
cXVlc3Quc2hvdygpOworCisgICAgICAvLyBMZXQncyBjaGVjayB0aGUgbWV0aG9kIGRhdGEgZnJv
bSBldmVudC4KKyAgICAgIGNvbnN0IHsgbWV0aG9kRGV0YWlscyB9ID0gYXdhaXQgbmV3IFByb21p
c2UocmVzb2x2ZSA9PgorICAgICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInBheW1lbnRt
ZXRob2RjaGFuZ2UiLCByZXNvbHZlKQorICAgICAgKTsKKworICAgICAgYXNzZXJ0X3RydWUoImJp
bGxpbmdBZGRyZXNzIiBpbiBtZXRob2REZXRhaWxzKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoCisg
ICAgICAgIG1ldGhvZERldGFpbHMuYmlsbGluZ0FkZHJlc3MsCisgICAgICAgIG51bGwsCisgICAg
ICAgICJFeHBlY3RlZCBtZXRob2REZXRhaWxzLmJpbGxpbmdBZGRyZXNzIHRvIGJlIG51bGwiCisg
ICAgICApOworICAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOworICAgIH0pOworICB9CisKKyAg
ZnVuY3Rpb24gcmVxdWVzdEJpbGxpbmdBZGRyZXNzKCkgeworICAgIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9k
cywgZGV0YWlscywgeworICAgICAgICByZXF1ZXN0QmlsbGluZ0FkZHJlc3M6IHRydWUsCisgICAg
ICB9KTsKKyAgICAgIGNvbnN0IHNob3dQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisKKyAgICAg
IC8vIExldCdzIGNoZWNrIHRoZSBtZXRob2QgZGF0YSBmcm9tIGV2ZW50LgorICAgICAgY29uc3Qg
eyBtZXRob2REZXRhaWxzIH0gPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+CisgICAgICAg
IHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigicGF5bWVudG1ldGhvZGNoYW5nZSIsIHJlc29sdmUp
CisgICAgICApOworCisgICAgICBhc3NlcnRfdHJ1ZSgiYmlsbGluZ0FkZHJlc3MiIGluIG1ldGhv
ZERldGFpbHMpOworCisgICAgICBjb25zdCB7IGJpbGxpbmdBZGRyZXNzIH0gPSBtZXRob2REZXRh
aWxzOworICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgIGJpbGxpbmdBZGRyZXNzIGluc3RhbmNl
b2YgUGF5bWVudEFkZHJlc3MsCisgICAgICAgICJFeHBlY3RlZCBpbnN0YW5jZSBvZiBQYXltZW50
QWRkcmVzcyIKKyAgICAgICk7CisgICAgICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CisgICAgfSk7
CisgIH0KKzwvc2NyaXB0PgorCis8aDI+UmVxdWVzdCBiaWxsaW5nIGFkZHJlc3M8L2gyPgorPHA+
CisgIENsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNlcXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3
aXRob3V0IHJlZnJlc2hpbmcgdGhlCisgIHBhZ2UuIEVhY2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAg
dGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuCis8L3A+Cis8cD4KKyAgV2hlbiB0aGUgcGF5
bWVudCBzaGVldCBpcyBwcmVzZW50ZWQsIHNlbGVjdCBhIHBheW1lbnQgbWV0aG9kIChlLmcuLCBh
IGNyZWRpdAorICBjYXJkKS4KKzwvcD4KKzxvbD4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGlj
az0iZG9udFJlcXVlc3RCaWxsaW5nQWRkcmVzcygpIj4KKyAgICAgIFdoZW4gbm8gYmlsbGluZyBh
ZGRyZXNzIGlzIHJlcXVlc3RlZCwKKyAgICAgIGBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQubWV0
aG9kRGV0YWlscy5iaWxsaW5nQWRkcmVzc2AgaXMgbnVsbC4KKyAgICA8L2J1dHRvbj4KKyAgPC9s
aT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0icmVxdWVzdEJpbGxpbmdBZGRyZXNzKCki
PgorICAgICAgV2hlbiBiaWxsaW5nIGFkZHJlc3MgaXMKKyAgICAgIHJlcXVlc3RlZCxgUGF5bWVu
dE1ldGhvZENoYW5nZUV2ZW50Lm1ldGhvZERldGFpbHMuYmlsbGluZ0FkZHJlc3NgIGlzIGEKKyAg
ICAgIGBQYXltZW50QWRkcmVzc2AuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT48YnV0
dG9uIG9uY2xpY2s9ImRvbmUoKSI+RG9uZSE8L2J1dHRvbj48L2xpPgorPC9vbD4KKzxzbWFsbD4K
KyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UKKyAgPGEgaHJlZj0iaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPiBh
bmQKKyAgdGFnIG9uZSBvZiB0aGUKKyAgPGEKKyAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55
bWwiCisgICAgPnN1Z2dlc3RlZCByZXZpZXdlcnM8L2E+LgorPC9zbWFsbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L2JsYW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9ibGFuay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkZWFhNDViYjYyMDc4
ODI0MjcxMTcyNWNmZDgxODliNjgxODM1YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9ibGFuay5o
dG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorICAgIDx0aXRsZT5CbGFuayBQYWdlPC90aXRs
ZT4KKyAgICA8c2NyaXB0PgorICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgb25sb2FkIGV2ZW50IGZp
cmVzIHdoZW4gdGhpcyBwYWdlIGlzCisgICAgICAgIC8vIG9wZW5lZCBhcyBhIHBvcHVwLgorICAg
ICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVs
bC8xODE1NworICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1t
YW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlwcGluZy1vcHRpb24tbWFudWFsLmh0dHBz
Lmh0bWwKaW5kZXggYTMzMzY1YmFjNzNlZDUxYjY4NzMyMTVkMGY1NGQ3OWE3MzQyMjE2My4uNDM4
MDAxODA0YWNkYWNhMjE0MTBjZTBkMzY3YTgyMDhjYWM2MGFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hh
bmdlLXNoaXBwaW5nLW9wdGlvbi1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9jaGFuZ2Utc2hp
cHBpbmctb3B0aW9uLW1hbnVhbC5odHRwcy5odG1sCkBAIC05LDcgKzksMTcgQEAKIDxzY3JpcHQ+
CiBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7
CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAi
YmFzaWMtY2FyZCIgfSk7Ci1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxp
ZE1ldGhvZF0pOworY29uc3QgYXBwbGVQYXlNZXRob2QgPSB7CisgIHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjog
MywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAg
Y291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMz
RFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0sCit9OworY29uc3Qg
dmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFwcGxlUGF5TWV0aG9k
XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIs
IHZhbHVlOiAiNS4wMCIgfSk7CiBjb25zdCB2YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAg
IGxhYmVsOiAibGFiZWwiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1z
ZWxlY3QtbGFzdC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlwcGluZy1vcHRpb24t
c2VsZWN0LWxhc3QtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggZjA4NDkxMTUwYWM3ZWU2ZDY5NTIw
YTkzNmViMjg2OGQ2MDM5M2M1Ny4uNGFkMzFkNjUzMTczMzhmMDQ3NGMyNGU2ZTM1Njg4ZWI4ZjJi
NGNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1zZWxlY3QtbGFzdC1t
YW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9jaGFuZ2Utc2hpcHBpbmctb3B0aW9uLXNlbGVjdC1s
YXN0LW1hbnVhbC5odHRwcy5odG1sCkBAIC04LDcgKzgsMTYgQEAKIHNldHVwKHsgZXhwbGljaXRf
ZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsKIGNvbnN0IHZhbGlkTWV0aG9k
cyA9IE9iamVjdC5mcmVlemUoWwogICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9
LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0s
CisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5
IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVudGlm
aWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisg
ICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgICAgc3VwcG9y
dGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0sCisgIH0sCiBdKTsKIGNvbnN0IHZhbGlkQW1v
dW50ID0gT2JqZWN0LmZyZWV6ZSh7IGN1cnJlbmN5OiAiVVNEIiwgdmFsdWU6ICI1LjAwIiB9KTsK
IGNvbnN0IHZhbGlkVG90YWwgPSBPYmplY3QuZnJlZXplKHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NvbnN0
cnVjdG9yX2NvbnZlcnRfbWV0aG9kX2RhdGEuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2NvbnN0cnVjdG9yX2Nv
bnZlcnRfbWV0aG9kX2RhdGEuaHR0cHMuaHRtbAppbmRleCA1Njg2NmI0M2E0ODFlNzM4Yzg0NDUz
N2NiOWMzNTVlOTYzOGEyOWZhLi5mNGE5YTcyMWQwN2M5MWQzMWQ3YjVkMzY0NzFhMjM5ZTRlN2Fi
ZTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9jb25zdHJ1Y3Rvcl9jb252ZXJ0X21ldGhvZF9kYXRhLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvY29uc3RydWN0b3JfY29udmVydF9tZXRob2RfZGF0YS5odHRwcy5odG1s
CkBAIC0zMiw4ICszMiw4IEBACiAgICAgZm9yIChjb25zdCBzdXBwb3J0ZWRNZXRob2RzIG9mIFtd
LmNvbmNhdChrbm93blBNSXMpLmNvbmNhdCh1bmtub3duUE1JcykpIHsKICAgICAgIGNvbnN0IG1l
dGhvZCA9IHsgc3VwcG9ydGVkTWV0aG9kcyB9OwogICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQ
YXltZW50UmVxdWVzdChbbWV0aG9kXSwgZGV0YWlscyk7Ci0gICAgICBhc3NlcnRfdGhyb3dzKAot
ICAgICAgICBuZXcgVHlwZUVycm9yKCksCisgICAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAg
ICBUeXBlRXJyb3IsCiAgICAgICAgICgpID0+IHsKICAgICAgICAgICBjb25zdCBiYWRNZXRob2Qg
PSBPYmplY3QuYXNzaWduKAogICAgICAgICAgICAge30sCkBAIC01NSw4ICs1NSw4IEBACiAgICAg
ICAvLyBPbmx5IGNoZWNrIHRoZSBQTUlzIHRoYXQgYXJlIGFjdHVhbGx5IHN1cHBvcnRlZAogICAg
ICAgaWYgKCEoYXdhaXQgcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpKSkgY29udGludWU7CiAKLSAg
ICAgIGFzc2VydF90aHJvd3MoCi0gICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIGFzc2Vy
dF90aHJvd3NfanMoCisgICAgICAgIFR5cGVFcnJvciwKICAgICAgICAgKCkgPT4gewogICAgICAg
ICAgIGNvbnN0IGJhZE1ldGhvZCA9IE9iamVjdC5hc3NpZ24oCiAgICAgICAgICAgICB7fSwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L2R5bmFtaWNhbGx5LWNoYW5nZS1zaGlwcGluZy1vcHRpb25zLW1hbnVhbC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9keW5hbWljYWxseS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9u
cy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5MWM5ZmViYjg0M2MyNzQy
ZTg5NjhlMGZkOTM1ODNlYzVjZjczNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9keW5hbWljYWxs
eS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTUgQEAKK1BheW1lbnRSZXF1ZXN0IHNoaXBwaW5nT3B0aW9uIGF0dHJpYnV0ZQorCitD
bGljayBvbiBlYWNoIGJ1dHRvbiBpbiBzZXF1ZW5jZSBmcm9tIHRvcCB0byBib3R0b20gd2l0aG91
dCByZWZyZXNoaW5nIHRoZSBwYWdlLiBFYWNoIGJ1dHRvbiAoZXhjZXB0IHRoZSAnRG9uZScgYnV0
dG9uKSB3aWxsIGJyaW5nIHVwIHRoZSBQYXltZW50IFJlcXVlc3QgVUkgd2luZG93LgorCitXaGVu
IHRoZSBwYXltZW50IHNoZWV0IGlzIHByZXNlbnRlZCwgdmlldyBvcHRpb25zIGZvciBTaGlwcGlu
ZyBNZXRob2QuIFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZTogIkRlZmF1bHQgc2hpcHBpbmcgbWV0
aG9kIgorQ2hhbmdlIHlvdXIgU2hpcHBpbmcgQWRkcmVzcyAtIGVpdGhlciB1cGRhdGUgeW91ciBl
eGlzdGluZyBvbmUgYnkgY2hhbmdpbmcgc29tZXRoaW5nIChuYW1lLCBhZGRyZXNzLCBldGMpLCBv
ciBzZWxlY3QgYSBkaWZmZXJlbnQgU2hpcHBpbmcgQWRkcmVzcywgb3IgYWRkIGEgbmV3IFNoaXBw
aW5nIEFkZHJlc3MgYW5kIHNlbGVjdCBpdC4KK0dvIGJhY2sgdG8gU2hpcHBpbmcgTWV0aG9kLCBh
bmQgdGhlcmUgaXMgbm93IGFuIG9wdGlvbiBjYWxsZWQgIkR5bmFtaWNhbGx5IGFkZGVkIHNoaXBw
aW5nIG9wdGlvbiIuIFNlbGVjdCBpdAorQ2xpY2sgb24gdGhlICdEb25lJyBidXR0b24KK1doZW4g
dGhlIGFkZHJlc3MgaXMgY2hhbmdlZCwgc2hpcHBpbmcgbWV0aG9kcyBjYW4gYmUgdXBkYXRlZAor
RG9uZQorSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFn
IG9uZSBvZiB0aGUgc3VnZ2VzdGVkIHJldmlld2Vycy4KKworSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvZHluYW1pY2FsbHktY2hhbmdl
LXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9keW5hbWljYWxseS1jaGFu
Z2Utc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2I3MDUz
NTBkNGQ5ZjU1ODUzMzQ0NDY5NTIxOThkZmFjNDdkMDQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
ZHluYW1pY2FsbHktY2hhbmdlLXNoaXBwaW5nLW9wdGlvbnMtbWFudWFsLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSwxNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+
Cis8dGl0bGU+VGVzdCBmb3IgUGF5bWVudFJlcXVlc3Qgc2hpcHBpbmdPcHRpb24gZHluYW1pYyB1
cGRhdGluZzwvdGl0bGU+Cis8bGluaworICByZWw9ImhlbHAiCisgIGhyZWY9Imh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3NoaXBwaW5nb3B0aW9uLWF0dHJpYnV0ZSIKKy8+
Cis8bGluaworICByZWw9ImhlbHAiCisgIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXlt
ZW50LXJlcXVlc3QvI29uc2hpcHBpbmdvcHRpb25jaGFuZ2UtYXR0cmlidXRlIgorLz4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cisg
IHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsK
KyAgY29uc3QgdmFsaWRNZXRob2QgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczog
ImJhc2ljLWNhcmQiIH0pOworICBjb25zdCBhcHBsZVBheU1ldGhvZCA9IHsKKyAgICBzdXBwb3J0
ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgICBkYXRhOiB7Cisg
ICAgICB2ZXJzaW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29t
LmV4YW1wbGUiLAorICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgICBtZXJjaGFudENhcGFi
aWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlz
YSJdLAorICAgIH0sCisgIH07CisgIGNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUo
W3ZhbGlkTWV0aG9kLCBhcHBsZVBheU1ldGhvZF0pOworICBjb25zdCB2YWxpZEFtb3VudCA9IE9i
amVjdC5mcmVlemUoeyBjdXJyZW5jeTogIlVTRCIsIHZhbHVlOiAiNS4wMCIgfSk7CisgIGNvbnN0
IHZhbGlkVG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAgICBsYWJlbDogImxhYmVsIiwKKyAgICBh
bW91bnQ6IHZhbGlkQW1vdW50LAorICB9KTsKKyAgY29uc3QgdmFsaWREZXRhaWxzID0gT2JqZWN0
LmZyZWV6ZSh7IHRvdGFsOiB2YWxpZFRvdGFsIH0pOworCisgIGNvbnN0IGluaXRpYWxWYWxpZFNo
aXBwaW5nT3B0aW9uID0gT2JqZWN0LmZyZWV6ZSh7CisgICAgaWQ6ICJkZWZhdWx0LW1ldGhvZCIs
CisgICAgbGFiZWw6ICJEZWZhdWx0IHNoaXBwaW5nIG1ldGhvZCIsCisgICAgYW1vdW50OiB2YWxp
ZEFtb3VudCwKKyAgICBzZWxlY3RlZDogdHJ1ZSwKKyAgfSk7CisKKyAgY29uc3QgdmFsaWREeW5h
bWljU2hpcHBpbmdPcHRpb24gPSBPYmplY3QuZnJlZXplKHsKKyAgICBpZDogImR5bmFtaWNhbGx5
LWFkZGVkLWlkIiwKKyAgICBsYWJlbDogIkR5bmFtaWNhbGx5IGFkZGVkIHNoaXBwaW5nIG9wdGlv
biIsCisgICAgYW1vdW50OiB2YWxpZEFtb3VudCwKKyAgICBzZWxlY3RlZDogZmFsc2UsCisgIH0p
OworCisgIGNvbnN0IHJlcXVlc3RTaGlwcGluZyA9IE9iamVjdC5mcmVlemUoeworICAgIHJlcXVl
c3RTaGlwcGluZzogdHJ1ZSwKKyAgfSk7CisKKyAgZnVuY3Rpb24gdGVzdFNoaXBwaW5nT3B0aW9u
Q2hhbmdlZCgpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgICAgIGNvbnN0
IGRldGFpbHNXaXRoU2hpcHBpbmdPcHRpb25zID0geworICAgICAgICAuLi52YWxpZERldGFpbHMs
CisgICAgICAgIHNoaXBwaW5nT3B0aW9uczogW2luaXRpYWxWYWxpZFNoaXBwaW5nT3B0aW9uXSwK
KyAgICAgIH07CisgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAorICAg
ICAgICB2YWxpZE1ldGhvZHMsCisgICAgICAgIGRldGFpbHNXaXRoU2hpcHBpbmdPcHRpb25zLAor
ICAgICAgICByZXF1ZXN0U2hpcHBpbmcKKyAgICAgICk7CisgICAgICBjb25zdCBzaGlwcGluZ0Fk
ZHJlc3NDaGFuZ2VMaXN0ZW5lciA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAg
IHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAic2hpcHBpbmdhZGRyZXNzY2hh
bmdlIiwKKyAgICAgICAgICAoZXYpID0+IHsKKyAgICAgICAgICAgIC8vIHJlc29sdmUocmVxdWVz
dC5zaGlwcGluZ09wdGlvbik7CisgICAgICAgICAgICBldi51cGRhdGVXaXRoKHsKKyAgICAgICAg
ICAgICAgc2hpcHBpbmdPcHRpb25zOiBbCisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbGlkU2hp
cHBpbmdPcHRpb24sCisgICAgICAgICAgICAgICAgdmFsaWREeW5hbWljU2hpcHBpbmdPcHRpb24s
CisgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHsgb25jZTogdHJ1ZSB9CisgICAgICAgICk7Cisg
ICAgICB9KTsKKyAgICAgIGNvbnN0IGhhbmRsZXJQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsKKyAgICAgICAgcmVxdWVzdC5vbnNoaXBwaW5nb3B0aW9uY2hhbmdlID0gKCkgPT4g
eworICAgICAgICAgIHJlc29sdmUocmVxdWVzdC5zaGlwcGluZ09wdGlvbik7CisgICAgICAgIH07
CisgICAgICB9KTsKKyAgICAgIHJlcXVlc3Quc2hvdygpLmNhdGNoKChlcnIpID0+IGVycik7CisK
KyAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgIHNoaXBw
aW5nQWRkcmVzc0NoYW5nZUxpc3RlbmVyLAorICAgICAgICBoYW5kbGVyUHJvbWlzZSwKKyAgICAg
IF0pOworICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgIHJlc3VsdHNbMV0gPT09ICJkeW5hbWlj
YWxseS1hZGRlZC1pZCIsCisgICAgICAgICJFeHBlY3RlZCBkeW5hbWljYWxseS1hZGRlZC1pZCBh
cyB0aGUgc2hpcHBpbmdPcHRpb24iCisgICAgICApOworICAgICAgYXdhaXQgcmVxdWVzdC5hYm9y
dCgpOworICAgIH0pOworICB9Cis8L3NjcmlwdD4KKworPGgyPlBheW1lbnRSZXF1ZXN0IHNoaXBw
aW5nT3B0aW9uIGF0dHJpYnV0ZTwvaDI+Cis8cD4KKyAgQ2xpY2sgb24gZWFjaCBidXR0b24gaW4g
c2VxdWVuY2UgZnJvbSB0b3AgdG8gYm90dG9tIHdpdGhvdXQgcmVmcmVzaGluZyB0aGUKKyAgcGFn
ZS4gRWFjaCBidXR0b24gKGV4Y2VwdCB0aGUgJ0RvbmUnIGJ1dHRvbikgd2lsbCBicmluZyB1cCB0
aGUgUGF5bWVudCBSZXF1ZXN0CisgIFVJIHdpbmRvdy4KKzwvcD4KKzxvbD4KKyAgPGxpPgorICAg
IFdoZW4gdGhlIHBheW1lbnQgc2hlZXQgaXMgcHJlc2VudGVkLCB2aWV3IG9wdGlvbnMgZm9yIFNo
aXBwaW5nIE1ldGhvZC4gVGhlcmUKKyAgICBzaG91bGQgb25seSBiZSBvbmU6ICJEZWZhdWx0IHNo
aXBwaW5nIG1ldGhvZCIKKyAgPC9saT4KKyAgPGxpPgorICAgIENoYW5nZSB5b3VyIFNoaXBwaW5n
IEFkZHJlc3MgLSBlaXRoZXIgdXBkYXRlIHlvdXIgZXhpc3Rpbmcgb25lIGJ5IGNoYW5naW5nCisg
ICAgc29tZXRoaW5nIChuYW1lLCBhZGRyZXNzLCBldGMpLCBvciBzZWxlY3QgYSBkaWZmZXJlbnQg
U2hpcHBpbmcgQWRkcmVzcywgb3IKKyAgICBhZGQgYSBuZXcgU2hpcHBpbmcgQWRkcmVzcyBhbmQg
c2VsZWN0IGl0LgorICA8L2xpPgorICA8bGk+CisgICAgR28gYmFjayB0byBTaGlwcGluZyBNZXRo
b2QsIGFuZCB0aGVyZSBpcyBub3cgYW4gb3B0aW9uIGNhbGxlZCAiRHluYW1pY2FsbHkKKyAgICBh
ZGRlZCBzaGlwcGluZyBvcHRpb24iLiBTZWxlY3QgaXQKKyAgPC9saT4KKyAgPGxpPgorICAgIENs
aWNrIG9uIHRoZSAnRG9uZScgYnV0dG9uCisgIDwvbGk+Cis8L29sPgorPHVsPgorICA8bGk+Cisg
ICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0U2hpcHBpbmdPcHRpb25DaGFuZ2VkKCkiPgorICAgICAg
V2hlbiB0aGUgYWRkcmVzcyBpcyBjaGFuZ2VkLCBzaGlwcGluZyBtZXRob2RzIGNhbiBiZSB1cGRh
dGVkCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9
ImRvbmUoKSI+RG9uZTwvYnV0dG9uPgorICA8L2xpPgorPC91bD4KKzxzbWFsbD4KKyAgSWYgeW91
IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UKKyAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPiBhbmQKKyAgdGFn
IG9uZSBvZiB0aGUKKyAgPGEKKyAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwiCisgICAg
PnN1Z2dlc3RlZCByZXZpZXdlcnM8L2E+LgorPC9zbWFsbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2hpc3Rv
cmljYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L2hpc3RvcmljYWwuaHR0cHMuaHRtbAppbmRleCBjYmQyOWQ0
Y2ZmODY5ODM2NWMwNWFjZmU3NTUwNGRlNWVjN2UxYWVjLi42NjYzZTYzMWJmZDI4NTdkYzYzZmY5
ODU0ZTg2NTc4OTNjNzFhN2VkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9oaXN0b3JpY2FsLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvaGlzdG9yaWNhbC5odHRwcy5odG1sCkBAIC0zNCw3ICszNCw3IEBAIHRlc3QoKCkg
PT4gewogICBjb25zdCB1bmV4cGVjdGVkRXJyb3IgPSB7bmFtZTogJ3NlcXVlbmNlPERPTVN0cmlu
Zz4gY29udmVyc2lvbiBpcyBub3QgYWxsb3dlZCd9OwogICBtZXRob2RzLnRvU3RyaW5nID0gKCkg
PT4geyB0aHJvdyBleHBlY3RlZEVycm9yOyB9OwogICBPYmplY3QuZGVmaW5lUHJvcGVydHkobWV0
aG9kcywgJzAnLCB7IGdldDogKCkgPT4geyB0aHJvdyB1bmV4cGVjdGVkRXJyb3I7IH0gfSk7Ci0g
IGFzc2VydF90aHJvd3MoZXhwZWN0ZWRFcnJvciwgKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2V4
YWN0bHkoZXhwZWN0ZWRFcnJvciwgKCkgPT4gewogICAgIG5ldyBQYXltZW50UmVxdWVzdChbe3N1
cHBvcnRlZE1ldGhvZHM6IG1ldGhvZHN9XSwge3RvdGFsOiB7bGFiZWw6ICdiYXInLCBhbW91bnQ6
IHtjdXJyZW5jeTogJ0JBWicsIHZhbHVlOiAnMCd9fX0pOwogICB9KTsKIH0sICdzdXBwb3J0ZWRN
ZXRob2RzIG11c3Qgbm90IHN1cHBvcnQgc2VxdWVuY2U8RE9NU3RyaW5nPicpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3Qvb25tZXJjaGFudHZhbGlkYXRpb24tYXR0cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbm1l
cmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1dGUuaHR0cHMuaHRtbAppbmRleCBjMGVkMjMxNjdlZDkz
NzhlYzMyZTc2OWJkNGYzZTNhZmFlZjUwNDBjLi5kMzFhYzJkZDcyYWJjZjUxYTI4ZWNlYzg1MDQw
MGY1ZjBjNmI5YmI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbm1lcmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1
dGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbm1lcmNoYW50dmFsaWRhdGlvbi1hdHRyaWJ1dGUuaHR0
cHMuaHRtbApAQCAtNyw3ICs3LDE2IEBACiA8c2NyaXB0PgogInVzZSBzdHJpY3QiOwogY29uc3Qg
dGVzdE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAibm90LWEtcmVh
bC1tZXRob2QiIH0pOwotY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIgfSk7Citjb25zdCBhcHBsZVBh
eSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5j
b20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJ
ZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMi
LAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9y
dGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9LAorfSk7CiBjb25zdCBkZWZhdWx0TWV0aG9kcyA9
IE9iamVjdC5mcmVlemUoW3Rlc3RNZXRob2QsIGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0
YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3RhbDogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXlt
ZW50bWVudGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXlt
ZW50bWVudGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhMmY4NzRlOTI3NjhmMTgyZDg4YmQ3ZjgyNTc2NjZlZjdkOTU2
YzlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29u
cGF5bWVudG1lbnRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1QQVNTIE11c3QgaGF2ZSBhIG9ucGF5bWVudG1ldGhv
ZGNoYW5nZSBJREwgYXR0cmlidXRlIAotUEFTUyBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmli
dXRlIGlzIGEgZ2VuZXJpYyBoYW5kbGVyIGZvciAicGF5bWVudG1ldGhvZGNoYW5nZSIgCi1QQVNT
IG9ucGF5bWVudG1ldGhvZGNoYW5nZSBhdHRyaWJ1dGUgaXMgYSBoYW5kbGVyIGZvciBQYXltZW50
TWV0aG9kQ2hhbmdlRXZlbnQgCi1QQVNTIG9ucGF5bWVudG1ldGhvZGNoYW5nZSBhdHRyaWJ1dGUg
YW5kIGxpc3RlbmVycyBib3RoIHdvcmsgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1lbnRo
b2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZW50aG9kY2hhbmdl
LWF0dHJpYnV0ZS5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDg0
ZWI4NjhmOTgzZTNjZGIwZWZjZWFiNWZlMmIzYzYwODRiNGFiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1lbnRob2RjaGFuZ2UtYXR0
cmlidXRlLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGZvciBvbnBheW1l
bnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI29ucGF5bWVudG1ldGhv
ZGNoYW5nZS1hdHRyaWJ1dGUiPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWNvbnN0IHRlc3RNZXRob2Qg
PSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogIm5vdC1hLXJlYWwtbWV0aG9kIiB9
KTsKLWNvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJo
dHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0pOwotY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFt0ZXN0TWV0aG9kLCBhcHBsZVBheV0pOwotY29uc3QgZGVmYXVsdERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKLSAgdG90YWw6IHsKLSAgICBsYWJlbDogIlRvdGFsIiwKLSAg
ICBhbW91bnQ6IHsKLSAgICAgIGN1cnJlbmN5OiAiVVNEIiwKLSAgICAgIHZhbHVlOiAiMS4wMCIs
Ci0gICAgfSwKLSAgfSwKLX0pOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICBhc3Nl
cnRfaWRsX2F0dHJpYnV0ZShyZXF1ZXN0LCAib25wYXltZW50bWV0aG9kY2hhbmdlIik7Ci19LCAi
TXVzdCBoYXZlIGEgb25wYXltZW50bWV0aG9kY2hhbmdlIElETCBhdHRyaWJ1dGUiKTsKLQotdGVz
dCgoKSA9PiB7Ci0gIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgY29uc3QgZXYgPSBuZXcgRXZlbnQoInBheW1lbnRt
ZXRob2RjaGFuZ2UiKTsKLSAgbGV0IGRpZEhhbmRsZSA9IGZhbHNlOwotICByZXF1ZXN0Lm9ucGF5
bWVudG1ldGhvZGNoYW5nZSA9IGV2dCA9PiB7Ci0gICAgYXNzZXJ0X2VxdWFscyhldiwgZXZ0LCAi
bXVzdCBiZSBzYW1lIGV2ZW50Iik7Ci0gICAgZGlkSGFuZGxlID0gdHJ1ZTsKLSAgfTsKLSAgcmVx
dWVzdC5kaXNwYXRjaEV2ZW50KGV2KTsKLSAgYXNzZXJ0X3RydWUoZGlkSGFuZGxlLCAiZXZlbnQg
ZGlkIG5vdCBmaXJlIik7Ci19LCBgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBpcyBh
IGdlbmVyaWMgaGFuZGxlciBmb3IgInBheW1lbnRtZXRob2RjaGFuZ2UiYCk7Ci0KLXRlc3QoKCkg
PT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IGV2ID0gbmV3IFBheW1lbnRNZXRob2RDaGFuZ2VF
dmVudCgicGF5bWVudG1ldGhvZGNoYW5nZSIpOwotICBsZXQgZGlkSGFuZGxlID0gZmFsc2U7Ci0g
IHJlcXVlc3Qub25wYXltZW50bWV0aG9kY2hhbmdlID0gZXZ0ID0+IHsKLSAgICBhc3NlcnRfZXF1
YWxzKGV2LCBldnQsICJtdXN0IGJlIHNhbWUgZXZlbnQiKTsKLSAgICBkaWRIYW5kbGUgPSB0cnVl
OwotICB9OwotICByZXF1ZXN0LmRpc3BhdGNoRXZlbnQoZXYpOwotICBhc3NlcnRfdHJ1ZShkaWRI
YW5kbGUsICJldmVudCBkaWQgbm90IGZpcmUiKTsKLX0sIGBvbnBheW1lbnRtZXRob2RjaGFuZ2Ug
YXR0cmlidXRlIGlzIGEgaGFuZGxlciBmb3IgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50YCk7Ci0K
LXRlc3QoKCkgPT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IGV2ID0gbmV3IFBheW1lbnRNZXRo
b2RDaGFuZ2VFdmVudCgicGF5bWVudG1ldGhvZGNoYW5nZSIsIHsKLSAgICBtZXRob2ROYW1lOiAi
dGVzdCIKLSAgfSk7Ci0gIGxldCBkaWRIYW5kbGUgPSBmYWxzZTsKLSAgbGV0IGRpZExpc3RlbiA9
IGZhbHNlOwotICByZXF1ZXN0Lm9ucGF5bWVudG1ldGhvZGNoYW5nZSA9IGV2dCA9PiB7Ci0gICAg
YXNzZXJ0X2VxdWFscyhldiwgZXZ0LCAibXVzdCBiZSBzYW1lIGV2ZW50Iik7Ci0gICAgZGlkSGFu
ZGxlID0gdHJ1ZTsKLSAgfTsKLSAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJwYXltZW50bWV0
aG9kY2hhbmdlIiwgZXZ0ID0+IHsKLSAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJtdXN0IGJl
IHNhbWUgZXZlbnQiKTsKLSAgICBkaWRMaXN0ZW4gPSB0cnVlOwotICB9KTsKLSAgcmVxdWVzdC5k
aXNwYXRjaEV2ZW50KGV2KTsKLSAgYXNzZXJ0X3RydWUoZGlkSGFuZGxlLCAib25wYXltZW50bWV0
aG9kY2hhbmdlIGRpZCBub3QgcmVjZWl2ZSB0aGUgZXZlbnQiKTsKLSAgYXNzZXJ0X3RydWUoZGlk
TGlzdGVuLCAiYWRkRXZlbnRMaXN0ZW5lciBkaWQgbm90IHJlY2VpdmUgdGhlIGV2ZW50Iik7Ci19
LCBgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBhbmQgbGlzdGVuZXJzIGJvdGggd29y
a2ApOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZXRob2RjaGFuZ2UtYXR0
cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRy
aWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyZjg3NGU5Mjc2OGYxODJkODhi
ZDdmODI1NzY2NmVmN2Q5NTZjOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZXRo
b2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKwor
UEFTUyBNdXN0IGhhdmUgYSBvbnBheW1lbnRtZXRob2RjaGFuZ2UgSURMIGF0dHJpYnV0ZSAKK1BB
U1Mgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBpcyBhIGdlbmVyaWMgaGFuZGxlciBm
b3IgInBheW1lbnRtZXRob2RjaGFuZ2UiIAorUEFTUyBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0
cmlidXRlIGlzIGEgaGFuZGxlciBmb3IgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50IAorUEFTUyBv
bnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGFuZCBsaXN0ZW5lcnMgYm90aCB3b3JrIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9vbnBheW1lbnRtZXRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9vbnBheW1lbnRtZXRob2RjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjY0MWJlYzRhYTkxZDhiZTRmMTgwMTg2OWViNjk5Y2E0YmFkMDNhMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDc5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5UZXN0IGZvciBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlPC90aXRsZT4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5
bWVudC1hcGkvI29ucGF5bWVudG1ldGhvZGNoYW5nZS1hdHRyaWJ1dGUiPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3Ry
aWN0IjsKK2NvbnN0IHRlc3RNZXRob2QgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9k
czogIm5vdC1hLXJlYWwtbWV0aG9kIiB9KTsKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6
ZSh7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAor
ICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJj
aGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRD
YXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2
aXNhIl0sCisgIH0KK30pOworY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt0
ZXN0TWV0aG9kLCBhcHBsZVBheV0pOworY29uc3QgZGVmYXVsdERldGFpbHMgPSBPYmplY3QuZnJl
ZXplKHsKKyAgdG90YWw6IHsKKyAgICBsYWJlbDogIlRvdGFsIiwKKyAgICBhbW91bnQ6IHsKKyAg
ICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgIHZhbHVlOiAiMS4wMCIsCisgICAgfSwKKyAgfSwK
K30pOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBhc3NlcnRfaWRsX2F0dHJpYnV0
ZShyZXF1ZXN0LCAib25wYXltZW50bWV0aG9kY2hhbmdlIik7Cit9LCAiTXVzdCBoYXZlIGEgb25w
YXltZW50bWV0aG9kY2hhbmdlIElETCBhdHRyaWJ1dGUiKTsKKwordGVzdCgoKSA9PiB7CisgIGNv
bnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHRE
ZXRhaWxzKTsKKyAgY29uc3QgZXYgPSBuZXcgRXZlbnQoInBheW1lbnRtZXRob2RjaGFuZ2UiKTsK
KyAgbGV0IGRpZEhhbmRsZSA9IGZhbHNlOworICByZXF1ZXN0Lm9ucGF5bWVudG1ldGhvZGNoYW5n
ZSA9IGV2dCA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyhldiwgZXZ0LCAibXVzdCBiZSBzYW1lIGV2
ZW50Iik7CisgICAgZGlkSGFuZGxlID0gdHJ1ZTsKKyAgfTsKKyAgcmVxdWVzdC5kaXNwYXRjaEV2
ZW50KGV2KTsKKyAgYXNzZXJ0X3RydWUoZGlkSGFuZGxlLCAiZXZlbnQgZGlkIG5vdCBmaXJlIik7
Cit9LCBgb25wYXltZW50bWV0aG9kY2hhbmdlIGF0dHJpYnV0ZSBpcyBhIGdlbmVyaWMgaGFuZGxl
ciBmb3IgInBheW1lbnRtZXRob2RjaGFuZ2UiYCk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBy
ZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWls
cyk7CisgIGNvbnN0IGV2ID0gbmV3IFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudCgicGF5bWVudG1l
dGhvZGNoYW5nZSIpOworICBsZXQgZGlkSGFuZGxlID0gZmFsc2U7CisgIHJlcXVlc3Qub25wYXlt
ZW50bWV0aG9kY2hhbmdlID0gZXZ0ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJt
dXN0IGJlIHNhbWUgZXZlbnQiKTsKKyAgICBkaWRIYW5kbGUgPSB0cnVlOworICB9OworICByZXF1
ZXN0LmRpc3BhdGNoRXZlbnQoZXYpOworICBhc3NlcnRfdHJ1ZShkaWRIYW5kbGUsICJldmVudCBk
aWQgbm90IGZpcmUiKTsKK30sIGBvbnBheW1lbnRtZXRob2RjaGFuZ2UgYXR0cmlidXRlIGlzIGEg
aGFuZGxlciBmb3IgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50YCk7CisKK3Rlc3QoKCkgPT4gewor
ICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZh
dWx0RGV0YWlscyk7CisgIGNvbnN0IGV2ID0gbmV3IFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudCgi
cGF5bWVudG1ldGhvZGNoYW5nZSIsIHsKKyAgICBtZXRob2ROYW1lOiAidGVzdCIKKyAgfSk7Cisg
IGxldCBkaWRIYW5kbGUgPSBmYWxzZTsKKyAgbGV0IGRpZExpc3RlbiA9IGZhbHNlOworICByZXF1
ZXN0Lm9ucGF5bWVudG1ldGhvZGNoYW5nZSA9IGV2dCA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyhl
diwgZXZ0LCAibXVzdCBiZSBzYW1lIGV2ZW50Iik7CisgICAgZGlkSGFuZGxlID0gdHJ1ZTsKKyAg
fTsKKyAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJwYXltZW50bWV0aG9kY2hhbmdlIiwgZXZ0
ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGV2LCBldnQsICJtdXN0IGJlIHNhbWUgZXZlbnQiKTsK
KyAgICBkaWRMaXN0ZW4gPSB0cnVlOworICB9KTsKKyAgcmVxdWVzdC5kaXNwYXRjaEV2ZW50KGV2
KTsKKyAgYXNzZXJ0X3RydWUoZGlkSGFuZGxlLCAib25wYXltZW50bWV0aG9kY2hhbmdlIGRpZCBu
b3QgcmVjZWl2ZSB0aGUgZXZlbnQiKTsKKyAgYXNzZXJ0X3RydWUoZGlkTGlzdGVuLCAiYWRkRXZl
bnRMaXN0ZW5lciBkaWQgbm90IHJlY2VpdmUgdGhlIGV2ZW50Iik7Cit9LCBgb25wYXltZW50bWV0
aG9kY2hhbmdlIGF0dHJpYnV0ZSBhbmQgbGlzdGVuZXJzIGJvdGggd29ya2ApOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjgx
NjRjMmVjZDAzYjM4YThlYjI5ZmUxNzAzYTRmZWNhMWI2Njc5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBA
CitUaGlzIHRlc3QgcmVxdWlyZXMgdXNlciBpbnRlcmFjdGlvbi4KK1BsZWFzZSBjbGljayBoZXJl
IHRvIGFsbG93IHRlc3Rpbmcgb25lIHBheW1lbnQgc2hlZXQgcGVyIHdpbmRvdy4KKworSGFybmVz
cyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgVGhlIHRvcCBicm93
c2luZyBjb250ZXh0IGNhbiBvbmx5IHNob3cgb25lIHBheW1lbnQgc2hlZXQgYXQgYSB0aW1lLiBU
ZXN0IHRpbWVkIG91dAorTk9UUlVOIElmIGFuIGlmcmFtZSBzaG93cyBhIHBheW1lbnQgcmVxdWVz
dCwgdGhlIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0IGNhbid0IGFsc28gc2hvdyBvbmUuIAor
Tk9UUlVOIEFuIGlmcmFtZSBjYW5ub3Qgc2hvdyBhIHBheW1lbnQgcmVxdWVzdCBpZiB0aGUgdG9w
LWxldmVsIHdpbmRvdyBpcyBhbHJlYWR5IHNob3dpbmcgb25lLiAKK05PVFJVTiBVc2luZyBhIHBv
cHVwIHdpbmRvdyBwcmV2ZW50cyB0aGUgdG9wLWJyb3dzaW5nIGNvbnRleHQgZnJvbSBzaG93aW5n
IGEgcGF5bWVudCByZXF1ZXN0IAorTk9UUlVOIEdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2lu
ZyBjb250ZXh0cywgYW5kIHdpbmRvdyBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBi
cm93c2luZyBjb250ZXh0cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4gCitOT1RSVU4gR2l2ZW4gbXVs
dGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgcG9wdXAgY2FsbHMgc2hvdygpIGZp
cnN0LCBvdGhlciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2FuJ3Qgc2hvdyBhIHJlcXVlc3Qu
IAorTk9UUlVOIEdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250ZXh0cywgYW5kIGFu
IGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0
cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4gCitOT1RSVU4gTmF2aWdhdGluZyBhbiBpZnJhbWUgYXMg
YSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2lu
ZyBib29sZWFuJyB0byBmYWxzZS4gCitOT1RSVU4gTmF2aWdhdGluZyBhIHBvcHVwIGFzIGEgbmVz
dGVkIGJyb3dzaW5nIGNvbnRleHQgc2V0cyAncGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmcgYm9v
bGVhbicgdG8gZmFsc2UuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBl
YTAyODA4ZWUyYTEyMDEzZTQxZTgxOWRhMzIzZmVkZjhkODUzZmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbApAQCAtMCwwICsxLDUwMiBAQAorPCFE
T0NUWVBFIGh0bWw+IDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorPHRpdGxlPlRlc3QgZm9yIFBh
eW1lbnRSZXF1ZXN0LnNob3cob3B0aW9uYWwgcHJvbWlzZSkgbWV0aG9kPC90aXRsZT4KKzxsaW5r
CisgIHJlbD0iaGVscCIKKyAgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5
bWVudC1hcGkvI2Rmbi1wYXltZW50LXJlcXVlc3QtaXMtc2hvd2luZyIKKy8+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIu
anMiPjwvc2NyaXB0PgorPGJvZHk+CisgIDxzY3JpcHQ+CisgICAgInVzZSBzdHJpY3QiOworICAg
IGNvbnN0IGFwcGxlUGF5TWV0aG9kID0geworICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBz
Oi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgICAgICBkYXRhOiB7CisgICAgICAgIHZlcnNpb246
IDMsCisgICAgICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwK
KyAgICAgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVz
OiBbInN1cHBvcnRzM0RTIl0sCisgICAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwK
KyAgICAgIH0sCisgICAgfTsKKyAgICBjb25zdCBtZXRob2RzID0gW3tzdXBwb3J0ZWRNZXRob2Rz
OiAiYmFzaWMtY2FyZCJ9LCBhcHBsZVBheU1ldGhvZF07CisgICAgY29uc3QgZGV0YWlscyA9IHsK
KyAgICAgIHRvdGFsOiB7CisgICAgICAgIGxhYmVsOiAiVG90YWwiLAorICAgICAgICBhbW91bnQ6
IHsKKyAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICAgICAgdmFsdWU6ICIxLjAwIiwK
KyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEF0dGFjaGVz
IGFuIGlmcmFtZSB0byB3aW5kb3cuZG9jdW1lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge1N0
cmluZ30gc3JjIE9wdGlvbmFsIHJlc291cmNlIFVSTCB0byBsb2FkLgorICAgICAqIEByZXR1cm5z
IHtQcm9taXNlfSBSZXNvbHZlcyB3aGVuIHRoZSBzcmMgbG9hZHMuCisgICAgICovCisgICAgYXN5
bmMgZnVuY3Rpb24gYXR0YWNoSWZyYW1lKHNyYyA9ICJibGFuay5odG1sIikgeworICAgICAgY29u
c3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICBpZnJh
bWUuYWxsb3dQYXltZW50UmVxdWVzdCA9IHRydWU7CisgICAgICBpZnJhbWUuc3JjID0gc3JjOwor
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgcmVzb2x2ZSwge29uY2U6IHRydWV9KTsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIGlm
cmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcG9wdXAgd2luZG93LiBU
aGUgY2FsbGVyIG11c3QgYmUgdHJpZ2dlcmVkIHdpdGggYSB1c2VyIGdlc3R1cmUuCisgICAgICoK
KyAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3JjIE9wdGlvbmFsIHJlc291cmNlIFVSTCB0byBsb2Fk
LgorICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBSZXNvbHZlcyB3aGVuIHRoZSBzcmMgbG9hZHMu
CisgICAgICovCisgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUo
c3JjID0gImJsYW5rLmh0bWwiKSB7CisgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IHdpbmRvdy5v
cGVuKHNyYywgIiIsICJ3aWR0aD00MDAsaGVpZ2h0PTQwMCIpOworICAgICAgYXdhaXQgbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIHBvcHVwV2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCByZXNvbHZlLCB7b25jZTogdHJ1ZX0pOworICAgICAgfSk7CisgICAgICBwb3B1cFdp
bmRvdy5mb2N1cygpOworICAgICAgcmV0dXJuIHBvcHVwV2luZG93OworICAgIH0KKworICAgIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1l
bnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3QgcmVxdWVzdDIgPSBuZXcg
UGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisKKyAgICAgIC8vIFNldHMgdGhlICJw
YXltZW50LXJlbGV2YW50IGJyb3dzaW5nIGNvbnRleHQncyBwYXltZW50IHJlcXVlc3QgaXMKKyAg
ICAgIC8vIHNob3dpbmcgYm9vbGVhbiIgdG8gdHJ1ZSBhbmQgdGhlbiB0cnkgdG8gc2hvdyBhIHNl
Y29uZCBwYXltZW50IHNoZWV0IGluCisgICAgICAvLyB0aGUgc2FtZSB3aW5kb3cuIFRoZSBzZWNv
bmQgc2hvdygpIHNob3VsZCByZWplY3QuCisgICAgICBjb25zdCBbc2hvd1Byb21pc2UxLCBzaG93
UHJvbWlzZTJdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0aW5nIG9u
ZSBwYXltZW50IHNoZWV0IHBlciB3aW5kb3ciLAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAg
cmV0dXJuIFtyZXF1ZXN0MS5zaG93KCksIHJlcXVlc3QyLnNob3coKV07CisgICAgICAgIH0sCisg
ICAgICApOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAg
ICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICBzaG93UHJvbWlzZTIsCisgICAgICAgICJBdHRl
bXB0aW5nIHRvIHNob3cgYSBzZWNvbmQgcGF5bWVudCByZXF1ZXN0IG11c3QgcmVqZWN0LiIsCisg
ICAgICApOworCisgICAgICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOworICAgICAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAg
ICAgICBzaG93UHJvbWlzZTEsCisgICAgICAgICJyZXF1ZXN0MSB3YXMgYWJvcnRlZCB2aWEgLmFi
b3J0KCkiLAorICAgICAgKTsKKworICAgICAgLy8gRmluYWxseSwgcmVxdWVzdDIgc2hvdWxkIGhh
dmUgYmVlbiAiY2xvc2VkIiwgc28gdHJ5aW5nIHRvIHNob3cKKyAgICAgIC8vIGl0IHdpbGwgYWdh
aW4gcmVzdWx0IGluIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvci4K
KyAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3czYy9wYXltZW50LXJlcXVlc3QvcHVs
bC84MjEKKyAgICAgIGNvbnN0IHJlamVjdGVkUHJvbWlzZSA9IHJlcXVlc3QyLnNob3coKTsKKyAg
ICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJJbnZh
bGlkU3RhdGVFcnJvciIsCisgICAgICAgIHJlamVjdGVkUHJvbWlzZSwKKyAgICAgICAgIkF0dGVt
cHRpbmcgdG8gc2hvdyBhIHNlY29uZCBwYXltZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIiwKKyAg
ICAgICk7CisgICAgICAvLyBGaW5hbGx5LCB3ZSBjb25maXJtIHRoYXQgcmVxdWVzdDIncyByZXR1
cm5lZCBwcm9taXNlcyBhcmUgdW5pcXVlLgorICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoCisgICAg
ICAgIHNob3dQcm9taXNlMiwKKyAgICAgICAgcmVqZWN0ZWRQcm9taXNlLAorICAgICAgICAiUmV0
dXJuZWQgUHJvbWlzZXMgYmUgdW5pcXVlIiwKKyAgICAgICk7CisgICAgfSwgIlRoZSB0b3AgYnJv
d3NpbmcgY29udGV4dCBjYW4gb25seSBzaG93IG9uZSBwYXltZW50IHNoZWV0IGF0IGEgdGltZS4i
KTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IGlmcmFtZSA9
IGF3YWl0IGF0dGFjaElmcmFtZSgpOworICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1l
LmNvbnRlbnRXaW5kb3c7CisKKyAgICAgIC8vIFBheW1lbnQgcmVxdWVzdHMKKyAgICAgIGNvbnN0
IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMs
IGRldGFpbHMpOworICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisKKyAgICAgIC8vIExldCdzIGdldCBzb21lIGJs
ZXNzZWQgc2hvd1Byb21pc2VzCisgICAgICBjb25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQgdGVz
dF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0aW5nIHRvcCB3aW5kb3cgc2hvdygpIGJsb2Nr
ZWQgYnkgcGF5bWVudCBzaGVldCBpbiBpZnJhbWUiLAorICAgICAgICAoKSA9PiB7CisgICAgICAg
ICAgLy8gaWZyYW1lIHNldHMgImlzIHNob3dpbmcgYm9vbGVhbiIsIGlnbm9yZSB0aGUgcmV0dXJu
ZWQgcHJvbWlzZS4KKyAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKTsKKyAgICAgICAgICAv
LyBUaGUgdG9wIGxldmVsIHdpbmRvdyBub3cgdHJpZXMgdG8gc2hvdygpIHRoZSBwYXltZW50IHJl
cXVlc3QuCisgICAgICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKV07CisgICAgICAg
IH0sCisgICAgICApOworCisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAg
ICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHNob3dQcm9taXNlLAorICAgICAg
ICAiaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4iLAorICAgICAg
KTsKKworICAgICAgLy8gQ2xlYW51cAorICAgICAgYXdhaXQgaWZyYW1lUmVxdWVzdC5hYm9ydCgp
OworICAgICAgaWZyYW1lLnJlbW92ZSgpOworICAgIH0sICJJZiBhbiBpZnJhbWUgc2hvd3MgYSBw
YXltZW50IHJlcXVlc3QsIHRoZSB0b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dCBjYW4ndCBhbHNv
IHNob3cgb25lLiIpOworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29u
c3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7CisgICAgICBjb25zdCBpZnJhbWVXaW5k
b3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKworICAgICAgLy8gUGF5bWVudCByZXF1ZXN0cwor
ICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7CisgICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdp
bmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKworICAgICAgLy8gV2UgZmly
c3Qgc2hvdyBhIHBheW1lbnQgcmVxdWVzdCB2aWEgdGhlIHRoZSB0b3AgbGV2ZWwgYnJvd3Npbmcg
Y29udGV4dCwKKyAgICAgIC8vIHdpbmRvd1JlcXVlc3Quc2hvdygpIHNldHMgImlzIHNob3dpbmcg
Ym9vbGVhbiIgdG8gdHJ1ZS4gVGhlbiB3ZSB0cnkgdG8KKyAgICAgIC8vIHNob3cgYSBwYXltZW50
IHJlcXVlc3QgaW4gdGhlIGlmcmFtZSwgd2hpY2ggc2hvdWxkIHJlamVjdC4KKyAgICAgIGNvbnN0
IFt3aW5kb3dTaG93UHJvbWlzZSwgaWZyYW1lU2hvd1Byb21pc2VdID0gYXdhaXQgdGVzdF9kcml2
ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0aW5nIGlmcmFtZSBzaG93KCkgYmxvY2tlZCBieSBwYXlt
ZW50IHNoZWV0IGluIHRvcCB3aW5kb3ciLAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0
dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKSwgaWZyYW1lUmVxdWVzdC5zaG93KCldOworICAgICAg
ICB9LAorICAgICAgKTsKKworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAg
ICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwK
KyAgICAgICAgIlRoZSB0b3Agd2luZG93IGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVx
dWVzdC4iLAorICAgICAgKTsKKworICAgICAgLy8gQ2xlYW51cAorICAgICAgYXdhaXQgd2luZG93
UmVxdWVzdC5hYm9ydCgpOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAg
ICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwK
KyAgICAgICAgIlRoZSB3aW5kb3cgcGF5bWVudCByZXF1ZXN0IHNob3VsZCBiZSBhYm9ydGVkIGJ5
IHRlc3QuIiwKKyAgICAgICAgKTsKKyAgICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAgICB9LCAiQW4g
aWZyYW1lIGNhbm5vdCBzaG93IGEgcGF5bWVudCByZXF1ZXN0IGlmIHRoZSB0b3AtbGV2ZWwgd2lu
ZG93IGlzIGFscmVhZHkgc2hvd2luZyBvbmUuIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgICAgICAvLyBDcmVhdGUgYSBQYXltZW50UmV1cWVzdCBpbiB0b3AtbGV2ZWwgd2lu
ZG93LgorICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7CisKKyAgICAgIC8vIFVzZSBhIHNpbmdsZSB1c2VyIGdlc3R1
cmUgdG8gb3BlbiBhIHBvcHVwIHdpbmRvdyB3aXRoIGEgUGF5bWVudFJlcXVlc3QuCisgICAgICAv
LyBUaGVuIHRyaWdnZXIgc2hvdygpIGZpcnN0IG9uIHxwb3B1cFJlcXVlc3R8IHRoZW4gb24gfHdp
bmRvd1JlcXVlc3R8LgorICAgICAgLy8gVGhlIGxhdHRlciBzaG91bGQgcmVqZWN0LgorICAgICAg
Y29uc3QgWworICAgICAgICBwb3B1cFdpbmRvdywKKyAgICAgICAgcG9wdXBSZXF1ZXN0LAorICAg
ICAgICBwb3B1cFNob3dQcm9taXNlLAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAg
IF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAgICAgInRlc3RpbmcgdG9wLWxldmVs
IHNob3coKSBibG9ja2VkIGJ5IHBheW1lbnQgc2hlZXQgaW4gcG9wdXAiLAorICAgICAgICBhc3lu
YyAoKSA9PiB7CisgICAgICAgICAgY29uc3QgcG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJ
bnNpZGVVc2VyR2VzdHVyZSgpOworICAgICAgICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5ldyBw
b3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgICAgICBj
b25zdCBwb3B1cFNob3dQcm9taXNlID0gcG9wdXBSZXF1ZXN0LnNob3coKTsKKyAgICAgICAgICBj
b25zdCB3aW5kb3dTaG93UHJvbWlzZSA9IHdpbmRvd1JlcXVlc3Quc2hvdygpOworICAgICAgICAg
IHJldHVybiBbCisgICAgICAgICAgICBwb3B1cFdpbmRvdywKKyAgICAgICAgICAgIHBvcHVwUmVx
dWVzdCwKKyAgICAgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisgICAgICAgICAgICB3aW5kb3dT
aG93UHJvbWlzZSwKKyAgICAgICAgICBdOworICAgICAgICB9LAorICAgICAgKTsKKworICAgICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJy
b3IiLAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgICAgIkV4cGVjdGVkIHdpbmRv
dydzIHNob3dQcm9taXNlIHRvIHJlamVjdCwgcmVxdWVzdCBpcyBhbHJlYWR5IHNob3dpbmciLAor
ICAgICAgKTsKKworICAgICAgYXdhaXQgcG9wdXBSZXF1ZXN0LmFib3J0KCk7CisgICAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIs
CisgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQ
cm9taXNlIHRvIGJlIGFib3J0ZWQgYnkgdGVzdC4iLAorICAgICAgKTsKKyAgICAgIHBvcHVwV2lu
ZG93LmNsb3NlKCk7CisgICAgfSwgIlVzaW5nIGEgcG9wdXAgd2luZG93IHByZXZlbnRzIHRoZSB0
b3AtYnJvd3NpbmcgY29udGV4dCBmcm9tIHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QiKTsKKwor
ICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0
IGF0dGFjaElmcmFtZSgpOworICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRl
bnRXaW5kb3c7CisKKyAgICAgIC8vIENyZWF0ZSByZXF1ZXN0cworICAgICAgY29uc3Qgd2luZG93
UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Cisg
ICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZXRhaWxzKTsKKworICAgICAgLy8gT3BlbiBhIHBvcHVwIHdpbmRvdworICAg
ICAgY29uc3QgW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3RdID0KKyAgICAgIGF3YWl0IHRlc3Rf
ZHJpdmVyLmJsZXNzKAorICAgICAgICAib3BlbiBwb3B1cCB0byB0ZXN0IG11bHRpcGxlIGNvbnRl
eHQgYW5kIHdpbmRvdyBjYWxscyBzaG93KCkgZmlyc3QiLAorICAgICAgICBhc3luYyAoKSA9PiB7
CisgICAgICAgICAgY29uc3QgcG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJbnNpZGVVc2Vy
R2VzdHVyZSgpOworICAgICAgICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRv
dy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgICAgICByZXR1cm4gW3Bv
cHVwV2luZG93LCBwb3B1cFJlcXVlc3RdOworICAgICAgICB9LAorICAgICAgKTsKKworICAgICAg
Ly8gR2V0IHRoZSBzaG93UHJvbWlzZSBmb3IgZWFjaCBicm93c2luZyBjb250ZXh0LiBEb2luZyB0
aGlzIGluIGEgc2VwYXJhdGUKKyAgICAgIC8vIHRlc3RfZHJpdmVyLmJsZXNzKCkgaXMgaW1wb3J0
YW50IGJlY2F1c2UgdGhlIHVzZXIgZ2VzdHVyZSBicmluZ3MKKyAgICAgIC8vIHx3aW5kb3d8IHRv
IHRoZSBmb3JlZ3JvdW5kLCBzbyB0aGF0IHRoZSBwYXltZW50IHNoZWV0IGNhbiBzaG93LgorICAg
ICAgY29uc3QgWworICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgICAgcG9wdXBTaG93
UHJvbWlzZSwKKyAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCisgICAgICBdID0gYXdhaXQgdGVz
dF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0IG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBj
b250ZXh0IiwKKyAgICAgICAgKCkgPT4geworICAgICAgICAgIHJldHVybiBbCisgICAgICAgICAg
ICB3aW5kb3dSZXF1ZXN0LnNob3coKSwKKyAgICAgICAgICAgIHBvcHVwUmVxdWVzdC5zaG93KCks
CisgICAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKSwKKyAgICAgICAgICBdOworICAgICAg
ICB9LAorICAgICAgKTsKKyAgICAgIC8vIHBvcHVwUmVxdWVzdCBhbmQgaWZyYW1lUmVxdWVzdCB3
aWxsIGJvdGggcmVqZWN0CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAg
ICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisg
ICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQcm9taXNlIHRvIHJlamVjdCwgcmVxdWVzdCBpcyBh
bHJlYWR5IHNob3dpbmcuIiwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgaWZyYW1l
U2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byByZWpl
Y3QsIHJlcXVlc3QgaXMgYWxyZWFkeSBzaG93aW5nLiIsCisgICAgICApOworCisgICAgICBhd2Fp
dCB3aW5kb3dSZXF1ZXN0LmFib3J0KCk7CisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KAorICAgICAgICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHdpbmRvd1Nob3dQ
cm9taXNlLAorICAgICAgICAiRXhwZWN0IHdpbmRvdyBwcm9taXNlIHRvIGJlIGFib3J0ZWQgYnkg
dGVzdC4iCisgICAgICApOworICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsKKyAgICAgIGlmcmFt
ZS5yZW1vdmUoKTsKKyAgICB9LCAiR2l2ZW4gbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRl
eHRzLCBhbmQgd2luZG93IGNhbGxzIHNob3coKSBmaXJzdCwgb3RoZXIgbmVzdGVkIGJyb3dzaW5n
IGNvbnRleHRzIGNhbid0IHNob3cgYSByZXF1ZXN0LiIpOworCisgICAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICAgICAgY29uc3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7Cisg
ICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKworICAgICAg
Ly8gQ3JlYXRlIHJlcXVlc3RzCisgICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRv
dy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGNvbnN0IGlmcmFtZVJl
cXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMp
OworCisgICAgICAvLyBPcGVuIGEgcG9wdXAgd2luZG93CisgICAgICBjb25zdCBbCisgICAgICAg
IHBvcHVwV2luZG93LAorICAgICAgICBwb3B1cFJlcXVlc3QsCisgICAgICAgIHBvcHVwU2hvd1By
b21pc2UsCisgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAorICAgICAgICBpZnJhbWVTaG93UHJv
bWlzZQorICAgICAgXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICAgICAidGVzdCBt
dWx0aXBsZSBicm93c2luZyBjb250ZXh0IGFuZCBpZnJhbWUgY2FsbHMgc2hvdygpIGZpcnN0IiwK
KyAgICAgICAgYXN5bmMgKCkgPT4geworICAgICAgICAgIGNvbnN0IHBvcHVwV2luZG93ID0gYXdh
aXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKKyAgICAgICAgICBjb25zdCBwb3B1cFJl
cXVlc3QgPSBuZXcgcG9wdXBXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7
CisgICAgICAgICAgY29uc3QgcG9wdXBTaG93UHJvbWlzZSA9IHBvcHVwUmVxdWVzdC5zaG93KCk7
CisgICAgICAgICAgY29uc3Qgd2luZG93U2hvd1Byb21pc2UgPSB3aW5kb3dSZXF1ZXN0LnNob3co
KTsKKyAgICAgICAgICBjb25zdCBpZnJhbWVTaG93UHJvbWlzZSA9IGlmcmFtZVJlcXVlc3Quc2hv
dygpOworICAgICAgICAgIHJldHVybiBbcG9wdXBXaW5kb3csCisgICAgICAgICAgICAgICAgICBw
b3B1cFJlcXVlc3QsCisgICAgICAgICAgICAgICAgICBwb3B1cFNob3dQcm9taXNlLAorICAgICAg
ICAgICAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCisgICAgICAgICAgICAgICAgICBpZnJhbWVT
aG93UHJvbWlzZV07CisgICAgICB9KTsKKworICAgICAgLy8gd2luZG93U2hvd1Byb21pc2UgYW5k
IGlmcmFtZVJlcXVlc3Qgd2lsbCBib3RoIHJlamVjdAorICAgICAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFib3J0RXJyb3IiLAorICAgICAgICB3aW5k
b3dTaG93UHJvbWlzZSwKKyAgICAgICAgIkV4cGVjdGVkIHdpbmRvd1Nob3dQcm9taXNlIHRvIHJl
amVjdCwgdGhlIHBvcHVwIGlzIHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKKyAgICAgICk7
CisKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAg
ICJBYm9ydEVycm9yIiwKKyAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCisgICAgICAgICJFeHBl
Y3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byByZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEg
cGF5bWVudCByZXF1ZXN0LiIsCisgICAgICApOworCisgICAgICBhd2FpdCBwb3B1cFJlcXVlc3Qu
YWJvcnQoKTsKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisg
ICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKKyAgICAgICAg
IkV4cGVjdGVkIHBvcHVwU2hvd1Byb21pc2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIsCisgICAg
ICApOworICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsKKyAgICAgIGlmcmFtZS5yZW1vdmUoKTsK
KyAgICB9LCAiR2l2ZW4gbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgcG9w
dXAgY2FsbHMgc2hvdygpIGZpcnN0LCBvdGhlciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2Fu
J3Qgc2hvdyBhIHJlcXVlc3QuIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKKyAgICAgIGNvbnN0IGlm
cmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93OworCisgICAgICAvLyBDcmVhdGUgcmVx
dWVzdHMKKyAgICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1
ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBp
ZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisKKyAgICAgIGNv
bnN0IFtwb3B1cFdpbmRvdywgcG9wdXBSZXF1ZXN0XSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNz
KAorICAgICAgICAib3BlbiBwb3B1cCB0byB0ZXN0IG11bHRpcGxlIGNvbnRleHQgYW5kIGlmcmFt
ZSBjYWxscyBzaG93KCkgZmlyc3QiLAorICAgICAgICBhc3luYyAoKSA9PiB7CisgICAgICAgICAg
Y29uc3QgdyA9IGF3YWl0IGxvYWRQb3B1cEluc2lkZVVzZXJHZXN0dXJlKCk7CisgICAgICAgICAg
Y29uc3QgciA9IG5ldyB3LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAg
ICAgIHJldHVybiBbdywgcl07CisgICAgICAgIH0sCisgICAgICApOworCisgICAgICAvLyBHZXQg
dGhlIHNob3dQcm9taXNlIGZvciBlYWNoIGJyb3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4g
YSBzZXBhcmF0ZQorICAgICAgLy8gdGVzdF9kcml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVj
YXVzZSB0aGUgdXNlciBnZXN0dXJlIGJyaW5ncworICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZv
cmVncm91bmQsIHNvIHRoYXQgdGhlIHBheW1lbnQgc2hlZXQgY2FuIHNob3cuCisgICAgICBjb25z
dCBbCisgICAgICAgIGlmcmFtZVNob3dQcm9taXNlLAorICAgICAgICBwb3B1cFNob3dQcm9taXNl
LAorICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKKyAgICAgIF0gPSBhd2FpdCB0ZXN0X2RyaXZl
ci5ibGVzcygKKyAgICAgICAgInRlc3QgbXVsdGlwbGUgYnJvd3NpbmcgY29udGV4dCBhbmQgaWZy
YW1lIGNhbGxzIHNob3coKSBmaXJzdCIsCisgICAgICAgIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICByZXR1cm4gWworICAgICAgICAgICAgaWZyYW1lUmVxdWVzdC5zaG93KCksCisgICAgICAgICAg
ICBwb3B1cFJlcXVlc3Quc2hvdygpLAorICAgICAgICAgICAgd2luZG93UmVxdWVzdC5zaG93KCks
CisgICAgICAgICAgXTsKKyAgICAgICAgfSwKKyAgICAgICk7CisKKyAgICAgIC8vIHdpbmRvd1No
b3dQcm9taXNlIGFuZCBpZnJhbWVSZXF1ZXN0IHdpbGwgYm90aCByZWplY3QKKyAgICAgIGF3YWl0
IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwK
KyAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCisgICAgICAgICJFeHBlY3RlZCB3aW5kb3dTaG93
UHJvbWlzZSB0byByZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0
LiIsCisgICAgICApOworCisgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAgICAg
ICB0LAorICAgICAgICAiQWJvcnRFcnJvciIsCisgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCisg
ICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlz
IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKKyAgICAgICk7CisKKyAgICAgIGF3YWl0IGlm
cmFtZVJlcXVlc3QuYWJvcnQoKTsKKyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisg
ICAgICAgIHQsCisgICAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgICAgaWZyYW1lU2hvd1Byb21p
c2UsCisgICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5
IHRlc3QuIgorICAgICAgKTsKKyAgICAgIHBvcHVwV2luZG93LmNsb3NlKCk7CisgICAgICBpZnJh
bWUucmVtb3ZlKCk7CisgICAgfSwgIkdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250
ZXh0cywgYW5kIGFuIGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93
c2luZyBjb250ZXh0cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4iKTsKKworICAgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgp
OworICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CisgICAg
ICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdCht
ZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGNvbnN0IGlmcmFtZVNob3dQcm9taXNlID0gdGVzdF9k
cml2ZXIuYmxlc3MoCisgICAgICAgICJ0ZXN0IG5hdmlnYXRpbmcgaWZyYW1lIGFmdGVyIHNob3co
KSIsCisgICAgICAgICgpID0+IGlmcmFtZVJlcXVlc3Quc2hvdygpLAorICAgICAgKTsKKworICAg
ICAgLy8gV2UgbmF2aWdhdGUgYXdheSwgY2F1c2luZyB0aGUgcGF5bWVudCBzaGVldCB0byBjbG9z
ZQorICAgICAgLy8gYW5kIHRoZSByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbiB0byBiZWNvbWUg
ZmFsc2UuCisgICAgICBpZnJhbWUuc3JjID0gImJsYW5rLmh0bWw/YWJjPTEyMyI7CisgICAgICBh
d2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IChpZnJhbWUub25sb2FkID0gcmVzb2x2ZSkpOwor
ICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgICAgdCwKKyAgICAgICAgIkFi
b3J0RXJyb3IiLAorICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKKyAgICAgICAgIk5hdmlnYXRp
bmcgaWZyYW1lIGF3YXkgbXVzdCBjYXVzZSB0aGUgaWZyYW1lU2hvd1Byb21pc2UgdG8gcmVqZWN0
LiIsCisgICAgICApOworICAgICAgaWZyYW1lLnJlbW92ZSgpOworCisgICAgICAvLyBOb3cgd2Ug
c2hvdWxkIGJlIG9rIHRvIHNwaW4gdXAgYSBuZXcgcGF5bWVudCByZXF1ZXN0CisgICAgICBjb25z
dCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsK
KyAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAg
ICAgICAgICAic3RhcnQgYSBuZXcgcGF5bWVudCByZXF1ZXN0IiwKKyAgICAgICAgICAoKSA9PiB7
CisgICAgICAgICAgICByZXR1cm4gW3JlcXVlc3Quc2hvdygpXTsKKyAgICAgICAgICB9KTsKKwor
ICAgICAgLy8gSWYgYSBwYXltZW50IHNoZWV0IGZhaWxzIHRvIHNob3csIGl0IHNob3VsZCByZWpl
Y3QgaW1tZWRpYXRlbHkuIElmIGl0CisgICAgICAvLyBoYXNuJ3QgcmVqZWN0ZWQgaW4gMSBzZWNv
bmQsIHRoZW4gdGhlIHRlc3QgaGFzIHBhc3NlZC4KKyAgICAgIHQuc3RlcF90aW1lb3V0KGFzeW5j
ICgpID0+IHsKKyAgICAgICAgLy8gV2UncmUgZG9uZS4gQ2xlYW4gdXAuCisgICAgICAgIGF3YWl0
IHJlcXVlc3QuYWJvcnQoKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgICB9KTsKKworICAgICAg
Ly8gSWYgdGhlIG5hdmlnYXRpb24gaW4gaWZyYW1lIGZhaWxlZCB0byBjbG9zZSB0aGUgb3JpZ2lu
YWwgcGF5bWVudCBzaGVldAorICAgICAgLy8gdGhlcmUsIHxzaG93UHJvbWlzZXwgc2hvdWxkIHJl
amVjdCBpbW1lZGlhdGVseSBhbmQgdGhpcyBpbmRpY2F0ZXMgYQorICAgICAgLy8gZmFpbHVyZSBv
ZiB0aGlzIHRlc3QuCisgICAgICBhd2FpdCBzaG93UHJvbWlzZS50aGVuKCgpID0+IHsKKyAgICAg
ICAgYXNzZXJ0X3RydWUoZmFsc2UsCisgICAgICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0IHNo
b3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZXNvbHZlZC4iKTsKKyAgICAgIH0pCisgICAgICAuY2F0
Y2goZSA9PiB7CisgICAgICAgIGFzc2VydF90cnVlKGZhbHNlLAorICAgICAgICAgICJTZWNvbmQg
cGF5bWVudCBzaGVldCBzaG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVqZWN0ZWQuIiArIGUubWVz
c2FnZSk7CisgICAgICB9KTsKKyAgICB9LCAiTmF2aWdhdGluZyBhbiBpZnJhbWUgYXMgYSBuZXN0
ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29s
ZWFuJyB0byBmYWxzZS4iKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAg
IGNvbnN0IFtwb3B1cFdpbmRvdywgcG9wdXBSZXF1ZXN0LCBwb3B1cFNob3dQcm9taXNlXSA9Cisg
ICAgICAgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICAgICAgICJ0cmlnZ2VyIHBheW1l
bnQgaW4gYSBwb3B1cCB3aW5kb3ciLAorICAgICAgICAgIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgIGNvbnN0IHBvcHVwV2luZG93ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUo
KTsKKyAgICAgICAgICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXlt
ZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgICAgICAgIHJldHVybiBbcG9wdXBX
aW5kb3csIHBvcHVwUmVxdWVzdCwgcG9wdXBSZXF1ZXN0LnNob3coKV07CisgICAgICAgICAgfSk7
CisKKyAgICAgIC8vIFdlIG5hdmlnYXRlIGF3YXksIGNhdXNpbmcgdGhlIHBheW1lbnQgc2hlZXQg
dG8gY2xvc2UKKyAgICAgIC8vIGFuZCB0aGUgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xlYW4gdG8g
YmVjb21lIGZhbHNlLgorICAgICAgcG9wdXBXaW5kb3cubG9jYXRpb24gPSAiYmxhbmsuaHRtbD9h
YmM9MTIzIjsKKyAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gKHBvcHVwV2luZG93
Lm9ubG9hZCA9IHJlc29sdmUpKTsKKworICAgICAgLy8gRG9uJ3Qgd2FpdCBmb3IgfHBvcHVwU2hv
d1Byb21pc2V8IHRvIHJlamVjdCBiZWNhdXNlIGl0IG1heSBuZXZlciBkbworICAgICAgLy8gKHNl
ZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3BheW1lbnQtcmVxdWVzdC9pc3N1ZXMvODcyKS4gSW5z
dGVhZCwgdHJ5CisgICAgICAvLyB0byBzcGluIHVwIGEgbmV3IHBheW1lbnQgcmVxdWVzdCBhbmQg
bWFrZSBzdXJlIGl0IHN1Y2NlZWRzLgorICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyB3aW5kb3cu
UGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CisgICAgICBjb25zdCBbc2hvd1Byb21p
c2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgICAgICJ0cmlnZ2VyIHBheW1lbnQg
aW4gbWFpbiB3aW5kb3ciLAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFtyZXF1
ZXN0LnNob3coKV07CisgICAgICAgIH0pOworCisgICAgICAvLyBJZiBhIHBheW1lbnQgc2hlZXQg
ZmFpbHMgdG8gc2hvdywgaXQgc2hvdWxkIHJlamVjdCBpbW1lZGlhdGVseS4gSWYgaXQKKyAgICAg
IC8vIGhhc24ndCByZWplY3RlZCBpbiAxIHNlY29uZCwgdGhlbiB0aGUgdGVzdCBoYXMgcGFzc2Vk
LgorICAgICAgdC5zdGVwX3RpbWVvdXQoYXN5bmMgKCkgPT4geworICAgICAgICAvLyBXZSdyZSBk
b25lLiBDbGVhbiB1cC4KKyAgICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsKKyAgICAgICAgYXdh
aXQgcmVxdWVzdC5hYm9ydCgpOworICAgICAgICB0LmRvbmUoKTsKKyAgICAgIH0sIDEwMDApOwor
CisgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBpbiBwb3B1cCB3aW5kb3cgZmFpbGVkIHRvIGNs
b3NlIHRoZSBvcmlnaW5hbCBwYXltZW50CisgICAgICAvLyBzaGVldCB0aGVyZSwgfHNob3dQcm9t
aXNlfCBzaG91bGQgcmVqZWN0IGltbWVkaWF0ZWx5IGFuZCB0aGlzIGluZGljYXRlcworICAgICAg
Ly8gYSBmYWlsdXJlIG9mIHRoaXMgdGVzdC4KKyAgICAgIGF3YWl0IHNob3dQcm9taXNlLnRoZW4o
KCkgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZShmYWxzZSwKKyAgICAgICAgICAiU2Vjb25kIHBh
eW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlc29sdmVkLiIpOworICAgICAg
fSkKKyAgICAgIC5jYXRjaChlID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCisgICAg
ICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZWpl
Y3RlZC4iKTsKKyAgICAgIH0pOworICAgIH0sICJOYXZpZ2F0aW5nIGEgcG9wdXAgYXMgYSBuZXN0
ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29s
ZWFuJyB0byBmYWxzZS4iKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0bWwKaW5kZXggOGU1NjFiMjg4ZDE1ZmEzMDk3MWRkMWY4
OGI5MzA2NzFjODNhNTg4Ny4uODIzMGUyNDU4YWFhM2UwMzY0ZGM0NTk4NWY1OTY3NTlmMDA5NTQ3
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWFib3J0LW1ldGhvZC5odHRwcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1hYm9ydC1tZXRob2QuaHR0cHMuaHRtbApAQCAtMSwx
MSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0
bGU+VGVzdCBmb3IgUGF5bWVudFJlcXVlc3QuYWJvcnQoKSBtZXRob2Q8L3RpdGxlPgotPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFw
aS8jYWJvcnQtbWV0aG9kIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jYWJvcnQtbWV0aG9kIj4KIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPScvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRy
aXZlci12ZW5kb3IuanMnPjwvc2NyaXB0PgogPHNjcmlwdD4KICJ1c2Ugc3RyaWN0IjsKIHNldHVw
KHsKQEAgLTE3LDYgKzE3LDEzIEBAIHNldHVwKHsKIGNvbnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5m
cmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7CiBjb25zdCBhcHBsZVBh
eSA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5j
b20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJ
ZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMi
LAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9y
dGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9CiB9KTsKIGNvbnN0IGRlZmF1bHRNZXRob2RzID0g
T2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkLCBhcHBsZVBheV0pOwogY29uc3QgZGVmYXVsdERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKQEAgLTMyLDUwICszOSw1NiBAQCBjb25zdCBkZWZhdWx0RGV0
YWlscyA9IE9iamVjdC5mcmVlemUoewogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAvLyBy
ZXF1ZXN0IGlzIGluICJjcmVhdGVkIiBzdGF0ZQogICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGF3YWl0IHByb21p
c2VfcmVqZWN0cyh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOworICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Qu
YWJvcnQoKSk7CiB9LCBgVGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVdXSBpcyBub3QgImlu
dGVyYWN0aXZlImApOwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IHJlcXVl
c3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsK
LSAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQg
cmVxdWVzdCIsICgpID0+Ci0gICAgcmVxdWVzdC5zaG93KCkKLSAgKTsKLSAgdHJ5IHsKLSAgICBh
d2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJl
YWNoZWQoIlVuZXhwZWN0ZWQgcHJvbWlzZSByZWplY3Rpb246ICIgKyBlcnIubWVzc2FnZSk7Ci0g
IH0KLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlz
ZSk7CisgIGNvbnN0IHByb21pc2VzID0gbmV3IFNldChbcmVxdWVzdC5hYm9ydCgpLCByZXF1ZXN0
LmFib3J0KCksIHJlcXVlc3QuYWJvcnQoKV0pOworICBhc3NlcnRfZXF1YWxzKHByb21pc2VzLnNp
emUsIDMsICJNdXN0IGhhdmUgdGhyZWUgdW5pcXVlIG9iamVjdHMiKTsKK30sICJDYWxsaW5nIGFi
b3J0KCkgbXVsdGlwbGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9iamVjdC4iKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFthYm9ydFByb21pc2Us
IGFjY2VwdFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgInNob3cgcGF5
bWVudCByZXF1ZXN0IiwKKyAgICAoKSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0g
cmVxdWVzdC5zaG93KCkKKyAgICAgIGFjY2VwdFByb21pc2UuY2F0Y2goKCkgPT4ge30pOyAvLyBu
by1vcCwganVzdCB0byBzaWxlbmNlIHVuaGFuZGxlZCByZWplY3Rpb24gaW4gZGV2dG9vbHMuCisg
ICAgICBjb25zdCBhYm9ydFByb21pc2UgPSByZXF1ZXN0LmFib3J0KCk7CisgICAgICByZXR1cm4g
W2Fib3J0UHJvbWlzZSwgYWNjZXB0UHJvbWlzZV07CisgICAgfSk7CisKKyAgYXdhaXQgYWJvcnRQ
cm9taXNlOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNj
ZXB0UHJvbWlzZSk7CiAgIC8vIEFzIHJlcXVlc3QgaXMgbm93ICJjbG9zZWQiLCB0cnlpbmcgdG8g
c2hvdyBpdCB3aWxsIGZhaWwKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3Rh
dGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0
LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CiB9LCAiVGhlIHNhbWUgcmVx
dWVzdCBjYW5ub3QgYmUgc2hvd24gbXVsdGlwbGUgdGltZXMuIik7CiAKIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKICAgLy8gcmVxdWVzdCBpcyBpbiAiY3JlYXRlZCIgc3RhdGUuCiAgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRh
aWxzKTsKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJl
cXVlc3QuYWJvcnQoKSk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRT
dGF0ZUVycm9yIiwgcmVxdWVzdC5hYm9ydCgpKTsKICAgLy8gQ2FsbCBpdCBhZ2FpbiwgZm9yIGdv
b2QgbWVhc3VyZS4KLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJv
ciIsIHJlcXVlc3QuYWJvcnQoKSk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIklu
dmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5hYm9ydCgpKTsKICAgLy8gVGhlIHJlcXVlc3QncyBz
dGF0ZSBpcyAiY3JlYXRlZCIsIHNvIGxldCdzIHNob3cgaXQKICAgLy8gd2hpY2ggY2hhbmdlcyB0
aGUgc3RhdGUgdG8gImludGVyYWN0aXZlLiIuCi0gIGNvbnN0IGFjY2VwdFByb21pc2UgPSB0ZXN0
X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCAoKSA9PgotICAgIHJlcXVlc3Qu
c2hvdygpCi0gICk7Ci0gIC8vIExldCdzIHNldCByZXF1ZXN0IHRoZSBzdGF0ZSB0byAiY2xvc2Vk
IiBieSBjYWxsaW5nIC5hYm9ydCgpCi0gIHRyeSB7Ci0gICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgp
OwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIHBy
b21pc2UgcmVqZWN0aW9uOiAiICsgZXJyLm1lc3NhZ2UpOwotICB9CisgIGNvbnN0IFthYm9ydFBy
b21pc2UsIGFjY2VwdFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgInNo
b3cgcGF5bWVudCByZXF1ZXN0IiwKKyAgICAoKSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9t
aXNlID0gcmVxdWVzdC5zaG93KCkKKyAgICAgIC8vIExldCdzIHNldCByZXF1ZXN0IHRoZSBzdGF0
ZSB0byAiY2xvc2VkIiBieSBjYWxsaW5nIC5hYm9ydCgpCisgICAgICBjb25zdCBhYm9ydFByb21p
c2UgPSByZXF1ZXN0LmFib3J0KCk7CisgICAgICByZXR1cm4gW2Fib3J0UHJvbWlzZSwgYWNjZXB0
UHJvbWlzZV07CisgICAgfSk7CisKKyAgYXdhaXQgYWJvcnRQcm9taXNlOwogICAvLyBUaGUgcmVx
dWVzdCBpcyBub3cgImNsb3NlZCIsIHNvLi4uCi0gIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAi
SW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOwotICBhd2FpdCBwcm9taXNlX3Jl
amVjdHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKKyAgYXdhaXQgcHJvbWlzZV9y
ZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LmFib3J0KCkpOworICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7
CiB9LCAiQWJvcnRpbmcgYSByZXF1ZXN0IGJlZm9yZSBpdCBpcyBzaG93biBkb2Vzbid0IHByZXZl
bnQgaXQgZnJvbSBiZWluZyBzaG93biBsYXRlci4iKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IHByb21pc2VzID0gbmV3IFNldChbcmVxdWVzdC5h
Ym9ydCgpLCByZXF1ZXN0LmFib3J0KCksIHJlcXVlc3QuYWJvcnQoKV0pOwotICBhc3NlcnRfZXF1
YWxzKHByb21pc2VzLnNpemUsIDMsICJNdXN0IGhhdmUgdGhyZWUgdW5pcXVlIG9iamVjdHMiKTsK
LX0sICJDYWxsaW5nIGFib3J0KCkgbXVsdGlwbGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9iamVj
dC4iKTsKIDwvc2NyaXB0PgotCis8c21hbGw+CisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwg
cGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1l
bnQtcmVxdWVzdC9NRVRBLnltbCI+c3VnZ2VzdGVkIHJldmlld2VyczwvYT4uCis8L3NtYWxsPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC1wcm90
ZWN0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0
aG9kLXByb3RlY3Rpb24uaHR0cHMuaHRtbAppbmRleCBiMDU4MmQ1MjBkMzA2NzYwZDc1NzU0Nzc5
ZGUxY2VlZjFkMDY0YTkyLi5lMjIxMDM0ZGQ0ZWJkMDVjNWJkNzAxZTA1YTgxODk1Yjg0NTdjM2I3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLXBy
b3RlY3Rpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1l
bnQtbWV0aG9kLXByb3RlY3Rpb24uaHR0cHMuaHRtbApAQCAtOCw3ICs4LDE2IEBACiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBjb25z
dCBiYXNpY0NhcmQgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNh
cmQiIH0pOwotY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsgc3VwcG9ydGVkTWV0aG9k
czogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIgfSk7Citjb25zdCBhcHBsZVBheSA9IE9i
amVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBw
bGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlm
aWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAg
IG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0
d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0
LmZyZWV6ZShbYmFzaWNDYXJkLCBhcHBsZVBheV0pOwogY29uc3QgZGVmYXVsdERldGFpbHMgPSBP
YmplY3QuZnJlZXplKHsKICAgdG90YWw6IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZTZl
ODJlM2JhMzI3MWUyY2I0YjQwMmJmNDczMDI5MGRiMGI2MjY2MC4uN2ZkY2Y3YTg1YTBkOWNjNzgy
ZTkzZGI4ZDI5NTNiNDhmODkxNjc5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNh
bm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEg
KzEsOSBAQAotVGhpcyB0ZXN0IHJlcXVpcmVzIHVzZXIgaW50ZXJhY3Rpb24uCi1QbGVhc2UgY2xp
Y2sgaGVyZSB0byBhbGxvdyBzaG93IHBheW1lbnQgcmVxdWVzdC5UaGlzIHRlc3QgcmVxdWlyZXMg
dXNlciBpbnRlcmFjdGlvbi4KLVBsZWFzZSBjbGljayBoZXJlIHRvIGFsbG93IHNob3cgcGF5bWVu
dCByZXF1ZXN0LiBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFu
ZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZXJzLgorSWYgeW91IGZpbmQgYSBidWdn
eSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFnIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIHJl
dmlld2Vycy4KIAogUEFTUyBJZiBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVyIGFyZSBzdXBwb3J0
ZWQsIHJlc29sdmUgcHJvbWlzZSB3aXRoIHRydWUuIAotRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVd
XSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBh
biAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gYXNzZXJ0X3VucmVhY2hlZDogU2hv
dWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZB
SUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNsb3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlz
ZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlk
U3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKIFBBU1MgSWYg
cmVxdWVzdC5bW3N0YXRlXV0gaXMgImNyZWF0ZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgdGhh
dCByZXNvbHZlcyB0byB0cnVlIGZvciBrbm93biBtZXRob2QuIAogUEFTUyBBbGwgbWV0aG9kcyBh
cmUgdW5zdXBwb3J0ZWQgCiBQQVNTIE1peCBvZiBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIG1l
dGhvZHMsIGF0IGxlYXN0IG9uZSBtZXRob2QgaXMgc3VwcG9ydGVkLiAKK0ZBSUwgSWYgcmVxdWVz
dC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVj
dGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uIGFzc2VydF91bnJl
YWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJs
ZSBjb2RlCitGQUlMIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVy
biBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2Vw
dGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4i
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2Qu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0
cHMuaHRtbAppbmRleCBmMzhjYWEwMGI5MzEzZGM4MGY1YWI1MTgwZGMxMGU4NTBlYjU3MTQ3Li5m
MDI0NzRkZTEyZTViNDE0MTc0MmMzMWJiZWIzOGQ2NjY2N2VhMzYzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
cGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy5odG1sCkBAIC0xLDE1
ICsxLDIzIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRs
ZT5UZXN0cyBmb3IgUGF5bWVudFJlcXVlc3QuY2FuTWFrZVBheW1lbnQoKSBtZXRob2Q8L3RpdGxl
PgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1w
YXltZW50LWFwaS8jc2hvdy1tZXRob2QiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1ZXN0LyNjYW5tYWtlcGF5bWVudC1tZXRob2QiPgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMnPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0n
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0PgorInVz
ZSBzdHJpY3QiOwogY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1l
dGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKIGNvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7
CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBk
YXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFu
dC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBh
YmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNh
Il0sCisgIH0KIH0pOwogY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNp
Y0NhcmQsIGFwcGxlUGF5XSk7CiBjb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUo
ewpAQCAtMzUsNTEgKzQzLDYgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICApOwogfSwg
YElmIHBheW1lbnQgbWV0aG9kIGlkZW50aWZpZXIgYXJlIHN1cHBvcnRlZCwgcmVzb2x2ZSBwcm9t
aXNlIHdpdGggdHJ1ZS5gKTsKIAotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBy
ZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWls
cyk7Ci0gIGNvbnN0IGFjY2VwdFByb21pc2UgPSB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXlt
ZW50IHJlcXVlc3QiLCAoKSA9PiB7Ci0gICAgcmVxdWVzdC5zaG93KCk7IC8vIFNldHMgc3RhdGUg
dG8gImludGVyYWN0aXZlIgotICB9KTsKLSAgY29uc3QgY2FuTWFrZVBheW1lbnRQcm9taXNlID0g
cmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpOwotICB0cnkgewotICAgIGNvbnN0IHJlc3VsdCA9IGF3
YWl0IGNhbk1ha2VQYXltZW50UHJvbWlzZTsKLSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgIGZhbHNl
LAotICAgICAgYGNhbk1ha2VQYXltZW50UHJvbWlzZSBzaG91bGQgaGF2ZSB0aHJvd24gSW52YWxp
ZFN0YXRlRXJyb3JgCi0gICAgKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIGNhbk1ha2VQYXltZW50UHJvbWlzZSk7
Ci0gIH0gZmluYWxseSB7Ci0gICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwotICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UpOwotICB9Ci0gIC8v
IFRoZSBzdGF0ZSBzaG91bGQgYmUgImNsb3NlZCIKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQs
ICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuY2FuTWFrZVBheW1lbnQoKSk7Ci19LCAnSWYg
cmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9taXNl
IHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uJyk7Ci0K
LXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBhY2NlcHRQ
cm9taXNlID0gdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCByZXF1ZXN0IiwgKCkgPT4g
ewotICAgIHJlcXVlc3Quc2hvdygpOyAvLyBTZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2ZSIKLSAg
fSk7Ci0gIGFjY2VwdFByb21pc2UuY2F0Y2goKCkgPT4ge30pOyAvLyBuby1vcCwganVzdCB0byBz
aWxlbmNlIHVuaGFuZGxlZCByZWplY3Rpb24gaW4gZGV2dG9vbHMuCi0gIGF3YWl0IHJlcXVlc3Qu
YWJvcnQoKTsgLy8gVGhlIHN0YXRlIGlzIG5vdyAiY2xvc2VkIgotICBhd2FpdCBwcm9taXNlX3Jl
amVjdHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpKTsK
LSAgdHJ5IHsKLSAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0LmNhbk1ha2VQYXltZW50
KCk7Ci0gICAgYXNzZXJ0X3RydWUoCi0gICAgICBmYWxzZSwKLSAgICAgIGBzaG91bGQgaGF2ZSB0
aHJvd24gSW52YWxpZFN0YXRlRXJyb3IsIGJ1dCBpbnN0ZWFkIHJldHVybmVkICIke3Jlc3VsdH0i
YAotICAgICk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9lcXVhbHMoCi0gICAgICBl
cnIubmFtZSwKLSAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCi0gICAgICAibXVzdCBiZSBhbiBJ
bnZhbGlkU3RhdGVFcnJvci4iCi0gICAgKTsKLSAgfQotfSwgJ0lmIHJlcXVlc3QuW1tzdGF0ZV1d
IGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52
YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4nKTsKLQogcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewogICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7CiAgIHRyeSB7CkBAIC0xMTUsNiArNzgsNDAgQEAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewogICApLmNhbk1ha2VQYXltZW50KCk7CiAgIGFzc2VydF90cnVlKGF3
YWl0IHNvbWVTdXBwb3J0ZWQsIGBBdCBsZWFzdCBvbmUgbWV0aG9kIGlzIGV4cGVjdGVkIHRvIGJl
IHN1cHBvcnRlZC5gKTsKIH0sIGBNaXggb2Ygc3VwcG9ydGVkIGFuZCB1bnN1cHBvcnRlZCBtZXRo
b2RzLCBhdCBsZWFzdCBvbmUgbWV0aG9kIGlzIHN1cHBvcnRlZC5gKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFthY2NlcHRQcm9taXNlLCBjYW5N
YWtlUGF5bWVudFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCisgICAgInNob3cg
cGF5bWVudCByZXF1ZXN0IiwKKyAgICAoKSA9PiB7CisgICAgICBjb25zdCBhY2NlcHRQcm9taXNl
ID0gcmVxdWVzdC5zaG93KCk7IC8vIFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZlIgorICAgICAg
Y29uc3QgY2FuTWFrZVBheW1lbnRQcm9taXNlID0gcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpOwor
ICAgICAgcmV0dXJuIFthY2NlcHRQcm9taXNlLCBjYW5NYWtlUGF5bWVudFByb21pc2VdOworICAg
IH0pOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9y
IiwgY2FuTWFrZVBheW1lbnRQcm9taXNlKTsKKyAgcmVxdWVzdC5hYm9ydCgpOworICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CisKKyAg
Ly8gVGhlIHN0YXRlIHNob3VsZCBiZSAiY2xvc2VkIgorICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
ZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3QuY2FuTWFrZVBheW1lbnQoKSk7Cit9
LCAnSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBw
cm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24u
Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQ
YXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBb
YWJvcnRQcm9taXNlLCBhY2NlcHRQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAor
ICAgICJzaG93IHBheW1lbnQgcmVxdWVzdCIsCisgICAgKCkgPT4geworICAgICAgY29uc3QgYWNj
ZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOyAvLyBTZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2
ZSIKKyAgICAgIGFjY2VwdFByb21pc2UuY2F0Y2goKCkgPT4ge30pOyAvLyBuby1vcCwganVzdCB0
byBzaWxlbmNlIHVuaGFuZGxlZCByZWplY3Rpb24gaW4gZGV2dG9vbHMuCisgICAgICBjb25zdCBh
Ym9ydFByb21pc2UgPSByZXF1ZXN0LmFib3J0KCk7ICAvLyBTZXRzIHN0YXRlIHRvICJjbG9zZWQi
CisgICAgICByZXR1cm4gW2Fib3J0UHJvbWlzZSwgYWNjZXB0UHJvbWlzZV07CisgICAgfSk7CisK
KyAgYXdhaXQgYWJvcnRQcm9taXNlOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJB
Ym9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20o
dCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5jYW5NYWtlUGF5bWVudCgpKTsKK30sICdJ
ZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uJyk7CiA8L3Nj
cmlwdD4KIAogPHNtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVj
dG9yLWNyYXNoLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1
Y3Rvci1jcmFzaC5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQ4MDg5MWUzMmZhODdkMmJkZjExZTY0NDExMWIzMjNmNzhhYjI5NWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNv
bnN0cnVjdG9yLWNyYXNoLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEy
ICswLDAgQEAKLQotUEFTUyBEb24ndCBjcmFzaCBpZiB0aGVyZSBpcyBhbiBhYnVzaXZlIG51bWJl
ciBvZiBwYXltZW50IG1ldGhvZHMgaW4gdGhlIG1ldGhvZERhdGEgc2VxdWVuY2UgCi1QQVNTIERv
bid0IGNyYXNoIGlmIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRlZE1ldGhvZHMgaXMgYW4gYWJ1
c2l2ZSBsZW5ndGggCi1QQVNTIERvbid0IGNyYXNoIGlmIHRoZSByZXF1ZXN0IGlkIGhhcyBhbiBh
YnVzaXZlIGxlbmd0aCAKLVBBU1MgRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudERldGFpbHNJbml0LnRv
dGFsLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVuZ3RoIAotUEFTUyBEb24ndCBjcmFzaCBpZiB0b3Rh
bC5hbW91bnQudmFsdWUgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCi1QQVNTIERvbid0IGNyYXNoIGlm
IGRldGFpbHMuZGlzcGxheUl0ZW1zIGhhcyBhbiBhYnVzaXZlIG51bWJlciBvZiBpdGVtcyAKLVBB
U1MgRG9uJ3QgY3Jhc2ggaWYgZGV0YWlscy5zaGlwcGluZ09wdGlvbnMgaGFzIGFuIGFidXNpdmUg
bnVtYmVyIG9mIGl0ZW1zIAotUEFTUyBEb24ndCBjcmFzaCBpZiBQYXltZW50U2hpcHBpbmdPcHRp
b25zLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVuZ3RoIAotUEFTUyBEb24ndCBjcmFzaCBpZiB0aGUg
UGF5bWVudFNoaXBwaW5nT3B0aW9ucy5hbW91bnQudmFsdWUgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgg
Ci1QQVNTIERvbid0IGNyYXNoIGlmIFBheW1lbnRJdGVtLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVu
Z3RoIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItY3Jhc2gu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzI1NjgxYTRhY2Y2ODQxYjY3YjJk
ZDQwZDIwY2YwZGNjNDQ5ZDhmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjYxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Ci08
dGl0bGU+Q3Jhc2ggdGVzdHMgUGF5bWVudFJlcXVlc3QgQ29uc3RydWN0b3I8L3RpdGxlPgotPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50
LWFwaS8jY29uc3RydWN0b3IiPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLS8qKgotICAgIGRpY3Rpb25hcnkgUGF5bWVudEl0ZW0g
ewotICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgICAgICAgICAgICAgbGFiZWw7Ci0gICAgICAg
IHJlcXVpcmVkIFBheW1lbnRDdXJyZW5jeUFtb3VudCBhbW91bnQ7Ci0gICAgICAgICAgICAgICAg
IGJvb2xlYW4gICAgICAgICAgICAgICBwZW5kaW5nID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIGRp
Y3Rpb25hcnkgUGF5bWVudERldGFpbHNCYXNlIHsKLSAgICAgICAgc2VxdWVuY2U8UGF5bWVudEl0
ZW0+ICAgICAgICAgICAgZGlzcGxheUl0ZW1zOwotICAgICAgICBzZXF1ZW5jZTxQYXltZW50U2hp
cHBpbmdPcHRpb24+ICBzaGlwcGluZ09wdGlvbnM7Ci0gICAgICAgIHNlcXVlbmNlPFBheW1lbnRE
ZXRhaWxzTW9kaWZpZXI+IG1vZGlmaWVyczsKLSAgICB9OwotCi0gICAgZGljdGlvbmFyeSBQYXlt
ZW50Q3VycmVuY3lBbW91bnQgewotICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgY3VycmVuY3k7
Ci0gICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyB2YWx1ZTsKLSAgICB9OwotKiovCi0KLSJ1c2Ug
c3RyaWN0IjsKLWNvbnN0IEFCVVNJVkVfQU1PVU5UID0gMTAwMDAwOwotCi1jb25zdCBiYXNpY0Nh
cmQgPSBPYmplY3QuZnJlZXplKHsKLSAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLAot
fSk7Ci0KLWNvbnN0IGRlZmF1bHRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKLSAgY3VycmVuY3k6
ICJVU0QiLAotICB2YWx1ZTogIjEuMDAiLAotfSk7Ci0KLWNvbnN0IGV2aWxBbW91bnQgPSBPYmpl
Y3QuZnJlZXplKHsKLSAgY3VycmVuY3k6ICJVU0QiLAotICB2YWx1ZTogIjEiLnJlcGVhdChBQlVT
SVZFX0FNT1VOVCksCi19KTsKLQotY29uc3QgZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXpl
KFtiYXNpY0NhcmRdKTsKLQotY29uc3QgZGVmYXVsdFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7Ci0g
IGxhYmVsOiAibGFiZWwiLAotICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi19KTsKLQotY29uc3Qg
ZXZpbFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGxhYmVsOiAiYSIucmVwZWF0KEFCVVNJVkVf
QU1PVU5UKSwKLSAgYW1vdW50OiBldmlsQW1vdW50LAotfSk7Ci0KLWNvbnN0IGRlZmF1bHREZXRh
aWxzID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gIGdldCBpZCgp
IHsKLSAgICByZXR1cm4gTWF0aC5yYW5kb20oKTsKLSAgfSwKLX0pOwotCi1jb25zdCBkZWZhdWx0
UGF5bWVudEl0ZW0gPSBPYmplY3QuZnJlZXplKHsKLSAgbGFiZWw6ICJsYWJlbCIsCi0gIGFtb3Vu
dDogZGVmYXVsdEFtb3VudCwKLX0pOwotCi1jb25zdCBkZWZhdWx0U2hpcHBpbmdPcHRpb24gPSB7
Ci0gIGdldCBpZCgpIHsKLSAgICByZXR1cm4gInNoaXBwaW5nIG9wdGlvbiAiICsgTWF0aC5yYW5k
b20oKTsKLSAgfSwKLSAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAotICBsYWJlbDogInNoaXBwaW5n
IG9wdGlvbiBsYWJlbCIsCi19OwotCi0vLyBGaXJzdCBhcmd1bWVudCBpcyBzZXF1ZW5jZTxQYXlt
ZW50TWV0aG9kRGF0YT4gbWV0aG9kRGF0YQotdGVzdCgoKSA9PiB7Ci0gIGxldCBldmlsTWV0aG9k
cyA9IFtPYmplY3QuYXNzaWduKHt9LCBiYXNpY0NhcmQpXTsKLSAgLy8gc21va2UgdGVzdAotICB0
cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChldmlsTWV0aG9kcywgZGVmYXVsdERldGFpbHMp
OwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2Ug
dGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCBsZXQncyBhZGQgYW4gYWJ1c2l2
ZSBhbW91bnQgb2YgbWV0aG9kcy4KLSAgd2hpbGUgKGV2aWxNZXRob2RzLmxlbmd0aCA8IEFCVVNJ
VkVfQU1PVU5UKSB7Ci0gICAgZXZpbE1ldGhvZHMgPSBldmlsTWV0aG9kcy5jb25jYXQoZXZpbE1l
dGhvZHMpOwotICB9Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGV2aWxNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9lcXVhbHMo
ZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwotICB9Ci19LCAi
RG9uJ3QgY3Jhc2ggaWYgdGhlcmUgaXMgYW4gYWJ1c2l2ZSBudW1iZXIgb2YgcGF5bWVudCBtZXRo
b2RzIGluIHRoZSBtZXRob2REYXRhIHNlcXVlbmNlIik7Ci0KLS8vIFBheW1lbnRNZXRob2REYXRh
LnN1cHBvcnRlZE1ldGhvZHMKLXRlc3QoKCkgPT4gewotICBjb25zdCBzdXBwb3J0ZWRNZXRob2Rz
ID0gImJhc2ljLWNhcmQiOwotICAvLyBTbW9rZSB0ZXN0Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1l
bnRSZXF1ZXN0KFt7IHN1cHBvcnRlZE1ldGhvZHMgfV0sIGRlZmF1bHREZXRhaWxzKTsKLSAgfSBj
YXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIg
KyBlcnIuc3RhY2spOwotICB9Ci0gIC8vIE5vdywgd2UgbWFrZSBzdXBwb3J0ZWRNZXRob2RzIHN1
cGVyIGxhcmdlCi0gIGNvbnN0IGV2aWxNZXRob2REYXRhID0gWwotICAgIHsKLSAgICAgIHN1cHBv
cnRlZE1ldGhvZHM6IHN1cHBvcnRlZE1ldGhvZHMucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKLSAg
ICB9LAotICBdOwotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChldmlsTWV0aG9kRGF0
YSwgZGVmYXVsdERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfZXF1YWxz
KGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKLSAgfQotfSwg
IkRvbid0IGNyYXNoIGlmIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRlZE1ldGhvZHMgaXMgYW4g
YWJ1c2l2ZSBsZW5ndGgiKTsKLQotLy8gUGF5bWVudERldGFpbHNJbml0LmlkCi10ZXN0KCgpID0+
IHsKLSAgY29uc3QgaWQgPSAiYWJjIjsKLSAgLy8gU21va2UgVGVzdAotICB0cnkgewotICAgIG5l
dyBQYXltZW50UmVxdWVzdCgKLSAgICAgIGRlZmF1bHRNZXRob2RzLAotICAgICAgT2JqZWN0LmFz
c2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgaWQgfSkKLSAgICApOwotICB9IGNhdGNoIChlcnIp
IHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFj
ayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBtYWtlIHRoZSBpZCBzdXBlciBsYXJnZTsKLSAgY29uc3Qg
ZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgewotICAgIGlk
OiBpZC5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpLAotICB9KTsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJy
KSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEg
VHlwZUVycm9yIik7Ci0gIH0KLX0sICJEb24ndCBjcmFzaCBpZiB0aGUgcmVxdWVzdCBpZCBoYXMg
YW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLQotLy8gUGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVs
Ci10ZXN0KCgpID0+IHsKLSAgY29uc3QgZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBk
ZWZhdWx0RGV0YWlscyk7Ci0gIC8vIFNtb2tlIFRlc3QKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7
Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2sp
OwotICB9Ci0gIC8vIE5vdywgd2UgbWFrZSB0aGUgbGFiZWwgc3VwZXIgbGFyZ2U7Ci0gIGV2aWxE
ZXRhaWxzLnRvdGFsID0gewotICAgIGxhYmVsOiAibCIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwK
LSAgICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi0gIH07Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikg
ewotICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5
cGVFcnJvciIpOwotICB9Ci19LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudERldGFpbHNJbml0LnRv
dGFsLmxhYmVsIGlzIGFuIGFidXNpdmUgbGVuZ3RoIik7Ci0KLXRlc3QoKCkgPT4gewotICBjb25z
dCBldmlsRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzKTsKLSAgLy8g
U21va2UgVGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVk
KCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBj
YW4gdXNlIGV2aWxBbW91bnQKLSAgZXZpbERldGFpbHMudG90YWwgPSBldmlsQW1vdW50OwotICB0
cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMp
OwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVy
cm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKLSAgfQotfSwgIkRvbid0IGNyYXNoIGlmIHRv
dGFsLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCIpOwotCi1mb3IgKGNvbnN0IFtw
cm9wLCBkZWZhdWx0VmFsdWVdIG9mIFsKLSAgWyJkaXNwbGF5SXRlbXMiLCBkZWZhdWx0UGF5bWVu
dEl0ZW1dLAotICBbInNoaXBwaW5nT3B0aW9ucyIsIGRlZmF1bHRTaGlwcGluZ09wdGlvbl0sCi1d
KSB7Ci0gIHRlc3QoKCkgPT4gewotICAgIGNvbnN0IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2ln
bih7fSwgZGVmYXVsdERldGFpbHMpOwotICAgIGV2aWxEZXRhaWxzW3Byb3BdID0gW2RlZmF1bHRW
YWx1ZV07Ci0gICAgLy8gU21va2UgVGVzdAotICAgIHRyeSB7Ci0gICAgICBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsK
LSAgICAgIGFzc2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNr
KTsKLSAgICB9Ci0gICAgd2hpbGUgKGV2aWxEZXRhaWxzW3Byb3BdLmxlbmd0aCA8IEFCVVNJVkVf
QU1PVU5UKSB7Ci0gICAgICBldmlsRGV0YWlsc1twcm9wXSA9IGV2aWxEZXRhaWxzW3Byb3BdLmNv
bmNhdChldmlsRGV0YWlsc1twcm9wXSk7Ci0gICAgfQotICAgIC8vIE5vdywgY29uc3RydWN0IHdp
dGggZXZpbCBpdGVtcyEKLSAgICB0cnkgewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICBhc3Nl
cnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsK
LSAgICB9Ci0gIH0sIGBEb24ndCBjcmFzaCBpZiBkZXRhaWxzLiR7cHJvcH0gaGFzIGFuIGFidXNp
dmUgbnVtYmVyIG9mIGl0ZW1zYCk7Ci19Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCBldmlsRGV0
YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzKTsKLSAgY29uc3QgZXZpbFNo
aXBwaW5nT3B0aW9uID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uKTsK
LSAgZXZpbERldGFpbHMuc2hpcHBpbmdPcHRpb25zID0gW2V2aWxTaGlwcGluZ09wdGlvbl07Ci0g
IC8vIFNtb2tlIFRlc3QKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X3VucmVh
Y2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOwotICB9Ci0gIC8vIE5vdywg
d2UgbWFrZSB0aGUgbGFiZWwgc3VwZXIgbGFyZ2U7Ci0gIGV2aWxTaGlwcGluZ09wdGlvbi5sYWJl
bCA9ICJsIi5yZXBlYXQoQUJVU0lWRV9BTU9VTlQpOwotICB0cnkgewotICAgIG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsK
LSAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBl
RXJyb3IiKTsKLSAgfQotfSwgIkRvbid0IGNyYXNoIGlmIFBheW1lbnRTaGlwcGluZ09wdGlvbnMu
bGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGV2
aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBl
dmlsU2hpcHBpbmdPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRp
b24pOwotICBldmlsRGV0YWlscy5zaGlwcGluZ09wdGlvbnMgPSBbZXZpbFNoaXBwaW5nT3B0aW9u
XTsKLSAgLy8gU21va2UgVGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZXZpbERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRf
dW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8g
Tm93LCB3ZSBtYWtlIHVzZSBvZiBldmlsQW1vdW50OwotICBldmlsU2hpcHBpbmdPcHRpb24uYW1v
dW50ID0gZXZpbEFtb3VudDsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKLSAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7Ci0gIH0K
LX0sICJEb24ndCBjcmFzaCBpZiB0aGUgUGF5bWVudFNoaXBwaW5nT3B0aW9ucy5hbW91bnQudmFs
dWUgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGV2aWxE
ZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOwotICBjb25zdCBldmls
RGlzcGxheUl0ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0UGF5bWVudEl0ZW0pOwotICBl
dmlsRGV0YWlscy5kaXNwbGF5SXRlbXMgPSBbZXZpbERpc3BsYXlJdGVtXTsKLSAgLy8gU21va2Ug
VGVzdAotICB0cnkgewotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZp
bERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWls
ZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7Ci0gIH0KLSAgLy8gTm93LCB3ZSBtYWtlIHRo
ZSBsYWJlbCBzdXBlciBsYXJnZTsKLSAgZXZpbERpc3BsYXlJdGVtLmxhYmVsID0gImwiLnJlcGVh
dChBQlVTSVZFX0FNT1VOVCk7Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBldmlsRGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF9l
cXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOwotICB9
Ci19LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudEl0ZW0ubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5n
dGgiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVj
dG9yLXRoY3Jhc2guaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0
cnVjdG9yLXRoY3Jhc2guaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MDg5MWUzMmZh
ODdkMmJkZjExZTY0NDExMWIzMjNmNzhhYjI5NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtY29uc3RydWN0b3ItdGhjcmFzaC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorCitQQVNTIERvbid0IGNyYXNoIGlmIHRoZXJlIGlzIGFuIGFidXNpdmUgbnVt
YmVyIG9mIHBheW1lbnQgbWV0aG9kcyBpbiB0aGUgbWV0aG9kRGF0YSBzZXF1ZW5jZSAKK1BBU1Mg
RG9uJ3QgY3Jhc2ggaWYgUGF5bWVudE1ldGhvZERhdGEuc3VwcG9ydGVkTWV0aG9kcyBpcyBhbiBh
YnVzaXZlIGxlbmd0aCAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgdGhlIHJlcXVlc3QgaWQgaGFzIGFu
IGFidXNpdmUgbGVuZ3RoIAorUEFTUyBEb24ndCBjcmFzaCBpZiBQYXltZW50RGV0YWlsc0luaXQu
dG90YWwubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCitQQVNTIERvbid0IGNyYXNoIGlmIHRv
dGFsLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCAKK1BBU1MgRG9uJ3QgY3Jhc2gg
aWYgZGV0YWlscy5kaXNwbGF5SXRlbXMgaGFzIGFuIGFidXNpdmUgbnVtYmVyIG9mIGl0ZW1zIAor
UEFTUyBEb24ndCBjcmFzaCBpZiBkZXRhaWxzLnNoaXBwaW5nT3B0aW9ucyBoYXMgYW4gYWJ1c2l2
ZSBudW1iZXIgb2YgaXRlbXMgCitQQVNTIERvbid0IGNyYXNoIGlmIFBheW1lbnRTaGlwcGluZ09w
dGlvbnMubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGggCitQQVNTIERvbid0IGNyYXNoIGlmIHRo
ZSBQYXltZW50U2hpcHBpbmdPcHRpb25zLmFtb3VudC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0
aCAKK1BBU1MgRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudEl0ZW0ubGFiZWwgaXMgYW4gYWJ1c2l2ZSBs
ZW5ndGggCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci10aGNy
YXNoLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItdGhjcmFzaC5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3NjM2MTViZGQxODZkMGE4YTY1NmFmOGE4OWJmZGY4YmJm
YWMxODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3It
dGhjcmFzaC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxvbmci
PgorPHRpdGxlPkNyYXNoIHRlc3RzIFBheW1lbnRSZXF1ZXN0IENvbnN0cnVjdG9yPC90aXRsZT4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5
bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisvKioKKyAgICBkaWN0aW9uYXJ5IFBheW1lbnRJ
dGVtIHsKKyAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICAgICAgICAgIGxhYmVsOworICAg
ICAgICByZXF1aXJlZCBQYXltZW50Q3VycmVuY3lBbW91bnQgYW1vdW50OworICAgICAgICAgICAg
ICAgICBib29sZWFuICAgICAgICAgICAgICAgcGVuZGluZyA9IGZhbHNlOworICAgIH07CisKKyAg
ICBkaWN0aW9uYXJ5IFBheW1lbnREZXRhaWxzQmFzZSB7CisgICAgICAgIHNlcXVlbmNlPFBheW1l
bnRJdGVtPiAgICAgICAgICAgIGRpc3BsYXlJdGVtczsKKyAgICAgICAgc2VxdWVuY2U8UGF5bWVu
dFNoaXBwaW5nT3B0aW9uPiAgc2hpcHBpbmdPcHRpb25zOworICAgICAgICBzZXF1ZW5jZTxQYXlt
ZW50RGV0YWlsc01vZGlmaWVyPiBtb2RpZmllcnM7CisgICAgfTsKKworICAgIGRpY3Rpb25hcnkg
UGF5bWVudEN1cnJlbmN5QW1vdW50IHsKKyAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nIGN1cnJl
bmN5OworICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgdmFsdWU7CisgICAgfTsKKyoqLworCisi
dXNlIHN0cmljdCI7Citjb25zdCBBQlVTSVZFX0FNT1VOVCA9IDEwMDAwMDsKKworY29uc3QgYXBw
bGVQYXkgPSB7CisgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1w
YXkiLAorICBkYXRhOiB7CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6
ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVy
Y2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3Jr
czogWyJ2aXNhIl0sCisgIH0KK307CisKK2NvbnN0IGJhc2ljQ2FyZCA9IE9iamVjdC5mcmVlemUo
eworICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCit9KTsKKworY29uc3QgZGVmYXVs
dEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIlVTRCIsCisgIHZhbHVlOiAi
MS4wMCIsCit9KTsKKworY29uc3QgZXZpbEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJy
ZW5jeTogIlVTRCIsCisgIHZhbHVlOiAiMSIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKK30pOwor
Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZCwgYXBwbGVQ
YXldKTsKKworY29uc3QgZGVmYXVsdFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CisgIGxhYmVsOiAi
bGFiZWwiLAorICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCit9KTsKKworY29uc3QgZXZpbFRvdGFs
ID0gT2JqZWN0LmZyZWV6ZSh7CisgIGxhYmVsOiAiYSIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwK
KyAgYW1vdW50OiBldmlsQW1vdW50LAorfSk7CisKK2NvbnN0IGRlZmF1bHREZXRhaWxzID0gT2Jq
ZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgIGdldCBpZCgpIHsKKyAgICBy
ZXR1cm4gTWF0aC5yYW5kb20oKTsKKyAgfSwKK30pOworCitjb25zdCBkZWZhdWx0UGF5bWVudEl0
ZW0gPSBPYmplY3QuZnJlZXplKHsKKyAgbGFiZWw6ICJsYWJlbCIsCisgIGFtb3VudDogZGVmYXVs
dEFtb3VudCwKK30pOworCitjb25zdCBkZWZhdWx0U2hpcHBpbmdPcHRpb24gPSB7CisgIGdldCBp
ZCgpIHsKKyAgICByZXR1cm4gInNoaXBwaW5nIG9wdGlvbiAiICsgTWF0aC5yYW5kb20oKTsKKyAg
fSwKKyAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAorICBsYWJlbDogInNoaXBwaW5nIG9wdGlvbiBs
YWJlbCIsCit9OworCisvLyBGaXJzdCBhcmd1bWVudCBpcyBzZXF1ZW5jZTxQYXltZW50TWV0aG9k
RGF0YT4gbWV0aG9kRGF0YQordGVzdCgoKSA9PiB7CisgIGxldCBldmlsTWV0aG9kcyA9IFtPYmpl
Y3QuYXNzaWduKHt9LCBiYXNpY0NhcmQpXTsKKyAgLy8gc21va2UgdGVzdAorICB0cnkgeworICAg
IG5ldyBQYXltZW50UmVxdWVzdChldmlsTWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICB9IGNh
dGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiAr
IGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCBsZXQncyBhZGQgYW4gYWJ1c2l2ZSBhbW91bnQg
b2YgbWV0aG9kcy4KKyAgd2hpbGUgKGV2aWxNZXRob2RzLmxlbmd0aCA8IEFCVVNJVkVfQU1PVU5U
KSB7CisgICAgZXZpbE1ldGhvZHMgPSBldmlsTWV0aG9kcy5jb25jYXQoZXZpbE1ldGhvZHMpOwor
ICB9CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGV2aWxNZXRob2RzLCBkZWZhdWx0
RGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF9lcXVhbHMoZXJyLm5hbWUs
ICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOworICB9Cit9LCAiRG9uJ3QgY3Jh
c2ggaWYgdGhlcmUgaXMgYW4gYWJ1c2l2ZSBudW1iZXIgb2YgcGF5bWVudCBtZXRob2RzIGluIHRo
ZSBtZXRob2REYXRhIHNlcXVlbmNlIik7CisKKy8vIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRl
ZE1ldGhvZHMKK3Rlc3QoKCkgPT4geworICBjb25zdCBzdXBwb3J0ZWRNZXRob2RzID0gImJhc2lj
LWNhcmQiOworICAvLyBTbW9rZSB0ZXN0CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0
KFt7IHN1cHBvcnRlZE1ldGhvZHMgfV0sIGRlZmF1bHREZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJy
KSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3Rh
Y2spOworICB9CisgIC8vIE5vdywgd2UgbWFrZSBzdXBwb3J0ZWRNZXRob2RzIHN1cGVyIGxhcmdl
CisgIGNvbnN0IGV2aWxNZXRob2REYXRhID0gWworICAgIHsKKyAgICAgIHN1cHBvcnRlZE1ldGhv
ZHM6IHN1cHBvcnRlZE1ldGhvZHMucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKKyAgICB9LAorICBd
OworICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChldmlsTWV0aG9kRGF0YSwgZGVmYXVs
dERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1l
LCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgfQorfSwgIkRvbid0IGNy
YXNoIGlmIFBheW1lbnRNZXRob2REYXRhLnN1cHBvcnRlZE1ldGhvZHMgaXMgYW4gYWJ1c2l2ZSBs
ZW5ndGgiKTsKKworLy8gUGF5bWVudERldGFpbHNJbml0LmlkCit0ZXN0KCgpID0+IHsKKyAgY29u
c3QgaWQgPSAiYWJjIjsKKyAgLy8gU21va2UgVGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50
UmVxdWVzdCgKKyAgICAgIGRlZmF1bHRNZXRob2RzLAorICAgICAgT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMsIHsgaWQgfSkKKyAgICApOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBh
c3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0K
KyAgLy8gTm93LCB3ZSBtYWtlIHRoZSBpZCBzdXBlciBsYXJnZTsKKyAgY29uc3QgZXZpbERldGFp
bHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeworICAgIGlkOiBpZC5yZXBl
YXQoQUJVU0lWRV9BTU9VTlQpLAorICB9KTsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVl
c3QoZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAg
YXNzZXJ0X2VxdWFscyhlcnIubmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9y
Iik7CisgIH0KK30sICJEb24ndCBjcmFzaCBpZiB0aGUgcmVxdWVzdCBpZCBoYXMgYW4gYWJ1c2l2
ZSBsZW5ndGgiKTsKKworLy8gUGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVsCit0ZXN0KCgp
ID0+IHsKKyAgY29uc3QgZXZpbERldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0
YWlscyk7CisgIC8vIFNtb2tlIFRlc3QKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNz
ZXJ0X3VucmVhY2hlZCgiZmFpbGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOworICB9Cisg
IC8vIE5vdywgd2UgbWFrZSB0aGUgbGFiZWwgc3VwZXIgbGFyZ2U7CisgIGV2aWxEZXRhaWxzLnRv
dGFsID0geworICAgIGxhYmVsOiAibCIucmVwZWF0KEFCVVNJVkVfQU1PVU5UKSwKKyAgICBhbW91
bnQ6IGRlZmF1bHRBbW91bnQsCisgIH07CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBldmlsRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFz
c2VydF9lcXVhbHMoZXJyLm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIp
OworICB9Cit9LCAiRG9uJ3QgY3Jhc2ggaWYgUGF5bWVudERldGFpbHNJbml0LnRvdGFsLmxhYmVs
IGlzIGFuIGFidXNpdmUgbGVuZ3RoIik7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBldmlsRGV0
YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzKTsKKyAgLy8gU21va2UgVGVz
dAorICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERl
dGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQg
c21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCB3ZSBjYW4gdXNlIGV2
aWxBbW91bnQKKyAgZXZpbERldGFpbHMudG90YWwgPSBldmlsQW1vdW50OworICB0cnkgeworICAg
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNh
dGNoIChlcnIpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11
c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgfQorfSwgIkRvbid0IGNyYXNoIGlmIHRvdGFsLmFtb3Vu
dC52YWx1ZSBpcyBhbiBhYnVzaXZlIGxlbmd0aCIpOworCitmb3IgKGNvbnN0IFtwcm9wLCBkZWZh
dWx0VmFsdWVdIG9mIFsKKyAgWyJkaXNwbGF5SXRlbXMiLCBkZWZhdWx0UGF5bWVudEl0ZW1dLAor
ICBbInNoaXBwaW5nT3B0aW9ucyIsIGRlZmF1bHRTaGlwcGluZ09wdGlvbl0sCitdKSB7CisgIHRl
c3QoKCkgPT4geworICAgIGNvbnN0IGV2aWxEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVm
YXVsdERldGFpbHMpOworICAgIGV2aWxEZXRhaWxzW3Byb3BdID0gW2RlZmF1bHRWYWx1ZV07Cisg
ICAgLy8gU21va2UgVGVzdAorICAgIHRyeSB7CisgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVm
YXVsdE1ldGhvZHMsIGV2aWxEZXRhaWxzKTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFz
c2VydF91bnJlYWNoZWQoImZhaWxlZCBzbW9rZSB0ZXN0OiAiICsgZXJyLnN0YWNrKTsKKyAgICB9
CisgICAgd2hpbGUgKGV2aWxEZXRhaWxzW3Byb3BdLmxlbmd0aCA8IEFCVVNJVkVfQU1PVU5UKSB7
CisgICAgICBldmlsRGV0YWlsc1twcm9wXSA9IGV2aWxEZXRhaWxzW3Byb3BdLmNvbmNhdChldmls
RGV0YWlsc1twcm9wXSk7CisgICAgfQorICAgIC8vIE5vdywgY29uc3RydWN0IHdpdGggZXZpbCBp
dGVtcyEKKyAgICB0cnkgeworICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBldmlsRGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfZXF1YWxz
KGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsKKyAgICB9Cisg
IH0sIGBEb24ndCBjcmFzaCBpZiBkZXRhaWxzLiR7cHJvcH0gaGFzIGFuIGFidXNpdmUgbnVtYmVy
IG9mIGl0ZW1zYCk7Cit9CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBldmlsRGV0YWlscyA9IE9i
amVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzKTsKKyAgY29uc3QgZXZpbFNoaXBwaW5nT3B0
aW9uID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uKTsKKyAgZXZpbERl
dGFpbHMuc2hpcHBpbmdPcHRpb25zID0gW2V2aWxTaGlwcGluZ09wdGlvbl07CisgIC8vIFNtb2tl
IFRlc3QKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGV2
aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgiZmFp
bGVkIHNtb2tlIHRlc3Q6ICIgKyBlcnIuc3RhY2spOworICB9CisgIC8vIE5vdywgd2UgbWFrZSB0
aGUgbGFiZWwgc3VwZXIgbGFyZ2U7CisgIGV2aWxTaGlwcGluZ09wdGlvbi5sYWJlbCA9ICJsIi5y
ZXBlYXQoQUJVU0lWRV9BTU9VTlQpOworICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3Nl
cnRfZXF1YWxzKGVyci5uYW1lLCAiVHlwZUVycm9yIiwgIm11c3QgYmUgYSBUeXBlRXJyb3IiKTsK
KyAgfQorfSwgIkRvbid0IGNyYXNoIGlmIFBheW1lbnRTaGlwcGluZ09wdGlvbnMubGFiZWwgaXMg
YW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGV2aWxEZXRhaWxz
ID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBldmlsU2hpcHBp
bmdPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pOworICBl
dmlsRGV0YWlscy5zaGlwcGluZ09wdGlvbnMgPSBbZXZpbFNoaXBwaW5nT3B0aW9uXTsKKyAgLy8g
U21va2UgVGVzdAorICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZXZpbERldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVk
KCJmYWlsZWQgc21va2UgdGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCB3ZSBt
YWtlIHVzZSBvZiBldmlsQW1vdW50OworICBldmlsU2hpcHBpbmdPcHRpb24uYW1vdW50ID0gZXZp
bEFtb3VudDsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGV2aWxEZXRhaWxzKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAgYXNzZXJ0X2VxdWFscyhlcnIu
bmFtZSwgIlR5cGVFcnJvciIsICJtdXN0IGJlIGEgVHlwZUVycm9yIik7CisgIH0KK30sICJEb24n
dCBjcmFzaCBpZiB0aGUgUGF5bWVudFNoaXBwaW5nT3B0aW9ucy5hbW91bnQudmFsdWUgaXMgYW4g
YWJ1c2l2ZSBsZW5ndGgiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGV2aWxEZXRhaWxzID0g
T2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBldmlsRGlzcGxheUl0
ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0UGF5bWVudEl0ZW0pOworICBldmlsRGV0YWls
cy5kaXNwbGF5SXRlbXMgPSBbZXZpbERpc3BsYXlJdGVtXTsKKyAgLy8gU21va2UgVGVzdAorICB0
cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZXZpbERldGFpbHMp
OworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJmYWlsZWQgc21va2Ug
dGVzdDogIiArIGVyci5zdGFjayk7CisgIH0KKyAgLy8gTm93LCB3ZSBtYWtlIHRoZSBsYWJlbCBz
dXBlciBsYXJnZTsKKyAgZXZpbERpc3BsYXlJdGVtLmxhYmVsID0gImwiLnJlcGVhdChBQlVTSVZF
X0FNT1VOVCk7CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBldmlsRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF9lcXVhbHMoZXJy
Lm5hbWUsICJUeXBlRXJyb3IiLCAibXVzdCBiZSBhIFR5cGVFcnJvciIpOworICB9Cit9LCAiRG9u
J3QgY3Jhc2ggaWYgUGF5bWVudEl0ZW0ubGFiZWwgaXMgYW4gYWJ1c2l2ZSBsZW5ndGgiKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTljMjVkMTcyMzQ1OWJlZjU2OWNhOWU2MmVjMjllMGM4
ODk1MzRmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDY4NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcg
Q2hyb21pdW0gYXV0aG9ycyBhbmQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3NhY2h1
c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZlcnNpdHksIEJl
aWhhbmcpLiAtLT4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGZvciBQYXlt
ZW50UmVxdWVzdCBDb25zdHJ1Y3RvcjwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9icm93c2VyLXBheW1lbnQtYXBpLyNjb25zdHJ1Y3RvciI+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotInVzZSBzdHJpY3QiOwotY29uc3QgdGVzdE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewotICBz
dXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi19KTsK
LWNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdGVzdE1ldGhvZF0pOwotY29u
c3QgZGVmYXVsdEFtb3VudCA9IE9iamVjdC5mcmVlemUoewotICBjdXJyZW5jeTogIlVTRCIsCi0g
IHZhbHVlOiAiMS4wIiwKLX0pOwotY29uc3QgZGVmYXVsdE51bWJlckFtb3VudCA9IE9iamVjdC5m
cmVlemUoewotICBjdXJyZW5jeTogIlVTRCIsCi0gIHZhbHVlOiAxLjAsCi19KTsKLWNvbnN0IGRl
ZmF1bHRUb3RhbCA9IE9iamVjdC5mcmVlemUoewotICBsYWJlbDogIkRlZmF1bHQgVG90YWwiLAot
ICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi19KTsKLWNvbnN0IGRlZmF1bHROdW1iZXJUb3RhbCA9
IE9iamVjdC5mcmVlemUoewotICBsYWJlbDogIkRlZmF1bHQgTnVtYmVyIFRvdGFsIiwKLSAgYW1v
dW50OiBkZWZhdWx0TnVtYmVyQW1vdW50LAotfSk7Ci1jb25zdCBkZWZhdWx0RGV0YWlscyA9IE9i
amVjdC5mcmVlemUoewotICB0b3RhbDogZGVmYXVsdFRvdGFsLAotICBkaXNwbGF5SXRlbXM6IFsK
LSAgICB7Ci0gICAgICBsYWJlbDogIkRlZmF1bHQgRGlzcGxheSBJdGVtIiwKLSAgICAgIGFtb3Vu
dDogZGVmYXVsdEFtb3VudCwKLSAgICB9LAotICBdLAotfSk7Ci1jb25zdCBkZWZhdWx0TnVtYmVy
RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewotICB0b3RhbDogZGVmYXVsdE51bWJlclRvdGFsLAot
ICBkaXNwbGF5SXRlbXM6IFsKLSAgICB7Ci0gICAgICBsYWJlbDogIkRlZmF1bHQgRGlzcGxheSBJ
dGVtIiwKLSAgICAgIGFtb3VudDogZGVmYXVsdE51bWJlckFtb3VudCwKLSAgICB9LAotICBdLAot
fSk7Ci0KLS8vIEF2b2lkIGZhbHNlIHBvc2l0aXZlcywgdGhpcyBzaG91bGQgYWx3YXlzIHBhc3MK
LWZ1bmN0aW9uIHNtb2tlVGVzdCgpIHsKLSAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGVmYXVsdE51bWJlckRldGFpbHMpOwotfQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgp
OwotICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBk
ZWZhdWx0RGV0YWlscyk7Ci0gIGFzc2VydF90cnVlKEJvb2xlYW4ocmVxdWVzdC5pZCksICJtdXN0
IGJlIHNvbWUgdHJ1dGh5IHZhbHVlIik7Ci19LCAiSWYgZGV0YWlscy5pZCBpcyBtaXNzaW5nLCBh
c3NpZ24gYW4gaWRlbnRpZmllciIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0g
IGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZh
dWx0RGV0YWlscyk7Ci0gIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGFzc2VydF9ub3RfZXF1YWxzKHJlcXVlc3Qx
LmlkLCByZXF1ZXN0Mi5pZCwgIlVBIGdlbmVyYXRlZCBJRCBtdXN0IGJlIHVuaXF1ZSIpOwotICBj
b25zdCBzZWVuID0gbmV3IFNldCgpOwotICAvLyBMZXQncyB0cnkgY3JlYXRpbmcgbG90cyBvZiBy
ZXF1ZXN0cywgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhbGwgdW5pcXVlCi0gIGZvciAobGV0IGkg
PSAwOyBpIDwgMTAyNDsgaSsrKSB7Ci0gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVx
dWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIGFzc2VydF9mYWxzZSgK
LSAgICAgIHNlZW4uaGFzKHJlcXVlc3QuaWQpLAotICAgICAgYFVBIGdlbmVyYXRlZCBJRCBtdXN0
IGJlIHVuaXF1ZSwgYnV0IGdvdCBkdXBsaWNhdGUhICgke3JlcXVlc3QuaWR9KWAKLSAgICApOwot
ICAgIHNlZW4uYWRkKHJlcXVlc3QuaWQpOwotICB9Ci19LCAiSWYgZGV0YWlscy5pZCBpcyBtaXNz
aW5nLCBhc3NpZ24gYSB1bmlxdWUgaWRlbnRpZmllciIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21v
a2VUZXN0KCk7Ci0gIGNvbnN0IG5ld0RldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0
RGV0YWlscywgeyBpZDogInRlc3QxMjMiIH0pOwotICBjb25zdCByZXF1ZXN0MSA9IG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbmV3RGV0YWlscyk7Ci0gIGNvbnN0IHJlcXVlc3Qy
ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBuZXdEZXRhaWxzKTsKLSAgYXNz
ZXJ0X2VxdWFscyhyZXF1ZXN0MS5pZCwgbmV3RGV0YWlscy5pZCwgYGlkIG11c3QgYmUgJHtuZXdE
ZXRhaWxzLmlkfWApOwotICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QyLmlkLCBuZXdEZXRhaWxzLmlk
LCBgaWQgbXVzdCBiZSAke25ld0RldGFpbHMuaWR9YCk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVz
dDEuaWQsIHJlcXVlc3QyLmlkLCAiaWRzIG5lZWQgdG8gYmUgdGhlIHNhbWUiKTsKLX0sICJJZiB0
aGUgc2FtZSBpZCBpcyBwcm92aWRlZCwgdGhlbiB1c2UgaXQiKTsKLQotdGVzdCgoKSA9PiB7Ci0g
IHNtb2tlVGVzdCgpOwotICBjb25zdCBuZXdEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVm
YXVsdERldGFpbHMsIHsKLSAgICBpZDogIiIucGFkU3RhcnQoMTAyNCwgImEiKSwKLSAgfSk7Ci0g
IGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG5ld0Rl
dGFpbHMpOwotICBhc3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3QuaWQsCi0gICAgbmV3RGV0YWls
cy5pZCwKLSAgICBgaWQgbXVzdCBiZSBwcm92aWRlZCB2YWx1ZSwgZXZlbiBpZiB2ZXJ5IGxvbmcg
YW5kIGNvbnRhaW4gc3BhY2VzYAotICApOwotfSwgIlVzZSBpZHMgZXZlbiBpZiB0aGV5IGFyZSBz
dHJhbmdlIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgcmVxdWVz
dCA9IG5ldyBQYXltZW50UmVxdWVzdCgKLSAgICBkZWZhdWx0TWV0aG9kcywKLSAgICBPYmplY3Qu
YXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBpZDogImZvbyIgfSkKLSAgKTsKLSAgYXNzZXJ0
X2VxdWFscyhyZXF1ZXN0LmlkLCAiZm9vIik7Ci19LCAiVXNlIHByb3ZpZGVkIHJlcXVlc3QgSUQi
KTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgKCkgPT4gbmV3IFBheW1lbnRSZXF1ZXN0KFtdLCBkZWZhdWx0RGV0YWlscykp
OwotfSwgIklmIHRoZSBsZW5ndGggb2YgdGhlIG1ldGhvZERhdGEgc2VxdWVuY2UgaXMgemVybywg
dGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7
Ci0gIGNvbnN0IEpTT05TZXJpYWxpemFibGVzID0gW1tdLCB7IG9iamVjdDoge30gfV07Ci0gIGZv
ciAoY29uc3QgZGF0YSBvZiBKU09OU2VyaWFsaXphYmxlcykgewotICAgIHRyeSB7Ci0gICAgICBj
b25zdCBtZXRob2RzID0gWwotICAgICAgICB7Ci0gICAgICAgICAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICAgICAgIGRhdGEsCi0gICAg
ICAgIH0sCi0gICAgICBdOwotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1
bHREZXRhaWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQo
Ci0gICAgICAgIGBVbmV4cGVjdGVkIGVycm9yIHBhcnNpbmcgc3RyaW5naWZpYWJsZSBKU09OOiAk
e0pTT04uc3RyaW5naWZ5KAotICAgICAgICAgIGRhdGEKLSAgICAgICAgKX06ICR7ZXJyLm1lc3Nh
Z2V9YAotICAgICAgKTsKLSAgICB9Ci0gIH0KLX0sICJNb2RpZmllciBtZXRob2QgZGF0YSBtdXN0
IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VU
ZXN0KCk7Ci0gIGNvbnN0IHJlY3Vyc2l2ZURpY3Rpb25hcnkgPSB7fTsKLSAgcmVjdXJzaXZlRGlj
dGlvbmFyeS5mb28gPSByZWN1cnNpdmVEaWN0aW9uYXJ5OwotICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgKCkgPT4gewotICAgIGNvbnN0IG1ldGhvZHMgPSBbCi0gICAgICB7Ci0gICAg
ICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwK
LSAgICAgICAgZGF0YTogcmVjdXJzaXZlRGljdGlvbmFyeSwKLSAgICAgIH0sCi0gICAgXTsKLSAg
ICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICB9KTsKLSAg
YXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKLSAgICBjb25zdCBtZXRob2Rz
ID0gWwotICAgICAgewotICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlp
L3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICAgIGRhdGE6ICJhIHN0cmluZyIsCi0gICAgICB9LAot
ICAgIF07Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsK
LSAgfSk7Ci0gIGFzc2VydF90aHJvd3MoCi0gICAgbmV3IFR5cGVFcnJvcigpLAotICAgICgpID0+
IHsKLSAgICAgIGNvbnN0IG1ldGhvZHMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICBzdXBwb3J0
ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1lbnQtcmVxdWVzdCIsCi0gICAgICAgICAg
ZGF0YTogbnVsbCwKLSAgICAgICAgfSwKLSAgICAgIF07Ci0gICAgICBuZXcgUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIH0sCi0gICAgIkV2ZW4gdGhvdWdoIG51
bGwgaXMgSlNPTi1zZXJpYWxpemFibGUsIGl0J3Mgbm90IHR5cGUgJ09iamVjdCcgcGVyIEVTIHNw
ZWMiCi0gICk7Ci19LCAiUmV0aHJvdyBhbnkgZXhjZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6aW5n
IHBheW1lbnRNZXRob2QuZGF0YSBpbnRvIGEgc3RyaW5nIik7Ci0KLS8vIHByb2Nlc3MgdG90YWwK
LWNvbnN0IGludmFsaWRBbW91bnRzID0gWwotICAiLSIsCi0gICJub3RkaWdpdHMiLAotICAiQUxT
T05PVERJR0lUUyIsCi0gICIxMC4iLAotICAiLjk5IiwKLSAgIi0xMC4iLAotICAiLS45OSIsCi0g
ICIxMC0iLAotICAiMS0wIiwKLSAgIjEuMC4wIiwKLSAgIjEvMyIsCi0gICIiLAotICBudWxsLAot
ICAiIDEuMCAgIiwKLSAgIiAxLjAgIiwKLSAgIjEuMCAiLAotICAiVVNEJDEuMCIsCi0gICIkMS4w
IiwKLSAgewotICAgIHRvU3RyaW5nKCkgewotICAgICAgcmV0dXJuICIgMS4wIjsKLSAgICB9LAot
ICB9LAotXTsKLWNvbnN0IGludmFsaWRUb3RhbEFtb3VudHMgPSBpbnZhbGlkQW1vdW50cy5jb25j
YXQoWwotICAiLTEiLAotICAiLTEuMCIsCi0gICItMS4wMCIsCi0gICItMTAwMC4wMDAiLAotICAt
MTAsCi1dKTsKLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgZm9yIChjb25zdCBpbnZh
bGlkQW1vdW50IG9mIGludmFsaWRUb3RhbEFtb3VudHMpIHsKLSAgICBjb25zdCBpbnZhbGlkRGV0
YWlscyA9IHsKLSAgICAgIHRvdGFsOiB7Ci0gICAgICAgIGxhYmVsOiAiIiwKLSAgICAgICAgYW1v
dW50OiB7Ci0gICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAgICAgIHZhbHVlOiBpbnZh
bGlkQW1vdW50LAotICAgICAgICB9LAotICAgICAgfSwKLSAgICB9OwotICAgIGFzc2VydF90aHJv
d3MoCi0gICAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQ
YXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgaW52YWxpZERldGFpbHMpOwotICAgICAgfSwK
LSAgICAgIGBFeHBlY3QgVHlwZUVycm9yIHdoZW4gZGV0YWlscy50b3RhbC5hbW91bnQudmFsdWUg
aXMgJHtpbnZhbGlkQW1vdW50fWAKLSAgICApOwotICB9Ci19LCBgSWYgZGV0YWlscy50b3RhbC5h
bW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0
aHJvdyBhIFR5cGVFcnJvcmApOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGZv
ciAoY29uc3QgcHJvcCBpbiBbImRpc3BsYXlJdGVtcyIsICJzaGlwcGluZ09wdGlvbnMiLCAibW9k
aWZpZXJzIl0pIHsKLSAgICB0cnkgewotICAgICAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3Np
Z24oe30sIGRlZmF1bHREZXRhaWxzLCB7IFtwcm9wXTogW10gfSk7Ci0gICAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgYXNzZXJ0X3VucmVhY2hl
ZChgUGF5bWVudERldGFpbHNCYXNlLiR7cHJvcH0gY2FuIGJlIHplcm8gbGVuZ3RoYCk7Ci0gICAg
fSBjYXRjaCAoZXJyKSB7fQotICB9Ci19LCBgUGF5bWVudERldGFpbHNCYXNlIG1lbWJlcnMgY2Fu
IGJlIDAgbGVuZ3RoYCk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIHsKLSAgICAgIHRvdGFsOiB7Ci0gICAgICAgIGxhYmVsOiAiIiwKLSAg
ICAgICAgYW1vdW50OiB7Ci0gICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAgICAgIHZh
bHVlOiAiLTEuMDAiLAotICAgICAgICB9LAotICAgICAgfSwKLSAgICB9KTsKLSAgfSk7Ci19LCAi
SWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBkZXRhaWxzLnRvdGFsLmFtb3VudC52YWx1ZSBpcyBV
KzAwMkQgSFlQSEVOLU1JTlVTLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIik7Ci0KLXRlc3QoKCkg
PT4gewotICBzbW9rZVRlc3QoKTsKLSAgZm9yIChjb25zdCBpbnZhbGlkQW1vdW50IG9mIGludmFs
aWRBbW91bnRzKSB7Ci0gICAgY29uc3QgaW52YWxpZERldGFpbHMgPSB7Ci0gICAgICB0b3RhbDog
ZGVmYXVsdEFtb3VudCwKLSAgICAgIGRpc3BsYXlJdGVtczogWwotICAgICAgICB7Ci0gICAgICAg
ICAgbGFiZWw6ICIiLAotICAgICAgICAgIGFtb3VudDogewotICAgICAgICAgICAgY3VycmVuY3k6
ICJVU0QiLAotICAgICAgICAgICAgdmFsdWU6IGludmFsaWRBbW91bnQsCi0gICAgICAgICAgfSwK
LSAgICAgICAgfSwKLSAgICAgIF0sCi0gICAgfTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAg
bmV3IFR5cGVFcnJvcigpLAotICAgICAgKCkgPT4gewotICAgICAgICBuZXcgUGF5bWVudFJlcXVl
c3QoZGVmYXVsdE1ldGhvZHMsIGludmFsaWREZXRhaWxzKTsKLSAgICAgIH0sCi0gICAgICBgRXhw
ZWN0ZWQgVHlwZUVycm9yIHdoZW4gaXRlbS5hbW91bnQudmFsdWUgaXMgIiR7aW52YWxpZEFtb3Vu
dH0iYAotICAgICk7Ci0gIH0KLX0sIGBGb3IgZWFjaCBpdGVtIGluIGRldGFpbHMuZGlzcGxheUl0
ZW1zOiBpZiBpdGVtLmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5
IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yYCk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9r
ZVRlc3QoKTsKLSAgdHJ5IHsKLSAgICBuZXcgUGF5bWVudFJlcXVlc3QoCi0gICAgICBbCi0gICAg
ICAgIHsKLSAgICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpL3BheW1l
bnQtcmVxdWVzdCIsCi0gICAgICAgIH0sCi0gICAgICBdLAotICAgICAgewotICAgICAgICB0b3Rh
bDogZGVmYXVsdFRvdGFsLAotICAgICAgICBkaXNwbGF5SXRlbXM6IFsKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICBsYWJlbDogIiIsCi0gICAgICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICAg
ICAgY3VycmVuY3k6ICJVU0QiLAotICAgICAgICAgICAgICB2YWx1ZTogIi0xMDAwIiwKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBsYWJlbDog
IiIsCi0gICAgICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICAgICAgY3VycmVuY3k6ICJBVUQi
LAotICAgICAgICAgICAgICB2YWx1ZTogIi0yMDAwLjAwIiwKLSAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgfSwKLSAgICAgICAgXSwKLSAgICAgIH0KLSAgICApOwotICB9IGNhdGNoIChlcnIpIHsK
LSAgICBhc3NlcnRfdW5yZWFjaGVkKAotICAgICAgYHNob3VsZG4ndCB0aHJvdyB3aGVuIGdpdmVu
IGEgbmVnYXRpdmUgdmFsdWU6ICR7ZXJyLm1lc3NhZ2V9YAotICAgICk7Ci0gIH0KLX0sICJOZWdh
dGl2ZSB2YWx1ZXMgYXJlIGFsbG93ZWQgZm9yIGRpc3BsYXlJdGVtcy5hbW91bnQudmFsdWUsIGly
cmVzcGVjdGl2ZSBvZiB0b3RhbCBhbW91bnQiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVz
dCgpOwotICBjb25zdCBsYXJnZU1vbmV5ID0gIjEiLnJlcGVhdCg1MTApOwotICB0cnkgewotICAg
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgewotICAgICAgdG90YWw6IHsKLSAg
ICAgICAgbGFiZWw6ICIiLAotICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICBjdXJyZW5jeTog
IlVTRCIsCi0gICAgICAgICAgdmFsdWU6IGAke2xhcmdlTW9uZXl9LiR7bGFyZ2VNb25leX1gLAot
ICAgICAgICB9LAotICAgICAgfSwKLSAgICAgIGRpc3BsYXlJdGVtczogWwotICAgICAgICB7Ci0g
ICAgICAgICAgbGFiZWw6ICIiLAotICAgICAgICAgIGFtb3VudDogewotICAgICAgICAgICAgY3Vy
cmVuY3k6ICJVU0QiLAotICAgICAgICAgICAgdmFsdWU6IGAtJHtsYXJnZU1vbmV5fWAsCi0gICAg
ICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIGxhYmVsOiAiIiwKLSAg
ICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICAgIGN1cnJlbmN5OiAiQVVEIiwKLSAgICAgICAg
ICAgIHZhbHVlOiBgLSR7bGFyZ2VNb25leX0uJHtsYXJnZU1vbmV5fWAsCi0gICAgICAgICAgfSwK
LSAgICAgICAgfSwKLSAgICAgIF0sCi0gICAgfSk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFz
c2VydF91bnJlYWNoZWQoCi0gICAgICBgc2hvdWxkbid0IHRocm93IHdoZW4gZ2l2ZW4gYWJzdXJk
IG1vbmV0YXJ5IHZhbHVlczogJHtlcnIubWVzc2FnZX1gCi0gICAgKTsKLSAgfQotfSwgIml0IGhh
bmRsZXMgaGlnaCBwcmVjaXNpb24gY3VycmVuY3kgdmFsdWVzIHdpdGhvdXQgdGhyb3dpbmciKTsK
LQotLy8gUHJvY2VzcyBzaGlwcGluZyBvcHRpb25zOgotCi1jb25zdCBkZWZhdWx0U2hpcHBpbmdP
cHRpb24gPSBPYmplY3QuZnJlZXplKHsKLSAgaWQ6ICJkZWZhdWx0IiwKLSAgbGFiZWw6ICIiLAot
ICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCi0gIHNlbGVjdGVkOiBmYWxzZSwKLX0pOwotY29uc3Qg
ZGVmYXVsdFNoaXBwaW5nT3B0aW9ucyA9IE9iamVjdC5mcmVlemUoWwotICBPYmplY3QuYXNzaWdu
KHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pLAotXSk7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9r
ZVRlc3QoKTsKLSAgZm9yIChjb25zdCBhbW91bnQgb2YgaW52YWxpZEFtb3VudHMpIHsKLSAgICBj
b25zdCBpbnZhbGlkQW1vdW50ID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdEFtb3VudCwgewot
ICAgICAgdmFsdWU6IGFtb3VudCwKLSAgICB9KTsKLSAgICBjb25zdCBpbnZhbGlkU2hpcHBpbmdP
cHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICAg
IGFtb3VudDogaW52YWxpZEFtb3VudCwKLSAgICB9KTsKLSAgICBjb25zdCBkZXRhaWxzID0gT2Jq
ZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsKLSAgICAgIHNoaXBwaW5nT3B0aW9uczog
W2ludmFsaWRTaGlwcGluZ09wdGlvbl0sCi0gICAgfSk7Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAg
ICAgIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9
KTsKLSAgICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgVHlwZUVycm9yIGZvciBvcHRpb24uYW1vdW50
LnZhbHVlOiAiJHthbW91bnR9ImAKLSAgICApOwotICB9Ci19LCBgRm9yIGVhY2ggb3B0aW9uIGlu
IGRldGFpbHMuc2hpcHBpbmdPcHRpb25zOiBpZiBvcHRpb24uYW1vdW50LnZhbHVlIGlzIG5vdCBh
IHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkgdmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3JgKTsK
LQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgpOwotICBjb25zdCBzaGlwcGluZ09wdGlvbnMg
PSBbZGVmYXVsdFNoaXBwaW5nT3B0aW9uXTsKLSAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3Np
Z24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKLSAgY29uc3QgcmVx
dWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gIGFz
c2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdC5zaGlwcGluZ09wdGlvbiwKLSAgICBudWxsLAotICAg
ICJzaGlwcGluZ09wdGlvbiBtdXN0IGJlIG51bGwsIGFzIHJlcXVlc3RTaGlwcGluZyBpcyBtaXNz
aW5nIgotICApOwotICAvLyBkZWZhdWx0RGV0YWlscyBsYWNrcyBzaGlwcGluZyBvcHRpb25zCi0g
IGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZh
dWx0RGV0YWlscywgewotICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwKLSAgfSk7Ci0gIGFzc2Vy
dF9lcXVhbHMoCi0gICAgcmVxdWVzdDIuc2hpcHBpbmdPcHRpb24sCi0gICAgbnVsbCwKLSAgICBg
cmVxdWVzdDIuc2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxsYAotICApOwotfSwgIklmIHRoZXJl
IGlzIG5vIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbiwgdGhlbiBQYXltZW50UmVxdWVzdC5zaGlw
cGluZ09wdGlvbiByZW1haW5zIG51bGwiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIHNtb2tlVGVzdCgp
OwotICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlw
cGluZ09wdGlvbiwgewotICAgIHNlbGVjdGVkOiB0cnVlLAotICAgIGlkOiAidGhlLWlkIiwKLSAg
fSk7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtzZWxlY3RlZE9wdGlvbl07Ci0gIGNvbnN0
IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBzaGlwcGluZ09w
dGlvbnMgfSk7Ci0gIGNvbnN0IHJlcXVlc3ROb1NoaXBwaW5nUmVxdWVzdGVkMSA9IG5ldyBQYXlt
ZW50UmVxdWVzdCgKLSAgICBkZWZhdWx0TWV0aG9kcywKLSAgICBkZXRhaWxzCi0gICk7Ci0gIGFz
c2VydF9lcXVhbHMoCi0gICAgcmVxdWVzdE5vU2hpcHBpbmdSZXF1ZXN0ZWQxLnNoaXBwaW5nT3B0
aW9uLAotICAgIG51bGwsCi0gICAgIk11c3QgYmUgbnVsbCB3aGVuIG5vIHNoaXBwaW5nIGlzIHJl
cXVlc3RlZCAoZGVmYXVsdHMgdG8gZmFsc2UpIgotICApOwotICBjb25zdCByZXF1ZXN0Tm9TaGlw
cGluZ1JlcXVlc3RlZDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoCi0gICAgZGVmYXVsdE1ldGhvZHMs
Ci0gICAgZGV0YWlscywKLSAgICB7IHJlcXVlc3RTaGlwcGluZzogZmFsc2UgfQotICApOwotICBh
c3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3ROb1NoaXBwaW5nUmVxdWVzdGVkMi5zaGlwcGluZ09w
dGlvbiwKLSAgICBudWxsLAotICAgICJNdXN0IGJlIG51bGwgd2hlbiByZXF1ZXN0U2hpcHBpbmcg
aXMgZmFsc2UiCi0gICk7Ci0gIGNvbnN0IHJlcXVlc3RXaXRoU2hpcHBpbmcgPSBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsKLSAgICByZXF1ZXN0U2hpcHBpbmc6
ICJ0cnV0aHkgdmFsdWUiLAotICB9KTsKLSAgYXNzZXJ0X2VxdWFscygKLSAgICByZXF1ZXN0V2l0
aFNoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAotICAgICJ0aGUtaWQiLAotICAgICJTZWxlY3RlZCBv
cHRpb24gbXVzdCBiZSAndGhlLWlkJyIKLSAgKTsKLX0sICJJZiB0aGVyZSBpcyBhIHNlbGVjdGVk
IHNoaXBwaW5nIG9wdGlvbiwgYW5kIHJlcXVlc3RTaGlwcGluZyBpcyBzZXQsIHRoZW4gdGhhdCBv
cHRpb24gYmVjb21lcyBzeW5jaHJvbm91c2x5IHNlbGVjdGVkIik7Ci0KLXRlc3QoKCkgPT4gewot
ICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgZmFpbE9wdGlvbjEgPSBPYmplY3QuYXNzaWduKHt9LCBk
ZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICBzZWxlY3RlZDogdHJ1ZSwKLSAgICBpZDogIkZB
SUwxIiwKLSAgfSk7Ci0gIGNvbnN0IGZhaWxPcHRpb24yID0gT2JqZWN0LmFzc2lnbih7fSwgZGVm
YXVsdFNoaXBwaW5nT3B0aW9uLCB7Ci0gICAgc2VsZWN0ZWQ6IGZhbHNlLAotICAgIGlkOiAiRkFJ
TDIiLAotICB9KTsKLSAgY29uc3QgcGFzc09wdGlvbiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1
bHRTaGlwcGluZ09wdGlvbiwgewotICAgIHNlbGVjdGVkOiB0cnVlLAotICAgIGlkOiAidGhlLWlk
IiwKLSAgfSk7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtmYWlsT3B0aW9uMSwgZmFpbE9w
dGlvbjIsIHBhc3NPcHRpb25dOwotICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOwotICBjb25zdCByZXF1ZXN0Tm9T
aGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgewot
ICAgIHJlcXVlc3RTaGlwcGluZzogZmFsc2UsCi0gIH0pOwotICBhc3NlcnRfZXF1YWxzKAotICAg
IHJlcXVlc3ROb1NoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAotICAgIG51bGwsCi0gICAgInNoaXBw
aW5nT3B0aW9uIG11c3QgYmUgbnVsbCwgYXMgcmVxdWVzdFNoaXBwaW5nIGlzIGZhbHNlIgotICAp
OwotICBjb25zdCByZXF1ZXN0V2l0aFNoaXBwaW5nID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZXRhaWxzLCB7Ci0gICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAotICB9KTsK
LSAgYXNzZXJ0X2VxdWFscygKLSAgICByZXF1ZXN0V2l0aFNoaXBwaW5nLnNoaXBwaW5nT3B0aW9u
LAotICAgICJ0aGUtaWQiLAotICAgICJzZWxlY3RlZCBvcHRpb24gbXVzdCAndGhlLWlkIgotICAp
OwotfSwgIklmIHJlcXVlc3RTaGlwcGluZyBpcyBzZXQsIGFuZCBpZiB0aGVyZSBpcyBhIG11bHRp
cGxlIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbnMsIG9ubHkgdGhlIGxhc3QgaXMgc2VsZWN0ZWQu
Iik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3Qgc2VsZWN0ZWRPcHRp
b24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICBzZWxl
Y3RlZDogdHJ1ZSwKLSAgfSk7Ci0gIGNvbnN0IHVuc2VsZWN0ZWRPcHRpb24gPSBPYmplY3QuYXNz
aWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAgICBzZWxlY3RlZDogZmFsc2UsCi0g
IH0pOwotICBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSBbc2VsZWN0ZWRPcHRpb24sIHVuc2VsZWN0
ZWRPcHRpb25dOwotICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERl
dGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOwotICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZyA9
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gIGFzc2VydF9l
cXVhbHMoCi0gICAgcmVxdWVzdE5vU2hpcHBpbmcuc2hpcHBpbmdPcHRpb24sCi0gICAgbnVsbCwK
LSAgICAic2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxsLCBiZWNhdXNlIHJlcXVlc3RTaGlwcGlu
ZyBpcyBmYWxzZSIKLSAgKTsKLSAgYXNzZXJ0X3Rocm93cygKLSAgICBuZXcgVHlwZUVycm9yKCks
Ci0gICAgKCkgPT4gewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBk
ZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKLSAgICB9LAotICAgICJFeHBlY3Rl
ZCB0byB0aHJvdyBhIFR5cGVFcnJvciBiZWNhdXNlIGR1cGxpY2F0ZSBJRHMiCi0gICk7Ci19LCAi
SWYgdGhlcmUgYXJlIGFueSBkdXBsaWNhdGUgc2hpcHBpbmcgb3B0aW9uIGlkcywgYW5kIHNoaXBw
aW5nIGlzIHJlcXVlc3RlZCwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOwotCi10ZXN0KCgpID0+
IHsKLSAgc21va2VUZXN0KCk7Ci0gIGNvbnN0IGR1cFNoaXBwaW5nMSA9IE9iamVjdC5hc3NpZ24o
e30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgewotICAgIHNlbGVjdGVkOiB0cnVlLAotICAgIGlk
OiAiRFVQTElDQVRFIiwKLSAgICBsYWJlbDogIkZhaWwgMSIsCi0gIH0pOwotICBjb25zdCBkdXBT
aGlwcGluZzIgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKLSAg
ICBzZWxlY3RlZDogZmFsc2UsCi0gICAgaWQ6ICJEVVBMSUNBVEUiLAotICAgIGxhYmVsOiAiRmFp
bCAyIiwKLSAgfSk7Ci0gIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtkdXBTaGlwcGluZzEsIGRl
ZmF1bHRTaGlwcGluZ09wdGlvbiwgZHVwU2hpcHBpbmcyXTsKLSAgY29uc3QgZGV0YWlscyA9IE9i
amVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKLSAg
Y29uc3QgcmVxdWVzdE5vU2hpcHBpbmcgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhv
ZHMsIGRldGFpbHMpOwotICBhc3NlcnRfZXF1YWxzKAotICAgIHJlcXVlc3ROb1NoaXBwaW5nLnNo
aXBwaW5nT3B0aW9uLAotICAgIG51bGwsCi0gICAgInNoaXBwaW5nT3B0aW9uIG11c3QgYmUgbnVs
bCwgYmVjYXVzZSByZXF1ZXN0U2hpcHBpbmcgaXMgZmFsc2UiCi0gICk7Ci0gIGFzc2VydF90aHJv
d3MoCi0gICAgbmV3IFR5cGVFcnJvcigpLAotICAgICgpID0+IHsKLSAgICAgIG5ldyBQYXltZW50
UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUg
fSk7Ci0gICAgfSwKLSAgICAiRXhwZWN0ZWQgdG8gdGhyb3cgYSBUeXBlRXJyb3IgYmVjYXVzZSBk
dXBsaWNhdGUgSURzIgotICApOwotfSwgIlRocm93IHdoZW4gdGhlcmUgYXJlIGR1cGxpY2F0ZSBz
aGlwcGluZ09wdGlvbiBpZHMsIGV2ZW4gaWYgb3RoZXIgdmFsdWVzIGFyZSBkaWZmZXJlbnQiKTsK
LQotLy8gUHJvY2VzcyBwYXltZW50IGRldGFpbHMgbW9kaWZpZXJzOgotdGVzdCgoKSA9PiB7Ci0g
IHNtb2tlVGVzdCgpOwotICBmb3IgKGNvbnN0IGludmFsaWRUb3RhbCBvZiBpbnZhbGlkVG90YWxB
bW91bnRzKSB7Ci0gICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0gewotICAgICAgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICAgdG90YWw6
IHsKLSAgICAgICAgbGFiZWw6ICIiLAotICAgICAgICBhbW91bnQ6IHsKLSAgICAgICAgICBjdXJy
ZW5jeTogIlVTRCIsCi0gICAgICAgICAgdmFsdWU6IGludmFsaWRUb3RhbCwKLSAgICAgICAgfSwK
LSAgICAgIH0sCi0gICAgfTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgbmV3IFR5cGVFcnJv
cigpLAotICAgICAgKCkgPT4gewotICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIHsKLSAgICAgICAgICBtb2RpZmllcnM6IFtpbnZhbGlkTW9kaWZpZXJdLAotICAgICAg
ICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICAgIH0pOwotICAgICAgfSwKLSAgICAgIGBF
eHBlY3RlZCBUeXBlRXJyb3IgZm9yIG1vZGlmaWVyLnRvdGFsLmFtb3VudC52YWx1ZTogIiR7aW52
YWxpZFRvdGFsfSJgCi0gICAgKTsKLSAgfQotfSwgYFRocm93IFR5cGVFcnJvciBpZiBtb2RpZmll
ci50b3RhbC5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1
ZWApOwotCi10ZXN0KCgpID0+IHsKLSAgc21va2VUZXN0KCk7Ci0gIGZvciAoY29uc3QgaW52YWxp
ZEFtb3VudCBvZiBpbnZhbGlkQW1vdW50cykgewotICAgIGNvbnN0IGludmFsaWRNb2RpZmllciA9
IHsKLSAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1
ZXN0IiwKLSAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBhZGRpdGlvbmFsRGlzcGxh
eUl0ZW1zOiBbCi0gICAgICAgIHsKLSAgICAgICAgICBsYWJlbDogIiIsCi0gICAgICAgICAgYW1v
dW50OiB7Ci0gICAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCi0gICAgICAgICAgICB2YWx1ZTog
aW52YWxpZEFtb3VudCwKLSAgICAgICAgICB9LAotICAgICAgICB9LAotICAgICAgXSwKLSAgICB9
OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgICAoKSA9
PiB7Ci0gICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgewotICAgICAg
ICAgIG1vZGlmaWVyczogW2ludmFsaWRNb2RpZmllcl0sCi0gICAgICAgICAgdG90YWw6IGRlZmF1
bHRUb3RhbCwKLSAgICAgICAgfSk7Ci0gICAgICB9LAotICAgICAgYEV4cGVjdGVkIFR5cGVFcnJv
ciB3aGVuIGdpdmVuIGJvZ3VzIG1vZGlmaWVyLmFkZGl0aW9uYWxEaXNwbGF5SXRlbXMuYW1vdW50
IG9mICIke2ludmFsaWRNb2RpZmllcn0iYAotICAgICk7Ci0gIH0KLX0sIGBJZiBhbW91bnQudmFs
dWUgb2YgYWRkaXRpb25hbERpc3BsYXlJdGVtcyBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG1vbmV0
YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yYCk7Ci0KLXRlc3QoKCkgPT4gewotICBz
bW9rZVRlc3QoKTsKLSAgY29uc3QgbW9kaWZpZWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMsIHsKLSAgICBtb2RpZmllcnM6IFsKLSAgICAgIHsKLSAgICAgICAgc3Vw
cG9ydGVkTWV0aG9kczogImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICAg
ICBkYXRhOiBbInNvbWUtZGF0YSJdLAotICAgICAgfSwKLSAgICBdLAotICB9KTsKLSAgdHJ5IHsK
LSAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG1vZGlmaWVkRGV0YWlscyk7
Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICBgVW5leHBl
Y3RlZCBleGNlcHRpb24gdGhyb3duIHdoZW4gZ2l2ZW4gYSBsaXN0OiAke2Vyci5tZXNzYWdlfWAK
LSAgICApOwotICB9Ci19LCAiTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxl
IG9iamVjdCAoYW4gQXJyYXkgaW4gdGhpcyBjYXNlKSIpOwotCi10ZXN0KCgpID0+IHsKLSAgc21v
a2VUZXN0KCk7Ci0gIGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRl
ZmF1bHREZXRhaWxzLCB7Ci0gICAgbW9kaWZpZXJzOiBbCi0gICAgICB7Ci0gICAgICAgIHN1cHBv
cnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwKLSAgICAgICAg
ZGF0YTogewotICAgICAgICAgIHNvbWU6ICJkYXRhIiwKLSAgICAgICAgfSwKLSAgICAgIH0sCi0g
ICAgXSwKLSAgfSk7Ci0gIHRyeSB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBtb2RpZmllZERldGFpbHMpOwotICB9IGNhdGNoIChlcnIpIHsKLSAgICBhc3NlcnRfdW5y
ZWFjaGVkKAotICAgICAgYHNob3VsZG4ndCB0aHJvdyB3aGVuIGdpdmVuIGFuIG9iamVjdCB2YWx1
ZTogJHtlcnIubWVzc2FnZX1gCi0gICAgKTsKLSAgfQotfSwgIk1vZGlmaWVyIGRhdGEgbXVzdCBi
ZSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3QgKGFuIE9iamVjdCBpbiB0aGlzIGNhc2UpIik7Ci0K
LXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgY29uc3QgcmVjdXJzaXZlRGljdGlvbmFy
eSA9IHt9OwotICByZWN1cnNpdmVEaWN0aW9uYXJ5LmZvbyA9IHJlY3Vyc2l2ZURpY3Rpb25hcnk7
Ci0gIGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRh
aWxzLCB7Ci0gICAgbW9kaWZpZXJzOiBbCi0gICAgICB7Ci0gICAgICAgIHN1cHBvcnRlZE1ldGhv
ZHM6ICJodHRwczovL3dwdC5meWkvcGF5bWVudC1yZXF1ZXN0IiwKLSAgICAgICAgZGF0YTogcmVj
dXJzaXZlRGljdGlvbmFyeSwKLSAgICAgIH0sCi0gICAgXSwKLSAgfSk7Ci0gIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBtb2RpZmllZERldGFpbHMpOwotICB9KTsKLX0sICJSZXRocm93IGFueSBleGNl
cHRpb25zIG9mIEpTT04tc2VyaWFsaXppbmcgbW9kaWZpZXIuZGF0YSIpOwotCi0vL1NldHRpbmcg
U2hpcHBpbmdUeXBlIGF0dHJpYnV0ZSBkdXJpbmcgY29uc3RydWN0aW9uCi10ZXN0KCgpID0+IHsK
LSAgc21va2VUZXN0KCk7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7
Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywg
ewotICAgICAgc2hpcHBpbmdUeXBlOiAiaW52YWxpZCIsCi0gICAgfSk7Ci0gIH0pOwotfSwgIlNo
aXBwaW5nIHR5cGUgc2hvdWxkIGJlIHZhbGlkIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRl
c3QoKTsKLSAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGVmYXVsdERldGFpbHMsIHt9KTsKLSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LnNoaXBwaW5n
QWRkcmVzcywgbnVsbCwgIm11c3QgYmUgbnVsbCIpOwotfSwgIlBheW1lbnRSZXF1ZXN0LnNoaXBw
aW5nQWRkcmVzcyBtdXN0IGluaXRpYWxseSBiZSBudWxsIik7Ci0KLXRlc3QoKCkgPT4gewotICBz
bW9rZVRlc3QoKTsKLSAgY29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7fSk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVzdDEu
c2hpcHBpbmdUeXBlLCBudWxsLCAibXVzdCBiZSBudWxsIik7Ci0gIGNvbnN0IHJlcXVlc3QyID0g
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgewotICAg
IHJlcXVlc3RTaGlwcGluZzogZmFsc2UsCi0gIH0pOwotICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qy
LnNoaXBwaW5nVHlwZSwgbnVsbCwgIm11c3QgYmUgbnVsbCIpOwotfSwgIklmIG9wdGlvbnMucmVx
dWVzdFNoaXBwaW5nIGlzIG5vdCBzZXQsIHRoZW4gcmVxdWVzdC5zaGlwcGluZ1R5cGUgYXR0cmli
dXRlIGlzIG51bGwuIik7Ci0KLXRlc3QoKCkgPT4gewotICBzbW9rZVRlc3QoKTsKLSAgLy8gb3B0
aW9uLnNoaXBwaW5nVHlwZSBkZWZhdWx0cyB0byAnc2hpcHBpbmcnCi0gIGNvbnN0IHJlcXVlc3Qx
ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgewot
ICAgIHJlcXVlc3RTaGlwcGluZzogdHJ1ZSwKLSAgfSk7Ci0gIGFzc2VydF9lcXVhbHMocmVxdWVz
dDEuc2hpcHBpbmdUeXBlLCAic2hpcHBpbmciLCAibXVzdCBiZSBzaGlwcGluZyIpOwotICBjb25z
dCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERl
dGFpbHMsIHsKLSAgICByZXF1ZXN0U2hpcHBpbmc6IHRydWUsCi0gICAgc2hpcHBpbmdUeXBlOiAi
ZGVsaXZlcnkiLAotICB9KTsKLSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0Mi5zaGlwcGluZ1R5cGUs
ICJkZWxpdmVyeSIsICJtdXN0IGJlIGRlbGl2ZXJ5Iik7Ci19LCAiSWYgb3B0aW9ucy5yZXF1ZXN0
U2hpcHBpbmcgaXMgdHJ1ZSwgcmVxdWVzdC5zaGlwcGluZ1R5cGUgd2lsbCBiZSBvcHRpb25zLnNo
aXBwaW5nVHlwZS4iKTsKLQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtY29uc3RydWN0b3IuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jb25zdHJ1Y3Rvci5odHRwcy5zdWItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzYzBhYTI0
NmY0YmM5NzY5ZDE2ZGU4NWZkZTM4ZDJlMGI1OTFmODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMyIEBACisKK1BBU1MgSWYgZGV0YWlscy5pZCBpcyBtaXNzaW5nLCBhc3NpZ24gYW4gaWRl
bnRpZmllciAKK1BBU1MgSWYgZGV0YWlscy5pZCBpcyBtaXNzaW5nLCBhc3NpZ24gYSB1bmlxdWUg
aWRlbnRpZmllciAKK1BBU1MgSWYgdGhlIHNhbWUgaWQgaXMgcHJvdmlkZWQsIHRoZW4gdXNlIGl0
IAorUEFTUyBVc2UgaWRzIGV2ZW4gaWYgdGhleSBhcmUgc3RyYW5nZSAKK1BBU1MgVXNlIHByb3Zp
ZGVkIHJlcXVlc3QgSUQgCitQQVNTIElmIHRoZSBsZW5ndGggb2YgdGhlIG1ldGhvZERhdGEgc2Vx
dWVuY2UgaXMgemVybywgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK0ZBSUwgSWYgcGF5bWVudCBt
ZXRob2QgaXMgZHVwbGljYXRlLCB0aGVuIHRocm93IGEgUmFuZ2VFcnJvciBhc3NlcnRfdGhyb3dz
X2pzOiBmdW5jdGlvbiAiKCkgPT4gbmV3IFBheW1lbnRSZXF1ZXN0KGR1cGxpY2F0ZU1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKSIgZGlkIG5vdCB0aHJvdworUEFTUyBNb2RpZmllciBtZXRob2QgZGF0
YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAKK1BBU1MgUmV0aHJvdyBhbnkgZXhj
ZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6aW5nIHBheW1lbnRNZXRob2QuZGF0YSBpbnRvIGEgc3Ry
aW5nIAorUEFTUyBJZiBkZXRhaWxzLnRvdGFsLmFtb3VudC52YWx1ZSBpcyBub3QgYSB2YWxpZCBk
ZWNpbWFsIG1vbmV0YXJ5IHZhbHVlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIAorUEFTUyBQYXlt
ZW50RGV0YWlsc0Jhc2UgbWVtYmVycyBjYW4gYmUgMCBsZW5ndGggCitQQVNTIElmIHRoZSBmaXJz
dCBjaGFyYWN0ZXIgb2YgZGV0YWlscy50b3RhbC5hbW91bnQudmFsdWUgaXMgVSswMDJEIEhZUEhF
Ti1NSU5VUywgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgRm9yIGVhY2ggaXRlbSBpbiBk
ZXRhaWxzLmRpc3BsYXlJdGVtczogaWYgaXRlbS5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQg
ZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgTmVn
YXRpdmUgdmFsdWVzIGFyZSBhbGxvd2VkIGZvciBkaXNwbGF5SXRlbXMuYW1vdW50LnZhbHVlLCBp
cnJlc3BlY3RpdmUgb2YgdG90YWwgYW1vdW50IAorUEFTUyBpdCBoYW5kbGVzIGhpZ2ggcHJlY2lz
aW9uIGN1cnJlbmN5IHZhbHVlcyB3aXRob3V0IHRocm93aW5nIAorUEFTUyBGb3IgZWFjaCBvcHRp
b24gaW4gZGV0YWlscy5zaGlwcGluZ09wdGlvbnM6IGlmIG9wdGlvbi5hbW91bnQudmFsdWUgaXMg
bm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJv
ciAKK1BBU1MgSWYgdGhlcmUgaXMgbm8gc2VsZWN0ZWQgc2hpcHBpbmcgb3B0aW9uLCB0aGVuIFBh
eW1lbnRSZXF1ZXN0LnNoaXBwaW5nT3B0aW9uIHJlbWFpbnMgbnVsbCAKK1BBU1MgSWYgdGhlcmUg
aXMgYSBzZWxlY3RlZCBzaGlwcGluZyBvcHRpb24sIGFuZCByZXF1ZXN0U2hpcHBpbmcgaXMgc2V0
LCB0aGVuIHRoYXQgb3B0aW9uIGJlY29tZXMgc3luY2hyb25vdXNseSBzZWxlY3RlZCAKK1BBU1Mg
SWYgcmVxdWVzdFNoaXBwaW5nIGlzIHNldCwgYW5kIGlmIHRoZXJlIGlzIGEgbXVsdGlwbGUgc2Vs
ZWN0ZWQgc2hpcHBpbmcgb3B0aW9ucywgb25seSB0aGUgbGFzdCBpcyBzZWxlY3RlZC4gCitQQVNT
IElmIHRoZXJlIGFyZSBhbnkgZHVwbGljYXRlIHNoaXBwaW5nIG9wdGlvbiBpZHMsIGFuZCBzaGlw
cGluZyBpcyByZXF1ZXN0ZWQsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgCitQQVNTIFRocm93IHdo
ZW4gdGhlcmUgYXJlIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbiBpZHMsIGV2ZW4gaWYgb3RoZXIg
dmFsdWVzIGFyZSBkaWZmZXJlbnQgCitQQVNTIFRocm93IFR5cGVFcnJvciBpZiBtb2RpZmllci50
b3RhbC5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSAK
K1BBU1MgSWYgYW1vdW50LnZhbHVlIG9mIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXMgaXMgbm90IGEg
dmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciAKK1BB
U1MgTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAoYW4gQXJy
YXkgaW4gdGhpcyBjYXNlKSAKK1BBU1MgTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFs
aXphYmxlIG9iamVjdCAoYW4gT2JqZWN0IGluIHRoaXMgY2FzZSkgCitQQVNTIFJldGhyb3cgYW55
IGV4Y2VwdGlvbnMgb2YgSlNPTi1zZXJpYWxpemluZyBtb2RpZmllci5kYXRhIAorUEFTUyBTaGlw
cGluZyB0eXBlIHNob3VsZCBiZSB2YWxpZCAKK1BBU1MgUGF5bWVudFJlcXVlc3Quc2hpcHBpbmdB
ZGRyZXNzIG11c3QgaW5pdGlhbGx5IGJlIG51bGwgCitQQVNTIElmIG9wdGlvbnMucmVxdWVzdFNo
aXBwaW5nIGlzIG5vdCBzZXQsIHRoZW4gcmVxdWVzdC5zaGlwcGluZ1R5cGUgYXR0cmlidXRlIGlz
IG51bGwuIAorUEFTUyBJZiBvcHRpb25zLnJlcXVlc3RTaGlwcGluZyBpcyB0cnVlLCByZXF1ZXN0
LnNoaXBwaW5nVHlwZSB3aWxsIGJlIG9wdGlvbnMuc2hpcHBpbmdUeXBlLiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBzLnN1Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMGFk
MDY0NTRmOTMzMGJhNDExNWJmZjI5OTA2NDdiNDdhZGJkMmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3IuaHR0cHMuc3ViLmh0bWwKQEAgLTAsMCArMSw2
OTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBDaHJvbWl1bSBh
dXRob3JzIGFuZCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAoTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRVJDSU0sIEtlaW8gVW5pdmVyc2l0eSwgQmVpaGFuZykuIC0t
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3QgZm9yIFBheW1lbnRSZXF1ZXN0
IENvbnN0cnVjdG9yPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0
cmljdCI7Citjb25zdCB0ZXN0TWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBvcnRlZE1l
dGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3Qi
LAorfSk7Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3Rlc3RNZXRob2Rd
KTsKK2NvbnN0IGRlZmF1bHRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKKyAgY3VycmVuY3k6ICJV
U0QiLAorICB2YWx1ZTogIjEuMCIsCit9KTsKK2NvbnN0IGRlZmF1bHROdW1iZXJBbW91bnQgPSBP
YmplY3QuZnJlZXplKHsKKyAgY3VycmVuY3k6ICJVU0QiLAorICB2YWx1ZTogMS4wLAorfSk7Citj
b25zdCBkZWZhdWx0VG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAgbGFiZWw6ICJEZWZhdWx0IFRv
dGFsIiwKKyAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAorfSk7Citjb25zdCBkZWZhdWx0TnVtYmVy
VG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAgbGFiZWw6ICJEZWZhdWx0IE51bWJlciBUb3RhbCIs
CisgIGFtb3VudDogZGVmYXVsdE51bWJlckFtb3VudCwKK30pOworY29uc3QgZGVmYXVsdERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKKyAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgZGlzcGxheUl0
ZW1zOiBbCisgICAgeworICAgICAgbGFiZWw6ICJEZWZhdWx0IERpc3BsYXkgSXRlbSIsCisgICAg
ICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCisgICAgfSwKKyAgXSwKK30pOworY29uc3QgZGVmYXVs
dE51bWJlckRldGFpbHMgPSBPYmplY3QuZnJlZXplKHsKKyAgdG90YWw6IGRlZmF1bHROdW1iZXJU
b3RhbCwKKyAgZGlzcGxheUl0ZW1zOiBbCisgICAgeworICAgICAgbGFiZWw6ICJEZWZhdWx0IERp
c3BsYXkgSXRlbSIsCisgICAgICBhbW91bnQ6IGRlZmF1bHROdW1iZXJBbW91bnQsCisgICAgfSwK
KyAgXSwKK30pOworCisvLyBBdm9pZCBmYWxzZSBwb3NpdGl2ZXMsIHRoaXMgc2hvdWxkIGFsd2F5
cyBwYXNzCitmdW5jdGlvbiBzbW9rZVRlc3QoKSB7CisgIG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRlZmF1bHROdW1iZXJEZXRhaWxzKTsKK30KK3Rlc3QoKCkgPT4geworICBzbW9r
ZVRlc3QoKTsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgZGVmYXVsdERldGFpbHMpOworICBhc3NlcnRfdHJ1ZShCb29sZWFuKHJlcXVlc3QuaWQp
LCAibXVzdCBiZSBzb21lIHRydXRoeSB2YWx1ZSIpOworfSwgIklmIGRldGFpbHMuaWQgaXMgbWlz
c2luZywgYXNzaWduIGFuIGlkZW50aWZpZXIiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVz
dCgpOworICBjb25zdCByZXF1ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBhc3NlcnRfbm90X2VxdWFscyhy
ZXF1ZXN0MS5pZCwgcmVxdWVzdDIuaWQsICJVQSBnZW5lcmF0ZWQgSUQgbXVzdCBiZSB1bmlxdWUi
KTsKKyAgY29uc3Qgc2VlbiA9IG5ldyBTZXQoKTsKKyAgLy8gTGV0J3MgdHJ5IGNyZWF0aW5nIGxv
dHMgb2YgcmVxdWVzdHMsIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgYWxsIHVuaXF1ZQorICBmb3Ig
KGxldCBpID0gMDsgaSA8IDEwMjQ7IGkrKykgeworICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgICBhc3NlcnRf
ZmFsc2UoCisgICAgICBzZWVuLmhhcyhyZXF1ZXN0LmlkKSwKKyAgICAgIGBVQSBnZW5lcmF0ZWQg
SUQgbXVzdCBiZSB1bmlxdWUsIGJ1dCBnb3QgZHVwbGljYXRlISAoJHtyZXF1ZXN0LmlkfSlgCisg
ICAgKTsKKyAgICBzZWVuLmFkZChyZXF1ZXN0LmlkKTsKKyAgfQorfSwgIklmIGRldGFpbHMuaWQg
aXMgbWlzc2luZywgYXNzaWduIGEgdW5pcXVlIGlkZW50aWZpZXIiKTsKKwordGVzdCgoKSA9PiB7
CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBuZXdEZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwg
ZGVmYXVsdERldGFpbHMsIHsgaWQ6ICJ0ZXN0MTIzIiB9KTsKKyAgY29uc3QgcmVxdWVzdDEgPSBu
ZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG5ld0RldGFpbHMpOworICBjb25zdCBy
ZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbmV3RGV0YWlscyk7
CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdDEuaWQsIG5ld0RldGFpbHMuaWQsIGBpZCBtdXN0IGJl
ICR7bmV3RGV0YWlscy5pZH1gKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0Mi5pZCwgbmV3RGV0
YWlscy5pZCwgYGlkIG11c3QgYmUgJHtuZXdEZXRhaWxzLmlkfWApOworICBhc3NlcnRfZXF1YWxz
KHJlcXVlc3QxLmlkLCByZXF1ZXN0Mi5pZCwgImlkcyBuZWVkIHRvIGJlIHRoZSBzYW1lIik7Cit9
LCAiSWYgdGhlIHNhbWUgaWQgaXMgcHJvdmlkZWQsIHRoZW4gdXNlIGl0Iik7CisKK3Rlc3QoKCkg
PT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgbmV3RGV0YWlscyA9IE9iamVjdC5hc3NpZ24o
e30sIGRlZmF1bHREZXRhaWxzLCB7CisgICAgaWQ6ICIiLnBhZFN0YXJ0KDEwMjQsICJhIiksCisg
IH0pOworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBuZXdEZXRhaWxzKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0LmlkLAorICAgIG5l
d0RldGFpbHMuaWQsCisgICAgYGlkIG11c3QgYmUgcHJvdmlkZWQgdmFsdWUsIGV2ZW4gaWYgdmVy
eSBsb25nIGFuZCBjb250YWluIHNwYWNlc2AKKyAgKTsKK30sICJVc2UgaWRzIGV2ZW4gaWYgdGhl
eSBhcmUgc3RyYW5nZSIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoCisgICAgZGVmYXVsdE1ldGhvZHMsCisgICAg
T2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgaWQ6ICJmb28iIH0pCisgICk7Cisg
IGFzc2VydF9lcXVhbHMocmVxdWVzdC5pZCwgImZvbyIpOworfSwgIlVzZSBwcm92aWRlZCByZXF1
ZXN0IElEIik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsICgpID0+IG5ldyBQYXltZW50UmVxdWVzdChbXSwgZGVmYXVsdERldGFp
bHMpKTsKK30sICJJZiB0aGUgbGVuZ3RoIG9mIHRoZSBtZXRob2REYXRhIHNlcXVlbmNlIGlzIHpl
cm8sIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVz
dCgpOworICBjb25zdCBkdXBsaWNhdGVNZXRob2RzID0gWworICAgIHsKKyAgICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVl
c3QiLAorICAgIH0sCisgICAgeworICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tk
b21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAgfSwKKyAgXTsKKyAg
YXNzZXJ0X3Rocm93c19qcyhSYW5nZUVycm9yLCAoKSA9PiBuZXcgUGF5bWVudFJlcXVlc3QoZHVw
bGljYXRlTWV0aG9kcywgZGVmYXVsdERldGFpbHMpKTsKK30sICJJZiBwYXltZW50IG1ldGhvZCBp
cyBkdXBsaWNhdGUsIHRoZW4gdGhyb3cgYSBSYW5nZUVycm9yIik7CisKK3Rlc3QoKCkgPT4gewor
ICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgSlNPTlNlcmlhbGl6YWJsZXMgPSBbW10sIHsgb2JqZWN0
OiB7fSB9XTsKKyAgZm9yIChjb25zdCBkYXRhIG9mIEpTT05TZXJpYWxpemFibGVzKSB7CisgICAg
dHJ5IHsKKyAgICAgIGNvbnN0IG1ldGhvZHMgPSBbCisgICAgICAgIHsKKyAgICAgICAgICBzdXBw
b3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1y
ZXF1ZXN0IiwKKyAgICAgICAgICBkYXRhLAorICAgICAgICB9LAorICAgICAgXTsKKyAgICAgIG5l
dyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgICAgfSBjYXRjaCAo
ZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBlY3RlZCBlcnJv
ciBwYXJzaW5nIHN0cmluZ2lmaWFibGUgSlNPTjogJHtKU09OLnN0cmluZ2lmeSgKKyAgICAgICAg
ICBkYXRhCisgICAgICAgICl9OiAke2Vyci5tZXNzYWdlfWAKKyAgICAgICk7CisgICAgfQorICB9
Cit9LCAiTW9kaWZpZXIgbWV0aG9kIGRhdGEgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZSBvYmpl
Y3QiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCByZWN1cnNpdmVE
aWN0aW9uYXJ5ID0ge307CisgIHJlY3Vyc2l2ZURpY3Rpb25hcnkuZm9vID0gcmVjdXJzaXZlRGlj
dGlvbmFyeTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKKyAgICBjb25z
dCBtZXRob2RzID0gWworICAgICAgeworICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6
Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAgICAgZGF0
YTogcmVjdXJzaXZlRGljdGlvbmFyeSwKKyAgICAgIH0sCisgICAgXTsKKyAgICBuZXcgUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICB9KTsKKyAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsICgpID0+IHsKKyAgICBjb25zdCBtZXRob2RzID0gWworICAgICAgewor
ICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRd
fX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAgICAgZGF0YTogImEgc3RyaW5nIiwKKyAgICAgIH0s
CisgICAgXTsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMp
OworICB9KTsKKyAgYXNzZXJ0X3Rocm93c19qcygKKyAgICBUeXBlRXJyb3IsCisgICAgKCkgPT4g
eworICAgICAgY29uc3QgbWV0aG9kcyA9IFsKKyAgICAgICAgeworICAgICAgICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVl
c3QiLAorICAgICAgICAgIGRhdGE6IG51bGwsCisgICAgICAgIH0sCisgICAgICBdOworICAgICAg
bmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgICB9LAorICAg
ICJFdmVuIHRob3VnaCBudWxsIGlzIEpTT04tc2VyaWFsaXphYmxlLCBpdCdzIG5vdCB0eXBlICdP
YmplY3QnIHBlciBFUyBzcGVjIgorICApOworfSwgIlJldGhyb3cgYW55IGV4Y2VwdGlvbnMgb2Yg
SlNPTi1zZXJpYWxpemluZyBwYXltZW50TWV0aG9kLmRhdGEgaW50byBhIHN0cmluZyIpOworCisv
LyBwcm9jZXNzIHRvdGFsCitjb25zdCBpbnZhbGlkQW1vdW50cyA9IFsKKyAgIi0iLAorICAibm90
ZGlnaXRzIiwKKyAgIkFMU09OT1RESUdJVFMiLAorICAiMTAuIiwKKyAgIi45OSIsCisgICItMTAu
IiwKKyAgIi0uOTkiLAorICAiMTAtIiwKKyAgIjEtMCIsCisgICIxLjAuMCIsCisgICIxLzMiLAor
ICAiIiwKKyAgbnVsbCwKKyAgIiAxLjAgICIsCisgICIgMS4wICIsCisgICIxLjAgIiwKKyAgIlVT
RCQxLjAiLAorICAiJDEuMCIsCisgIHsKKyAgICB0b1N0cmluZygpIHsKKyAgICAgIHJldHVybiAi
IDEuMCI7CisgICAgfSwKKyAgfSwKK107Citjb25zdCBpbnZhbGlkVG90YWxBbW91bnRzID0gaW52
YWxpZEFtb3VudHMuY29uY2F0KFsKKyAgIi0xIiwKKyAgIi0xLjAiLAorICAiLTEuMDAiLAorICAi
LTEwMDAuMDAwIiwKKyAgLTEwLAorXSk7Cit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7Cisg
IGZvciAoY29uc3QgaW52YWxpZEFtb3VudCBvZiBpbnZhbGlkVG90YWxBbW91bnRzKSB7CisgICAg
Y29uc3QgaW52YWxpZERldGFpbHMgPSB7CisgICAgICB0b3RhbDogeworICAgICAgICBsYWJlbDog
IiIsCisgICAgICAgIGFtb3VudDogeworICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAg
ICAgICB2YWx1ZTogaW52YWxpZEFtb3VudCwKKyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgfTsK
KyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgVHlwZUVycm9yLAorICAgICAgKCkgPT4gewor
ICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGludmFsaWREZXRhaWxz
KTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0IFR5cGVFcnJvciB3aGVuIGRldGFpbHMudG90YWwu
YW1vdW50LnZhbHVlIGlzICR7aW52YWxpZEFtb3VudH1gCisgICAgKTsKKyAgfQorfSwgYElmIGRl
dGFpbHMudG90YWwuYW1vdW50LnZhbHVlIGlzIG5vdCBhIHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkg
dmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3JgKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tl
VGVzdCgpOworICBmb3IgKGNvbnN0IHByb3AgaW4gWyJkaXNwbGF5SXRlbXMiLCAic2hpcHBpbmdP
cHRpb25zIiwgIm1vZGlmaWVycyJdKSB7CisgICAgdHJ5IHsKKyAgICAgIGNvbnN0IGRldGFpbHMg
PSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RGV0YWlscywgeyBbcHJvcF06IFtdIH0pOworICAg
ICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGFz
c2VydF91bnJlYWNoZWQoYFBheW1lbnREZXRhaWxzQmFzZS4ke3Byb3B9IGNhbiBiZSB6ZXJvIGxl
bmd0aGApOworICAgIH0gY2F0Y2ggKGVycikge30KKyAgfQorfSwgYFBheW1lbnREZXRhaWxzQmFz
ZSBtZW1iZXJzIGNhbiBiZSAwIGxlbmd0aGApOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0
KCk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiB7CisgICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCB7CisgICAgICB0b3RhbDogeworICAgICAgICBsYWJl
bDogIiIsCisgICAgICAgIGFtb3VudDogeworICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAg
ICAgICAgICB2YWx1ZTogIi0xLjAwIiwKKyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgfSk7Cisg
IH0pOworfSwgIklmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgZGV0YWlscy50b3RhbC5hbW91bnQu
dmFsdWUgaXMgVSswMDJEIEhZUEhFTi1NSU5VUywgdGhlbiB0aHJvdyBhIFR5cGVFcnJvciIpOwor
Cit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGZvciAoY29uc3QgaW52YWxpZEFtb3Vu
dCBvZiBpbnZhbGlkQW1vdW50cykgeworICAgIGNvbnN0IGludmFsaWREZXRhaWxzID0geworICAg
ICAgdG90YWw6IGRlZmF1bHRBbW91bnQsCisgICAgICBkaXNwbGF5SXRlbXM6IFsKKyAgICAgICAg
eworICAgICAgICAgIGxhYmVsOiAiIiwKKyAgICAgICAgICBhbW91bnQ6IHsKKyAgICAgICAgICAg
IGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICAgIHZhbHVlOiBpbnZhbGlkQW1vdW50LAorICAg
ICAgICAgIH0sCisgICAgICAgIH0sCisgICAgICBdLAorICAgIH07CisgICAgYXNzZXJ0X3Rocm93
c19qcygKKyAgICAgIFR5cGVFcnJvciwKKyAgICAgICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBpbnZhbGlkRGV0YWlscyk7CisgICAgICB9LAorICAg
ICAgYEV4cGVjdGVkIFR5cGVFcnJvciB3aGVuIGl0ZW0uYW1vdW50LnZhbHVlIGlzICIke2ludmFs
aWRBbW91bnR9ImAKKyAgICApOworICB9Cit9LCBgRm9yIGVhY2ggaXRlbSBpbiBkZXRhaWxzLmRp
c3BsYXlJdGVtczogaWYgaXRlbS5hbW91bnQudmFsdWUgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBt
b25ldGFyeSB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvcmApOworCit0ZXN0KCgpID0+IHsK
KyAgc21va2VUZXN0KCk7CisgIHRyeSB7CisgICAgbmV3IFBheW1lbnRSZXF1ZXN0KAorICAgICAg
WworICAgICAgICB7CisgICAgICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21h
aW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAgICAgIH0sCisgICAgICBd
LAorICAgICAgeworICAgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgICBkaXNwbGF5
SXRlbXM6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogIiIsCisgICAgICAgICAg
ICBhbW91bnQ6IHsKKyAgICAgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgICAgICAg
ICB2YWx1ZTogIi0xMDAwIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSwKKyAgICAgICAg
ICB7CisgICAgICAgICAgICBsYWJlbDogIiIsCisgICAgICAgICAgICBhbW91bnQ6IHsKKyAgICAg
ICAgICAgICAgY3VycmVuY3k6ICJBVUQiLAorICAgICAgICAgICAgICB2YWx1ZTogIi0yMDAwLjAw
IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSwKKyAgICAgICAgXSwKKyAgICAgIH0KKyAg
ICApOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgYHNo
b3VsZG4ndCB0aHJvdyB3aGVuIGdpdmVuIGEgbmVnYXRpdmUgdmFsdWU6ICR7ZXJyLm1lc3NhZ2V9
YAorICAgICk7CisgIH0KK30sICJOZWdhdGl2ZSB2YWx1ZXMgYXJlIGFsbG93ZWQgZm9yIGRpc3Bs
YXlJdGVtcy5hbW91bnQudmFsdWUsIGlycmVzcGVjdGl2ZSBvZiB0b3RhbCBhbW91bnQiKTsKKwor
dGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBsYXJnZU1vbmV5ID0gIjEiLnJl
cGVhdCg1MTApOworICB0cnkgeworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgeworICAgICAgdG90YWw6IHsKKyAgICAgICAgbGFiZWw6ICIiLAorICAgICAgICBhbW91bnQ6
IHsKKyAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICAgICAgdmFsdWU6IGAke2xhcmdl
TW9uZXl9LiR7bGFyZ2VNb25leX1gLAorICAgICAgICB9LAorICAgICAgfSwKKyAgICAgIGRpc3Bs
YXlJdGVtczogWworICAgICAgICB7CisgICAgICAgICAgbGFiZWw6ICIiLAorICAgICAgICAgIGFt
b3VudDogeworICAgICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgICAgICAgdmFsdWU6
IGAtJHtsYXJnZU1vbmV5fWAsCisgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgIGxhYmVsOiAiIiwKKyAgICAgICAgICBhbW91bnQ6IHsKKyAgICAgICAgICAgIGN1
cnJlbmN5OiAiQVVEIiwKKyAgICAgICAgICAgIHZhbHVlOiBgLSR7bGFyZ2VNb25leX0uJHtsYXJn
ZU1vbmV5fWAsCisgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgIF0sCisgICAgfSk7Cisg
IH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICBgc2hvdWxkbid0
IHRocm93IHdoZW4gZ2l2ZW4gYWJzdXJkIG1vbmV0YXJ5IHZhbHVlczogJHtlcnIubWVzc2FnZX1g
CisgICAgKTsKKyAgfQorfSwgIml0IGhhbmRsZXMgaGlnaCBwcmVjaXNpb24gY3VycmVuY3kgdmFs
dWVzIHdpdGhvdXQgdGhyb3dpbmciKTsKKworLy8gUHJvY2VzcyBzaGlwcGluZyBvcHRpb25zOgor
Citjb25zdCBkZWZhdWx0U2hpcHBpbmdPcHRpb24gPSBPYmplY3QuZnJlZXplKHsKKyAgaWQ6ICJk
ZWZhdWx0IiwKKyAgbGFiZWw6ICIiLAorICBhbW91bnQ6IGRlZmF1bHRBbW91bnQsCisgIHNlbGVj
dGVkOiBmYWxzZSwKK30pOworY29uc3QgZGVmYXVsdFNoaXBwaW5nT3B0aW9ucyA9IE9iamVjdC5m
cmVlemUoWworICBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24pLAorXSk7
CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgZm9yIChjb25zdCBhbW91bnQgb2Yg
aW52YWxpZEFtb3VudHMpIHsKKyAgICBjb25zdCBpbnZhbGlkQW1vdW50ID0gT2JqZWN0LmFzc2ln
bih7fSwgZGVmYXVsdEFtb3VudCwgeworICAgICAgdmFsdWU6IGFtb3VudCwKKyAgICB9KTsKKyAg
ICBjb25zdCBpbnZhbGlkU2hpcHBpbmdPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0
U2hpcHBpbmdPcHRpb24sIHsKKyAgICAgIGFtb3VudDogaW52YWxpZEFtb3VudCwKKyAgICB9KTsK
KyAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsK
KyAgICAgIHNoaXBwaW5nT3B0aW9uczogW2ludmFsaWRTaGlwcGluZ09wdGlvbl0sCisgICAgfSk7
CisgICAgYXNzZXJ0X3Rocm93c19qcygKKyAgICAgIFR5cGVFcnJvciwKKyAgICAgICgpID0+IHsK
KyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJl
cXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0ZWQgVHlwZUVy
cm9yIGZvciBvcHRpb24uYW1vdW50LnZhbHVlOiAiJHthbW91bnR9ImAKKyAgICApOworICB9Cit9
LCBgRm9yIGVhY2ggb3B0aW9uIGluIGRldGFpbHMuc2hpcHBpbmdPcHRpb25zOiBpZiBvcHRpb24u
YW1vdW50LnZhbHVlIGlzIG5vdCBhIHZhbGlkIGRlY2ltYWwgbW9uZXRhcnkgdmFsdWUsIHRoZW4g
dGhyb3cgYSBUeXBlRXJyb3JgKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBj
b25zdCBzaGlwcGluZ09wdGlvbnMgPSBbZGVmYXVsdFNoaXBwaW5nT3B0aW9uXTsKKyAgY29uc3Qg
ZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBwaW5nT3B0
aW9ucyB9KTsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgZGV0YWlscyk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdC5zaGlwcGluZ09w
dGlvbiwKKyAgICBudWxsLAorICAgICJzaGlwcGluZ09wdGlvbiBtdXN0IGJlIG51bGwsIGFzIHJl
cXVlc3RTaGlwcGluZyBpcyBtaXNzaW5nIgorICApOworICAvLyBkZWZhdWx0RGV0YWlscyBsYWNr
cyBzaGlwcGluZyBvcHRpb25zCisgIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywgeworICAgIHJlcXVlc3RTaGlwcGluZzog
dHJ1ZSwKKyAgfSk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdDIuc2hpcHBpbmdPcHRp
b24sCisgICAgbnVsbCwKKyAgICBgcmVxdWVzdDIuc2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxs
YAorICApOworfSwgIklmIHRoZXJlIGlzIG5vIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbiwgdGhl
biBQYXltZW50UmVxdWVzdC5zaGlwcGluZ09wdGlvbiByZW1haW5zIG51bGwiKTsKKwordGVzdCgo
KSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IE9iamVjdC5h
c3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgeworICAgIHNlbGVjdGVkOiB0cnVlLAor
ICAgIGlkOiAidGhlLWlkIiwKKyAgfSk7CisgIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9IFtzZWxl
Y3RlZE9wdGlvbl07CisgIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0
RGV0YWlscywgeyBzaGlwcGluZ09wdGlvbnMgfSk7CisgIGNvbnN0IHJlcXVlc3ROb1NoaXBwaW5n
UmVxdWVzdGVkMSA9IG5ldyBQYXltZW50UmVxdWVzdCgKKyAgICBkZWZhdWx0TWV0aG9kcywKKyAg
ICBkZXRhaWxzCisgICk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdE5vU2hpcHBpbmdS
ZXF1ZXN0ZWQxLnNoaXBwaW5nT3B0aW9uLAorICAgIG51bGwsCisgICAgIk11c3QgYmUgbnVsbCB3
aGVuIG5vIHNoaXBwaW5nIGlzIHJlcXVlc3RlZCAoZGVmYXVsdHMgdG8gZmFsc2UpIgorICApOwor
ICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZ1JlcXVlc3RlZDIgPSBuZXcgUGF5bWVudFJlcXVlc3Qo
CisgICAgZGVmYXVsdE1ldGhvZHMsCisgICAgZGV0YWlscywKKyAgICB7IHJlcXVlc3RTaGlwcGlu
ZzogZmFsc2UgfQorICApOworICBhc3NlcnRfZXF1YWxzKAorICAgIHJlcXVlc3ROb1NoaXBwaW5n
UmVxdWVzdGVkMi5zaGlwcGluZ09wdGlvbiwKKyAgICBudWxsLAorICAgICJNdXN0IGJlIG51bGwg
d2hlbiByZXF1ZXN0U2hpcHBpbmcgaXMgZmFsc2UiCisgICk7CisgIGNvbnN0IHJlcXVlc3RXaXRo
U2hpcHBpbmcgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMsIHsK
KyAgICByZXF1ZXN0U2hpcHBpbmc6ICJ0cnV0aHkgdmFsdWUiLAorICB9KTsKKyAgYXNzZXJ0X2Vx
dWFscygKKyAgICByZXF1ZXN0V2l0aFNoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAorICAgICJ0aGUt
aWQiLAorICAgICJTZWxlY3RlZCBvcHRpb24gbXVzdCBiZSAndGhlLWlkJyIKKyAgKTsKK30sICJJ
ZiB0aGVyZSBpcyBhIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbiwgYW5kIHJlcXVlc3RTaGlwcGlu
ZyBpcyBzZXQsIHRoZW4gdGhhdCBvcHRpb24gYmVjb21lcyBzeW5jaHJvbm91c2x5IHNlbGVjdGVk
Iik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsKKyAgY29uc3QgZmFpbE9wdGlvbjEg
PSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKKyAgICBzZWxlY3Rl
ZDogdHJ1ZSwKKyAgICBpZDogIkZBSUwxIiwKKyAgfSk7CisgIGNvbnN0IGZhaWxPcHRpb24yID0g
T2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNoaXBwaW5nT3B0aW9uLCB7CisgICAgc2VsZWN0ZWQ6
IGZhbHNlLAorICAgIGlkOiAiRkFJTDIiLAorICB9KTsKKyAgY29uc3QgcGFzc09wdGlvbiA9IE9i
amVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgeworICAgIHNlbGVjdGVkOiB0
cnVlLAorICAgIGlkOiAidGhlLWlkIiwKKyAgfSk7CisgIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9
IFtmYWlsT3B0aW9uMSwgZmFpbE9wdGlvbjIsIHBhc3NPcHRpb25dOworICBjb25zdCBkZXRhaWxz
ID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0p
OworICBjb25zdCByZXF1ZXN0Tm9TaGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscywgeworICAgIHJlcXVlc3RTaGlwcGluZzogZmFsc2UsCisgIH0pOwor
ICBhc3NlcnRfZXF1YWxzKAorICAgIHJlcXVlc3ROb1NoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAor
ICAgIG51bGwsCisgICAgInNoaXBwaW5nT3B0aW9uIG11c3QgYmUgbnVsbCwgYXMgcmVxdWVzdFNo
aXBwaW5nIGlzIGZhbHNlIgorICApOworICBjb25zdCByZXF1ZXN0V2l0aFNoaXBwaW5nID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7CisgICAgcmVxdWVzdFNo
aXBwaW5nOiB0cnVlLAorICB9KTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICByZXF1ZXN0V2l0aFNo
aXBwaW5nLnNoaXBwaW5nT3B0aW9uLAorICAgICJ0aGUtaWQiLAorICAgICJzZWxlY3RlZCBvcHRp
b24gbXVzdCAndGhlLWlkIgorICApOworfSwgIklmIHJlcXVlc3RTaGlwcGluZyBpcyBzZXQsIGFu
ZCBpZiB0aGVyZSBpcyBhIG11bHRpcGxlIHNlbGVjdGVkIHNoaXBwaW5nIG9wdGlvbnMsIG9ubHkg
dGhlIGxhc3QgaXMgc2VsZWN0ZWQuIik7CisKK3Rlc3QoKCkgPT4geworICBzbW9rZVRlc3QoKTsK
KyAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBp
bmdPcHRpb24sIHsKKyAgICBzZWxlY3RlZDogdHJ1ZSwKKyAgfSk7CisgIGNvbnN0IHVuc2VsZWN0
ZWRPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hpcHBpbmdPcHRpb24sIHsKKyAg
ICBzZWxlY3RlZDogZmFsc2UsCisgIH0pOworICBjb25zdCBzaGlwcGluZ09wdGlvbnMgPSBbc2Vs
ZWN0ZWRPcHRpb24sIHVuc2VsZWN0ZWRPcHRpb25dOworICBjb25zdCBkZXRhaWxzID0gT2JqZWN0
LmFzc2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOworICBjb25z
dCByZXF1ZXN0Tm9TaGlwcGluZyA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywg
ZGV0YWlscyk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgcmVxdWVzdE5vU2hpcHBpbmcuc2hpcHBp
bmdPcHRpb24sCisgICAgbnVsbCwKKyAgICAic2hpcHBpbmdPcHRpb24gbXVzdCBiZSBudWxsLCBi
ZWNhdXNlIHJlcXVlc3RTaGlwcGluZyBpcyBmYWxzZSIKKyAgKTsKKyAgYXNzZXJ0X3Rocm93c19q
cygKKyAgICBUeXBlRXJyb3IsCisgICAgKCkgPT4geworICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1ZSB9KTsKKyAg
ICB9LAorICAgICJFeHBlY3RlZCB0byB0aHJvdyBhIFR5cGVFcnJvciBiZWNhdXNlIGR1cGxpY2F0
ZSBJRHMiCisgICk7Cit9LCAiSWYgdGhlcmUgYXJlIGFueSBkdXBsaWNhdGUgc2hpcHBpbmcgb3B0
aW9uIGlkcywgYW5kIHNoaXBwaW5nIGlzIHJlcXVlc3RlZCwgdGhlbiB0aHJvdyBhIFR5cGVFcnJv
ciIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IGR1cFNoaXBwaW5n
MSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgeworICAgIHNlbGVj
dGVkOiB0cnVlLAorICAgIGlkOiAiRFVQTElDQVRFIiwKKyAgICBsYWJlbDogIkZhaWwgMSIsCisg
IH0pOworICBjb25zdCBkdXBTaGlwcGluZzIgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U2hp
cHBpbmdPcHRpb24sIHsKKyAgICBzZWxlY3RlZDogZmFsc2UsCisgICAgaWQ6ICJEVVBMSUNBVEUi
LAorICAgIGxhYmVsOiAiRmFpbCAyIiwKKyAgfSk7CisgIGNvbnN0IHNoaXBwaW5nT3B0aW9ucyA9
IFtkdXBTaGlwcGluZzEsIGRlZmF1bHRTaGlwcGluZ09wdGlvbiwgZHVwU2hpcHBpbmcyXTsKKyAg
Y29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxzLCB7IHNoaXBw
aW5nT3B0aW9ucyB9KTsKKyAgY29uc3QgcmVxdWVzdE5vU2hpcHBpbmcgPSBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOworICBhc3NlcnRfZXF1YWxzKAorICAgIHJl
cXVlc3ROb1NoaXBwaW5nLnNoaXBwaW5nT3B0aW9uLAorICAgIG51bGwsCisgICAgInNoaXBwaW5n
T3B0aW9uIG11c3QgYmUgbnVsbCwgYmVjYXVzZSByZXF1ZXN0U2hpcHBpbmcgaXMgZmFsc2UiCisg
ICk7CisgIGFzc2VydF90aHJvd3NfanMoCisgICAgVHlwZUVycm9yLAorICAgICgpID0+IHsKKyAg
ICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0
U2hpcHBpbmc6IHRydWUgfSk7CisgICAgfSwKKyAgICAiRXhwZWN0ZWQgdG8gdGhyb3cgYSBUeXBl
RXJyb3IgYmVjYXVzZSBkdXBsaWNhdGUgSURzIgorICApOworfSwgIlRocm93IHdoZW4gdGhlcmUg
YXJlIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbiBpZHMsIGV2ZW4gaWYgb3RoZXIgdmFsdWVzIGFy
ZSBkaWZmZXJlbnQiKTsKKworLy8gUHJvY2VzcyBwYXltZW50IGRldGFpbHMgbW9kaWZpZXJzOgor
dGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBmb3IgKGNvbnN0IGludmFsaWRUb3RhbCBv
ZiBpbnZhbGlkVG90YWxBbW91bnRzKSB7CisgICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0gewor
ICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19
L3BheW1lbnQtcmVxdWVzdCIsCisgICAgICB0b3RhbDogeworICAgICAgICBsYWJlbDogIiIsCisg
ICAgICAgIGFtb3VudDogeworICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICB2
YWx1ZTogaW52YWxpZFRvdGFsLAorICAgICAgICB9LAorICAgICAgfSwKKyAgICB9OworICAgIGFz
c2VydF90aHJvd3NfanMoCisgICAgICBUeXBlRXJyb3IsCisgICAgICAoKSA9PiB7CisgICAgICAg
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgeworICAgICAgICAgIG1vZGlmaWVy
czogW2ludmFsaWRNb2RpZmllcl0sCisgICAgICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAg
ICAgICAgfSk7CisgICAgICB9LAorICAgICAgYEV4cGVjdGVkIFR5cGVFcnJvciBmb3IgbW9kaWZp
ZXIudG90YWwuYW1vdW50LnZhbHVlOiAiJHtpbnZhbGlkVG90YWx9ImAKKyAgICApOworICB9Cit9
LCBgVGhyb3cgVHlwZUVycm9yIGlmIG1vZGlmaWVyLnRvdGFsLmFtb3VudC52YWx1ZSBpcyBub3Qg
YSB2YWxpZCBkZWNpbWFsIG1vbmV0YXJ5IHZhbHVlYCk7CisKK3Rlc3QoKCkgPT4geworICBzbW9r
ZVRlc3QoKTsKKyAgZm9yIChjb25zdCBpbnZhbGlkQW1vdW50IG9mIGludmFsaWRBbW91bnRzKSB7
CisgICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0geworICAgICAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQtcmVxdWVzdCIsCisgICAg
ICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgYWRkaXRpb25hbERpc3BsYXlJdGVtczogWwor
ICAgICAgICB7CisgICAgICAgICAgbGFiZWw6ICIiLAorICAgICAgICAgIGFtb3VudDogeworICAg
ICAgICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgICAgICAgdmFsdWU6IGludmFsaWRBbW91
bnQsCisgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgIF0sCisgICAgfTsKKyAgICBhc3Nl
cnRfdGhyb3dzX2pzKAorICAgICAgVHlwZUVycm9yLAorICAgICAgKCkgPT4geworICAgICAgICBu
ZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIHsKKyAgICAgICAgICBtb2RpZmllcnM6
IFtpbnZhbGlkTW9kaWZpZXJdLAorICAgICAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisgICAg
ICAgIH0pOworICAgICAgfSwKKyAgICAgIGBFeHBlY3RlZCBUeXBlRXJyb3Igd2hlbiBnaXZlbiBi
b2d1cyBtb2RpZmllci5hZGRpdGlvbmFsRGlzcGxheUl0ZW1zLmFtb3VudCBvZiAiJHtpbnZhbGlk
TW9kaWZpZXJ9ImAKKyAgICApOworICB9Cit9LCBgSWYgYW1vdW50LnZhbHVlIG9mIGFkZGl0aW9u
YWxEaXNwbGF5SXRlbXMgaXMgbm90IGEgdmFsaWQgZGVjaW1hbCBtb25ldGFyeSB2YWx1ZSwgdGhl
biB0aHJvdyBhIFR5cGVFcnJvcmApOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7Cisg
IGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxz
LCB7CisgICAgbW9kaWZpZXJzOiBbCisgICAgICB7CisgICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAg
ICAgICBkYXRhOiBbInNvbWUtZGF0YSJdLAorICAgICAgfSwKKyAgICBdLAorICB9KTsKKyAgdHJ5
IHsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG1vZGlmaWVkRGV0YWls
cyk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICBgVW5l
eHBlY3RlZCBleGNlcHRpb24gdGhyb3duIHdoZW4gZ2l2ZW4gYSBsaXN0OiAke2Vyci5tZXNzYWdl
fWAKKyAgICApOworICB9Cit9LCAiTW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXph
YmxlIG9iamVjdCAoYW4gQXJyYXkgaW4gdGhpcyBjYXNlKSIpOworCit0ZXN0KCgpID0+IHsKKyAg
c21va2VUZXN0KCk7CisgIGNvbnN0IG1vZGlmaWVkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30s
IGRlZmF1bHREZXRhaWxzLCB7CisgICAgbW9kaWZpZXJzOiBbCisgICAgICB7CisgICAgICAgIHN1
cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50
LXJlcXVlc3QiLAorICAgICAgICBkYXRhOiB7CisgICAgICAgICAgc29tZTogImRhdGEiLAorICAg
ICAgICB9LAorICAgICAgfSwKKyAgICBdLAorICB9KTsKKyAgdHJ5IHsKKyAgICBuZXcgUGF5bWVu
dFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIG1vZGlmaWVkRGV0YWlscyk7CisgIH0gY2F0Y2ggKGVy
cikgeworICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICBgc2hvdWxkbid0IHRocm93IHdoZW4g
Z2l2ZW4gYW4gb2JqZWN0IHZhbHVlOiAke2Vyci5tZXNzYWdlfWAKKyAgICApOworICB9Cit9LCAi
TW9kaWZpZXIgZGF0YSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCAoYW4gT2JqZWN0
IGluIHRoaXMgY2FzZSkiKTsKKwordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBjb25z
dCByZWN1cnNpdmVEaWN0aW9uYXJ5ID0ge307CisgIHJlY3Vyc2l2ZURpY3Rpb25hcnkuZm9vID0g
cmVjdXJzaXZlRGljdGlvbmFyeTsKKyAgY29uc3QgbW9kaWZpZWREZXRhaWxzID0gT2JqZWN0LmFz
c2lnbih7fSwgZGVmYXVsdERldGFpbHMsIHsKKyAgICBtb2RpZmllcnM6IFsKKyAgICAgIHsKKyAg
ICAgICAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19
L3BheW1lbnQtcmVxdWVzdCIsCisgICAgICAgIGRhdGE6IHJlY3Vyc2l2ZURpY3Rpb25hcnksCisg
ICAgICB9LAorICAgIF0sCisgIH0pOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkg
PT4geworICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgbW9kaWZpZWREZXRh
aWxzKTsKKyAgfSk7Cit9LCAiUmV0aHJvdyBhbnkgZXhjZXB0aW9ucyBvZiBKU09OLXNlcmlhbGl6
aW5nIG1vZGlmaWVyLmRhdGEiKTsKKworLy9TZXR0aW5nIFNoaXBwaW5nVHlwZSBhdHRyaWJ1dGUg
ZHVyaW5nIGNvbnN0cnVjdGlvbgordGVzdCgoKSA9PiB7CisgIHNtb2tlVGVzdCgpOworICBhc3Nl
cnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4geworICAgIG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHsKKyAgICAgIHNoaXBwaW5nVHlwZTogImlu
dmFsaWQiLAorICAgIH0pOworICB9KTsKK30sICJTaGlwcGluZyB0eXBlIHNob3VsZCBiZSB2YWxp
ZCIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IHJlcXVlc3QgPSBu
ZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7fSk7Cisg
IGFzc2VydF9lcXVhbHMocmVxdWVzdC5zaGlwcGluZ0FkZHJlc3MsIG51bGwsICJtdXN0IGJlIG51
bGwiKTsKK30sICJQYXltZW50UmVxdWVzdC5zaGlwcGluZ0FkZHJlc3MgbXVzdCBpbml0aWFsbHkg
YmUgbnVsbCIpOworCit0ZXN0KCgpID0+IHsKKyAgc21va2VUZXN0KCk7CisgIGNvbnN0IHJlcXVl
c3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscywg
e30pOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QxLnNoaXBwaW5nVHlwZSwgbnVsbCwgIm11c3Qg
YmUgbnVsbCIpOworICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHsKKyAgICByZXF1ZXN0U2hpcHBpbmc6IGZhbHNlLAor
ICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0Mi5zaGlwcGluZ1R5cGUsIG51bGwsICJtdXN0
IGJlIG51bGwiKTsKK30sICJJZiBvcHRpb25zLnJlcXVlc3RTaGlwcGluZyBpcyBub3Qgc2V0LCB0
aGVuIHJlcXVlc3Quc2hpcHBpbmdUeXBlIGF0dHJpYnV0ZSBpcyBudWxsLiIpOworCit0ZXN0KCgp
ID0+IHsKKyAgc21va2VUZXN0KCk7CisgIC8vIG9wdGlvbi5zaGlwcGluZ1R5cGUgZGVmYXVsdHMg
dG8gJ3NoaXBwaW5nJworICBjb25zdCByZXF1ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMsIHsKKyAgICByZXF1ZXN0U2hpcHBpbmc6IHRydWUs
CisgIH0pOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QxLnNoaXBwaW5nVHlwZSwgInNoaXBwaW5n
IiwgIm11c3QgYmUgc2hpcHBpbmciKTsKKyAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzLCB7CisgICAgcmVxdWVzdFNoaXBw
aW5nOiB0cnVlLAorICAgIHNoaXBwaW5nVHlwZTogImRlbGl2ZXJ5IiwKKyAgfSk7CisgIGFzc2Vy
dF9lcXVhbHMocmVxdWVzdDIuc2hpcHBpbmdUeXBlLCAiZGVsaXZlcnkiLCAibXVzdCBiZSBkZWxp
dmVyeSIpOworfSwgIklmIG9wdGlvbnMucmVxdWVzdFNoaXBwaW5nIGlzIHRydWUsIHJlcXVlc3Qu
c2hpcHBpbmdUeXBlIHdpbGwgYmUgb3B0aW9ucy5zaGlwcGluZ1R5cGUuIik7CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVj
a3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLWN1cnJlbmN5LWNvZGUtY2hl
Y2tzLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NDE2ODNiZWI1
MTVkNWE5ZDYwN2IxZmVhYWY1MzQ0ZDc1NTZlMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29k
ZS1jaGVja3MuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzOSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGN1cnJlbmN5
IGNvZGUgdXNhZ2UgaW4gUGF5bWVudFJlcXVlc3QgQ29uc3RydWN0b3I8L3RpdGxlPgotPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFw
aS8jY29uc3RydWN0b3IiPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWNvbnN0IGRlZmF1bHRNZXRob2RzID0gWwotICBPYmplY3Qu
ZnJlZXplKHsKLSAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpIiwKLSAgfSks
Ci1dOwotY29uc3QgZGVmYXVsdEFtb3VudCA9IE9iamVjdC5mcmVlemUoewotICBjdXJyZW5jeTog
IlVTRCIsCi0gIHZhbHVlOiAiMS4wMCIsCi19KTsKLWNvbnN0IGRlZmF1bHRUb3RhbCA9IE9iamVj
dC5mcmVlemUoewotICBsYWJlbDogIlRvdGFsIiwKLSAgYW1vdW50OiBkZWZhdWx0QW1vdW50LAot
fSk7Ci0KLWNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIHRvdGFsOiBP
YmplY3QuZnJlZXplKHsKLSAgICBsYWJlbDogIiIsCi0gICAgYW1vdW50OiBkZWZhdWx0QW1vdW50
LAotICB9KSwKLX0pOwotCi0vLyBUaGUgZm9sbG93aW5nIGFyZSB0aGUgc2FtZSBzZXQgb2YgdmFs
aWQvaW52YWxpZCBjb2RlcyB0aGF0IGFyZSB1c2VkIGluCi0vLyB0aGUgRUNNQVNjcmlwdCBJbnRl
cm5hdGlvbmFsaXphdGlvbiBBUEkgU3BlY2lmaWNhdGlvbiAoRUNNQS00MDIpIHRlc3Qgc3VpdGUu
Ci1jb25zdCB3ZWxsRm9ybWVkQ3VycmVuY3lDb2RlcyA9IFsKLSAgIkJPQiIsCi0gICJFVVIiLAot
ICAidXNkIiwgLy8gY3VycmVuY3kgY29kZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUKLSAgIlhkUiIs
Ci0gICJ4VHMiLAotXTsKLQotY29uc3QgaW52YWxpZEN1cnJlbmN5Q29kZXMgPSBbCi0gICIiLAot
ICAi4oKsIiwKLSAgIiQiLAotICAiU0ZyLiIsCi0gICJETSIsCi0gICJLUuKCqSIsCi0gICI3MDIi
LAotICAiw59QIiwKLSAgIsSxbnIiLAotXTsKLQotY29uc3QgUkFOR0VfRVJST1IgPSBuZXcgUmFu
Z2VFcnJvcigpOwotCi1jb25zdCBpbnZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7Ci0gIGN1
cnJlbmN5OiAiwqFJTlZBTElEISIsCi0gIHZhbHVlOiAiMS4wMCIsCi19KTsKLQotY29uc3QgaW52
YWxpZFRvdGFsID0gewotICB0b3RhbDogewotICAgIGxhYmVsOiAiSW52YWxpZCB0b3RhbCIsCi0g
ICAgYW1vdW50OiBpbnZhbGlkQW1vdW50LAotICB9LAotfTsKLQotLy8gRW5zdXJlIHdlIGRvbid0
IGdldCBmYWxzZSBwb3NpdGl2ZXMKLWZ1bmN0aW9uIHNtb2tlVGVzdCgpIHsKLSAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBpbnZhbGlkVG90YWwpOwotfQotCi0vLyBQcm9jZXNz
IHRoZSB0b3RhbDoKLXRlc3QoKCkgPT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VSUk9SLCBz
bW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBmb3IgKGNvbnN0
IHZhbGlkQ3VycmVuY3kgb2Ygd2VsbEZvcm1lZEN1cnJlbmN5Q29kZXMpIHsKLSAgICBjb25zdCBh
bW91bnQgPSB7Ci0gICAgICBjdXJyZW5jeTogdmFsaWRDdXJyZW5jeSwKLSAgICAgIHZhbHVlOiAi
MS4wMCIsCi0gICAgfTsKLSAgICBjb25zdCB0b3RhbCA9IHsKLSAgICAgIGxhYmVsOiAiVG90YWwi
LAotICAgICAgYW1vdW50LAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRv
dGFsLAotICAgIH07Ci0gICAgdHJ5IHsKLSAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscyk7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICBhc3NlcnRfdW5y
ZWFjaGVkKAotICAgICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24gZm9yIGRldGFpbHMudG90YWwu
YW1vdW50ICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCi0gICAgICApOwotICAg
IH0KLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy50b3RhbC5h
bW91bnQiKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNt
b2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29uc3Qg
aW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYW1v
dW50ID0gewotICAgICAgY3VycmVuY3k6IGludmFsaWRDdXJyZW5jeSwKLSAgICAgIHZhbHVlOiAi
MS4wMCIsCi0gICAgfTsKLSAgICBjb25zdCB0b3RhbCA9IHsKLSAgICAgIGxhYmVsOiAiVG90YWwi
LAotICAgICAgYW1vdW50LAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRv
dGFsLAotICAgIH07Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAgICAgIFJBTkdFX0VSUk9SLAotICAg
ICAgKCkgPT4gewotICAgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
dGFpbHMpOwotICAgICAgfSwKLSAgICAgIGBFeHBlY3RlZCBSYW5nZUVycm9yIGZvciBkZXRhaWxz
LnRvdGFsLmFtb3VudCBnaXZlbiAoIiR7aW52YWxpZEN1cnJlbmN5fSIpLmAKLSAgICApOwotICB9
Ci19LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIGRldGFpbHMudG90YWwuYW1vdW50
IGFuZCByZXRocm93IGFueSBleGNlcHRpb25zLiIpOwotCi0vLyBJZiB0aGUgZGlzcGxheUl0ZW1z
IG1lbWJlciBvZiBkZXRhaWxzIGlzIHByZXNlbnQsIHRoZW4gZm9yIGVhY2ggaXRlbSBpbiBkZXRh
aWxzLmRpc3BsYXlJdGVtczoKLXRlc3QoKCkgPT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VS
Uk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBjb25z
dCBkaXNwbGF5SXRlbXMgPSBbXTsKLSAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxG
b3JtZWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYW1vdW50ID0gewotICAgICAgY3VycmVu
Y3k6IHZhbGlkQ3VycmVuY3ksCi0gICAgICB2YWx1ZTogIjEyMyIsCi0gICAgfTsKLSAgICBjb25z
dCBkaXNwbGF5SXRlbSA9IHsKLSAgICAgIGFtb3VudCwKLSAgICAgIGxhYmVsOiAidmFsaWQgY3Vy
cmVuY3kiLAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZh
dWx0VG90YWwsCi0gICAgICBkaXNwbGF5SXRlbXM6IFtkaXNwbGF5SXRlbV0sCi0gICAgfTsKLSAg
ICB0cnkgewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxz
KTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICAg
IGBVbmV4cGVjdGVkIGVycm9yIHdpdGggZGlzcGxheUl0ZW0gdGhhdCBoYWQgYSB2YWxpZCBjdXJy
ZW5jeSAiJHt2YWxpZEN1cnJlbmN5fSI6ICR7ZXJyLm1lc3NhZ2V9YAotICAgICAgKTsKLSAgICB9
Ci0gICAgZGlzcGxheUl0ZW1zLnB1c2goZGlzcGxheUl0ZW0pOwotICB9Ci0gIC8vIExldCdzIG1h
a2Ugc3VyZSBpdCBkb2Vzbid0IHRocm93IGdpdmVuIGEgbGlzdCBvZiB2YWxpZCBkaXNwbGF5SXRl
bXMKLSAgdHJ5IHsKLSAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVs
dERldGFpbHMsIHsgZGlzcGxheUl0ZW1zIH0pOwotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gIH0gY2F0Y2ggKGVycikgewotICAgIGFzc2VydF91bnJl
YWNoZWQoCi0gICAgICBgVW5leHBlY3RlZCBlcnJvciB3aXRoIG11bHRpcGxlIHZhbGlkIGRpc3Bs
YXlJdGVtczogJHtlcnIubWVzc2FnZX1gCi0gICAgKTsKLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5v
bmljYWxpemUgdmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1vdW50Iik7Ci0KLXRlc3QoKCkg
PT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBz
bW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBmb3IgKGNvbnN0IGludmFsaWRDdXJyZW5jeSBvZiBp
bnZhbGlkQ3VycmVuY3lDb2RlcykgewotICAgIGNvbnN0IGFtb3VudCA9IHsKLSAgICAgIGN1cnJl
bmN5OiBpbnZhbGlkQ3VycmVuY3ksCi0gICAgICB2YWx1ZTogIjEyMyIsCi0gICAgfTsKLSAgICBj
b25zdCBkaXNwbGF5SXRlbSA9IHsKLSAgICAgIGFtb3VudCwKLSAgICAgIGxhYmVsOiAiaW52YWxp
ZCBjdXJyZW5jeSIsCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6
IGRlZmF1bHRUb3RhbCwKLSAgICAgIGRpc3BsYXlJdGVtczogW2Rpc3BsYXlJdGVtXSwKLSAgICB9
OwotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBSQU5HRV9FUlJPUiwKLSAgICAgICgpID0+IHsK
LSAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAg
ICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgZGlzcGxheUl0
ZW0gY3VycmVuY3kgIiR7aW52YWxpZEN1cnJlbmN5fSIuYAotICAgICk7Ci0gIH0KLX0sICJDaGVj
ayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1vdW50IGFu
ZCByZXRocm93IFJhbmdlRXJyb3IuIik7Ci0KLS8vIFByb2Nlc3Mgc2hpcHBpbmcgb3B0aW9uczoK
LXRlc3QoKCkgPT4gewotICBhc3NlcnRfdGhyb3dzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJF
eHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOwotICBjb25zdCBzaGlwcGluZ09wdGlvbnMg
PSBbXTsKLSAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9mIHdlbGxGb3JtZWRDdXJyZW5jeUNv
ZGVzKSB7Ci0gICAgY29uc3Qgc2hpcHBpbmdPcHRpb24gPSB7Ci0gICAgICBpZDogYHRlc3RgICsg
TWF0aC5yYW5kb20oKSwKLSAgICAgIGxhYmVsOiAic2hpcHBpbmcgb3B0aW9uIiwKLSAgICAgIGFt
b3VudDogeyBjdXJyZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI1LjAwIiB9LAotICAgICAg
c2VsZWN0ZWQ6ICFzaGlwcGluZ09wdGlvbnMubGVuZ3RoLAotICAgIH07Ci0gICAgY29uc3QgZGV0
YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBzaGlwcGluZ09wdGlv
bnM6IFtzaGlwcGluZ09wdGlvbl0sCi0gICAgfTsKLSAgICB0cnkgewotICAgICAgbmV3IFBheW1l
bnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzogdHJ1
ZSB9KTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAg
ICAgIGBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aXRoIHZhbGlkIHNoaXBwaW5nT3B0aW9uIGN1cnJl
bmN5IGNvZGUgIiR7dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5tZXNzYWdlfS5gCi0gICAgICApOwot
ICAgIH0KLSAgICBzaGlwcGluZ09wdGlvbnMucHVzaChzaGlwcGluZ09wdGlvbik7Ci0gIH0KLSAg
dHJ5IHsKLSAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdERldGFp
bHMsIHsgc2hpcHBpbmdPcHRpb25zIH0pOwotICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfSk7Ci0gIH0gY2F0Y2gg
KGVycikgewotICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAgICBgVW5leHBlY3RlZCBlcnJvciB3
aXRoIG11bHRpcGxlIHZhbGlkIHNocHBpbmdPcHRpb25zOiAke2Vyci5tZXNzYWdlfS5gCi0gICAg
KTsKLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy5zaGlwcGlu
Z09wdGlvbnMgYW1vdW50LiIpOwotCi10ZXN0KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhSQU5H
RV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKLSAg
Zm9yIChjb25zdCBpbnZhbGlkQ3VycmVuY3kgb2YgaW52YWxpZEN1cnJlbmN5Q29kZXMpIHsKLSAg
ICBjb25zdCBzaGlwcGluZ09wdGlvbiA9IHsKLSAgICAgIGlkOiAidGVzdCIsCi0gICAgICBsYWJl
bDogInNoaXBwaW5nIG9wdGlvbiIsCi0gICAgICBhbW91bnQ6IHsgY3VycmVuY3k6IGludmFsaWRD
dXJyZW5jeSwgdmFsdWU6ICI1LjAwIiB9LAotICAgICAgc2VsZWN0ZWQ6IHRydWUsCi0gICAgfTsK
LSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAg
IHNoaXBwaW5nT3B0aW9uczogW3NoaXBwaW5nT3B0aW9uXSwKLSAgICB9OwotICAgIGFzc2VydF90
aHJvd3MoCi0gICAgICBSQU5HRV9FUlJPUiwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3IFBh
eW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzLCB7IHJlcXVlc3RTaGlwcGluZzog
dHJ1ZSB9KTsKLSAgICAgIH0sCi0gICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFs
aWQgc2hpcHBpbmdPcHRpb24gY3VycmVuY3kgY29kZSAiJHtpbnZhbGlkQ3VycmVuY3l9Ii5gCi0g
ICAgKTsKLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLnNo
aXBwaW5nT3B0aW9ucyBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4iKTsKLQotLy8gUHJv
Y2VzcyBwYXltZW50IGRldGFpbHMgbW9kaWZpZXJzOgotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90
aHJvd3MoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhy
b3cuIik7Ci0gIGZvciAoY29uc3QgdmFsaWRDdXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3VycmVuY3lD
b2RlcykgewotICAgIGNvbnN0IG1vZGlmaWVyID0gewotICAgICAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vd3B0LmZ5aSIsCi0gICAgICB0b3RhbDogewotICAgICAgICBsYWJlbDogIlRvdGFs
IGR1ZSIsCi0gICAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6
ICI2OC4wMCIgfSwKLSAgICAgIH0sCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAg
ICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKLSAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKLSAg
ICB9OwotICAgIHRyeSB7Ci0gICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMs
IGRldGFpbHMpOwotICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgK
LSAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0aCB2YWxpZCBtb2RpZmllciBjdXJyZW5jeSBj
b2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCi0gICAgICApOwotICAgIH0K
LSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgbW9kaWZpZXJzW25dLnRvdGFs
IGFtb3VudC4iKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1Is
IHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29u
c3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3Qg
bW9kaWZpZXIgPSB7Ci0gICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpIiwK
LSAgICAgIHRvdGFsOiB7Ci0gICAgICAgIGxhYmVsOiAiVG90YWwgZHVlIiwKLSAgICAgICAgYW1v
dW50OiB7IGN1cnJlbmN5OiBpbnZhbGlkQ3VycmVuY3ksIHZhbHVlOiAiNjguMDAiIH0sCi0gICAg
ICB9LAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRvdGFsOiBkZWZhdWx0
VG90YWwsCi0gICAgICBtb2RpZmllcnM6IFttb2RpZmllcl0sCi0gICAgfTsKLSAgICBhc3NlcnRf
dGhyb3dzKAotICAgICAgUkFOR0VfRVJST1IsCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIG5ldyBQ
YXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICB9LAotICAgICAg
YEV4cGVjdGVkIFJhbmdlRXJyb3Igd2l0aCBpbnZhbGlkIG1vZGlmaWVyIGN1cnJlbmN5IGNvZGUg
IiR7aW52YWxpZEN1cnJlbmN5fSIuYAotICAgICk7Ci0gIH0KLX0sICJDaGVjayBhbmQgY2Fub25p
Y2FsaXplIGludmFsaWQgbW9kaWZpZXJzW25dLnRvdGFsIGFtb3VudCBhbmQgcmV0aHJvdyBSYW5n
ZUVycm9yLiIpOwotCi0vLyBQcm9jZXNzIHBheW1lbnQgZGV0YWlscyBtb2RpZmllcnM6Ci10ZXN0
KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0
ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKLSAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9m
IHdlbGxGb3JtZWRDdXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYWRkaXRpb25hbEl0ZW0gPSB7
Ci0gICAgICBsYWJlbDogImFkZGl0aW9uYWxJdGVtIiwKLSAgICAgIGFtb3VudDogeyBjdXJyZW5j
eTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6ICIzLjAwIiB9LAotICAgIH07Ci0gICAgY29uc3QgbW9k
aWZpZXIgPSB7Ci0gICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly93cHQuZnlpIiwKLSAg
ICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBhZGRpdGlvbmFsRGlzcGxheUl0ZW1zOiBb
YWRkaXRpb25hbEl0ZW1dLAotICAgIH07Ci0gICAgY29uc3QgZGV0YWlscyA9IHsKLSAgICAgIHRv
dGFsOiBkZWZhdWx0VG90YWwsCi0gICAgICBtb2RpZmllcnM6IFttb2RpZmllcl0sCi0gICAgfTsK
LSAgICB0cnkgewotICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRh
aWxzKTsKLSAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoCi0gICAg
ICAgIGBVbmV4cGVjdGVkIGVycm9yIHdpdGggdmFsaWQgYWRkaXRpb25hbERpc3BsYXlJdGVtc1tu
XSBjdXJyZW5jeSBjb2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX1gCi0gICAg
ICApOwotICAgIH0KLSAgfQotfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgbW9kaWZp
ZXJzW25dLmFkZGl0aW9uYURpc3BsYXlJdGVtIGFtb3VudC4iKTsKLQotdGVzdCgoKSA9PiB7Ci0g
IGFzc2VydF90aHJvd3MoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRl
c3QgdG8gdGhyb3cuIik7Ci0gIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRD
dXJyZW5jeUNvZGVzKSB7Ci0gICAgY29uc3QgYWRkaXRpb25hbEl0ZW0gPSB7Ci0gICAgICBsYWJl
bDogImFkZGl0aW9uYWxJdGVtIiwKLSAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogaW52YWxpZEN1
cnJlbmN5LCB2YWx1ZTogIjMuMDAiIH0sCi0gICAgfTsKLSAgICBjb25zdCBtb2RpZmllciA9IHsK
LSAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3dwdC5meWkiLAotICAgICAgdG90YWw6
IGRlZmF1bHRUb3RhbCwKLSAgICAgIGFkZGl0aW9uYWxEaXNwbGF5SXRlbXM6IFthZGRpdGlvbmFs
SXRlbV0sCi0gICAgfTsKLSAgICBjb25zdCBkZXRhaWxzID0gewotICAgICAgdG90YWw6IGRlZmF1
bHRUb3RhbCwKLSAgICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKLSAgICB9OwotICAgIGFzc2Vy
dF90aHJvd3MoCi0gICAgICBSQU5HRV9FUlJPUiwKLSAgICAgICgpID0+IHsKLSAgICAgICAgbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIH0sCi0gICAg
ICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgYWRkaXRpb25hbERpc3BsYXlJdGVt
c1tuXSBjdXJyZW5jeSBjb2RlICIke2ludmFsaWRDdXJyZW5jeX0iLmAKLSAgICApOwotICB9Ci19
LCAiQ2hlY2sgYW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIG1vZGlmaWVyc1tuXS5hZGRpdGlvbmFE
aXNwbGF5SXRlbSBhbW91bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4iKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3Mu
aHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLWN1cnJlbmN5
LWNvZGUtY2hlY2tzLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE0NTE2YTRl
YjA3OGVjODhiYzIzZDYyNjFiZjQ3ZjQ0ZGM2NjliMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1jdG9yLWN1cnJlbmN5LWNvZGUtY2hlY2tzLmh0dHBzLnN1Yi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFs
aWQgZGV0YWlscy50b3RhbC5hbW91bnQgCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgaW52
YWxpZCBkZXRhaWxzLnRvdGFsLmFtb3VudCBhbmQgcmV0aHJvdyBhbnkgZXhjZXB0aW9ucy4gCitQ
QVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUgdmFsaWQgZGV0YWlscy5kaXNwbGF5SXRlbXMgYW1v
dW50IAorUEFTUyBDaGVjayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgZGV0YWlscy5kaXNwbGF5
SXRlbXMgYW1vdW50IGFuZCByZXRocm93IFJhbmdlRXJyb3IuIAorUEFTUyBDaGVjayBhbmQgY2Fu
b25pY2FsaXplIHZhbGlkIGRldGFpbHMuc2hpcHBpbmdPcHRpb25zIGFtb3VudC4gCitQQVNTIENo
ZWNrIGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLnNoaXBwaW5nT3B0aW9ucyBhbW91
bnQgYW5kIHJldGhyb3cgUmFuZ2VFcnJvci4gCitQQVNTIENoZWNrIGFuZCBjYW5vbmljYWxpemUg
dmFsaWQgbW9kaWZpZXJzW25dLnRvdGFsIGFtb3VudC4gCitQQVNTIENoZWNrIGFuZCBjYW5vbmlj
YWxpemUgaW52YWxpZCBtb2RpZmllcnNbbl0udG90YWwgYW1vdW50IGFuZCByZXRocm93IFJhbmdl
RXJyb3IuIAorUEFTUyBDaGVjayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIG1vZGlmaWVyc1tuXS5h
ZGRpdGlvbmFEaXNwbGF5SXRlbSBhbW91bnQuIAorUEFTUyBDaGVjayBhbmQgY2Fub25pY2FsaXpl
IGludmFsaWQgbW9kaWZpZXJzW25dLmFkZGl0aW9uYURpc3BsYXlJdGVtIGFtb3VudCBhbmQgcmV0
aHJvdyBSYW5nZUVycm9yLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3It
Y3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
Y3Rvci1jdXJyZW5jeS1jb2RlLWNoZWNrcy5odHRwcy5zdWIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGNh
MmEwYzQwYjM5YjNjOTIyMzQzYTlhNzQzNDFiNjlhMzM4NDU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVuY3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLmh0
bWwKQEAgLTAsMCArMSwzMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPlRlc3QgY3VycmVuY3kgY29kZSB1c2FnZSBpbiBQYXltZW50UmVxdWVzdCBD
b25zdHJ1Y3RvcjwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9icm93c2VyLXBheW1lbnQtYXBpLyNjb25zdHJ1Y3RvciI+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3QgZGVm
YXVsdE1ldGhvZHMgPSBbCisgIE9iamVjdC5mcmVlemUoeworICAgIHN1cHBvcnRlZE1ldGhvZHM6
ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fSIsCisgIH0pLAorXTsKK2NvbnN0IGRl
ZmF1bHRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKKyAgY3VycmVuY3k6ICJVU0QiLAorICB2YWx1
ZTogIjEuMDAiLAorfSk7Citjb25zdCBkZWZhdWx0VG90YWwgPSBPYmplY3QuZnJlZXplKHsKKyAg
bGFiZWw6ICJUb3RhbCIsCisgIGFtb3VudDogZGVmYXVsdEFtb3VudCwKK30pOworCitjb25zdCBk
ZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogT2JqZWN0LmZyZWV6ZSh7
CisgICAgbGFiZWw6ICIiLAorICAgIGFtb3VudDogZGVmYXVsdEFtb3VudCwKKyAgfSksCit9KTsK
KworLy8gVGhlIGZvbGxvd2luZyBhcmUgdGhlIHNhbWUgc2V0IG9mIHZhbGlkL2ludmFsaWQgY29k
ZXMgdGhhdCBhcmUgdXNlZCBpbgorLy8gdGhlIEVDTUFTY3JpcHQgSW50ZXJuYXRpb25hbGl6YXRp
b24gQVBJIFNwZWNpZmljYXRpb24gKEVDTUEtNDAyKSB0ZXN0IHN1aXRlLgorY29uc3Qgd2VsbEZv
cm1lZEN1cnJlbmN5Q29kZXMgPSBbCisgICJCT0IiLAorICAiRVVSIiwKKyAgInVzZCIsIC8vIGN1
cnJlbmN5IGNvZGVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlCisgICJYZFIiLAorICAieFRzIiwKK107
CisKK2NvbnN0IGludmFsaWRDdXJyZW5jeUNvZGVzID0gWworICAiIiwKKyAgIuKCrCIsCisgICIk
IiwKKyAgIlNGci4iLAorICAiRE0iLAorICAiS1LigqkiLAorICAiNzAyIiwKKyAgIsOfUCIsCisg
ICLEsW5yIiwKK107CisKK2NvbnN0IFJBTkdFX0VSUk9SID0gUmFuZ2VFcnJvcjsKKworY29uc3Qg
aW52YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIsKhSU5WQUxJRCEi
LAorICB2YWx1ZTogIjEuMDAiLAorfSk7CisKK2NvbnN0IGludmFsaWRUb3RhbCA9IHsKKyAgdG90
YWw6IHsKKyAgICBsYWJlbDogIkludmFsaWQgdG90YWwiLAorICAgIGFtb3VudDogaW52YWxpZEFt
b3VudCwKKyAgfSwKK307CisKKy8vIEVuc3VyZSB3ZSBkb24ndCBnZXQgZmFsc2UgcG9zaXRpdmVz
CitmdW5jdGlvbiBzbW9rZVRlc3QoKSB7CisgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0
aG9kcywgaW52YWxpZFRvdGFsKTsKK30KKworLy8gUHJvY2VzcyB0aGUgdG90YWw6Cit0ZXN0KCgp
ID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0
ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKKyAgZm9yIChjb25zdCB2YWxpZEN1cnJlbmN5IG9m
IHdlbGxGb3JtZWRDdXJyZW5jeUNvZGVzKSB7CisgICAgY29uc3QgYW1vdW50ID0geworICAgICAg
Y3VycmVuY3k6IHZhbGlkQ3VycmVuY3ksCisgICAgICB2YWx1ZTogIjEuMDAiLAorICAgIH07Cisg
ICAgY29uc3QgdG90YWwgPSB7CisgICAgICBsYWJlbDogIlRvdGFsIiwKKyAgICAgIGFtb3VudCwK
KyAgICB9OworICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbCwKKyAgICB9OworICAg
IHRyeSB7CisgICAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMp
OworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICAg
YFVuZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBkZXRhaWxzLnRvdGFsLmFtb3VudCAiJHt2YWxpZEN1
cnJlbmN5fSI6ICR7ZXJyLm1lc3NhZ2V9YAorICAgICAgKTsKKyAgICB9CisgIH0KK30sICJDaGVj
ayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIGRldGFpbHMudG90YWwuYW1vdW50Iik7CisKK3Rlc3Qo
KCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBl
Y3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IGludmFsaWRDdXJyZW5j
eSBvZiBpbnZhbGlkQ3VycmVuY3lDb2RlcykgeworICAgIGNvbnN0IGFtb3VudCA9IHsKKyAgICAg
IGN1cnJlbmN5OiBpbnZhbGlkQ3VycmVuY3ksCisgICAgICB2YWx1ZTogIjEuMDAiLAorICAgIH07
CisgICAgY29uc3QgdG90YWwgPSB7CisgICAgICBsYWJlbDogIlRvdGFsIiwKKyAgICAgIGFtb3Vu
dCwKKyAgICB9OworICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbCwKKyAgICB9Owor
ICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICBSQU5HRV9FUlJPUiwKKyAgICAgICgpID0+IHsK
KyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAg
ICAgIH0sCisgICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJvciBmb3IgZGV0YWlscy50b3RhbC5hbW91
bnQgZ2l2ZW4gKCIke2ludmFsaWRDdXJyZW5jeX0iKS5gCisgICAgKTsKKyAgfQorfSwgIkNoZWNr
IGFuZCBjYW5vbmljYWxpemUgaW52YWxpZCBkZXRhaWxzLnRvdGFsLmFtb3VudCBhbmQgcmV0aHJv
dyBhbnkgZXhjZXB0aW9ucy4iKTsKKworLy8gSWYgdGhlIGRpc3BsYXlJdGVtcyBtZW1iZXIgb2Yg
ZGV0YWlscyBpcyBwcmVzZW50LCB0aGVuIGZvciBlYWNoIGl0ZW0gaW4gZGV0YWlscy5kaXNwbGF5
SXRlbXM6Cit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21v
a2VUZXN0LCAiRXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKKyAgY29uc3QgZGlzcGxh
eUl0ZW1zID0gW107CisgIGZvciAoY29uc3QgdmFsaWRDdXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3Vy
cmVuY3lDb2RlcykgeworICAgIGNvbnN0IGFtb3VudCA9IHsKKyAgICAgIGN1cnJlbmN5OiB2YWxp
ZEN1cnJlbmN5LAorICAgICAgdmFsdWU6ICIxMjMiLAorICAgIH07CisgICAgY29uc3QgZGlzcGxh
eUl0ZW0gPSB7CisgICAgICBhbW91bnQsCisgICAgICBsYWJlbDogInZhbGlkIGN1cnJlbmN5IiwK
KyAgICB9OworICAgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFs
LAorICAgICAgZGlzcGxheUl0ZW1zOiBbZGlzcGxheUl0ZW1dLAorICAgIH07CisgICAgdHJ5IHsK
KyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgICAg
fSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgICBgVW5leHBl
Y3RlZCBlcnJvciB3aXRoIGRpc3BsYXlJdGVtIHRoYXQgaGFkIGEgdmFsaWQgY3VycmVuY3kgIiR7
dmFsaWRDdXJyZW5jeX0iOiAke2Vyci5tZXNzYWdlfWAKKyAgICAgICk7CisgICAgfQorICAgIGRp
c3BsYXlJdGVtcy5wdXNoKGRpc3BsYXlJdGVtKTsKKyAgfQorICAvLyBMZXQncyBtYWtlIHN1cmUg
aXQgZG9lc24ndCB0aHJvdyBnaXZlbiBhIGxpc3Qgb2YgdmFsaWQgZGlzcGxheUl0ZW1zCisgIHRy
eSB7CisgICAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRhaWxz
LCB7IGRpc3BsYXlJdGVtcyB9KTsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhv
ZHMsIGRldGFpbHMpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKAor
ICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0aCBtdWx0aXBsZSB2YWxpZCBkaXNwbGF5SXRlbXM6
ICR7ZXJyLm1lc3NhZ2V9YAorICAgICk7CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXpl
IHZhbGlkIGRldGFpbHMuZGlzcGxheUl0ZW1zIGFtb3VudCIpOworCit0ZXN0KCgpID0+IHsKKyAg
YXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAiRXhwZWN0ZWQgc21va2Ug
dGVzdCB0byB0aHJvdy4iKTsKKyAgZm9yIChjb25zdCBpbnZhbGlkQ3VycmVuY3kgb2YgaW52YWxp
ZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25zdCBhbW91bnQgPSB7CisgICAgICBjdXJyZW5jeTog
aW52YWxpZEN1cnJlbmN5LAorICAgICAgdmFsdWU6ICIxMjMiLAorICAgIH07CisgICAgY29uc3Qg
ZGlzcGxheUl0ZW0gPSB7CisgICAgICBhbW91bnQsCisgICAgICBsYWJlbDogImludmFsaWQgY3Vy
cmVuY3kiLAorICAgIH07CisgICAgY29uc3QgZGV0YWlscyA9IHsKKyAgICAgIHRvdGFsOiBkZWZh
dWx0VG90YWwsCisgICAgICBkaXNwbGF5SXRlbXM6IFtkaXNwbGF5SXRlbV0sCisgICAgfTsKKyAg
ICBhc3NlcnRfdGhyb3dzX2pzKAorICAgICAgUkFOR0VfRVJST1IsCisgICAgICAoKSA9PiB7Cisg
ICAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscyk7CisgICAg
ICB9LAorICAgICAgYEV4cGVjdGVkIFJhbmdlRXJyb3Igd2l0aCBpbnZhbGlkIGRpc3BsYXlJdGVt
IGN1cnJlbmN5ICIke2ludmFsaWRDdXJyZW5jeX0iLmAKKyAgICApOworICB9Cit9LCAiQ2hlY2sg
YW5kIGNhbm9uaWNhbGl6ZSBpbnZhbGlkIGRldGFpbHMuZGlzcGxheUl0ZW1zIGFtb3VudCBhbmQg
cmV0aHJvdyBSYW5nZUVycm9yLiIpOworCisvLyBQcm9jZXNzIHNoaXBwaW5nIG9wdGlvbnM6Cit0
ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhSQU5HRV9FUlJPUiwgc21va2VUZXN0LCAi
RXhwZWN0ZWQgc21va2UgdGVzdCB0byB0aHJvdy4iKTsKKyAgY29uc3Qgc2hpcHBpbmdPcHRpb25z
ID0gW107CisgIGZvciAoY29uc3QgdmFsaWRDdXJyZW5jeSBvZiB3ZWxsRm9ybWVkQ3VycmVuY3lD
b2RlcykgeworICAgIGNvbnN0IHNoaXBwaW5nT3B0aW9uID0geworICAgICAgaWQ6IGB0ZXN0YCAr
IE1hdGgucmFuZG9tKCksCisgICAgICBsYWJlbDogInNoaXBwaW5nIG9wdGlvbiIsCisgICAgICBh
bW91bnQ6IHsgY3VycmVuY3k6IHZhbGlkQ3VycmVuY3ksIHZhbHVlOiAiNS4wMCIgfSwKKyAgICAg
IHNlbGVjdGVkOiAhc2hpcHBpbmdPcHRpb25zLmxlbmd0aCwKKyAgICB9OworICAgIGNvbnN0IGRl
dGFpbHMgPSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgc2hpcHBpbmdPcHRp
b25zOiBbc2hpcHBpbmdPcHRpb25dLAorICAgIH07CisgICAgdHJ5IHsKKyAgICAgIG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hpcHBpbmc6IHRy
dWUgfSk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAg
ICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24gd2l0aCB2YWxpZCBzaGlwcGluZ09wdGlvbiBjdXJy
ZW5jeSBjb2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIubWVzc2FnZX0uYAorICAgICAgKTsK
KyAgICB9CisgICAgc2hpcHBpbmdPcHRpb25zLnB1c2goc2hpcHBpbmdPcHRpb24pOworICB9Cisg
IHRyeSB7CisgICAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHREZXRh
aWxzLCB7IHNoaXBwaW5nT3B0aW9ucyB9KTsKKyAgICBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVs
dE1ldGhvZHMsIGRldGFpbHMsIHsgcmVxdWVzdFNoaXBwaW5nOiB0cnVlIH0pOworICB9IGNhdGNo
IChlcnIpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Ig
d2l0aCBtdWx0aXBsZSB2YWxpZCBzaHBwaW5nT3B0aW9uczogJHtlcnIubWVzc2FnZX0uYAorICAg
ICk7CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIHZhbGlkIGRldGFpbHMuc2hpcHBp
bmdPcHRpb25zIGFtb3VudC4iKTsKKwordGVzdCgoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMo
UkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tlIHRlc3QgdG8gdGhyb3cuIik7
CisgIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFsaWRDdXJyZW5jeUNvZGVzKSB7
CisgICAgY29uc3Qgc2hpcHBpbmdPcHRpb24gPSB7CisgICAgICBpZDogInRlc3QiLAorICAgICAg
bGFiZWw6ICJzaGlwcGluZyBvcHRpb24iLAorICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiBpbnZh
bGlkQ3VycmVuY3ksIHZhbHVlOiAiNS4wMCIgfSwKKyAgICAgIHNlbGVjdGVkOiB0cnVlLAorICAg
IH07CisgICAgY29uc3QgZGV0YWlscyA9IHsKKyAgICAgIHRvdGFsOiBkZWZhdWx0VG90YWwsCisg
ICAgICBzaGlwcGluZ09wdGlvbnM6IFtzaGlwcGluZ09wdGlvbl0sCisgICAgfTsKKyAgICBhc3Nl
cnRfdGhyb3dzX2pzKAorICAgICAgUkFOR0VfRVJST1IsCisgICAgICAoKSA9PiB7CisgICAgICAg
IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGV0YWlscywgeyByZXF1ZXN0U2hp
cHBpbmc6IHRydWUgfSk7CisgICAgICB9LAorICAgICAgYEV4cGVjdGVkIFJhbmdlRXJyb3Igd2l0
aCBpbnZhbGlkIHNoaXBwaW5nT3B0aW9uIGN1cnJlbmN5IGNvZGUgIiR7aW52YWxpZEN1cnJlbmN5
fSIuYAorICAgICk7CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXplIGludmFsaWQgZGV0
YWlscy5zaGlwcGluZ09wdGlvbnMgYW1vdW50IGFuZCByZXRocm93IFJhbmdlRXJyb3IuIik7CisK
Ky8vIFByb2Nlc3MgcGF5bWVudCBkZXRhaWxzIG1vZGlmaWVyczoKK3Rlc3QoKCkgPT4geworICBh
c3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBzbW9rZSB0
ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Ygd2VsbEZvcm1l
ZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25zdCBtb2RpZmllciA9IHsKKyAgICAgIHN1cHBvcnRl
ZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fSIsCisgICAgICB0b3Rh
bDogeworICAgICAgICBsYWJlbDogIlRvdGFsIGR1ZSIsCisgICAgICAgIGFtb3VudDogeyBjdXJy
ZW5jeTogdmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI2OC4wMCIgfSwKKyAgICAgIH0sCisgICAgfTsK
KyAgICBjb25zdCBkZXRhaWxzID0geworICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAg
IG1vZGlmaWVyczogW21vZGlmaWVyXSwKKyAgICB9OworICAgIHRyeSB7CisgICAgICBuZXcgUGF5
bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRldGFpbHMpOworICAgIH0gY2F0Y2ggKGVycikg
eworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICAgYFVuZXhwZWN0ZWQgZXJyb3Igd2l0
aCB2YWxpZCBtb2RpZmllciBjdXJyZW5jeSBjb2RlICIke3ZhbGlkQ3VycmVuY3l9IjogJHtlcnIu
bWVzc2FnZX1gCisgICAgICApOworICAgIH0KKyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxp
emUgdmFsaWQgbW9kaWZpZXJzW25dLnRvdGFsIGFtb3VudC4iKTsKKwordGVzdCgoKSA9PiB7Cisg
IGFzc2VydF90aHJvd3NfanMoUkFOR0VfRVJST1IsIHNtb2tlVGVzdCwgIkV4cGVjdGVkIHNtb2tl
IHRlc3QgdG8gdGhyb3cuIik7CisgIGZvciAoY29uc3QgaW52YWxpZEN1cnJlbmN5IG9mIGludmFs
aWRDdXJyZW5jeUNvZGVzKSB7CisgICAgY29uc3QgbW9kaWZpZXIgPSB7CisgICAgICBzdXBwb3J0
ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0iLAorICAgICAgdG90
YWw6IHsKKyAgICAgICAgbGFiZWw6ICJUb3RhbCBkdWUiLAorICAgICAgICBhbW91bnQ6IHsgY3Vy
cmVuY3k6IGludmFsaWRDdXJyZW5jeSwgdmFsdWU6ICI2OC4wMCIgfSwKKyAgICAgIH0sCisgICAg
fTsKKyAgICBjb25zdCBkZXRhaWxzID0geworICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAg
ICAgIG1vZGlmaWVyczogW21vZGlmaWVyXSwKKyAgICB9OworICAgIGFzc2VydF90aHJvd3NfanMo
CisgICAgICBSQU5HRV9FUlJPUiwKKyAgICAgICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0
ZWQgUmFuZ2VFcnJvciB3aXRoIGludmFsaWQgbW9kaWZpZXIgY3VycmVuY3kgY29kZSAiJHtpbnZh
bGlkQ3VycmVuY3l9Ii5gCisgICAgKTsKKyAgfQorfSwgIkNoZWNrIGFuZCBjYW5vbmljYWxpemUg
aW52YWxpZCBtb2RpZmllcnNbbl0udG90YWwgYW1vdW50IGFuZCByZXRocm93IFJhbmdlRXJyb3Iu
Iik7CisKKy8vIFByb2Nlc3MgcGF5bWVudCBkZXRhaWxzIG1vZGlmaWVyczoKK3Rlc3QoKCkgPT4g
eworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJFeHBlY3RlZCBz
bW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IHZhbGlkQ3VycmVuY3kgb2Ygd2Vs
bEZvcm1lZEN1cnJlbmN5Q29kZXMpIHsKKyAgICBjb25zdCBhZGRpdGlvbmFsSXRlbSA9IHsKKyAg
ICAgIGxhYmVsOiAiYWRkaXRpb25hbEl0ZW0iLAorICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiB2
YWxpZEN1cnJlbmN5LCB2YWx1ZTogIjMuMDAiIH0sCisgICAgfTsKKyAgICBjb25zdCBtb2RpZmll
ciA9IHsKKyAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL3t7ZG9tYWluc1tub25leGlz
dGVudF19fSIsCisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgYWRkaXRpb25hbERp
c3BsYXlJdGVtczogW2FkZGl0aW9uYWxJdGVtXSwKKyAgICB9OworICAgIGNvbnN0IGRldGFpbHMg
PSB7CisgICAgICB0b3RhbDogZGVmYXVsdFRvdGFsLAorICAgICAgbW9kaWZpZXJzOiBbbW9kaWZp
ZXJdLAorICAgIH07CisgICAgdHJ5IHsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKAorICAgICAgICBgVW5leHBlY3RlZCBlcnJvciB3aXRoIHZhbGlkIGFkZGl0aW9uYWxE
aXNwbGF5SXRlbXNbbl0gY3VycmVuY3kgY29kZSAiJHt2YWxpZEN1cnJlbmN5fSI6ICR7ZXJyLm1l
c3NhZ2V9YAorICAgICAgKTsKKyAgICB9CisgIH0KK30sICJDaGVjayBhbmQgY2Fub25pY2FsaXpl
IHZhbGlkIG1vZGlmaWVyc1tuXS5hZGRpdGlvbmFEaXNwbGF5SXRlbSBhbW91bnQuIik7CisKK3Rl
c3QoKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFJBTkdFX0VSUk9SLCBzbW9rZVRlc3QsICJF
eHBlY3RlZCBzbW9rZSB0ZXN0IHRvIHRocm93LiIpOworICBmb3IgKGNvbnN0IGludmFsaWRDdXJy
ZW5jeSBvZiBpbnZhbGlkQ3VycmVuY3lDb2RlcykgeworICAgIGNvbnN0IGFkZGl0aW9uYWxJdGVt
ID0geworICAgICAgbGFiZWw6ICJhZGRpdGlvbmFsSXRlbSIsCisgICAgICBhbW91bnQ6IHsgY3Vy
cmVuY3k6IGludmFsaWRDdXJyZW5jeSwgdmFsdWU6ICIzLjAwIiB9LAorICAgIH07CisgICAgY29u
c3QgbW9kaWZpZXIgPSB7CisgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly97e2RvbWFp
bnNbbm9uZXhpc3RlbnRdfX0iLAorICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAgIGFk
ZGl0aW9uYWxEaXNwbGF5SXRlbXM6IFthZGRpdGlvbmFsSXRlbV0sCisgICAgfTsKKyAgICBjb25z
dCBkZXRhaWxzID0geworICAgICAgdG90YWw6IGRlZmF1bHRUb3RhbCwKKyAgICAgIG1vZGlmaWVy
czogW21vZGlmaWVyXSwKKyAgICB9OworICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICBSQU5H
RV9FUlJPUiwKKyAgICAgICgpID0+IHsKKyAgICAgICAgbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1
bHRNZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIH0sCisgICAgICBgRXhwZWN0ZWQgUmFuZ2VFcnJv
ciB3aXRoIGludmFsaWQgYWRkaXRpb25hbERpc3BsYXlJdGVtc1tuXSBjdXJyZW5jeSBjb2RlICIk
e2ludmFsaWRDdXJyZW5jeX0iLmAKKyAgICApOworICB9Cit9LCAiQ2hlY2sgYW5kIGNhbm9uaWNh
bGl6ZSBpbnZhbGlkIG1vZGlmaWVyc1tuXS5hZGRpdGlvbmFEaXNwbGF5SXRlbSBhbW91bnQgYW5k
IHJldGhyb3cgUmFuZ2VFcnJvci4iKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtY3Rvci1wbWktaGFuZGxpbmcuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNWY4ODhmMDM4OWY2Yzc1NmVkZThjM2U0ODFlY2U3YmNmOGI3MWNjZi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
Y3Rvci1wbWktaGFuZGxpbmcuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0OSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgTW96aWxsYSBhbmQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRl
Y2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZlcnNpdHksIEJlaWhhbmcpLiAtLT4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5UZXN0IGZvciB2YWxpZGl0eSBvZiBwYXltZW50IG1ldGhv
ZCBpZGVudGlmaWVycyBkdXJpbmcgY29uc3RydWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkvI2NvbnN0
cnVjdG9yIj4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1jb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5m
cmVlemUoewotICBjdXJyZW5jeTogIlVTRCIsCi0gIHZhbHVlOiAiMS4wIiwKLX0pOwotY29uc3Qg
dmFsaWRUb3RhbCA9IE9iamVjdC5mcmVlemUoewotICBsYWJlbDogIkRlZmF1bHQgVG90YWwiLAot
ICBhbW91bnQ6IHZhbGlkQW1vdW50LAotfSk7Ci1jb25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVj
dC5mcmVlemUoewotICB0b3RhbDogdmFsaWRUb3RhbCwKLX0pOwotCi10ZXN0KCgpID0+IHsKLSAg
Y29uc3QgdmFsaWRNZXRob2RzID0gWwotICAgICJodHRwczovL3dwdCIsCi0gICAgImh0dHBzOi8v
d3B0LmZ5aS8iLAotICAgICJodHRwczovL3dwdC5meWkvcGF5bWVudCIsCi0gICAgImh0dHBzOi8v
d3B0LmZ5aS9wYXltZW50LXJlcXVlc3QiLAotICAgICJodHRwczovL3dwdC5meWkvcGF5bWVudC1y
ZXF1ZXN0PyIsCi0gICAgImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyIs
Ci0gICAgImh0dHBzOi8vd3B0LmZ5aS9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3RhbGx5IiwK
LSAgICAiaHR0cHM6Ly93cHQuZnlpOjQ0My9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3RhbGx5
IiwKLSAgICAiaHR0cHM6Ly93cHQuZnlpOjQ0My9wYXltZW50LXJlcXVlc3Q/dGhpcz1pcyZ0b3Rh
bGx5I2ZpbmUiLAotICAgICJodHRwczovLzpAd3B0LmZ5aTo0NDMvcGF5bWVudC1yZXF1ZXN0P3Ro
aXM9aXMmdG90YWxseSPwn5GNIiwKLSAgICAiIFx0aHR0cHM6Ly93cHRcbiAiLAotICAgICJodHRw
czovL3huLS1jMXluMzZmIiwKLSAgICAiaHR0cHM6Ly/pu57nnIsiLAotICBdOwotICBmb3IgKGNv
bnN0IHZhbGlkTWV0aG9kIG9mIHZhbGlkTWV0aG9kcykgewotICAgIHRyeSB7Ci0gICAgICBjb25z
dCBtZXRob2RzID0gW3sgc3VwcG9ydGVkTWV0aG9kczogdmFsaWRNZXRob2QgfV07Ci0gICAgICBu
ZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIH0gY2F0Y2gg
KGVycikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKLSAgICAgICAgYFVuZXhwZWN0ZWQgZXhj
ZXB0aW9uIHdpdGggdmFsaWQgc3RhbmRhcmRpemVkIFBNSTogJHt2YWxpZE1ldGhvZH0uICR7ZXJy
fWAKLSAgICAgICk7Ci0gICAgfQotICB9Ci19LCAiTXVzdCBzdXBwb3J0IHZhbGlkIHN0YW5kYXJk
IFVSTCBQTUlzIik7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCB2YWxpZE1ldGhvZHMgPSBbCi0g
ICAgImUiLAotICAgICJuNmp6b2YwNW1rMmc0bGh4ci11LXEtdzEtYy1pLXBhLXR5LWJkdnM5LWhv
LWFlNy1wLW1kOC1zLXdxMy1oLXFkLWUtcS1zYSIsCi0gICAgImEtYi1xLW4tcy1wdzAiLAotICAg
ICJtLXUiLAotICAgICJzLWw1IiwKLSAgICAiazktZiIsCi0gICAgIm0tbCIsCi0gICAgInU0LW4t
dCIsCi0gICAgImk0ODhqaDYtZzE4LWZjay15Yi12Ny1pIiwKLSAgICAieC14LXQtdC1jMzQtbyIs
Ci0gICAgImJhc2ljLWNhcmQiLAotICAgIC8vIGdldHMgY29lcmNlZCB0byAiYmFzaWMtY2FyZCIs
IGZvciBjb21wYXQgd2l0aCBvbGQgdmVyc2lvbiBvZiBzcGVjCi0gICAgWyJiYXNpYy1jYXJkIl0s
Ci0gIF07Ci0gIGZvciAoY29uc3QgdmFsaWRNZXRob2Qgb2YgdmFsaWRNZXRob2RzKSB7Ci0gICAg
dHJ5IHsKLSAgICAgIGNvbnN0IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiB2YWxpZE1l
dGhvZCB9XTsKLSAgICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWls
cyk7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKAotICAgICAg
ICBgVW5leHBlY3RlZCBleGNlcHRpb24gd2l0aCB2YWxpZCBzdGFuZGFyZGl6ZWQgUE1JOiAke3Zh
bGlkTWV0aG9kfS4gJHtlcnJ9YAotICAgICAgKTsKLSAgICB9Ci0gIH0KLX0sICJNdXN0IG5vdCB0
aHJvdyBvbiBzeW50YWN0aWNhbGx5IHZhbGlkIHN0YW5kYXJkaXplZCBwYXltZW50IG1ldGhvZCBp
ZGVudGlmaWVycywgZXZlbiBpZiB0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIik7Ci0KLXRlc3QoKCkg
PT4gewotICBjb25zdCBpbnZhbGlkTWV0aG9kcyA9IFsKLSAgICAiYmFzaWMt8J+SsyIsCi0gICAg
IsKhYmFzaWMtKi1jYXJkISIsCi0gICAgIkJhc2ljLUNhcmQiLAotICAgICIwIiwKLSAgICAiLSIs
Ci0gICAgIi0tIiwKLSAgICAiYS0tYiIsCi0gICAgIi1hLS1iIiwKLSAgICAiYS1iLSIsCi0gICAg
IjAtIiwKLSAgICAiMC1hIiwKLSAgICAiYTAtLSIsCi0gICAgIkEtIiwKLSAgICAiQS1CIiwKLSAg
ICAiQS1iIiwKLSAgICAiYS0wIiwKLSAgICAiYS0wYiIsCi0gICAgIiBhLWIiLAotICAgICJcdFxu
YS1iIiwKLSAgICAiYS1iICIsCi0gICAgImEtYlxuXHQiLAotICAgICJiYXNpYy1jYXJkP25vdC1y
ZWFsbHkiLAotICAgICJiYXNpYy1jYXJkOi8vbm90LW9rIiwKLSAgICAiYmFzaWMgY2FyZCIsCi0g
ICAgIi9iYXNpYyBjYXJkLyIsCi0gICAgIkJhU2ljQ2FyRCIsCi0gICAgIkJBU0lDLUNBUkQiLAot
ICAgICIgYmFzaWMtY2FyZCAiLAotICAgICJ0aGlzIGlzIG5vdCBzdXBwb3J0ZWQiLAotICAgICIg
IiwKLSAgICAiZm9vLHZhciIsCi0gICAgWyJ2aXNhIiwibWFzdGVyY2FyZCJdLCAvLyBzdHJpbmdp
ZmllcyB0byAidmlzYSxtYXN0ZXJjYXJkIgotICBdOwotICBmb3IgKGNvbnN0IGludmFsaWRNZXRo
b2Qgb2YgaW52YWxpZE1ldGhvZHMpIHsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgbmV3IFJh
bmdlRXJyb3IoKSwKLSAgICAgICgpID0+IHsKLSAgICAgICAgY29uc3QgbWV0aG9kcyA9IFt7IHN1
cHBvcnRlZE1ldGhvZHM6IGludmFsaWRNZXRob2QgfV07Ci0gICAgICAgIG5ldyBQYXltZW50UmVx
dWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gICAgICB9LAotICAgICAgYGV4cGVjdGVk
IFJhbmdlRXJyb3IgcHJvY2Vzc2luZyBpbnZhbGlkIHN0YW5kYXJkaXplZCBQTUkgIiR7aW52YWxp
ZE1ldGhvZH0iYAotICAgICk7Ci0gIH0KLX0sICJNdXN0IHRocm93IG9uIHN5bnRhY3RpY2FsbHkg
aW52YWxpZCBzdGFuZGFyZGl6ZWQgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllcnMiKTsKLQotdGVz
dCgoKSA9PiB7Ci0gIGNvbnN0IGludmFsaWRNZXRob2RzID0gWwotICAgICJodHRwczovL3VzZXJu
YW1lQGV4YW1wbGUuY29tL3BheSIsCi0gICAgImh0dHBzOi8vOnBhc3N3b3JkQGV4YW1wbGUuY29t
L3BheSIsCi0gICAgImh0dHBzOi8vdXNlcm5hbWU6cGFzc3dvcmRAZXhhbXBsZS5jb20vcGF5IiwK
LSAgICAiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQGV4YW1wbGUuY29tL3BheSIsCi0gICAgImh0
dHA6Ly9mb28uY29tOjEwMDAwMDAwMC9wYXkiLAotICAgICJub3QtaHR0cHM6Ly93cHQuZnlpL3Bh
eW1lbnQtcmVxdWVzdCIsCi0gICAgIi4uL3JlYWxpdGl2ZS91cmwiLAotICAgICIvYWJzb2x1dGUv
Li4vcGF0aD8iLAotICAgICJodHRwczovLyIsCi0gIF07Ci0gIGZvciAoY29uc3QgaW52YWxpZE1l
dGhvZCBvZiBpbnZhbGlkTWV0aG9kcykgewotICAgIGFzc2VydF90aHJvd3MoCi0gICAgICBuZXcg
UmFuZ2VFcnJvcigpLAotICAgICAgKCkgPT4gewotICAgICAgICBjb25zdCBtZXRob2RzID0gW3sg
c3VwcG9ydGVkTWV0aG9kczogaW52YWxpZE1ldGhvZCB9XTsKLSAgICAgICAgbmV3IFBheW1lbnRS
ZXF1ZXN0KG1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgICAgIH0sCi0gICAgICBgZXhwZWN0
ZWQgUmFuZ2VFcnJvciBwcm9jZXNzaW5nIGludmFsaWQgVVJMIFBNSSAiJHtpbnZhbGlkTWV0aG9k
fSJgCi0gICAgKTsKLSAgfQotfSwgIkNvbnN0cnVjdG9yIE1VU1QgdGhyb3cgaWYgZ2l2ZW4gYW4g
aW52YWxpZCBVUkwtYmFzZWQgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllciIpOwotCi08L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLXBtaS1oYW5kbGluZy5odHRw
cy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5n
Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWEwNDc0ZGU2OWI3NTMxODM3YTUx
MzUyZTIzZGFmYWYxMWE0MDQ4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5zdWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorCitQQVNTIE11c3Qgc3VwcG9ydCB2YWxpZCBzdGFuZGFyZCBVUkwgUE1JcyAKK1BBU1MgTXVz
dCBub3QgdGhyb3cgb24gc3ludGFjdGljYWxseSB2YWxpZCBzdGFuZGFyZGl6ZWQgcGF5bWVudCBt
ZXRob2QgaWRlbnRpZmllcnMsIGV2ZW4gaWYgdGhleSBhcmUgbm90IHN1cHBvcnRlZCAKK1BBU1Mg
TXVzdCB0aHJvdyBvbiBzeW50YWN0aWNhbGx5IGludmFsaWQgc3RhbmRhcmRpemVkIHBheW1lbnQg
bWV0aG9kIGlkZW50aWZpZXJzIAorUEFTUyBDb25zdHJ1Y3RvciBNVVNUIHRocm93IGlmIGdpdmVu
IGFuIGludmFsaWQgVVJMLWJhc2VkIHBheW1lbnQgbWV0aG9kIGlkZW50aWZpZXIgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5zdWIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jdG9yLXBtaS1oYW5kbGluZy5odHRwcy5zdWIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNjE1ODM4ZjhiY2VmOTgzN2YyMTZlZTM0NjdlZGJjN2M5ZGM0ZDE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBz
LnN1Yi5odG1sCkBAIC0wLDAgKzEsMTQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gQ29weXJp
Z2h0IMKpIDIwMTcgTW96aWxsYSBhbmQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3Nh
Y2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZlcnNpdHks
IEJlaWhhbmcpLiAtLT4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0IGZvciB2
YWxpZGl0eSBvZiBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVycyBkdXJpbmcgY29uc3RydWN0aW9u
PC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jy
b3dzZXItcGF5bWVudC1hcGkvI2NvbnN0cnVjdG9yIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Citjb25z
dCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoeworICBjdXJyZW5jeTogIlVTRCIsCisgIHZh
bHVlOiAiMS4wIiwKK30pOworY29uc3QgdmFsaWRUb3RhbCA9IE9iamVjdC5mcmVlemUoeworICBs
YWJlbDogIkRlZmF1bHQgVG90YWwiLAorICBhbW91bnQ6IHZhbGlkQW1vdW50LAorfSk7Citjb25z
dCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogdmFsaWRUb3RhbCwK
K30pOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgdmFsaWRNZXRob2RzID0gWworICAgICJodHRw
czovL3dwdCIsCisgICAgImh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19LyIsCisgICAg
Imh0dHBzOi8ve3tkb21haW5zW25vbmV4aXN0ZW50XX19L3BheW1lbnQiLAorICAgICJodHRwczov
L3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3QiLAorICAgICJodHRwczov
L3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3Q/IiwKKyAgICAiaHR0cHM6
Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0P3RoaXM9aXMiLAorICAg
ICJodHRwczovL3t7ZG9tYWluc1tub25leGlzdGVudF19fS9wYXltZW50LXJlcXVlc3Q/dGhpcz1p
cyZ0b3RhbGx5IiwKKyAgICAiaHR0cHM6Ly97e2RvbWFpbnNbbm9uZXhpc3RlbnRdfX06NDQzL3Bh
eW1lbnQtcmVxdWVzdD90aGlzPWlzJnRvdGFsbHkiLAorICAgICJodHRwczovL3t7ZG9tYWluc1tu
b25leGlzdGVudF19fTo0NDMvcGF5bWVudC1yZXF1ZXN0P3RoaXM9aXMmdG90YWxseSNmaW5lIiwK
KyAgICAiaHR0cHM6Ly86QHt7ZG9tYWluc1tub25leGlzdGVudF19fTo0NDMvcGF5bWVudC1yZXF1
ZXN0P3RoaXM9aXMmdG90YWxseSPwn5GNIiwKKyAgICAiIFx0aHR0cHM6Ly93cHRcbiAiLAorICAg
ICJodHRwczovL3huLS1jMXluMzZmIiwKKyAgICAiaHR0cHM6Ly/pu57nnIsiLAorICBdOworICBm
b3IgKGNvbnN0IHZhbGlkTWV0aG9kIG9mIHZhbGlkTWV0aG9kcykgeworICAgIHRyeSB7CisgICAg
ICBjb25zdCBtZXRob2RzID0gW3sgc3VwcG9ydGVkTWV0aG9kczogdmFsaWRNZXRob2QgfV07Cisg
ICAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgIH0g
Y2F0Y2ggKGVycikgeworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICAgYFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdpdGggdmFsaWQgc3RhbmRhcmRpemVkIFBNSTogJHt2YWxpZE1ldGhvZH0u
ICR7ZXJyfWAKKyAgICAgICk7CisgICAgfQorICB9Cit9LCAiTXVzdCBzdXBwb3J0IHZhbGlkIHN0
YW5kYXJkIFVSTCBQTUlzIik7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCB2YWxpZE1ldGhvZHMg
PSBbCisgICAgImUiLAorICAgICJuNmp6b2YwNW1rMmc0bGh4ci11LXEtdzEtYy1pLXBhLXR5LWJk
dnM5LWhvLWFlNy1wLW1kOC1zLXdxMy1oLXFkLWUtcS1zYSIsCisgICAgImEtYi1xLW4tcy1wdzAi
LAorICAgICJtLXUiLAorICAgICJzLWw1IiwKKyAgICAiazktZiIsCisgICAgIm0tbCIsCisgICAg
InU0LW4tdCIsCisgICAgImk0ODhqaDYtZzE4LWZjay15Yi12Ny1pIiwKKyAgICAieC14LXQtdC1j
MzQtbyIsCisgICAgImJhc2ljLWNhcmQiLAorICAgIC8vIGdldHMgY29lcmNlZCB0byAiYmFzaWMt
Y2FyZCIsIGZvciBjb21wYXQgd2l0aCBvbGQgdmVyc2lvbiBvZiBzcGVjCisgICAgWyJiYXNpYy1j
YXJkIl0sCisgIF07CisgIGZvciAoY29uc3QgdmFsaWRNZXRob2Qgb2YgdmFsaWRNZXRob2RzKSB7
CisgICAgdHJ5IHsKKyAgICAgIGNvbnN0IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiB2
YWxpZE1ldGhvZCB9XTsKKyAgICAgIG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0
RGV0YWlscyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKAor
ICAgICAgICBgVW5leHBlY3RlZCBleGNlcHRpb24gd2l0aCB2YWxpZCBzdGFuZGFyZGl6ZWQgUE1J
OiAke3ZhbGlkTWV0aG9kfS4gJHtlcnJ9YAorICAgICAgKTsKKyAgICB9CisgIH0KK30sICJNdXN0
IG5vdCB0aHJvdyBvbiBzeW50YWN0aWNhbGx5IHZhbGlkIHN0YW5kYXJkaXplZCBwYXltZW50IG1l
dGhvZCBpZGVudGlmaWVycywgZXZlbiBpZiB0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIik7CisKK3Rl
c3QoKCkgPT4geworICBjb25zdCBpbnZhbGlkTWV0aG9kcyA9IFsKKyAgICAiYmFzaWMt8J+SsyIs
CisgICAgIsKhYmFzaWMtKi1jYXJkISIsCisgICAgIkJhc2ljLUNhcmQiLAorICAgICIwIiwKKyAg
ICAiLSIsCisgICAgIi0tIiwKKyAgICAiYS0tYiIsCisgICAgIi1hLS1iIiwKKyAgICAiYS1iLSIs
CisgICAgIjAtIiwKKyAgICAiMC1hIiwKKyAgICAiYTAtLSIsCisgICAgIkEtIiwKKyAgICAiQS1C
IiwKKyAgICAiQS1iIiwKKyAgICAiYS0wIiwKKyAgICAiYS0wYiIsCisgICAgIiBhLWIiLAorICAg
ICJcdFxuYS1iIiwKKyAgICAiYS1iICIsCisgICAgImEtYlxuXHQiLAorICAgICJiYXNpYy1jYXJk
P25vdC1yZWFsbHkiLAorICAgICJiYXNpYy1jYXJkOi8vbm90LW9rIiwKKyAgICAiYmFzaWMgY2Fy
ZCIsCisgICAgIi9iYXNpYyBjYXJkLyIsCisgICAgIkJhU2ljQ2FyRCIsCisgICAgIkJBU0lDLUNB
UkQiLAorICAgICIgYmFzaWMtY2FyZCAiLAorICAgICJ0aGlzIGlzIG5vdCBzdXBwb3J0ZWQiLAor
ICAgICIgIiwKKyAgICAiZm9vLHZhciIsCisgICAgWyJ2aXNhIiwibWFzdGVyY2FyZCJdLCAvLyBz
dHJpbmdpZmllcyB0byAidmlzYSxtYXN0ZXJjYXJkIgorICBdOworICBmb3IgKGNvbnN0IGludmFs
aWRNZXRob2Qgb2YgaW52YWxpZE1ldGhvZHMpIHsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKAorICAg
ICAgUmFuZ2VFcnJvciwKKyAgICAgICgpID0+IHsKKyAgICAgICAgY29uc3QgbWV0aG9kcyA9IFt7
IHN1cHBvcnRlZE1ldGhvZHM6IGludmFsaWRNZXRob2QgfV07CisgICAgICAgIG5ldyBQYXltZW50
UmVxdWVzdChtZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgICAgICB9LAorICAgICAgYGV4cGVj
dGVkIFJhbmdlRXJyb3IgcHJvY2Vzc2luZyBpbnZhbGlkIHN0YW5kYXJkaXplZCBQTUkgIiR7aW52
YWxpZE1ldGhvZH0iYAorICAgICk7CisgIH0KK30sICJNdXN0IHRocm93IG9uIHN5bnRhY3RpY2Fs
bHkgaW52YWxpZCBzdGFuZGFyZGl6ZWQgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllcnMiKTsKKwor
dGVzdCgoKSA9PiB7CisgIGNvbnN0IGludmFsaWRNZXRob2RzID0gWworICAgICJodHRwczovL3Vz
ZXJuYW1lQGV4YW1wbGUuY29tL3BheSIsCisgICAgImh0dHBzOi8vOnBhc3N3b3JkQGV4YW1wbGUu
Y29tL3BheSIsCisgICAgImh0dHBzOi8vdXNlcm5hbWU6cGFzc3dvcmRAZXhhbXBsZS5jb20vcGF5
IiwKKyAgICAiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQGV4YW1wbGUuY29tL3BheSIsCisgICAg
Imh0dHA6Ly9mb28uY29tOjEwMDAwMDAwMC9wYXkiLAorICAgICJub3QtaHR0cHM6Ly97e2RvbWFp
bnNbbm9uZXhpc3RlbnRdfX0vcGF5bWVudC1yZXF1ZXN0IiwKKyAgICAiLi4vcmVhbGl0aXZlL3Vy
bCIsCisgICAgIi9hYnNvbHV0ZS8uLi9wYXRoPyIsCisgICAgImh0dHBzOi8vIiwKKyAgXTsKKyAg
Zm9yIChjb25zdCBpbnZhbGlkTWV0aG9kIG9mIGludmFsaWRNZXRob2RzKSB7CisgICAgYXNzZXJ0
X3Rocm93c19qcygKKyAgICAgIFJhbmdlRXJyb3IsCisgICAgICAoKSA9PiB7CisgICAgICAgIGNv
bnN0IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiBpbnZhbGlkTWV0aG9kIH1dOworICAg
ICAgICBuZXcgUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgICAg
fSwKKyAgICAgIGBleHBlY3RlZCBSYW5nZUVycm9yIHByb2Nlc3NpbmcgaW52YWxpZCBVUkwgUE1J
ICIke2ludmFsaWRNZXRob2R9ImAKKyAgICApOworICB9Cit9LCAiQ29uc3RydWN0b3IgTVVTVCB0
aHJvdyBpZiBnaXZlbiBhbiBpbnZhbGlkIFVSTC1iYXNlZCBwYXltZW50IG1ldGhvZCBpZGVudGlm
aWVyIik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vu
cm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtbWFudWFsLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1tYW51
YWwudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MGY3MjAwZWRlYTQ4
NmI0ODA0ZjJjYmI5ZjI4MjQ3MWM0NmVkMjU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtbWFudWFsLnRlbnRhdGl2ZS5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorTWFudWFsIHRlc3RzIGZvciBoYXNF
bnJvbGxlZEluc3RydW1lbnQoKSBtZXRob2QKKworRm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgZnJv
bSB0b3AgdG8gYm90dG9tLiBDbGljayBvbiBlYWNoIGJ1dHRvbiBpbiBzZXF1ZW5jZSB3aXRob3V0
IHJlZnJlc2hpbmcgdGhlIHBhZ2UuIFNvbWUgb2YgdGhlIHRlc3RzIHdpbGwgYnJpbmcgdXAgdGhl
IFBheW1lbnQgUmVxdWVzdCBVSSBhbmQgY2xvc2UgdGhlbSBhdXRvbWF0aWNhbGx5LiBJZiBhIHBh
eW1lbnQgc2hlZXQgc3RheXMgb3BlbiwgdGhlIHRlc3QgaGFzIGZhaWxlZC4KKworRm9sbG93IGJy
b3dzZXItc3BlY2lmaWMgaW5zdHJ1Y3Rpb25zIHRvIHJlbW92ZSBhbGwgY2FyZHMgZnJvbSB0aGUg
dGVzdCBwcm9maWxlLgoraGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2Ug
d2hlbiB1c2VyIGhhcyBubyBlbnJvbGxlZCBpbnN0cnVtZW50LgorQWRkIGEgdGVzdCBWaXNhIGNh
cmQgdG8geW91ciB0ZXN0IHByb2ZpbGUsIGUuZy4gNDAxMjg4ODg4ODg4MTg4MS4KK2hhc0Vucm9s
bGVkSW5zdHJ1bWVudCgpIHJlc29sdmVzIHRvIHRydWUgd2hlbiB1c2VyIGhhcyBhbiBlbnJvbGxl
ZCBpbnN0cnVtZW50LgoraGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgY2FuIGJlIGNhbGxlZCBtdWx0
aXBsZSB0aW1lcyBpZiB0aGUgcGF5bWVudCBtZXRob2QgZGV0YWlscyBhcmUgaWRlbnRpY2FsLgor
RG9uZSEKK0lmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRh
ZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZpZXdlcnMuCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1o
YXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLW1hbnVhbC50ZW50YXRpdmUuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLW1hbnVhbC50
ZW50YXRpdmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmIxNjRmN2NjN2I4ZjFjNTdiOGZhOWZk
MTRjYmM3ZjVlZjgxZWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhh
c2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtbWFudWFsLnRlbnRhdGl2ZS5odHRwcy5odG1sCkBA
IC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPk1hbnVhbCB0ZXN0cyBmb3IgUGF5bWVudFJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVt
ZW50KCkgbWV0aG9kPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZCI+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0Pgorc2V0dXAoeworICBleHBsaWNpdF9kb25lOiB0cnVlLAorICBleHBsaWNpdF90aW1lb3V0
OiB0cnVlLAorfSk7CisKK2NvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbCisg
IHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCisgICAgZGF0YTogeworICAg
ICAgc3VwcG9ydGVkTmV0d29ya3M6IFsgJ3Zpc2EnIF0sCisgICAgfSwKKyAgfQorXSk7Citjb25z
dCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogeworICAgIGxhYmVs
OiAiVG90YWwiLAorICAgIGFtb3VudDogeworICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAg
dmFsdWU6ICIxLjAwIiwKKyAgICB9LAorICB9LAorfSk7CisKK2Z1bmN0aW9uIHRlc3RIYXNOb0Vu
cm9sbGVkSW5zdHJ1bWVudCgpIHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNv
bnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHRE
ZXRhaWxzKTsKKyAgICBhc3NlcnRfZmFsc2UoCisgICAgICBhd2FpdCByZXF1ZXN0Lmhhc0Vucm9s
bGVkSW5zdHJ1bWVudCgpLAorICAgICAgIk5vIHRlc3QgZW5yb2xsZWQgaW4gdGhlIHRlc3QgcHJv
ZmlsZS4iCisgICAgKTsKKyAgfSwgYGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHJlc29sdmVzIHRv
IGZhbHNlIHdoZW4gdXNlciBoYXMgbm8gZW5yb2xsZWQgaW5zdHJ1bWVudC5gKTsKK30KKworZnVu
Y3Rpb24gdGVzdEhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgIGF3YWl0IHJl
cXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCksCisgICAgICAiQSBjYXJkIGlzIGVucm9sbGVk
IGluIHRoZSB0ZXN0IHByb2ZpbGUuIgorICAgICk7CisgIH0sIGBoYXNFbnJvbGxlZEluc3RydW1l
bnQoKSByZXNvbHZlcyB0byB0cnVlIHdoZW4gdXNlciBoYXMgYW4gZW5yb2xsZWQgaW5zdHJ1bWVu
dC5gKTsKK30KKworZnVuY3Rpb24gdGVzdEhhc0Vucm9sbGVkSW5zdHJ1bWVudEFnYWluKCkgewor
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICAgIGFzc2VydF90
cnVlKAorICAgICAgYXdhaXQgcmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQoKSwKKyAgICAg
ICJBIGNhcmQgaXMgZW5yb2xsZWQgaW4gdGhlIHRlc3QgcHJvZmlsZS4iCisgICAgKTsKKyAgfSwg
YGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYg
dGhlIHBheW1lbnQgbWV0aG9kIGRldGFpbHMgYXJlIGlkZW50aWNhbC5gKTsKK30KKzwvc2NyaXB0
PgorCis8aDI+TWFudWFsIHRlc3RzIGZvciBoYXNFbnJvbGxlZEluc3RydW1lbnQoKSBtZXRob2Q8
L2gyPgorPHA+CisgIEZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gdG9wIHRvIGJvdHRvbS4g
Q2xpY2sgb24gZWFjaCBidXR0b24gaW4gc2VxdWVuY2UKKyAgd2l0aG91dCByZWZyZXNoaW5nIHRo
ZSBwYWdlLiBTb21lIG9mIHRoZSB0ZXN0cyB3aWxsIGJyaW5nIHVwIHRoZSBQYXltZW50CisgIFJl
cXVlc3QgVUkgYW5kIGNsb3NlIHRoZW0gYXV0b21hdGljYWxseS4gSWYgYSBwYXltZW50IHNoZWV0
IHN0YXlzIG9wZW4sIHRoZQorICB0ZXN0IGhhcyBmYWlsZWQuCis8L3A+Cis8b2w+CisgIDxsaT5G
b2xsb3cgYnJvd3Nlci1zcGVjaWZpYyBpbnN0cnVjdGlvbnMgdG8gcmVtb3ZlIGFsbCBjYXJkcyBm
cm9tIHRoZSB0ZXN0IHByb2ZpbGUuPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0i
dGVzdEhhc05vRW5yb2xsZWRJbnN0cnVtZW50KCkiPgorICAgICAgaGFzRW5yb2xsZWRJbnN0cnVt
ZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2Ugd2hlbiB1c2VyIGhhcyBubyBlbnJvbGxlZCBpbnN0cnVt
ZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+QWRkIGEgdGVzdCBWaXNhIGNhcmQg
dG8geW91ciB0ZXN0IHByb2ZpbGUsIGUuZy4gNDAxMjg4ODg4ODg4MTg4MS48L2xpPgorICA8bGk+
CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0SGFzRW5yb2xsZWRJbnN0cnVtZW50KCkiPgorICAg
ICAgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8gdHJ1ZSB3aGVuIHVzZXIgaGFz
IGFuIGVucm9sbGVkIGluc3RydW1lbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4K
KyAgICA8YnV0dG9uIG9uY2xpY2s9InRlc3RIYXNFbnJvbGxlZEluc3RydW1lbnRBZ2FpbigpIj4K
KyAgICAgIGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGlt
ZXMgaWYgdGhlIHBheW1lbnQgbWV0aG9kCisgICAgICBkZXRhaWxzIGFyZSBpZGVudGljYWwuCisg
ICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9ImRvbmUo
KSI+RG9uZSE8L2J1dHRvbj4KKyAgPC9saT4KKzwvb2w+Cis8c21hbGw+CisgIElmIHlvdSBmaW5k
IGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2Yg
dGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Js
b2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCI+c3VnZ2VzdGVkIHJldmlld2Vyczwv
YT4uCis8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVk
aW5zdHJ1bWVudC1tZXRob2QtcHJvdGVjdGlvbi50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJvdGVj
dGlvbi50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMWQ0MDMxMDdm
NmVkNTZmNjY5YTE5Y2FjZGZlMmRkN2EyZTMzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRh
dGl2ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitJZiB5b3UgZmluZCBhIGJ1
Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQg
cmV2aWV3ZXJzLgorCitGQUlMIE9wdGlvbmFsbHksIGF0IHRoZSB1c2VyIGFnZW50J3MgZGlzY3Jl
dGlvbiwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgIk5vdEFsbG93ZWRFcnJvciIg
RE9NRXhjZXB0aW9uLiBhc3NlcnRfZXF1YWxzOiBJZiBpdCB0aHJvd3MsIHRoZW4gaXQgbXVzdCBi
ZSBhIE5vdEFsbG93ZWRFcnJvci4gZXhwZWN0ZWQgIk5vdEFsbG93ZWRFcnJvciIgYnV0IGdvdCAi
VHlwZUVycm9yIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRp
bnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRhdGl2ZS5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJvdGVjdGlvbi50ZW50
YXRpdmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGExMTMwNGEyMTQyNzA0MGY3MjMxN2UzNzQ2
ZmVlYmIyNTFkMTJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vu
cm9sbGVkaW5zdHJ1bWVudC1tZXRob2QtcHJvdGVjdGlvbi50ZW50YXRpdmUuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5UZXN0cyBmb3IgUGF5bWVudFJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkg
bWV0aG9kPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL3BheW1lbnQtcmVxdWVzdC8jaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZCI+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVz
b3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB2
aXNhTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CisgICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2lj
LWNhcmQiLAorICAgIGRhdGE6IHsKKyAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbJ3Zpc2EnXQor
ICAgIH0KK30pOworY29uc3QgbWFzdGVyY2FyZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoeworICAg
IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiwKKyAgICBkYXRhOiB7CisgICAgICBzdXBw
b3J0ZWROZXR3b3JrczogWydtYXN0ZXJjYXJkJ10KKyAgICB9Cit9KTsKK2NvbnN0IGRlZmF1bHRE
ZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiB7CisgICAgbGFiZWw6ICJUb3RhbCIs
CisgICAgYW1vdW50OiB7CisgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICB2YWx1ZTogIjEu
MDAiLAorICAgIH0sCisgIH0sCit9KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAv
LyBUaGlzIHRlc3QgbWF5IG5ldmVyIGFjdHVhbGx5IGhpdCBpdHMgYXNzZXJ0aW9uLCBidXQgdGhh
dCdzIGFsbG93ZWQuCisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3Zpc2FN
ZXRob2RdLCBkZWZhdWx0RGV0YWlscyk7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgaSsr
KSB7CisgICAgdHJ5IHsKKyAgICAgIGF3YWl0IHJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50
KCk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICBl
cnIubmFtZSwKKyAgICAgICAgIk5vdEFsbG93ZWRFcnJvciIsCisgICAgICAgICJJZiBpdCB0aHJv
d3MsIHRoZW4gaXQgbXVzdCBiZSBhIE5vdEFsbG93ZWRFcnJvci4iCisgICAgICApOworICAgICAg
YnJlYWs7CisgICAgfQorICB9CisKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsK
KyAgICB0cnkgeworICAgICAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoW21h
c3RlcmNhcmRNZXRob2RdLCBkZWZhdWx0RGV0YWlscyk7CisgICAgICBhd2FpdCByZXF1ZXN0Mi5o
YXNFbnJvbGxlZEluc3RydW1lbnQoKTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoCisgICAgICAgIGVyci5uYW1lLAorICAgICAgICAiTm90QWxsb3dlZEVycm9yIiwK
KyAgICAgICAgIklmIGl0IHRocm93cywgdGhlbiBpdCBtdXN0IGJlIGEgTm90QWxsb3dlZEVycm9y
LiIKKyAgICAgICk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KK30sIGBPcHRpb25hbGx5LCBh
dCB0aGUgdXNlciBhZ2VudCdzIGRpc2NyZXRpb24sIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQg
d2l0aCBhICJOb3RBbGxvd2VkRXJyb3IiIERPTUV4Y2VwdGlvbi5gKTsKKworPC9zY3JpcHQ+CisK
KzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVn
PC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1s
Ij5zdWdnZXN0ZWQgcmV2aWV3ZXJzPC9hPi4KKzwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1t
ZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWFmNmIxNzA2
NWEzZmViNzA3Mzk2NWExMzlhNGUzMjIzZjg1MDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0lmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwg
cGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZpZXdlcnMu
CisKK0ZBSUwgaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2UgZm9yIHVu
c3VwcG9ydGVkIHBheW1lbnQgbWV0aG9kcy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiByZXF1ZXN0Lmhhc0Vucm9sbGVkSW5z
dHJ1bWVudCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1
bWVudCgpJywgJ3JlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50JyBpcyB1bmRlZmluZWQpIgor
RkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBh
IHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlv
bi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiByZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpJywgJ3JlcXVlc3QuaGFzRW5y
b2xsZWRJbnN0cnVtZW50JyBpcyB1bmRlZmluZWQpIgorRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVd
XSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIklu
dmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0
IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1NTMxMmNlMzNiMGRhMmZjZDFkMTYxOWI2ZDdmZjhjNjE0
YTRmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRp
bnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDc1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0cyBmb3Ig
UGF5bWVudFJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCkgbWV0aG9kPC90aXRsZT4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVz
dC8jaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Citjb25zdCB1bnN1
cHBvcnRlZE1ldGhvZHMgPSBbCisgIHsgc3VwcG9ydGVkTWV0aG9kczogInRoaXMtaXMtbm90LXN1
cHBvcnRlZCIgfSwKKyAgeyBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9ub3Quc3VwcG9ydGVk
IiB9LAorXTsKK2NvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbCisgIHsKKyAg
ICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCisgICAgZGF0YTogeworICAgICAgc3Vw
cG9ydGVkTmV0d29ya3M6IFsgJ3Zpc2EnIF0sCisgICAgfSwKKyAgfQorXSk7Citjb25zdCBkZWZh
dWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoeworICB0b3RhbDogeworICAgIGxhYmVsOiAiVG90
YWwiLAorICAgIGFtb3VudDogeworICAgICAgY3VycmVuY3k6ICJVU0QiLAorICAgICAgdmFsdWU6
ICIxLjAwIiwKKyAgICB9LAorICB9LAorfSk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCh1bnN1cHBvcnRlZE1ldGhvZHMs
IGRlZmF1bHREZXRhaWxzKTsKKyAgYXNzZXJ0X2ZhbHNlKAorICAgIGF3YWl0IHJlcXVlc3QuaGFz
RW5yb2xsZWRJbnN0cnVtZW50KCksCisgICAgImhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHNob3Vs
ZCByZXNvbHZlIHRvIGZhbHNlLiIKKyAgKTsKK30sIGBoYXNFbnJvbGxlZEluc3RydW1lbnQoKSBy
ZXNvbHZlcyB0byBmYWxzZSBmb3IgdW5zdXBwb3J0ZWQgcGF5bWVudCBtZXRob2RzLmApOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJl
cXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgY29uc3QgW2FjY2VwdFBy
b21pc2UsIGhhc0Vucm9sbGVkSW5zdHJ1bWVudFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoCisgICAgICAic2hvdyBwYXltZW50IHJlcXVlc3QiLAorICAgICAgKCkgPT4geworICAg
ICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7ICAvLyBTZXRzIHN0YXRl
IHRvICJpbnRlcmFjdGl2ZSIKKyAgICAgICAgY29uc3QgaGFzRW5yb2xsZWRJbnN0cnVtZW50UHJv
bWlzZSA9IHJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCk7CisgICAgICAgIHJldHVybiBb
YWNjZXB0UHJvbWlzZSwgaGFzRW5yb2xsZWRJbnN0cnVtZW50UHJvbWlzZV07CisgICAgICB9KTsK
KyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCBoYXNF
bnJvbGxlZEluc3RydW1lbnRQcm9taXNlKTsKKworICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Cisg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNl
KTsKK30sIGBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVy
biBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2Vw
dGlvbi5gKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCByZXF1ZXN0ID0g
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNv
bnN0IFthYm9ydFByb21pc2UsIGFjY2VwdFByb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxl
c3MoICJzaG93IHBheW1lbnQgcmVxdWVzdCIsICgpID0+IHsKKyAgICBjb25zdCBhY2NlcHRQcm9t
aXNlID0gcmVxdWVzdC5zaG93KCk7ICAvLyBTZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2ZSIKKyAg
ICBhY2NlcHRQcm9taXNlLmNhdGNoKCgpID0+IHt9KTsgIC8vIG5vLW9wLCBqdXN0IHRvIGhhbmRs
ZSB1bmhhbmRsZWQgcmVqZWN0aW9uIGluIGRldnRvb2xzLgorICAgIGNvbnN0IGFib3J0UHJvbWlz
ZSA9cmVxdWVzdC5hYm9ydCgpOyAgLy8gU2V0cyBzdGF0ZSB0byAiY2xvc2VkIgorICAgIHJldHVy
biBbYWJvcnRQcm9taXNlLCBhY2NlcHRQcm9taXNlXTsKKyAgfSk7CisgIGF3YWl0IGFib3J0UHJv
bWlzZTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiQWJvcnRFcnJvciIsIGFjY2Vw
dFByb21pc2UpOworCisgIGNvbnN0IGhhc0Vucm9sbGVkSW5zdHJ1bWVudFByb21pc2UgPSByZXF1
ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIGhhc0Vucm9sbGVkSW5zdHJ1bWVudFByb21pc2UpOwor
fSwgYElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21p
c2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi5gKTsK
Kzwvc2NyaXB0PgorCis8c21hbGw+CisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNl
IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vl
cyI+ZmlsZSBhIGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVx
dWVzdC9NRVRBLnltbCI+c3VnZ2VzdGVkIHJldmlld2VyczwvYT4uCis8L3NtYWxsPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LW9uc2hpcHBpbmdhZGRyZXNzY2hhbmdlLWF0dHJpYnV0
ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LW9uc2hpcHBpbmdhZGRyZXNzY2hhbmdl
LWF0dHJpYnV0ZS5odHRwcy5odG1sCmluZGV4IDVjNTRkNDg1NjhhNDA3ODFkZjg1Nzk4NmJjZGE1
ZmM4YWIwODE4OWIuLjViMjUzODk5MmY3NmM3NzQyNTlmNTJiNzM0YmM4NDQ0NjhmYzE0ZjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5nYWRkcmVzc2NoYW5nZS1hdHRy
aWJ1dGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtb25zaGlwcGluZ2FkZHJl
c3NjaGFuZ2UtYXR0cmlidXRlLmh0dHBzLmh0bWwKQEAgLTcsOCArNywxOCBAQAogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
ICJ1c2Ugc3RyaWN0IjsKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBv
cnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7Cisg
ICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhh
bXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6
IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0K
K30pOwogY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6
ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShb
YmFzaWNDYXJkXSk7Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2lj
Q2FyZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7
CiAgIHRvdGFsOiB7CiAgICAgbGFiZWw6ICJUb3RhbCIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3Qtb25zaGlwcGluZ29wdGlvbmNoYW5nZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5nb3B0aW9uY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5o
dG1sCmluZGV4IGE0ZDhmYmM0ODI1ZjhlNzk3Zjk0NzhkOGJkZDA4OWU0MzkxNDkxYTkuLjQzZWE1
ZGNjZTg3YWZlOWRmZjAzODc4OTFkNTdjMzI2NWJlMzAzZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVxdWVzdC1vbnNoaXBwaW5nb3B0aW9uY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1vbnNoaXBwaW5nb3B0aW9uY2hhbmdlLWF0dHJpYnV0ZS5o
dHRwcy5odG1sCkBAIC03LDggKzcsMTggQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7Citjb25z
dCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6
Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAg
bWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlD
b2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisg
ICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IGJhc2ljQ2Fy
ZCA9IE9iamVjdC5mcmVlemUoeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSk7Ci1j
b25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZF0pOworY29uc3Qg
ZGVmYXVsdE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFtiYXNpY0NhcmQsIGFwcGxlUGF5XSk7CiBj
b25zdCBkZWZhdWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3RhbDogewogICAgIGxh
YmVsOiAiVG90YWwiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNoaXBwaW5nVHlw
ZS1hdHRyaWJ1dGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ1R5cGUt
YXR0cmlidXRlLmh0dHBzLmh0bWwKaW5kZXggYjFlZDBkMDI4ODYwZWE5Yzk4ZGQxYTYxYmEyMzlk
Yjc1YTdlMzg2NC4uMTFmNzViMWM4NjIyMjRiNTY1NWNiNzI0ZDhjOGY1YjI1YWIxYWYwMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNoaXBwaW5nVHlwZS1hdHRyaWJ1dGUuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hpcHBpbmdUeXBlLWF0dHJpYnV0ZS5odHRw
cy5odG1sCkBAIC04LDggKzgsMTggQEAKIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7CiBjb25zdCBw
YXltZW50U2hpcGluZ1R5cGVzID0gT2JqZWN0LmZyZWV6ZShbImRlbGl2ZXJ5IiwgInBpY2t1cCIs
ICJzaGlwcGluZyJdKTsKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1cHBv
cnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7Cisg
ICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhh
bXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6
IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgIH0K
K30pOwogY29uc3QgYmFzaWNDYXJkID0gT2JqZWN0LmZyZWV6ZSh7IHN1cHBvcnRlZE1ldGhvZHM6
ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IGRlZmF1bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShb
YmFzaWNDYXJkXSk7Citjb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2lj
Q2FyZCwgYXBwbGVQYXldKTsKIGNvbnN0IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7
CiAgIHRvdGFsOiB7CiAgICAgbGFiZWw6ICIiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRo
b2QuaHR0cHMuaHRtbAppbmRleCBjNmU2OWQ0YzU4NzYwMmQ1MTYwMmFlYTQxMjI0NzMxZTY5MmFm
MmFlLi5kY2Y3OGVmNDI4MWM0MjU2ZWNiNDE0MWIzZjkzZDE1YTk0NzgwNWEzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDwhRE9D
VFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPlRlc3QgZm9yIFBheW1l
bnRSZXF1ZXN0LnNob3coKSBtZXRob2Q8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3czYy5naXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jc2hvdy1tZXRob2QiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1
ZXN0LyNzaG93LW1ldGhvZCI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3Nj
cmlwdD4KQEAgLTEwLDcgKzEwLDE2IEBACiAidXNlIHN0cmljdCI7CiBjb25zdCBkZWZhdWx0TWV0
aG9kcyA9IE9iamVjdC5mcmVlemUoWwogICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJk
IiB9LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXki
IH0sCisgIHsKKyAgICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUt
cGF5IiwKKyAgICBkYXRhOiB7CisgICAgICB2ZXJzaW9uOiAzLAorICAgICAgbWVyY2hhbnRJZGVu
dGlmaWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgICAgY291bnRyeUNvZGU6ICJVUyIs
CisgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgICAgc3Vw
cG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAorICAgIH0KKyAgfSwKIF0pOwogCiBjb25zdCBkZWZh
dWx0RGV0YWlscyA9IE9iamVjdC5mcmVlemUoewpAQCAtMjYsNTMgKzM1LDgwIEBAIGNvbnN0IGRl
ZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
ZmF1bHREZXRhaWxzKTsKICAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOwot
ICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIlNlY3VyaXR5RXJyb3IiLCBhY2NlcHRQcm9taXNl
KTsKKyAgLy8gQWJvcnQgdGhlIHJlcXVlc3QgYWZ0ZXIgMiBzZWNvbmRzIGlmIGl0IGhhcyBub3Qg
cmVqZWN0ZWQuIFRoaXMgYWxsb3dzIHRoZQorICAvLyBvdGhlciB0ZXN0cyBpbiB0aGlzIGZpbGUg
dG8gcnVuIGV2ZW4gaWYgYSBub24tY29tcGxpYW50IGJyb3dzZXIgc2hvd3MgdGhlCisgIC8vIHBh
eW1lbnQgc2hlZXQgd2l0aG91dCB1c2VyIGFjdGl2YXRpb24uCisgIHQuc3RlcF90aW1lb3V0KCgp
ID0+IHsKKyAgICB0LmZvcmNlX3RpbWVvdXQoKTsKKyAgICByZXF1ZXN0LmFib3J0KCk7CisgIH0s
IDIwMDApOworCisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIlNlY3VyaXR5RXJyb3Ii
LCBhY2NlcHRQcm9taXNlKTsKIH0sIGBDYWxsaW5nIHNob3coKSB3aXRob3V0IGJlaW5nIHRyaWdn
ZXJlZCBieSB1c2VyIGludGVyYWN0aW9uIHRocm93c2ApOwogCi1wcm9taXNlX3Rlc3QodCA9PiB7
Ci0gIHJldHVybiB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCBhc3lu
YyAoKSA9PiB7Ci0gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1
ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0byAiaW50ZXJhY3RpdmUiCi0gICAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKLSAg
ICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJB
Ym9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7Ci0gIH0pOworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2Rz
LCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IFthY2NlcHRQcm9taXNlXSA9IGF3YWl0IHRlc3Rf
ZHJpdmVyLmJsZXNzKAorICAgICJ0ZXN0OiB0aHJvd3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1d
IGlzIG5vdCAnY3JlYXRlZCciLAorICAgICgpID0+IHsKKyAgICAgIGNvbnN0IGFjY2VwdFByb21p
c2UgPSByZXF1ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0byAiaW50ZXJhY3RpdmUiCisgICAg
ICByZXR1cm4gW2FjY2VwdFByb21pc2VdOworICAgIH0pOworICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgYXdhaXQg
cmVxdWVzdC5hYm9ydCgpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVy
cm9yIiwgYWNjZXB0UHJvbWlzZSk7CiB9LCAiVGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVd
XSBpcyBub3QgJ2NyZWF0ZWQnLiIpOwogCi1wcm9taXNlX3Rlc3QodCA9PiB7Ci0gIHJldHVybiB0
ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3QiLCBhc3luYyAoKSA9PiB7Ci0g
ICAgY29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
ZmF1bHREZXRhaWxzKTsKLSAgICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChk
ZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICAgIGNvbnN0IGFjY2VwdFByb21pc2Ux
ID0gcmVxdWVzdDEuc2hvdygpOwotICAgIGNvbnN0IGFjY2VwdFByb21pc2UyID0gcmVxdWVzdDIu
c2hvdygpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2Vw
dFByb21pc2UyKTsKLSAgICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOwotICAgIGF3YWl0IHByb21p
c2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UxKTsKLSAgfSk7Citwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1
ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNvbnN0IHJlcXVlc3QyID0g
bmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGNv
bnN0IFthY2NlcHRQcm9taXNlMV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICBgdGVz
dDogcmVqZWN0IHByb21pc2Ugd2l0aCAiQWJvcnRlZEVycm9yIiBpZiBwYXltZW50IHJlcXVlc3Qg
aXMgYWxyZWFkeSBzaG93aW5nYCwKKyAgICBhc3luYyAoKSA9PiB7CisgICAgICBjb25zdCBhY2Nl
cHRQcm9taXNlMSA9IHJlcXVlc3QxLnNob3coKTsKKyAgICAgIGNvbnN0IGFjY2VwdFByb21pc2Uy
ID0gcmVxdWVzdDIuc2hvdygpOworICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAi
QWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UyKTsKKyAgICAgIHJldHVybiBbYWNjZXB0UHJvbWlz
ZTFdOworICAgIH0pOworCisgIGF3YWl0IHJlcXVlc3QxLmFib3J0KCk7CisgIGF3YWl0IHByb21p
c2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlMSk7CiB9LCBgSWYg
dGhlIHVzZXIgYWdlbnQncyAicGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmciIGJvb2xlYW4gaXMg
dHJ1ZSwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkFib3J0RXJyb3Ii
IERPTUV4Y2VwdGlvbi5gKTsKIAotcHJvbWlzZV90ZXN0KHQgPT4gewotICByZXR1cm4gdGVzdF9k
cml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCByZXF1ZXN0IiwgYXN5bmMgKCkgPT4gewotICAgIGNv
bnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoCi0gICAgICBbeyBzdXBwb3J0ZWRNZXRo
b2RzOiAidGhpcy1pcy1ub3Qtc3VwcG9ydGVkIiB9XSwKLSAgICAgIGRlZmF1bHREZXRhaWxzCi0g
ICAgKTsKLSAgICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzKHQsICJOb3RTdXBwb3J0ZWRFcnJvciIsIGFjY2VwdFByb21pc2Up
OwotICB9KTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdCgKKyAgICBbeyBzdXBwb3J0ZWRNZXRob2RzOiAidGhpcy1pcy1ub3Qt
c3VwcG9ydGVkIiB9XSwKKyAgICBkZWZhdWx0RGV0YWlscworICApOworICBjb25zdCBbYWNjZXB0
UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICBgdGVzdDogcmVqZWN0IHBy
b21pc2Ugd2l0aCAiTm90U3VwcG9ydGVkRXJyb3IiYCwKKyAgICAoKSA9PiB7CisgICAgICBjb25z
dCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisgICAgICByZXR1cm4gW2FjY2VwdFBy
b21pc2VdOworICAgIH0pOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJOb3RTdXBw
b3J0ZWRFcnJvciIsIGFjY2VwdFByb21pc2UpOwogfSwgYElmIHBheW1lbnQgbWV0aG9kIGNvbnN1
bHRhdGlvbiBwcm9kdWNlcyBubyBzdXBwb3J0ZWQgbWV0aG9kIG9mIHBheW1lbnQsIHRoZW4gcmV0
dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgIk5vdFN1cHBvcnRlZEVycm9yIiBET01FeGNl
cHRpb24uYCk7CiAKLXByb21pc2VfdGVzdCh0ID0+IHsKLSAgcmV0dXJuIHRlc3RfZHJpdmVyLmJs
ZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsIGFzeW5jICgpID0+IHsKLSAgICBjb25zdCByZXF1
ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAotICAgICAgW3sgc3VwcG9ydGVkTWV0aG9kczogImJh
c2ljLWNhcmQiIH1dLAotICAgICAgZGVmYXVsdERldGFpbHMKLSAgICApOwotICAgIGNvbnN0IHBy
b21pc2VzID0gbmV3IFNldChbcmVxdWVzdC5zaG93KCksIHJlcXVlc3Quc2hvdygpLCByZXF1ZXN0
LnNob3coKV0pOwotICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKLSAgICBhc3NlcnRfZXF1YWxz
KHByb21pc2VzLnNpemUsIDMsICJNdXN0IGhhdmUgdGhyZWUgdW5pcXVlIG9iamVjdHMiKTsKLSAg
fSk7Ci19LCAiQ2FsbGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9i
amVjdC4iKTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25z
dCBbcDEsIHAyLCBwM10gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICBgdGVzdDogY2Fs
bGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMgYSBuZXcgcHJvbWlzZWAs
CisgICAgKCkgPT4geworICAgICAgY29uc3QgcDEgPSByZXF1ZXN0LnNob3coKTsKKyAgICAgIGNv
bnN0IHAyID0gcmVxdWVzdC5zaG93KCk7CisgICAgICBjb25zdCBwMyA9IHJlcXVlc3Quc2hvdygp
OworICAgICAgcmV0dXJuIFtwMSwgcDIsIHAzXTsKKyAgICB9KTsKKyAgY29uc3QgcHJvbWlzZXMg
PSBuZXcgU2V0KFtwMSwgcDIsIHAzXSk7CisgIGFzc2VydF9lcXVhbHMocHJvbWlzZXMuc2l6ZSwg
MywgIk11c3QgaGF2ZSB0aHJlZSB1bmlxdWUgb2JqZWN0cyIpOworCisgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcDIpOworICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHAzKTsKKworICBhd2FpdCByZXF1
ZXN0LmFib3J0KCk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3Ii
LCBwMSk7Cit9LCAiQ2FsbGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMg
YSBuZXcgcHJvbWlzZS4iKTsKKwogPC9zY3JpcHQ+CiA8c21hbGw+CiAgIElmIHlvdSBmaW5kIGEg
YnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVzcG9uc2UvY29tcGxldGUtbWV0aG9kLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXNwb25zZS9jb21wbGV0ZS1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggYTlkYTll
ZWQ5Y2JhZWQwNTQwZWY1NDJmNzU4OTZmNTMyYTYwZDEzZS4uZjdmYWNkNzk4MDAxNjE4OWQzZGJl
ZTY1M2EzODg5OWRhMjZiZWQ5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9jb21w
bGV0ZS1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9j
b21wbGV0ZS1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTEyLDEzICsxMiwxNiBAQCBhc3lu
YyBmdW5jdGlvbiBydW5NYW51YWxUZXN0KHsgY29tcGxldGVXaXRoOiByZXN1bHQgfSwgYnV0dG9u
KSB7CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CiAgIGNvbnN0IHsgcmVzcG9uc2UsIHJlcXVl
c3QgfSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoKTsKICAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgIGxldCBjb21wbGV0ZVByb21pc2U7CisgICAgbGV0IGludmFsaWRD
b21wbGV0ZTsKKyAgICBsZXQgYWZ0ZXJDb21wbGV0ZTsKICAgICB0cnkgewogICAgICAgLy8gV2Ug
LmNvbXBsZXRlKCkgYXMgbm9ybWFsLCB1c2luZyB0aGUgcGFzc2VkIHRlc3QgdmFsdWUKLSAgICAg
IGNvbnN0IGNvbXBsZXRlUHJvbWlzZSA9IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7CisgICAg
ICBjb21wbGV0ZVByb21pc2UgPSByZXNwb25zZS5jb21wbGV0ZShyZXN1bHQpOwogICAgICAgYXNz
ZXJ0X3RydWUoY29tcGxldGVQcm9taXNlIGluc3RhbmNlb2YgUHJvbWlzZSwgInJldHVybnMgYSBw
cm9taXNlIik7CiAgICAgICAvLyBJbW1lZGlhdGVseSBjYWxsaW5nIGNvbXBsZXRlKCkgYWdhaW4g
eWllbGRzIGEgcmVqZWN0ZWQgcHJvbWlzZS4KLSAgICAgIGNvbnN0IGludmFsaWRDb21wbGV0ZSA9
IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMo
dCwgIkludmFsaWRTdGF0ZUVycm9yIiwgaW52YWxpZENvbXBsZXRlKTsKKyAgICAgIGludmFsaWRD
b21wbGV0ZSA9IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7CisgICAgICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIGludmFsaWRDb21wbGV0ZSk7CiAg
ICAgICAvLyBidXQgdGhlIG9yaWdpbmFsIHByb21pc2UgaXMgdW5hZmZlY3RlZAogICAgICAgY29u
c3QgcmV0dXJuZWRWYWx1ZSA9IGF3YWl0IGNvbXBsZXRlUHJvbWlzZTsKICAgICAgIGFzc2VydF9l
cXVhbHMoCkBAIC0yOCw4ICszMSw4IEBAIGFzeW5jIGZ1bmN0aW9uIHJ1bk1hbnVhbFRlc3QoeyBj
b21wbGV0ZVdpdGg6IHJlc3VsdCB9LCBidXR0b24pIHsKICAgICAgICk7CiAgICAgICAvLyBXZSBu
b3cgY2FsbCAuY29tcGxldGUoKSBhZ2FpbiwgdG8gZm9yY2UgYW4gZXhjZXB0aW9uCiAgICAgICAv
LyBiZWNhdXNlIFtbY29tcGxldGVdXSBpcyB0cnVlLgotICAgICAgY29uc3QgYWZ0ZXJDb21wbGV0
ZSA9IHJlc3BvbnNlLmNvbXBsZXRlKHJlc3VsdCk7Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwgYWZ0ZXJDb21wbGV0ZSk7CisgICAgICBhZnRlckNv
bXBsZXRlID0gcmVzcG9uc2UuY29tcGxldGUocmVzdWx0KTsKKyAgICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgYWZ0ZXJDb21wbGV0ZSk7CiAgICAg
ICBidXR0b24uaW5uZXJIVE1MID0gYOKchSAgJHtidXR0b24udGV4dENvbnRlbnR9YDsKICAgICB9
IGNhdGNoIChlcnIpIHsKICAgICAgIGJ1dHRvbi5pbm5lckhUTUwgPSBg4p2MICAke2J1dHRvbi50
ZXh0Q29udGVudH1gOwpAQCAtNDEsNyArNDQsNyBAQCBhc3luYyBmdW5jdGlvbiBydW5NYW51YWxU
ZXN0KHsgY29tcGxldGVXaXRoOiByZXN1bHQgfSwgYnV0dG9uKSB7CiAgICAgICBhZnRlckNvbXBs
ZXRlLAogICAgIF0pOwogICAgIGFzc2VydF9lcXVhbHMoCi0gICAgICBhbGxQcm9taXNlcy5sZW5n
dGgsCisgICAgICBhbGxQcm9taXNlcy5zaXplLAogICAgICAgMywKICAgICAgICJDYWxsaW5nIGNv
bXBsZXRlKCkgbXVsdGlwbGUgdGltZXMgaXMgYWx3YXlzIGEgbmV3IG9iamVjdC4iCiAgICAgKTsK
QEAgLTY4LDcgKzcxLDcgQEAgYXN5bmMgZnVuY3Rpb24gcnVuTWFudWFsVGVzdCh7IGNvbXBsZXRl
V2l0aDogcmVzdWx0IH0sIGJ1dHRvbikgewogICAgIDwvYnV0dG9uPgogICA8L2xpPgogICA8bGk+
Ci0gICAgPGJ1dHRvbiBvbmNsaWNrPSJydW5NYW51YWxUZXN0KHtjb21wbGV0ZVdpdGg6ICd1bmtu
b3duJ30sIHRoaXMpIj4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InJ1bk1hbnVhbFRlc3Qoe2NvbXBs
ZXRlV2l0aDogdW5kZWZpbmVkfSwgdGhpcykiPgogICAgICAgUGFzc2luZyBubyBhcmd1bWVudCBk
ZWZhdWx0cyB0byAidW5rbm93biIsCiAgICAgICBldmVudHVhbGx5IGNsb3NpbmcgdGhlIHNoZWV0
IGFuZCBkb2Vzbid0IHRocm93LgogICAgIDwvYnV0dG9uPgpAQCAtNzksMTAgKzgyLDE4IEBAIGFz
eW5jIGZ1bmN0aW9uIHJ1bk1hbnVhbFRlc3QoeyBjb21wbGV0ZVdpdGg6IHJlc3VsdCB9LCBidXR0
b24pIHsKICAgICA8L2J1dHRvbj4KICAgPC9saT4KICAgPGxpPgotICAgIDxidXR0b24gb25jbGlj
az0icnVuTWFudWFsVGVzdCh7Y29tcGxldGVXaXRoOiAnZmFpbCd9LCB0aGlzKS50aGVuKGRvbmUp
Ij4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InJ1bk1hbnVhbFRlc3Qoe2NvbXBsZXRlV2l0aDogJ2Zh
aWwnfSwgdGhpcykiPgogICAgICAgUGFzc2luZyAiZmFpbCIgZXZlbnR1YWxseSBjbG9zZXMgdGhl
IHNoZWV0IGFuZCBkb2Vzbid0IHRocm93LgogICAgIDwvYnV0dG9uPgogICA8L2xpPgorICA8bGk+
CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJydW5NYW51YWxUZXN0KHtjb21wbGV0ZVdpdGg6ICd1bmtu
b3duJ30sIHRoaXMpIj4KKyAgICAgIFBhc3NpbmcgInVua25vd24iIGV2ZW50dWFsbHkgY2xvc2Vz
IHRoZSBzaGVldCBhbmQgZG9lc24ndCB0aHJvdy4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAg
PGxpPgorICAgIDxidXR0b24gb25jbGljaz0iZG9uZSgpIj5Eb25lITwvYnV0dG9uPgorICA8L2xp
PgogPC9vbD4KIDxzbWFsbD4KICAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEg
aHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5m
aWxlIGEgYnVnPC9hPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9oZWxwZXJzLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXNwb25zZS9oZWxwZXJzLmpzCmluZGV4IDgwN2Y3OTRlNzFlZmIzNWY4
NjIyZWIwYWE0NzhhZTZhNjAzOWMyNjAuLjNlNGY1Y2ZkMzZmODk4YzExNjcxN2MxMTUxODA2Zjk2
NjUxMWE5NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvaGVscGVycy5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlc3BvbnNlL2hlbHBlcnMuanMKQEAgLTEsMTAgKzEsMjEgQEAKIHNldHVw
KHsgZXhwbGljaXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsKIAorY29u
c3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBz
Oi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAg
IG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5
Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAor
ICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CisKIGNvbnN0IHZhbGlk
TWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJk
IiwKIH0pOwogCi1jb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhv
ZF0pOworY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRob2QsIGFw
cGxlUGF5XSk7CiAKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGN1cnJl
bmN5OiAiVVNEIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2Uvb25wYXllcmRldGFp
bGNoYW5nZS1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNl
L29ucGF5ZXJkZXRhaWxjaGFuZ2UtYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGM4
ZGQ5MjYzNmM2MzkyYjI0MzZjODIzNTM0MDM1NWM0NTI5ZTEyYzEuLjU3MzE5NTJjMGViYzBlODA4
NWNiMzQwYjViN2NmYzQ3ODg0OWZjOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2Uv
b25wYXllcmRldGFpbGNoYW5nZS1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
cGF5bWVudC1yZXNwb25zZS9vbnBheWVyZGV0YWlsY2hhbmdlLWF0dHJpYnV0ZS1tYW51YWwuaHR0
cHMuaHRtbApAQCAtMTYsNyArMTYsMTQgQEAgZnVuY3Rpb24gcnVuVGVzdChidXR0b24sIG9wdGlv
bnMsIGV4cGVjdGVkKXsKICAgICBhd2FpdCByZXNwb25zZS5yZXRyeSh7IGVycm9yIH0pOwogICAg
IGNvbnN0IGV2ZW50ID0gYXdhaXQgZXZlbnRQcm9taXNlOwogICAgIGFzc2VydF90cnVlKGV2ZW50
IGluc3RhbmNlb2YgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCk7Ci0gICAgZm9yKGNvbnN0IFtw
cm9wLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZXhwZWN0ZWQpKXsKKyAgICBmb3IoW3Byb3As
IHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhleHBlY3RlZCkpeworICAgICAgaWYgKHByb3AgPT09
ICdwYXllclBob25lJykgeworICAgICAgICAvLyB8cGF5ZXJQaG9uZXwgbWF5IG9wdGlvbmFsbHkg
YWRoZXJlIHRvIEUxNjQgc3RydWN0dXJlLCB3aGljaCBkb2VzIG5vdAorICAgICAgICAvLyBjb250
YWluIGZvcm1hdHRpbmcsIGUuZy4gKzE4MDAwMDAwMCBpbnN0ZWFkIG9mICsxLTgwMC0wMDAtMDAw
MC4KKyAgICAgICAgLy8gU3RyaXAgb3V0IHRoZSBmb3JtYXR0aW5nIGluIGNhc2UgdGhlIHVzZXIg
YWdlbnQgaW1wbGVtZW50cyBFMTY0LgorICAgICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8v
cGF5bWVudC1yZXF1ZXN0LyNhZGRyZXNzaW5pdC1kaWN0aW9uYXJ5CisgICAgICAgIHZhbHVlID0g
dmFsdWUucmVwbGFjZSgvWy1cKFwpIF0vZywgJycpOworICAgICAgfQogICAgICAgYXNzZXJ0X2Vx
dWFscyhyZXNwb25zZVtwcm9wXSwgdmFsdWUpOwogICAgIH0KICAgICBhd2FpdCByZXNwb25zZS5j
b21wbGV0ZSgic3VjY2VzcyIpOwpAQCAtNTIsNyArNTksNyBAQCBmdW5jdGlvbiBydW5UZXN0KGJ1
dHRvbiwgb3B0aW9ucywgZXhwZWN0ZWQpewogICAgIDxwPgogICAgICAgQ2hhbmdlIHBheWVyJ3Mg
cGhvbmUgdG8gIisxLTgwMC0wMDAtMDAwMCIuCiAgICAgPC9wPgotICAgIDxidXR0b24gb25jbGlj
az0icnVuVGVzdCh0aGlzLCB7cmVxdWVzdFBheWVyUGhvbmU6IHRydWV9LCB7IHBheWVyUGhvbmU6
ICcrMS04MDAtMDAwLTAwMDAnIH0pIj4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InJ1blRlc3QodGhp
cywge3JlcXVlc3RQYXllclBob25lOiB0cnVlfSwgeyBwYXllclBob25lOiAnKzE4MDAwMDAwMDAw
JyB9KSI+CiAgICAgICBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IGlzIGRpc3BhdGNoZWQgd2hl
biBwYXllciBwaG9uZSBjaGFuZ2VzLgogICAgIDwvYnV0dG9uPgogICA8L2xpPgpAQCAtNjIsNSAr
NjksNSBAQCBmdW5jdGlvbiBydW5UZXN0KGJ1dHRvbiwgb3B0aW9ucywgZXhwZWN0ZWQpewogPC9v
bD4KIDxzbWFsbD4KICAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0i
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEg
YnVnPC9hPgotICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L09XTkVS
UyI+b3duZXJzPC9hPi4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVz
dC9NRVRBLnltbCI+b3duZXJzPC9hPi4KIDwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRhdGVXaXRoLWltbWVkaWF0ZS1tYW51YWwu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFu
Z2UtdXBkYXRlV2l0aC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMGJlNTAzMzg2OWFlMTFjNTFhMzlhYzZhMjc5NjIwYmQ5NGQyM2E2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0
aC1pbW1lZGlhdGUtbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitI
YW5kbGluZyBQYXltZW50UmVzcG9uc2UucHJvdG90eXBlLm9ucGF5ZXJkZXRhaWxjaGFuZ2UgZXZl
bnRzCisKK1RoZSB0ZXN0IGJyaW5ncyB1cCB0aGUgUGF5bWVudCBSZXF1ZXN0IFVJIHdpbmRvdy4g
V2hlbiBzaG93biB0aGUgcGF5bWVudCBzaGVldCwgdXNlIGFueSBkZXRhaWxzIGFuZCBoaXQgcGF5
LgorCitXaGVuIGFza2VkIHRvIHJldHJ5IHRoZSBwYXltZW50OgorCitDaGFuZ2UgcGF5ZXIncyBu
YW1lIHRvIGFueXRoaW5nLgorCit1cGRhdGVXaXRoKCkgbXVzdCBiZSBjYWxsZWQgaW1tZWRpYXRl
bHksIG90aGVyd2lzZSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yLgorRE9ORSEKK0lm
IHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2Yg
dGhlIG93bmVycy4KKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisK
K1BBU1MgQ2FuIGNvbnN0cnVjdCBhIHBheW1lbnQgcmVxdWVzdCAoc21va2UgdGVzdCkuIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRhdGVX
aXRoLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5
ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgtaW1tZWRpYXRlLW1hbnVhbC5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdlMzVkNzg3MDA2ZWJiNTU0YzMwNWFiYzM4YTQyN2E0MTM1Njc2ZjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11cGRh
dGVXaXRoLWltbWVkaWF0ZS1tYW51YWwuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+RGlzcGF0Y2hpbmcgUGF5
bWVudFJlcXVlc3RVcGRhdGVFdmVudCBmb3IgInBheWVyZGV0YWlsc2NoYW5nZSI8L3RpdGxlPgor
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdEltbWVkaWF0
ZVVwZGF0ZSh7IHRleHRDb250ZW50OiB0ZXN0TmFtZSB9KSB7CisgIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldFBheW1lbnRSZXNwb25zZSh7
IHJlcXVlc3RQYXllck5hbWU6IHRydWUgfSk7CisgICAgY29uc3QgZXZlbnRQcm9taXNlID0gbmV3
IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgcmVzcG9uc2UuYWRkRXZlbnRM
aXN0ZW5lcigKKyAgICAgICAgInBheWVyZGV0YWlsY2hhbmdlIiwKKyAgICAgICAgZXYgPT4gewor
ICAgICAgICAgIC8vIEZvcmNlcyB1cGRhdGVXaXRoKCkgdG8gYmUgcnVuIGluIHRoZSBuZXh0IGV2
ZW50IGxvb3AgdGljayBzbyB0aGF0CisgICAgICAgICAgLy8gW1t3YWl0Rm9yVXBkYXRlXV0gaXMg
YWxyZWFkeSB0cnVlIHdoZW4gaXQgcnVucy4KKyAgICAgICAgICB0LnN0ZXBfdGltZW91dCgoKSA9
PiB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICBldi51cGRhdGVXaXRoKHt9KTsK
KyAgICAgICAgICAgICAgcmVzb2x2ZSgpOyAvLyBUaGlzIGlzIGJhZC4KKyAgICAgICAgICAgIH0g
Y2F0Y2ggKGVycikgeworICAgICAgICAgICAgICByZWplY3QoZXJyKTsgLy8gdGhpcyBpcyBnb29k
LgorICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAgICAgICB9LAorICAgICAgICB7IG9u
Y2U6IHRydWUgfQorICAgICAgKTsKKyAgICB9KTsKKworICAgIGNvbnN0IHJldHJ5UHJvbWlzZSA9
IHJlc3BvbnNlLnJldHJ5KHsKKyAgICAgIHBheWVyOiB7IG5hbWU6ICJDaGFuZ2UgbWUhIiB9LAor
ICAgIH0pOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICB0LAorICAgICAg
IkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgIGV2ZW50UHJvbWlzZSwKKyAgICAgICJUaGUgZXZl
bnQgbG9vcCBhbHJlYWR5IHNwdW4sIHNvIFtbd2FpdEZvclVwZGF0ZV1dIGlzIG5vdyB0cnVlIgor
ICAgICk7CisgICAgYXdhaXQgcmV0cnlQcm9taXNlOworICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBs
ZXRlKCJzdWNjZXNzIik7CisgIH0sIHRlc3ROYW1lLnRyaW0oKSk7Cit9Cis8L3NjcmlwdD4KKzxo
Mj5IYW5kbGluZyBQYXltZW50UmVzcG9uc2UucHJvdG90eXBlLm9ucGF5ZXJkZXRhaWxjaGFuZ2Ug
ZXZlbnRzPC9oMj4KKzxwPgorICBUaGUgdGVzdCBicmluZ3MgdXAgdGhlIFBheW1lbnQgUmVxdWVz
dCBVSSB3aW5kb3cuCisgIFdoZW4gc2hvd24gdGhlIHBheW1lbnQgc2hlZXQsIHVzZSBhbnkgZGV0
YWlscyBhbmQgaGl0IHBheS4KKzwvcD4KKzxwPgorICBXaGVuIGFza2VkIHRvIHJldHJ5IHRoZSBw
YXltZW50OgorPC9wPgorPG9sPgorICA8bGk+CisgICAgPHA+CisgICAgICBDaGFuZ2UgcGF5ZXIn
cyBuYW1lIHRvIGFueXRoaW5nLgorICAgIDwvcD4KKyAgICA8YnV0dG9uIG9uY2xpY2s9InRlc3RJ
bW1lZGlhdGVVcGRhdGUodGhpcyk7Ij4KKyAgICAgIHVwZGF0ZVdpdGgoKSBtdXN0IGJlIGNhbGxl
ZCBpbW1lZGlhdGVseSwgb3RoZXJ3aXNlIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Iu
CisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uIG9uY2xpY2s9ImRv
bmUoKTsiPkRPTkUhPC9idXR0b24+CisgIDwvbGk+Cis8L29sPgorPHNtYWxsPgorICBJZiB5b3Ug
ZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMiPmZpbGUgYSBidWc8L2E+CisgIGFuZCB0YWcgb25l
IG9mIHRoZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwiPm93bmVyczwvYT4uCis8L3Nt
YWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2Ut
dXBkYXRlV2l0aC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY5M2Q3YTVhZWNhZTEwMzZhZmEzMGQwZDgyOTQ5NDVmZWYzY2E3MzkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11
cGRhdGVXaXRoLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorSGFu
ZGxpbmcgUGF5bWVudFJlc3BvbnNlLnByb3RvdHlwZS5vbnBheWVyZGV0YWlsY2hhbmdlIGV2ZW50
cworCitUaGUgdGVzdCBicmluZ3MgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cuIFdo
ZW4gc2hvd24gdGhlIHBheW1lbnQgc2hlZXQsIHVzZSBhbnkgZGV0YWlscyBhbmQgaGl0IHBheS4K
KworV2hlbiBhc2tlZCB0byByZXRyeSB0aGUgcGF5bWVudDoKKworQ2hhbmdlIHBheWVyJ3MgbmFt
ZSB0byBhbnl0aGluZy4KKworQ2FsbGluZyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IHVwZGF0
ZVdpdGgoKSB0d2ljZSB0aHJvd3MgYW4gIkludmFsaWRTdGF0ZUVycm9yIi4KK0RPTkUhCitJZiB5
b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRo
ZSBvd25lcnMuCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitQ
QVNTIENhbiBjb25zdHJ1Y3QgYSBwYXltZW50IHJlcXVlc3QgKHNtb2tlIHRlc3QpLiAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0
aC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hh
bmdlLXVwZGF0ZVdpdGgtbWFudWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE3MzQyMzY1ZDY0
NGY2NDcwZWEyY2UyNWZlODVjZmZhZTY0Nzk0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVzcG9uc2UvcGF5ZXJkZXRhaWxzY2hhbmdlLXVwZGF0ZVdpdGgtbWFudWFsLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw1NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPkRpc3BhdGNoaW5nIFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQgZm9yICJwYXll
cmRldGFpbHNjaGFuZ2UiPC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIHJ1blRlc3QoYnV0dG9uKSB7CisgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7
CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0
IGdldFBheW1lbnRSZXNwb25zZSh7IHJlcXVlc3RQYXllck5hbWU6IHRydWUgfSk7CisgICAgY29u
c3QgZXZlbnRQcm9taXNlID0gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4geworICAgICAgcmVz
cG9uc2UuYWRkRXZlbnRMaXN0ZW5lcigicGF5ZXJkZXRhaWxjaGFuZ2UiLCBldiA9PiB7CisgICAg
ICAgIC8vIFtbd2FpdEZvclVwZGF0ZV1dIGJlY29tZXMgdHJ1ZS4uLgorICAgICAgICBldi51cGRh
dGVXaXRoKHt9KTsKKyAgICAgICAgLy8gU28gY2FsbGluZyBpdCBhZ2FpbiB0aHJvd3MgIkludmFs
aWRTdGF0ZUVycm9yIi4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBldi51cGRhdGVXaXRoKHt9
KTsKKyAgICAgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICAgICAgcmVqZWN0KGVycik7CisgICAg
ICAgIH0KKyAgICAgIH0pOworICAgIH0pOworICAgIGF3YWl0IHJlc3BvbnNlLnJldHJ5KHsKKyAg
ICAgIHBheWVyOiB7IG5hbWU6ICJDaGFuZ2UgbWUhIiB9LAorICAgIH0pOworICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgZXZlbnRQcm9taXNlKTsK
KyAgICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3VjY2VzcyIpOworICB9LCBidXR0b24udGV4
dENvbnRlbnQudHJpbSgpKTsKK30KKzwvc2NyaXB0PgorPGgyPkhhbmRsaW5nIFBheW1lbnRSZXNw
b25zZS5wcm90b3R5cGUub25wYXllcmRldGFpbGNoYW5nZSBldmVudHM8L2gyPgorPHA+CisgIFRo
ZSB0ZXN0IGJyaW5ncyB1cCB0aGUgUGF5bWVudCBSZXF1ZXN0IFVJIHdpbmRvdy4KKyAgV2hlbiBz
aG93biB0aGUgcGF5bWVudCBzaGVldCwgdXNlIGFueSBkZXRhaWxzIGFuZCBoaXQgcGF5LgorPC9w
PgorPHA+CisgIFdoZW4gYXNrZWQgdG8gcmV0cnkgdGhlIHBheW1lbnQ6Cis8L3A+Cis8b2w+Cisg
IDxsaT4KKyAgICA8cD4KKyAgICAgIENoYW5nZSBwYXllcidzIG5hbWUgdG8gYW55dGhpbmcuCisg
ICAgPC9wPgorICAgIDxidXR0b24gb25jbGljaz0icnVuVGVzdCh0aGlzKTsiPgorICAgICAgQ2Fs
bGluZyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IHVwZGF0ZVdpdGgoKSB0d2ljZSB0aHJvd3Mg
YW4gIkludmFsaWRTdGF0ZUVycm9yIi4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgor
ICAgIDxidXR0b24gb25jbGljaz0iZG9uZSgpOyI+RE9ORSE8L2J1dHRvbj4KKyAgPC9saT4KKzwv
b2w+Cis8c21hbGw+CisgIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9
Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBh
IGJ1ZzwvYT4KKyAgYW5kIHRhZyBvbmUgb2YgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRB
LnltbCI+b3duZXJzPC9hPi4KKzwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3Bv
bnNlL3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVzcG9uc2UvcmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDYw
ZGQ5NjU1ZGQ1YmFmY2RiNzc2OGI5Mjk2OTZjYjkxMDQyMTRiMjkuLjI4YmI1MzMxM2RjZTkyNjY0
NTNiODlmM2JkOThkN2MwMWNiOWVhNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2Uv
cmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVzcG9uc2UvcmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVhbC5odHRwcy5odG1sCkBAIC0xMSw3
ICsxMSwxNyBAQCBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6
IHRydWUgfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0
ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVj
dC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUo
eworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwKKyAg
ZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVyY2hh
bnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50Q2Fw
YWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlz
YSJdLAorICB9Cit9KTsKK2NvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlk
TWV0aG9kLCBhcHBsZVBheV0pOwogY29uc3QgdmFsaWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsK
ICAgY3VycmVuY3k6ICJVU0QiLAogICB2YWx1ZTogIjUuMDAiLApAQCAtNjIsNyArNzIsNyBAQCBm
dW5jdGlvbiBtZXRob2ROb3RGdWxseUFjdGl2ZShidXR0b24sIG1ldGhvZCwgLi4uYXJncykgewog
ICAgIC8vIE5vdywgcmVzcG9uc2UncyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQg
aXMgbm8gbG9uZ2VyIGFjdGl2ZS4KICAgICAvLyBTbywgcHJvbWlzZSBuZWVkcyB0byByZWplY3Qg
YXBwcm9wcmlhdGVseS4KICAgICBjb25zdCBwcm9taXNlID0gcmVzcG9uc2VbbWV0aG9kTmFtZV0o
Li4uYXJncyk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgcHJvbWlz
ZSwKQEAgLTk3LDcgKzEwNyw3IEBAIGZ1bmN0aW9uIG1ldGhvZEJlY29tZXNOb3RGdWxseUFjdGl2
ZShidXR0b24sIG1ldGhvZE5hbWUsIC4uLmFyZ3MpIHsKIAogICAgIC8vIE5vdywgcmVzcG9uc2Un
cyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4K
ICAgICAvLyBTbywgcHJvbWlzZSBuZWVkcyB0byByZWplY3QgYXBwcm9wcmlhdGVseS4KLSAgICBh
d2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAg
ICAgIHQsCiAgICAgICAiQWJvcnRFcnJvciIsCiAgICAgICBwcm9taXNlLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXNwb25zZS9yZXRyeS1tZXRob2QtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbAppbmRleCAxNmVk
MTVlNTQ5MDJiOTM0ODVlZTNiZTdhMjYzNTgyM2U4NzYzYjA2Li5hNWFhYjQ5ZTM4N2QzMjZjNjhi
Y2NhMzJkMmFkNWZlNTkzODVmNTE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3Jl
dHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3Jl
dHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBj
aGVja0NvbXBsZXRlZENhbnRSZXRyeShidXR0b24pIHsKICAgICBjb25zdCB7IHJlc3BvbnNlIH0g
PSBhd2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3BvbnNlKCk7CiAgICAgLy8gc2V0cyByZXNwb25z
ZS5bW2NvbXBsZXRlXV0gdG8gdHJ1ZS4KICAgICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3Vj
Y2VzcyIpOwotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMoCisgICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAg
IHJlc3BvbnNlLnJldHJ5KCksCkBAIC0zOSw3ICszOSw3IEBAIGZ1bmN0aW9uIHJlcGVhdGVkQ2Fs
bHNUb1JldHJ5KGJ1dHRvbikgewogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29u
c3QgeyByZXNwb25zZSB9ID0gYXdhaXQgZ2V0UGF5bWVudFJlcXVlc3RSZXNwb25zZSgpOwogICAg
IGNvbnN0IHJldHJ5UHJvbWlzZSA9IHJlc3BvbnNlLnJldHJ5KCk7Ci0gICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAg
ICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIHJlc3BvbnNlLnJldHJ5KCksCkBAIC01NSwx
MiArNTUsMzAgQEAgZnVuY3Rpb24gY2FsbENvbXBsZXRlV2hpbGVSZXRyeWluZyhidXR0b24pIHsK
ICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF3
YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoKTsKICAgICBjb25zdCByZXRyeVByb21pc2Ug
PSByZXNwb25zZS5yZXRyeSgpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBjb25z
dCBjb21wbGV0ZVByb21pc2UxID0gcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiKTsKKyAgICBj
b25zdCBjb21wbGV0ZVByb21pc2UyID0gcmVzcG9uc2UuY29tcGxldGUoImZhaWwiKTsKKyAgICBh
c3NlcnRfbm90X2VxdWFscygKKyAgICAgIGNvbXBsZXRlUHJvbWlzZTEsCisgICAgICBjb21wbGV0
ZVByb21pc2UyLAorICAgICAgImNvbXBsZXRlKCkgbXVzdCByZXR1cm4gdW5pcXVlIHByb21pc2Vz
IgorICAgICk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAg
ICAiSW52YWxpZFN0YXRlRXJyb3IiLAotICAgICAgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3Mi
KSwKKyAgICAgIGNvbXBsZXRlUHJvbWlzZTEsCisgICAgICAiQ2FsbGluZyBjb21wbGV0ZSgpIHdo
aWxlIHJldHJ5aW5nIHJlamVjdHMgd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvciIKKyAgICApOwor
ICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICB0LAorICAgICAgIkludmFsaWRT
dGF0ZUVycm9yIiwKKyAgICAgIGNvbXBsZXRlUHJvbWlzZTIsCiAgICAgICAiQ2FsbGluZyBjb21w
bGV0ZSgpIHdoaWxlIHJldHJ5aW5nIHJlamVjdHMgd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvciIK
ICAgICApOworICAgIGFzc2VydF9ub3RfZXF1YWxzKAorICAgICAgY29tcGxldGVQcm9taXNlMSwK
KyAgICAgIGNvbXBsZXRlUHJvbWlzZTIsCisgICAgICAiY29tcGxldGUoKSBtdXN0IHJldHVybiB1
bmlxdWUgcHJvbWlzZXMiCisgICAgKTsKICAgICBhd2FpdCByZXRyeVByb21pc2U7CiAgICAgYXdh
aXQgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiKTsKICAgfSwgYnV0dG9uLnRleHRDb250ZW50
LnRyaW0oKSk7CkBAIC03MSw3ICs4OSw3IEBAIGZ1bmN0aW9uIGNhbGxpbmdSZXF1ZXN0QWJvcnRN
dXN0Tm90QWJvcnQoYnV0dG9uKSB7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBj
b25zdCB7IHJlc3BvbnNlLCByZXF1ZXN0IH0gPSBhd2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3Bv
bnNlKCk7CiAgICAgY29uc3QgcmV0cnlQcm9taXNlID0gcmVzcG9uc2UucmV0cnkoKTsKLSAgICBh
d2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAg
ICAgIHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgcmVxdWVzdC5hYm9ydCgp
LApAQCAtOTcsNyArMTE1LDcgQEAgZnVuY3Rpb24gY2FuUmV0cnlNdWx0aXBsZVRpbWVzKGJ1dHRv
bikgewogICAgICAgIkV4cGVjdGVkIHVuZGVmaW5lZCBhcyB0aGUgcmVzb2x2ZSB2YWx1ZSIKICAg
ICApOwogICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRlKCJzdWNjZXNzIik7Ci0gICAgYXdhaXQg
cHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0
LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAgIHJlc3BvbnNlLnJldHJ5KCksCkBA
IC0xMTAsMTkgKzEyOCwxOSBAQCBmdW5jdGlvbiB1c2VyQ2FuQWJvcnRBUmV0cnkoYnV0dG9uKSB7
CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSBhd2FpdCBnZXRQYXltZW50UmVxdWVzdFJlc3BvbnNl
KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20oCiAgICAgICB0LAogICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgcmVzcG9uc2UucmV0
cnkoKSwKICAgICAgICJUaGUgdXNlciBhYm9ydGluZyBhIHJldHJ5IHJlamVjdHMgd2l0aCBhIEFi
b3J0RXJyb3IiCiAgICAgKTsKLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCisgICAgYXdhaXQg
cHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgIHQsCiAgICAgICAiSW52YWxpZFN0YXRlRXJyb3Ii
LAogICAgICAgcmVzcG9uc2UucmV0cnkoKSwKICAgICAgICJBZnRlciB0aGUgdXNlciBhYm9ydHMs
IHJlc3BvbnNlIFtbY29tcGxldGVdXSBpcyB0cnVlIHNvIHJldHJ5KCkgbXVzdCByZWplY3Qgd2l0
aCBJbnZhbGlkU3RhdGVFcnJvciIKICAgICApOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygK
KyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgdCwKICAgICAgICJJbnZhbGlk
U3RhdGVFcnJvciIsCiAgICAgICByZXNwb25zZS5jb21wbGV0ZSgic3VjY2VzcyIpLApAQCAtMTQ2
LDIzICsxNjQsMjUgQEAgZnVuY3Rpb24gdXNlcklzU2hvd25FcnJvcnNGaWVsZHMoYnV0dG9uKSB7
CiBmdW5jdGlvbiBhYm9ydFRoZVVwZGF0ZShidXR0b24pIHsKICAgYnV0dG9uLmRpc2FibGVkID0g
dHJ1ZTsKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0IHsgcmVzcG9uc2Us
IHJlcXVlc3QgfSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoeyByZXF1ZXN0U2hp
cHBpbmc6IHRydWUgfSk7Ci0gICAgLy8gY2F1c2VzICJhYm9ydCB0aGUgdXBkYXRlIiB0byBydW4K
LSAgICBjb25zdCBzaGlwcGluZ0NoYW5nZWRQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7Ci0gICAgICByZXF1ZXN0Lm9uc2hpcHBpbmdvcHRpb25jaGFuZ2UgPSAoKSA9PiB7Ci0gICAg
ICAgIGV2ZW50LnVwZGF0ZVdpdGgoeyB0b3RhbDogeyBhbW91bnQ6IHsgY3VycmVuY3k6ICJVU0Qi
LCB2YWx1ZTogIklOVkFMSUQiIH0gfX0pOworICAgIGNvbnN0IHsgcmVzcG9uc2UsIHJlcXVlc3Qg
fSA9IGF3YWl0IGdldFBheW1lbnRSZXF1ZXN0UmVzcG9uc2UoeworICAgICAgcmVxdWVzdFNoaXBw
aW5nOiB0cnVlLAorICAgIH0pOworICAgIGNvbnN0IHNoaXBPcHRpb25DaGFuZ2VQcm9taXNlID0g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICByZXF1ZXN0Lm9uc2hpcHBpbmdvcHRpb25j
aGFuZ2UgPSBldmVudCA9PiB7CisgICAgICAgIC8vIGNhdXNlcyAiYWJvcnQgdGhlIHVwZGF0ZSIg
dG8gcnVuCisgICAgICAgIGV2ZW50LnVwZGF0ZVdpdGgoeyB0b3RhbDogImVycm9yISIgfSk7CiAg
ICAgICAgIHJlc29sdmUoKTsKICAgICAgIH07CiAgICAgfSk7CiAgICAgY29uc3QgcmV0cnlQcm9t
aXNlID0gcmVzcG9uc2UucmV0cnkoKTsKLSAgICBhd2FpdCBzaGlwcGluZ0NoYW5nZWRQcm9taXNl
OwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBzaGlwT3B0aW9uQ2hhbmdl
UHJvbWlzZTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfanMoCiAgICAgICB0LAotICAgICAg
bmV3IFR5cGVFcnJvcigpLAorICAgICAgVHlwZUVycm9yLAogICAgICAgcmV0cnlQcm9taXNlLAog
ICAgICAgInJldHJ5KCkgYWJvcnRzIHdpdGggYSBUeXBlRXJyb3IsIGJlY2F1c2UgdG90YWxzJyB2
YWx1ZSBpcyBpbnZhbGlkIgogICAgICk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0
ZUVycm9yIiwKICAgICAgIHJlc3BvbnNlLmNvbXBsZXRlKCJzdWNjZXNzIiksCkBAIC0yNDcsNyAr
MjY3LDkgQEAgZnVuY3Rpb24gY2FsbGluZ1JldHJ5UmV0dXJuc1VuaXF1ZVByb21pc2UoYnV0dG9u
KXsKICAgPC9saT4KICAgPGxpPgogICAgIDxwPgotICAgICAgV2hlbiBzaG93biB0aGUgcGF5bWVu
dCBzaGVldCwgaGl0IHBheSBvbmNlLiBUaGVuIHJldHJ5IG9uY2UuCisgICAgICBXaGVuIHNob3du
IHRoZSBwYXltZW50IHNoZWV0LCBoaXQgcGF5IG9uY2UuCisgICAgICBUaGVuLCBjaGFuZ2UgdGhl
IHNoaXBwaW5nIG9wdGlvbi4KKyAgICAgIFNlbGVjdCB0byBwYXkgYWdhaW4uCiAgICAgPC9wPgog
ICAgIDxidXR0b24gb25jbGljaz0iYWJvcnRUaGVVcGRhdGUodGhpcyk7Ij4KICAgICAgIFdoZW4g
ImFib3J0IHRoZSB1cGRhdGUiIG9jY3VycyBiZWNhdXNlIG9mIGFuIHVwZGF0ZSBlcnJvciwKQEAg
LTI2OSw2ICsyOTEsNiBAQCBmdW5jdGlvbiBjYWxsaW5nUmV0cnlSZXR1cm5zVW5pcXVlUHJvbWlz
ZShidXR0b24pewogICA8L2xpPgogPC9vbD4KIDxzbWFsbD4KLSAgSWYgeW91IGZpbmQgYSBidWdn
eSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgotICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEg
aHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmxvYi9tYXN0
ZXIvcGF5bWVudC1yZXF1ZXN0L09XTkVSUyI+b3duZXJzPC9hPi4KKyAgSWYgeW91IGZpbmQgYSBi
dWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVnPC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUg
PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9t
YXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sIj5vd25lcnM8L2E+LgogPC9zbWFsbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVh
bC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC13
YXJuaW5ncy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NWViODNlNTY2
OGI5N2Q2YzU5N2Y1YjgzYWQ4ZDAzZDlmZWRjNmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlc3BvbnNlL3JldHJ5LW1ldGhvZC13YXJuaW5ncy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjggQEAKK01hbnVhbCBUZXN0cyAtIFBsZWFzZSBydW4gaW4gb3JkZXIh
CisKK1BsZWFzZSBvcGVuIHRoZSBkZXZlbG9wZXIgY29uc29sZS4gRWFjaCBvZiB0aGUgdGVzdHMg
YmVsb3cgc2hvdWxkIGdlbmVyYXRlIGEgd2FybmluZyBpbiB0aGUgZGV2ZWxvcGVyIGNvbnNvbGUu
CisKK1doZW4gcHJlc2VudGVkIHdpdGggdGhlIHBheW1lbnQgc2hlZXQsIGhpdCBwYXkgdHdpY2Uu
CisKK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFBheWVyTmFtZWAgaWYgZmFsc2UsIGFuZCBgZXJy
b3JGaWVsZHMucGF5ZXIubmFtZWAgaXMgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVz
dFBheWVyRW1haWxgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnBheWVyLmVtYWlsYCBpcyBw
cmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0UGF5ZXJQaG9uZWAgaWYgZmFsc2UsIGFu
ZCBgZXJyb3JGaWVsZHMucGF5ZXIucGhvbmVgIGlzIHByZXNlbnQuCitTaG93IHdhcm5pbmcgaWYg
YHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRy
ZXNzYCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBp
ZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MuYWRkcmVzc0xpbmVgIG1l
bWJlciBwcmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNl
LCBhbmQgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5jaXR5YCBtZW1iZXIgcHJlc2VudC4K
K1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZp
ZWxkcy5zaGlwcGluZ0FkZHJlc3MuY291bnRyeWAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdhcm5p
bmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBp
bmdBZGRyZXNzLmRlcGVuZGVudExvY2FsaXR5YCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2Fybmlu
ZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGlu
Z0FkZHJlc3Mub3JnYW5pemF0aW9uYCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBg
cmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJl
c3MucGhvbmVgIG1lbWJlciBwcmVzZW50LgorU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBp
bmdgIGlmIGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5wb3N0YWxDb2Rl
YCBtZW1iZXIgcHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBm
YWxzZSwgYW5kIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucmVjaXBpZW50YCBtZW1iZXIg
cHJlc2VudC4KK1Nob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5k
IGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucmVnaW9uYCBtZW1iZXIgcHJlc2VudC4KK1No
b3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kIGBlcnJvckZpZWxk
cy5zaGlwcGluZ0FkZHJlc3MucmVnaW9uQ29kZWAgbWVtYmVyIHByZXNlbnQuCitTaG93IHdhcm5p
bmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMuc2hpcHBp
bmdBZGRyZXNzLnNvcnRpbmdDb2RlYCBtZW1iZXIgcHJlc2VudC4KK0RvbmUhCisKK0hhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitQQVNTIENhbiBjb25zdHJ1Y3QgYSBw
YXltZW50IHJlcXVlc3QgKHNtb2tlIHRlc3QpLiAKK1BBU1MgUGF5bWVudFJlc3BvbnNlLnByb3Rv
dHlwZSBtdXN0IGhhdmUgYSByZXRyeSgpIGZ1bmN0aW9uIChzbW9rZSB0ZXN0KS4gCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZXRyeS1tZXRob2Qtd2FybmluZ3MtbWFu
dWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY4YmYxODMwOTcwMmM0ODFjNzZhZGVmMGNkZGVl
MjRjYmQxYjU0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0cnkt
bWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTU4IEBACis8IURP
Q1RZUEUgaHRtbD4gPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cis8dGl0bGU+V2FybiB3aGVuIGVy
cm9yRmllbGRzIGRvbid0IG1hdGNoIHJlcXVlc3RbW29wdGlvbnNdXTwvdGl0bGU+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcGF5bWVudC1yZXF1ZXN0L3B1
bGwvODA3IiAvPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9ImhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgdGVz
dCgoKSA9PiB7CisgICAgYXNzZXJ0X3RydWUoCisgICAgICAicmV0cnkiIGluIFBheW1lbnRSZXNw
b25zZS5wcm90b3R5cGUsCisgICAgICAicmV0cnkgbXVzdCBiZSBpbiBwcm90b3R5cGUiCisgICAg
KTsKKyAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgIFBheW1lbnRSZXNwb25zZS5wcm90b3R5cGUucmV0
cnkgaW5zdGFuY2VvZiBGdW5jdGlvbiwKKyAgICAgICJyZXRyeSBtdXN0IGJlIGEgZnVuY3Rpb24i
CisgICAgKTsKKyAgfSwgIlBheW1lbnRSZXNwb25zZS5wcm90b3R5cGUgbXVzdCBoYXZlIGEgcmV0
cnkoKSBmdW5jdGlvbiAoc21va2UgdGVzdCkuIik7CisKKyAgY29uc3QgZGVmYXVsdE9wdGlvbnMg
PSB7CisgICAgcmVxdWVzdFBheWVyTmFtZTogZmFsc2UsCisgICAgcmVxdWVzdFBheWVyRW1haWw6
IGZhbHNlLAorICAgIHJlcXVlc3RQYXllclBob25lOiBmYWxzZSwKKyAgICByZXF1ZXN0U2hpcHBp
bmc6IGZhbHNlLAorICB9OworICBmdW5jdGlvbiB0ZXN0U2hvd1dhcm5pbmcoYnV0dG9uLCBlcnJv
ckZpZWxkcykgeworICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CisgICAgcHJvbWlzZV90ZXN0
KGFzeW5jICgpID0+IHsKKyAgICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF3YWl0IGdldFBheW1l
bnRSZXF1ZXN0UmVzcG9uc2UoZGVmYXVsdE9wdGlvbnMpOworICAgICAgYXdhaXQgcmVzcG9uc2Uu
cmV0cnkoZXJyb3JGaWVsZHMpOworICAgICAgYXdhaXQgcmVzcG9uc2UuY29tcGxldGUoKTsKKyAg
ICB9KTsKKyAgfQorPC9zY3JpcHQ+Cis8aDI+TWFudWFsIFRlc3RzIC0gUGxlYXNlIHJ1biBpbiBv
cmRlciE8L2gyPgorPHA+CisgIFBsZWFzZSBvcGVuIHRoZSBkZXZlbG9wZXIgY29uc29sZS4gRWFj
aCBvZiB0aGUgdGVzdHMgYmVsb3cgc2hvdWxkIGdlbmVyYXRlIGEKKyAgd2FybmluZyBpbiB0aGUg
ZGV2ZWxvcGVyIGNvbnNvbGUuCis8L3A+Cis8cD5XaGVuIHByZXNlbnRlZCB3aXRoIHRoZSBwYXlt
ZW50IHNoZWV0LCBoaXQgcGF5IHR3aWNlLjwvcD4KKzxvbD4KKyAgPGxpPgorICAgIDxidXR0b24g
b25jbGljaz0idGVzdFNob3dXYXJuaW5nKHRoaXMsIHtwYXllcjoge25hbWU6ICdEb250IHNob3cg
dGhpcyd9fSk7Ij4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFBheWVyTmFtZWAgaWYg
ZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMucGF5ZXIubmFtZWAgaXMKKyAgICAgIHByZXNlbnQuCisg
ICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNr
PSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3BheWVyOiB7ZW1haWw6ICdEb250IHNob3cgdGhpcyd9
fSk7IgorICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFBheWVyRW1haWxgIGlm
IGZhbHNlLCBhbmQgYGVycm9yRmllbGRzLnBheWVyLmVtYWlsYAorICAgICAgaXMgcHJlc2VudC4K
KyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xp
Y2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7cGF5ZXI6IHtwaG9uZTogJ0RvbnQgc2hvdyB0aGlz
J319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0UGF5ZXJQaG9uZWAg
aWYgZmFsc2UsIGFuZCBgZXJyb3JGaWVsZHMucGF5ZXIucGhvbmVgCisgICAgICBpcyBwcmVzZW50
LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJ0
ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczoge319KTsiPgorICAgICAgU2hv
dyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJv
ckZpZWxkcy5zaGlwcGluZ0FkZHJlc3NgIG1lbWJlciBwcmVzZW50LgorICAgIDwvYnV0dG9uPgor
ICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbgorICAgICAgb25jbGljaz0idGVzdFNob3dXYXJu
aW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJlc3M6IHthZGRyZXNzTGluZTogJ0RvbnQgc2hvdyB0aGlz
J319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlm
IGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MuYWRkcmVzc0xp
bmVgIG1lbWJlciBwcmVzZW50LgorICAgIDwvYnV0dG9uPgorICA8L2xpPgorICA8bGk+CisgICAg
PGJ1dHRvbgorICAgICAgb25jbGljaz0idGVzdFNob3dXYXJuaW5nKHRoaXMsIHtzaGlwcGluZ0Fk
ZHJlc3M6IHtjaXR5OiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdh
cm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmll
bGRzLnNoaXBwaW5nQWRkcmVzcy5jaXR5YCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4K
KyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2Fy
bmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7Y291bnRyeTogJ0RvbnQgc2hvdyB0aGlzJ319
KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZh
bHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MuY291bnRyeWAgbWVt
YmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9u
CisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczog
e2RlcGVuZGVudExvY2FsaXR5OiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAgICA+CisgICAgICBT
aG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZAorICAgICAgYGVy
cm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5kZXBlbmRlbnRMb2NhbGl0eWAgbWVtYmVyIHByZXNl
bnQuCisgICAgPC9idXR0b24+CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBv
bmNsaWNrPSJ0ZXN0U2hvd1dhcm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczoge29yZ2FuaXph
dGlvbjogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlm
IGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlw
cGluZ0FkZHJlc3Mub3JnYW5pemF0aW9uYCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4K
KyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2Fy
bmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7cGhvbmU6ICdEb250IHNob3cgdGhpcyd9fSk7
IgorICAgID4KKyAgICAgIFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxz
ZSwgYW5kCisgICAgICBgZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLnBob25lYCBtZW1iZXIg
cHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24KKyAg
ICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdBZGRyZXNzOiB7cG9z
dGFsQ29kZTogJ0RvbnQgc2hvdyB0aGlzJ319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5n
IGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlmIGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5z
aGlwcGluZ0FkZHJlc3MucG9zdGFsQ29kZWAgbWVtYmVyIHByZXNlbnQuCisgICAgPC9idXR0b24+
CisgIDwvbGk+CisgIDxsaT4KKyAgICA8YnV0dG9uCisgICAgICBvbmNsaWNrPSJ0ZXN0U2hvd1dh
cm5pbmcodGhpcywge3NoaXBwaW5nQWRkcmVzczoge3JlY2lwaWVudDogJ0RvbnQgc2hvdyB0aGlz
J319KTsiCisgICAgPgorICAgICAgU2hvdyB3YXJuaW5nIGlmIGByZXF1ZXN0U2hpcHBpbmdgIGlm
IGZhbHNlLCBhbmQKKyAgICAgIGBlcnJvckZpZWxkcy5zaGlwcGluZ0FkZHJlc3MucmVjaXBpZW50
YCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxi
dXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdBZGRy
ZXNzOiB7cmVnaW9uOiAnRG9udCBzaG93IHRoaXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdh
cm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2AgaWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmll
bGRzLnNoaXBwaW5nQWRkcmVzcy5yZWdpb25gIG1lbWJlciBwcmVzZW50LgorICAgIDwvYnV0dG9u
PgorICA8L2xpPgorICA8bGk+CisgICAgPGJ1dHRvbgorICAgICAgb25jbGljaz0idGVzdFNob3dX
YXJuaW5nKHRoaXMsIHtzaGlwcGluZ0FkZHJlc3M6IHtyZWdpb25Db2RlOiAnRG9udCBzaG93IHRo
aXMnfX0pOyIKKyAgICA+CisgICAgICBTaG93IHdhcm5pbmcgaWYgYHJlcXVlc3RTaGlwcGluZ2Ag
aWYgZmFsc2UsIGFuZAorICAgICAgYGVycm9yRmllbGRzLnNoaXBwaW5nQWRkcmVzcy5yZWdpb25D
b2RlYCBtZW1iZXIgcHJlc2VudC4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAg
IDxidXR0b24KKyAgICAgIG9uY2xpY2s9InRlc3RTaG93V2FybmluZyh0aGlzLCB7c2hpcHBpbmdB
ZGRyZXNzOiB7c29ydGluZ0NvZGU6ICdEb250IHNob3cgdGhpcyd9fSk7IgorICAgID4KKyAgICAg
IFNob3cgd2FybmluZyBpZiBgcmVxdWVzdFNoaXBwaW5nYCBpZiBmYWxzZSwgYW5kCisgICAgICBg
ZXJyb3JGaWVsZHMuc2hpcHBpbmdBZGRyZXNzLnNvcnRpbmdDb2RlYCBtZW1iZXIgcHJlc2VudC4K
KyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPjxidXR0b24gb25jbGljaz0iZG9uZSgpIj5E
b25lITwvYnV0dG9uPjwvbGk+Cis8L29sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvdzNjLWltcG9ydC5sb2cKaW5k
ZXggMDRiYzYzNTBkOTFmODdlOTI3MjUwZTAxZmNiODdmZTI2Y2ZmNzY0Mi4uZjI0NTliMTdjMDMy
YmZhMTdhNmRhNjI1OTU5ZWNiMDBjNjlmMWY1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNw
b25zZS93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3czYy1pbXBvcnQu
bG9nCkBAIC0yMiw4ICsyMiwxMSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9u
c2UvcGF5ZXJFbWFpbC1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJl
c3BvbnNlL3BheWVyTmFtZS1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlc3BvbnNlL3BheWVyUGhvbmUtYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXNwb25zZS9wYXllcmRldGFpbHNjaGFuZ2UtdXBkYXRlV2l0aC1pbW1lZGlhdGUtbWFu
dWFsLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3BheWVyZGV0YWlsc2NoYW5nZS11
cGRhdGVXaXRoLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25zZS9yZWplY3Rz
X2lmX25vdF9hY3RpdmUtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNlL3Jl
cXVlc3RJZC1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlc3BvbnNl
L3JldHJ5LW1ldGhvZC1tYW51YWwuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVzcG9uc2UvcmV0
cnktbWV0aG9kLXdhcm5pbmdzLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXNwb25z
ZS9zaGlwcGluZ0FkZHJlc3MtYXR0cmlidXRlLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXNwb25zZS9zaGlwcGluZ09wdGlvbi1hdHRyaWJ1dGUtbWFudWFsLmh0dHBzLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGJkNDVkYjM1MTlhZTAzZDMyMzhiNzc0Y2Q3OGM3ODg3NjRkMGQxZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1BheW1lbnRSZXF1ZXN0IHNob3coKSByZWplY3Rz
IGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlCisKK0NsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNl
cXVlbmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3aXRob3V0IHJlZnJlc2hpbmcgdGhlIHBhZ2UuIEVh
Y2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cgYW5k
IHRoZW4gd2lsbCBjbG9zZSBpdCBhdXRvbWF0aWNhbGx5LiAoSWYgYSBwYXltZW50IHNoZWV0IHN0
YXlzIG9wZW4sIHRoZSB0ZXN0IGhhcyBmYWlsZWQuKQorCitQYXltZW50UmVxdWVzdC5zaG93KCkg
YWJvcnRzIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgYWN0aXZlLgorUGF5bWVudFJlcXVlc3Quc2hv
dygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgYWN0aXZlLCBidXQgbm90IGZ1bGx5IGFjdGl2
ZS4KK0RvbmUhCitJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFu
ZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZXJzLgorCitIYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25v
dF9hY3RpdmUtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUtbWFu
dWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUyMTRjYjYwOTRhMjU0MzYzNzRkYTk4NGRlYWFk
ZTY2MGNjYzE5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1t
YW51YWwuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlBheW1lbnRSZXF1ZXN0IHNob3coKSByZWplY3RzIGlm
IGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jc2hvdy1tZXRob2QiPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8
c2NyaXB0Pgorc2V0dXAoeworICBleHBsaWNpdF9kb25lOiB0cnVlLAorICBleHBsaWNpdF90aW1l
b3V0OiB0cnVlLAorfSk7CisKK2NvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CisgIHN1
cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICBkYXRhOiB7
CisgICAgdmVyc2lvbjogMywKKyAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20u
ZXhhbXBsZSIsCisgICAgY291bnRyeUNvZGU6ICJVUyIsCisgICAgbWVyY2hhbnRDYXBhYmlsaXRp
ZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisg
IH0KK30pOworY29uc3QgdmFsaWRNZXRob2QgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVk
TWV0aG9kczogImJhc2ljLWNhcmQiLAorfSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3Qu
ZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXldKTsKKworY29uc3QgdmFsaWREZXRhaWxzID0g
T2JqZWN0LmZyZWV6ZSh7CisgIHRvdGFsOiB7CisgICAgbGFiZWw6ICJUb3RhbCBkdWUiLAorICAg
ICAgYW1vdW50OiB7CisgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICB2YWx1ZTogIjUuMDAi
LAorICAgIH0sCisgIH0sCit9KTsKKworZnVuY3Rpb24gZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3Qo
aWZyYW1lLCB1cmwpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIGlm
cmFtZS5hZGRFdmVudExpc3RlbmVyKAorICAgICAgImxvYWQiLAorICAgICAgKCkgPT4geworICAg
ICAgICBjb25zdCB7IFBheW1lbnRSZXF1ZXN0IH0gPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxpZE1ldGhvZHMsIHZh
bGlkRGV0YWlscyk7CisgICAgICAgIHJlc29sdmUocmVxdWVzdCk7CisgICAgICB9LAorICAgICAg
eyBvbmNlOiB0cnVlIH0KKyAgICApOworICAgIGlmcmFtZS5zcmMgPSB1cmw7CisgIH0pOworfQor
CitmdW5jdGlvbiB0ZXN0QWJvcnRTaG93SWZEb2N1bWVudElzTm90QWN0aXZlKCkgeworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgaWZyYW1lLmFsbG93UGF5bWVudFJlcXVlc3QgPSB0cnVl
OworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICAvLyBXZSBmaXJz
dCBnb3QgdG8gcGFnZTEuaHRtbCwgZ3JhYiBhIFBheW1lbnRSZXF1ZXN0IGluc3RhbmNlLgorICAg
IGNvbnN0IHJlcXVlc3QxID0gYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCisgICAgICBp
ZnJhbWUsCisgICAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTEuaHRtbCIKKyAg
ICApOworICAgIC8vIFNhdmUgdGhlIERPTUV4Y2VwdGlvbiBvZiBwYWdlMS5odG1sIGJlZm9yZSBu
YXZpZ2F0aW5nIGF3YXkuCisgICAgY29uc3QgZnJhbWVET01FeGNlcHRpb24xID0gaWZyYW1lLmNv
bnRlbnRXaW5kb3cuRE9NRXhjZXB0aW9uOworICAgIC8vIFdlIG5hdmlnYXRlIHRoZSBpZnJhbWUg
YWdhaW4sIHB1dHRpbmcgcmVxdWVzdDEncyBkb2N1bWVudCBpbnRvIGFuIGluYWN0aXZlIHN0YXRl
LgorICAgIGNvbnN0IHJlcXVlc3QyID0gYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCisg
ICAgICBpZnJhbWUsCisgICAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRt
bCIKKyAgICApOworICAgIC8vIE5vdywgcmVxdWVzdDEncyByZWxldmFudCBnbG9iYWwgb2JqZWN0
J3MgZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4KKyAgICAvLyBTbywgY2FsbCAuc2hvdygp
LCBhbmQgbWFrZSBzdXJlIGl0IHJlamVjdHMgYXBwcm9wcmlhdGVseS4KKyAgICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfZG9tKAorICAgICAgdCwKKyAgICAgICJBYm9ydEVycm9yIiwKKyAgICAgIGZy
YW1lRE9NRXhjZXB0aW9uMSwKKyAgICAgIHJlcXVlc3QxLnNob3coKSwKKyAgICAgICJJbmFjdGl2
ZSBkb2N1bWVudCwgc28gbXVzdCB0aHJvdyBBYm9ydEVycm9yIgorICAgICk7CisgICAgLy8gcmVx
dWVzdDIgaGFzIGFuIGFjdGl2ZSBkb2N1bWVudCB0aG8sIHNvIGNvbmZpcm0gaXQncyB3b3JraW5n
IGFzIGV4cGVjdGVkOgorICAgIHJlcXVlc3QyLnNob3coKTsKKyAgICBhd2FpdCByZXF1ZXN0Mi5h
Ym9ydCgpOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgICB0LAorICAgICAg
IkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LkRPTUV4Y2Vw
dGlvbiwKKyAgICAgIHJlcXVlc3QyLnNob3coKSwKKyAgICAgICJBYm9ydCBhbHJlYWR5IGNhbGxl
ZCwgc28gSW52YWxpZFN0YXRlRXJyb3IiCisgICAgKTsKKyAgICAvLyBXZSBhcmUgZG9uZSwgc28g
Y2xlYW4gdXAuCisgICAgaWZyYW1lLnJlbW92ZSgpOworICB9LCAiUGF5bWVudFJlcXVlc3Quc2hv
dygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgbm90IGFjdGl2ZS4iKTsKK30KKworZnVuY3Rp
b24gdGVzdEFib3J0U2hvd0lmRG9jdW1lbnRJc05vdEZ1bGx5QWN0aXZlKCkgeworICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgLy8gV2UgbmVzdCB0d28gaWZyYW1lcyBhbmQgd2FpdCBm
b3IgdGhlbSB0byBsb2FkLgorICAgIGNvbnN0IG91dGVySWZyYW1lID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgb3V0ZXJJZnJhbWUuYWxsb3dQYXltZW50UmVxdWVzdCA9
IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvdXRlcklmcmFtZSk7CisgICAg
Ly8gTG9hZCB0aGUgb3V0ZXIgaWZyYW1lICh3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBhd2FpdGVk
IHJlcXVlc3QpCisgICAgYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCisgICAgICBvdXRl
cklmcmFtZSwKKyAgICAgICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMS5odG1sIgor
ICAgICk7CisKKyAgICAvLyBOb3cgd2UgY3JlYXRlIHRoZSBpbm5lciBpZnJhbWUKKyAgICBjb25z
dCBpbm5lcklmcmFtZSA9IG91dGVySWZyYW1lLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKKyAgICBpbm5lcklmcmFtZS5hbGxvd1BheW1lbnRSZXF1ZXN0ID0gdHJ1ZTsK
KworICAgIC8vIG5lc3QgdGhlbQorICAgIG91dGVySWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGlubmVySWZyYW1lKTsKKworICAgIC8vIGxvYWQgaW5uZXJJZnJhbWUsIGFu
ZCBnZXQgdGhlIFBheW1lbnRSZXF1ZXN0IGluc3RhbmNlCisgICAgY29uc3QgcmVxdWVzdCA9IGF3
YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KAorICAgICAgaW5uZXJJZnJhbWUsCisgICAgICAi
L3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRtbCIKKyAgICApOworICAgIC8vIFNh
dmUgRE9NRXhjZXB0aW9uIGZyb20gaW5uZXJJZnJhbWUgYmVmb3JlIG5hdmlnYXRpbmcgYXdheS4K
KyAgICBjb25zdCBpbm5lcklmcmFtZURPTUV4Y2VwdGlvbiA9IGlubmVySWZyYW1lLmNvbnRlbnRX
aW5kb3cuRE9NRXhjZXB0aW9uOworCisgICAgLy8gTmF2aWdhdGUgdGhlIG91dGVyIGlmcmFtZSB0
byBhIG5ldyBsb2NhdGlvbi4KKyAgICAvLyBXYWl0IGZvciB0aGUgbG9hZCBldmVudCB0byBmaXJl
LgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgb3V0ZXJJZnJhbWUu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUpOworICAgICAgb3V0ZXJJZnJhbWUuc3Jj
ID0gIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UyLmh0bWwiOworICAgIH0pOworCisg
ICAgY29uc3Qgc2hvd1Byb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAvLyBOb3csIHJlcXVl
c3QncyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgc3RpbGwgYWN0aXZlCisg
ICAgLy8gKGl0IGlzIHRoZSBhY3RpdmUgZG9jdW1lbnQgb2YgdGhlIGlubmVyIGlmcmFtZSksIGJ1
dCBpcyBub3QgZnVsbHkgYWN0aXZlCisgICAgLy8gKHNpbmNlIHRoZSBwYXJlbnQgb2YgdGhlIGlu
bmVyIGlmcmFtZSBpcyBpdHNlbGYgbm8gbG9uZ2VyIGFjdGl2ZSkuCisgICAgLy8gU28sIGNhbGwg
cmVxdWVzdC5zaG93KCkgYW5kIG1ha2Ugc3VyZSBpdCByZWplY3RzIGFwcHJvcHJpYXRlbHkuCisg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICAgIHQsCisgICAgICAiQWJvcnRFcnJv
ciIsCisgICAgICBpbm5lcklmcmFtZURPTUV4Y2VwdGlvbiwKKyAgICAgIHNob3dQcm9taXNlLAor
ICAgICAgIkFjdGl2ZSwgYnV0IG5vdCBmdWxseSBhY3RpdmUsIHNvIG11c3QgdGhyb3cgQWJvcnRF
cnJvciIKKyAgICApOworICAgIC8vIFdlIGFyZSBkb25lLCBzbyBjbGVhbiB1cC4KKworICAgIG91
dGVySWZyYW1lLnJlbW92ZSgpOworICB9LCAiUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBp
ZiB0aGUgZG9jdW1lbnQgaXMgYWN0aXZlLCBidXQgbm90IGZ1bGx5IGFjdGl2ZS4iKTsKK30KKzwv
c2NyaXB0PgorCis8aDI+UGF5bWVudFJlcXVlc3Qgc2hvdygpIHJlamVjdHMgaWYgZG9jIGlzIG5v
dCBmdWxseSBhY3RpdmU8L2gyPgorPHA+CisgIENsaWNrIG9uIGVhY2ggYnV0dG9uIGluIHNlcXVl
bmNlIGZyb20gdG9wIHRvIGJvdHRvbSB3aXRob3V0IHJlZnJlc2hpbmcgdGhlCisgIHBhZ2UuIEVh
Y2ggYnV0dG9uIHdpbGwgYnJpbmcgdXAgdGhlIFBheW1lbnQgUmVxdWVzdCBVSSB3aW5kb3cgYW5k
IHRoZW4gd2lsbAorICBjbG9zZSBpdCBhdXRvbWF0aWNhbGx5LiAoSWYgYSBwYXltZW50IHNoZWV0
IHN0YXlzIG9wZW4sIHRoZSB0ZXN0IGhhcyBmYWlsZWQuKQorPC9wPgorPG9sPgorICA8bGk+Cisg
ICAgPGJ1dHRvbiBvbmNsaWNrPSJ0ZXN0QWJvcnRTaG93SWZEb2N1bWVudElzTm90QWN0aXZlKCki
PgorICAgICAgUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMg
bm90IGFjdGl2ZS4KKyAgICA8L2J1dHRvbj4KKyAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24g
b25jbGljaz0idGVzdEFib3J0U2hvd0lmRG9jdW1lbnRJc05vdEZ1bGx5QWN0aXZlKCkiPgorICAg
ICAgUGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgYWN0aXZl
LCBidXQgbm90IGZ1bGx5CisgICAgICBhY3RpdmUuCisgICAgPC9idXR0b24+CisgIDwvbGk+Cisg
IDxsaT48YnV0dG9uIG9uY2xpY2s9ImRvbmUoKSI+RG9uZSE8L2J1dHRvbj48L2xpPgorPC9vbD4K
KzxzbWFsbD4KKyAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgPGEgaHJlZj0iaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzIj5maWxlIGEgYnVn
PC9hPgorICBhbmQgdGFnIG9uZSBvZiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1s
Ij5zdWdnZXN0ZWQgcmV2aWV3ZXJzPC9hPi4KKzwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWpl
Y3RzX2lmX25vdF9hY3RpdmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5o
dHRwcy5odG1sCmluZGV4IGY1ODVlODM2ZjhkMzBlNDFiZDMzYzdhOGQ4NzYwZWNmNjRmN2E4MGQu
LjFjNjY2YWVhNDM1NzU4Y2Q3Zjc5MTcyYWFhNjkxZjQzZjc5MDdhNDcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90
X2FjdGl2ZS5odHRwcy5odG1sCkBAIC0xLDE4ICsxLDI3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxt
ZXRhIGNoYXJzZXQ9dXRmLTg+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3Nob3coKS1tZXRob2QiPgogPHRpdGxlPlBheW1lbnRS
ZXF1ZXN0IHNob3coKSByZWplY3RzIGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlPC90aXRsZT4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVx
dWVzdC8jc2hvdy1tZXRob2QiPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9z
Y3JpcHQ+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXlt
ZW50LXJlcXVlc3QvI2RvbS1wYXltZW50cmVxdWVzdC1zaG93KCkiPgogPGJvZHk+CiA8c2NyaXB0
PgorY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczog
Imh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAz
LAorICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBj
b3VudHJ5Q29kZTogIlVTIiwKKyAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNE
UyJdLAorICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2
YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMt
Y2FyZCIsCiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0
aG9kXSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwg
YXBwbGVQYXldKTsKIGNvbnN0IHZhbGlkQW1vdW50ID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGN1cnJl
bmN5OiAiVVNEIiwKICAgdmFsdWU6ICI1LjAwIiwKQEAgLTQwLDk0ICs0OSw2IEBAIGZ1bmN0aW9u
IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KGlmcmFtZSwgdXJsKSB7CiAgIH0pOwogfQogCi1wcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOwotICBpZnJhbWUuYWxsb3dQYXltZW50UmVxdWVzdCA9IHRydWU7Ci0g
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLSAgLy8gV2UgZmlyc3QgZ290IHRv
IHBhZ2UxLmh0bWwsIGdyYWIgYSBQYXltZW50UmVxdWVzdCBpbnN0YW5jZS4KLSAgY29uc3QgcmVx
dWVzdDEgPSBhd2FpdCBnZXRMb2FkZWRQYXltZW50UmVxdWVzdCgKLSAgICBpZnJhbWUsCi0gICAg
Ii9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UxLmh0bWwiCi0gICk7Ci0gIC8vIFdlIG5h
dmlnYXRlIHRoZSBpZnJhbWUgYWdhaW4sIHB1dHRpbmcgcmVxdWVzdDEncyBkb2N1bWVudCBpbnRv
IGFuIGluYWN0aXZlIHN0YXRlLgotICBjb25zdCByZXF1ZXN0MiA9IGF3YWl0IGdldExvYWRlZFBh
eW1lbnRSZXF1ZXN0KAotICAgIGlmcmFtZSwKLSAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJj
ZXMvcGFnZTIuaHRtbCIKLSAgKTsKLSAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5
bWVudCByZXF1ZXN0IiwgYXN5bmMgKCkgPT4gewotICAgIC8vIE5vdywgcmVxdWVzdDEncyByZWxl
dmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4KLSAgICAv
LyBTbywgY2FsbCAuc2hvdygpLCBhbmQgbWFrZSBzdXJlIGl0IHJlamVjdHMgYXBwcm9wcmlhdGVs
eS4KLSAgICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCi0gICAgICB0LAotICAgICAgIkFib3J0RXJy
b3IiLAotICAgICAgcmVxdWVzdDEuc2hvdygpLAotICAgICAgIkluYWN0aXZlIGRvY3VtZW50LCBz
byBtdXN0IHRocm93IEFib3J0RXJyb3IiCi0gICAgKTsKLSAgfSk7Ci0gIGF3YWl0IHRlc3RfZHJp
dmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsIGFzeW5jICgpID0+IHsKLSAgICAvLyBy
ZXF1ZXN0MiBoYXMgYW4gYWN0aXZlIGRvY3VtZW50IHRobywgc28gY29uZmlybSBpdCdzIHdvcmtp
bmcgYXMgZXhwZWN0ZWQ6Ci0gICAgcmVxdWVzdDIuc2hvdygpOwotICAgIGF3YWl0IHJlcXVlc3Qy
LmFib3J0KCk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAotICAgICAgdCwKLSAgICAgICJJ
bnZhbGlkU3RhdGVFcnJvciIsCi0gICAgICByZXF1ZXN0Mi5zaG93KCksCi0gICAgICAiQWJvcnQg
YWxyZWFkeSBjYWxsZWQsIHNvIEludmFsaWRTdGF0ZUVycm9yIgotICAgICk7Ci0gICAgLy8gV2Ug
YXJlIGRvbmUsIHNvIGNsZWFuIHVwLgotICAgIGlmcmFtZS5yZW1vdmUoKTsKLSAgfSk7Ci19LCAi
UGF5bWVudFJlcXVlc3Quc2hvdygpIGFib3J0cyBpZiB0aGUgZG9jdW1lbnQgaXMgbm90IGFjdGl2
ZSIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIC8vIFdlIG5lc3QgdHdvIGlmcmFt
ZXMgYW5kIHdhaXQgZm9yIHRoZW0gdG8gbG9hZC4KLSAgY29uc3Qgb3V0ZXJJZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgb3V0ZXJJZnJhbWUuYWxsb3dQYXltZW50
UmVxdWVzdCA9IHRydWU7Ci0gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXJJZnJhbWUp
OwotICAvLyBMb2FkIHRoZSBvdXRlciBpZnJhbWUgKHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGF3
YWl0ZWQgcmVxdWVzdCkKLSAgYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCi0gICAgb3V0
ZXJJZnJhbWUsCi0gICAgIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UxLmh0bWwiCi0g
ICk7Ci0KLSAgLy8gTm93IHdlIGNyZWF0ZSB0aGUgaW5uZXIgaWZyYW1lCi0gIGNvbnN0IGlubmVy
SWZyYW1lID0gb3V0ZXJJZnJhbWUuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOwotICBpbm5lcklmcmFtZS5hbGxvd1BheW1lbnRSZXF1ZXN0ID0gdHJ1ZTsKLQotICAvLyBu
ZXN0IHRoZW0KLSAgb3V0ZXJJZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aW5uZXJJZnJhbWUpOwotCi0gIC8vIGxvYWQgaW5uZXJJZnJhbWUsIGFuZCBnZXQgdGhlIFBheW1l
bnRSZXF1ZXN0IGluc3RhbmNlCi0gIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBnZXRMb2FkZWRQYXlt
ZW50UmVxdWVzdCgKLSAgICBpbm5lcklmcmFtZSwKLSAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNv
dXJjZXMvcGFnZTIuaHRtbCIKLSAgKTsKLQotICAvLyBOYXZpZ2F0ZSB0aGUgb3V0ZXIgaWZyYW1l
IHRvIGEgbmV3IGxvY2F0aW9uLgotICAvLyBXYWl0IGZvciB0aGUgbG9hZCBldmVudCB0byBmaXJl
LgotICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICBvdXRlcklmcmFtZS5hZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSk7Ci0gICAgb3V0ZXJJZnJhbWUuc3JjID0gIi9w
YXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UyLmh0bWwiOwotICB9KTsKLQotICBjb25zdCBz
aG93UHJvbWlzZSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVz
dCIsICgpID0+IHsKLSAgICByZXR1cm4gcmVxdWVzdC5zaG93KCk7Ci0gIH0pOwotICAvLyBOb3cs
IHJlcXVlc3QncyByZWxldmFudCBnbG9iYWwgb2JqZWN0J3MgZG9jdW1lbnQgaXMgc3RpbGwgYWN0
aXZlCi0gIC8vIChpdCBpcyB0aGUgYWN0aXZlIGRvY3VtZW50IG9mIHRoZSBpbm5lciBpZnJhbWUp
LCBidXQgaXMgbm90IGZ1bGx5IGFjdGl2ZQotICAvLyAoc2luY2UgdGhlIHBhcmVudCBvZiB0aGUg
aW5uZXIgaWZyYW1lIGlzIGl0c2VsZiBubyBsb25nZXIgYWN0aXZlKS4KLSAgLy8gU28sIGNhbGwg
cmVxdWVzdC5zaG93KCkgYW5kIG1ha2Ugc3VyZSBpdCByZWplY3RzIGFwcHJvcHJpYXRlbHkuCi0g
IGF3YWl0IHByb21pc2VfcmVqZWN0cygKLSAgICB0LAotICAgICJBYm9ydEVycm9yIiwKLSAgICBz
aG93UHJvbWlzZSwKLSAgICAiQWN0aXZlLCBidXQgbm90IGZ1bGx5IGFjdGl2ZSwgc28gbXVzdCB0
aHJvdyBBYm9ydEVycm9yIgotICApOwotICAvLyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAuCi0K
LSAgaWZyYW1lLnJlbW92ZSgpOwotfSwgIlBheW1lbnRSZXF1ZXN0LnNob3coKSBhYm9ydHMgaWYg
dGhlIGRvY3VtZW50IGlzIGFjdGl2ZSwgYnV0IG5vdCBmdWxseSBhY3RpdmUiKTsKLQogcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewogICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpZnJhbWUiKTsKICAgaWZyYW1lLmFsbG93UGF5bWVudFJlcXVlc3QgPSB0cnVlOwpAQCAt
MTM3LDIxICs1OCw0MCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgaWZyYW1lLAog
ICAgICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMS5odG1sIgogICApOwotICBjb25z
dCBzaG93UHJvbWlzZSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVx
dWVzdCIsICgpID0+IHsKLSAgICByZXR1cm4gcmVxdWVzdC5zaG93KCk7CisgIGNvbnN0IFtzaG93
UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVlc3Qi
LCAoKSA9PiB7CisgICAgcmV0dXJuIFtyZXF1ZXN0LnNob3coKV07CiAgIH0pOwogICAvLyBOYXZp
Z2F0ZSB0aGUgaWZyYW1lIHRvIGEgbmV3IGxvY2F0aW9uLiBXYWl0IGZvciB0aGUgbG9hZCBldmVu
dCB0byBmaXJlLgogICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgICBpZnJhbWUu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUpOwogICAgIGlmcmFtZS5zcmMgPSAiL3Bh
eW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRtbCI7CisgICAgLy8gQW4gaW1wbGVtZW50
YXRpb24gbWF5IG9wdGlvbmFsbHkgcmVqZWN0IHxzaG93UHJvbWlzZXwuCisgICAgc2hvd1Byb21p
c2UuY2F0Y2goZSA9PiB7fSk7CiAgIH0pOwotICBhd2FpdCBwcm9taXNlX3JlamVjdHMoCi0gICAg
dCwKLSAgICAiQWJvcnRFcnJvciIsCi0gICAgc2hvd1Byb21pc2UsCi0gICAgIlRoZSBpZnJhbWUg
d2FzIG5hdmlnYXRlZCBhd2F5LCBzbyBzaG93UHJvbWlzZSBtdXN0IHJlamVjdCB3aXRoIEFib3J0
RXJyb3IiCi0gICk7Ci0gIC8vIFdlIGFyZSBkb25lLCBzbyBjbGVhbiB1cC4KLSAgaWZyYW1lLnJl
bW92ZSgpOwotfSwgIklmIGEgcGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmcsIGJ1dCBpdHMgZG9j
dW1lbnQgaXMgbmF2aWdhdGVkIGF3YXkgKHNvIG5vIGxvbmdlciBmdWxseSBhY3RpdmUpLCB0aGUg
cGF5bWVudCByZXF1ZXN0IGFib3J0cy4iKTsKKworICAvLyBUaGUgbmF2aWdhdG9uIHNob3VsZCBo
YXZlIGRpc21pc3NlZCB0aGUgcHJldmlvdXMgcGF5bWVudCByZXF1ZXN0IHNvIGl0CisgIC8vIHNo
b3VsZCBiZSBwb3NzaWJsZSB0byBzaG93IGFub3RoZXIgb25lIG5vdy4KKyAgY29uc3QgcmVxdWVz
dDIgPSBuZXcgaWZyYW1lLmNvbnRlbnRXaW5kb3cuUGF5bWVudFJlcXVlc3QoCisgICAgdmFsaWRN
ZXRob2RzLCB2YWxpZERldGFpbHMpOworICBjb25zdCBbc2hvd1Byb21pc2UyXSA9IGF3YWl0IHRl
c3RfZHJpdmVyLmJsZXNzKAorICAgICJzaG93IDJuZCBwYXltZW50IHJlcXVlc3QiLCAoKSA9PiB7
CisgICAgICByZXR1cm4gW3JlcXVlc3QyLnNob3coKV07CisgICAgfSk7CisKKyAgLy8gU3RvcCB0
aGUgdGVzdCBpbiAxIHNlY29uZCBpZiBpdCBoYXMgbm90IHJlamVjdGVkLCB3aGljaCBtZWFucyB0
aGF0IGEKKyAgLy8gcGF5bWVudCBzaGVldCBpcyBzdWNjZXNzZnVsbHkgc2hvd24uCisgIHQuc3Rl
cF90aW1lb3V0KGFzeW5jICgpID0+IHsKKyAgICAvLyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAu
CisgICAgaWZyYW1lLnJlbW92ZSgpOworICAgIHQuZG9uZSgpOworICB9LCAxMDAwKTsKKworICAv
LyBUaGlzIHNob3VsZCBuZXZlciBzZXR0bGUgYmVjYXVzZSB0aGUgcGF5bWVudCBzaGVldCBzaG91
bGQgYmUgcGVuZGluZy4KKyAgYXdhaXQgc2hvd1Byb21pc2UyLnRoZW4oKCkgPT4geworICAgIGFz
c2VydF90cnVlKGZhbHNlLCAiU2Vjb25kIHBheW1lbnQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlz
IHJlc29sdmVkLiIpOworICB9KQorICAuY2F0Y2goZSA9PiB7CisgICAgYXNzZXJ0X3RydWUoZmFs
c2UsICJTZWNvbmQgcGF5bWVudCBzaG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVqZWN0ZWQuIik7
CisgIH0pOworfSwgIklmIGEgcGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmcsIGJ1dCBpdHMgZG9j
dW1lbnQgaXMgbmF2aWdhdGVkIGF3YXkgKHNvIG5vIGxvbmdlciBmdWxseSBhY3RpdmUpLCB0aGUg
cGF5bWVudCBzaGVldCBpcyBkaXNtaXNzZWQuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3NoaXBwaW5nLWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3NoaXBwaW5n
LWFkZHJlc3MtY2hhbmdlZC1tYW51YWwuaHR0cHMuaHRtbAppbmRleCAwN2I1MzA2NTdjMzM5NDM0
YWE5MjRkMWRmZTk2ODE0ZmFkMmRiZjNiLi43OGI3ZjE3Y2VlYjk4NGJkZTgwMDkwOTNhNTY5Njky
NjFlNDRkZDdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaGlwcGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFs
Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hpcHBpbmctYWRkcmVzcy1jaGFuZ2VkLW1hbnVhbC5odHRw
cy5odG1sCkBAIC04LDggKzgsMTggQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6
IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVj
dC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUt
cGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVy
OiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1l
cmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29y
a3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6
ZSh7IHN1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9KTsKLWNvbnN0IHZhbGlkTWV0aG9k
cyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citjb25zdCB2YWxpZE1ldGhvZHMgPSBP
YmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXldKTsKIGNvbnN0IHZhbGlkQW1vdW50
ID0gT2JqZWN0LmZyZWV6ZSh7IGN1cnJlbmN5OiAiVVNEIiwgdmFsdWU6ICI1LjAwIiB9KTsKIGNv
bnN0IHZhbGlkVG90YWwgPSBPYmplY3QuZnJlZXplKHsKICAgbGFiZWw6ICJsYWJlbCIsCkBAIC01
MywxMCArNjMsMTQgQEAgZnVuY3Rpb24gdGVzdFNoaXBwaW5nQWRkcmVzc0NoYW5nZSgpIHsKICAg
ICB9KTsKICAgICByZXF1ZXN0LnNob3coKS5jYXRjaChlcnIgPT4gZXJyKTsKICAgICBjb25zdCBy
ZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW2xpc3RlbmVyUHJvbWlzZSwgaGFuZGxlclByb21p
c2VdKTsKLSAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgIHJlc3VsdHMuZXZlcnkob2JqID0+IG9iaiBp
bnN0YW5jZW9mIFBheW1lbnRBZGRyZXNzKSwKLSAgICAgICJFeHBlY3RlZCBpbnN0YW5jZXMgb2Yg
UGF5bWVudEFkZHJlc3MiCi0gICAgKTsKKyAgICByZXN1bHRzLmZvckVhY2gob2JqID0+IHsKKyAg
ICAgIGFzc2VydF90cnVlKG9iaiBpbnN0YW5jZW9mIFBheW1lbnRBZGRyZXNzLAorICAgICAgICAg
ICAgICAgICAgIkV4cGVjdGVkIGluc3RhbmNlIG9mIFBheW1lbnRBZGRyZXNzIik7CisgICAgICBh
c3NlcnRfZXF1YWxzKG9iai5vcmdhbml6YXRpb24sICIiLCAib3JnYW5pemF0aW9uIHNob3VsZCBi
ZSByZWRhY3RlZCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhvYmoucGhvbmUsICIiLCAicGhvbmUg
c2hvdWxkIGJlIHJlZGFjdGVkIik7CisgICAgICBhc3NlcnRfZXF1YWxzKG9iai5yZWNpcGllbnQs
ICIiLCAicmVjaXBpZW50IHNob3VsZCBiZSByZWRhY3RlZCIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhvYmouYWRkcmVzc0xpbmUubGVuZ3RoLCAwLCAiYWRkcmVzc0xpbmUgc2hvdWxkIGJlIHJlZGFj
dGVkIik7CisgICAgfSk7CiAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwogICB9KTsKICAgZG9u
ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3Rz
LW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWpl
Y3RzLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDVjMTAyOGVlYzY2N2M4NTczZGY4OTBkMjAxZDFm
MWI5MTM2ZGRlNTcuLjFhMzIyNDUyZWI2MTE0NjMwYjJmMGQxZDJhOTc2MjA5MmFkNWViYjkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy1tYW51YWwu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMt
bWFudWFsLmh0dHBzLmh0bWwKQEAgLTI0LDYgKzI0LDEzIEBACiAKICAgY29uc3QgdmFsaWRNZXRo
b2RBcHBsZVBheSA9IE9iamVjdC5mcmVlemUoewogICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRw
czovL2FwcGxlLmNvbS9hcHBsZS1wYXkiLAorICAgIGRhdGE6IHsKKyAgICAgIHZlcnNpb246IDMs
CisgICAgICBtZXJjaGFudElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAg
ICBjb3VudHJ5Q29kZTogIlVTIiwKKyAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBv
cnRzM0RTIl0sCisgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAgfQogICB9
KTsKIAogICAvLyBNZXRob2RzCkBAIC0xNjEsNyArMTY4LDEzIEBACiAgICAgICApOwogICAgICAg
Y29uc3QgZGV0YWlsc1Byb21pc2UgPSBQcm9taXNlLnJlc29sdmUoYmFkRGV0YWlscyk7CiAgICAg
ICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KGRldGFpbHNQcm9taXNlKTsKLSAg
ICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICAgIGxldCB0ZXN0X2Z1bmM7CisgICAgICBp
ZiAodHlwZW9mIGV4cGVjdGVkRXJyb3IgPT0gImZ1bmN0aW9uIikgeworICAgICAgICB0ZXN0X2Z1
bmMgPSBwcm9taXNlX3JlamVjdHNfanM7CisgICAgICB9IGVsc2UgeworICAgICAgICB0ZXN0X2Z1
bmMgPSBwcm9taXNlX3JlamVjdHNfZG9tOworICAgICAgfQorICAgICAgYXdhaXQgdGVzdF9mdW5j
KAogICAgICAgICB0LAogICAgICAgICBleHBlY3RlZEVycm9yLAogICAgICAgICBhY2NlcHRQcm9t
aXNlLApAQCAtMTk2LDIwICsyMDksMjAgQEAKIAogICA8bGk+PGJ1dHRvbiBvbmNsaWNrPSIKICAg
ICBjb25zdCBpbnZhbGlkRGV0YWlscyA9IHsgdG90YWw6IGB0aGlzIHdpbGwgY2F1c2UgYSBUeXBl
RXJyb3IhYCB9OwotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgaW52YWxpZERl
dGFpbHMsIG5ldyBUeXBlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250
ZW50LCBpbnZhbGlkRGV0YWlscywgVHlwZUVycm9yKTsKICAgIj4KICAgVG90YWwgaW4gdGhlIHVw
ZGF0ZSBpcyBhIHN0cmluZywgc28gY29udmVydGluZyB0byBJREwgbXVzdCBhYm9ydCB0aGUgdXBk
YXRlIHdpdGggYSBUeXBlRXJyb3IuCiAgIDwvYnV0dG9uPjwvbGk+CiAKICAgPGxpPjxidXR0b24g
b25jbGljaz0iCiAgICAgY29uc3QgaW52YWxpZERldGFpbHMgPSB7IHRvdGFsOiByZWN1cnNpdmVE
YXRhIH07Ci0gICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBpbnZhbGlkRGV0YWls
cywgbmV3IFR5cGVFcnJvcigpKTsKKyAgICB0ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQs
IGludmFsaWREZXRhaWxzLCBUeXBlRXJyb3IpOwogICAiPgogICBUb3RhbCBpcyByZWN1cnNpdmUs
IHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVy
cm9yLgogICA8L2J1dHRvbj48L2xpPgogCiAgIDxsaT48YnV0dG9uIG9uY2xpY2s9IgotICAgIHRl
c3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgaW52YWxpZERldGFpbHNOZWdhdGl2ZVRvdGFs
LCBuZXcgVHlwZUVycm9yKCkpOworICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwg
aW52YWxpZERldGFpbHNOZWdhdGl2ZVRvdGFsLCBUeXBlRXJyb3IpOwogICAiPgogICBVcGRhdGlu
ZyB3aXRoIGEgbmVnYXRpdmUgdG90YWwgcmVzdWx0cyBpbiBhIFR5cGVFcnJvci4KICAgPC9idXR0
b24+PC9saT4KQEAgLTIxOCw3ICsyMzEsNyBAQAogICAgIGNvbnN0IGJhZERldGFpbHMgPSBPYmpl
Y3QuYXNzaWduKHt9LCB2YWxpZERldGFpbHMsIHsKICAgICAgIGRpc3BsYXlJdGVtczogaW52YWxp
ZFBheW1lbnRJdGVtcwogICAgIH0pOwotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVu
dCwgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlz
LnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgIj4KICAgVXBkYXRpbmcg
d2l0aCBhIGRpc3BsYXlJdGVtIHdpdGggYW4gaW52YWxpZCBjdXJyZW5jeSByZXN1bHRzIGluIFJh
bmdlRXJyb3IuCiAgIDwvYnV0dG9uPjwvbGk+CkBAIC0yMjgsNyArMjQxLDcgQEAKICAgICBjb25z
dCBiYWREZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsaWREZXRhaWxzLCB7CiAgICAgICBz
aGlwcGluZ09wdGlvbnM6IGR1cGxpY2F0ZVNoaXBwaW5nT3B0aW9ucywKICAgICB9KTsKLSAgICB0
ZXN0QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQsIGJhZERldGFpbHMsIG5ldyBUeXBlRXJyb3Io
KSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBUeXBl
RXJyb3IpOwogICAiPgogICBVcGRhdGluZyB3aXRoIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbnMg
KHNhbWUgSURzKSByZXN1bHRzIGluIGEgVHlwZUVycm9yLgogICA8L2J1dHRvbj48L2xpPgpAQCAt
MjM2LDcgKzI0OSw3IEBACiAgICAgY29uc3QgYmFkRGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30s
IHZhbGlkRGV0YWlscywgewogICAgICAgc2hpcHBpbmdPcHRpb25zOiBpbnZhbGlkU2hpcHBpbmdP
cHRpb25zLAogICAgIH0pOwotICAgIHRlc3RCYWRVcGRhdGUodGhpcy50ZXh0Q29udGVudCwgYmFk
RGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgdGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRD
b250ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAgIj4KICAgVXBkYXRpbmcgd2l0aCBh
IHNoaXBwaW5nT3B0aW9uIHdpdGggYW4gaW52YWxpZCBjdXJyZW5jeSB2YWx1ZSByZXN1bHRzIGlu
IGEgUmFuZ0Vycm9yLgogICA8L2J1dHRvbj48L2xpPgpAQCAtMjQ1LDcgKzI1OCw3IEBACiAgICAg
Ly8gdmFsaWRNb2RpZmllciBpcyB0aGVyZSBhcyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMKICAg
ICBjb25zdCBiYWRNb2RpZmllcnMgPSB7IG1vZGlmaWVyczogW21vZGlmaWVyV2l0aEludmFsaWRU
b3RhbCwgdmFsaWRNb2RpZmllcl0gfTsKICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFz
c2lnbih7fSwgdmFsaWREZXRhaWxzLCBiYWRNb2RpZmllcnMpOwotICAgIHRlc3RCYWRVcGRhdGUo
dGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAgdGVz
dEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsKICAg
Ij4KICAgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwgaXRl
bSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4KICAgPC9idXR0b24+PC9saT4KQEAgLTI1Niw3ICsy
NjksNyBAQAogICAgICAgbW9kaWZpZXJzOiBbbW9kaWZpZXJXaXRoSW52YWxpZERpc3BsYXlJdGVt
cywgdmFsaWRNb2RpZmllcl0sCiAgICAgfTsKICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0
LmFzc2lnbih7fSwgdmFsaWREZXRhaWxzLCBiYWRNb2RpZmllcnMpOwotICAgIHRlc3RCYWRVcGRh
dGUodGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgbmV3IFJhbmdlRXJyb3IoKSk7CisgICAg
dGVzdEJhZFVwZGF0ZSh0aGlzLnRleHRDb250ZW50LCBiYWREZXRhaWxzLCBSYW5nZUVycm9yKTsK
ICAgIj4KICAgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkg
aXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4KICAgPC9idXR0b24+PC9saT4KQEAgLTI2Nyw3
ICsyODAsNyBAQAogICAgICAgbW9kaWZpZXJzOiBbbW9kaWZpZXJXaXRoUmVjdXJzaXZlRGF0YSwg
dmFsaWRNb2RpZmllcl0sCiAgICAgfTsKICAgICBjb25zdCBiYWREZXRhaWxzID0gT2JqZWN0LmFz
c2lnbih7fSwgdmFsaWREZXRhaWxzLCBiYWRNb2RpZmllcnMpOwotICAgIHRlc3RCYWRVcGRhdGUo
dGhpcy50ZXh0Q29udGVudCwgYmFkRGV0YWlscywgbmV3IFR5cGVFcnJvcigpKTsKKyAgICB0ZXN0
QmFkVXBkYXRlKHRoaXMudGV4dENvbnRlbnQsIGJhZERldGFpbHMsIFR5cGVFcnJvcik7CiAgICI+
CiAgIE11c3QgdGhyb3cgYXMgTW9kaWZpZXIgaGFzIGEgcmVjdXJzaXZlIGRpY3Rpb25hcnkuCiAg
IDwvYnV0dG9uPjwvbGk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9t
aXNlLXJlc29sdmVzLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwt
cHJvbWlzZS1yZXNvbHZlcy1tYW51YWwuaHR0cHMuaHRtbAppbmRleCA3MGM5N2ZhYWY3YTQ0OTY5
ODJhMzgyYTQxNWUzYTg1ZTlhMTdjNDY1Li41MzYwYTk3MDRhZjQ1OWYzMDE4MGY5MzhkMTI4Mjhm
NmRiZjFiNTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJl
c29sdmVzLW1hbnVhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXBy
b21pc2UtcmVzb2x2ZXMtbWFudWFsLmh0dHBzLmh0bWwKQEAgLTIzLDYgKzIzLDEzIEBAIGNvbnN0
IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoWwogICB9LAogICB7CiAgICAgc3VwcG9ydGVk
TWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBheSIsCisgICAgZGF0YTogeworICAg
ICAgdmVyc2lvbjogMywKKyAgICAgIG1lcmNoYW50SWRlbnRpZmllcjogIm1lcmNoYW50LmNvbS5l
eGFtcGxlIiwKKyAgICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgICAgbWVyY2hhbnRDYXBhYmls
aXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKKyAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2Ei
XSwKKyAgICB9CiAgIH0sCiBdKTsKIApAQCAtMTU3LDkgKzE2NCw5IEBAIGNvbnN0IG5ldXRyYWxE
ZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CiBmdW5jdGlvbiBzbW9rZVRlc3QoKSB7CiAgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1
ZXN0KHZhbGlkTWV0aG9kcywgZmFpbERldGFpbHMpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfanMoCiAgICAgICB0LAotICAgICAgbmV3IFR5
cGVFcnJvcigpLAorICAgICAgVHlwZUVycm9yLAogICAgICAgcmVxdWVzdC5zaG93KHsKICAgICAg
ICAgdG90YWw6ICJUaGlzIHRocm93cyBhIFR5cGVFcnJvciIsCiAgICAgICB9KSwKQEAgLTE3Mywx
NiArMTgwLDE3IEBAIGZ1bmN0aW9uIHJ1blVwZGF0ZURldGFpbHNBbGdvcml0aG0oCiAgIGRldGFp
bHMsCiAgIG9wdGlvbnMgPSB7CiAgICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAotICB9CisgIH0s
CisgIGluaXRpYWxEZXRhaWxzID0gZmFpbERldGFpbHMsCiApIHsKICAgY29uc3QgdGVzdEFzc2Vy
dGlvbiA9IGJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpOwogICBidXR0b25FbGVtZW50
LmRpc2FibGVkID0gdHJ1ZTsKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QodmFsaWRNZXRob2RzLCBmYWlsRGV0YWlscywg
b3B0aW9ucyk7CisgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxpZE1l
dGhvZHMsIGluaXRpYWxEZXRhaWxzLCBvcHRpb25zKTsKICAgICBjb25zdCBkZXRhaWxzUHJvbWlz
ZSA9IFByb21pc2UucmVzb2x2ZShkZXRhaWxzKTsKICAgICBjb25zdCBhY2NlcHRQcm9taXNlID0g
cmVxdWVzdC5zaG93KGRldGFpbHNQcm9taXNlKTsKICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qu
aWQsICJ0aGlzIGNhbm5vdCBiZSBjaGFuZ2VkIiwgImlkIG11c3QgbmV2ZXIgY2hhbmdlLiIpOwot
ICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KAogICAgICAgdCwKICAgICAgICJBYm9ydEVycm9yIiwKICAgICAgIGFjY2VwdFByb21pc2UsCkBA
IC0zMDgsNiArMzE2LDE4IEBAIGZ1bmN0aW9uIHJ1blVwZGF0ZURldGFpbHNBbGdvcml0aG0oCiAg
ICAgV2hlbiB0aGUgcGF5bWVudCBzaGVldCBpcyBzaG93biwgdGhlcmUgc2hvdWxkIG5vdCBiZSBh
bnkgZXJyb3JzIHNob3duLgogICAgIDwvYnV0dG9uPgogICA8L2xpPgorICA8bGk+CisgICAgPGJ1
dHRvbiBvbmNsaWNrPSIKKyAgICAgIGNvbnN0IGluaXRpYWxEZXRhaWxzID0ge3RvdGFsOiBwYXNz
VG90YWwsIGlkOiAndGhpcyBjYW5ub3QgYmUgY2hhbmdlZCd9OworICAgICAgY29uc3QgdXBkYXRl
ZERldGFpbHMgPSB7fTsKKyAgICAgIHJ1blVwZGF0ZURldGFpbHNBbGdvcml0aG0oCisgICAgICAg
ICAgICB0aGlzLCB1cGRhdGVkRGV0YWlscywge3JlcXVlc3RTaGlwcGluZzogZmFsc2V9LCBpbml0
aWFsRGV0YWlscyk7CisgICAgIj4KKyAgICBSZXNvbHZpbmcgdGhlIHNob3cgcHJvbWlzZSB3aXRo
IGVtcHR5IGRldGFpbHMgd2lsbCBwcmVzZXJ2ZSB0aGUgZGV0YWlscyBmcm9tCisgICAgdGhlIGNv
bnN0cnVjdG9yLiBXaGVuIHRoZSBwYXltZW50IHNoZWV0IGlzIHNob3duLCB0aGUgc3RyaW5nCisg
ICAgIuKchSBURVNUIEhBUyBQQVNTRUQg4pyFIiBzaG91bGQgYmUgc2hvd24uCisgICAgPC9idXR0
b24+CisgIDwvbGk+CiAgIDxsaT4KICAgICA8YnV0dG9uIG9uY2xpY2s9ImRvbmUoKTsiPkRvbmUh
PC9idXR0b24+CiAgIDwvbGk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1wb3N0bWVzc2Fn
ZS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sCmlu
ZGV4IDEyYTFlMGNlZjgyODg2ZjA1MTRjYWU1NmViOWY0ZTExMzIxYWI1ZGUuLmI1MGYxOGVjY2Uz
YWM2MmQzMTkzYTg2ZDY2OGY0NTdjMWU5NjI5YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9k
LXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdl
LWlmcmFtZS5odG1sCkBAIC0zLDcgKzMsMTYgQEAKICJ1c2Ugc3RyaWN0IjsKIGNvbnN0IGRlZmF1
bHRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbCiAgIHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2lj
LWNhcmQiIH0sCi0gIHsgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2FwcGxl
LXBheSIgfSwKKyAgeworICAgIHN1cHBvcnRlZE1ldGhvZHM6ICJodHRwczovL2FwcGxlLmNvbS9h
cHBsZS1wYXkiLAorICAgIGRhdGE6IHsKKyAgICAgIHZlcnNpb246IDMsCisgICAgICBtZXJjaGFu
dElkZW50aWZpZXI6ICJtZXJjaGFudC5jb20uZXhhbXBsZSIsCisgICAgICBjb3VudHJ5Q29kZTog
IlVTIiwKKyAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAg
ICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCisgICAgfQorICB9LAogXSk7CiAKIGNvbnN0
IGRlZmF1bHREZXRhaWxzID0gT2JqZWN0LmZyZWV6ZSh7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1l
dGhvZC1wb3N0bWVzc2FnZS1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3Rt
ZXNzYWdlLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGU0YWI1NTBlNDE4OWUxNTE4YTRiNjAxYWE0
YzllMjQ5ZGY0YzVlY2QuLjkyMGUwYTk5OTJlYmExZjYwNGQ1ZDAyNDZmMWM3ZTdlN2I0MmJkMWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLW1hbnVhbC5odHRwcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3Nob3ctbWV0aG9kLXBvc3RtZXNzYWdlLW1hbnVhbC5odHRwcy5odG1sCkBAIC0x
MiwzNCArMTIsNiBAQCBzZXR1cCh7CiAgIGFsbG93X3VuY2F1Z2h0X2V4Y2VwdGlvbjogdHJ1ZSwK
IH0pOwogCi1jb25zdCBkZWZhdWx0TWV0aG9kcyA9IE9iamVjdC5mcmVlemUoWwotICB7IHN1cHBv
cnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJkIiB9LAotICB7IHN1cHBvcnRlZE1ldGhvZHM6ICJodHRw
czovL2FwcGxlLmNvbS9hcHBsZS1wYXkiIH0sCi1dKTsKLQotY29uc3QgZGVmYXVsdERldGFpbHMg
PSBPYmplY3QuZnJlZXplKHsKLSAgaWQ6ICJmYWlsIiwKLSAgdG90YWw6IHsKLSAgICBsYWJlbDog
IlRvdGFsIiwKLSAgICBhbW91bnQ6IHsKLSAgICAgIGN1cnJlbmN5OiAiVVNEIiwKLSAgICAgIHZh
bHVlOiAiMS4wMCIsCi0gICAgfSwKLSAgfSwKLX0pOwotCi10ZXN0KCgpID0+IHsKLSAgYXNzZXJ0
X3Rocm93cygKLSAgICAiU2VjdXJpdHlFcnJvciIsCi0gICAgKCkgPT4gewotICAgICAgY29uc3Qg
cmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFp
bHMpOwotICAgICAgcmVxdWVzdC5zaG93KCk7IC8vIDwtLS0gc2hvdWxkIHRocm93IGhlcmUKLSAg
ICAgIHJlcXVlc3QuYWJvcnQoKTsKLSAgICB9LAotICAgICJ0aHJvd3MgYSBTZWN1cml0eUVycm9y
IGlmIG5vdCB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uIgotICApOwotfSk7Ci0KIGFzeW5j
IGZ1bmN0aW9uIHJ1blVzZXJBY3RpdmF0aW9uKGJ1dHRvbikgewogICBidXR0b24uZGlzYWJsZWQg
PSB0cnVlOwogICBjb25zdCB7IGNvbnRlbnRXaW5kb3c6IGlmcmFtZVdpbmRvdyB9ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXBkYXRlV2l0aC1t
ZXRob2QtcG1pLWhhbmRsaW5nLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXBkYXRlV2l0aC1tZXRo
b2QtcG1pLWhhbmRsaW5nLW1hbnVhbC5odHRwcy5odG1sCmluZGV4IDA2ODUyYmY4YzQ3Y2I5ZTcy
MDE5MGI5YjBlMmY4MWQ5ZTdkZGQzMzUuLjFhNTI5NzhjYTNlMzEyMzkyYzc1NGMwODI2NzQwNTcy
M2U1Zjg4MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3VwZGF0ZVdpdGgtbWV0aG9kLXBtaS1oYW5kbGluZy1t
YW51YWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC91cGRhdGVXaXRoLW1ldGhvZC1wbWktaGFuZGxpbmct
bWFudWFsLmh0dHBzLmh0bWwKQEAgLTEsNSArMSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTwhLS0g
Q29weXJpZ2h0IMKpIDIwMTcgTW96aWxsYSBhbmQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEVSQ0lNLCBLZWlvIFVuaXZl
cnNpdHksIEJlaWhhbmcpLiAtLT4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5UZXN0
IGZvciB2YWxpZGl0eSBvZiBwYXltZW50IG1ldGhvZCBpZGVudGlmaWVycyB3aGVuIGNhbGxpbmcg
dXBkYXRlV2l0aCgpIG1ldGhvZDwvdGl0bGU+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vd3d3LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3QvI3VwZGF0ZXdpdGgoKS1tZXRob2QiPgpA
QCAtNywxMiArNiwzMCBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICJ1c2Ugc3RyaWN0IjsKLXNldHVwKHsgZXhwbGlj
aXRfZG9uZTogdHJ1ZSwgZXhwbGljaXRfdGltZW91dDogdHJ1ZSB9KTsKK3NldHVwKHsKKyAgZXhw
bGljaXRfZG9uZTogdHJ1ZSwKKyAgZXhwbGljaXRfdGltZW91dDogdHJ1ZSwKKyAgYWxsb3dfdW5j
YXVnaHRfZXhjZXB0aW9uOiB0cnVlLAorfSk7Citjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVl
emUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5IiwK
KyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlmaWVyOiAibWVy
Y2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAgIG1lcmNoYW50
Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsi
dmlzYSJdLAorICB9LAorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewog
ICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly86QHdwdC5meWk6NDQzL3BheW1lbnQtcmVxdWVz
dCIsCiB9KTsKIAotY29uc3QgdmFsaWRNZXRob2RzID0gT2JqZWN0LmZyZWV6ZShbdmFsaWRNZXRo
b2RdKTsKK2NvbnN0IHZhbGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoWworICB2YWxpZE1ldGhv
ZCwKKyAgYXBwbGVQYXksCisgIHsgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0sCitd
KTsKIAogY29uc3QgdmFsaWRBbW91bnQgPSBPYmplY3QuZnJlZXplKHsKICAgY3VycmVuY3k6ICJV
U0QiLApAQCAtNDEsMjMgKzU4LDEyIEBAIGNvbnN0IHZhbGlkTW9kaWZpZXIgPSBPYmplY3QuZnJl
ZXplKHsKICAgdG90YWw6IHZhbGlkVG90YWwsCiB9KTsKIAotdGVzdCgoKSA9PiB7Ci0gIHRyeSB7
Ci0gICAgbmV3IFBheW1lbnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgdmFsaWREZXRhaWxzKTsKLSAg
fSBjYXRjaCAoZXJyKSB7Ci0gICAgZG9uZSgpOwotICAgIHRocm93IGVycjsKLSAgfQotfSwgInNt
b2tlIHRlc3QiKTsKLQogZnVuY3Rpb24gbWFudWFsVGVzdChidXR0b24sIHsgaW52YWxpZE1ldGhv
ZCB9KSB7CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CiAgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KAotICAgICAgW3sg
c3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH1dLAotICAgICAgdmFsaWREZXRhaWxzLAot
ICAgICAgeyByZXF1ZXN0U2hpcHBpbmc6IHRydWUgfQotICAgICk7CisgICAgY29uc3QgcmVxdWVz
dCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxpZE1ldGhvZHMsIHZhbGlkRGV0YWlscywgeworICAg
ICAgcmVxdWVzdFNoaXBwaW5nOiB0cnVlLAorICAgIH0pOwogICAgIGNvbnN0IGxpc3RlbmVyID0g
ZXYgPT4gewogICAgICAgY29uc3QgaW52YWxpZE1vZGlmaWVyID0gT2JqZWN0LmFzc2lnbih7fSwg
dmFsaWRNb2RpZmllciwgewogICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiBpbnZhbGlkTWV0aG9k
LApAQCAtNzAsNyArNzYsNyBAQCBmdW5jdGlvbiBtYW51YWxUZXN0KGJ1dHRvbiwgeyBpbnZhbGlk
TWV0aG9kIH0pIHsKICAgICAvLyBXZSB0ZXN0IGFnYWluc3QgYSB2YWxpZCBhbmQgYW4gaW52YWxp
ZCBtb2RpZmllcgogICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigic2hpcHBpbmdhZGRyZXNz
Y2hhbmdlIiwgbGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTsKICAgICBjb25zdCBzaG93UHJvbWlz
ZSA9IHJlcXVlc3Quc2hvdygpOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgUmFu
Z2VFcnJvcigpLCBzaG93UHJvbWlzZSk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2pzKHQs
IFJhbmdlRXJyb3IsIHNob3dQcm9taXNlKTsKICAgfSwgYnV0dG9uLnRleHRDb250ZW50LnRyaW0o
KSk7CiB9CiA8L3NjcmlwdD4KQEAgLTEyMCwxMCArMTI2LDEzIEBAIGZ1bmN0aW9uIG1hbnVhbFRl
c3QoYnV0dG9uLCB7IGludmFsaWRNZXRob2QgfSkgewogICAgIDwvYnV0dG9uPgogICA8L2xpPgog
ICA8bGk+Ci0gICAgPGJ1dHRvbiBvbmNsaWNrPSJtYW51YWxUZXN0KHRoaXMsIHtpbnZhbGlkTWV0
aG9kOiAnQmFzaWMtQ2FyZCd9KTsgZG9uZSgpOyI+CisgICAgPGJ1dHRvbiBvbmNsaWNrPSJtYW51
YWxUZXN0KHRoaXMsIHtpbnZhbGlkTWV0aG9kOiAnQmFzaWMtQ2FyZCd9KTsiPgogICAgICAgTXVz
dCB0aHJvdyBpZiBzdGFuZGFyZGl6ZWQgUE1JIGhhcyB1cHBlcmNhc2UgY2hhcmFjdGVycy4KICAg
ICA8L2J1dHRvbj4KICAgPC9saT4KKyAgPGxpPgorICAgIDxidXR0b24gb25jbGljaz0iZG9uZSgp
OyI+RG9uZSE8L2J1dHRvbj4KKyAgPC9saT4KIDwvb2w+CiA8c21hbGw+CiAgIElmIHlvdSBmaW5k
IGEgYnVnZ3kgdGVzdCwgcGxlYXNlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3VlcyI+ZmlsZSBhIGJ1ZzwvYT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Vz
ZXItYWJvcnQtYWxnb3JpdGhtLW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNlci1hYm9ydC1hbGdv
cml0aG0tbWFudWFsLmh0dHBzLmh0bWwKaW5kZXggMGJhMDQwNWM1MmZiZDU4MDVhMzZkMjcwNzYx
OGRjODRhNzExMTM1MS4uMDc4YmYzZDYxYWU2ZTc1YjNjY2YwZmVkOGE5ODdlNmI3Y2QzNmZmZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvdXNlci1hYm9ydC1hbGdvcml0aG0tbWFudWFsLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvdXNlci1hYm9ydC1hbGdvcml0aG0tbWFudWFsLmh0dHBzLmh0bWwKQEAgLTE3LDEwICsx
NywyMCBAQCBjb25zdCB2YWxpZFRvdGFsID0gT2JqZWN0LmZyZWV6ZSh7CiAgIGxhYmVsOiAiVG90
YWwgZHVlIiwKICAgYW1vdW50OiB2YWxpZEFtb3VudCwKIH0pOworY29uc3QgYXBwbGVQYXkgPSBP
YmplY3QuZnJlZXplKHsKKyAgc3VwcG9ydGVkTWV0aG9kczogImh0dHBzOi8vYXBwbGUuY29tL2Fw
cGxlLXBheSIsCisgIGRhdGE6IHsKKyAgICB2ZXJzaW9uOiAzLAorICAgIG1lcmNoYW50SWRlbnRp
ZmllcjogIm1lcmNoYW50LmNvbS5leGFtcGxlIiwKKyAgICBjb3VudHJ5Q29kZTogIlVTIiwKKyAg
ICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJdLAorICAgIHN1cHBvcnRlZE5l
dHdvcmtzOiBbInZpc2EiXSwKKyAgfQorfSk7CiBjb25zdCB2YWxpZE1ldGhvZCA9IE9iamVjdC5m
cmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiB9KTsKLWNvbnN0IHZh
bGlkTWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW3ZhbGlkTWV0aG9kXSk7Citjb25zdCB2YWxpZE1l
dGhvZHMgPSBPYmplY3QuZnJlZXplKFt2YWxpZE1ldGhvZCwgYXBwbGVQYXldKTsKIGNvbnN0IHZh
bGlkRGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3RhbDogdmFsaWRUb3RhbCwKIH0pOwpA
QCAtNDAsOSArNTAsOSBAQCBhc3luYyBmdW5jdGlvbiBydW5BYm9ydFRlc3QoYnV0dG9uKSB7CiAg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1l
bnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgdmFsaWREZXRhaWxzKTsKICAgICAvLyBBd2FpdCB0aGUg
dXNlciB0byBhYm9ydAotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIs
IHJlcXVlc3Quc2hvdygpKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9y
dEVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwogICAgIC8vIFtbc3RhdGVdXSBpcyBub3cgY2xvc2Vk
Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVl
c3Quc2hvdygpKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3Rh
dGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKICAgfSwgdGVzdE5hbWUudHJpbSgpKTsKIH0KIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNlci1hY2NlcHRzLXBheW1lbnQtcmVxdWVzdC1hbGdv
LW1hbnVhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdXNlci1hY2NlcHRzLXBheW1lbnQtcmVxdWVzdC1hbGdv
LW1hbnVhbC5odHRwcy5odG1sCmluZGV4IGFiYWY2Y2I0ZTg1ODBkZjVjNjAzNGU4YjEzN2FlOGZj
MzQzMDY3YTYuLjAyMjUxMzc1ODUzYTdkY2NiY2VjYzhkMzFkYzUwZGQ5NGU3NTdjYmIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3VzZXItYWNjZXB0cy1wYXltZW50LXJlcXVlc3QtYWxnby1tYW51YWwuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC91c2VyLWFjY2VwdHMtcGF5bWVudC1yZXF1ZXN0LWFsZ28tbWFudWFsLmh0
dHBzLmh0bWwKQEAgLTgsMTMgKzgsMjMgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBzZXR1cCh7IGV4cGxpY2l0X2Rv
bmU6IHRydWUsIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7Citjb25zdCBhcHBsZVBheSA9IE9i
amVjdC5mcmVlemUoeworICBzdXBwb3J0ZWRNZXRob2RzOiAiaHR0cHM6Ly9hcHBsZS5jb20vYXBw
bGUtcGF5IiwKKyAgZGF0YTogeworICAgIHZlcnNpb246IDMsCisgICAgbWVyY2hhbnRJZGVudGlm
aWVyOiAibWVyY2hhbnQuY29tLmV4YW1wbGUiLAorICAgIGNvdW50cnlDb2RlOiAiVVMiLAorICAg
IG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1cHBvcnRzM0RTIl0sCisgICAgc3VwcG9ydGVkTmV0
d29ya3M6IFsidmlzYSJdLAorICB9Cit9KTsKIGNvbnN0IGJhc2ljQ2FyZE1ldGhvZCA9IE9iamVj
dC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIsCiB9KTsKIGNvbnN0
IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHN1cHBvcnRlZE1ldGhvZHM6ICJ0aGlz
LWlzLWp1c3QtZm9yLXRlc3RpbmdzLXdpbGwtbmV2ZXItbWF0Y2giLAogfSk7Ci1jb25zdCBtZXRo
b2RzID0gT2JqZWN0LmZyZWV6ZShbYmFzaWNDYXJkTWV0aG9kLCB2YWxpZE1ldGhvZF0pOworY29u
c3QgbWV0aG9kcyA9IE9iamVjdC5mcmVlemUoW2Jhc2ljQ2FyZE1ldGhvZCwgdmFsaWRNZXRob2Qs
IGFwcGxlUGF5XSk7CiBjb25zdCB2YWxpZEFtb3VudCA9IE9iamVjdC5mcmVlemUoewogICBjdXJy
ZW5jeTogIlVTRCIsCiAgIHZhbHVlOiAiNS4wMCIsCkBAIC04Nyw3ICs5Nyw3IEBAIGZ1bmN0aW9u
IHRlc3RBY2NlcHRSZXF1ZXN0QWxnb3JpdGhtKAogICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRl
KCJzdWNjZXNzIik7CiAgICAgLy8gRm9yIGdvb2QgbWVhc3VyZSwgdGVzdCB0aGF0IHN1YnNlcXVl
bnQgY29tcGxldGUoKQogICAgIGZvciAoY29uc3Qgc3RhdGUgb2YgW3VuZGVmaW5lZCwgInN1Y2Nl
c3MiLCAiZmFpbCIsICJ1bmtub3duIl0pIHsKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cygK
KyAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICAgIHQsCiAgICAgICAgICJJ
bnZhbGlkU3RhdGVFcnJvciIsCiAgICAgICAgIHJlc3BvbnNlLmNvbXBsZXRlKHN0YXRlKSwKQEAg
LTEzMyw3ICsxNDMsNyBAQCBmdW5jdGlvbiB0ZXN0QWNjZXB0UmVxdWVzdEFsZ29yaXRobSgKICAg
ICAgICAgYHJlc3BvbnNlLiR7YXR0cn0gbXVzdCBiZSAke2V4cGVjdGVkVmFsdWV9YAogICAgICAg
KTsKICAgICB9Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKAorICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20oCiAgICAgICB0LAogICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwKICAgICAg
IHJlcXVlc3Quc2hvdygpLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC93M2Mt
aW1wb3J0LmxvZwppbmRleCBiYWRmNDJjNmY0NTNiY2YwMGEwNTQ0ZDA4ZDUwNjk0YTM4NWNmNzA5
Li43MGFmNWMwZmY5ZmZlYzMwOWY5NDUzOTYzOTNjMjAzMTFlNTY2Zjg3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC93M2MtaW1wb3J0LmxvZwpAQCAtMTYsMjAgKzE2LDI3
IEBAIE5vbmUKIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGdvcml0aG1zLW1h
bnVhbC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvYmlsbGluZy1hZGRyZXNzLWNoYW5nZWQtbWFudWFsLmh0dHBz
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9ibGFuay5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvY2hhbmdlLXNoaXBwaW5nLW9wdGlvbi1tYW51YWwu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L2NoYW5nZS1zaGlwcGluZy1vcHRpb24tc2VsZWN0LWxhc3QtbWFudWFs
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9jb25zdHJ1Y3Rvcl9jb252ZXJ0X21ldGhvZF9kYXRhLmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9keW5hbWljYWxseS1jaGFuZ2Utc2hpcHBpbmctb3B0aW9ucy1tYW51YWwuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L2hpc3RvcmljYWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2lkbGhhcm5lc3MuaHR0cHMud2lu
ZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3Qvb25tZXJjaGFudHZhbGlkYXRpb24tYXR0cmlidXRlLmh0dHBzLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9vbnBheW1lbnRtZW50aG9kY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvb25wYXlt
ZW50bWV0aG9kY2hhbmdlLWF0dHJpYnV0ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93
aW5nLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLXByb3RlY3Rpb24u
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0
cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVjdG9yLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3QtY3Rvci1jdXJyZW5jeS1jb2RlLWNoZWNrcy5odHRwcy5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWN0b3ItcG1pLWhhbmRsaW5nLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtY29uc3RydWN0b3ItdGhjcmFzaC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNv
bnN0cnVjdG9yLmh0dHBzLnN1Yi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWN0b3ItY3VycmVu
Y3ktY29kZS1jaGVja3MuaHR0cHMuc3ViLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY3Rvci1w
bWktaGFuZGxpbmcuaHR0cHMuc3ViLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xs
ZWRpbnN0cnVtZW50LW1ldGhvZC1tYW51YWwudGVudGF0aXZlLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC1wcm90ZWN0aW9uLnRlbnRh
dGl2ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVu
dC1tZXRob2QudGVudGF0aXZlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaWQtYXR0
cmlidXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaW5zZWN1cmUuaHR0cC5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LW5vdC1leHBvc2VkLmh0dHBzLndvcmtlci5qcwpAQCAtMzks
NiArNDYsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ09w
dGlvbi1hdHRyaWJ1dGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaGlwcGluZ1R5
cGUtYXR0cmlidXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2Qu
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS1tYW51YWwuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hpcHBpbmctYWRkcmVz
cy1jaGFuZ2VkLW1hbnVhbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJv
bWlzZS1yZWplY3RzLW1hbnVhbC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTQwNDU1NjVmZjRjZDAxZjZlMWU5ZDUxNzcx
M2EwNGM4MTZjNTFmMi4uY2Q2MTI5NjZiZWQ5N2ZmM2ZjODMwZDRjY2E3ZDkxZGZlNDMxOTU3MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NTUsNiArNTUsOCBAQCB3ZWJraXQub3JnL2IvMTc1NjExIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudAogd2Via2l0Lm9yZy9iLzE3NTYx
MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3Bh
eW1lbnRyZXF1ZXN0L3JlbW92aW5nLWFsbG93cGF5bWVudHJlcXVlc3QuaHR0cHMuc3ViLmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNzU2MTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9zZXR0aW5nLWFsbG93cGF5
bWVudHJlcXVlc3QtdGltaW5nLmh0dHBzLnN1Yi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2Iv
MTc1NjExIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2Fs
bG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0Lmh0dHBzLnN1Yi5o
dG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0dHBzLmh0bWwgWyBT
a2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRw
cy5odG1sIFsgU2tpcCBdCiAKICMgc2tpcCBpbiBmYXZvciBvZiB0ZXN0cyBpbiBodHRwL3Rlc3Rz
L3BheW1lbnRyZXF1ZXN0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtYWJvcnQtbWV0aG9kLmh0dHBzLmh0bWwgWyBXb250Rml4
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vu
cm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1t
ZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjljY2E3NDkz
YzkyYTkwZDMyMWYwM2FjMTMyYzczM2FkMjkyY2FhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhv
ZC50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorSWYgeW91IGZp
bmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFnIG9uZSBvZiB0aGUgc3Vn
Z2VzdGVkIHJldmlld2Vycy4KKworRkFJTCBoYXNFbnJvbGxlZEluc3RydW1lbnQoKSByZXNvbHZl
cyB0byBmYWxzZSBmb3IgdW5zdXBwb3J0ZWQgcGF5bWVudCBtZXRob2RzLiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogUGF5bWVudFJlcXVlc3QiCitGQUlMIElmIHJlcXVlc3QuW1tz
dGF0ZV1dIGlzICJpbnRlcmFjdGl2ZSIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3
aXRoIGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogUGF5bWVudFJlcXVlc3QiCitGQUlMIElmIHJlcXVlc3QuW1tzdGF0
ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAi
SW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IFBheW1lbnRSZXF1ZXN0IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWYwNWU0NmY3ZWFiMjYxNGIxODMyMThjODIxM2Y4
Y2FiMTMwMThkNi4uYWQ5Njk1MjNkNWRmNzIwODk3ZDUzNTZiOTkzNGM2NDU5Mzk3Y2FlYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjU0
LDggKzY1NCw2IEBAIHdlYmtpdC5vcmcvYi8xNzIwNDQgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL29wZW4tcmVxCiAKIHdlYmtpdC5vcmcvYi8xNzM3
NzkgWyBEZWJ1ZyBdIGZhc3Qvc2Nyb2xsaW5nL2Fycm93LWtleS1zY3JvbGwtaW4tcnRsLWRvY3Vt
ZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTc1NzczIFsgRGVidWcg
XSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3QtY29uc3RydWN0b3ItY3Jhc2guaHR0cHMuaHRtbCBbIFNraXAgXQotCiB3ZWJraXQu
b3JnL2IvMTczNjcyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS9pbnZhbGlkYXRlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTcz
NTAwIGh0dHAvdGVzdHMvbG9hZGluZy9iYXNpYy1hdXRoLXJlbW92ZS1jcmVkZW50aWFscy5odG1s
IFsgUGFzcyBGYWlsdXJlIF0KQEAgLTEwMzksNCArMTAzNyw0IEBAIHdlYmtpdC5vcmcvYi8yMTM2
MjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXIt
Z2V0Q29uCiAKIHdlYmtpdC5vcmcvYi8yMTM2NTIgd2VicnRjL3ZpZGVvLWF1dG9wbGF5MS5odG1s
IFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIxNDA4NCBbIFJlbGVhc2UgXSB3ZWJy
dGMvbGlid2VicnRjL2Rlc2NyaXB0aW9uR2V0dGVycy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXQub3JnL2IvMjE0MDg0IFsgUmVsZWFzZSBd
IHdlYnJ0Yy9saWJ3ZWJydGMvZGVzY3JpcHRpb25HZXR0ZXJzLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uIGIvTGF5b3V0VGVz
dHMvdGVzdHMtb3B0aW9ucy5qc29uCmluZGV4IDExMDMxYjU5ZDIyYTk1YmRkZDRiNjI3YjAyOGRm
NTgwZTVmNzg0ZjQuLjE0YTQ3NTllNzQ1YjQ2YTYwZDhiMmNhZDk5MTlkOWY3ZDFjOTkxN2MgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0
cy90ZXN0cy1vcHRpb25zLmpzb24KQEAgLTI0NTYsOSArMjQ1NiwxOCBAQAogICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFt
VHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwK
KyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxs
b3dwYXltZW50cmVxdWVzdC9zZXR0aW5nLWFsbG93cGF5bWVudHJlcXVlc3QtdGltaW5nLmh0dHBz
LnN1Yi5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0
cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNvbnN0cnVj
dG9yLWNyYXNoLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVx
dWVzdC1jb25zdHJ1Y3Rvci10aGNyYXNoLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93Igor
ICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1pbi1w
aWN0dXJlL2xlYXZlLXBpY3R1cmUtaW4tcGljdHVyZS5odG1sIjogWwogICAgICAgICAic2xvdyIK
ICAgICBdLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>