<?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>214151</bug_id>
          
          <creation_ts>2020-07-09 11:40:02 -0700</creation_ts>
          <short_desc>Resync web-platform-tests/webrtc 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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214183</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=214197</see_also>
          <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>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>1670192</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-09 11:40:02 -0700</bug_when>
    <thetext>Resync web-platform-tests/webrtc from upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670195</commentid>
    <comment_count>1</comment_count>
      <attachid>403893</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-09 11:45:21 -0700</bug_when>
    <thetext>Created attachment 403893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670305</commentid>
    <comment_count>2</comment_count>
      <attachid>403924</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-09 15:38:43 -0700</bug_when>
    <thetext>Created attachment 403924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670313</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-09 16:04:22 -0700</bug_when>
    <thetext>Committed r264202: &lt;https://trac.webkit.org/changeset/264202&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403924.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670314</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-09 16:05:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/65296689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670426</commentid>
    <comment_count>5</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-07-10 06:06:46 -0700</bug_when>
    <thetext>(In reply to EWS from comment #3)
&gt; Committed r264202: &lt;https://trac.webkit.org/changeset/264202&gt;
This broke imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html is consistently failing on mac-wk1, as also warned by EWS.

Tracked in Bug 214183.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403893</attachid>
            <date>2020-07-09 11:45:21 -0700</date>
            <delta_ts>2020-07-09 15:38:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214151-20200709114520.patch</filename>
            <type>text/plain</type>
            <size>988912</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTc4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTRmYmZlNzhkNzY1MjhjZTU4NzQy
M2Q4YjUxZDU3ZDU1M2RmMTg2OC4uYzdjZTA1M2JlNTRkZmVlOWNlY2RiNTRhNzJjZjA4MzEzNTQ3
ZmFmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA3LTA5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE0MTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB0ZXN0cy1vcHRpb25zLmpzb246CisKIDIwMjAtMDctMDkgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBtYXJrIHJlZi10ZXN0
IGFzIGZsYWt5IG9uIGlPUyBzaW5jZSBpbXBvcnQgaW4gcjI2Mzk4Ny4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IGE2OGU3N2I1N2Y3NTkyNmM3OTljYzcwYzVmOTIzMGNkNjYyZjU1
MmIuLjg3Y2MwZjI1OTMyNDUxNTUxNzY5MjVmNmRhMGU1NWY3YjE5NGIzYTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTA5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMgZnJvbSB1
cHN0cmVhbSBjZWY5M2I1OGU3Y2YzMWYxZDQ3LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy8qOiBVcGRhdGVkLgorCiAyMDIwLTA3LTA5ICBDbGFyayBXYW5nICA8Y2xhcmtf
d2FuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU2V0IFJlc3RyaWN0aW9ucyBmb3IgY2hhbm5lbENv
dW50LCBjaGFubmVsQ291bnRNb2RlIGZvciBQYW5uZXJOb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBkOTBjNzNmMmE2MWQxMTBkZGIzMWFhNjY3MGNmODRiYTlhMWY1ZjBhLi4zMGQ1ZDU2YTJmMjhm
NmVjMTU0OWY2MWQ4ZDc3MGJmYzdkNDYyM2M3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NjEs
NyArMTg2MSw2IEBAIHdlYnJ0Yy9oMjY1Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogd2VicnRjL3Np
bXVsY2FzdC1oMjY0Lmh0bWwgWyBTbG93IF0KIAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3luY2hyb25pemF0aW9uU291cmNlcy5odHRw
cy5odG1sIFsgU2xvdyBdCi13ZWJraXQub3JnL2IvMTcxMDk0IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWlk
bC5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLW9mZmVyLmh0bWwgWyBGYWls
dXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tYW5zd2VyLmh0bWwgWyBGYWlsdXJlIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdh
dGhlcmluZ1N0YXRlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAtMTg3MCwxMiArMTg2OSwxNyBA
QCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi10cmFja3MuaHR0
cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMuaHRtbCBbIFNraXAgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVm
ZmVyZWRBbW91bnQuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDVHJhY2tFdmVudC1maXJlLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL2ljZUdhdGhlcmluZ1N0
YXRlLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFpci5o
dHRwcy5odG1sIFsgU2tpcCBdCi0KLSMgVXNlcyBsZWdhY3kgV2ViUlRDIEFQSS4KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3NldFJlbW90
ZURlc2NyaXB0aW9uLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1s
IFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1vbmljZWNhbmRpZGF0ZWVycm9yLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNrRXZlbnQtZmlyZS5odG1s
IFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24uaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwgWyBT
a2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9n
ZXRTdGF0cy5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3Rp
dmUuaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sIFsgU2tpcCBdCiAKIGZhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tY2xvc2VkLXN0YXRlLmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlLWV2ZW50
Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDc3ZTRm
Mzc1ZmRjMDhkNzA0ZWU5ZDljNTZkODhhMGU1ODUwMmNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUkVBRE1FLm1k
CkBAIC0wLDAgKzEsMTIgQEAKKyMgV2ViUlRDCisKK1RoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIHRo
ZSBXZWJSVEMgdGVzdCBzdWl0ZS4KKworIyMgQWNrbm93bGVkZ2VtZW50cworCitTb21lIGRhdGEg
Y2hhbm5lbCB0ZXN0cyBhcmUgYmFzZWQgb24gdGhlIFtkYXRhIGNoYW5uZWwgY29uZm9ybWFuY2Ug
dGVzdAorc3VpdGVdW25wbGFiLXdlYnJ0Yy1kYy1wbGF5Z3JvdW5kXSBvZiB0aGUgTmV0d29yayBQ
cm9ncmFtbWluZyBMYWIgb2YgdGhlIE3DvG5zdGVyCitVbml2ZXJzaXR5IG9mIEFwcGxpZWQgU2Np
ZW5jZXMuIFdlIHdvdWxkIGxpa2UgdG8gdGhhbmsgUGV0ZXIgVGl0eiwgRmVsaXggV2VpbnJhbmsg
YW5kIFRpbW8KK1bDtmxrZXIgZm9yIGFncmVlaW5nIHRvIGNvbnRyaWJ1dGUgdGhlaXIgdGVzdCBj
YXNlcyB0byB0aGlzIHJlcG9zaXRvcnkuCisKK1tucGxhYi13ZWJydGMtZGMtcGxheWdyb3VuZF06
IGh0dHBzOi8vZ2l0aHViLmNvbS9ucGxhYi9XZWJSVEMtRGF0YS1DaGFubmVsLVBsYXlncm91bmQv
dHJlZS9tYXN0ZXIvY29uZm9ybWFuY2UtdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NlcnRpZmljYXRlLXBvc3RN
ZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENDZXJ0aWZpY2F0ZS1wb3N0TWVzc2FnZS5odG1sCmluZGV4IDU4ODVmOWZiMWJi
YzNlOTdlNTkxNmQwN2UzZGY3MDYzMTZjMTcwZTguLjZjY2EyNDAwNTc2NjhmOTBlY2Q4OTZhMTVk
NzZkMTdjZmRjN2QwMzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NlcnRpZmljYXRlLXBvc3RNZXNzYWdlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
Q2VydGlmaWNhdGUtcG9zdE1lc3NhZ2UuaHRtbApAQCAtNDIsOSArNDIsMTAgQEAKICAgICAgICAg
ICAgIGlmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKGNlcnRpZmljYXRlLCAiKiIpOwog
ICAgICAgICAgICAgbGV0IGNlcnRpZmljYXRlMiA9IGF3YWl0IHByb21pc2U7CiAKLSAgICAgICAg
ICAgIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7Y2VydGlmaWNhdGVzOiBbY2VydGlmaWNhdGVdfSk7
Ci0KLSAgICAgICAgICAgIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7Y2VydGlmaWNhdGVzOiBbY2Vy
dGlmaWNhdGUyXX0pOworICAgICAgICAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKHtjZXJ0aWZpY2F0ZXM6IFtjZXJ0aWZpY2F0ZV19KTsKKyAgICAgICAgICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgICAgICAgICAgY29uc3QgcGMyID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKHtjZXJ0aWZpY2F0ZXM6IFtjZXJ0aWZpY2F0ZTJdfSk7CisgICAgICAg
ICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAogICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjZXJ0aWZpY2F0ZS5leHBpcmVzLCBjZXJ0aWZpY2F0ZTIuZXhwaXJlcyk7CiAg
ICAgICAgICAgICBmb3IgKGxldCBmaW5nZXJwcmludCBvZiBjZXJ0aWZpY2F0ZTIuZ2V0RmluZ2Vy
cHJpbnRzKCkpCkBAIC03MCw3ICs3MSw3IEBACiAgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93
LnBvc3RNZXNzYWdlKG51bGwsICIqIik7CiAgICAgICAgIGxldCBjZXJ0aWZpY2F0ZTIgPSBhd2Fp
dCBwcm9taXNlOwogCi0gICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRBY2Nlc3NFcnJvciIs
ICgpID0+IHsgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtjZXJ0aWZpY2F0ZXM6IFtjZXJ0aWZpY2F0
ZTJdfSkgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3NfZG9tKCJJbnZhbGlkQWNjZXNzRXJyb3Ii
LCAoKSA9PiB7IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7Y2VydGlmaWNhdGVzOiBbY2VydGlmaWNh
dGUyXX0pIH0pOwogICAgICAgICBpZnJhbWUucmVtb3ZlKCk7CiAgICAgfSwgIkNoZWNrIGNyb3Nz
LW9yaWdpbiBjcmVhdGVkIFJUQ0NlcnRpZmljYXRlIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Nl
cnRpZmljYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENDZXJ0aWZpY2F0ZS5odG1sCmluZGV4IGEzM2JhOWFlNWYyYjIwMWU2NjNj
NWFhNzBkMTk4NGYwNjg3YzYxM2EuLjZiNzYyNmM5MmU3NWMwNmRiYTg2MDY1NThhYmUwMDNkOGQ5
OTRmZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0NlcnRpZmljYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ2VydGlmaWNhdGUuaHRtbApAQCAt
MTAwLDcgKzEwMCw3IEBACiAgICAgICBleHBpcmVzOiAwCiAgICAgfSkudGhlbihjZXJ0ID0+IHsK
ICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoY2VydC5leHBpcmVzLCBEYXRlLm5vdygpKTsK
LSAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgpID0+CisgICAgICBh
c3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkgPT4KICAgICAgICAgbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKHsgY2VydGlmaWNhdGVzOiBbY2VydF0gfSkpOwogICAgIH0pOwog
ICB9LCAnQ29uc3RydWN0aW5nIFJUQ1BlZXJDb25uZWN0aW9uIHdpdGggZXhwaXJlZCBjZXJ0aWZp
Y2F0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yJyk7CkBAIC0xMjYsMTIg
KzEyNiwxMiBAQAogICAgICAgICBjZXJ0aWZpY2F0ZXM6IFtjZXJ0MV0KICAgICAgIH0pOwogCi0g
ICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PgorICAg
ICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+CiAg
ICAgICAgIHBjLnNldENvbmZpZ3VyYXRpb24oewogICAgICAgICAgIGNlcnRpZmljYXRlczogW2Nl
cnQyXQogICAgICAgICB9KSk7CiAKLSAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRNb2RpZmlj
YXRpb25FcnJvcicsICgpID0+CisgICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yJywgKCkgPT4KICAgICAgICAgcGMuc2V0Q29uZmlndXJhdGlvbih7CiAgICAg
ICAgICAgY2VydGlmaWNhdGVzOiBbY2VydDEsIGNlcnQyXQogICAgICAgICB9KSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENDb25maWd1cmF0aW9uLWJ1bmRsZVBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1idW5kbGVQb2xp
Y3kuaHRtbAppbmRleCA2YjY0Y2Y4ZGRkNTNhZDZiNTQ1ZGZkNTE2ZWU0NTdkZmQ1MGEyOTEzLi5l
ODI1ZDdiNDAyMzc1MWZlNmFlZmQ0OTU3ZmRjMDhkODFjNjA4OTkwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1
cmF0aW9uLWJ1bmRsZVBvbGljeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24tYnVuZGxlUG9saWN5Lmh0
bWwKQEAgLTg4LDEyICs4OCwxMiBAQAogICB9LCBgc2V0Q29uZmlndXJhdGlvbih7IGJ1bmRsZVBv
bGljeTogJ21heC1idW5kbGUnIH0pIHdpdGggaW5pdGlhbCBidW5kbGVQb2xpY3kgbWF4LWJ1bmRs
ZSBzaG91bGQgc3VjY2VlZGApOwogCiAgIHRlc3QoKCkgPT4gewotICAgIGFzc2VydF90aHJvd3Mo
bmV3IFR5cGVFcnJvcigpLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAo
KSA9PgogICAgICAgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgYnVuZGxlUG9saWN5OiBudWxsIH0p
KTsKICAgfSwgYG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGJ1bmRsZVBvbGljeTogbnVsbCB9KSBz
aG91bGQgdGhyb3cgVHlwZUVycm9yYCk7CiAKICAgdGVzdCgoKSA9PiB7Ci0gICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJy
b3IsICgpID0+CiAgICAgICBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBidW5kbGVQb2xpY3k6ICdp
bnZhbGlkJyB9KSk7CiAgIH0sIGBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBidW5kbGVQb2xpY3k6
ICdpbnZhbGlkJyB9KSBzaG91bGQgdGhyb3cgVHlwZUVycm9yYCk7CiAKQEAgLTEwNyw3ICsxMDcs
NyBAQAogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgYnVuZGxlUG9saWN5
OiAnbWF4LWJ1bmRsZScgfSk7CiAgICAgYXNzZXJ0X2lkbF9hdHRyaWJ1dGUocGMsICdzZXRDb25m
aWd1cmF0aW9uJyk7CiAKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3InLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3InLCAoKSA9PgogICAgICAgcGMuc2V0Q29uZmlndXJhdGlvbih7IGJ1bmRsZVBvbGljeTogJ21h
eC1jb21wYXQnIH0pKTsKICAgfSwgYHNldENvbmZpZ3VyYXRpb24oeyBidW5kbGVQb2xpY3k6ICdt
YXgtY29tcGF0JyB9KSB3aXRoIGluaXRpYWwgYnVuZGxlUG9saWN5IG1heC1idW5kbGUgc2hvdWxk
IHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwogCkBAIC0xMTYsNyArMTE2LDcgQEAK
ICAgICBhc3NlcnRfaWRsX2F0dHJpYnV0ZShwYywgJ3NldENvbmZpZ3VyYXRpb24nKTsKIAogICAg
IC8vIHRoZSBkZWZhdWx0IHZhbHVlIGZvciBidW5kbGVQb2xpY3kgaXMgYmFsYW5jZWQKLSAgICBh
c3NlcnRfdGhyb3dzKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PgorICAgIGFzc2Vy
dF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PgogICAgICAgcGMu
c2V0Q29uZmlndXJhdGlvbih7fSkpOwogICB9LCBgc2V0Q29uZmlndXJhdGlvbih7fSkgd2l0aCBp
bml0aWFsIGJ1bmRsZVBvbGljeSBtYXgtYnVuZGxlIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3JgKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VDYW5kaWRhdGVQb29s
U2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VDYW5kaWRhdGVQb29sU2l6ZS5odG1sCmluZGV4IDJl
Njg1OWQyNTk2MTYzMzc1NTUwYjFkYzkyOWYxMjY4OTRlMDI4OTguLjQ5NWIwNDNlMTJkZjNjOWVi
NWVjYjMyZmQ0MGI3ZTcxMDBlMmU3NTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlQ2FuZGlk
YXRlUG9vbFNpemUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZUNhbmRpZGF0ZVBvb2xTaXplLmh0
bWwKQEAgLTQ3LDcgKzQ3LDcgQEAgdGVzdCgoKSA9PiB7CiB9LCAiSW5pdGlhbGl6ZSBhIG5ldyBS
VENQZWVyQ29ubmVjdGlvbiB3aXRoIGljZUNhbmRpZGF0ZVBvb2xTaXplOiAyNTUiKTsKIAogdGVz
dCgoKSA9PiB7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7CisgIGFz
c2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiB7CiAgICAgbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKHsKICAgICAgIGljZUNhbmRpZGF0ZVBvb2xTaXplOiAtMQogICAgIH0pOwpAQCAtNTUsNyAr
NTUsNyBAQCB0ZXN0KCgpID0+IHsKIH0sICJJbml0aWFsaXplIGEgbmV3IFJUQ1BlZXJDb25uZWN0
aW9uIHdpdGggaWNlQ2FuZGlkYXRlUG9vbFNpemU6IC0xIChPdXQgT2YgUmFuZ2UpIik7CiAKIHRl
c3QoKCkgPT4gewotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4geworICBh
c3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gewogICAgIG5ldyBSVENQZWVyQ29ubmVj
dGlvbih7CiAgICAgICBpY2VDYW5kaWRhdGVQb29sU2l6ZTogMjU2CiAgICAgfSk7CkBAIC04OSw3
ICs4OSw3IEBAIHRlc3QoKCkgPT4gewogCiAvKgogVGhlIGZvbGxvd2luZyB0ZXN0cyBpbmNsdWRl
IGFuIGV4cGxpY2l0IGFzc2VydGlvbiBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBhCi1zZXRDb25maWd1
cmF0aW9uIGZ1bmN0aW9uIHRvIHByZXZlbnQgdGhlIGFzc2VydF90aHJvd3MgZnJvbSBjYXRjaGlu
ZyB0aGUKK3NldENvbmZpZ3VyYXRpb24gZnVuY3Rpb24gdG8gcHJldmVudCB0aGUgYXNzZXJ0X3Ro
cm93c19qcyBmcm9tIGNhdGNoaW5nIHRoZQogVHlwZUVycm9yIG9iamVjdCB0aGF0IHdpbGwgYmUg
dGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0byBjYWxsIHRoZQogbm9uLWV4aXN0ZW50IHNldENvbmZp
Z3VyYXRpb24gbWV0aG9kIChpbiBjYXNlcyB3aGVyZSBpdCBoYXMgbm90IHlldAogYmVlbiBpbXBs
ZW1lbnRlZCkuIFdpdGhvdXQgdGhpcyBjaGVjaywgdGhlc2UgdGVzdHMgd2lsbCBwYXNzIGluY29y
cmVjdGx5LgpAQCAtOTgsNyArOTgsNyBAQCBiZWVuIGltcGxlbWVudGVkKS4gV2l0aG91dCB0aGlz
IGNoZWNrLCB0aGVzZSB0ZXN0cyB3aWxsIHBhc3MgaW5jb3JyZWN0bHkuCiB0ZXN0KCgpID0+IHsK
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgYXNzZXJ0X2VxdWFscyh0
eXBlb2YgcGMuc2V0Q29uZmlndXJhdGlvbiwgImZ1bmN0aW9uIiwgIlJUQ1BlZXJDb25uZWN0aW9u
LnByb3RvdHlwZS5zZXRDb25maWd1cmF0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCIpOwotICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFR5
cGVFcnJvciwgKCkgPT4gewogICAgIHBjLnNldENvbmZpZ3VyYXRpb24oewogICAgICAgaWNlQ2Fu
ZGlkYXRlUG9vbFNpemU6IC0xCiAgICAgfSk7CkBAIC0xMDgsNyArMTA4LDcgQEAgdGVzdCgoKSA9
PiB7CiB0ZXN0KCgpID0+IHsKICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
ICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgcGMuc2V0Q29uZmlndXJhdGlvbiwgImZ1bmN0aW9uIiwg
IlJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5zZXRDb25maWd1cmF0aW9uIGlzIG5vdCBpbXBs
ZW1lbnRlZCIpOwotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4geworICBh
c3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gewogICAgIHBjLnNldENvbmZpZ3VyYXRp
b24oewogICAgICAgaWNlQ2FuZGlkYXRlUG9vbFNpemU6IDI1NgogICAgIH0pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
Q29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2Vy
dmVycy1leHBlY3RlZC50eHQKaW5kZXggYTQ4NTIyZjc5OWRmNzVmZTdlNmNkOWI2YWUxNDVkZTY5
MWRkYzJmNC4uMzk4YTdiNTAwOWFkYTU3ZWRmYzY3ZWUzYzEzNjUzOWY0ZGEzYjZiNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9u
LWljZVNlcnZlcnMtZXhwZWN0ZWQudHh0CkBAIC00Miw4NSArNDIsODUgQEAgUEFTUyBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyIGFuZCBvbmx5IHVzZXJu
YW1lIHNob3VsZAogUEFTUyBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNl
cnZlciBhbmQgb25seSB1c2VybmFtZSBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIAog
UEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyIGFu
ZCBvbmx5IGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciAKIFBBU1Mg
c2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIgYW5kIG9ubHkgY3Jl
ZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIAotRkFJTCBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggIiIgdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJv
ciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KK0ZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKGNvbmZpZykgLSB3aXRoICIiIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0
X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczog
W3sKICAgICAgICAgdXJsczogJycKLSAgICAgIH1dIH0pIiB0aHJldyBvYmplY3QgIk5vdFN1cHBv
cnRlZEVycm9yOiBJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiICgiTm90U3VwcG9y
dGVkRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlN5bnRheEVycm9yIiAoIlN5bnRheEVycm9yIikK
LUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCAiIiB1cmwgc2hvdWxkIHRocm93
IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PgorICAgICAgfV0gfSki
IHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IElDRSBzZXJ2ZXIgcHJvdG9jb2wgbm90
IHN1cHBvcnRlZCIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3Bl
cnR5ICJjb2RlIiBpcyBlcXVhbCB0byA5LCBleHBlY3RlZCAxMgorRkFJTCBzZXRDb25maWd1cmF0
aW9uKGNvbmZpZykgLSB3aXRoICIiIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0
X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczog
W3sKICAgICAgICAgdXJsczogJycKLSAgICAgIH1dIH0pIiB0aHJldyBvYmplY3QgIk5vdFN1cHBv
cnRlZEVycm9yOiBJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiICgiTm90U3VwcG9y
dGVkRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlN5bnRheEVycm9yIiAoIlN5bnRheEVycm9yIikK
LUZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIFsic3R1bjpzdHVuMS5l
eGFtcGxlLm5ldCIsICIiXSB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJv
d3M6IGZ1bmN0aW9uICIoKSA9PgorICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAiTm90U3VwcG9y
dGVkRXJyb3I6IElDRSBzZXJ2ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgdGhhdCBpcyBub3Qg
YSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byA5
LCBleHBlY3RlZCAxMgorRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGgg
WyJzdHVuOnN0dW4xLmV4YW1wbGUubmV0IiwgIiJdIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJy
b3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNl
U2VydmVyczogW3sKICAgICAgICAgdXJsczogWydzdHVuOnN0dW4xLmV4YW1wbGUubmV0JywgJydd
Ci0gICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZl
ciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiAoIk5vdFN1cHBvcnRlZEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJTeW50YXhFcnJvciIgKCJTeW50YXhFcnJvciIpCi1GQUlMIHNldENvbmZpZ3VyYXRp
b24oY29uZmlnKSAtIHdpdGggWyJzdHVuOnN0dW4xLmV4YW1wbGUubmV0IiwgIiJdIHVybCBzaG91
bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+CisgICAg
ICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZlciBwcm90
b2NvbCBub3Qgc3VwcG9ydGVkIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50YXhFcnJv
cjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDksIGV4cGVjdGVkIDEyCitGQUlMIHNldENv
bmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggWyJzdHVuOnN0dW4xLmV4YW1wbGUubmV0IiwgIiJd
IHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9u
ICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogWydz
dHVuOnN0dW4xLmV4YW1wbGUubmV0JywgJyddCi0gICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJO
b3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiAoIk5v
dFN1cHBvcnRlZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJTeW50YXhFcnJvciIgKCJTeW50YXhF
cnJvciIpCi1GQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCByZWxhdGl2
ZSB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIo
KSA9PgorICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IElDRSBz
ZXJ2ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24g
U3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byA5LCBleHBlY3RlZCAxMgor
RkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggcmVsYXRpdmUgdXJsIHNo
b3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+
CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAncmVsYXRpdmUt
dXJsJwotICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IElDRSBz
ZXJ2ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgKCJOb3RTdXBwb3J0ZWRFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiU3ludGF4RXJyb3IiICgiU3ludGF4RXJyb3IiKQotRkFJTCBzZXRDb25maWd1
cmF0aW9uKGNvbmZpZykgLSB3aXRoIHJlbGF0aXZlIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJy
b3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+CisgICAgICB9XSB9KSIgdGhyZXcgb2Jq
ZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVk
IiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUi
IGlzIGVxdWFsIHRvIDksIGV4cGVjdGVkIDEyCitGQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmln
KSAtIHdpdGggcmVsYXRpdmUgdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhy
b3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewog
ICAgICAgICB1cmxzOiAncmVsYXRpdmUtdXJsJwotICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAi
Tm90U3VwcG9ydGVkRXJyb3I6IElDRSBzZXJ2ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgKCJO
b3RTdXBwb3J0ZWRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiU3ludGF4RXJyb3IiICgiU3ludGF4
RXJyb3IiKQotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggaHR0cCB1
cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9
PgorICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IElDRSBzZXJ2
ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3lu
dGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byA5LCBleHBlY3RlZCAxMgorRkFJ
TCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggaHR0cCB1cmwgc2hvdWxkIHRo
cm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAg
IG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICdodHRwOi8vZXhhbXBsZS5j
b20nCi0gICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNl
cnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiAoIk5vdFN1cHBvcnRlZEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJTeW50YXhFcnJvciIgKCJTeW50YXhFcnJvciIpCi1GQUlMIHNldENvbmZpZ3Vy
YXRpb24oY29uZmlnKSAtIHdpdGggaHR0cCB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFz
c2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PgorICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAi
Tm90U3VwcG9ydGVkRXJyb3I6IElDRSBzZXJ2ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgdGhh
dCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBl
cXVhbCB0byA5LCBleHBlY3RlZCAxMgorRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3
aXRoIGh0dHAgdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTog
ZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1
cmxzOiAnaHR0cDovL2V4YW1wbGUuY29tJwotICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAiTm90
U3VwcG9ydGVkRXJyb3I6IElDRSBzZXJ2ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgKCJOb3RT
dXBwb3J0ZWRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiU3ludGF4RXJyb3IiICgiU3ludGF4RXJy
b3IiKQotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggaW52YWxpZCB0
dXJuIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24g
IigpID0+CisgICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNF
IHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlv
biBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDksIGV4cGVjdGVkIDEy
CitGQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBpbnZhbGlkIHR1cm4g
dXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24g
IigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAndHVy
bjovL2V4YW1wbGUub3JnL2Zvbz94PXknCi0gICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJJbnZh
bGlkQWNjZXNzRXJyb3I6IFRVUk4vVFVSTlMgc2VydmVyIHJlcXVpcmVzIGJvdGggdXNlcm5hbWUg
YW5kIGNyZWRlbnRpYWwiICgiSW52YWxpZEFjY2Vzc0Vycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJT
eW50YXhFcnJvciIgKCJTeW50YXhFcnJvciIpCi1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmln
KSAtIHdpdGggaW52YWxpZCB0dXJuIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0
X3Rocm93czogZnVuY3Rpb24gIigpID0+CisgICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJJbnZh
bGlkQWNjZXNzRXJyb3I6IFRVUk4vVFVSTlMgc2VydmVyIHJlcXVpcmVzIGJvdGggdXNlcm5hbWUg
YW5kIGNyZWRlbnRpYWwiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFN5bnRheEVycm9yOiBw
cm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTUsIGV4cGVjdGVkIDEyCitGQUlMIHNldENvbmZp
Z3VyYXRpb24oY29uZmlnKSAtIHdpdGggaW52YWxpZCB0dXJuIHVybCBzaG91bGQgdGhyb3cgU3lu
dGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBj
KHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogJ3R1cm46Ly9leGFtcGxlLm9yZy9mb28/
eD15JwotICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAiSW52YWxpZEFjY2Vzc0Vycm9yOiBUVVJO
L1RVUk5TIHNlcnZlciByZXF1aXJlcyBib3RoIHVzZXJuYW1lIGFuZCBjcmVkZW50aWFsIiAoIklu
dmFsaWRBY2Nlc3NFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiU3ludGF4RXJyb3IiICgiU3ludGF4
RXJyb3IiKQotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggaW52YWxp
ZCBzdHVuIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rp
b24gIigpID0+CisgICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJJbnZhbGlkQWNjZXNzRXJyb3I6
IFRVUk4vVFVSTlMgc2VydmVyIHJlcXVpcmVzIGJvdGggdXNlcm5hbWUgYW5kIGNyZWRlbnRpYWwi
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFN5bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIg
aXMgZXF1YWwgdG8gMTUsIGV4cGVjdGVkIDEyCitGQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihj
b25maWcpIC0gd2l0aCBpbnZhbGlkIHN0dW4gdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBh
c3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2
ZXJzOiBbewogICAgICAgICB1cmxzOiAnc3R1bjovL2V4YW1wbGUub3JnL2Zvbz94PXknCi0gICAg
ICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJJbnZhbGlkQWNjZXNzRXJyb3I6IEJhZCBDb25maWd1cmF0
aW9uIFBhcmFtZXRlcnMiICgiSW52YWxpZEFjY2Vzc0Vycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJT
eW50YXhFcnJvciIgKCJTeW50YXhFcnJvciIpCi1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmln
KSAtIHdpdGggaW52YWxpZCBzdHVuIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0
X3Rocm93czogZnVuY3Rpb24gIigpID0+CisgICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJJbnZh
bGlkQWNjZXNzRXJyb3I6IEJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiIHRoYXQgaXMgbm90
IGEgRE9NRXhjZXB0aW9uIFN5bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8g
MTUsIGV4cGVjdGVkIDEyCitGQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggaW52
YWxpZCBzdHVuIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206
IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAg
dXJsczogJ3N0dW46Ly9leGFtcGxlLm9yZy9mb28/eD15JwotICAgICAgfV0gfSkiIHRocmV3IG9i
amVjdCAiSW52YWxpZEFjY2Vzc0Vycm9yOiBCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzIiAo
IkludmFsaWRBY2Nlc3NFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiU3ludGF4RXJyb3IiICgiU3lu
dGF4RXJyb3IiKQotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggZW1w
dHkgdXJscyBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24g
IigpID0+CisgICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJJbnZhbGlkQWNjZXNzRXJyb3I6IEJh
ZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFN5
bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTUsIGV4cGVjdGVkIDEyCitG
QUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBlbXB0eSB1cmxzIHNob3Vs
ZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAg
ICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiBbXQogICAgICAgfV0g
fSkiIGRpZCBub3QgdGhyb3cKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCBl
bXB0eSB1cmxzIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlv
biAiKCkgPT4KK0ZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCBlbXB0eSB1cmxz
IHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigp
ID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiBbXQogICAg
ICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKLUZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZp
ZykgLSB3aXRoIGludmFsaWQgY3JlZGVudGlhbFR5cGUgc2hvdWxkIHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KK0ZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KGNvbmZpZykgLSB3aXRoIGludmFsaWQgY3JlZGVudGlhbFR5cGUgc2hvdWxkIHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQYyh7IGlj
ZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6IFtdLAogICAgICAgICBjcmVkZW50aWFsVHlwZTog
J2ludmFsaWQnCiAgICAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBzZXRDb25maWd1cmF0
aW9uKGNvbmZpZykgLSB3aXRoIGludmFsaWQgY3JlZGVudGlhbFR5cGUgc2hvdWxkIHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KK0ZBSUwgc2V0Q29uZmlndXJh
dGlvbihjb25maWcpIC0gd2l0aCBpbnZhbGlkIGNyZWRlbnRpYWxUeXBlIHNob3VsZCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtlUGMo
eyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiBbXSwKICAgICAgICAgY3JlZGVudGlhbFR5
cGU6ICdpbnZhbGlkJwogICAgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKLUZBSUwgbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIGNyZWRlbnRpYWxUeXBlIHRva2VuIHNob3VsZCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+CitGQUlMIG5ldyBS
VENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBjcmVkZW50aWFsVHlwZSB0b2tlbiBzaG91
bGQgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PgogICAg
ICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogW10sCiAgICAgICAgIGNy
ZWRlbnRpYWxUeXBlOiAndG9rZW4nCiAgICAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBz
ZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIGNyZWRlbnRpYWxUeXBlIHRva2VuIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+CitGQUlMIHNl
dENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggY3JlZGVudGlhbFR5cGUgdG9rZW4gc2hvdWxk
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4KICAgICAg
IG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6IFtdLAogICAgICAgICBjcmVk
ZW50aWFsVHlwZTogJ3Rva2VuJwogICAgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKIFBBU1MgbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHVybCBmaWVsZCBzaG91bGQgdGhyb3cg
VHlwZUVycm9yIAogUEFTUyBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHVybCBmaWVs
ZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIAotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29u
ZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwgYW5kIFJU
Q09hdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJy
b3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+CitGQUlMIG5ldyBSVENQZWVyQ29ubmVj
dGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3Jk
LCBhbmQgUlRDT2F1dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRB
Y2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtl
UGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAndHVybnM6dHVybi5leGFtcGxlLm9y
ZycsCiAgICAgICAgIGNyZWRlbnRpYWxUeXBlOiAncGFzc3dvcmQnLApAQCAtMTMwLDcgKzEzMCw3
IEBAIEZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZl
ciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQsCiAgICAgICAgICAgYWNjZXNzVG9rZW46ICcnCiAg
ICAgICAgIH0KICAgICAgIH1dIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIHNldENvbmZpZ3VyYXRp
b24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwg
YW5kIFJUQ09hdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNj
ZXNzRXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+CitGQUlMIHNldENvbmZpZ3Vy
YXRpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29y
ZCwgYW5kIFJUQ09hdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlk
QWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFr
ZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5v
cmcnLAogICAgICAgICBjcmVkZW50aWFsVHlwZTogJ3Bhc3N3b3JkJywKQEAgLTE0MCwxNCArMTQw
LDE0IEBAIEZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIs
IGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQKICAgICAgICAgICBhY2Nlc3NUb2tlbjogJycK
ICAgICAgICAgfQogICAgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKLUZBSUwgbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1
dGgsIGFuZCBzdHJpbmcgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9y
IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PgorRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5k
IHN0cmluZyBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0
X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczog
W3sKICAgICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAogICAgICAgICBjcmVk
ZW50aWFsVHlwZTogJ29hdXRoJywKICAgICAgICAgdXNlcm5hbWU6ICd1c2VyJywKICAgICAgICAg
Y3JlZGVudGlhbDogJ2NyZWQnCiAgICAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBzZXRD
b25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUg
b2F1dGgsIGFuZCBzdHJpbmcgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vy
cm9yIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PgorRkFJTCBzZXRDb25maWd1cmF0aW9u
KGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBz
dHJpbmcgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF90
aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7
CiAgICAgICAgIHVybHM6ICd0dXJuczp0dXJuLmV4YW1wbGUub3JnJywKICAgICAgICAgY3JlZGVu
dGlhbFR5cGU6ICdvYXV0aCcsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCmluZGV4IDNmNWMzNjdkM2FkOTgxODY0NjE4
NjRiNmIwYmRlY2VlM2EwNzMxOWUuLjJlZjk5YmY1OWM4Y2MxMTI3M2U5OTM4OGIxNDQ0YmYyNTA2
N2NiMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3Vy
YXRpb24taWNlU2VydmVycy5odG1sCkBAIC01OCw3ICs1OCw3IEBACiAgIH0sICd7fSBzaG91bGQg
c3VjY2VlZCcpOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
ICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBudWxsIH0pKTsKICAgfSwgJ3sgaWNl
U2VydmVyczogbnVsbCB9IHNob3VsZCB0aHJvdyBUeXBlRXJyb3InKTsKIApAQCAtNzMsMTcgKzcz
LDE3IEBACiAgIH0sICd7IGljZVNlcnZlcnM6IFtdIH0gc2hvdWxkIHN1Y2NlZWQnKTsKIAogICBj
b25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgogICAgICAgbWFr
ZVBjKHsgaWNlU2VydmVyczogW251bGxdIH0pKTsKICAgfSwgJ3sgaWNlU2VydmVyczogW251bGxd
IH0gc2hvdWxkIHRocm93IFR5cGVFcnJvcicpOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7
Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Ro
cm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbdW5k
ZWZpbmVkXSB9KSk7CiAgIH0sICd7IGljZVNlcnZlcnM6IFt1bmRlZmluZWRdIH0gc2hvdWxkIHRo
cm93IFR5cGVFcnJvcicpOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBl
RXJyb3IsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbe31dIH0pKTsKICAgfSwg
J3sgaWNlU2VydmVyczogW3t9XSB9IHNob3VsZCB0aHJvdyBUeXBlRXJyb3InKTsKIApAQCAtMjE5
LDE0ICsyMTksMTQgQEAKICAgICAgICAgICAgIHNlcnZlci5jcmVkZW50aWFsIGFyZSBvbWl0dGVk
LCB0aGVuIHRocm93IGFuIEludmFsaWRBY2Nlc3NFcnJvci4KICAgICovCiAgIGNvbmZpZ190ZXN0
KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkg
PT4KKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkgPT4KICAg
ICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICd0dXJuOnR1cm4uZXhh
bXBsZS5uZXQnCiAgICAgICB9XSB9KSk7CiAgIH0sICd3aXRoIHR1cm4gc2VydmVyIGFuZCBubyBj
cmVkZW50aWFscyBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CiAKICAgY29uZmln
X3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3In
LCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9
PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogJ3R1cm46dHVy
bi5leGFtcGxlLm5ldCcsCiAgICAgICAgIHVzZXJuYW1lOiAndXNlcicKQEAgLTIzNCw3ICsyMzQs
NyBAQAogICB9LCAnd2l0aCB0dXJuIHNlcnZlciBhbmQgb25seSB1c2VybmFtZSBzaG91bGQgdGhy
b3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CiAKICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAg
ICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgorICAgIGFzc2VydF90
aHJvd3NfZG9tKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgogICAgICAgbWFrZVBjKHsgaWNl
U2VydmVyczogW3sKICAgICAgICAgdXJsczogJ3R1cm46dHVybi5leGFtcGxlLm5ldCcsCiAgICAg
ICAgIGNyZWRlbnRpYWw6ICdjcmVkJwpAQCAtMjQyLDE0ICsyNDIsMTQgQEAKICAgfSwgJ3dpdGgg
dHVybiBzZXJ2ZXIgYW5kIG9ubHkgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vz
c0Vycm9yJyk7CiAKICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dz
KCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZh
bGlkQWNjZXNzRXJyb3InLCAoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAg
ICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5uZXQnCiAgICAgICB9XSB9KSk7CiAgIH0s
ICd3aXRoIHR1cm5zIHNlcnZlciBhbmQgbm8gY3JlZGVudGlhbHMgc2hvdWxkIHRocm93IEludmFs
aWRBY2Nlc3NFcnJvcicpOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0
X3Rocm93cygnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2Rv
bSgnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6
IFt7CiAgICAgICAgIHVybHM6ICd0dXJuczp0dXJuLmV4YW1wbGUubmV0JywKICAgICAgICAgdXNl
cm5hbWU6ICd1c2VyJwpAQCAtMjU3LDcgKzI1Nyw3IEBACiAgIH0sICd3aXRoIHR1cm5zIHNlcnZl
ciBhbmQgb25seSB1c2VybmFtZSBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CiAK
ICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNj
ZXNzRXJyb3InLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkQWNjZXNzRXJy
b3InLCAoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczog
J3R1cm5zOnR1cm4uZXhhbXBsZS5uZXQnLAogICAgICAgICBjcmVkZW50aWFsOiAnY3JlZCcKQEAg
LTI4NSw1NiArMjg1LDU2IEBACiAgICAgICB0cmFuc3BvcnQtZXh0ID0gMSp1bnJlc2VydmVkCiAg
ICAqLwogICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFN5
bnRheEVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwg
KCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICcnCiAg
ICAgICB9XSB9KSk7CiAgIH0sICd3aXRoICIiIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3In
KTsKIAogICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFN5
bnRheEVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwg
KCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6IFsnc3R1
bjpzdHVuMS5leGFtcGxlLm5ldCcsICcnXQogICAgICAgfV0gfSkpOwogICB9LCAnd2l0aCBbInN0
dW46c3R1bjEuZXhhbXBsZS5uZXQiLCAiIl0gdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvcicp
OwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgU3lu
dGF4RXJyb3IoKSwgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgiU3ludGF4RXJyb3IiLCAo
KSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogJ3JlbGF0
aXZlLXVybCcKICAgICAgIH1dIH0pKTsKICAgfSwgJ3dpdGggcmVsYXRpdmUgdXJsIHNob3VsZCB0
aHJvdyBTeW50YXhFcnJvcicpOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNz
ZXJ0X3Rocm93cyhuZXcgU3ludGF4RXJyb3IoKSwgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2Rv
bSgiU3ludGF4RXJyb3IiLCAoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAg
ICAgICAgdXJsczogJ2h0dHA6Ly9leGFtcGxlLmNvbScKICAgICAgIH1dIH0pKTsKICAgfSwgJ3dp
dGggaHR0cCB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yJyk7CiAKICAgY29uZmlnX3Rlc3Qo
bWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBTeW50YXhFcnJvcigpLCAoKSA9Pgor
ICAgIGFzc2VydF90aHJvd3NfZG9tKCJTeW50YXhFcnJvciIsICgpID0+CiAgICAgICBtYWtlUGMo
eyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAndHVybjovL2V4YW1wbGUub3JnL2Zvbz94
PXknCiAgICAgICB9XSB9KSk7CiAgIH0sICd3aXRoIGludmFsaWQgdHVybiB1cmwgc2hvdWxkIHRo
cm93IFN5bnRheEVycm9yJyk7CiAKICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3Nl
cnRfdGhyb3dzKG5ldyBTeW50YXhFcnJvcigpLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfZG9t
KCJTeW50YXhFcnJvciIsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAg
ICAgICB1cmxzOiAnc3R1bjovL2V4YW1wbGUub3JnL2Zvbz94PXknCiAgICAgICB9XSB9KSk7CiAg
IH0sICd3aXRoIGludmFsaWQgc3R1biB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yJyk7CiAK
ICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBTeW50YXhF
cnJvcigpLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfZG9tKCJTeW50YXhFcnJvciIsICgpID0+
CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiBbXQogICAgICAg
fV0gfSkpOwogICB9LCBgd2l0aCBlbXB0eSB1cmxzIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvcmAp
OwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlw
ZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAg
ICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiBbXSwKICAgICAgICAg
Y3JlZGVudGlhbFR5cGU6ICdpbnZhbGlkJwpAQCAtMzQzLDcgKzM0Myw3IEBACiAKICAgLy8gdG9r
ZW4gY3JlZGVudGlhbFR5cGUgd2FzIHJlbW92ZWQgZnJvbSB0aGUgc3BlYyBzaW5jZSAyMDE3MDUw
OAogICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgogICAg
ICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogW10sCiAgICAgICAgIGNy
ZWRlbnRpYWxUeXBlOiAndG9rZW4nCkBAIC0zNTIsNyArMzUyLDcgQEAKIAogICAvLyBCbGluayBh
bmQgR2Vja28gZmFsbCBiYWNrIHRvIHVybCwgYnV0IGl0J3Mgbm90IGluIHRoZSBzcGVjLgogICBj
b25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgogICAgICAgbWFr
ZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsOiAnc3R1bjpzdHVuMS5leGFtcGxlLm5l
dCcKICAgICAgIH1dIH0pKTsKQEAgLTM2NSw3ICszNjUsNyBAQAogICAgICAgICAgICAgYW5kIGFi
b3J0IHRoZXNlIHN0ZXBzLgogICAgKi8KICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBh
c3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgorICAgIGFzc2VydF90aHJv
d3NfZG9tKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2Vy
dmVyczogW3sKICAgICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAogICAgICAg
ICBjcmVkZW50aWFsVHlwZTogJ3Bhc3N3b3JkJywKQEAgLTM4NCw3ICszODQsNyBAQAogICAgICAg
ICAgICAgSW52YWxpZEFjY2Vzc0Vycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICovCiAg
IGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZEFjY2Vz
c0Vycm9yJywgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZEFjY2Vzc0Vycm9y
JywgKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICd0
dXJuczp0dXJuLmV4YW1wbGUub3JnJywKICAgICAgICAgY3JlZGVudGlhbFR5cGU6ICdvYXV0aCcs
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVRyYW5zcG9ydFBvbGljeS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJh
dGlvbi1pY2VUcmFuc3BvcnRQb2xpY3kuaHRtbAppbmRleCA3NGU4YjRiMmFlN2MyYmZjZGY0NzQ5
MTUzOTRhMWI1ZjI3ZjkyMzRjLi4yNWQ0NTExZjQ4ZTMyZWY5NTY4ZTc1MGU3NGFiZTJkZjVjNTFl
NTk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVRyYW5zcG9ydFBvbGljeS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Nv
bmZpZ3VyYXRpb24taWNlVHJhbnNwb3J0UG9saWN5Lmh0bWwKQEAgLTg1LDE4ICs4NSwxOCBAQAog
ICB9LCBgc2V0Q29uZmlndXJhdGlvbih7fSkgd2l0aCBpbml0aWFsIGljZVRyYW5zcG9ydFBvbGlj
eSByZWxheSBzaG91bGQgc2V0IG5ldyB2YWx1ZSB0byBhbGxgKTsKIAogICBjb25maWdfdGVzdCht
YWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PgorICAg
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlVHJh
bnNwb3J0UG9saWN5OiAnaW52YWxpZCcgfSkpOwogICB9LCBgd2l0aCBpbnZhbGlkIGljZVRyYW5z
cG9ydFBvbGljeSBzaG91bGQgdGhyb3cgVHlwZUVycm9yYCk7CiAKICAgLy8gIm5vbmUiIGlzIGlu
IEJsaW5rIGFuZCBHZWNrbydzIElETCwgYnV0IG5vdCBpbiB0aGUgc3BlYy4KICAgY29uZmlnX3Rl
c3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4K
KyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KICAgICAgIG1ha2VQYyh7IGlj
ZVRyYW5zcG9ydFBvbGljeTogJ25vbmUnIH0pKTsKICAgfSwgYHdpdGggbm9uZSBpY2VUcmFuc3Bv
cnRQb2xpY3kgc2hvdWxkIHRocm93IFR5cGVFcnJvcmApOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQ
YyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNz
ZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VUcmFuc3Bv
cnRQb2xpY3k6IG51bGwgfSkpOwogICB9LCBgd2l0aCBudWxsIGljZVRyYW5zcG9ydFBvbGljeSBz
aG91bGQgdGhyb3cgVHlwZUVycm9yYCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24tcnRjcE11
eFBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1ydGNwTXV4UG9saWN5Lmh0bWwKaW5kZXggN2QwYzgx
ZjVlYWJmZGRkNWZiZTY2YTJlYWI2MGViYjZmY2VjMzNmNS4uNDhlNzcyZmI1MTkwMmM0OTQ0NmRm
NzQ0OWM3MTE5Yzc4ZDZkYjYyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1ydGNwTXV4UG9saWN5
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1ydGNwTXV4UG9saWN5Lmh0bWwKQEAgLTcxLDEyICs3MSwx
MiBAQAogICB9LCBgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgcnRjcE11eFBvbGljeTogJ25lZ290
aWF0ZScgfSkgbWF5IHN1Y2NlZWQgb3IgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3JgKTsKIAogICBj
b25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgogICAgICAgbWFr
ZVBjKHsgcnRjcE11eFBvbGljeTogbnVsbCB9KSk7CiAgIH0sIGB3aXRoIHsgcnRjcE11eFBvbGlj
eTogbnVsbCB9IHNob3VsZCB0aHJvdyBUeXBlRXJyb3JgKTsKIAogICBjb25maWdfdGVzdChtYWtl
UGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PgorICAgIGFz
c2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgogICAgICAgbWFrZVBjKHsgcnRjcE11eFBv
bGljeTogJ2ludmFsaWQnIH0pKTsKICAgfSwgYHdpdGggeyBydGNwTXV4UG9saWN5OiAnaW52YWxp
ZCcgfSBzaG91bGQgdGhyb3cgVHlwZUVycm9yYCk7CiAKQEAgLTg5LDcgKzg5LDcgQEAKICAgdGVz
dCgoKSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBydGNwTXV4
UG9saWN5OiAncmVxdWlyZScgfSk7CiAgICAgYXNzZXJ0X2lkbF9hdHRyaWJ1dGUocGMsICdzZXRD
b25maWd1cmF0aW9uJyk7Ci0gICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yJywgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yJywgKCkgPT4KICAgICAgIHBjLnNldENvbmZpZ3VyYXRpb24oeyBydGNwTXV4UG9saWN5OiAn
bmVnb3RpYXRlJyB9KSk7CiAKICAgfSwgYHNldENvbmZpZ3VyYXRpb24oeyBydGNwTXV4UG9saWN5
OiAnbmVnb3RpYXRlJyB9KSB3aXRoIGluaXRpYWwgcnRjcE11eFBvbGljeSByZXF1aXJlIHNob3Vs
ZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKQEAgLTEwOSw3ICsxMDksNyBAQAog
ICAgIH0KIAogICAgIGFzc2VydF9pZGxfYXR0cmlidXRlKHBjLCAnc2V0Q29uZmlndXJhdGlvbicp
OwotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+Cisg
ICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+CiAg
ICAgICBwYy5zZXRDb25maWd1cmF0aW9uKHsgcnRjcE11eFBvbGljeTogJ3JlcXVpcmUnIH0pKTsK
IAogICB9LCBgc2V0Q29uZmlndXJhdGlvbih7IHJ0Y3BNdXhQb2xpY3k6ICdyZXF1aXJlJyB9KSB3
aXRoIGluaXRpYWwgcnRjcE11eFBvbGljeSBuZWdvdGlhdGUgc2hvdWxkIHRocm93IEludmFsaWRN
b2RpZmljYXRpb25FcnJvcmApOwpAQCAtMTMwLDcgKzEzMCw3IEBACiAKICAgICBhc3NlcnRfaWRs
X2F0dHJpYnV0ZShwYywgJ3NldENvbmZpZ3VyYXRpb24nKTsKICAgICAvLyBkZWZhdWx0IHZhbHVl
IGZvciBydGNwTXV4UG9saWN5IGlzIHJlcXVpcmUKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlk
TW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlk
TW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PgogICAgICAgcGMuc2V0Q29uZmlndXJhdGlvbih7fSkp
OwogCiAgIH0sIGBzZXRDb25maWd1cmF0aW9uKHt9KSB3aXRoIGluaXRpYWwgcnRjcE11eFBvbGlj
eSBuZWdvdGlhdGUgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwpAQCAt
MTY2LDcgKzE2Niw3IEBACiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe3J0
Y3BNdXhQb2xpY3k6ICdyZXF1aXJlJ30pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkQWNjZXNzRXJy
b3InLCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwfSkpOworICAg
IHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLCBwYy5z
ZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwfSkpOwogICB9LCAnc2V0UmVt
b3RlRGVzY3JpcHRpb24gdGhyb3dzIEludmFsaWRBY2Nlc3NFcnJvciB3aGVuIGNhbGxlZCB3aXRo
IGFuIG9mZmVyIHdpdGhvdXQgcnRjcC1tdXggYW5kIHJ0Y3BNdXhQb2xpY3kgaXMgc2V0IHRvIHJl
cXVpcmUnKTsKIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CkBAIC0xOTEsNiArMTkxLDYg
QEAKIAogICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgZ2VuZXJhdGVBdWRpb1JlY2VpdmVPbmx5T2Zm
ZXIocGMpOwogICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOwotICAgIHJl
dHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsIHBjLnNldFJlbW90
ZURlc2NyaXB0aW9uKHt0eXBlOiAnYW5zd2VyJywgc2RwfSkpOworICAgIHJldHVybiBwcm9taXNl
X3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLCBwYy5zZXRSZW1vdGVEZXNjcmlw
dGlvbih7dHlwZTogJ2Fuc3dlcicsIHNkcH0pKTsKICAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9u
IHRocm93cyBJbnZhbGlkQWNjZXNzRXJyb3Igd2hlbiBjYWxsZWQgd2l0aCBhbiBhbnN3ZXIgd2l0
aG91dCBydGNwLW11eCBhbmQgcnRjcE11eFBvbGljeSBpcyBzZXQgdG8gcmVxdWlyZScpOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItaGVscGVyLmpz
CmluZGV4IGQ5MWQ4YTU0MzQwMDQxYjY0ZTQwZTVhNzdmOWFjMGM3NzhiZjAwZTcuLjQzMTZjMzgw
NGEyOGY0NGQxZjg2YWY5N2M4NmU0Nzg1NzBiMjQzN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItaGVs
cGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RUTUZTZW5kZXItaGVscGVyLmpzCkBAIC04LDcgKzgsNyBAQAogCiAvLyBUaGUg
Zm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0
aW9uLWhlbHBlci5qczoKIC8vICAgZ2V0VHJhY2tGcm9tVXNlck1lZGlhCi0vLyAgIGRvU2lnbmFs
aW5nSGFuZHNoYWtlCisvLyAgIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIKIAogLy8gQ3JlYXRlIGEgUlRD
RFRNRlNlbmRlciB1c2luZyBnZXRVc2VyTWVkaWEoKQogLy8gQ29ubmVjdCB0aGUgUGVlckNvbm5l
Y3Rpb24gdG8gYW5vdGhlciBQQyBhbmQgd2FpdCB1bnRpbCBpdCBpcwpAQCAtMjYsNyArMjYsNyBA
QCBmdW5jdGlvbiBjcmVhdGVEdG1mU2VuZGVyKHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkp
IHsKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkocGMsICdvdGhlclBjJywgeyB2YWx1ZTogcGMyIH0pOwogICAgIGV4Y2hh
bmdlSWNlQ2FuZGlkYXRlcyhwYywgcGMyKTsKLSAgICByZXR1cm4gZG9TaWduYWxpbmdIYW5kc2hh
a2UocGMsIHBjMik7CisgICAgcmV0dXJuIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMsIHBjMik7CiAg
IH0pLnRoZW4oKCkgPT4gewogICAgIGlmICghKCdjYW5JbnNlcnREVE1GJyBpbiBkdG1mU2VuZGVy
KSkgewogICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwpAQCAtNzgsMTggKzc4LDI0IEBA
IGZ1bmN0aW9uIGNyZWF0ZUR0bWZTZW5kZXIocGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSkg
ewogICAgICAgVGVzdCBkZXNjcmlwdGlvbi4KICAqLwogZnVuY3Rpb24gdGVzdF90b25lX2NoYW5n
ZV9ldmVudHModGVzdEZ1bmMsIHRvbmVDaGFuZ2VzLCBkZXNjKSB7Ci0gIHByb21pc2VfdGVzdCh0
ID0+IHsKLSAgICBsZXQgZG9uZSwgZmFpbDsKLSAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICBkb25lID0gcmVzb2x2ZTsKLSAgICAg
ICAgZmFpbCA9IHJlamVjdDsKLSAgICB9KTsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAvLyBDb252ZXJ0IHRvIGN1bXVsYXRpdmUgdGltZQorICBsZXQgY3VtdWxh
dGl2ZVRpbWUgPSAwOworICBjb25zdCBjdW11bGF0aXZlVG9uZUNoYW5nZXMgPSB0b25lQ2hhbmdl
cy5tYXAoYyA9PiB7CisgICAgY3VtdWxhdGl2ZVRpbWUgKz0gY1syXTsKKyAgICByZXR1cm4gW2Nb
MF0sIGNbMV0sIGN1bXVsYXRpdmVUaW1lXTsKKyAgfSk7CisKKyAgLy8gV2FpdCBmb3Igc2FtZSBk
dXJhdGlvbiBhcyBsYXN0IGV4cGVjdGVkIGR1cmF0aW9uICsgMTAwbXMKKyAgLy8gYmVmb3JlIHBh
c3NpbmcgdGVzdCBpbiBjYXNlIHRoZXJlIGFyZSBuZXcgdG9uZSBldmVudHMgZmlyZWQsCisgIC8v
IGluIHdoaWNoIGNhc2UgdGhlIHRlc3Qgc2hvdWxkIGZhaWwuCisgIGNvbnN0IGxhc3RXYWl0ID0g
dG9uZUNoYW5nZXMucG9wKClbMl0gKyAxMDA7CiAKLSAgICBjcmVhdGVEdG1mU2VuZGVyKHBjKQot
ICAgIC50aGVuKGR0bWZTZW5kZXIgPT4gewotICAgICAgbGV0IGxhc3RFdmVudFRpbWUgPSBEYXRl
Lm5vdygpOworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBkdG1mU2VuZGVyID0gYXdhaXQgY3JlYXRl
RHRtZlNlbmRlcihwYyk7CisgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpOwogCisgICAgY29u
c3QgYWxsRXZlbnRzUmVjZWl2ZWQgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgICAgIGNv
bnN0IG9uVG9uZUNoYW5nZSA9IHQuc3RlcF9mdW5jKGV2ID0+IHsKICAgICAgICAgYXNzZXJ0X3Ry
dWUoZXYgaW5zdGFuY2VvZiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50LAogICAgICAgICAgICdFeHBl
Y3QgdG9uZSBjaGFuZ2UgZXZlbnQgb2JqZWN0IHRvIGJlIGFuIFJUQ0RUTUZUb25lQ2hhbmdlRXZl
bnQnKTsKQEAgLTk4LDEyICsxMDQsMTIgQEAgZnVuY3Rpb24gdGVzdF90b25lX2NoYW5nZV9ldmVu
dHModGVzdEZ1bmMsIHRvbmVDaGFuZ2VzLCBkZXNjKSB7CiAgICAgICAgIGFzc2VydF9lcXVhbHMo
dHlwZW9mIHRvbmUsICdzdHJpbmcnLAogICAgICAgICAgICdFeHBlY3QgZXZlbnQudG9uZSB0byBi
ZSB0aGUgdG9uZSBzdHJpbmcnKTsKIAotICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKHRvbmVD
aGFuZ2VzLmxlbmd0aCwgMCwKKyAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihjdW11bGF0aXZl
VG9uZUNoYW5nZXMubGVuZ3RoLCAwLAogICAgICAgICAgICdNb3JlIHRvbmVjaGFuZ2UgZXZlbnQg
aXMgZmlyZWQgdGhhbiBleHBlY3RlZCcpOwogCiAgICAgICAgIGNvbnN0IFsKLSAgICAgICAgICBl
eHBlY3RlZFRvbmUsIGV4cGVjdGVkVG9uZUJ1ZmZlciwgZXhwZWN0ZWREdXJhdGlvbgotICAgICAg
ICBdID0gdG9uZUNoYW5nZXMuc2hpZnQoKTsKKyAgICAgICAgICBleHBlY3RlZFRvbmUsIGV4cGVj
dGVkVG9uZUJ1ZmZlciwgZXhwZWN0ZWRUaW1lCisgICAgICAgIF0gPSBjdW11bGF0aXZlVG9uZUNo
YW5nZXMuc2hpZnQoKTsKIAogICAgICAgICBhc3NlcnRfZXF1YWxzKHRvbmUsIGV4cGVjdGVkVG9u
ZSwKICAgICAgICAgICBgRXhwZWN0IGN1cnJlbnQgZXZlbnQudG9uZSB0byBiZSAke2V4cGVjdGVk
VG9uZX1gKTsKQEAgLTExMSwzOCArMTE3LDI0IEBAIGZ1bmN0aW9uIHRlc3RfdG9uZV9jaGFuZ2Vf
ZXZlbnRzKHRlc3RGdW5jLCB0b25lQ2hhbmdlcywgZGVzYykgewogICAgICAgICBhc3NlcnRfZXF1
YWxzKGR0bWZTZW5kZXIudG9uZUJ1ZmZlciwgZXhwZWN0ZWRUb25lQnVmZmVyLAogICAgICAgICAg
IGBFeHBlY3QgZHRtZlNlbmRlci50b25lQnVmZmVyIHRvIGJlIHVwZGF0ZWQgdG8gJHtleHBlY3Rl
ZFRvbmVCdWZmZXJ9YCk7CiAKLSAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTsKLSAgICAg
ICAgY29uc3QgZHVyYXRpb24gPSBub3cgLSBsYXN0RXZlbnRUaW1lOwotCi0gICAgICAgIC8vIFdl
IGNoZWNrIHRoYXQgdGhlIGRlbGF5IGlzIGF0IGxlYXN0IHRoZSBleHBlY3RlZCBvbmUsIGJ1dAot
ICAgICAgICAvLyBzeXN0ZW0gbG9hZCBtYXkgY2F1c2UgcmFuZG9tIGRlbGF5LCBzbyB3ZSBkbyBu
b3QgcHV0IGFueQotICAgICAgICAvLyByZWFsaXN0aWMgdXBwZXIgYm91bmQgb24gdGhlIHRpbWlu
ZyBvZiB0aGUgZXZlbnQuCi0gICAgICAgIGFzc2VydF9iZXR3ZWVuX2luY2x1c2l2ZShkdXJhdGlv
biwgZXhwZWN0ZWREdXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGVjdGVkRHVyYXRpb24gKyA0MDAwLAotICAgICAgICAgIGBFeHBlY3QgdG9uZWNoYW5nZSBldmVu
dCBmb3IgIiR7dG9uZX0iIHRvIGJlIGZpcmVkIGFwcHJveGltYXRlbHkgYWZ0ZXIgJHtleHBlY3Rl
ZER1cmF0aW9ufSBtaWxsaXNlY29uZHNgKTsKLQotICAgICAgICBsYXN0RXZlbnRUaW1lID0gbm93
OwotCi0gICAgICAgIGlmICh0b25lQ2hhbmdlcy5sZW5ndGggPT09IDApIHsKLSAgICAgICAgICAv
LyBXYWl0IGZvciBzYW1lIGR1cmF0aW9uIGFzIGxhc3QgZXhwZWN0ZWQgZHVyYXRpb24gKyAxMDBt
cwotICAgICAgICAgIC8vIGJlZm9yZSBwYXNzaW5nIHRlc3QgaW4gY2FzZSB0aGVyZSBhcmUgbmV3
IHRvbmUgZXZlbnRzIGZpcmVkLAotICAgICAgICAgIC8vIGluIHdoaWNoIGNhc2UgdGhlIHRlc3Qg
c2hvdWxkIGZhaWwuCi0gICAgICAgICAgdC5zdGVwX3RpbWVvdXQoCi0gICAgICAgICAgICB0LnN0
ZXBfZnVuYygoKSA9PiB7Ci0gICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgICAgcGMu
Y2xvc2UoKTsKLSAgICAgICAgICAgICAgcGMub3RoZXJQYy5jbG9zZSgpOwotICAgICAgICAgICAg
fSksIGV4cGVjdGVkRHVyYXRpb24gKyAxMDApOworICAgICAgICAvLyBXZSBjaGVjayB0aGF0IHRo
ZSBjdW11bGF0aXZlIGRlbGF5IGlzIGF0IGxlYXN0IHRoZSBleHBlY3RlZCBvbmUsIGJ1dAorICAg
ICAgICAvLyBzeXN0ZW0gbG9hZCBtYXkgY2F1c2UgcmFuZG9tIGRlbGF5cywgc28gd2UgZG8gbm90
IHB1dCBhbnkKKyAgICAgICAgLy8gcmVhbGlzdGljIHVwcGVyIGJvdW5kIG9uIHRoZSB0aW1pbmcg
b2YgdGhlIGV2ZW50cy4KKyAgICAgICAgYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlKERhdGUubm93
KCkgLSBzdGFydCwgZXhwZWN0ZWRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwZWN0ZWRUaW1lICsgNDAwMCwKKyAgICAgICAgICBgRXhwZWN0IHRvbmVjaGFuZ2UgZXZl
bnQgZm9yICIke3RvbmV9IiB0byBiZSBmaXJlZCBhcHByb3hpbWF0ZWx5IGFmdGVyICR7ZXhwZWN0
ZWRUaW1lfSBtaWxsaXNlY29uZHNgKTsKKyAgICAgICAgaWYgKGN1bXVsYXRpdmVUb25lQ2hhbmdl
cy5sZW5ndGggPT09IDApIHsKKyAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgIH0KICAgICAg
IH0pOwogCiAgICAgICBkdG1mU2VuZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ3RvbmVjaGFuZ2UnLCBv
blRvbmVDaGFuZ2UpOwotICAgICAgdGVzdEZ1bmModCwgZHRtZlNlbmRlciwgcGMpOwotICAgIH0p
Ci0gICAgLmNhdGNoKHQuc3RlcF9mdW5jKGVyciA9PiB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVk
KGBVbmV4cGVjdGVkIHByb21pc2UgcmVqZWN0aW9uOiAke2Vycn1gKTsKLSAgICB9KSk7Ci0gICAg
cmV0dXJuIHByb21pc2U7CisgICAgfSk7CisKKyAgICB0ZXN0RnVuYyh0LCBkdG1mU2VuZGVyLCBw
Yyk7CisgICAgYXdhaXQgYWxsRXZlbnRzUmVjZWl2ZWQ7CisgICAgY29uc3Qgd2FpdCA9IG1zID0+
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdC5zdGVwX3RpbWVvdXQocmVzb2x2ZSwgbXMpKTsKKyAg
ICBhd2FpdCB3YWl0KGxhc3RXYWl0KTsKICAgfSwgZGVzYyk7CiB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZT
ZW5kZXItaW5zZXJ0RFRNRi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1pbnNlcnREVE1GLmh0dHBzLmh0
bWwKaW5kZXggOGFjMTQ0YmFiOTI4NmZiYWE1NjAyNzJhZTljMWNhNzk2NTA5MDUzMi4uNzFjZmU3
MDE3MWY3ZmY0YWVkZGQwMTQ4M2ZjZTZlZGJmMjllNTliOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1p
bnNlcnREVE1GLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1pbnNlcnREVE1GLmh0dHBzLmh0bWwK
QEAgLTUzLDE3ICs1MywxNSBAQAogICAgICAgQWxsIG90aGVyIGNoYXJhY3RlcnMgKGFuZCBvbmx5
IHRob3NlIG90aGVyIGNoYXJhY3RlcnMpIE1VU1QgYmUgY29uc2lkZXJlZAogICAgICAgdW5yZWNv
Z25pemVkLgogICAgKi8KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBjcmVhdGVE
dG1mU2VuZGVyKCkKLSAgLnRoZW4oZHRtZlNlbmRlciA9PiB7Ci0gICAgICBkdG1mU2VuZGVyLmlu
c2VydERUTUYoJycpOwotICAgICAgZHRtZlNlbmRlci5pbnNlcnREVE1GKCcwMTIzNDU2ODknKTsK
LSAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignQUJDRCcpOwotICAgICAgZHRtZlNlbmRlci5p
bnNlcnREVE1GKCdhYmNkJyk7Ci0gICAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJyMqJyk7Ci0g
ICAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJywnKTsKLSAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0
RFRNRignMDEyMzQ1Njc4OUFCQ0RhYmNkIyosJyk7Ci0gICAgfSk7CisgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgICBjb25zdCBkdG1mU2VuZGVyID0gYXdhaXQgY3JlYXRlRHRtZlNlbmRl
cigpOworICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignJyk7CisgICAgZHRtZlNlbmRlci5pbnNl
cnREVE1GKCcwMTIzNDU2ODknKTsKKyAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJ0FCQ0QnKTsK
KyAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJ2FiY2QnKTsKKyAgICBkdG1mU2VuZGVyLmluc2Vy
dERUTUYoJyMqJyk7CisgICAgZHRtZlNlbmRlci5pbnNlcnREVE1GKCcsJyk7CisgICAgZHRtZlNl
bmRlci5pbnNlcnREVE1GKCcwMTIzNDU2Nzg5QUJDRGFiY2QjKiwnKTsKICAgfSwgJ2luc2VydERU
TUYoKSBzaG91bGQgc3VjY2VlZCBpZiB0b25lcyBjb250YWlucyB2YWxpZCBEVE1GIGNoYXJhY3Rl
cnMnKTsKIAogCkBAIC03MiwyMSArNzAsMTkgQEAKICAgICAgIDYuICBJZiB0b25lcyBjb250YWlu
cyBhbnkgdW5yZWNvZ25pemVkIGNoYXJhY3RlcnMsIHRocm93IGFuCiAgICAgICAgICAgSW52YWxp
ZENoYXJhY3RlckVycm9yLgogICAgKi8KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVy
biBjcmVhdGVEdG1mU2VuZGVyKCkKLSAgICAudGhlbihkdG1mU2VuZGVyID0+IHsKLSAgICAgIGFz
c2VydF90aHJvd3MoJ0ludmFsaWRDaGFyYWN0ZXJFcnJvcicsICgpID0+Ci0gICAgICAgIC8vICdG
JyBpcyBpbnZhbGlkCi0gICAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignMTIzRkZBQkMnKSk7
Ci0KLSAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRDaGFyYWN0ZXJFcnJvcicsICgpID0+Ci0g
ICAgICAgIC8vICdFJyBpcyBpbnZhbGlkCi0gICAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRign
RScpKTsKLQotICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZENoYXJhY3RlckVycm9yJywgKCkg
PT4KLSAgICAgICAgLy8gJyAnIGlzIGludmFsaWQKLSAgICAgICAgZHRtZlNlbmRlci5pbnNlcnRE
VE1GKCcjIConKSk7Ci0gICAgfSk7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBj
b25zdCBkdG1mU2VuZGVyID0gYXdhaXQgY3JlYXRlRHRtZlNlbmRlcigpOworICAgIGFzc2VydF90
aHJvd3NfZG9tKCdJbnZhbGlkQ2hhcmFjdGVyRXJyb3InLCAoKSA9PgorICAgICAgLy8gJ0YnIGlz
IGludmFsaWQKKyAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignMTIzRkZBQkMnKSk7CisKKyAg
ICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZENoYXJhY3RlckVycm9yJywgKCkgPT4KKyAgICAg
IC8vICdFJyBpcyBpbnZhbGlkCisgICAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJ0UnKSk7CisK
KyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZENoYXJhY3RlckVycm9yJywgKCkgPT4KKyAg
ICAgIC8vICcgJyBpcyBpbnZhbGlkCisgICAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJyMgKicp
KTsKICAgfSwgJ2luc2VydERUTUYoKSBzaG91bGQgdGhyb3cgSW52YWxpZENoYXJhY3RlckVycm9y
IGlmIHRvbmVzIGNvbnRhaW5zIGludmFsaWQgRFRNRiBjaGFyYWN0ZXJzJyk7CiAKICAgLyoKQEAg
LTk5LDcgKzk1LDcgQEAKICAgICBjb25zdCBkdG1mU2VuZGVyID0gdHJhbnNjZWl2ZXIuc2VuZGVy
LmR0bWY7CiAKICAgICB0cmFuc2NlaXZlci5zdG9wKCk7Ci0gICAgYXNzZXJ0X3Rocm93cygnSW52
YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBkdG1mU2VuZGVyLmluc2VydERUTUYoJycpKTsKKyAgICBh
c3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBkdG1mU2VuZGVyLmlu
c2VydERUTUYoJycpKTsKIAogICB9LCAnaW5zZXJ0RFRNRigpIHNob3VsZCB0aHJvdyBJbnZhbGlk
U3RhdGVFcnJvciBpZiB0cmFuc2NlaXZlciBpcyBzdG9wcGVkJyk7CiAKQEAgLTExOSw3ICsxMTUs
NyBAQAogICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CiAgICAg
YXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOwogICAgIGF3YWl0IGNhbGxl
ZS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7Ci0gICAgY29uc3Qgc3RyZWFtID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CisgICAg
Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CiAgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0
cmFjay5zdG9wKCkpKTsKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwog
ICAgIGNhbGxlZS5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKQEAgLTEyNyw3ICsxMjMsNyBAQAog
ICAgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CiAgICAgYXdhaXQg
Y2FsbGVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CiAgICAgYXNzZXJ0X2VxdWFscyh0
cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAncmVjdm9ubHknKTsKLSAgICBhc3NlcnRfdGhy
b3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignJykp
OworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGR0bWZT
ZW5kZXIuaW5zZXJ0RFRNRignJykpOwogICB9LCAnaW5zZXJ0RFRNRigpIHNob3VsZCB0aHJvdyBJ
bnZhbGlkU3RhdGVFcnJvciBpZiB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIGlzIHJlY3Zv
bmx5Jyk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewpAQCAtMTQyLDcgKzEzOCw3IEBA
CiAgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgZ2VuZXJhdGVBbnN3ZXIob2ZmZXIpOwogICAgIGF3
YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CiAgICAgYXNzZXJ0X2VxdWFscyh0
cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAnaW5hY3RpdmUnKTsKLSAgICBhc3NlcnRfdGhy
b3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignJykp
OworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGR0bWZT
ZW5kZXIuaW5zZXJ0RFRNRignJykpOwogICB9LCAnaW5zZXJ0RFRNRigpIHNob3VsZCB0aHJvdyBJ
bnZhbGlkU3RhdGVFcnJvciBpZiB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIGlzIGluYWN0
aXZlJyk7CiAKICAgLyoKQEAgLTE1MiwzNyArMTQ4LDI5IEBACiAKICAgICAgIDcuICBTZXQgdGhl
IG9iamVjdCdzIHRvbmVCdWZmZXIgYXR0cmlidXRlIHRvIHRvbmVzLgogICAgKi8KLSAgcHJvbWlz
ZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBjcmVhdGVEdG1mU2VuZGVyKCkKLSAgICAudGhlbihk
dG1mU2VuZGVyID0+IHsKLSAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignMTIzJyk7Ci0gICAg
ICBhc3NlcnRfZXF1YWxzKGR0bWZTZW5kZXIudG9uZUJ1ZmZlciwgJzEyMycpOwotCi0gICAgICBk
dG1mU2VuZGVyLmluc2VydERUTUYoJ0FCQycpOwotICAgICAgYXNzZXJ0X2VxdWFscyhkdG1mU2Vu
ZGVyLnRvbmVCdWZmZXIsICdBQkMnKTsKLQotICAgICAgZHRtZlNlbmRlci5pbnNlcnREVE1GKCdi
Y2QnKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoZHRtZlNlbmRlci50b25lQnVmZmVyLCAnQkNEJyk7
Ci0gICAgfSk7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBkdG1mU2Vu
ZGVyID0gYXdhaXQgY3JlYXRlRHRtZlNlbmRlcigpOworICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRN
RignMTIzJyk7CisgICAgYXNzZXJ0X2VxdWFscyhkdG1mU2VuZGVyLnRvbmVCdWZmZXIsICcxMjMn
KTsKKworICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignQUJDJyk7CisgICAgYXNzZXJ0X2VxdWFs
cyhkdG1mU2VuZGVyLnRvbmVCdWZmZXIsICdBQkMnKTsKKworICAgIGR0bWZTZW5kZXIuaW5zZXJ0
RFRNRignYmNkJyk7CisgICAgYXNzZXJ0X2VxdWFscyhkdG1mU2VuZGVyLnRvbmVCdWZmZXIsICdC
Q0QnKTsKICAgfSwgJ2luc2VydERUTUYoKSBzaG91bGQgc2V0IHRvbmVCdWZmZXIgdG8gcHJvdmlk
ZWQgdG9uZXMgbm9ybWFsaXplZCwgd2l0aCBvbGQgdG9uZXMgb3ZlcnJpZGRlbicpOwogCi0gIHBy
b21pc2VfdGVzdCh0ID0+IHsKLSAgICBsZXQgZHRtZlNlbmRlcjsKLSAgICBsZXQgc2VuZGVyOwot
ICAgIGxldCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAgIHJldHVybiBnZXRUcmFja0Zyb21V
c2VyTWVkaWEoJ2F1ZGlvJykKLSAgICAgIC50aGVuKChbdHJhY2ssIG1lZGlhU3RyZWFtXSkgPT4g
ewotICAgICAgICBzZW5kZXIgPSBwYy5hZGRUcmFjayh0cmFjaywgbWVkaWFTdHJlYW0pOwotICAg
ICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoKTsKLSAgICAgIH0pLnRoZW4ob2ZmZXIgPT4gewot
ICAgICAgICBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKLSAgICAgICAgZHRtZlNlbmRl
ciA9IHNlbmRlci5kdG1mOwotICAgICAgICBwYy5yZW1vdmVUcmFjayhzZW5kZXIpOwotICAgICAg
ICBwYy5jbG9zZSgpOwotICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcics
ICgpID0+CisgICAgY29uc3QgW3RyYWNrLCBtZWRpYVN0cmVhbV0gPSBhd2FpdCBnZXRUcmFja0Zy
b21Vc2VyTWVkaWEoJ2F1ZGlvJyk7CisgICAgY29uc3Qgc2VuZGVyID0gcGMuYWRkVHJhY2sodHJh
Y2ssIG1lZGlhU3RyZWFtKTsKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0
IHBjLmNyZWF0ZU9mZmVyKCkpOworICAgIGNvbnN0IGR0bWZTZW5kZXIgPSBzZW5kZXIuZHRtZjsK
KyAgICBwYy5yZW1vdmVUcmFjayhzZW5kZXIpOworICAgIHBjLmNsb3NlKCk7CisgICAgYXNzZXJ0
X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4KICAgICAgICAgICAgICAgICAg
ICAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJzEyMycpKTsKLSAgICAgIH0pOwogICB9LCAnaW5z
ZXJ0RFRNRigpIGFmdGVyIHJlbW92ZSBhbmQgY2xvc2Ugc2hvdWxkIHJlamVjdCcpOwogCiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0RUTUZTZW5kZXItb250b25lY2hhbmdlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwZDI0YzU1
NDQyMTAxOTdmODg4MjgyNTEyNGY5YTYzZGEyNzYyNjg2Li45Yjk2MWU0NTJjN2M1MDQxNWI0MTI0
NTJlMTcyMGI5ZGZkNTc2YTdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNoYW5nZS5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVjaGFuZ2UuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC05LDcgKzksOCBAQCBQQVNTIGluc2VydERUTUYoKSB3aXRoIHRyYW5zY2VpdmVyIHN0
b3BwZWQgaW4gdGhlIG1pZGRsZSBzaG91bGQgc3RvcCBmdXR1cmUgdG9uZQogUEFTUyBDYWxsaW5n
IGluc2VydERUTUYoKSBpbiB0aGUgbWlkZGxlIG9mIHRvbmVjaGFuZ2UgZXZlbnRzIHNob3VsZCBj
YXVzZSBmdXR1cmUgdG9uZWNoYW5nZXMgdG8gYmUgdXBkYXRlZCB0byBuZXcgdG9uZXMgCiBQQVNT
IENhbGxpbmcgaW5zZXJ0RFRNRigpIG11bHRpcGxlIHRpbWVzIGluIHRoZSBtaWRkbGUgb2YgdG9u
ZWNoYW5nZSBldmVudHMgc2hvdWxkIGNhdXNlIGZ1dHVyZSB0b25lY2hhbmdlcyB0byBiZSB1cGRh
dGVkIHRoZSBsYXN0IHByb3ZpZGVkIHRvbmVzIAogUEFTUyBDYWxsaW5nIGluc2VydERUTUYoJycp
IGluIHRoZSBtaWRkbGUgb2YgdG9uZWNoYW5nZSBldmVudHMgc2hvdWxkIHN0b3AgZnV0dXJlIHRv
bmVjaGFuZ2UgZXZlbnRzIGZyb20gZmlyaW5nIAotRkFJTCBTZXR0aW5nIHRyYW5zY2VpdmVyLmN1
cnJlbnREaXJlY3Rpb24gdG8gcmVjdm9ubHkgaW4gdGhlIG1pZGRsZSBvZiB0b25lY2hhbmdlIGV2
ZW50cyBzaG91bGQgc3RvcCBmdXR1cmUgdG9uZWNoYW5nZSBldmVudHMgZnJvbSBmaXJpbmcgQ2Fu
bm90IGluc2VydCBEVE1GCitQQVNTIFNldHRpbmcgdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlv
biB0byByZWN2b25seSBpbiB0aGUgbWlkZGxlIG9mIHRvbmVjaGFuZ2UgZXZlbnRzIHNob3VsZCBz
dG9wIGZ1dHVyZSB0b25lY2hhbmdlIGV2ZW50cyBmcm9tIGZpcmluZyAKIFBBU1MgVG9uZSBjaGFu
Z2UgZXZlbnQgY29uc3RydWN0b3Igd29ya3MgCiBQQVNTIFRvbmUgY2hhbmdlIGV2ZW50IHdpdGgg
dW5leHBlY3RlZCBuYW1lIHNob3VsZCBub3QgY3Jhc2ggCitQQVNTIFRvbmUgY2hhbmdlIGV2ZW50
IGluaXQgb3B0aW9uYWwgcGFyYW1ldGVycyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVj
aGFuZ2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLmh0dHBzLmh0bWwKaW5kZXgg
NDllMjNhYmUyZjRhYTYzMWUzOWViNjZkZDBiNjE5ZDI4ZTdkZTFhNy4uMDhkZDZhZGEzMjc0OTdl
ZWNiNzMyNzgxYmQxMjZkMGRmY2Y1NDQzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVjaGFu
Z2UuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNoYW5nZS5odHRwcy5odG1sCkBAIC0x
LDYgKzEsNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8bWV0YSBjaGFyc2V0PXV0Zi04PgogPHRpdGxl
PlJUQ0RUTUZTZW5kZXIucHJvdG90eXBlLm9udG9uZWNoYW5nZTwvdGl0bGU+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxw
ZXIuanMiPjwvc2NyaXB0PgpAQCAtMjIwLDExICsyMjEsMTYgQEAKICAgICA3LjIuICBpbnNlcnRE
VE1GCiAgICAgICAxMS4yLiAgSWYgdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiBpcyByZWN2
b25seSBvciBpbmFjdGl2ZSwgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAqLwotICBhc3luY190ZXN0
KHQgPT4geworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OwotICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywgeyBk
aXJlY3Rpb246ICdzZW5kcmVjdicgfSk7Ci0gICAgY29uc3QgZHRtZlNlbmRlciA9IHRyYW5zY2Vp
dmVyLnNlbmRlci5kdG1mOworICAgIGNvbnN0IGR0bWZTZW5kZXIgPSBhd2FpdCBjcmVhdGVEdG1m
U2VuZGVyKHBjKTsKKyAgICBjb25zdCBwYzIgPSBwYy5vdGhlclBjOworICAgIGFzc2VydF90cnVl
KHBjMiBpbnN0YW5jZW9mIFJUQ1BlZXJDb25uZWN0aW9uLAorICAgICAgJ0V4cGVjdCBwYzIgdG8g
YmUgYSBSVENQZWVyQ29ubmVjdGlvbicpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07
CisgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5zZW5kZXIuZHRtZiwgZHRtZlNlbmRlcik7
CiAKICAgICAvLyBTaW5jZSBzZXRSZW1vdGVEZXNjcmlwdGlvbiBoYXBwZW5zIGluIHBhcmFsbGVs
IHdpdGggdG9uZWNoYW5nZSBldmVudCwKICAgICAvLyBXZSB1c2UgYSBmbGFnIGFuZCBhbGxvdyB0
b25lY2hhbmdlIGV2ZW50cyB0byBiZSBmaXJlZCBhcyBsb25nIGFzCkBAIC0yMzQsNDIgKzI0MCwz
NSBAQAogICAgIC8vIFdlIG9ubHkgZG8gYmFzaWMgdG9uZSB2ZXJpZmljYXRpb24gYW5kIG5vdCBj
aGVjayB0aW1pbmcgaGVyZQogICAgIGxldCBleHBlY3RlZFRvbmVzID0gWydBJywgJ0InLCAnQycs
ICdEJywgJyddOwogCi0gICAgY29uc3Qgb25Ub25lQ2hhbmdlID0gdC5zdGVwX2Z1bmMoZXYgPT4g
ewotICAgICAgYXNzZXJ0X2ZhbHNlKHJlbW90ZURlc2NyaXB0aW9uSXNTZXQsCi0gICAgICAgICdF
eHBlY3Qgbm8gdG9uZWNoYW5nZSBldmVudCB0byBiZSBmaXJlZCBhZnRlciBjdXJyZW50RGlyZWN0
aW9uIGlzIGNoYW5nZWQgdG8gcmVjdm9ubHknKTsKLQotICAgICAgY29uc3QgeyB0b25lIH0gPSBl
djsKLSAgICAgIGNvbnN0IGV4cGVjdGVkVG9uZSA9IGV4cGVjdGVkVG9uZXMuc2hpZnQoKTsKLSAg
ICAgIGFzc2VydF9lcXVhbHModG9uZSwgZXhwZWN0ZWRUb25lLAotICAgICAgICBgRXhwZWN0IGZp
cmVkIGV2ZW50LnRvbmUgdG8gYmUgJHtleHBlY3RlZFRvbmV9YCk7Ci0KLSAgICAgIC8vIE9ubHkg
Y2hhbmdlIHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24gYWZ0ZXIgdGhlIGZpcnN0Ci0gICAg
ICAvLyB0b25lY2hhbmdlIGV2ZW50LCB0byBtYWtlIHN1cmUgdGhhdCB0b25lY2hhbmdlIGlzIHRy
aWdnZXJlZAotICAgICAgLy8gdGhlbiBzdG9wcGVkCi0gICAgICBpZih0b25lID09PSAnQScpIHsK
LSAgICAgICAgdHJhbnNjZWl2ZXIuZGlyZWN0aW9uID0gJ3JlY3Zvbmx5JzsKLQotICAgICAgICBw
Yy5jcmVhdGVPZmZlcigpCi0gICAgICAgIC50aGVuKG9mZmVyID0+Ci0gICAgICAgICAgcGMuc2V0
TG9jYWxEZXNjcmlwdGlvbihvZmZlcikKLSAgICAgICAgICAudGhlbigoKSA9PiBnZW5lcmF0ZUFu
c3dlcihvZmZlcikpKQotICAgICAgICAudGhlbihhbnN3ZXIgPT4gcGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oYW5zd2VyKSkKLSAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgIGFzc2VydF9l
cXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgJ3JlY3Zvbmx5Jyk7Ci0gICAgICAg
ICAgcmVtb3RlRGVzY3JpcHRpb25Jc1NldCA9IHRydWU7Ci0KLSAgICAgICAgICAvLyBQYXNzIHRo
ZSB0ZXN0IGlmIG5vIGZ1cnRoZXIgdG9uZWNoYW5nZSBldmVudCBpcwotICAgICAgICAgIC8vIGZp
cmVkIGluIHRoZSBuZXh0IDMwMG1zCi0gICAgICAgICAgdC5zdGVwX3RpbWVvdXQodC5zdGVwX2Z1
bmNfZG9uZSgpLCAzMDApOwotICAgICAgICB9KQotICAgICAgICAuY2F0Y2godC5zdGVwX2Z1bmMo
ZXJyID0+IHsKLSAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKGBVbmV4cGVjdGVkIHByb21pc2Ug
cmVqZWN0aW9uOiAke2Vycn1gKTsKLSAgICAgICAgfSkpOwotICAgICAgfQorICAgIGNvbnN0IGZp
cnN0VG9uZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgY29uc3Qgb25Ub25lQ2hh
bmdlID0gdC5zdGVwX2Z1bmMoZXYgPT4geworICAgICAgICBhc3NlcnRfZmFsc2UocmVtb3RlRGVz
Y3JpcHRpb25Jc1NldCwKKyAgICAgICAgICAnRXhwZWN0IG5vIHRvbmVjaGFuZ2UgZXZlbnQgdG8g
YmUgZmlyZWQgYWZ0ZXIgY3VycmVudERpcmVjdGlvbiBpcyBjaGFuZ2VkIHRvIHJlY3Zvbmx5Jyk7
CisKKyAgICAgICAgY29uc3QgeyB0b25lIH0gPSBldjsKKyAgICAgICAgY29uc3QgZXhwZWN0ZWRU
b25lID0gZXhwZWN0ZWRUb25lcy5zaGlmdCgpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHRvbmUs
IGV4cGVjdGVkVG9uZSwKKyAgICAgICAgICBgRXhwZWN0IGZpcmVkIGV2ZW50LnRvbmUgdG8gYmUg
JHtleHBlY3RlZFRvbmV9YCk7CisKKyAgICAgICAgaWYodG9uZSA9PT0gJ0EnKSB7CisgICAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICAgIGR0bWZTZW5kZXIuYWRk
RXZlbnRMaXN0ZW5lcigndG9uZWNoYW5nZScsIG9uVG9uZUNoYW5nZSk7CiAgICAgfSk7CiAKLSAg
ICBkdG1mU2VuZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ3RvbmVjaGFuZ2UnLCBvblRvbmVDaGFuZ2Up
OwogICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignQUJDRCcsIDEwMCwgNzApOworICAgIGF3YWl0
IGZpcnN0VG9uZTsKKworICAgIC8vIE9ubHkgY2hhbmdlIHRyYW5zY2VpdmVyLmRpcmVjdGlvbiBh
ZnRlciB0aGUgZmlyc3QKKyAgICAvLyB0b25lY2hhbmdlIGV2ZW50LCB0byBtYWtlIHN1cmUgdGhh
dCB0b25lY2hhbmdlIGlzIHRyaWdnZXJlZAorICAgIC8vIHRoZW4gc3RvcHBlZAorICAgIHRyYW5z
Y2VpdmVyLmRpcmVjdGlvbiA9ICdyZWN2b25seSc7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFu
c3dlcihwYywgcGMyKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnREaXJl
Y3Rpb24sICdpbmFjdGl2ZScpOworICAgIHJlbW90ZURlc2NyaXB0aW9uSXNTZXQgPSB0cnVlOwor
CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZl
LCAzMDApKTsKICAgfSwgYFNldHRpbmcgdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiB0byBy
ZWN2b25seSBpbiB0aGUgbWlkZGxlIG9mIHRvbmVjaGFuZ2UgZXZlbnRzIHNob3VsZCBzdG9wIGZ1
dHVyZSB0b25lY2hhbmdlIGV2ZW50cyBmcm9tIGZpcmluZ2ApOwogCiAgIC8qIFNlY3Rpb24gNy4z
IC0gVG9uZSBjaGFuZ2UgZXZlbnQgKi8KQEAgLTI4Myw0ICsyODIsMTMgQEAKICAgICBsZXQgZXYg
PSBuZXcgUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCgnd29ybmduYW1lJywge30pOwogICB9LCAnVG9u
ZSBjaGFuZ2UgZXZlbnQgd2l0aCB1bmV4cGVjdGVkIG5hbWUgc2hvdWxkIG5vdCBjcmFzaCcpOwog
CisgIHRlc3QodCA9PiB7CisgICAgY29uc3QgZXYxID0gbmV3IFJUQ0RUTUZUb25lQ2hhbmdlRXZl
bnQoJ3RvbmVjaGFuZ2UnLCB7fSk7CisgICAgYXNzZXJ0X2VxdWFscyhldjEudG9uZSwgJycpOwor
CisgICAgYXNzZXJ0X2VxdWFscyhSVENEVE1GVG9uZUNoYW5nZUV2ZW50LmNvbnN0cnVjdG9yLmxl
bmd0aCwgMSk7CisgICAgY29uc3QgZXYyID0gbmV3IFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQoJ3Rv
bmVjaGFuZ2UnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2Mi50b25lLCAnJyk7CisgIH0sICdUb25l
IGNoYW5nZSBldmVudCBpbml0IG9wdGlvbmFsIHBhcmFtZXRlcnMnKTsKKwogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENEYXRhQ2hhbm5lbC1idWZmZXJlZEFtb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVy
ZWRBbW91bnQuaHRtbAppbmRleCBmNGE3MTA0YTRlNWYzMzBiN2FiMmRiOTViNzJiYzYwOWVlYjMz
ZTlmLi5mNjYzOTQxMTYyZDkzZTUxMWIxYTVkNmJlMDFlZDc5ZmUyOGM5YmJmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbC1idWZmZXJlZEFtb3VudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJ1ZmZlcmVkQW1v
dW50Lmh0bWwKQEAgLTEsNjQgKzEsNzkgQEAKIDwhZG9jdHlwZSBodG1sPgogPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHRpdGxlPlJU
Q0RhdGFDaGFubmVsLnByb3RvdHlwZS5idWZmZXJlZEFtb3VudDwvdGl0bGU+CiA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUlRD
UGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICd1c2Ugc3Ry
aWN0JzsKKyd1c2Ugc3RyaWN0JzsKIAotICAvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dp
bmcgZWRpdG9yIGRyYWZ0OgotICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2Fy
Y2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCisvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xs
b3dpbmcgcmV2aXNpb246CisvLyBodHRwczovL3Jhd2dpdC5jb20vdzNjL3dlYnJ0Yy1wYy8xY2M1
YmZjM2ZmMTg3NDEwMzNkODA0YzRhNzFmNzg5MTI0MmZiNWIzL3dlYnJ0Yy5odG1sCiAKLSAgLy8g
VGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29u
bmVjdGlvbi1oZWxwZXIuanM6Ci0gIC8vICBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIKLSAgLy8gIGF3
YWl0TWVzc2FnZQotICAvLyAgYmxvYlRvQXJyYXlCdWZmZXIKLSAgLy8gIGFzc2VydF9lcXVhbHNf
YXJyYXlfYnVmZmVyCisvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxl
ZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKKy8vICBjcmVhdGVEYXRhQ2hhbm5l
bFBhaXIKKy8vICBhd2FpdE1lc3NhZ2UKIAotICAvKgotICAgIDYuMi4gIFJUQ0RhdGFDaGFubmVs
Ci0gICAgICBpbnRlcmZhY2UgUlRDRGF0YUNoYW5uZWwgOiBFdmVudFRhcmdldCB7Ci0gICAgICAg
IC4uLgotICAgICAgICByZWFkb25seSAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgICAgICAgYnVm
ZmVyZWRBbW91bnQ7Ci0gICAgICAgIHZvaWQgc2VuZChVU1ZTdHJpbmcgZGF0YSk7Ci0gICAgICAg
IHZvaWQgc2VuZChCbG9iIGRhdGEpOwotICAgICAgICB2b2lkIHNlbmQoQXJyYXlCdWZmZXIgZGF0
YSk7Ci0gICAgICAgIHZvaWQgc2VuZChBcnJheUJ1ZmZlclZpZXcgZGF0YSk7Ci0gICAgICB9Owot
Ci0gICAgICBidWZmZXJlZEFtb3VudAotICAgICAgICBUaGUgYnVmZmVyZWRBbW91bnQgYXR0cmli
dXRlIG11c3QgcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgb2YgYXBwbGljYXRpb24KLSAgICAg
ICAgZGF0YSAoVVRGLTggdGV4dCBhbmQgYmluYXJ5IGRhdGEpIHRoYXQgaGF2ZSBiZWVuIHF1ZXVl
ZCB1c2luZyBzZW5kKCkgYnV0IHRoYXQsCi0gICAgICAgIGFzIG9mIHRoZSBsYXN0IHRpbWUgdGhl
IGV2ZW50IGxvb3Agc3RhcnRlZCBleGVjdXRpbmcgYSB0YXNrLCBoYWQgbm90IHlldCBiZWVuCi0g
ICAgICAgIHRyYW5zbWl0dGVkIHRvIHRoZSBuZXR3b3JrLiAoVGhpcyB0aHVzIGluY2x1ZGVzIGFu
eSB0ZXh0IHNlbnQgZHVyaW5nIHRoZQotICAgICAgICBleGVjdXRpb24gb2YgdGhlIGN1cnJlbnQg
dGFzaywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB1c2VyIGFnZW50IGlzIGFibGUKLSAgICAg
ICAgdG8gdHJhbnNtaXQgdGV4dCBhc3luY2hyb25vdXNseSB3aXRoIHNjcmlwdCBleGVjdXRpb24u
KSBUaGlzIGRvZXMgbm90IGluY2x1ZGUKLSAgICAgICAgZnJhbWluZyBvdmVyaGVhZCBpbmN1cnJl
ZCBieSB0aGUgcHJvdG9jb2wsIG9yIGJ1ZmZlcmluZyBkb25lIGJ5IHRoZSBvcGVyYXRpbmcKLSAg
ICAgICAgc3lzdGVtIG9yIG5ldHdvcmsgaGFyZHdhcmUuIElmIHRoZSBjaGFubmVsIGlzIGNsb3Nl
ZCwgdGhpcyBhdHRyaWJ1dGUncyB2YWx1ZQotICAgICAgICB3aWxsIG9ubHkgaW5jcmVhc2Ugd2l0
aCBlYWNoIGNhbGwgdG8gdGhlIHNlbmQoKSBtZXRob2QgKHRoZSBhdHRyaWJ1dGUgZG9lcyBub3QK
LSAgICAgICAgcmVzZXQgdG8gemVybyBvbmNlIHRoZSBjaGFubmVsIGNsb3NlcykuCi0KLQotICAg
IFtXZWJNZXNzYWdpbmddCi0gICAgaW50ZXJmYWNlIE1lc3NhZ2VFdmVudCA6IEV2ZW50IHsKLSAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgZGF0YTsKKy8qCisgIDYuMi4gIFJUQ0RhdGFDaGFu
bmVsCisgICAgaW50ZXJmYWNlIFJUQ0RhdGFDaGFubmVsIDogRXZlbnRUYXJnZXQgewogICAgICAg
Li4uCisgICAgICByZWFkb25seSAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgICAgICAgYnVmZmVy
ZWRBbW91bnQ7CisgICAgICB2b2lkIHNlbmQoVVNWU3RyaW5nIGRhdGEpOworICAgICAgdm9pZCBz
ZW5kKEJsb2IgZGF0YSk7CisgICAgICB2b2lkIHNlbmQoQXJyYXlCdWZmZXIgZGF0YSk7CisgICAg
ICB2b2lkIHNlbmQoQXJyYXlCdWZmZXJWaWV3IGRhdGEpOwogICAgIH07Ci0gICAqLwogCi0gIC8v
IFNpbXBsZSBBU0NJSSBlbmNvZGVkIHN0cmluZwotICBjb25zdCBoZWxsb1N0cmluZyA9ICdoZWxs
byc7Ci0gIC8vIEFTQ0lJIGVuY29kZWQgYnVmZmVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzdHJp
bmcKLSAgY29uc3QgaGVsbG9CdWZmZXIgPSBVaW50OEFycmF5Lm9mKDB4NjgsIDB4NjUsIDB4NmMs
IDB4NmMsIDB4NmYpOwotICBjb25zdCBoZWxsb0Jsb2IgPSBuZXcgQmxvYihbaGVsbG9CdWZmZXJd
KTsKKyAgICBidWZmZXJlZEFtb3VudAorICAgICAgVGhlIGJ1ZmZlcmVkQW1vdW50IGF0dHJpYnV0
ZSBtdXN0IHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIGFwcGxpY2F0aW9uCisgICAgICBk
YXRhIChVVEYtOCB0ZXh0IGFuZCBiaW5hcnkgZGF0YSkgdGhhdCBoYXZlIGJlZW4gcXVldWVkIHVz
aW5nIHNlbmQoKSBidXQgdGhhdCwKKyAgICAgIGFzIG9mIHRoZSBsYXN0IHRpbWUgdGhlIGV2ZW50
IGxvb3Agc3RhcnRlZCBleGVjdXRpbmcgYSB0YXNrLCBoYWQgbm90IHlldCBiZWVuCisgICAgICB0
cmFuc21pdHRlZCB0byB0aGUgbmV0d29yay4gKFRoaXMgdGh1cyBpbmNsdWRlcyBhbnkgdGV4dCBz
ZW50IGR1cmluZyB0aGUKKyAgICAgIGV4ZWN1dGlvbiBvZiB0aGUgY3VycmVudCB0YXNrLCByZWdh
cmRsZXNzIG9mIHdoZXRoZXIgdGhlIHVzZXIgYWdlbnQgaXMgYWJsZQorICAgICAgdG8gdHJhbnNt
aXQgdGV4dCBhc3luY2hyb25vdXNseSB3aXRoIHNjcmlwdCBleGVjdXRpb24uKSBUaGlzIGRvZXMg
bm90IGluY2x1ZGUKKyAgICAgIGZyYW1pbmcgb3ZlcmhlYWQgaW5jdXJyZWQgYnkgdGhlIHByb3Rv
Y29sLCBvciBidWZmZXJpbmcgZG9uZSBieSB0aGUgb3BlcmF0aW5nCisgICAgICBzeXN0ZW0gb3Ig
bmV0d29yayBoYXJkd2FyZS4gVGhlIHZhbHVlIG9mIHRoZSBbW0J1ZmZlcmVkQW1vdW50XV0gc2xv
dCB3aWxsIG9ubHkKKyAgICAgIGluY3JlYXNlIHdpdGggZWFjaCBjYWxsIHRvIHRoZSBzZW5kKCkg
bWV0aG9kIGFzIGxvbmcgYXMgdGhlIFtbUmVhZHlTdGF0ZV1dIHNsb3QKKyAgICAgIGlzIG9wZW47
IGhvd2V2ZXIsIHRoZSBzbG90IGRvZXMgbm90IHJlc2V0IHRvIHplcm8gb25jZSB0aGUgY2hhbm5l
bCBjbG9zZXMuIFdoZW4KKyAgICAgIHRoZSB1bmRlcmx5aW5nIGRhdGEgdHJhbnNwb3J0IHNlbmRz
IGRhdGEgZnJvbSBpdHMgcXVldWUsIHRoZSB1c2VyIGFnZW50IE1VU1QKKyAgICAgIHF1ZXVlIGEg
dGFzayB0aGF0IHJlZHVjZXMgW1tCdWZmZXJlZEFtb3VudF1dIHdpdGggdGhlIG51bWJlciBvZiBi
eXRlcyB0aGF0IHdhcworICAgICAgc2VudC4KKworCisgIFtXZWJNZXNzYWdpbmddCisgIGludGVy
ZmFjZSBNZXNzYWdlRXZlbnQgOiBFdmVudCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBk
YXRhOworICAgIC4uLgorICB9OworICovCisKKy8vIFNpbXBsZSBBU0NJSSBlbmNvZGVkIHN0cmlu
ZworY29uc3QgaGVsbG9TdHJpbmcgPSAnaGVsbG8nOworLy8gQVNDSUkgZW5jb2RlZCBidWZmZXIg
cmVwcmVzZW50YXRpb24gb2YgdGhlIHN0cmluZworY29uc3QgaGVsbG9CdWZmZXIgPSBVaW50OEFy
cmF5Lm9mKDB4NjgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmYpOworY29uc3QgaGVsbG9CbG9iID0g
bmV3IEJsb2IoW2hlbGxvQnVmZmVyXSk7CisKKy8vIFVuaWNvZGUgc3RyaW5nIHdpdGggbXVsdGlw
bGUgY29kZSB1bml0cworY29uc3QgdW5pY29kZVN0cmluZyA9ICfkuJbnlYzkvaDlpb0nOworLy8g
VVRGLTggZW5jb2RlZCBidWZmZXIgcmVwcmVzZW50YXRpb24gb2YgdGhlIHN0cmluZworY29uc3Qg
dW5pY29kZUJ1ZmZlciA9IFVpbnQ4QXJyYXkub2YoCisgIDB4ZTQsIDB4YjgsIDB4OTYsIDB4ZTcs
IDB4OTUsIDB4OGMsCisgIDB4ZTQsIDB4YmQsIDB4YTAsIDB4ZTUsIDB4YTUsIDB4YmQpOworCitm
b3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9XSkgewor
ICBjb25zdCBtb2RlID0gYCR7b3B0aW9ucy5uZWdvdGlhdGVkPyAibmVnb3RpYXRlZCAiIDogIiJ9
ZGF0YWNoYW5uZWxgOworCisgIC8qCisgICAgRW5zdXJlIC5idWZmZXJlZEFtb3VudCBpcyAwIGlu
aXRpYWxseSBmb3IgYm90aCBzaWRlcy4KKyAgICovCisgIHByb21pc2VfdGVzdChhc3luYyAodCkg
PT4geworICAgIGNvbnN0IFtkYzEsIGRjMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIo
dCwgb3B0aW9ucyk7CiAKLSAgLy8gVW5pY29kZSBzdHJpbmcgd2l0aCBtdWx0aXBsZSBjb2RlIHVu
aXRzCi0gIGNvbnN0IHVuaWNvZGVTdHJpbmcgPSAn5LiW55WM5L2g5aW9JzsKLSAgLy8gVVRGLTgg
ZW5jb2RlZCBidWZmZXIgcmVwcmVzZW50YXRpb24gb2YgdGhlIHN0cmluZwotICBjb25zdCB1bmlj
b2RlQnVmZmVyID0gVWludDhBcnJheS5vZigKLSAgICAweGU0LCAweGI4LCAweDk2LCAweGU3LCAw
eDk1LCAweDhjLAotICAgIDB4ZTQsIDB4YmQsIDB4YTAsIDB4ZTUsIDB4YTUsIDB4YmQpOworICAg
IGFzc2VydF9lcXVhbHMoZGMxLmJ1ZmZlcmVkQW1vdW50LCAwLCAnRXhwZWN0IGJ1ZmZlcmVkQW1v
dW50IHRvIGJlIDAnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMi5idWZmZXJlZEFtb3VudCwgMCwg
J0V4cGVjdCBidWZmZXJlZEFtb3VudCB0byBiZSAwJyk7CisgIH0sIGAke21vZGV9IGJ1ZmZlcmVk
QW1vdW50IGluaXRpYWwgdmFsdWUgc2hvdWxkIGJlIDAgZm9yIGJvdGggcGVlcnNgKTsKIAogICAv
KgogICAgIDYuMi4gIHNlbmQoKQpAQCAtNjgsMjAgKzgzLDE4IEBACiAgICAgICAgICAgICBMZXQg
ZGF0YSBiZSB0aGUgb2JqZWN0IGFuZCBpbmNyZWFzZSB0aGUgYnVmZmVyZWRBbW91bnQgYXR0cmli
dXRlCiAgICAgICAgICAgICBieSB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCB0byBleHByZXNz
IGRhdGEgYXMgVVRGLTguCiAgICAqLwotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJu
IGNyZWF0ZURhdGFDaGFubmVsUGFpcigpCi0gICAgLnRoZW4oKFtjaGFubmVsMSwgY2hhbm5lbDJd
KSA9PiB7Ci0gICAgICBjaGFubmVsMS5zZW5kKHVuaWNvZGVTdHJpbmcpOwotICAgICAgYXNzZXJ0
X2VxdWFscyhjaGFubmVsMS5idWZmZXJlZEFtb3VudCwgdW5pY29kZUJ1ZmZlci5ieXRlTGVuZ3Ro
LAotICAgICAgICAnRXhwZWN0IGJ1ZmZlcmVkQW1vdW50IHRvIGJlIHRoZSBieXRlIGxlbmd0aCBv
ZiB0aGUgdW5pY29kZSBzdHJpbmcnKTsKLQotICAgICAgcmV0dXJuIGF3YWl0TWVzc2FnZShjaGFu
bmVsMikKLSAgICAgIC50aGVuKG1lc3NhZ2UgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKGNo
YW5uZWwxLmJ1ZmZlcmVkQW1vdW50LCAwLAotICAgICAgICAgICdFeHBlY3Qgc2VuZGVyIGJ1ZmZl
cmVkQW1vdW50IHRvIGJlIHJlZHVjZWQgYWZ0ZXIgbWVzc2FnZSBpcyBzZW50Jyk7Ci0gICAgICB9
KTsKLSAgICB9KTsKLSAgfSwgJ2J1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBieXRl
IGxlbmd0aCBvZiBlbmNvZGVkIHVuaWNvZGUgc3RyaW5nIHNlbnQnKTsKKyAgcHJvbWlzZV90ZXN0
KGFzeW5jICh0KSA9PiB7CisgICAgY29uc3QgW2RjMSwgZGMyXSA9IGF3YWl0IGNyZWF0ZURhdGFD
aGFubmVsUGFpcih0LCBvcHRpb25zKTsKKworICAgIGRjMS5zZW5kKHVuaWNvZGVTdHJpbmcpOwor
ICAgIGFzc2VydF9lcXVhbHMoZGMxLmJ1ZmZlcmVkQW1vdW50LCB1bmljb2RlQnVmZmVyLmJ5dGVM
ZW5ndGgsCisgICAgICAnRXhwZWN0IGJ1ZmZlcmVkQW1vdW50IHRvIGJlIHRoZSBieXRlIGxlbmd0
aCBvZiB0aGUgdW5pY29kZSBzdHJpbmcnKTsKKworICAgIGF3YWl0IGF3YWl0TWVzc2FnZShkYzIp
OworICAgIGFzc2VydF9lcXVhbHMoZGMxLmJ1ZmZlcmVkQW1vdW50LCAwLAorICAgICAgJ0V4cGVj
dCBzZW5kZXIgYnVmZmVyZWRBbW91bnQgdG8gYmUgcmVkdWNlZCBhZnRlciBtZXNzYWdlIGlzIHNl
bnQnKTsKKyAgfSwgYCR7bW9kZX0gYnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5
dGUgbGVuZ3RoIG9mIGVuY29kZWRgICsKKyAgICAgYHVuaWNvZGUgc3RyaW5nIHNlbnRgKTsKIAog
ICAvKgogICAgIDYuMi4gc2VuZCgpCkBAIC05MSwyMCArMTA0LDE3IEBACiAgICAgICAgICAgICBv
YmplY3QgYW5kIGluY3JlYXNlIHRoZSBidWZmZXJlZEFtb3VudCBhdHRyaWJ1dGUgYnkgdGhlIGxl
bmd0aCBvZiB0aGUKICAgICAgICAgICAgIEFycmF5QnVmZmVyIGluIGJ5dGVzLgogICAgKi8KLSAg
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIoKQot
ICAgIC50aGVuKChbY2hhbm5lbDEsIGNoYW5uZWwyXSkgPT4gewotICAgICAgY2hhbm5lbDEuc2Vu
ZChoZWxsb0J1ZmZlci5idWZmZXIpOwotICAgICAgYXNzZXJ0X2VxdWFscyhjaGFubmVsMS5idWZm
ZXJlZEFtb3VudCwgaGVsbG9CdWZmZXIuYnl0ZUxlbmd0aCwKLSAgICAgICAgJ0V4cGVjdCBidWZm
ZXJlZEFtb3VudCB0byBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBzZW50IGJ1ZmZlcicpOwot
Ci0gICAgICByZXR1cm4gYXdhaXRNZXNzYWdlKGNoYW5uZWwyKQotICAgICAgLnRoZW4obWVzc2Fn
ZUJ1ZmZlciA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoY2hhbm5lbDEuYnVmZmVyZWRBbW91
bnQsIDAsCi0gICAgICAgICAgJ0V4cGVjdCBzZW5kZXIgYnVmZmVyZWRBbW91bnQgdG8gYmUgcmVk
dWNlZCBhZnRlciBtZXNzYWdlIGlzIHNlbnQnKTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9LCAn
YnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIGJ1ZmZlciBz
ZW50Jyk7CisgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IFtkYzEsIGRj
Ml0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucyk7CisKKyAgICBkYzEu
c2VuZChoZWxsb0J1ZmZlci5idWZmZXIpOworICAgIGFzc2VydF9lcXVhbHMoZGMxLmJ1ZmZlcmVk
QW1vdW50LCBoZWxsb0J1ZmZlci5ieXRlTGVuZ3RoLAorICAgICAgJ0V4cGVjdCBidWZmZXJlZEFt
b3VudCB0byBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBzZW50IGJ1ZmZlcicpOworCisgICAg
YXdhaXQgYXdhaXRNZXNzYWdlKGRjMik7CisgICAgYXNzZXJ0X2VxdWFscyhkYzEuYnVmZmVyZWRB
bW91bnQsIDAsCisgICAgICAnRXhwZWN0IHNlbmRlciBidWZmZXJlZEFtb3VudCB0byBiZSByZWR1
Y2VkIGFmdGVyIG1lc3NhZ2UgaXMgc2VudCcpOworICB9LCBgJHttb2RlfSBidWZmZXJlZEFtb3Vu
dCBzaG91bGQgaW5jcmVhc2UgdG8gYnl0ZSBsZW5ndGggb2YgYnVmZmVyIHNlbnRgKTsKIAogICAv
KgogICAgIDYuMi4gc2VuZCgpCkBAIC0xMTMsODcgKzEyMywxMDIgQEAKICAgICAgICAgICAgIExl
dCBkYXRhIGJlIHRoZSByYXcgZGF0YSByZXByZXNlbnRlZCBieSB0aGUgQmxvYiBvYmplY3QgYW5k
IGluY3JlYXNlCiAgICAgICAgICAgICB0aGUgYnVmZmVyZWRBbW91bnQgYXR0cmlidXRlIGJ5IHRo
ZSBzaXplIG9mIGRhdGEsIGluIGJ5dGVzLgogICAgKi8KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewot
ICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIoKQotICAgIC50aGVuKChbY2hhbm5lbDEs
IGNoYW5uZWwyXSkgPT4gewotICAgICAgY2hhbm5lbDEuc2VuZChoZWxsb0Jsb2IpOwotICAgICAg
YXNzZXJ0X2VxdWFscyhjaGFubmVsMS5idWZmZXJlZEFtb3VudCwgaGVsbG9CbG9iLnNpemUsCi0g
ICAgICAgICdFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gaW5jcmVhc2UgdG8gc2l6ZSBvZiBzZW50
IGJsb2InKTsKLQotICAgICAgcmV0dXJuIGF3YWl0TWVzc2FnZShjaGFubmVsMikKLSAgICAgIC50
aGVuKG1lc3NhZ2VCdWZmZXIgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1
ZmZlcmVkQW1vdW50LCAwLAotICAgICAgICAgICdFeHBlY3Qgc2VuZGVyIGJ1ZmZlcmVkQW1vdW50
IHRvIGJlIHJlZHVjZWQgYWZ0ZXIgbWVzc2FnZSBpcyBzZW50Jyk7Ci0gICAgICB9KTsKLSAgICB9
KTsKLSAgfSwgJ2J1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBzaXplIG9mIGJsb2Ig
c2VudCcpOworICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgICBjb25zdCBbZGMxLCBk
YzJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpOworCisgICAgZGMx
LnNlbmQoaGVsbG9CbG9iKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMS5idWZmZXJlZEFtb3VudCwg
aGVsbG9CbG9iLnNpemUsCisgICAgICAnRXhwZWN0IGJ1ZmZlcmVkQW1vdW50IHRvIGluY3JlYXNl
IHRvIHNpemUgb2Ygc2VudCBibG9iJyk7CisKKyAgICBhd2FpdCBhd2FpdE1lc3NhZ2UoZGMyKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGRjMS5idWZmZXJlZEFtb3VudCwgMCwKKyAgICAgICdFeHBlY3Qg
c2VuZGVyIGJ1ZmZlcmVkQW1vdW50IHRvIGJlIHJlZHVjZWQgYWZ0ZXIgbWVzc2FnZSBpcyBzZW50
Jyk7CisgIH0sIGAke21vZGV9IGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0byBzaXpl
IG9mIGJsb2Igc2VudGApOwogCiAgIC8vIFRlc3Qgc2VuZGluZyAzIG1lc3NhZ2VzOiBoZWxsb0J1
ZmZlciwgdW5pY29kZVN0cmluZywgaGVsbG9CbG9iCi0gIGFzeW5jX3Rlc3QodCA9PiB7CisgIHBy
b21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IHJlc29sdmVyID0gbmV3IFJlc29s
dmVyKCk7CiAgICAgbGV0IG1lc3NhZ2VDb3VudCA9IDA7CiAKLSAgICBjcmVhdGVEYXRhQ2hhbm5l
bFBhaXIoKQotICAgIC50aGVuKChbY2hhbm5lbDEsIGNoYW5uZWwyXSkgPT4gewotICAgICAgY29u
c3Qgb25NZXNzYWdlID0gdC5zdGVwX2Z1bmMoZXZlbnQgPT4gewotICAgICAgICBjb25zdCB7IGRh
dGEgfSA9IGV2ZW50OwotICAgICAgICBtZXNzYWdlQ291bnQrKzsKKyAgICBjb25zdCBbZGMxLCBk
YzJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpOworICAgIGRjMi5v
bm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBpZiAoKyttZXNzYWdlQ291bnQg
PT09IDMpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYzEuYnVmZmVyZWRBbW91bnQsIDAsCisg
ICAgICAgICAgJ0V4cGVjdCBzZW5kZXIgYnVmZmVyZWRBbW91bnQgdG8gYmUgcmVkdWNlZCBhZnRl
ciBtZXNzYWdlIGlzIHNlbnQnKTsKKyAgICAgICAgcmVzb2x2ZXIucmVzb2x2ZSgpOworICAgICAg
fQorICAgIH0pOworCisgICAgZGMxLnNlbmQoaGVsbG9CdWZmZXIpOworICAgIGFzc2VydF9lcXVh
bHMoZGMxLmJ1ZmZlcmVkQW1vdW50LCBoZWxsb1N0cmluZy5sZW5ndGgsCisgICAgICAnRXhwZWN0
IGJ1ZmZlcmVkQW1vdW50IHRvIGJlIHRoZSB0b3RhbCBsZW5ndGggb2YgYWxsIG1lc3NhZ2VzIHF1
ZXVlZCB0byBzZW5kJyk7CisKKyAgICBkYzEuc2VuZCh1bmljb2RlU3RyaW5nKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGRjMS5idWZmZXJlZEFtb3VudCwKKyAgICAgIGhlbGxvU3RyaW5nLmxlbmd0aCAr
IHVuaWNvZGVCdWZmZXIuYnl0ZUxlbmd0aCwKKyAgICAgICdFeHBlY3QgYnVmZmVyZWRBbW91bnQg
dG8gYmUgdGhlIHRvdGFsIGxlbmd0aCBvZiBhbGwgbWVzc2FnZXMgcXVldWVkIHRvIHNlbmQnKTsK
IAotICAgICAgICBpZihtZXNzYWdlQ291bnQgPT09IDMpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50LCAwLAotICAgICAgICAgICAgJ0V4cGVjdCBzZW5k
ZXIgYnVmZmVyZWRBbW91bnQgdG8gYmUgcmVkdWNlZCBhZnRlciBtZXNzYWdlIGlzIHNlbnQnKTsK
KyAgICBkYzEuc2VuZChoZWxsb0Jsb2IpOworICAgIGFzc2VydF9lcXVhbHMoZGMxLmJ1ZmZlcmVk
QW1vdW50LAorICAgICAgaGVsbG9TdHJpbmcubGVuZ3RoKjIgKyB1bmljb2RlQnVmZmVyLmJ5dGVM
ZW5ndGgsCisgICAgICAnRXhwZWN0IGJ1ZmZlcmVkQW1vdW50IHRvIGJlIHRoZSB0b3RhbCBsZW5n
dGggb2YgYWxsIG1lc3NhZ2VzIHF1ZXVlZCB0byBzZW5kJyk7CiAKLSAgICAgICAgICB0LmRvbmUo
KTsKLSAgICAgICAgfQotICAgICAgfSk7CisgICAgYXdhaXQgcmVzb2x2ZXI7CisgIH0sIGAke21v
ZGV9IGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSBieSBieXRlIGxlbmd0aCBmb3IgZWFj
aCBtZXNzYWdlIHNlbnRgKTsKIAotICAgICAgY2hhbm5lbDIuYWRkRXZlbnRMaXN0ZW5lcignbWVz
c2FnZScsIG9uTWVzc2FnZSk7CisgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNv
bnN0IFtkYzFdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpOwogCi0g
ICAgICBjaGFubmVsMS5zZW5kKGhlbGxvQnVmZmVyKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoY2hh
bm5lbDEuYnVmZmVyZWRBbW91bnQsIGhlbGxvU3RyaW5nLmxlbmd0aCwKLSAgICAgICAgJ0V4cGVj
dCBidWZmZXJlZEFtb3VudCB0byBiZSB0aGUgdG90YWwgbGVuZ3RoIG9mIGFsbCBtZXNzYWdlcyBx
dWV1ZWQgdG8gc2VuZCcpOworICAgIGRjMS5zZW5kKGhlbGxvQnVmZmVyLmJ1ZmZlcik7CisgICAg
YXNzZXJ0X2VxdWFscyhkYzEuYnVmZmVyZWRBbW91bnQsIGhlbGxvQnVmZmVyLmJ5dGVMZW5ndGgs
CisgICAgICAnRXhwZWN0IGJ1ZmZlcmVkQW1vdW50IHRvIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3Ro
IG9mIHNlbnQgYnVmZmVyJyk7CiAKLSAgICAgIGNoYW5uZWwxLnNlbmQodW5pY29kZVN0cmluZyk7
Ci0gICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50LAotICAgICAgICBo
ZWxsb1N0cmluZy5sZW5ndGggKyB1bmljb2RlQnVmZmVyLmJ5dGVMZW5ndGgsCi0gICAgICAgICdF
eHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gYmUgdGhlIHRvdGFsIGxlbmd0aCBvZiBhbGwgbWVzc2Fn
ZXMgcXVldWVkIHRvIHNlbmQnKTsKKyAgICBkYzEuY2xvc2UoKTsKKyAgICBhc3NlcnRfZXF1YWxz
KGRjMS5idWZmZXJlZEFtb3VudCwgaGVsbG9CdWZmZXIuYnl0ZUxlbmd0aCwKKyAgICAgICdFeHBl
Y3QgYnVmZmVyZWRBbW91bnQgdG8gbm90IGRlY3JlYXNlIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3Np
bmcgdGhlIGNoYW5uZWwnKTsKKyAgfSwgYCR7bW9kZX0gYnVmZmVyZWRBbW91bnQgc2hvdWxkIG5v
dCBkZWNyZWFzZSBpbW1lZGlhdGVseSBhZnRlciBpbml0aWF0aW5nIGNsb3N1cmVgKTsKIAotICAg
ICAgY2hhbm5lbDEuc2VuZChoZWxsb0Jsb2IpOwotICAgICAgYXNzZXJ0X2VxdWFscyhjaGFubmVs
MS5idWZmZXJlZEFtb3VudCwKLSAgICAgICAgaGVsbG9TdHJpbmcubGVuZ3RoKjIgKyB1bmljb2Rl
QnVmZmVyLmJ5dGVMZW5ndGgsCi0gICAgICAgICdFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gYmUg
dGhlIHRvdGFsIGxlbmd0aCBvZiBhbGwgbWVzc2FnZXMgcXVldWVkIHRvIHNlbmQnKTsKKyAgcHJv
bWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29u
c3QgW2RjMV0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucywgcGMxKTsK
IAotICAgIH0pLmNhdGNoKHQuc3RlcF9mdW5jKGVyciA9PgotICAgICAgYXNzZXJ0X3VucmVhY2hl
ZChgVW5leHBlY3RlZCBwcm9taXNlIHJlamVjdGlvbjogJHtlcnJ9YCkpKTsKLSAgfSwgJ2J1ZmZl
cmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSBieSBieXRlIGxlbmd0aCBmb3IgZWFjaCBtZXNzYWdl
IHNlbnQnKTsKKyAgICBkYzEuc2VuZChoZWxsb0J1ZmZlci5idWZmZXIpOworICAgIGFzc2VydF9l
cXVhbHMoZGMxLmJ1ZmZlcmVkQW1vdW50LCBoZWxsb0J1ZmZlci5ieXRlTGVuZ3RoLAorICAgICAg
J0V4cGVjdCBidWZmZXJlZEFtb3VudCB0byBpbmNyZWFzZSB0byBieXRlIGxlbmd0aCBvZiBzZW50
IGJ1ZmZlcicpOworCisgICAgcGMxLmNsb3NlKCk7CisgICAgYXNzZXJ0X2VxdWFscyhkYzEuYnVm
ZmVyZWRBbW91bnQsIGhlbGxvQnVmZmVyLmJ5dGVMZW5ndGgsCisgICAgICAnRXhwZWN0IGJ1ZmZl
cmVkQW1vdW50IHRvIG5vdCBkZWNyZWFzZSBhZnRlciBjbG9zaW5nIHRoZSBwZWVyIGNvbm5lY3Rp
b24nKTsKKyAgfSwgYCR7bW9kZX0gYnVmZmVyZWRBbW91bnQgc2hvdWxkIG5vdCBkZWNyZWFzZSBh
ZnRlciBjbG9zaW5nIHRoZSBwZWVyIGNvbm5lY3Rpb25gKTsKIAogICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7Ci0gICAgY29uc3QgW2NoYW5uZWwxLCBjaGFubmVsMl0gPSBhd2FpdCBjcmVhdGVE
YXRhQ2hhbm5lbFBhaXIoKTsKKyAgICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9IGF3YWl0
IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKTsKICAgICBjaGFubmVsMS5hZGRFdmVu
dExpc3RlbmVyKCdidWZmZXJlZGFtb3VudGxvdycsIHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4gewog
ICAgICAgYXNzZXJ0X3RydWUoY2hhbm5lbDEuYnVmZmVyZWRBbW91bnQgPD0gY2hhbm5lbDEuYnVm
ZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQpOwogICAgIH0pKTsKICAgICBjb25zdCBldmVudFdhdGNo
ZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGNoYW5uZWwxLCBbJ2J1ZmZlcmVkYW1vdW50bG93J10p
OwogICAgIGNoYW5uZWwxLnNlbmQoaGVsbG9TdHJpbmcpOwogICAgIGF3YWl0IGV2ZW50V2F0Y2hl
ci53YWl0X2ZvcihbJ2J1ZmZlcmVkYW1vdW50bG93J10pOwotICB9LCAnRGF0YSBjaGFubmVsIGJ1
ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIHNlbmQoKSBpcyBjb21wbGV0ZScpOwor
ICB9LCBgJHttb2RlfSBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBhZnRlciBzZW5kKCkg
aXMgY29tcGxldGVgKTsKIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgY29uc3Qg
W2NoYW5uZWwxLCBjaGFubmVsMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIoKTsKKyAg
ICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFp
cih0LCBvcHRpb25zKTsKICAgICBjaGFubmVsMS5zZW5kKGhlbGxvU3RyaW5nKTsKICAgICBhc3Nl
cnRfZXF1YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50LCBoZWxsb1N0cmluZy5sZW5ndGgpOwog
ICAgIGF3YWl0IGF3YWl0TWVzc2FnZShjaGFubmVsMik7CiAgICAgYXNzZXJ0X2VxdWFscyhjaGFu
bmVsMS5idWZmZXJlZEFtb3VudCwgMCk7Ci0gIH0sICdEYXRhIGNoYW5uZWwgYnVmZmVyZWRhbW91
bnQgaXMgZGF0YS5sZW5ndGggb24gc2VuZChkYXRhKScpOworICB9LCBgJHttb2RlfSBidWZmZXJl
ZGFtb3VudCBpcyBkYXRhLmxlbmd0aCBvbiBzZW5kKGRhdGEpYCk7CiAKICAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewotICAgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3Jl
YXRlRGF0YUNoYW5uZWxQYWlyKCk7CisgICAgY29uc3QgW2NoYW5uZWwxLCBjaGFubmVsMl0gPSBh
d2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucyk7CiAgICAgY2hhbm5lbDEuc2Vu
ZChoZWxsb1N0cmluZyk7CiAgICAgYXNzZXJ0X2VxdWFscyhjaGFubmVsMS5idWZmZXJlZEFtb3Vu
dCwgaGVsbG9TdHJpbmcubGVuZ3RoKTsKICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1ZmZl
cmVkQW1vdW50LCBoZWxsb1N0cmluZy5sZW5ndGgpOwotICB9LCAnRGF0YSBjaGFubmVsIGJ1ZmZl
cmVkYW1vdW50IHJldHVybnMgdGhlIHNhbWUgYW1vdW50IGlmIG5vIG1vcmUgZGF0YSBpcycgKwot
ICAgICAnIHNlbnQgb24gdGhlIGNoYW5uZWwnKTsKKyAgfSwgYCR7bW9kZX0gYnVmZmVyZWRhbW91
bnQgcmV0dXJucyB0aGUgc2FtZSBhbW91bnQgaWYgbm8gbW9yZSBkYXRhIGlzYCk7CiAKICAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0g
YXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKCk7CisgICAgY29uc3QgW2NoYW5uZWwxLCBjaGFu
bmVsMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucyk7CiAgICAgbGV0
IGV2ZW50RmlyZUNvdW50ID0gMDsKICAgICBjaGFubmVsMS5hZGRFdmVudExpc3RlbmVyKCdidWZm
ZXJlZGFtb3VudGxvdycsIHQuc3RlcF9mdW5jKCgpID0+IHsKICAgICAgIGFzc2VydF90cnVlKGNo
YW5uZWwxLmJ1ZmZlcmVkQW1vdW50IDw9IGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50TG93VGhyZXNo
b2xkKTsKQEAgLTIwNSwxMSArMjMwLDExIEBACiAgICAgY2hhbm5lbDEuc2VuZChoZWxsb1N0cmlu
Zyk7CiAgICAgYXNzZXJ0X2VxdWFscyhjaGFubmVsMS5idWZmZXJlZEFtb3VudCwgMiAqIGhlbGxv
U3RyaW5nLmxlbmd0aCk7CiAgICAgYXdhaXQgZXZlbnRXYXRjaGVyLndhaXRfZm9yKFsnYnVmZmVy
ZWRhbW91bnRsb3cnXSk7Ci0gIH0sICdEYXRhIGNoYW5uZWwgYnVmZmVyZWRhbW91bnRsb3cgZXZl
bnQgZmlyZXMgb25seSBvbmNlIGFmdGVyIG11bHRpcGxlJyArCi0gICAgJyBjb25zZWN1dGl2ZSBz
ZW5kKCkgY2FsbHMnKTsKKyAgfSwgYCR7bW9kZX0gYnVmZmVyZWRhbW91bnRsb3cgZXZlbnQgZmly
ZXMgb25seSBvbmNlIGFmdGVyIG11bHRpcGxlYCArCisgICAgIGAgY29uc2VjdXRpdmUgc2VuZCgp
IGNhbGxzYCk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0IFtjaGFu
bmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKCk7CisgICAgY29u
c3QgW2NoYW5uZWwxLCBjaGFubmVsMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwg
b3B0aW9ucyk7CiAgICAgY29uc3QgZXZlbnRXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBj
aGFubmVsMSwgWydidWZmZXJlZGFtb3VudGxvdyddKTsKICAgICBjaGFubmVsMS5zZW5kKGhlbGxv
U3RyaW5nKTsKICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50LCBoZWxs
b1N0cmluZy5sZW5ndGgpOwpAQCAtMjE5LDYgKzI0NCw2IEBACiAgICAgYXNzZXJ0X2VxdWFscyhj
aGFubmVsMS5idWZmZXJlZEFtb3VudCwgaGVsbG9TdHJpbmcubGVuZ3RoKTsKICAgICBhd2FpdCBl
dmVudFdhdGNoZXIud2FpdF9mb3IoWydidWZmZXJlZGFtb3VudGxvdyddKTsKICAgICBhc3NlcnRf
ZXF1YWxzKGF3YWl0IGF3YWl0TWVzc2FnZShjaGFubmVsMiksIGhlbGxvU3RyaW5nKTsKLSAgfSwg
J0RhdGEgY2hhbm5lbCBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBhZnRlciBlYWNoIHNl
bnQgbWVzc2FnZScpOwotCisgIH0sIGAke21vZGV9IGJ1ZmZlcmVkYW1vdW50bG93IGV2ZW50IGZp
cmVzIGFmdGVyIGVhY2ggc2VudCBtZXNzYWdlYCk7Cit9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Rh
dGFDaGFubmVsLWNsb3NlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jYzM5NDljOTVkYjQwYWRkODAxOWEzNDBjMDNiZDZkOWVhMGZhOGRlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTIgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK0ZBSUwg
Q2xvc2UgZGF0YWNoYW5uZWwgY2F1c2VzIG9uY2xvc2luZyBhbmQgb25jbG9zZSB0byBiZSBjYWxs
ZWQgYXNzZXJ0X3RydWU6IENsb3NpbmcgZXZlbnQgd2FzIHNlZW4gZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK0ZBSUwgQ2xvc2UgZGF0YWNoYW5uZWwgY2F1c2VzIGNsb3NpbmcgYW5kIGNsb3NlIGV2
ZW50IHRvIGJlIGNhbGxlZCBhc3NlcnRfdHJ1ZTogQ2xvc2luZyBldmVudCB3YXMgc2VlbiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBDbG9zZSBwZWVyY29ubmVjdGlvbiBjYXVzZXMgY2xv
c2UgZXZlbnQgYW5kIGVycm9yIHRvIGJlIGNhbGxlZCBvbiBkYXRhY2hhbm5lbCBhc3NlcnRfYXJy
YXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJlcnJvciIsICJjbG9z
ZSJdIGxlbmd0aCAyLCBnb3QgWyJjbG9zZSJdIGxlbmd0aCAxCitUSU1FT1VUIENsb3NlIHBlZXJj
b25uZWN0aW9uIGFmdGVyIGRhdGFjaGFubmVsIGNsb3NlIGNhdXNlcyBubyBldmVudHMgVGVzdCB0
aW1lZCBvdXQKK05PVFJVTiBDbG9zZSBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIGNhdXNlcyBvbmNs
b3NpbmcgYW5kIG9uY2xvc2UgdG8gYmUgY2FsbGVkIAorTk9UUlVOIENsb3NlIG5lZ290aWF0ZWQg
ZGF0YWNoYW5uZWwgY2F1c2VzIGNsb3NpbmcgYW5kIGNsb3NlIGV2ZW50IHRvIGJlIGNhbGxlZCAK
K05PVFJVTiBDbG9zZSBwZWVyY29ubmVjdGlvbiBjYXVzZXMgY2xvc2UgZXZlbnQgYW5kIGVycm9y
IHRvIGJlIGNhbGxlZCBvbiBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIAorTk9UUlVOIENsb3NlIHBl
ZXJjb25uZWN0aW9uIGFmdGVyIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgY2xvc2UgY2F1c2VzIG5v
IGV2ZW50cyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNs
b3NlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q0YWNlMmE4MzZiZTJjOWYxOGRlY2E0OGM4YzAxZjVlMWNk
ZmYxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwKQEAgLTAsMCArMSwx
MDQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlJUQ0RhdGFDaGFubmVsLnByb3RvdHlw
ZS5jbG9zZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2ZvciAoY29uc3Qgb3B0aW9ucyBvZiBb
e30sIHtuZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CisgIGNvbnN0IG1vZGUgPSBgJHtvcHRp
b25zLm5lZ290aWF0ZWQ/ICJuZWdvdGlhdGVkICIgOiAiIn1kYXRhY2hhbm5lbGA7CisKKyAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0g
YXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpOworICAgIGNvbnN0IGhhdmVD
bG9zZWQgPSBuZXcgUHJvbWlzZShyID0+IGNoYW5uZWwyLm9uY2xvc2UgPSByKTsKKyAgICBsZXQg
Y2xvc2luZ1NlZW4gPSBmYWxzZTsKKyAgICBjaGFubmVsMS5vbmNsb3NpbmcgPSB0LnVucmVhY2hl
ZF9mdW5jKCk7CisgICAgY2hhbm5lbDIub25jbG9zaW5nID0gKCkgPT4geworICAgICAgYXNzZXJ0
X2VxdWFscyhjaGFubmVsMi5yZWFkeVN0YXRlLCAnY2xvc2luZycpOworICAgICAgY2xvc2luZ1Nl
ZW4gPSB0cnVlOworICAgIH07CisgICAgY2hhbm5lbDIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3In
LCB0LnVucmVhY2hlZF9mdW5jKCkpOworICAgIGNoYW5uZWwxLmNsb3NlKCk7CisgICAgYXdhaXQg
aGF2ZUNsb3NlZDsKKyAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwyLnJlYWR5U3RhdGUsICdjbG9z
ZWQnKTsKKyAgICBhc3NlcnRfdHJ1ZShjbG9zaW5nU2VlbiwgJ0Nsb3NpbmcgZXZlbnQgd2FzIHNl
ZW4nKTsKKyAgfSwgYENsb3NlICR7bW9kZX0gY2F1c2VzIG9uY2xvc2luZyBhbmQgb25jbG9zZSB0
byBiZSBjYWxsZWRgKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgLy8gVGhp
cyBpcyB0aGUgc2FtZSB0ZXN0IGFzIGFib3ZlLCBidXQgdXNpbmcgYWRkRXZlbnRMaXN0ZW5lcgor
ICAgIC8vIHJhdGhlciB0aGFuIHRoZSAib25jbG9zZSIgYXR0cmlidXRlLgorICAgIGNvbnN0IFtj
aGFubmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlv
bnMpOworICAgIGNvbnN0IGhhdmVDbG9zZWQgPSBuZXcgUHJvbWlzZShyID0+IGNoYW5uZWwyLmFk
ZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgcikpOworICAgIGxldCBjbG9zaW5nU2VlbiA9IGZhbHNl
OworICAgIGNoYW5uZWwxLmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NpbmcnLCB0LnVucmVhY2hlZF9m
dW5jKCkpOworICAgIGNoYW5uZWwyLmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NpbmcnLCAoKSA9PiB7
CisgICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwyLnJlYWR5U3RhdGUsICdjbG9zaW5nJyk7Cisg
ICAgICBjbG9zaW5nU2VlbiA9IHRydWU7CisgICAgfSk7CisgICAgY2hhbm5lbDIuYWRkRXZlbnRM
aXN0ZW5lcignZXJyb3InLCB0LnVucmVhY2hlZF9mdW5jKCkpOworICAgIGNoYW5uZWwxLmNsb3Nl
KCk7CisgICAgYXdhaXQgaGF2ZUNsb3NlZDsKKyAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwyLnJl
YWR5U3RhdGUsICdjbG9zZWQnKTsKKyAgICBhc3NlcnRfdHJ1ZShjbG9zaW5nU2VlbiwgJ0Nsb3Np
bmcgZXZlbnQgd2FzIHNlZW4nKTsKKyAgfSwgYENsb3NlICR7bW9kZX0gY2F1c2VzIGNsb3Npbmcg
YW5kIGNsb3NlIGV2ZW50IHRvIGJlIGNhbGxlZGApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBbY2hhbm5lbDEsIGNoYW5u
ZWwyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zLCBwYzEpOworICAg
IGNvbnN0IGV2ZW50cyA9IFtdOworICAgIGxldCBlcnJvciA9IG51bGw7CisgICAgY2hhbm5lbDIu
YWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB0LnN0ZXBfZnVuYyhldmVudCA9PiB7CisgICAgICBl
dmVudHMucHVzaCgnZXJyb3InKTsKKyAgICAgIGFzc2VydF90cnVlKGV2ZW50IGluc3RhbmNlb2Yg
UlRDRXJyb3JFdmVudCk7CisgICAgICBlcnJvciA9IGV2ZW50LmVycm9yOworICAgIH0pKTsKKyAg
ICBjb25zdCBoYXZlQ2xvc2VkID0gbmV3IFByb21pc2UociA9PiBjaGFubmVsMi5hZGRFdmVudExp
c3RlbmVyKCdjbG9zZScsICgpID0+IHsKKyAgICAgIGV2ZW50cy5wdXNoKCdjbG9zZScpOworICAg
ICAgcigpOworICAgIH0pKTsKKyAgICBwYzEuY2xvc2UoKTsKKyAgICBhd2FpdCBoYXZlQ2xvc2Vk
OworICAgIC8vIEVycm9yIHNob3VsZCBmaXJlIGJlZm9yZSBjbG9zZS4KKyAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGV2ZW50cywgWydlcnJvcicsICdjbG9zZSddKTsKKyAgICBhc3NlcnRfdHJ1ZShl
cnJvciBpbnN0YW5jZW9mIFJUQ0Vycm9yKTsKKyAgICBhc3NlcnRfZXF1YWxzKGVycm9yLm5hbWUs
ICdPcGVyYXRpb25FcnJvcicpOworICAgIGFzc2VydF9lcXVhbHMoZXJyb3IuZXJyb3JEZXRhaWws
ICdzY3RwLWZhaWx1cmUnKTsKKyAgICAvLyBDbG9zaW5nIGEgcGVlcmNvbm5lY3Rpb24gY2F1c2Vz
IGEgRFRMUyBjbG9zZSwgYnV0IHRoaXMgZXZlbnQgaGFzCisgICAgLy8gbm8gY29ycmVzcG9uZGlu
ZyBTQ1RQIGNhdXNlIGNvZGUuCisgICAgYXNzZXJ0X2VxdWFscyhlcnJvci5zY3RwQ2F1c2VDb2Rl
LCBudWxsKTsKKyAgfSwgYENsb3NlIHBlZXJjb25uZWN0aW9uIGNhdXNlcyBjbG9zZSBldmVudCBh
bmQgZXJyb3IgdG8gYmUgY2FsbGVkIG9uICR7bW9kZX1gKTsKKworICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgbGV0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGxldCBbY2hhbm5lbDEsIGNoYW5u
ZWwyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zLCBwYzEpOworICAg
IC8vIFRoZSBleHBlY3RlZCBzZXF1ZW5jZSBvZiBldmVudHMgd2hlbiBjbG9zaW5nIGEgREMgaXMg
dGhhdAorICAgIC8vIGNoYW5uZWwxIGdvZXMgdG8gY2xvc2luZywgY2hhbm5lbDIgZmlyZXMgb25j
bG9zZSwgYW5kIHdoZW4KKyAgICAvLyB0aGUgY2xvc2UgaXMgY29uZmlybWVkLCBjaGFubmVsMSBm
aXJlcyBvbmNsb3NlLgorICAgIC8vIEFmdGVyIHRoYXQsIG5vIG1vcmUgZXZlbnRzIHNob3VsZCBm
aXJlLgorICAgIGNoYW5uZWwxLm9uZXJyb3IgPSB0LnVucmVhY2hlZF9mdW5jKCk7CisgICAgbGV0
IGNsb3NlMkhhbmRsZXIgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgIGNoYW5uZWwy
Lm9uY2xvc2UgPSBldmVudCA9PiB7CisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH07CisgICAg
fSk7CisgICAgbGV0IGNsb3NlMUhhbmRsZXIgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAg
ICAgIGNoYW5uZWwxLm9uY2xvc2UgPSBldmVudCA9PiB7CisgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgIH07CisgICAgfSk7CisgICAgY2hhbm5lbDEuY2xvc2UoKTsKKyAgICBhd2FpdCBjbG9zZTJI
YW5kbGVyOworICAgIGF3YWl0IGNsb3NlMUhhbmRsZXI7CisgICAgY2hhbm5lbDEub25jbG9zZSA9
IHQudW5yZWFjaGVkX2Z1bmMoKTsKKyAgICBjaGFubmVsMi5vbmNsb3NlID0gdC51bnJlYWNoZWRf
ZnVuYygpOworICAgIGNoYW5uZWwyLm9uZXJyb3IgPSB0LnVucmVhY2hlZF9mdW5jKCk7CisgICAg
cGMxLmNsb3NlKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0ZXBfdGlt
ZW91dChyZXNvbHZlLCAxMCkpOworICB9LCBgQ2xvc2UgcGVlcmNvbm5lY3Rpb24gYWZ0ZXIgJHtt
b2RlfSBjbG9zZSBjYXVzZXMgbm8gZXZlbnRzYCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Rh
dGFDaGFubmVsLWlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWlkLWV4cGVjdGVkLnR4dAppbmRl
eCAyZDQ2ZTMzNWZmZGY0NzJhNTYyZTMxZDU1NjA1NGU4ZWUxYTcxMGFmLi45Nzc2ZGM4ZDk2YzVl
NzkzMzI2NjdlNjgwN2UzOGJlYzgwMjE2MGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNiBAQAog
Ci1GQUlMIERUTFMgY2xpZW50IHVzZXMgb2RkIGRhdGEgY2hhbm5lbCBJRHMgYXNzZXJ0X2VxdWFs
czogaWQgZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgRFRMUyBzZXJ2ZXIgdXNlcyBldmVuIGRh
dGEgY2hhbm5lbCBJRHMgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIG51
bGwKK0ZBSUwgRFRMUyBjbGllbnQgdXNlcyBvZGQgZGF0YSBjaGFubmVsIElEcyBhc3NlcnRfZXF1
YWxzOiBDaGFubmVsIGNyZWF0ZWQgYnkgdGhlIERUTFMgc2VydmVyIHJvbGUgbXVzdCBiZSBvZGQg
KHdhcyBudWxsKSBleHBlY3RlZCAxIGJ1dCBnb3QgMAorRkFJTCBEVExTIHNlcnZlciB1c2VzIGV2
ZW4gZGF0YSBjaGFubmVsIElEcyBhc3NlcnRfdHJ1ZTogQ2hhbm5lbCBJRCBudWxsIHNob3VsZCBi
ZSB1bmlxdWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgSW4tYmFuZCBuZWdvdGlhdGlv
biB3aXRoIGEgc3BlY2lmaWMgSUQgc2hvdWxkIG5vdCB3b3JrIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAobnVtYmVyKSA0MgorRkFJTCBPZGQvZXZlbiByb2xl
IHNob3VsZCBub3QgYmUgdmlvbGF0ZWQgd2hlbiBtaXhpbmcgd2l0aCBuZWdvdGlhdGVkIGNoYW5u
ZWxzIGFzc2VydF9lcXVhbHM6IENoYW5uZWwgY3JlYXRlZCBieSB0aGUgRFRMUyBzZXJ2ZXIgcm9s
ZSBtdXN0IGJlIG9kZCAod2FzIG51bGwpIGV4cGVjdGVkIDEgYnV0IGdvdCAwCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0RhdGFDaGFubmVsLWlkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pZC5odG1sCmluZGV4IDE4ZjcwZDhjZTk2
OWQyZjRmNTM2ZTY5MDhhZTkyNzRjM2FiMjhmZWYuLjEwZGM1ZWFjYjljY2YyYTg3OGQyOWU4YjEz
ZWIwODIyNzE3MzFlNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWlkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5u
ZWwtaWQuaHRtbApAQCAtMyw2MCArMywzNDMgQEAKIDx0aXRsZT5SVENEYXRhQ2hhbm5lbCBpZCBh
dHRyaWJ1dGU8L3RpdGxlPgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7CiAKLS8vIFRoaXMgYW5kIHRoZSB0ZXN0IGJlbG93
IHZlcmlmeSB0aGF0IGFmdGVyIGEgZGVzY3JpcHRpb24gaXMgc2V0IHRoYXQKLS8vIG5lZ290aWF0
ZXMgdGhlIERUTFMgcm9sZSB1c2VkIGJ5IFNDVFAsIGRhdGEgY2hhbm5lbHMgd2l0aCB1bnNldCBJ
RHMKLS8vIGhhdmUgSURzIHNldCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIGluIHJ0Y3dlYi1kYXRh
LWNoYW5uZWwuCi1wcm9taXNlX3Rlc3QodGVzdCA9PiB7CisvLyBUZXN0IGlzIGJhc2VkIG9uIHRo
ZSBmb2xsb3dpbmcgcmV2aXNpb246CisvLyBodHRwczovL3Jhd2dpdC5jb20vdzNjL3dlYnJ0Yy1w
Yy8xY2M1YmZjM2ZmMTg3NDEwMzNkODA0YzRhNzFmNzg5MTI0MmZiNWIzL3dlYnJ0Yy5odG1sCisK
Ky8vIFRoaXMgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cmVhbXMsIE5PVCB0aGUgbWF4aW11
bSBzdHJlYW0gSUQgKHdoaWNoIGlzIDY1NTM0KQorLy8gU2VlOiBodHRwczovL3Rvb2xzLmlldGYu
b3JnL2h0bWwvZHJhZnQtaWV0Zi1ydGN3ZWItZGF0YS1jaGFubmVsLTEzI3NlY3Rpb24tNi4yCitj
b25zdCBuU3RyZWFtcyA9IDY1NTM1OworCisvKgorICA2LjEuCisgICAgMjEuIElmIHRoZSBbW0Rh
dGFDaGFubmVsSWRdXSBzbG90IGlzIG51bGwgKGR1ZSB0byBubyBJRCBiZWluZyBwYXNzZWQgaW50
bworICAgICAgICBjcmVhdGVEYXRhQ2hhbm5lbCwgb3IgW1tOZWdvdGlhdGVkXV0gYmVpbmcgZmFs
c2UpLCBhbmQgdGhlIERUTFMgcm9sZSBvZiB0aGUgU0NUUAorICAgICAgICB0cmFuc3BvcnQgaGFz
IGFscmVhZHkgYmVlbiBuZWdvdGlhdGVkLCB0aGVuIGluaXRpYWxpemUgW1tEYXRhQ2hhbm5lbElk
XV0gdG8gYSB2YWx1ZQorICAgICAgICBnZW5lcmF0ZWQgYnkgdGhlIHVzZXIgYWdlbnQsIGFjY29y
ZGluZyB0byBbUlRDV0VCLURBVEEtUFJPVE9DT0xdIFsuLi5dCisgKi8KK3Byb21pc2VfdGVzdChh
c3luYyAodCkgPT4gewogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbjsKLSAgdGVz
dC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAgY29uc3QgY2hhbm5lbCA9IHBjLmNy
ZWF0ZURhdGFDaGFubmVsKCcnKTsKLSAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCkKLSAgLnRoZW4o
b2ZmZXIgPT4gcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikpCi0gIC50aGVuKCgpID0+IHsK
LSAgICAvLyBUdXJuIG91ciBvd24gb2ZmZXIgU0RQIGludG8gdmFsaWQgYW5zd2VyIFNEUCBieSBz
ZXR0aW5nIHRoZSBEVExTIHJvbGUgdG8KLSAgICAvLyAiYWN0aXZlIi4KLSAgICBjb25zdCBhbnN3
ZXIgPSB7Ci0gICAgICB0eXBlOiAiYW5zd2VyIiwKLSAgICAgIHNkcDogcGMubG9jYWxEZXNjcmlw
dGlvbi5zZHAucmVwbGFjZSgiYWN0cGFzcyIsICJhY3RpdmUiKQotICAgIH07Ci0gICAgcmV0dXJu
IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7Ci0gIH0pCi0gIC50aGVuKCgpID0+IHsK
LSAgICAvLyBTaW5jZSB0aGUgcmVtb3RlIGRlc2NyaXB0aW9uIGhhZCBhbiAiYWN0aXZlIiBEVExT
IHJvbGUsIHdlJ3JlIHRoZSBzZXJ2ZXIKLSAgICAvLyBhbmQgc2hvdWxkIHVzZSBvZGQgZGF0YSBj
aGFubmVsIElEcywgYWNjb3JkaW5nIHRvIHJ0Y3dlYi1kYXRhLWNoYW5uZWwuCi0gICAgYXNzZXJ0
X2VxdWFscyhjaGFubmVsLmlkICUgMiwgMSwgJ2lkJyk7Ci0gICAgY29uc3QgYW5vdGhlcl9jaGFu
bmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2Fub3RoZXInKTsKLSAgICBhc3NlcnRfZXF1YWxz
KGFub3RoZXJfY2hhbm5lbC5pZCAlIDIsIDEsICdpZCcpOwotICAgIGFzc2VydF9ub3RfZXF1YWxz
KGNoYW5uZWwuaWQsIGFub3RoZXJfY2hhbm5lbC5pZCk7Ci0gIH0pCi19LCAiRFRMUyBjbGllbnQg
dXNlcyBvZGQgZGF0YSBjaGFubmVsIElEcyIpOwotCi1wcm9taXNlX3Rlc3QodGVzdCA9PiB7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgY29uc3QgZGMxID0gcGMuY3Jl
YXRlRGF0YUNoYW5uZWwoJycpOworICBjb25zdCBpZHMgPSBuZXcgVW5pcXVlU2V0KCk7CisKKyAg
Y29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICBhd2FpdCBwYy5zZXRMb2Nh
bERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgLy8gVHVybiBvdXIgb3duIG9mZmVyIFNEUCBpbnRvIHZh
bGlkIGFuc3dlciBTRFAgYnkgc2V0dGluZyB0aGUgRFRMUyByb2xlIHRvCisgIC8vICJhY3RpdmUi
LgorICBjb25zdCBhbnN3ZXIgPSB7CisgICAgdHlwZTogJ2Fuc3dlcicsCisgICAgc2RwOiBwYy5s
b2NhbERlc2NyaXB0aW9uLnNkcC5yZXBsYWNlKCdhY3RwYXNzJywgJ2FjdGl2ZScpCisgIH07Cisg
IGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgLy8gU2luY2UgdGhl
IHJlbW90ZSBkZXNjcmlwdGlvbiBoYWQgYW4gJ2FjdGl2ZScgRFRMUyByb2xlLCB3ZSdyZSB0aGUg
c2VydmVyCisgIC8vIGFuZCBzaG91bGQgdXNlIG9kZCBkYXRhIGNoYW5uZWwgSURzLCBhY2NvcmRp
bmcgdG8gcnRjd2ViLWRhdGEtY2hhbm5lbC4KKyAgYXNzZXJ0X2VxdWFscyhkYzEuaWQgJSAyLCAx
LAorICAgIGBDaGFubmVsIGNyZWF0ZWQgYnkgdGhlIERUTFMgc2VydmVyIHJvbGUgbXVzdCBiZSBv
ZGQgKHdhcyAke2RjMS5pZH0pYCk7CisgIGNvbnN0IGRjMiA9IHBjLmNyZWF0ZURhdGFDaGFubmVs
KCdhbm90aGVyJyk7CisgIGFzc2VydF9lcXVhbHMoZGMyLmlkICUgMiwgMSwKKyAgICBgQ2hhbm5l
bCBjcmVhdGVkIGJ5IHRoZSBEVExTIHNlcnZlciByb2xlIG11c3QgYmUgb2RkICh3YXMgJHtkYzIu
aWR9KWApOworCisgIC8vIEVuc3VyZSBJRHMgYXJlIHVuaXF1ZQorICBpZHMuYWRkKGRjMS5pZCwg
YENoYW5uZWwgSUQgJHtkYzEuaWR9IHNob3VsZCBiZSB1bmlxdWVgKTsKKyAgaWRzLmFkZChkYzIu
aWQsIGBDaGFubmVsIElEICR7ZGMyLmlkfSBzaG91bGQgYmUgdW5pcXVlYCk7Cit9LCAnRFRMUyBj
bGllbnQgdXNlcyBvZGQgZGF0YSBjaGFubmVsIElEcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
KHQpID0+IHsKICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb247Ci0gIHRlc3QuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gIGNvbnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVE
YXRhQ2hhbm5lbCgnJyk7Ci0gIHJldHVybiBwYy5jcmVhdGVPZmZlcigpCi0gIC50aGVuKG9mZmVy
ID0+IHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpKQotICAudGhlbigoKSA9PiB7Ci0gICAg
Ly8gVHVybiBvdXIgb3duIG9mZmVyIFNEUCBpbnRvIHZhbGlkIGFuc3dlciBTRFAgYnkgc2V0dGlu
ZyB0aGUgRFRMUyByb2xlIHRvCi0gICAgLy8gInBhc3NpdmUiLgotICAgIGNvbnN0IGFuc3dlciA9
IHsKLSAgICAgIHR5cGU6ICJhbnN3ZXIiLAotICAgICAgc2RwOiBwYy5sb2NhbERlc2NyaXB0aW9u
LnNkcC5yZXBsYWNlKCJhY3RwYXNzIiwgInBhc3NpdmUiKQotICAgIH07Ci0gICAgcmV0dXJuIHBj
LnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7Ci0gIH0pCi0gIC50aGVuKCgpID0+IHsKLSAg
ICAvLyBTaW5jZSB0aGUgcmVtb3RlIGRlc2NyaXB0aW9uIGhhZCBhICJwYXNzaXZlIiBEVExTIHJv
bGUsIHdlJ3JlIHRoZSBjbGllbnQKLSAgICAvLyBhbmQgc2hvdWxkIHVzZSBldmVuIGRhdGEgY2hh
bm5lbCBJRHMsIGFjY29yZGluZyB0byBydGN3ZWItZGF0YS1jaGFubmVsLgotICAgIGFzc2VydF9l
cXVhbHMoY2hhbm5lbC5pZCAlIDIsIDAsICdpZCcpOwotICAgIGNvbnN0IGFub3RoZXJfY2hhbm5l
bCA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCdhbm90aGVyJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhh
bm90aGVyX2NoYW5uZWwuaWQgJSAyLCAwLCAnaWQnKTsKLSAgICBhc3NlcnRfbm90X2VxdWFscyhj
aGFubmVsLmlkLCBhbm90aGVyX2NoYW5uZWwuaWQpOwotICB9KQotfSwgIkRUTFMgc2VydmVyIHVz
ZXMgZXZlbiBkYXRhIGNoYW5uZWwgSURzIik7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CisKKyAgY29uc3QgZGMxID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycpOworICBjb25z
dCBpZHMgPSBuZXcgVW5pcXVlU2V0KCk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVh
dGVPZmZlcigpOworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgLy8g
VHVybiBvdXIgb3duIG9mZmVyIFNEUCBpbnRvIHZhbGlkIGFuc3dlciBTRFAgYnkgc2V0dGluZyB0
aGUgRFRMUyByb2xlIHRvCisgIC8vICdwYXNzaXZlJy4KKyAgY29uc3QgYW5zd2VyID0geworICAg
IHR5cGU6ICdhbnN3ZXInLAorICAgIHNkcDogcGMubG9jYWxEZXNjcmlwdGlvbi5zZHAucmVwbGFj
ZSgnYWN0cGFzcycsICdwYXNzaXZlJykKKyAgfTsKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oYW5zd2VyKTsKKworICAvLyBTaW5jZSB0aGUgcmVtb3RlIGRlc2NyaXB0aW9uIGhhZCBh
ICdwYXNzaXZlJyBEVExTIHJvbGUsIHdlJ3JlIHRoZSBjbGllbnQKKyAgLy8gYW5kIHNob3VsZCB1
c2UgZXZlbiBkYXRhIGNoYW5uZWwgSURzLCBhY2NvcmRpbmcgdG8gcnRjd2ViLWRhdGEtY2hhbm5l
bC4KKyAgYXNzZXJ0X2VxdWFscyhkYzEuaWQgJSAyLCAwLAorICAgIGBDaGFubmVsIGNyZWF0ZWQg
YnkgdGhlIERUTFMgY2xpZW50IHJvbGUgbXVzdCBiZSBldmVuICh3YXMgJHtkYzEuaWR9KWApOwor
ICBjb25zdCBkYzIgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnYW5vdGhlcicpOworICBhc3NlcnRf
ZXF1YWxzKGRjMi5pZCAlIDIsIDAsCisgICAgYENoYW5uZWwgY3JlYXRlZCBieSB0aGUgRFRMUyBj
bGllbnQgcm9sZSBtdXN0IGJlIGV2ZW4gKHdhcyAke2RjMS5pZH0pYCk7CisKKyAgLy8gRW5zdXJl
IElEcyBhcmUgdW5pcXVlCisgIGlkcy5hZGQoZGMxLmlkLCBgQ2hhbm5lbCBJRCAke2RjMS5pZH0g
c2hvdWxkIGJlIHVuaXF1ZWApOworICBpZHMuYWRkKGRjMi5pZCwgYENoYW5uZWwgSUQgJHtkYzIu
aWR9IHNob3VsZCBiZSB1bmlxdWVgKTsKK30sICdEVExTIHNlcnZlciB1c2VzIGV2ZW4gZGF0YSBj
aGFubmVsIElEcycpOworCisvKgorICBDaGVja3MgdGhhdCB0aGUgaWQgaXMgaWdub3JlZCBpZiAi
bmVnb3RpYXRlZCIgaXMgZmFsc2UuCisgIFNlZSBzZWN0aW9uIDYuMSwgY3JlYXRlRGF0YUNoYW5u
ZWwgc3RlcCAxMy4KKyAqLworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNvbnN0IGRjMSA9IHBjMS5jcmVhdGVE
YXRhQ2hhbm5lbCgnJywgeworICAgIG5lZ290aWF0ZWQ6IGZhbHNlLAorICAgIGlkOiA0MgorICB9
KTsKKyAgZGMxLm9ub3BlbiA9IHQuc3RlcF9mdW5jKCgpID0+IHsKKyAgICBkYzEuc2VuZCgnOign
KTsKKyAgfSk7CisKKyAgY29uc3QgZGMyID0gcGMyLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7Cisg
ICAgbmVnb3RpYXRlZDogZmFsc2UsCisgICAgaWQ6IDQyCisgIH0pOworICAvLyBJRCBzaG91bGQg
YmUgbnVsbCBwcmlvciB0byBuZWdvdGlhdGlvbi4KKyAgYXNzZXJ0X2VxdWFscyhkYzEuaWQsIG51
bGwpOworICBhc3NlcnRfZXF1YWxzKGRjMi5pZCwgbnVsbCk7CisKKyAgZXhjaGFuZ2VJY2VDYW5k
aWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7
CisgIC8vIFdlIHNob3VsZCBub3cgaGF2ZSAyIGRhdGFjaGFubmVscyB3aXRoIGRpZmZlcmVudCBJ
RHMuCisgIC8vIEF0IGxlYXN0IG9uZSBvZiB0aGUgZGF0YWNoYW5uZWxzIHNob3VsZCBub3QgYmUg
NDIuCisgIC8vIElmIG9uZSBoYXMgdGhlIHZhbHVlIDQyLCBpdCdzIGFuIGFjY2lkZW50OyBpZiBi
b3RoIGhhdmUsCisgIC8vIHRoZXkgYXJlIHRoZSBzYW1lIGRhdGFjaGFubmVsLCBhbmQgaXQncyBh
IGJ1Zy4KKyAgYXNzZXJ0X2ZhbHNlKGRjMS5pZCA9PSA0MiAmJiBkYzIuaWQgPT0gNDIpOworfSwg
J0luLWJhbmQgbmVnb3RpYXRpb24gd2l0aCBhIHNwZWNpZmljIElEIHNob3VsZCBub3Qgd29yaycp
OworCisvKgorICBDaGVjayBpZiB0aGUgaW1wbGVtZW50YXRpb24gc3RpbGwgZm9sbG93cyB0aGUg
b2RkL2V2ZW4gcm9sZSBjb3JyZWN0bHkgaWYgd2UgYW5ub3kgaXQgd2l0aAorICBuZWdvdGlhdGVk
IGNoYW5uZWxzIG5vdCBmb2xsb3dpbmcgdGhhdCBydWxlLgorCisgIE5vdGU6IFRoaXMgdGVzdCBh
c3N1bWVzIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uIGNhbiBoYW5kbGUgYSBtaW5pbXVtIG9mIDQw
IGRhdGEgY2hhbm5lbHMuCisgKi8KK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAvLyBU
YWtlcyB0aGUgRFRMUyBzZXJ2ZXIgcm9sZQorICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgLy8gVGFrZXMgdGhlIERUTFMgY2xpZW50IHJvbGUKKyAgY29uc3QgcGMyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3Nl
KCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBleGNoYW5nZUlj
ZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBjb25zdCBkY3MgPSBbXTsKKyAgY29uc3QgbmVnb3Rp
YXRlZERjcyA9IFtdOworICBjb25zdCBpZHMgPSBuZXcgVW5pcXVlU2V0KCk7CisKKyAgLy8gQ3Jl
YXRlIDEwIERDRVAtbmVnb3RpYXRlZCBjaGFubmVscyB3aXRoIHBjMQorICAvLyBOb3RlOiBUaGVz
ZSBzaG91bGQgbm90IGhhdmUgYW55IGFzc29jaWF0ZWQgdmFsaWQgSUQgYXQgdGhpcyBwb2ludAor
ICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICBjb25zdCBkYyA9IHBjMS5jcmVh
dGVEYXRhQ2hhbm5lbCgnYmVmb3JlLWNvbm5lY3Rpb24nKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRj
LmlkLCBudWxsLCAnQ2hhbm5lbCBpZCBtdXN0IGJlIG51bGwgYmVmb3JlIERUTFMgcm9sZSBoYXMg
YmVlbiBkZXRlcm1pbmVkJyk7CisgICAgZGNzLnB1c2goZGMpOworICB9CisKKyAgLy8gQ3JlYXRl
IDEwIG5lZ290aWF0ZWQgY2hhbm5lbHMgd2l0aCBwYzEgdmlvbGF0aW5nIHRoZSBvZGQvZXZlbiBy
dWxlCisgIGZvciAobGV0IGlkID0gMDsgaWQgPCAyMDsgaWQgKz0gMikgeworICAgIGNvbnN0IGRj
ID0gcGMxLmNyZWF0ZURhdGFDaGFubmVsKGBuZWdvdGlhdGVkLW5vdC1vZGQtJHtpZH0tYmVmb3Jl
LWNvbm5lY3Rpb25gLCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAgICAgaWQ6IGlkLAor
ICAgIH0pOworICAgIGFzc2VydF9lcXVhbHMoZGMuaWQsIGlkLCAnQ2hhbm5lbCBpZCBtdXN0IGJl
IHNldCBiZWZvcmUgRFRMUyByb2xlIGhhcyBiZWVuIGRldGVybWluZWQgd2hlbiBuZWdvdGlhdGVk
IGlzIHRydWUnKTsKKyAgICBuZWdvdGlhdGVkRGNzLnB1c2goW2RjLCBpZF0pOworICAgIGlkcy5h
ZGQoZGMuaWQsIGBDaGFubmVsIElEICR7ZGMuaWR9IHNob3VsZCBiZSB1bmlxdWVgKTsKKyAgfQor
CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIsIHsKKyAgICBvZmZlcjogKG9m
ZmVyKSA9PiB7CisgICAgICAvLyBFbnN1cmUgcGMxIHRha2VzIHRoZSBzZXJ2ZXIgcm9sZQorICAg
ICAgYXNzZXJ0X3RydWUob2ZmZXIuc2RwLmluY2x1ZGVzKCdhY3RwYXNzJykgfHwgb2ZmZXIuc2Rw
LmluY2x1ZGVzKCdwYXNzaXZlJyksCisgICAgICAgICdwYzEgbXVzdCB0YWtlIHRoZSBEVExTIHNl
cnZlciByb2xlJyk7CisgICAgICByZXR1cm4gb2ZmZXI7CisgICAgfSwKKyAgICBhbnN3ZXI6IChh
bnN3ZXIpID0+IHsKKyAgICAgIC8vIEVuc3VyZSBwYzIgdGFrZXMgdGhlIGNsaWVudCByb2xlCisg
ICAgICAvLyBOb3RlOiBJdCB2ZXJ5IGxpa2VseSB3aWxsIGNob29zZSAnYWN0aXZlJyBpdHNlbGYK
KyAgICAgIGFuc3dlci5zZHAgPSBhbnN3ZXIuc2RwLnJlcGxhY2UoJ2FjdHBhc3MnLCAnYWN0aXZl
Jyk7CisgICAgICBhc3NlcnRfdHJ1ZShhbnN3ZXIuc2RwLmluY2x1ZGVzKCdhY3RpdmUnKSwgJ3Bj
MiBtdXN0IHRha2UgdGhlIERUTFMgY2xpZW50IHJvbGUnKTsKKyAgICAgIHJldHVybiBhbnN3ZXI7
CisgICAgfSwKKyAgfSk7CisKKyAgZm9yIChjb25zdCBkYyBvZiBkY3MpIHsKKyAgICBhc3NlcnRf
ZXF1YWxzKGRjLmlkICUgMiwgMSwKKyAgICAgIGBDaGFubmVsIGNyZWF0ZWQgYnkgdGhlIERUTFMg
c2VydmVyIHJvbGUgbXVzdCBiZSBvZGQgKHdhcyAke2RjLmlkfSlgKTsKKyAgICBpZHMuYWRkKGRj
LmlkLCBgQ2hhbm5lbCBJRCAke2RjLmlkfSBzaG91bGQgYmUgdW5pcXVlYCk7CisgIH0KKworICAv
LyBDcmVhdGUgMTAgY2hhbm5lbHMgd2l0aCBwYzEKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsg
KytpKSB7CisgICAgY29uc3QgZGMgPSBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2FmdGVyLWNvbm5l
Y3Rpb24nKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjLmlkICUgMiwgMSwKKyAgICAgIGBDaGFubmVs
IGNyZWF0ZWQgYnkgdGhlIERUTFMgc2VydmVyIHJvbGUgbXVzdCBiZSBvZGQgKHdhcyAke2RjLmlk
fSlgKTsKKyAgICBkY3MucHVzaChkYyk7CisgICAgaWRzLmFkZChkYy5pZCwgYENoYW5uZWwgSUQg
JHtkYy5pZH0gc2hvdWxkIGJlIHVuaXF1ZWApOworICB9CisKKyAgLy8gQ3JlYXRlIDEwIG5lZ290
aWF0ZWQgY2hhbm5lbHMgd2l0aCBwYzEgdmlvbGF0aW5nIHRoZSBvZGQvZXZlbiBydWxlCisgIGZv
ciAobGV0IGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgIC8vIEdlbmVyYXRlIGEgdmFsaWQgZXZl
biBJRCB0aGF0IGhhcyBub3QgYmVlbiB0YWtlbiwgeWV0LgorICAgIGxldCBpZCA9IDIwOworICAg
IHdoaWxlIChpZHMuaGFzKGlkKSkgeworICAgICAgaWQgKz0gMjsKKyAgICB9CisgICAgY29uc3Qg
ZGMgPSBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoYG5lZ290aWF0ZWQtbm90LW9kZC0ke2l9LWFmdGVy
LWNvbm5lY3Rpb25gLCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAgICAgaWQ6IGlkLAor
ICAgIH0pOworICAgIG5lZ290aWF0ZWREY3MucHVzaChbZGMsIGlkXSk7CisgICAgaWRzLmFkZChk
Yy5pZCwgYENoYW5uZWwgSUQgJHtkYy5pZH0gc2hvdWxkIGJlIHVuaXF1ZWApOworICB9CisKKyAg
Ly8gU2luY2Ugd2UndmUgYWRkZWQgbmV3IGNoYW5uZWxzLCBsZXQncyBjaGVjayBhZ2FpbiB0aGF0
IHRoZSBvZGQvZXZlbiByb2xlIGlzIG5vdCB2aW9sYXRlZAorICBmb3IgKGNvbnN0IGRjIG9mIGRj
cykgeworICAgIGFzc2VydF9lcXVhbHMoZGMuaWQgJSAyLCAxLAorICAgICAgYENoYW5uZWwgY3Jl
YXRlZCBieSB0aGUgRFRMUyBzZXJ2ZXIgcm9sZSBtdXN0IGJlIG9kZCAod2FzICR7ZGMuaWR9KWAp
OworICB9CisKKyAgLy8gTGV0J3MgYWxzbyBtYWtlIHN1cmUgdGhlIG5lZ290aWF0ZWQgY2hhbm5l
bHMgaGF2ZSBrZXB0IHRoZWlyIElECisgIGZvciAoY29uc3QgW2RjLCBpZF0gb2YgbmVnb3RpYXRl
ZERjcykgeworICAgIGFzc2VydF9lcXVhbHMoZGMuaWQsIGlkLCAnTmVnb3RpYXRlZCBjaGFubmVs
cyBzaG91bGQga2VlcCB0aGVpciBhc3NpZ25lZCBJRCcpOworICB9Cit9LCAnT2RkL2V2ZW4gcm9s
ZSBzaG91bGQgbm90IGJlIHZpb2xhdGVkIHdoZW4gbWl4aW5nIHdpdGggbmVnb3RpYXRlZCBjaGFu
bmVscycpOworCisvKgorICBDcmVhdGUgMzI3NjggKGNsaWVudCksIDMyNzY3IChzZXJ2ZXIpIGNo
YW5uZWxzIHRvIG1ha2Ugc3VyZSBhbGwgaWRzIGFyZSBleGhhdXN0ZWQgQUZURVIKKyAgZXN0YWJs
aXNoaW5nIGEgcGVlciBjb25uZWN0aW9uLgorCisgIDYuMS4gIGNyZWF0ZURhdGFDaGFubmVsCisg
ICAgMjEuIElmIHRoZSBbW0RhdGFDaGFubmVsSWRdXSBzbG90IGlzIG51bGwgKGR1ZSB0byBubyBJ
RCBiZWluZyBwYXNzZWQgaW50bworICAgICAgICBjcmVhdGVEYXRhQ2hhbm5lbCwgb3IgW1tOZWdv
dGlhdGVkXV0gYmVpbmcgZmFsc2UpLCBhbmQgdGhlIERUTFMgcm9sZSBvZiB0aGUgU0NUUAorICAg
ICAgICB0cmFuc3BvcnQgaGFzIGFscmVhZHkgYmVlbiBuZWdvdGlhdGVkLCB0aGVuIGluaXRpYWxp
emUgW1tEYXRhQ2hhbm5lbElkXV0gdG8gYSB2YWx1ZQorICAgICAgICBnZW5lcmF0ZWQgYnkgdGhl
IHVzZXIgYWdlbnQsIGFjY29yZGluZyB0byBbUlRDV0VCLURBVEEtUFJPVE9DT0xdLCBhbmQgc2tp
cAorICAgICAgICB0byB0aGUgbmV4dCBzdGVwLiBJZiBubyBhdmFpbGFibGUgSUQgY291bGQgYmUg
Z2VuZXJhdGVkLCBvciBpZiB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgIFtbRGF0YUNoYW5uZWxJ
ZF1dIHNsb3QgaXMgYmVpbmcgdXNlZCBieSBhbiBleGlzdGluZyBSVENEYXRhQ2hhbm5lbCwgdGhy
b3cgYW4KKyAgICAgICAgT3BlcmF0aW9uRXJyb3IgZXhjZXB0aW9uLgorICovCisvKgorIFRPRE86
IEltcHJvdmUgdGVzdCBjb3ZlcmFnZSBmb3IgUlRDU2N0cFRyYW5zcG9ydC5tYXhDaGFubmVscy4K
KyBUT0RPOiBJbXByb3ZlIHRlc3QgY292ZXJhZ2UgZm9yIGV4aGF1c3RpbmcgY2hhbm5lbCBjYXNl
cy4KKyAqLworCisvKgorICBDcmVhdGUgMzI3NjggKGNsaWVudCksIDMyNzY3IChzZXJ2ZXIpIGNo
YW5uZWxzIHRvIG1ha2Ugc3VyZSBhbGwgaWRzIGFyZSBleGhhdXN0ZWQgQkVGT1JFCisgIGVzdGFi
bGlzaGluZyBhIHBlZXIgY29ubmVjdGlvbi4KKworICBCZSBhd2FyZSB0aGF0IGxhdGUgY2hhbm5l
bCBpZCBhc3NpZ25tZW50IGNhbiBjdXJyZW50bHkgZmFpbCBpbiBtYW55IHBsYWNlcyBub3QgY292
ZXJlZCBieSB0aGUKKyAgc3BlYywgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1w
Yy9pc3N1ZXMvMTgxOAorCisgIDQuNC4xLjYuCisgICAgMi4yLjYuICBJZiBkZXNjcmlwdGlvbiBu
ZWdvdGlhdGVzIHRoZSBEVExTIHJvbGUgb2YgdGhlIFNDVFAgdHJhbnNwb3J0LCBhbmQgdGhlcmUg
aXMgYW4KKyAgICAgICAgICAgIFJUQ0RhdGFDaGFubmVsIHdpdGggYSBudWxsIGlkLCB0aGVuIGdl
bmVyYXRlIGFuIElEIGFjY29yZGluZyB0byBbUlRDV0VCLURBVEEtUFJPVE9DT0xdLgorICAgICAg
ICAgICAgSWYgbm8gYXZhaWxhYmxlIElEIGNvdWxkIGJlIGdlbmVyYXRlZCwgdGhlbiBydW4gdGhl
IGZvbGxvd2luZyBzdGVwczoKKyAgICAgIDEuICAgIExldCBjaGFubmVsIGJlIHRoZSBSVENEYXRh
Q2hhbm5lbCBvYmplY3QgZm9yIHdoaWNoIGFuIElEIGNvdWxkIG5vdCBiZSBnZW5lcmF0ZWQuCisg
ICAgICAyLiAgICBTZXQgY2hhbm5lbCdzIFtbUmVhZHlTdGF0ZV1dIHNsb3QgdG8gImNsb3NlZCIu
CisgICAgICAzLiAgICBGaXJlIGFuIGV2ZW50IG5hbWVkIGVycm9yIHdpdGggYW4gT3BlcmF0aW9u
RXJyb3IgZXhjZXB0aW9uIGF0IGNoYW5uZWwuCisgICAgICA0LiAgICBGaXJlIGEgc2ltcGxlIGV2
ZW50IG5hbWVkIGNsb3NlIGF0IGNoYW5uZWwuCisgKi8KKy8qIFRFU1QgRElTQUJMRUQgLSBpdCB0
YWtlcyBzbyBsb25nLCBpdCB0aW1lcyBvdXQuCitwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsK
KyAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKKyAgLy8gVGFrZXMgdGhlIERUTFMg
c2VydmVyIHJvbGUKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIC8v
IFRha2VzIHRoZSBEVExTIGNsaWVudCByb2xlCisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBj
MSwgcGMyKTsKKyAgY29uc3QgZGNzID0gW107CisgIGNvbnN0IGlkcyA9IG5ldyBVbmlxdWVTZXQo
KTsKKyAgbGV0IG5FeHBlY3RlZCA9IDA7CisgIGxldCBuQWN0dWFsQ2xvc2VzID0gMDsKKyAgbGV0
IG5BY3R1YWxFcnJvcnMgPSAwOworCisgIGNvbnN0IG1heWJlRG9uZSA9IHQuc3RlcF9mdW5jKCgp
ID0+IHsKKyAgICBpZiAobkV4cGVjdGVkID09PSBuQWN0dWFsQ2xvc2VzICYmIG5FeHBlY3RlZCA9
PT0gbkFjdHVhbEVycm9ycykgeworICAgICAgcmVzb2x2ZXIucmVzb2x2ZSgpOworICAgIH0KKyAg
fSk7CisKKyAgLy8gQ3JlYXRlIDY1NTM1KzIgY2hhbm5lbHMgKHNpbmNlIDY1NTM1IHN0cmVhbXMg
aXMgYSBTSE9VTEQsIHdlIG1heSBoYXZlIGxlc3MgdGhhbiB0aGF0LikKKyAgLy8gQ3JlYXRlIHR3
byBleHRyYSBjaGFubmVscyB0byBwb3NzaWJseSB0cmlnZ2VyIHRoZSBzdGVwcyBpbiB0aGUgZGVz
Y3JpcHRpb24uCisgIC8vCisgIC8vIE5vdGU6IEZvbGxvd2luZyB0aGUgc3BlYyBzdHJpY3RseSB3
b3VsZCBhc3N1bWUgdGhhdCB0aGlzIGNhbm5vdCBmYWlsLiBCdXQgaW4gcmVhbGl0eSBpdCB3aWxs
CisgIC8vICAgICAgIGZhaWwgYmVjYXVzZSB0aGUgaW1wbGVtZW50YXRpb24ga25vd3MgaG93IG1h
bnkgc3RyZWFtcyBpdCBzdXBwb3J0cy4gV2hhdCBpdCBkb2Vzbid0CisgIC8vICAgICAgIGtub3cg
aXMgaG93IG1hbnkgc3RyZWFtcyB0aGUgb3RoZXIgcGVlciBzdXBwb3J0cyAoZS5nLiB3aGF0IHdp
bGwgYmUgbmVnb3RpYXRlZCkuCisgIGZvciAobGV0IGkgPSAwOyBpIDwgKG5TdHJlYW1zICsgMik7
ICsraSkgeworICAgIGxldCBkYzsKKyAgICB0cnkgeworICAgICAgY29uc3QgcGMgPSBpICUgMiA9
PT0gMSA/IHBjMSA6IHBjMjsKKyAgICAgIGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3RoaXMg
aXMgZ29pbmcgdG8gYmUgZnVuJyk7CisgICAgICBkYy5vbmNsb3NlID0gdC5zdGVwX2Z1bmMoKCkg
PT4geworICAgICAgICArK25BY3R1YWxDbG9zZXM7CisgICAgICAgIG1heWJlRG9uZSgpOworICAg
ICAgfSk7CisgICAgICBkYy5vbmVycm9yID0gdC5zdGVwX2Z1bmMoKGUpID0+IHsKKyAgICAgICAg
YXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIFJUQ0Vycm9yLCAnRXhwZWN0IGVycm9yIG9iamVjdCB0
byBiZSBpbnN0YW5jZSBvZiBSVENFcnJvcicpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZXJy
b3IsICdzY3RwLWZhaWx1cmUnLCAiRXhwZWN0IGVycm9yIHRvIGJlIG9mIHR5cGUgJ3NjdHAtZmFp
bHVyZSciKTsKKyAgICAgICAgKytuQWN0dWFsRXJyb3JzOworICAgICAgICBtYXliZURvbmUoKTsK
KyAgICAgIH0pOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1l
LCAnT3BlcmF0aW9uRXJyb3InLCAnRmFpbCBvbiBjcmVhdGlvbiBzaG91bGQgdGhyb3cgT3BlcmF0
aW9uRXJyb3InKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBhc3NlcnRfZXF1YWxzKGRjLmlk
LCBudWxsLCAnQ2hhbm5lbCBpZCBtdXN0IGJlIG51bGwgYmVmb3JlIERUTFMgcm9sZSBoYXMgYmVl
biBkZXRlcm1pbmVkJyk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMoZGMucmVhZHlTdGF0ZSwgJ2Ns
b3NlZCcsCisgICAgICAnQ2hhbm5lbCBtYXkgbm90IGJlIGNsb3NlZCBiZWZvcmUgY29ubmVjdGlv
biBlc3RhYmxpc2htZW50Jyk7CisgICAgZGNzLnB1c2goW2RjLCBpICUgMiA9PT0gMV0pOworICB9
CisKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMiwgeworICAgIG9mZmVyOiAo
b2ZmZXIpID0+IHsKKyAgICAgIC8vIEVuc3VyZSBwYzEgdGFrZXMgdGhlIHNlcnZlciByb2xlCisg
ICAgICBhc3NlcnRfdHJ1ZShvZmZlci5zZHAuaW5jbHVkZXMoJ2FjdHBhc3MnKSB8fCBvZmZlci5z
ZHAuaW5jbHVkZXMoJ3Bhc3NpdmUnKSwKKyAgICAgICAgJ3BjMSBtdXN0IHRha2UgdGhlIERUTFMg
c2VydmVyIHJvbGUnKTsKKyAgICAgIHJldHVybiBvZmZlcjsKKyAgICB9LAorICAgIGFuc3dlcjog
KGFuc3dlcikgPT4geworICAgICAgLy8gRW5zdXJlIHBjMiB0YWtlcyB0aGUgY2xpZW50IHJvbGUK
KyAgICAgIC8vIE5vdGU6IEl0IHZlcnkgbGlrZWx5IHdpbGwgY2hvb3NlICdhY3RpdmUnIGl0c2Vs
ZgorICAgICAgYW5zd2VyLnNkcCA9IGFuc3dlci5zZHAucmVwbGFjZSgnYWN0cGFzcycsICdhY3Rp
dmUnKTsKKyAgICAgIGFzc2VydF90cnVlKGFuc3dlci5zZHAuaW5jbHVkZXMoJ2FjdGl2ZScpLCAn
cGMyIG11c3QgdGFrZSB0aGUgRFRMUyBjbGllbnQgcm9sZScpOworICAgICAgcmV0dXJuIGFuc3dl
cjsKKyAgICB9LAorICB9KTsKKworICAvLyBTaW5jZSB0aGUgc3BlYyBkb2VzIG5vdCBkZWZpbmUg
YSBzcGVjaWZpYyBvcmRlciB0byB3aGljaCBjaGFubmVscyBtYXkgZmFpbCBpZiBhbiBJRCBjb3Vs
ZAorICAvLyBub3QgYmUgZ2VuZXJhdGVkLCBhbnkgb2YgdGhlIGNoYW5uZWxzIG1heSBiZSBhZmZl
Y3RlZCBieSB0aGUgc3RlcHMgb2YgdGhlIGRlc2NyaXB0aW9uLgorICBmb3IgKGNvbnN0IFtkYywg
b2RkXSBvZiBkY3MpIHsKKyAgICBpZiAoZGMucmVhZHlTdGF0ZSAhPT0gJ2Nsb3NlZCcpIHsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoZGMuaWQgJSAyLCBvZGQgPyAxIDogMCwKKyAgICAgICAgYENoYW5u
ZWxzIGNyZWF0ZWQgYnkgdGhlIERUTFMgJHtvZGQgPyAnc2VydmVyJyA6ICdjbGllbnQnfSByb2xl
IG11c3QgYmUKKyAgICAgICAgJHtvZGQgPyAnb2RkJyA6ICdldmVuJ30gKHdhcyAke2RjLmlkfSlg
KTsKKyAgICAgIGlkcy5hZGQoZGMuaWQsIGBDaGFubmVsIElEICR7ZGMuaWR9IHNob3VsZCBiZSB1
bmlxdWVgKTsKKyAgICB9IGVsc2UgeworICAgICAgKytuRXhwZWN0ZWQ7CisgICAgfQorICB9CisK
KyAgLy8gVHJ5IGNyZWF0aW5nIG9uZSBmdXJ0aGVyIGNoYW5uZWwgb24gYm90aCBzaWRlcy4gVGhl
IGF0dGVtcHQgc2hvdWxkIGZhaWwgc2luY2UgYWxsIElEcyBhcmUKKyAgLy8gdGFrZW4uIElmIG9u
ZSBJRCBpcyBhdmFpbGFibGUsIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm9iYWJseSBtaXNjb3VudHMg
KG9yIEkgZGlkIGluIHRoZSB0ZXN0KS4KKyAgYXNzZXJ0X3Rocm93c19kb20oJ09wZXJhdGlvbkVy
cm9yJywgKCkgPT4KKyAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ3RoaXMgaXMgdG9vIGV4aGF1
c3RpbmchJykpOworICBhc3NlcnRfdGhyb3dzX2RvbSgnT3BlcmF0aW9uRXJyb3InLCAoKSA9Pgor
ICAgIHBjMi5jcmVhdGVEYXRhQ2hhbm5lbCgndGhpcyBpcyB0b28gZXhoYXVzdGluZyEnKSk7CisK
KyAgbWF5YmVEb25lKCk7CisgIGF3YWl0IHJlc29sdmVyOworfSwgJ0NoYW5uZWwgSUQgZXhoYXVz
dGlvbiBoYW5kbGluZyAoYmVmb3JlIGFuZCBhZnRlciBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQp
Jyk7CisKK0VORCBESVNBQkxFRCBURVNUICovCiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNo
YW5uZWwtc2VuZC1ibG9iLW9yZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQtYmxvYi1v
cmRlci1leHBlY3RlZC50eHQKaW5kZXggZTM4NzEwZjcwZTM1NTU0MGU3ZTI3YzYwZjllY2E5NWNm
YjgzN2I3OS4uNjM3MDIyZmI3NmYxMWRmNTU5ZTY1Y2QyNGE1MDkzN2I1YjE4NzNlMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtc2VuZC1ibG9iLW9yZGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5l
bC1zZW5kLWJsb2Itb3JkZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAogCi1QQVNTIERh
dGEgY2hhbm5lbCBzaG91bGQgc2VuZCBkYXRhIGZvbGxvd2luZyB0aGUgb3JkZXIgb2YgdGhlIHNl
bmQgY2FsbCAKK1BBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIHNlbmQgZGF0YSBmb2xsb3dpbmcgdGhl
IG9yZGVyIG9mIHRoZSBzZW5kIGNhbGwgCitQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hv
dWxkIHNlbmQgZGF0YSBmb2xsb3dpbmcgdGhlIG9yZGVyIG9mIHRoZSBzZW5kIGNhbGwgCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQtYmxvYi1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1i
bG9iLW9yZGVyLmh0bWwKaW5kZXggMjM4NTQwOGNjYjU1ZTRhNGEyNDZjYTllYTZjN2YzYWIzNDE5
MjBiNS4uM2ZjZjExNmJjOGQwNTAzNmJjMDcxMzZhZDcyYjM0MzBiNDg1MjQ5NyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtc2VuZC1ibG9iLW9yZGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1ibG9i
LW9yZGVyLmh0bWwKQEAgLTUsMzMgKzUsMjcgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVj
dGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKLSAgICBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVs
UGFpcigpOwogCi0gICAgbGV0IGRvbmU7Ci0gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gZG9uZSA9IHJlc29sdmUpOworZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwg
e25lZ290aWF0ZWQ6IHRydWUsIGlkOiAwfV0pIHsKKyAgY29uc3QgbW9kZSA9IGAke29wdGlvbnMu
bmVnb3RpYXRlZD8gIk5lZ290aWF0ZWQgZCIgOiAiRCJ9YXRhY2hhbm5lbGA7CiAKKyAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IGRhdGExID0gbmV3IEJsb2IoWydibG9iJ10p
OwogICAgIGNvbnN0IGRhdGExU2l6ZSA9IGRhdGExLnNpemU7CiAgICAgY29uc3QgZGF0YTIgPSBu
ZXcgQXJyYXlCdWZmZXIoOCk7CiAgICAgY29uc3QgZGF0YTJTaXplID0gZGF0YTIuYnl0ZUxlbmd0
aDsKIAotICAgIGxldCBmaXJzdE1lc3NhZ2UgPSB0cnVlOwotCisgICAgY29uc3QgW2NoYW5uZWwx
LCBjaGFubmVsMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucyk7CiAg
ICAgY2hhbm5lbDIuYmluYXJ5VHlwZSA9ICJhcnJheWJ1ZmZlciI7Ci0gICAgY2hhbm5lbDIub25t
ZXNzYWdlID0gdC5zdGVwX2Z1bmMoKGUpID0+IHsKLSAgICAgICAgaWYgKGZpcnN0TWVzc2FnZSkg
ewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuYnl0ZUxlbmd0aCwgZGF0YTFTaXpl
KTsKLSAgICAgICAgICAgIGZpcnN0TWVzc2FnZSA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmJ5dGVMZW5ndGgsIGRh
dGEyU2l6ZSk7Ci0gICAgICAgIGRvbmUoKTsKLSAgICB9KTsKIAogICAgIGNoYW5uZWwxLnNlbmQo
ZGF0YTEpOwogICAgIGNoYW5uZWwxLnNlbmQoZGF0YTIpOwogCi0gICAgcmV0dXJuIHByb21pc2U7
Ci19LCAnRGF0YSBjaGFubmVsIHNob3VsZCBzZW5kIGRhdGEgZm9sbG93aW5nIHRoZSBvcmRlciBv
ZiB0aGUgc2VuZCBjYWxsJyk7CisgICAgbGV0IGUgPSBhd2FpdCBuZXcgUHJvbWlzZShyID0+IGNo
YW5uZWwyLm9ubWVzc2FnZSA9IHIpOworICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmJ5dGVMZW5n
dGgsIGRhdGExU2l6ZSk7CisKKyAgICBlID0gYXdhaXQgbmV3IFByb21pc2UociA9PiBjaGFubmVs
Mi5vbm1lc3NhZ2UgPSByKTsKKyAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5ieXRlTGVuZ3RoLCBk
YXRhMlNpemUpOworICB9LCBgJHttb2RlfSBzaG91bGQgc2VuZCBkYXRhIGZvbGxvd2luZyB0aGUg
b3JkZXIgb2YgdGhlIHNlbmQgY2FsbGApOworfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbC1zZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQtZXhwZWN0ZWQudHh0CmluZGV4
IGE0OGUzZjJhZmU1YWFiZTMxOGQ4MDM1NjMzZTUzZjkxNDBjZTkwZTguLmE1M2ViMDE1ODdiNWVl
NzFmZTU4OTVmNTYzNWNjZGUzMDBhYjI0ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQtZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDIz
IEBACiAKIFBBU1MgQ2FsbGluZyBzZW5kKCkgd2hlbiBkYXRhIGNoYW5uZWwgaXMgaW4gY29ubmVj
dGluZyBzdGF0ZSBzaG91bGQgdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgCi1QQVNTIERhdGEgY2hh
bm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHNpbXBsZSBzdHJpbmcgYW5kIHJlY2VpdmUgYXMg
c3RyaW5nIAotUEFTUyBEYXRhIGNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCB1bmljb2Rl
IHN0cmluZyBhbmQgcmVjZWl2ZSBhcyB1bmljb2RlIHN0cmluZyAKLVBBU1MgRGF0YSBjaGFubmVs
IHNob3VsZCBpZ25vcmUgYmluYXJ5VHlwZSBhbmQgYWx3YXlzIHJlY2VpdmUgc3RyaW5nIG1lc3Nh
Z2UgYXMgc3RyaW5nIAotUEFTUyBEYXRhIGNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBV
aW50OEFycmF5IG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIgCi1QQVNTIERhdGEg
Y2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJl
Y2VpdmUgYXMgQXJyYXlCdWZmZXIgCi1QQVNTIERhdGEgY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0
byBzZW5kIEJsb2IgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlciAKLVBBU1MgRGF0
YSBjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQg
cmVjZWl2ZSBhcyBCbG9iIAotRkFJTCBEYXRhIGNoYW5uZWwgYmluYXJ5VHlwZSBzaG91bGQgcmVj
ZWl2ZSBtZXNzYWdlIGFzIEJsb2IgYnkgZGVmYXVsdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgaW5p
dGlhbCBiaW5hcnlUeXBlIHZhbHVlIHRvIGJlIGJsb2IgZXhwZWN0ZWQgImJsb2IiIGJ1dCBnb3Qg
ImFycmF5YnVmZmVyIgotUEFTUyBTZW5kaW5nIG11bHRpcGxlIG1lc3NhZ2VzIHdpdGggZGlmZmVy
ZW50IHR5cGVzIHNob3VsZCBzdWNjZWVkIGFuZCBiZSByZWNlaXZlZCAKK1BBU1MgRGF0YWNoYW5u
ZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBzaW1wbGUgc3RyaW5nIGFuZCByZWNlaXZlIGFzIHN0
cmluZyAKK1BBU1MgRGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCB1bmljb2RlIHN0
cmluZyBhbmQgcmVjZWl2ZSBhcyB1bmljb2RlIHN0cmluZyAKK1BBU1MgRGF0YWNoYW5uZWwgc2hv
dWxkIGlnbm9yZSBiaW5hcnlUeXBlIGFuZCBhbHdheXMgcmVjZWl2ZSBzdHJpbmcgbWVzc2FnZSBh
cyBzdHJpbmcgCitQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgVWludDhB
cnJheSBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyIAorUEFTUyBEYXRhY2hhbm5l
bCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUg
YXMgQXJyYXlCdWZmZXIgCitQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQg
QmxvYiBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyIAorUEFTUyBEYXRhY2hhbm5l
bCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUg
YXMgQmxvYiAKK0ZBSUwgRGF0YWNoYW5uZWwgYmluYXJ5VHlwZSBzaG91bGQgcmVjZWl2ZSBtZXNz
YWdlIGFzIEJsb2IgYnkgZGVmYXVsdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgaW5pdGlhbCBiaW5h
cnlUeXBlIHZhbHVlIHRvIGJlIGJsb2IgZXhwZWN0ZWQgImJsb2IiIGJ1dCBnb3QgImFycmF5YnVm
ZmVyIgorUEFTUyBEYXRhY2hhbm5lbCBzZW5kaW5nIG11bHRpcGxlIG1lc3NhZ2VzIHdpdGggZGlm
ZmVyZW50IHR5cGVzIHNob3VsZCBzdWNjZWVkIGFuZCBiZSByZWNlaXZlZCAKK0ZBSUwgRGF0YWNo
YW5uZWwgc2VuZCgpIHVwIHRvIG1heCBzaXplIHNob3VsZCBzdWNjZWVkLCBhYm92ZSBtYXggc2l6
ZSBzaG91bGQgZmFpbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdwYzEuc2N0cC5tYXhNZXNzYWdlU2l6ZScpIgorUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFu
bmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgc2ltcGxlIHN0cmluZyBhbmQgcmVjZWl2ZSBhcyBz
dHJpbmcgCitQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2Vu
ZCB1bmljb2RlIHN0cmluZyBhbmQgcmVjZWl2ZSBhcyB1bmljb2RlIHN0cmluZyAKK1BBU1MgTmVn
b3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgaWdub3JlIGJpbmFyeVR5cGUgYW5kIGFsd2F5cyBy
ZWNlaXZlIHN0cmluZyBtZXNzYWdlIGFzIHN0cmluZyAKK1BBU1MgTmVnb3RpYXRlZCBkYXRhY2hh
bm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIFVpbnQ4QXJyYXkgbWVzc2FnZSBhbmQgcmVjZWl2
ZSBhcyBBcnJheUJ1ZmZlciAKK1BBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUg
YWJsZSB0byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZm
ZXIgCitQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBC
bG9iIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXIgCitQQVNTIE5lZ290aWF0ZWQg
ZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFu
ZCByZWNlaXZlIGFzIEJsb2IgCitGQUlMIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgYmluYXJ5VHlw
ZSBzaG91bGQgcmVjZWl2ZSBtZXNzYWdlIGFzIEJsb2IgYnkgZGVmYXVsdCBhc3NlcnRfZXF1YWxz
OiBFeHBlY3QgaW5pdGlhbCBiaW5hcnlUeXBlIHZhbHVlIHRvIGJlIGJsb2IgZXhwZWN0ZWQgImJs
b2IiIGJ1dCBnb3QgImFycmF5YnVmZmVyIgorUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNl
bmRpbmcgbXVsdGlwbGUgbWVzc2FnZXMgd2l0aCBkaWZmZXJlbnQgdHlwZXMgc2hvdWxkIHN1Y2Nl
ZWQgYW5kIGJlIHJlY2VpdmVkIAorRkFJTCBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNlbmQoKSB1
cCB0byBtYXggc2l6ZSBzaG91bGQgc3VjY2VlZCwgYWJvdmUgbWF4IHNpemUgc2hvdWxkIGZhaWwg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAncGMxLnNjdHAu
bWF4TWVzc2FnZVNpemUnKSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNo
YW5uZWwtc2VuZC5odG1sCmluZGV4IGNiOGI0ZWRjM2ZhZTE1MDFmZTdlNzE3NjE1ZDYwY2I1NGFj
MDAzYzEuLjE5NTI5MjFmYmYyNmYyYzZlOTU0NjAwMGExZTk4NDNiNDQwODI0ZTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0RhdGFDaGFubmVsLXNlbmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwKQEAgLTEsNjAg
KzEsNjQgQEAKIDwhZG9jdHlwZSBodG1sPgogPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5h
bWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHRpdGxlPlJUQ0RhdGFDaGFubmVsLnByb3Rv
dHlwZS5zZW5kPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIC8vIFRlc3QgaXMgYmFzZWQg
b24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6Ci0gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5p
by93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKLQotICAvLyBUaGUgZm9s
bG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9u
LWhlbHBlci5qczoKLSAgLy8gIGNyZWF0ZURhdGFDaGFubmVsUGFpcgotICAvLyAgYXdhaXRNZXNz
YWdlCi0gIC8vICBibG9iVG9BcnJheUJ1ZmZlcgotICAvLyAgYXNzZXJ0X2VxdWFsc190eXBlZF9h
cnJheQotCi0gIC8qCi0gICAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKLSAgICAgIGludGVyZmFjZSBS
VENEYXRhQ2hhbm5lbCA6IEV2ZW50VGFyZ2V0IHsKLSAgICAgICAgLi4uCi0gICAgICAgIHJlYWRv
bmx5ICBhdHRyaWJ1dGUgUlRDRGF0YUNoYW5uZWxTdGF0ZSByZWFkeVN0YXRlOwotICAgICAgICBy
ZWFkb25seSAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgICAgICAgYnVmZmVyZWRBbW91bnQ7Ci0g
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyICAgICAgICBvbm1lc3NhZ2U7
Ci0gICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICBiaW5hcnlU
eXBlOwotCi0gICAgICAgIHZvaWQgc2VuZChVU1ZTdHJpbmcgZGF0YSk7Ci0gICAgICAgIHZvaWQg
c2VuZChCbG9iIGRhdGEpOwotICAgICAgICB2b2lkIHNlbmQoQXJyYXlCdWZmZXIgZGF0YSk7Ci0g
ICAgICAgIHZvaWQgc2VuZChBcnJheUJ1ZmZlclZpZXcgZGF0YSk7Ci0gICAgICB9OwotICAgKi8K
LQotICAvLyBTaW1wbGUgQVNDSUkgZW5jb2RlZCBzdHJpbmcKLSAgY29uc3QgaGVsbG9TdHJpbmcg
PSAnaGVsbG8nOwotICAvLyBBU0NJSSBlbmNvZGVkIGJ1ZmZlciByZXByZXNlbnRhdGlvbiBvZiB0
aGUgc3RyaW5nCi0gIGNvbnN0IGhlbGxvQnVmZmVyID0gVWludDhBcnJheS5vZigweDY4LCAweDY1
LCAweDZjLCAweDZjLCAweDZmKTsKLSAgY29uc3QgaGVsbG9CbG9iID0gbmV3IEJsb2IoW2hlbGxv
QnVmZmVyXSk7Ci0KLSAgLy8gVW5pY29kZSBzdHJpbmcgd2l0aCBtdWx0aXBsZSBjb2RlIHVuaXRz
Ci0gIGNvbnN0IHVuaWNvZGVTdHJpbmcgPSAn5LiW55WM5L2g5aW9JzsKLSAgLy8gVVRGLTggZW5j
b2RlZCBidWZmZXIgcmVwcmVzZW50YXRpb24gb2YgdGhlIHN0cmluZwotICBjb25zdCB1bmljb2Rl
QnVmZmVyID0gVWludDhBcnJheS5vZigKLSAgICAweGU0LCAweGI4LCAweDk2LCAweGU3LCAweDk1
LCAweDhjLAotICAgIDB4ZTQsIDB4YmQsIDB4YTAsIDB4ZTUsIDB4YTUsIDB4YmQpOwotCi0gIC8q
Ci0gICAgICA2LjIuICBzZW5kKCkKLSAgICAgICAgMi4gIElmIGNoYW5uZWwncyByZWFkeVN0YXRl
IGF0dHJpYnV0ZSBpcyBjb25uZWN0aW5nLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvci4KLSAg
ICovCi0gIHRlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKLSAgICBjb25zdCBjaGFubmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwucmVhZHlTdGF0ZSwgJ2Nvbm5lY3RpbmcnKTsKLSAgICBh
c3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGNoYW5uZWwuc2VuZChoZWxs
b1N0cmluZykpOwotICB9LCAnQ2FsbGluZyBzZW5kKCkgd2hlbiBkYXRhIGNoYW5uZWwgaXMgaW4g
Y29ubmVjdGluZyBzdGF0ZSBzaG91bGQgdGhyb3cgSW52YWxpZFN0YXRlRXJyb3InKTsKKyd1c2Ug
c3RyaWN0JzsKKworLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFm
dDoKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUv
d2VicnRjLmh0bWwKKworLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxs
ZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6CisvLyAgY3JlYXRlRGF0YUNoYW5u
ZWxQYWlyCisvLyAgYXdhaXRNZXNzYWdlCisvLyAgYmxvYlRvQXJyYXlCdWZmZXIKKy8vICBhc3Nl
cnRfZXF1YWxzX3R5cGVkX2FycmF5CisKKy8qCisgIDYuMi4gIFJUQ0RhdGFDaGFubmVsCisgICAg
aW50ZXJmYWNlIFJUQ0RhdGFDaGFubmVsIDogRXZlbnRUYXJnZXQgeworICAgICAgLi4uCisgICAg
ICByZWFkb25seSAgYXR0cmlidXRlIFJUQ0RhdGFDaGFubmVsU3RhdGUgcmVhZHlTdGF0ZTsKKyAg
ICAgIHJlYWRvbmx5ICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICAgICBidWZmZXJlZEFtb3Vu
dDsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyICAgICAgICBvbm1lc3Nh
Z2U7CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgICAgYmluYXJ5
VHlwZTsKKworICAgICAgdm9pZCBzZW5kKFVTVlN0cmluZyBkYXRhKTsKKyAgICAgIHZvaWQgc2Vu
ZChCbG9iIGRhdGEpOworICAgICAgdm9pZCBzZW5kKEFycmF5QnVmZmVyIGRhdGEpOworICAgICAg
dm9pZCBzZW5kKEFycmF5QnVmZmVyVmlldyBkYXRhKTsKKyAgICB9OworICovCisKKy8vIFNpbXBs
ZSBBU0NJSSBlbmNvZGVkIHN0cmluZworY29uc3QgaGVsbG9TdHJpbmcgPSAnaGVsbG8nOworLy8g
QVNDSUkgZW5jb2RlZCBidWZmZXIgcmVwcmVzZW50YXRpb24gb2YgdGhlIHN0cmluZworY29uc3Qg
aGVsbG9CdWZmZXIgPSBVaW50OEFycmF5Lm9mKDB4NjgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmYp
OworY29uc3QgaGVsbG9CbG9iID0gbmV3IEJsb2IoW2hlbGxvQnVmZmVyXSk7CisKKy8vIFVuaWNv
ZGUgc3RyaW5nIHdpdGggbXVsdGlwbGUgY29kZSB1bml0cworY29uc3QgdW5pY29kZVN0cmluZyA9
ICfkuJbnlYzkvaDlpb0nOworLy8gVVRGLTggZW5jb2RlZCBidWZmZXIgcmVwcmVzZW50YXRpb24g
b2YgdGhlIHN0cmluZworY29uc3QgdW5pY29kZUJ1ZmZlciA9IFVpbnQ4QXJyYXkub2YoCisgIDB4
ZTQsIDB4YjgsIDB4OTYsIDB4ZTcsIDB4OTUsIDB4OGMsCisgIDB4ZTQsIDB4YmQsIDB4YTAsIDB4
ZTUsIDB4YTUsIDB4YmQpOworCisvKgorICAgIDYuMi4gIHNlbmQoKQorICAgICAgMi4gIElmIGNo
YW5uZWwncyByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBjb25uZWN0aW5nLCB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvci4KKyAqLwordGVzdCh0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgY2hhbm5lbCA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCd0
ZXN0Jyk7CisgIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5yZWFkeVN0YXRlLCAnY29ubmVjdGluZycp
OworICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBjaGFubmVs
LnNlbmQoaGVsbG9TdHJpbmcpKTsKK30sICdDYWxsaW5nIHNlbmQoKSB3aGVuIGRhdGEgY2hhbm5l
bCBpcyBpbiBjb25uZWN0aW5nIHN0YXRlIHNob3VsZCB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvcicp
OworCitmb3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9
XSkgeworICBjb25zdCBtb2RlID0gYCR7b3B0aW9ucy5uZWdvdGlhdGVkPyAiTmVnb3RpYXRlZCBk
IiA6ICJEIn1hdGFjaGFubmVsYDsKIAogICAvKgogICAgIDYuMi4gIHNlbmQoKQpAQCAtNzEsNyAr
NzUsNyBAQAogICAgICAgICAgICAgYXR0cmlidXRlIHRvIGRhdGEuCiAgICAqLwogICBwcm9taXNl
X3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcigpCisgICAgcmV0
dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKQogICAgIC50aGVuKChbY2hhbm5l
bDEsIGNoYW5uZWwyXSkgPT4gewogICAgICAgY2hhbm5lbDEuc2VuZChoZWxsb1N0cmluZyk7CiAg
ICAgICByZXR1cm4gYXdhaXRNZXNzYWdlKGNoYW5uZWwyKQpAQCAtODEsMTAgKzg1LDEwIEBACiAK
ICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgaGVsbG9TdHJpbmcpOwogICAgIH0pOwotICB9
LCAnRGF0YSBjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgc2ltcGxlIHN0cmluZyBhbmQg
cmVjZWl2ZSBhcyBzdHJpbmcnKTsKKyAgfSwgYCR7bW9kZX0gc2hvdWxkIGJlIGFibGUgdG8gc2Vu
ZCBzaW1wbGUgc3RyaW5nIGFuZCByZWNlaXZlIGFzIHN0cmluZ2ApOwogCiAgIHByb21pc2VfdGVz
dCh0ID0+IHsKLSAgICByZXR1cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKCkKKyAgICByZXR1cm4g
Y3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpCiAgICAgLnRoZW4oKFtjaGFubmVsMSwg
Y2hhbm5lbDJdKSA9PiB7CiAgICAgICBjaGFubmVsMS5zZW5kKHVuaWNvZGVTdHJpbmcpOwogICAg
ICAgcmV0dXJuIGF3YWl0TWVzc2FnZShjaGFubmVsMikKQEAgLTk0LDkgKzk4LDkgQEAKIAogICAg
ICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLCB1bmljb2RlU3RyaW5nKTsKICAgICB9KTsKLSAgfSwg
J0RhdGEgY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHVuaWNvZGUgc3RyaW5nIGFuZCBy
ZWNlaXZlIGFzIHVuaWNvZGUgc3RyaW5nJyk7CisgIH0sIGAke21vZGV9IHNob3VsZCBiZSBhYmxl
IHRvIHNlbmQgdW5pY29kZSBzdHJpbmcgYW5kIHJlY2VpdmUgYXMgdW5pY29kZSBzdHJpbmdgKTsK
ICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIo
KQorICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucykKICAgICAudGhl
bigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsKICAgICAgIGNoYW5uZWwyLmJpbmFyeVR5cGUg
PSAnYXJyYXlidWZmZXInOwogICAgICAgY2hhbm5lbDEuc2VuZChoZWxsb1N0cmluZyk7CkBAIC0x
MDcsNyArMTExLDcgQEAKIAogICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLCBoZWxsb1N0cmlu
Zyk7CiAgICAgfSk7Ci0gIH0sICdEYXRhIGNoYW5uZWwgc2hvdWxkIGlnbm9yZSBiaW5hcnlUeXBl
IGFuZCBhbHdheXMgcmVjZWl2ZSBzdHJpbmcgbWVzc2FnZSBhcyBzdHJpbmcnKTsKKyAgfSwgYCR7
bW9kZX0gc2hvdWxkIGlnbm9yZSBiaW5hcnlUeXBlIGFuZCBhbHdheXMgcmVjZWl2ZSBzdHJpbmcg
bWVzc2FnZSBhcyBzdHJpbmdgKTsKIAogICAvKgogICAgIDYuMi4gc2VuZCgpCkBAIC0xMzEsNyAr
MTM1LDcgQEAKICAgICAgICAgRmxvYXQzMkFycmF5IG9yIEZsb2F0NjRBcnJheSBvciBEYXRhVmll
dykgQXJyYXlCdWZmZXJWaWV3OwogICAgKi8KICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJl
dHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIoKQorICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5l
bFBhaXIodCwgb3B0aW9ucykKICAgICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsK
ICAgICAgIGNoYW5uZWwyLmJpbmFyeVR5cGUgPSAnYXJyYXlidWZmZXInOwogICAgICAgY2hhbm5l
bDEuc2VuZChoZWxsb0J1ZmZlcik7CkBAIC0xNDIsNyArMTQ2LDcgQEAKIAogICAgICAgYXNzZXJ0
X2VxdWFsc190eXBlZF9hcnJheShtZXNzYWdlQnVmZmVyLCBoZWxsb0J1ZmZlci5idWZmZXIpOwog
ICAgIH0pOwotICB9LCAnRGF0YSBjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgVWludDhB
cnJheSBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyJyk7CisgIH0sIGAke21vZGV9
IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgVWludDhBcnJheSBtZXNzYWdlIGFuZCByZWNlaXZlIGFz
IEFycmF5QnVmZmVyYCk7CiAKICAgLyoKICAgICA2LjIuIHNlbmQoKQpAQCAtMTUzLDcgKzE1Nyw3
IEBACiAgICAgICAgICAgICBBcnJheUJ1ZmZlciBpbiBieXRlcy4KICAgICovCiAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKLSAgICByZXR1cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKCkKKyAgICByZXR1
cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpCiAgICAgLnRoZW4oKFtjaGFubmVs
MSwgY2hhbm5lbDJdKSA9PiB7CiAgICAgICBjaGFubmVsMi5iaW5hcnlUeXBlID0gJ2FycmF5YnVm
ZmVyJzsKICAgICAgIGNoYW5uZWwxLnNlbmQoaGVsbG9CdWZmZXIuYnVmZmVyKTsKQEAgLTE2NCw3
ICsxNjgsNyBAQAogCiAgICAgICBhc3NlcnRfZXF1YWxzX3R5cGVkX2FycmF5KG1lc3NhZ2VCdWZm
ZXIsIGhlbGxvQnVmZmVyLmJ1ZmZlcik7CiAgICAgfSk7Ci0gIH0sICdEYXRhIGNoYW5uZWwgc2hv
dWxkIGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFy
cmF5QnVmZmVyJyk7CisgIH0sIGAke21vZGV9IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlC
dWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcmApOwogCiAgIC8qCiAgICAg
Ni4yLiBzZW5kKCkKQEAgLTE3NCw3ICsxNzgsNyBAQAogICAgICAgICAgICAgdGhlIGJ1ZmZlcmVk
QW1vdW50IGF0dHJpYnV0ZSBieSB0aGUgc2l6ZSBvZiBkYXRhLCBpbiBieXRlcy4KICAgICovCiAg
IHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKCkK
KyAgICByZXR1cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpCiAgICAgLnRoZW4o
KFtjaGFubmVsMSwgY2hhbm5lbDJdKSA9PiB7CiAgICAgICBjaGFubmVsMi5iaW5hcnlUeXBlID0g
J2FycmF5YnVmZmVyJzsKICAgICAgIGNoYW5uZWwxLnNlbmQoaGVsbG9CbG9iKTsKQEAgLTE4NSw3
ICsxODksNyBAQAogCiAgICAgICBhc3NlcnRfZXF1YWxzX3R5cGVkX2FycmF5KG1lc3NhZ2VCdWZm
ZXIsIGhlbGxvQnVmZmVyLmJ1ZmZlcik7CiAgICAgfSk7Ci0gIH0sICdEYXRhIGNoYW5uZWwgc2hv
dWxkIGJlIGFibGUgdG8gc2VuZCBCbG9iIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZm
ZXInKTsKKyAgfSwgYCR7bW9kZX0gc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBCbG9iIG1lc3NhZ2Ug
YW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXJgKTsKIAogICAvKgogICAgIFtXZWJTb2NrZXRdCkBA
IC0xOTUsNyArMTk5LDcgQEAKICAgICAgICAgICAgIHRvIGEgbmV3IEJsb2Igb2JqZWN0IHRoYXQg
cmVwcmVzZW50cyBkYXRhIGFzIGl0cyByYXcgZGF0YS4KICAgICovCiAgIHByb21pc2VfdGVzdCh0
ID0+IHsKLSAgICByZXR1cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKCkKKyAgICByZXR1cm4gY3Jl
YXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpCiAgICAgLnRoZW4oKFtjaGFubmVsMSwgY2hh
bm5lbDJdKSA9PiB7CiAgICAgICBjaGFubmVsMi5iaW5hcnlUeXBlID0gJ2Jsb2InOwogICAgICAg
Y2hhbm5lbDEuc2VuZChoZWxsb0J1ZmZlcik7CkBAIC0yMTIsNyArMjE2LDcgQEAKIAogICAgICAg
YXNzZXJ0X2VxdWFsc190eXBlZF9hcnJheShtZXNzYWdlQnVmZmVyLCBoZWxsb0J1ZmZlci5idWZm
ZXIpOwogICAgIH0pOwotICB9LCAnRGF0YSBjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQg
QXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBCbG9iJyk7CisgIH0sIGAke21vZGV9
IHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBh
cyBCbG9iYCk7CiAKICAgLyoKICAgICA2LjIuICBSVENEYXRhQ2hhbm5lbApAQCAtMjIzLDcgKzIy
Nyw3IEBACiAgICAgICAgIGJlIGluaXRpYWxpemVkIHRvIHRoZSBzdHJpbmcgImJsb2IiLgogICAg
Ki8KICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBh
aXIoKQorICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucykKICAgICAu
dGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsKICAgICAgIGFzc2VydF9lcXVhbHMoY2hh
bm5lbDIuYmluYXJ5VHlwZSwgJ2Jsb2InLAogICAgICAgICAnRXhwZWN0IGluaXRpYWwgYmluYXJ5
VHlwZSB2YWx1ZSB0byBiZSBibG9iJyk7CkBAIC0yNDIsNyArMjQ2LDcgQEAKIAogICAgICAgYXNz
ZXJ0X2VxdWFsc190eXBlZF9hcnJheShtZXNzYWdlQnVmZmVyLCBoZWxsb0J1ZmZlci5idWZmZXIp
OwogICAgIH0pOwotICB9LCAnRGF0YSBjaGFubmVsIGJpbmFyeVR5cGUgc2hvdWxkIHJlY2VpdmUg
bWVzc2FnZSBhcyBCbG9iIGJ5IGRlZmF1bHQnKTsKKyAgfSwgYCR7bW9kZX0gYmluYXJ5VHlwZSBz
aG91bGQgcmVjZWl2ZSBtZXNzYWdlIGFzIEJsb2IgYnkgZGVmYXVsdGApOwogCiAgIC8vIFRlc3Qg
c2VuZGluZyAzIG1lc3NhZ2VzOiBoZWxsb0J1ZmZlciwgdW5pY29kZVN0cmluZywgaGVsbG9CbG9i
CiAgIGFzeW5jX3Rlc3QodCA9PiB7CkBAIC0yNjEsNyArMjY1LDcgQEAKICAgICAgIH0KICAgICB9
KTsKIAotICAgIGNyZWF0ZURhdGFDaGFubmVsUGFpcigpCisgICAgY3JlYXRlRGF0YUNoYW5uZWxQ
YWlyKHQsIG9wdGlvbnMpCiAgICAgLnRoZW4oKFtjaGFubmVsMSwgY2hhbm5lbDJdKSA9PiB7CiAg
ICAgICBjaGFubmVsMi5iaW5hcnlUeXBlID0gJ2FycmF5YnVmZmVyJzsKICAgICAgIGNoYW5uZWwy
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1lc3NhZ2UpOwpAQCAtMjcyLDcgKzI3Niw3
IEBACiAKICAgICB9KS5jYXRjaCh0LnN0ZXBfZnVuYyhlcnIgPT4KICAgICAgIGFzc2VydF91bnJl
YWNoZWQoYFVuZXhwZWN0ZWQgcHJvbWlzZSByZWplY3Rpb246ICR7ZXJyfWApKSk7Ci0gIH0sICdT
ZW5kaW5nIG11bHRpcGxlIG1lc3NhZ2VzIHdpdGggZGlmZmVyZW50IHR5cGVzIHNob3VsZCBzdWNj
ZWVkIGFuZCBiZSByZWNlaXZlZCcpOworICB9LCBgJHttb2RlfSBzZW5kaW5nIG11bHRpcGxlIG1l
c3NhZ2VzIHdpdGggZGlmZmVyZW50IHR5cGVzIHNob3VsZCBzdWNjZWVkIGFuZCBiZSByZWNlaXZl
ZGApOwogCiAgIC8qCiAgICAgW0RlZmVycmVkXQpAQCAtMjk1LDUgKzI5OSwyNCBAQAogICAgICAg
YXNzZXJ0X2VxdWFscyhjaGFubmVsLnJlYWR5U3RhdGUsICdjbG9zaW5nJyk7CiAgICAgICBjaGFu
bmVsLnNlbmQoaGVsbG9TdHJpbmcpOwogICAgIH0sICdDYWxsaW5nIHNlbmQoKSB3aGVuIGRhdGEg
Y2hhbm5lbCBpcyBpbiBjbG9zaW5nIHN0YXRlIHNob3VsZCBzdWNjZWVkJyk7Ci0gICAqLworICAq
LworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBsZXQgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Cisg
ICAgbGV0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWly
KHQsIG9wdGlvbnMsIHBjMSk7CisgICAgbGV0IG1lc3NhZ2UgPSAnaGVsbG84ODgnOyAvLyA4IGJ5
dGVzCisgICAgd2hpbGUgKG1lc3NhZ2UubGVuZ3RoIDw9IHBjMS5zY3RwLm1heE1lc3NhZ2VTaXpl
KSB7CisgICAgICBjaGFubmVsMS5zZW5kKG1lc3NhZ2UpOworICAgICAgbGV0IHJlY2VpdmVkX21l
c3NhZ2UgPSBhd2FpdCBhd2FpdE1lc3NhZ2UoY2hhbm5lbDIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWNlaXZlZF9tZXNzYWdlLmxlbmd0aCwgbWVzc2FnZS5sZW5ndGgsICJTaXplIG1pc21hdGNo
Iik7CisgICAgICAvLyBEb3VibGUgc2l6ZQorICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgKyBtZXNz
YWdlOworICAgIH0KKyAgICAvLyAic2VuZCIgbWV0aG9kIHN0ZXAgNDoKKyAgICAvLyBJZiB0aGUg
Ynl0ZSBzaXplIG9mICJkYXRhIiBleGNlZWRzIHRoZSB2YWx1ZSBvZiBtYXhNZXNzYWdlU2l6ZSwg
dGhyb3cKKyAgICAvLyBhIFR5cGVFcnJvci4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJv
ciwgKCkgPT4gY2hhbm5lbDEuc2VuZChtZXNzYWdlKSk7CisgIH0sIGAke21vZGV9IHNlbmQoKSB1
cCB0byBtYXggc2l6ZSBzaG91bGQgc3VjY2VlZCwgYWJvdmUgbWF4IHNpemUgc2hvdWxkIGZhaWxg
KTsKK30KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWxFdmVudC1jb25zdHJ1Y3Rvci5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWxFdmVudC1jb25zdHJ1Y3Rvci5odG1sCmluZGV4IDk5N2Y2NWM0MzgwMWE5
ZTMyNzU5NDY5YjdiZjdlZGIwODA5NDM4Y2UuLjI2NTk0M2FlNTYzNTBlMDFkMTRjZDRkMWNmZGQ3
Yzg2NjM1ZTQ5YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsRXZlbnQtY29uc3RydWN0b3IuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbEV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKQEAgLTQsMzMgKzQsMzggQEAKIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
CisvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcmV2aXNpb246CisvLyBodHRwczov
L3Jhd2dpdC5jb20vdzNjL3dlYnJ0Yy1wYy8xY2M1YmZjM2ZmMTg3NDEwMzNkODA0YzRhNzFmNzg5
MTI0MmZiNWIzL3dlYnJ0Yy5odG1sCisKIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgYXNzZXJ0X2Vx
dWFscyhSVENEYXRhQ2hhbm5lbEV2ZW50Lmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0X3Rocm93cygK
LSAgICAgICAgbmV3IFR5cGVFcnJvcigpLAorICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICAg
IFR5cGVFcnJvciwKICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBSVENEYXRhQ2hhbm5lbEV2ZW50
KCd0eXBlJyk7IH0KICAgICApOwogfSwgJ1JUQ0RhdGFDaGFubmVsRXZlbnQgY29uc3RydWN0b3Ig
d2l0aG91dCBhIHJlcXVpcmVkIGFyZ3VtZW50LicpOwogCiB0ZXN0KGZ1bmN0aW9uKCkgewotICAg
IGFzc2VydF90aHJvd3MoCi0gICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKKyAgICBhc3NlcnRfdGhy
b3dzX2pzKAorICAgICAgICBUeXBlRXJyb3IsCiAgICAgICAgIGZ1bmN0aW9uKCkgeyBuZXcgUlRD
RGF0YUNoYW5uZWxFdmVudCgndHlwZScsIHsgY2hhbm5lbDogbnVsbCB9KTsgfQogICAgICk7CiB9
LCAnUlRDRGF0YUNoYW5uZWxFdmVudCBjb25zdHJ1Y3RvciB3aXRoIGNoYW5uZWwgcGFzc2VkIGFz
IG51bGwuJyk7CiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAgICAg
ICAgbmV3IFR5cGVFcnJvcigpLAorICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICAgIFR5cGVF
cnJvciwKICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBSVENEYXRhQ2hhbm5lbEV2ZW50KCd0eXBl
JywgeyBjaGFubmVsOiB1bmRlZmluZWQgfSk7IH0KICAgICApOwogfSwgJ1JUQ0RhdGFDaGFubmVs
RXZlbnQgY29uc3RydWN0b3Igd2l0aCBhIGNoYW5uZWwgcGFzc2VkIGFzIHVuZGVmaW5lZC4nKTsK
IAotdGVzdChmdW5jdGlvbigpIHsKLSAgICB2YXIgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKLSAgICB2YXIgYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnKTsKLSAgICB2YXIgZSA9IG5l
dyBSVENEYXRhQ2hhbm5lbEV2ZW50KCd0eXBlJywgeyBjaGFubmVsOiBjIH0pOwotICAgIGFzc2Vy
dF90cnVlKGUgaW5zdGFuY2VvZiBSVENEYXRhQ2hhbm5lbEV2ZW50KTsKLSAgICBhc3NlcnRfZXF1
YWxzKGUuY2hhbm5lbCwgYyk7Cit0ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKwor
ICAgIGNvbnN0IGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycpOworICAgIGNvbnN0IGV2ZW50
ID0gbmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQoJ3R5cGUnLCB7IGNoYW5uZWw6IGRjIH0pOworICAg
IGFzc2VydF90cnVlKGV2ZW50IGluc3RhbmNlb2YgUlRDRGF0YUNoYW5uZWxFdmVudCk7CisgICAg
YXNzZXJ0X2VxdWFscyhldmVudC5jaGFubmVsLCBkYyk7CiB9LCAnUlRDRGF0YUNoYW5uZWxFdmVu
dCBjb25zdHJ1Y3RvciB3aXRoIGZ1bGwgYXJndW1lbnRzLicpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1n
ZXRSZW1vdGVDZXJ0aWZpY2F0ZXMuaHRtbAppbmRleCAwNjE0MzY0ZTk3NTZlYzkzM2NhODQyYjk3
YjFkYmQzMTQ4OWIzNWVlLi44YWY5NWE4NGQ1NzRlMjBmOWIwYmJmZjk2NGVkMDY0ZTRlMTdlNjJm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0
bHNUcmFuc3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLmh0bWwKQEAgLTksNyArOSw3IEBACiAK
ICAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQ
ZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6CiAgIC8vICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzCi0g
IC8vICAgZG9TaWduYWxpbmdIYW5kc2hha2UKKyAgLy8gICBleGNoYW5nZU9mZmVyQW5zd2VyCiAK
ICAgLyoKICAgICA1LjUuICBSVENEdGxzVHJhbnNwb3J0IEludGVyZmFjZQpAQCAtNDUsNyArNDUs
NyBAQAogICAgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOwogICAgIGV4Y2hhbmdlSWNl
Q2FuZGlkYXRlcyhwYzEsIHBjMik7CiAKLSAgICBkb1NpZ25hbGluZ0hhbmRzaGFrZShwYzEsIHBj
MikKKyAgICBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKQogICAgIC50aGVuKHQuc3RlcF9m
dW5jKCgpID0+IHsKICAgICAgIC8vIHBjLnNjdHAgaXMgc2V0IHdoZW4gc2V0KkRlc2NyaXB0aW9u
KGFuc3dlcikgaXMgY2FsbGVkCiAgICAgICBjb25zdCBzY3RwVHJhbnNwb3J0MSA9IHBjMS5zY3Rw
OwpAQCAtODcsNyArODcsNyBAQAogICAgICAgICBpZihkdGxzVHJhbnNwb3J0LnN0YXRlID09PSAn
Y29ubmVjdGVkJykgewogICAgICAgICAgIG9uQ29ubmVjdGVkKGR0bHNUcmFuc3BvcnQpOwogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZHRsc1RyYW5zcG9y
dC5nZXRDZXJ0aWZpY2F0ZXMoKSwgW10sCisgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhk
dGxzVHJhbnNwb3J0LmdldFJlbW90ZUNlcnRpZmljYXRlcygpLCBbXSwKICAgICAgICAgICAgICdF
eHBlY3QgRFRMUyBjZXJ0aWZpY2F0ZXMgYmUgaW5pdGlhbGx5IGVtcHR5IHVudGlsIGJlY29tZSBj
b25uZWN0ZWQnKTsKIAogICAgICAgICAgIGR0bHNUcmFuc3BvcnQuYWRkRXZlbnRMaXN0ZW5lcign
c3RhdGVjaGFuZ2UnLCB0LnN0ZXBfZnVuYygoKSA9PiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0
LXN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LXN0YXRlLmh0bWwKaW5kZXggZmQ3MjE1ZmE0ZTE2MmFj
YWVkMmFmNTYzYzgzYjViMDg0NmFmM2RkNS4uZDAyMzBkZTBlNjRkMGRjZjViMTM3MWNjMjZmNTcw
OTUwNTNhOGZkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFu
c3BvcnQtc3RhdGUuaHRtbApAQCAtOSw3ICs5LDcgQEAKIAogLy8gVGhlIGZvbGxvd2luZyBoZWxw
ZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6
CiAvLyAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcwotLy8gICBkb1NpZ25hbGluZ0hhbmRzaGFrZQor
Ly8gICBleGNoYW5nZU9mZmVyQW5zd2VyCiAvLyAgIHRyYWNrRmFjdG9yaWVzLmF1ZGlvKCkKIAog
LyoKQEAgLTQyLDM2ICs0Miw2IEBAIGZ1bmN0aW9uIHJlc29sdmVXaGVuKHQsIGR0bHN0cmFuc3Bv
cnQsIHN0YXRlKSB7CiAgIH0pOwogfQogCi0vLyBIZWxwZXIgY2xhc3MgdG8gZXhjaGFuZ2UgaWNl
IGNhbmRpZGF0ZXMgYmV0d2VlbgotLy8gdHdvIGxvY2FsIHBlZXIgY29ubmVjdGlvbnMKLWNsYXNz
IENhbmRpZGF0ZUNoYW5uZWwgewotICBjb25zdHJ1Y3Rvcihzb3VyY2UsIGRlc3QpIHsKLSAgICBz
b3VyY2UuYWRkRXZlbnRMaXN0ZW5lcignaWNlY2FuZGlkYXRlJywgZXZlbnQgPT4gewotICAgICAg
Y29uc3QgeyBjYW5kaWRhdGUgfSA9IGV2ZW50OwotICAgICAgaWYgKGNhbmRpZGF0ZSAmJiB0aGlz
LmFjdGl2YXRlZAotICAgICAgICAgICYmIHRoaXMuZGVzdGluYXRpb24uc2lnbmFsaW5nU3RhdGUg
IT09ICdjbG9zZWQnKSB7Ci0gICAgICAgIHRoaXMuZGVzdGluYXRpb24uYWRkSWNlQ2FuZGlkYXRl
KGNhbmRpZGF0ZSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aGlzLnF1ZXVlLnB1c2goY2Fu
ZGlkYXRlKTsKLSAgICAgIH0KLSAgICB9KTsKLSAgICB0aGlzLmRlc3RpbmF0aW9uID0gZGVzdDsK
LSAgICB0aGlzLmFjdGl2YXRlZCA9IGZhbHNlOwotICAgIHRoaXMucXVldWUgPSBbXTsKLSAgfQot
ICBhY3RpdmF0ZSgpIHsKLSAgICB0aGlzLmFjdGl2YXRlZCA9IHRydWU7Ci0gICAgZm9yIChjb25z
dCBjYW5kaWRhdGUgb2YgdGhpcy5xdWV1ZSkgewotICAgICAgdGhpcy5kZXN0aW5hdGlvbi5hZGRJ
Y2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH0KLX0KLQotZnVuY3Rpb24gY291cGxl
Q2FuZGlkYXRlcyhwYzEsIHBjMikgewotICBjb25zdCBjaDEgPSBuZXcgQ2FuZGlkYXRlQ2hhbm5l
bChwYzEsIHBjMik7Ci0gIGNvbnN0IGNoMiA9IG5ldyBDYW5kaWRhdGVDaGFubmVsKHBjMiwgcGMx
KTsKLSAgcmV0dXJuIFtjaDEsIGNoMl07Ci19CiAKIGFzeW5jIGZ1bmN0aW9uIHNldHVwQ29ubmVj
dGlvbnModCkgewogICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKQEAgLTgw
LDExICs1MCw4IEBAIGFzeW5jIGZ1bmN0aW9uIHNldHVwQ29ubmVjdGlvbnModCkgewogICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAogICBwYzEuYWRkVHJhY2sodHJhY2tGYWN0
b3JpZXMuYXVkaW8oKSk7Ci0gIGNvbnN0IGNoYW5uZWxzID0gY291cGxlQ2FuZGlkYXRlcyhwYzEs
IHBjMik7Ci0gIGF3YWl0IGRvU2lnbmFsaW5nSGFuZHNoYWtlKHBjMSwgcGMyKTsKLSAgZm9yIChj
b25zdCBjaGFubmVsIG9mIGNoYW5uZWxzKSB7Ci0gICAgY2hhbm5lbC5hY3RpdmF0ZSgpOwotICB9
CisgIGNvbnN0IGNoYW5uZWxzID0gZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAg
YXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CiAgIHJldHVybiBbcGMxLCBwYzJd
OwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENFcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENFcnJvci1leHBlY3RlZC50eHQKaW5k
ZXggODZiYjQ4ZWNlZTkwODY2ZTVhNGVjMGEyYWJmNzNhZmEyZjE5YjEzYy4uOTJjYmJkODRhZDQ1
OThjOGY0ZjgxYWY1MTMwYjhlNjJkNDNhYTk1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRXJyb3ItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0Vycm9yLWV4cGVjdGVkLnR4dApAQCAtMSwxOCArMSwyNCBAQAogCiBGQUlMIFJUQ0Vycm9y
IGNvbnN0cnVjdG9yIHdpdGggZXJyb3JEZXRhaWwgYW5kIG1lc3NhZ2UgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogUlRDRXJyb3IKIEZBSUwgUlRDRXJyb3IgY29uc3RydWN0b3IncyBtZXNzYWdlIGFyZ3Vt
ZW50IGlzIG9wdGlvbmFsIENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ0Vycm9yCi1GQUlMIFJUQ0Vy
cm9yIGNvbnN0cnVjdG9yIHRocm93cyBUeXBlRXJyb3IgaWYgYXJndW1lbnRzIGFyZSBtaXNzaW5n
IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiB7CitGQUlMIFJUQ0Vycm9yIGNvbnN0cnVj
dG9yIHRocm93cyBUeXBlRXJyb3IgaWYgYXJndW1lbnRzIGFyZSBtaXNzaW5nIGFzc2VydF90aHJv
d3NfanM6IGZ1bmN0aW9uICIoKSA9PiB7CiAgICAgbmV3IFJUQ0Vycm9yKCk7Ci0gIH0iIHRocmV3
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ0Vycm9yIiAo
IlJlZmVyZW5jZUVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9y
IikKLUZBSUwgUlRDRXJyb3IgY29uc3RydWN0b3IgdGhyb3dzIFR5cGVFcnJvciBpZiB0aGUgZXJy
b3JEZXRhaWwgaXMgaW52YWxpZCBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4geworICB9
IiB0aHJldyBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENF
cnJvciIgKCJSZWZlcmVuY2VFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJm
dW5jdGlvbiBUeXBlRXJyb3IoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgKCJUeXBlRXJyb3Ii
KQorRkFJTCBSVENFcnJvciBjb25zdHJ1Y3RvciB0aHJvd3MgVHlwZUVycm9yIGlmIHRoZSBlcnJv
ckRldGFpbCBpcyBpbnZhbGlkIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiB7CiAg
ICAgbmV3IFJUQ0Vycm9yKHtlcnJvckRldGFpbDonaW52YWxpZC1lcnJvci1kZXRhaWwnfSwgJ21l
c3NhZ2UnKTsKLSAgfSIgdGhyZXcgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogUlRDRXJyb3IiICgiUmVmZXJlbmNlRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQotRkFJTCBSVENFcnJvci5uYW1lIGlzICdSVENFcnJvcicg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDRXJyb3IKKyAgfSIgdGhyZXcgb2JqZWN0ICJSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDRXJyb3IiICgiUmVmZXJlbmNlRXJyb3Ii
KSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9yKCkgewor
ICAgIFtuYXRpdmUgY29kZV0KK30iICgiVHlwZUVycm9yIikKK0ZBSUwgUlRDRXJyb3IubmFtZSBp
cyAnT3BlcmF0aW9uRXJyb3InIENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ0Vycm9yCiBGQUlMIFJU
Q0Vycm9yLmNvZGUgaXMgMCBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENFcnJvcgogRkFJTCBSVENF
cnJvci5lcnJvckRldGFpbCBpcyByZWFkb25seS4gQ2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDRXJy
b3IKLUZBSUwgUlRDRXJyb3JJbml0LmVycm9yRGV0YWlsIGlzIHRoZSBvbmx5IHJlcXVpcmVkIGF0
dHJpYnV0ZSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4geworRkFJTCBSVENFcnJvcklu
aXQuZXJyb3JEZXRhaWwgaXMgdGhlIG9ubHkgcmVxdWlyZWQgYXR0cmlidXRlIGFzc2VydF90aHJv
d3NfanM6IGZ1bmN0aW9uICIoKSA9PiB7CiAgICAgbmV3IFJUQ0Vycm9yKHt9LCAnbWVzc2FnZScp
OwotICB9IiB0aHJldyBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBSVENFcnJvciIgKCJSZWZlcmVuY2VFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCisgIH0iIHRocmV3IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IFJUQ0Vycm9yIiAoIlJlZmVyZW5jZUVycm9yIikgZXhwZWN0ZWQgaW5z
dGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKKyAgICBbbmF0aXZlIGNv
ZGVdCit9IiAoIlR5cGVFcnJvciIpCiBGQUlMIFJUQ0Vycm9yLnNkcExpbmVOdW1iZXIgaXMgbnVs
bCBieSBkZWZhdWx0IENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ0Vycm9yCiBGQUlMIFJUQ0Vycm9y
LnNkcExpbmVOdW1iZXIgaXMgc2V0dGFibGUgYnkgY29uc3RydWN0b3IgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogUlRDRXJyb3IKIEZBSUwgUlRDRXJyb3Iuc2RwTGluZU51bWJlciBpcyByZWFkb25seSBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBSVENFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRXJyb3IuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Vycm9yLmh0
bWwKaW5kZXggNGQwNzI2MDkzYzE5YzI4MjhlNTllN2Y2MWQyZjY1OTU0YzgwNzVmYy4uYmNjNTc0
OWJmN2Q1ZTY5ZmQzZDY3NGFjMzM1NjQ0MDNlNDFlOTk4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRXJyb3IuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENFcnJvci5odG1sCkBAIC0xOSwyNCArMTksMjQgQEAgdGVzdCgoKSA9PiB7CiB9LCAnUlRDRXJy
b3IgY29uc3RydWN0b3JcJ3MgbWVzc2FnZSBhcmd1bWVudCBpcyBvcHRpb25hbCcpOwogCiB0ZXN0
KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKKyAgYXNz
ZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKICAgICBuZXcgUlRDRXJyb3IoKTsKICAg
fSk7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7CisgIGFzc2VydF90
aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiB7CiAgICAgbmV3IFJUQ0Vycm9yKHt9KTsgIC8vIHtl
cnJvckRldGFpbH0gaXMgbWlzc2luZy4KICAgfSk7CiB9LCAnUlRDRXJyb3IgY29uc3RydWN0b3Ig
dGhyb3dzIFR5cGVFcnJvciBpZiBhcmd1bWVudHMgYXJlIG1pc3NpbmcnKTsKIAogdGVzdCgoKSA9
PiB7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7CisgIGFzc2VydF90
aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiB7CiAgICAgbmV3IFJUQ0Vycm9yKHtlcnJvckRldGFp
bDonaW52YWxpZC1lcnJvci1kZXRhaWwnfSwgJ21lc3NhZ2UnKTsKICAgfSk7CiB9LCAnUlRDRXJy
b3IgY29uc3RydWN0b3IgdGhyb3dzIFR5cGVFcnJvciBpZiB0aGUgZXJyb3JEZXRhaWwgaXMgaW52
YWxpZCcpOwogCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgZXJyb3IgPSBuZXcgUlRDRXJyb3Ioe2Vy
cm9yRGV0YWlsOidkYXRhLWNoYW5uZWwtZmFpbHVyZSd9LCAnbWVzc2FnZScpOwotICBhc3NlcnRf
ZXF1YWxzKGVycm9yLm5hbWUsICdSVENFcnJvcicpOwotfSwgJ1JUQ0Vycm9yLm5hbWUgaXMgXCdS
VENFcnJvclwnJyk7CisgIGFzc2VydF9lcXVhbHMoZXJyb3IubmFtZSwgJ09wZXJhdGlvbkVycm9y
Jyk7Cit9LCAnUlRDRXJyb3IubmFtZSBpcyBcJ09wZXJhdGlvbkVycm9yXCcnKTsKIAogdGVzdCgo
KSA9PiB7CiAgIGNvbnN0IGVycm9yID0gbmV3IFJUQ0Vycm9yKHtlcnJvckRldGFpbDonZGF0YS1j
aGFubmVsLWZhaWx1cmUnfSwgJ21lc3NhZ2UnKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgdGVzdCgoKSA9
PiB7CiAKIHRlc3QoKCkgPT4gewogICBjb25zdCBlcnJvciA9IG5ldyBSVENFcnJvcih7ZXJyb3JE
ZXRhaWw6J2RhdGEtY2hhbm5lbC1mYWlsdXJlJ30sICdtZXNzYWdlJyk7Ci0gIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9y
LCAoKSA9PiB7CiAgICAgZXJyb3IuZXJyb3JEZXRhaWwgPSAnZHRscy1mYWlsdXJlJzsKICAgfSk7
CiB9LCAnUlRDRXJyb3IuZXJyb3JEZXRhaWwgaXMgcmVhZG9ubHkuJyk7CkBAIC01Myw3ICs1Myw3
IEBAIHRlc3QoKCkgPT4gewogdGVzdCgoKSA9PiB7CiAgIC8vIEluZmVycyB3aGF0IGFyZSB2YWxp
ZCBSVENFcnJvckluaXQgb2JqZWN0cyBieSBwYXNzaW5nIHRoZW0gdG8gdGhlIFJUQ0Vycm9yCiAg
IC8vIGNvbnN0cnVjdG9yLgotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4g
eworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gewogICAgIG5ldyBSVENFcnJv
cih7fSwgJ21lc3NhZ2UnKTsKICAgfSk7CiAgIG5ldyBSVENFcnJvcih7ZXJyb3JEZXRhaWw6J2Rh
dGEtY2hhbm5lbC1mYWlsdXJlJ30sICdtZXNzYWdlJyk7CkBAIC04MCw3ICs4MCw3IEBAIG51bGxh
YmxlQXR0cmlidXRlcy5mb3JFYWNoKGF0dHJpYnV0ZSA9PiB7CiAKICAgdGVzdCgoKSA9PiB7CiAg
ICAgY29uc3QgZXJyb3IgPSBuZXcgUlRDRXJyb3Ioe2Vycm9yRGV0YWlsOidkYXRhLWNoYW5uZWwt
ZmFpbHVyZSd9LCAnbWVzc2FnZScpOwotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCAoKSA9PiB7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKICAgICAg
IGVycm9yW2F0dHJpYnV0ZV0gPSA0MjsKICAgICB9KTsKICAgfSwgJ1JUQ0Vycm9yLicgKyBhdHRy
aWJ1dGUgKyAnIGlzIHJlYWRvbmx5Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDYW5kaWRhdGUtY29uc3RydWN0
b3IuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0ljZUNhbmRpZGF0ZS1jb25zdHJ1Y3Rvci5odG1sCmluZGV4IDM0NDAwN2RlZDJiNGQ0
NDk2MTcxNDAyODk2ZDczODgxN2NkZGUxMmUuLjZjMjA4ZTg4N2Y0NzNhMDMxZTBlOWVlMDc2NThi
NTNiZmJlNTkzNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNhbmRpZGF0ZS1jb25zdHJ1Y3Rvci5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0lj
ZUNhbmRpZGF0ZS1jb25zdHJ1Y3Rvci5odG1sCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgLy8gTm90
ZSB0aGF0IGN1cnJlbnQgYnJvd3NlcnMgcGFzcyB0aGlzIHRlc3QgYnV0IG1heSB0aHJvdyBUeXBl
RXJyb3IgZm9yCiAgICAgLy8gZGlmZmVyZW50IHJlYXNvbiwgaS5lLiB0aGV5IGRvbid0IGFjY2Vw
dCBlbXB0eSBhcmd1bWVudC4KICAgICAvLyBGdXJ0aGVyIHRlc3RzIGJlbG93IGFyZSB1c2VkIHRv
IGRpZmZlcmVudGlhdGUgdGhlIGVycm9ycy4KLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJy
b3IoKSwgKCkgPT4gbmV3IFJUQ0ljZUNhbmRpZGF0ZSgpKTsKKyAgICBhc3NlcnRfdGhyb3dzX2pz
KFR5cGVFcnJvciwgKCkgPT4gbmV3IFJUQ0ljZUNhbmRpZGF0ZSgpKTsKICAgfSwgJ25ldyBSVENJ
Y2VDYW5kaWRhdGUoKScpOwogCiAgIHRlc3QodCA9PiB7CkBAIC0yNCwxMyArMjQsMTMgQEAKICAg
ICAvLyBOb3RlIHRoYXQgY3VycmVudCBicm93c2VycyBwYXNzIHRoaXMgdGVzdCBidXQgbWF5IHRo
cm93IFR5cGVFcnJvciBmb3IKICAgICAvLyBkaWZmZXJlbnQgcmVhc29uLCBpLmUuIHRoZXkgZG9u
J3QgYWxsb3cgdW5kZWZpbmVkIGNhbmRpZGF0ZSBzdHJpbmcuCiAgICAgLy8gRnVydGhlciB0ZXN0
cyBiZWxvdyBhcmUgdXNlZCB0byBkaWZmZXJlbnRpYXRlIHRoZSBlcnJvcnMuCi0gICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IG5ldyBSVENJY2VDYW5kaWRhdGUoe30pKTsK
KyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gbmV3IFJUQ0ljZUNhbmRpZGF0
ZSh7fSkpOwogICB9LCAnbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7fSknKTsKIAogICB0ZXN0KHQgPT4g
ewogICAgIC8vIENoZWNrcyB0aGF0IG1hbnVhbGx5IGZpbGxpbmcgdGhlIGRlZmF1bHQgdmFsdWVz
IGZvciBSVENJY2VDYW5kaWRhdGVJbml0CiAgICAgLy8gc3RpbGwgdGhyb3dzIGJlY2F1c2UgYm90
aCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXggYXJlIG51bGwKLSAgICBhc3NlcnRfdGhyb3dzKG5l
dyBUeXBlRXJyb3IoKSwKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwKICAgICAgICgp
ID0+IG5ldyBSVENJY2VDYW5kaWRhdGUoewogICAgICAgICBjYW5kaWRhdGU6ICcnLAogICAgICAg
ICBzZHBNaWQ6IG51bGwsCkBAIC00MSw3ICs0MSw3IEBACiAKICAgdGVzdCh0ID0+IHsKICAgICAv
LyBDaGVja3MgdGhhdCBleHBsaWNpdGx5IHNldHRpbmcgYm90aCBzZHBNaWQgYW5kIHNkcE1MaW5l
SW5kZXggbnVsbCBzaG91bGQgdGhyb3cKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3Io
KSwKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwKICAgICAgICgpID0+IG5ldyBSVENJ
Y2VDYW5kaWRhdGUoewogICAgICAgICBzZHBNaWQ6IG51bGwsCiAgICAgICAgIHNkcE1MaW5lSW5k
ZXg6IG51bGwKQEAgLTUwLDcgKzUwLDcgQEAKIAogICB0ZXN0KHQgPT4gewogICAgIC8vIFRocm93
cyBiZWNhdXNlIGJvdGggc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IGFyZSBudWxsIGJ5IGRlZmF1
bHQKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwKKyAgICBhc3NlcnRfdGhyb3dz
X2pzKFR5cGVFcnJvciwKICAgICAgICgpID0+IG5ldyBSVENJY2VDYW5kaWRhdGUoewogICAgICAg
ICBjYW5kaWRhdGU6ICcnCiAgICAgICB9KSk7CkBAIC01OCw3ICs1OCw3IEBACiAKICAgdGVzdCh0
ID0+IHsKICAgICAvLyBUaHJvd3MgYmVjYXVzZSB0aGUgY2FuZGlkYXRlIGZpZWxkIGlzIG5vdCBu
dWxsYWJsZQotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAorICAgIGFzc2VydF90
aHJvd3NfanMoVHlwZUVycm9yLAogICAgICAgKCkgPT4gbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7CiAg
ICAgICAgIGNhbmRpZGF0ZTogbnVsbAogICAgICAgfSkpOwpAQCAtNjYsNyArNjYsNyBAQAogCiAg
IHRlc3QodCA9PiB7CiAgICAgLy8gVGhyb3dzIGJlY2F1c2UgYm90aCBzZHBNaWQgYW5kIHNkcE1M
aW5lSW5kZXggYXJlIG51bGwgYnkgZGVmYXVsdAotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLAorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAogICAgICAgKCkgPT4gbmV3
IFJUQ0ljZUNhbmRpZGF0ZSh7CiAgICAgICAgIGNhbmRpZGF0ZTogY2FuZGlkYXRlU3RyaW5nCiAg
ICAgICB9KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25uZWN0aW9uU3RhdGUtY2FuZGlkYXRlLXBhaXIuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFpci5odHRwcy5odG1sCmluZGV4
IDcyODBkMDQwODU2MzcwZjQ0ODc5NmE0ZGUyZjkyZjgyZjljNzhjNTMuLjNiMmMyNTM0MDFmNjdl
MmM3ZTNjNjc5ZDFkN2FlNWJhYzQxYTJmM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1j
YW5kaWRhdGUtcGFpci5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUt
cGFpci5odHRwcy5odG1sCkBAIC0xNCwxMiArMTQsMTIgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewogICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CiAKLSAgY29uc3Qgc3RyZWFtID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KTsKKyAgY29u
c3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOnRydWV9KTsKICAgY29uc3Qg
W3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgY2FsbGVyLmFkZFRyYWNrKHRyYWNrLCBz
dHJlYW0pOwogICBleGNoYW5nZUljZUNhbmRpZGF0ZXMoY2FsbGVyLCBjYWxsZWUpOwotICBhd2Fp
dCBkb1NpZ25hbGluZ0hhbmRzaGFrZShjYWxsZXIsIGNhbGxlZSk7Ci0gIGF3YWl0IGxpc3RlblRv
SWNlQ29ubmVjdGVkKHQsIGNhbGxlcik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2Fs
bGVyLCBjYWxsZWUpOworICBhd2FpdCBsaXN0ZW5Ub0ljZUNvbm5lY3RlZChjYWxsZXIpOwogCiAg
IGNvbnN0IHJlcG9ydCA9IGF3YWl0IGNhbGxlci5nZXRTdGF0cygpOwogICBsZXQgc3VjY2VlZGVk
UGFpckZvdW5kID0gZmFsc2U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDNmYWRmMjA1ODU5ZmViN2NmYjkxNTYyOTUxZDc5OTI5OWYzNDgyYWEuLjA5MzQ3YWVlZTRi
YzBjNDYxMjBkN2I1ODFkMjIyN2FkNTI2ZjVlNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRl
bnNpb24uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0xNCw2ICsxNCw4IEBAIEZBSUwgZ2F0aGVyKCkgcmV0dXJucyBhdCBs
ZWFzdCBvbmUgaG9zdCBjYW5kaWRhdGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0CiBG
QUlMIGdhdGhlcigpIHJldHVybnMgbm8gY2FuZGlkYXRlcyB3aXRoIHsgZ2F0aGVyUG9saWN5OiAn
cmVsYXknfSBhbmQgbm8gdHVybiBzZXJ2ZXJzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29u
c3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBSVENJY2VUcmFuc3BvcnQoKScpIgogRkFJTCBzdGFy
dCgpIHRocm93cyBpZiBjbG9zZWQgZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1
YXRpbmcgJ25ldyBSVENJY2VUcmFuc3BvcnQoKScpCiBGQUlMIHN0YXJ0KCkgdGhyb3dzIGlmIHVz
ZXJuYW1lRnJhZ21lbnQgb3IgcGFzc3dvcmQgbm90IHNldCBmdW5jdGlvbiBpcyBub3QgYSBjb25z
dHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFJUQ0ljZVRyYW5zcG9ydCgpJykKK0ZBSUwgc3RhcnQo
KSB0aHJvd3MgaWYgdXNlcm5hbWVGcmFnbWVudCBkb2VzIG5vdCBjb25mb3JtIHRvIHN5bnRheCBm
dW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFJUQ0ljZVRyYW5z
cG9ydCgpJykKK0ZBSUwgc3RhcnQoKSB0aHJvd3MgaWYgcGFzc3dvcmQgZG9lcyBub3QgY29uZm9y
bSB0byBzeW50YXggZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25l
dyBSVENJY2VUcmFuc3BvcnQoKScpCiBGQUlMIHN0YXJ0KCkgZG9lcyBub3QgdHJhbnNpdGlvbiBz
dGF0ZSB0byAnY2hlY2tpbmcnIGlmIG5vIHJlbW90ZSBjYW5kaWRhdGVzIGFkZGVkIGZ1bmN0aW9u
IGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgUlRDSWNlVHJhbnNwb3J0KCkn
KQogRkFJTCBzdGFydCgpIHdpdGggZGVmYXVsdCByb2xlIHNldHMgcm9sZSBhdHRyaWJ1dGUgdG8g
J2NvbnRyb2xsZWQnIGZ1bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICdu
ZXcgUlRDSWNlVHJhbnNwb3J0KCknKQogRkFJTCBzdGFydCgpIHNldHMgcm9sZSBhdHRyaWJ1dGUg
dG8gJ2NvbnRyb2xsaW5nJyBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGlu
ZyAnbmV3IFJUQ0ljZVRyYW5zcG9ydCgpJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNp
b24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRtbAppbmRleCAyMDZh
NGJiNzE2ZjM0NTY2YjY5OWRhY2ZkNDc1ODVhMTRhNWMyODJhLi5iYjRkNTJhZGNlNTY3M2JhYjVk
NTI3NTM2ZDY3Zjg5YTAzYTQ4Y2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sCkBAIC0xNSw2ICsx
NSw5IEBACiAvLyAgIG1ha2VJY2VUcmFuc3BvcnQKIC8vICAgbWFrZUdhdGhlckFuZFN0YXJ0VHdv
SWNlVHJhbnNwb3J0cwogCitjb25zdCBJQ0VfVUZSQUcgPSAndScucmVwZWF0KDQpOworY29uc3Qg
SUNFX1BXRCA9ICdwJy5yZXBlYXQoMjIpOworCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgaWNlVHJh
bnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwogfSwgJ1JUQ0ljZVRyYW5zcG9ydCBjb25z
dHJ1Y3RvciBkb2VzIG5vdCB0aHJvdycpOwpAQCAtMzksNyArNDIsNyBAQCB0ZXN0KCgpID0+IHsK
IAogdGVzdCh0ID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0
KTsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLCAoKSA9PgogICAgIGljZVRyYW5zcG9ydC5nYXRoZXIoeyBpY2VTZXJ2
ZXJzOiBudWxsIH0pKTsKIH0sICdnYXRoZXIoKSB3aXRoIHsgaWNlU2VydmVyczogbnVsbCB9IHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3InKTsKIApAQCAtNjgsNyArNzEsNyBAQCB0ZXN0KHQgPT4gewog
dGVzdCh0ID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsK
ICAgaWNlVHJhbnNwb3J0LnN0b3AoKTsKLSAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJy
b3InLCAoKSA9PiBpY2VUcmFuc3BvcnQuZ2F0aGVyKHt9KSk7CisgIGFzc2VydF90aHJvd3NfZG9t
KCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30pKTsKIH0s
ICdnYXRoZXIoKSB0aHJvd3MgaWYgY2xvc2VkJyk7CiAKIHRlc3QodCA9PiB7CkBAIC04MCw3ICs4
Myw3IEBAIHRlc3QodCA9PiB7CiB0ZXN0KHQgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBt
YWtlSWNlVHJhbnNwb3J0KHQpOwogICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHt9KTsKLSAgYXNzZXJ0
X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBpY2VUcmFuc3BvcnQuZ2F0aGVyKHt9
KSk7CisgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGljZVRy
YW5zcG9ydC5nYXRoZXIoe30pKTsKIH0sICdnYXRoZXIoKSB0aHJvd3MgaWYgY2FsbGVkIHR3aWNl
Jyk7CiAKIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKQEAgLTk4LDcgKzEwMSw3IEBAIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgaWNlVHJhbnNwb3J0LmdhdGhlcih7fSk7CiAgIGxldCBj
YW5kaWRhdGU7CiAgIGRvIHsKLSAgICAoeyBjYW5kaWRhdGUgfSA9IGF3YWl0IHdhdGNoZXIud2Fp
dF9mb3IoJ2ljZWNhbmRpZGF0ZScpKTsKKyAgICAoKHsgY2FuZGlkYXRlIH0gPSBhd2FpdCB3YXRj
aGVyLndhaXRfZm9yKCdpY2VjYW5kaWRhdGUnKSkpOwogICB9IHdoaWxlIChjYW5kaWRhdGUgIT09
IG51bGwpOwogICBhc3NlcnRfZXF1YWxzKGljZVRyYW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ2dh
dGhlcmluZycpOwogICBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdnYXRoZXJpbmdzdGF0ZWNoYW5n
ZScpOwpAQCAtMTI2LDI4ICsxMjksNjQgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAg
ICcgc2VydmVycycpOwogCiBjb25zdCBkdW1teVJlbW90ZVBhcmFtZXRlcnMgPSB7Ci0gIHVzZXJu
YW1lRnJhZ21lbnQ6ICdkdW1teVVzZXJuYW1lRnJhZ21lbnQnLAotICBwYXNzd29yZDogJ2R1bW15
UGFzc3dvcmQnLAorICB1c2VybmFtZUZyYWdtZW50OiBJQ0VfVUZSQUcsCisgIHBhc3N3b3JkOiBJ
Q0VfUFdELAogfTsKIAogdGVzdCgoKSA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBS
VENJY2VUcmFuc3BvcnQoKTsKICAgaWNlVHJhbnNwb3J0LnN0b3AoKTsKLSAgYXNzZXJ0X3Rocm93
cygnSW52YWxpZFN0YXRlRXJyb3InLAorICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRl
RXJyb3InLAogICAgICgpID0+IGljZVRyYW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRl
cnMpKTsKICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlUGFyYW1ldGVycygp
LCBudWxsKTsKIH0sIGBzdGFydCgpIHRocm93cyBpZiBjbG9zZWRgKTsKIAogdGVzdCgoKSA9PiB7
CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKLSAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7fSkpOwot
ICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwKLSAgICAoKSA9PiBpY2VUcmFuc3BvcnQu
c3RhcnQoeyB1c2VybmFtZUZyYWdtZW50OiAnZHVtbXknIH0pKTsKLSAgYXNzZXJ0X3Rocm93cyhu
ZXcgVHlwZUVycm9yKCksCi0gICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsgcGFzc3dvcmQ6
ICdkdW1teScgfSkpOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gaWNlVHJh
bnNwb3J0LnN0YXJ0KHt9KSk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAorICAgICgp
ID0+IGljZVRyYW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQ6IElDRV9VRlJBRyB9KSk7
CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAorICAgICgpID0+IGljZVRyYW5zcG9ydC5z
dGFydCh7IHBhc3N3b3JkOiBJQ0VfUFdEIH0pKTsKICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3Bv
cnQuZ2V0UmVtb3RlUGFyYW1ldGVycygpLCBudWxsKTsKIH0sICdzdGFydCgpIHRocm93cyBpZiB1
c2VybmFtZUZyYWdtZW50IG9yIHBhc3N3b3JkIG5vdCBzZXQnKTsKIAordGVzdCgoKSA9PiB7Cisg
IGNvbnN0IFRFU1RfQ0FTRVMgPSBbCisgICAge3VzZXJuYW1lRnJhZ21lbnQ6ICcyc2gnLCBkZXNj
cmlwdGlvbjogJ2xlc3MgdGhhbiA0IGNoYXJhY3RlcnMgbG9uZyd9LAorICAgIHsKKyAgICAgIHVz
ZXJuYW1lRnJhZ21lbnQ6ICd4Jy5yZXBlYXQoMjU3KSwKKyAgICAgIGRlc2NyaXB0aW9uOiAnZ3Jl
YXRlciB0aGFuIDI1NiBjaGFyYWN0ZXJzIGxvbmcnLAorICAgIH0sCisgICAge3VzZXJuYW1lRnJh
Z21lbnQ6ICcxMjNcbicsIGRlc2NyaXB0aW9uOiAnaWxsZWdhbCBjaGFyYWN0ZXInfSwKKyAgXTsK
KyAgZm9yIChjb25zdCB7dXNlcm5hbWVGcmFnbWVudCwgZGVzY3JpcHRpb259IG9mIFRFU1RfQ0FT
RVMpIHsKKyAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Cisg
ICAgYXNzZXJ0X3Rocm93c19kb20oCisgICAgICAnU3ludGF4RXJyb3InLAorICAgICAgKCkgPT4g
aWNlVHJhbnNwb3J0LnN0YXJ0KHsgdXNlcm5hbWVGcmFnbWVudCwgcGFzc3dvcmQ6IElDRV9QV0Qg
fSksCisgICAgICBgaWxsZWdhbCB1c2VybmFtZUZyYWdtZW50ICgke2Rlc2NyaXB0aW9ufSkgc2hv
dWxkIHRocm93IGEgU3ludGF4RXJyb3JgKTsKKyAgfQorfSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIHVz
ZXJuYW1lRnJhZ21lbnQgZG9lcyBub3QgY29uZm9ybSB0byBzeW50YXgnKTsKKwordGVzdCgoKSA9
PiB7CisgIGNvbnN0IFRFU1RfQ0FTRVMgPSBbCisgICAge3Bhc3N3b3JkOiAneCcucmVwZWF0KDIx
KSwgZGVzY3JpcHRpb246ICdsZXNzIHRoYW4gMjIgY2hhcmFjdGVycyBsb25nJ30sCisgICAgewor
ICAgICAgcGFzc3dvcmQ6ICd4Jy5yZXBlYXQoMjU3KSwKKyAgICAgIGRlc2NyaXB0aW9uOiAnZ3Jl
YXRlciB0aGFuIDI1NiBjaGFyYWN0ZXJzIGxvbmcnLAorICAgIH0sCisgICAge3Bhc3N3b3JkOiAo
J3gnLnJlcGVhdCgyMSkgKyAnXG4nKSwgZGVzY3JpcHRpb246ICdpbGxlZ2FsIGNoYXJhY3Rlcid9
LAorICBdOworICBmb3IgKGNvbnN0IHtwYXNzd29yZCwgZGVzY3JpcHRpb259IG9mIFRFU1RfQ0FT
RVMpIHsKKyAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Cisg
ICAgYXNzZXJ0X3Rocm93c19kb20oCisgICAgICAnU3ludGF4RXJyb3InLAorICAgICAgKCkgPT4g
aWNlVHJhbnNwb3J0LnN0YXJ0KHsgdXNlcm5hbWVGcmFnbWVudDogSUNFX1VGUkFHLCBwYXNzd29y
ZCB9KSwKKyAgICAgIGBpbGxlZ2FsIHBhc3N3b3JkICgke2Rlc2NyaXB0aW9ufSkgc2hvdWxkIHRo
cm93IGEgU3ludGF4RXJyb3JgKTsKKyAgfQorfSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIHBhc3N3b3Jk
IGRvZXMgbm90IGNvbmZvcm0gdG8gc3ludGF4Jyk7CisKIGNvbnN0IGFzc2VydF9pY2VfcGFyYW1l
dGVyc19lcXVhbHMgPSAoYSwgYikgPT4gewogICBhc3NlcnRfZXF1YWxzKGEudXNlcm5hbWVGcmFn
bWVudCwgYi51c2VybmFtZUZyYWdtZW50LAogICAgICAgJ3VzZXJuYW1lRnJhZ21lbnRzIGFyZSBl
cXVhbCcpOwpAQCAtMTgzLDE0ICsyMjIsMTQgQEAgY29uc3QgY2FuZGlkYXRlMSA9IG5ldyBSVENJ
Y2VDYW5kaWRhdGUoewogdGVzdCgoKSA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBS
VENJY2VUcmFuc3BvcnQoKTsKICAgaWNlVHJhbnNwb3J0LnN0b3AoKTsKLSAgYXNzZXJ0X3Rocm93
cygnSW52YWxpZFN0YXRlRXJyb3InLAorICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRl
RXJyb3InLAogICAgICgpID0+IGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoY2FuZGlk
YXRlMSkpOwogICBhc3NlcnRfYXJyYXlfZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRSZW1vdGVDYW5k
aWRhdGVzKCksIFtdKTsKIH0sICdhZGRSZW1vdGVDYW5kaWRhdGUoKSB0aHJvd3MgaWYgY2xvc2Vk
Jyk7CiAKIHRlc3QoKCkgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJh
bnNwb3J0KCk7Ci0gIGFzc2VydF90aHJvd3MoJ09wZXJhdGlvbkVycm9yJywKKyAgYXNzZXJ0X3Ro
cm93c19kb20oJ09wZXJhdGlvbkVycm9yJywKICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuYWRkUmVt
b3RlQ2FuZGlkYXRlKAogICAgICAgbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IGNhbmRpZGF0ZTogJ2lu
dmFsaWQnLCBzZHBNaWQ6ICcnIH0pKSk7CiAgIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNw
b3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMoKSwgW10pOwpAQCAtMjE3LDIwICsyNTYsMjAgQEAgdGVz
dCh0ID0+IHsKIHRlc3QodCA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFu
c3BvcnQodCk7CiAgIGljZVRyYW5zcG9ydC5zdGFydChkdW1teVJlbW90ZVBhcmFtZXRlcnMpOwot
ICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsCisgIGFzc2VydF90aHJvd3NfZG9t
KCdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KGR1bW15
UmVtb3RlUGFyYW1ldGVycywgJ2NvbnRyb2xsaW5nJykpOwogfSwgJ3N0YXJ0KCkgdGhyb3dzIGlm
IGxhdGVyIGNhbGxlZCB3aXRoIGEgZGlmZmVyZW50IHJvbGUnKTsKIAogdGVzdCh0ID0+IHsKICAg
Y29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKICAgaWNlVHJhbnNwb3J0
LnN0YXJ0KHsKLSAgICB1c2VybmFtZUZyYWdtZW50OiAndXNlcicsCi0gICAgcGFzc3dvcmQ6ICdw
YXNzJywKKyAgICB1c2VybmFtZUZyYWdtZW50OiAnMScucmVwZWF0KDQpLAorICAgIHBhc3N3b3Jk
OiAnMScucmVwZWF0KDIyKSwKICAgfSk7CiAgIGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRh
dGUoY2FuZGlkYXRlMSk7CiAgIGNvbnN0IGNoYW5nZWRSZW1vdGVQYXJhbWV0ZXJzID0gewotICAg
IHVzZXJuYW1lRnJhZ21lbnQ6ICd1c2VyMicsCi0gICAgcGFzc3dvcmQ6ICdwYXNzJywKKyAgICB1
c2VybmFtZUZyYWdtZW50OiAnMicucmVwZWF0KDQpLAorICAgIHBhc3N3b3JkOiAnMicucmVwZWF0
KDIyKSwKICAgfTsKICAgaWNlVHJhbnNwb3J0LnN0YXJ0KGNoYW5nZWRSZW1vdGVQYXJhbWV0ZXJz
KTsKICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICduZXcnKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0ljZVRyYW5zcG9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0Lmh0bWwKaW5kZXggNmEwMGUxYzU5ZTcxODNm
ZDg0NzEyODYyYjZjNmIwNDRkNGJlMzQwZC4uZmUxMmMzODRlNWU1YjNmOGFiMmUyYjk2Yjc0MGQ5
MTk1OWQxNmQ5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0Lmh0
bWwKQEAgLTgxLDcgKzgxLDYgQEAKIAogICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHBhcmFtLnVz
ZXJuYW1lRnJhZ21lbnQsICdzdHJpbmcnLAogICAgICAgJ0V4cGVjdCBwYXJhbS51c2VybmFtZUZy
YWdtZW50IHRvIGJlIHNldCB3aXRoIHN0cmluZyB2YWx1ZScpOwotCiAgICAgYXNzZXJ0X2VxdWFs
cyh0eXBlb2YgcGFyYW0ucGFzc3dvcmQsICdzdHJpbmcnLAogICAgICAgJ0V4cGVjdCBwYXJhbS5w
YXNzd29yZCB0byBiZSBzZXQgd2l0aCBzdHJpbmcgdmFsdWUnKTsKICAgfQpAQCAtOTAsNyArODks
NyBAQAogICAgIGNvbnN0IHsgc3RhdGUsIGdhdGhlcmluZ1N0YXRlLCByb2xlLCBjb21wb25lbnQg
fSA9IGljZVRyYW5zcG9ydDsKIAogICAgIGFzc2VydF90cnVlKHJvbGUgPT09ICdjb250cm9sbGlu
ZycgfHwgcm9sZSA9PT0gJ2NvbnRyb2xsZWQnLAotICAgICAgJ0V4cGVjdCBSVENJY2VSb2xlIHRv
IGJlIGVpdGhlciBjb250cm9sbGluZyBvciBjb250cm9sbGVkJyk7CisgICAgICAnRXhwZWN0IFJU
Q0ljZVJvbGUgdG8gYmUgZWl0aGVyIGNvbnRyb2xsaW5nIG9yIGNvbnRyb2xsZWQsIGZvdW5kICcg
KyByb2xlKTsKIAogICAgIGFzc2VydF90cnVlKGNvbXBvbmVudCA9PT0gJ3J0cCcgfHwgY29tcG9u
ZW50ID09PSAncnRjcCcsCiAgICAgICAnRXhwZWN0IFJUQ0ljZUNvbXBvbmVudCB0byBiZSBlaXRo
ZXIgcnRwIG9yIHJ0Y3AnKTsKQEAgLTEyNCw3ICsxMjMsNyBAQAogICAgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3Nl
KCkpOwogCi0gICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcihwYzEsIHBjMikKKyAgICBy
ZXR1cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIHt9LCBwYzEsIHBjMikKICAgICAudGhlbigo
W2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsKICAgICAgIC8vIFNlbmQgYSBwaW5nIG1lc3NhZ2Ug
YW5kIHdhaXQgZm9yIGl0IGp1c3QgdG8gbWFrZSBzdXJlCiAgICAgICAvLyB0aGF0IHRoZSBjb25u
ZWN0aW9uIGlzIGZ1bGx5IHdvcmtpbmcgYmVmb3JlIHRlc3RpbmcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtZXhwZWN0ZWQudHh0CmluZGV4IGQwOTlhZGIwYWY5NDQ3N2E2YzgzN2E1Mjk4NWZh
NDY4NmFhMWYyZGIuLmIwYzg1N2YxODE3YmVhZmRhYzYyZjJkMzEwOTg2MDJhOTkyYTQ5ZjAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDE3IEBA
CiAKLUZBSUwgQWRkIG51bGwgY2FuZGlkYXRlIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3Ig
YXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVk
IHVucmVhY2hhYmxlIGNvZGUKIEZBSUwgQWRkIElDRSBjYW5kaWRhdGUgYmVmb3JlIHNldHRpbmcg
cmVtb3RlIGRlc2NyaXB0aW9uIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciBh
c3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQg
dW5yZWFjaGFibGUgY29kZQorRkFJTCBhZGRJY2VDYW5kaWRhdGUoeyJjYW5kaWRhdGUiOiIiLCJz
ZHBNaWQiOm51bGwsInNkcE1MaW5lSW5kZXgiOm51bGx9KSBzaG91bGQgd29yaywgYW5kIGFkZCBh
PWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IEFyZ3VtZW50IDEg
KCdjYW5kaWRhdGUnKSB0byBSVENQZWVyQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUgbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBSVENJY2VDYW5kaWRhdGUiCitGQUlMIGFkZEljZUNhbmRpZGF0ZSh1
bmRlZmluZWQpIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90
aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91
bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitGQUlMIGFkZEljZUNhbmRpZGF0ZShudWxsKSBzaG91bGQgd29yaywgYW5kIGFk
ZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBhc3NlcnRfdHJ1ZTogRXhw
ZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRp
byBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBhZGRJY2VDYW5kaWRh
dGUoe30pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYm90aCBt
LXNlY3Rpb25zIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2NhbmRpZGF0ZScpIHRvIFJUQ1BlZXJDb25u
ZWN0aW9uLmFkZEljZUNhbmRpZGF0ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFJUQ0ljZUNhbmRp
ZGF0ZSIKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt9KSBpbiBzdGFibGUgc2hvdWxkIHdvcmssIGFu
ZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBBcmd1
bWVudCAxICgnY2FuZGlkYXRlJykgdG8gUlRDUGVlckNvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRl
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUlRDSWNlQ2FuZGlkYXRlIgorRkFJTCBhZGRJY2VDYW5k
aWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21lbnQxLCBzZHBNaWQ6IHNkcE1p
ZDF9KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIHRoZSBmaXJz
dCBtLXNlY3Rpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6IEV4cGVjdCBsaW5lOiBjYW5kaWRhdGU6PGNhbmRpZGF0
ZS1zdHI+IgorRkFJTCBhZGRJY2VDYW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1l
RnJhZ21lbnQyLCBzZHBNTGluZUluZGV4OiAxfSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQt
b2YtY2FuZGlkYXRlcyB0byB0aGUgZmlyc3QgbS1zZWN0aW9uIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIk9wZXJhdGlvbkVycm9yOiBFeHBlY3Qg
bGluZTogY2FuZGlkYXRlOjxjYW5kaWRhdGUtc3RyPiIKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt1
c2VybmFtZUZyYWdtZW50OiAibm8gc3VjaCB1ZnJhZyJ9KSBzaG91bGQgbm90IHdvcmsgcHJvbWlz
ZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2NhbmRpZGF0ZScpIHRvIFJUQ1BlZXJDb25u
ZWN0aW9uLmFkZEljZUNhbmRpZGF0ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFJUQ0ljZUNhbmRp
ZGF0ZSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gT3BlcmF0aW9uRXJyb3I6IHByb3BlcnR5
ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDAKIFBBU1MgQWRkIElDRSBj
YW5kaWRhdGUgYWZ0ZXIgc2V0dGluZyByZW1vdGUgZGVzY3JpcHRpb24gc2hvdWxkIHN1Y2NlZWQg
CiBQQVNTIEFkZCBJQ0UgY2FuZGlkYXRlIHdpdGggUlRDSWNlQ2FuZGlkYXRlIHNob3VsZCBzdWNj
ZWVkIAogUEFTUyBBZGQgY2FuZGlkYXRlIHdpdGggb25seSB2YWxpZCBzZHBNaWQgc2hvdWxkIHN1
Y2NlZWQgCitQQVNTIEFkZCBjYW5kaWRhdGUgd2l0aCBvbmx5IHZhbGlkIHNkcE1pZCBhbmQgUlRD
SWNlQ2FuZGlkYXRlIHNob3VsZCBzdWNjZWVkIAogUEFTUyBBZGQgY2FuZGlkYXRlIHdpdGggb25s
eSB2YWxpZCBzZHBNTGluZUluZGV4IHNob3VsZCBzdWNjZWVkIAogRkFJTCBhZGRJY2VDYW5kaWRh
dGUgd2l0aCBmaXJzdCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXggYWRkIGNhbmRpZGF0ZSB0byBm
aXJzdCBtZWRpYSBzdHJlYW0gYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBi
ZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKIEZBSUwgYWRkSWNlQ2FuZGlkYXRlIHdpdGggc2Vjb25kIHNkcE1pZCBh
bmQgc2RwTUxpbmVJbmRleCBzaG91bGQgYWRkIGNhbmRpZGF0ZSB0byBzZWNvbmQgbWVkaWEgc3Ry
ZWFtIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYWZ0ZXIg
bWVkaWEgbGluZSBtPXZpZGVvIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCkBAIC0xMyw4ICsyMSw2
IEBAIEZBSUwgQWRkIHdpdGggZW1wdHkgY2FuZGlkYXRlIHN0cmluZyAoZW5kIG9mIGNhbmRpZGF0
ZSkgc2hvdWxkIHN1Y2NlZWQgcHJvbWlzZV90CiBQQVNTIEFkZCBjYW5kaWRhdGUgd2l0aCBib3Ro
IHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCBtYW51YWxseSBzZXQgdG8gbnVsbCBzaG91bGQgcmVq
ZWN0IHdpdGggVHlwZUVycm9yIAogUEFTUyBBZGQgY2FuZGlkYXRlIHdpdGggb25seSB2YWxpZCBj
YW5kaWRhdGUgc3RyaW5nIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3IgCiBQQVNTIEFkZCBj
YW5kaWRhdGUgd2l0aCBpbnZhbGlkIGNhbmRpZGF0ZSBzdHJpbmcgYW5kIGJvdGggc2RwTWlkIGFu
ZCBzZHBNTGluZUluZGV4IG51bGwgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvciAKLVBBU1Mg
QWRkIGNhbmRpZGF0ZSB3aXRoIGVtcHR5IGRpY3Qgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJv
ciAKLVBBU1MgQWRkIGNhbmRpZGF0ZSB3aXRoIG1hbnVhbGx5IGZpbGxlZCBkZWZhdWx0IHZhbHVl
cyBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yIAogRkFJTCBBZGQgY2FuZGlkYXRlIHdpdGgg
aW52YWxpZCBzZHBNaWQgc2hvdWxkIHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9yIGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCiBGQUlMIEFkZCBjYW5kaWRhdGUgd2l0aCBpbnZhbGlkIHNkcE1MaW5lSW5kZXgg
c2hvdWxkIHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9yIGFzc2VydF91bnJlYWNoZWQ6IFNob3Vs
ZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiBQQVNT
IEludmFsaWQgc2RwTUxpbmVJbmRleCBzaG91bGQgYmUgaWdub3JlZCBpZiB2YWxpZCBzZHBNaWQg
aXMgcHJvdmlkZWQgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtdGlt
aW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS10aW1p
bmcuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyY2EzYWYyNmZhNTc1Yzc5NGY5NWUz
YTYyOWQ0MjkzMWNlMTgwNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworRkFJ
TCBhZGRJY2VDYW5kaWRhdGUgaXMgbm90IHJlc29sdmVkIGZpcnN0IGlmIDJ4IHNldExvY2FsRGVz
Y3JpcHRpb24gb3BlcmF0aW9ucyBhcmUgcGVuZGluZyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzIgorRkFJTCBhZGRJY2VDYW5kaWRhdGUgYW5kIHNldExvY2FsRGVzY3JpcHRpb24gYXJlIHJl
c29sdmVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLCBhcyBkZWZpbmVkIGJ5IHRoZSBvcGVyYXRpb25z
IGNoYWluIHNwZWNpZmljYXRpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK0ZBSUwg
b25pY2VjYW5kaWRhdGUgZmlyZXMgYWZ0ZXIgcmVzb2x2aW5nIHNldExvY2FsRGVzY3JpcHRpb24g
aW4gb2ZmZXJlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorUEFTUyBvbmljZWNhbmRp
ZGF0ZSBmaXJlcyBhZnRlciByZXNvbHZpbmcgc2V0TG9jYWxEZXNjcmlwdGlvbiBpbiBhbnN3ZXJl
ciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLXRpbWluZy5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLXRpbWluZy5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk3OTM4NDRmNTY5MDA5Mjc0NDdmMDgwZWJiYzkyMDExZDYwMWZiOWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtdGltaW5nLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSwxNDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3Qn
OworCisvLyBJbiB0aGlzIHRlc3QsIHRoZSBwcm9taXNlcyBzaG91bGQgcmVzb2x2ZSBpbiB0aGUg
ZXhlY3V0aW9uIG9yZGVyCisvLyAoc2V0TG9jYWxEZXNjcmlwdGlvbiwgc2V0TG9jYWxEZXNjcmlw
dGlvbiwgYWRkSWNlQ2FuZGlkYXRlKSBhcyBpcyBlbnN1cmVkIGJ5CisvLyB0aGUgT3BlcmF0aW9u
cyBDaGFpbjsgaWYgYW4gb3BlcmF0aW9uIGlzIHBlbmRpbmcsIGV4ZWN1dGluZyBhbm90aGVyIG9w
ZXJhdGlvbgorLy8gd2lsbCBxdWV1ZSBpdC4gVGhpcyB0ZXN0IHdpbGwgZmFpbCBpZiBhbiBPcGVy
YXRpb25zIENoYWluIGlzIG5vdCBpbXBsZW1lbnRlZCwKKy8vIGJ1dCBpdCBnaXZlcyB0aGUgaW1w
bGVtZW50YXRpb24gc29tZSBzbGFjazogaXQgb25seSBlbnN1cmVzIHRoYXQKKy8vIGFkZEljZUNh
bmRpZGF0ZSgpIGlzIG5vdCByZXNvbHZlZCBmaXJzdCwgYWxsb3dpbmcgdGltaW5nIGlzc3VlcyBp
biByZXNvbHZpbmcKKy8vIHByb21pc2VzIHdoZXJlIHRoZSB0ZXN0IHN0aWxsIHBhc3NlcyBldmVu
IGlmIGFkZEljZUNhbmRpZGF0ZSgpIGlzIHJlc29sdmVkCisvLyAqYmVmb3JlKiB0aGUgc2Vjb25k
IHNldExvY2FsRGVzY3JpcHRpb24oKS4KKy8vCisvLyBUaGlzIHRlc3QgY292ZXJzIENocm9tZSBp
c3N1ZSAoaHR0cHM6Ly9jcmJ1Zy5jb20vMTAxOTIyMiksIGJ1dCBkb2VzIG5vdAorLy8gcmVxdWly
ZSBzZXRMb2NhbERlc2NyaXB0aW9uLXByb21pc2VzIHRvIHJlc29sdmUgaW1tZWRpYXRlbHkgd2hp
Y2ggaXMgYW5vdGhlcgorLy8gQ2hyb21lIGJ1ZyAoaHR0cHM6Ly9jcmJ1Zy5jb20vMTAxOTIzMiku
IFRoZSB0cnVlIG9yZGVyIGlzIGNvdmVyZWQgYnkgdGhlIG5leHQKKy8vIHRlc3QuCisvLyBUT0RP
KGh0dHBzOi8vY3JidWcuY29tLzEwMTkyMzIpOiBEZWxldGUgdGhpcyB0ZXN0IHdoZW4gdGhlIG5l
eHQgdGVzdCBwYXNzZXMKKy8vIGluIENocm9tZS4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgIGNh
bGxlci5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKworICBjb25zdCBjYW5kaWRhdGVQcm9taXNl
ID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgY2FsbGVyLm9uaWNlY2FuZGlkYXRlID0g
ZSA9PiByZXNvbHZlKGUuY2FuZGlkYXRlKTsKKyAgfSk7CisgIGF3YWl0IGNhbGxlci5zZXRMb2Nh
bERlc2NyaXB0aW9uKGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpKTsKKyAgYXdhaXQgY2FsbGVl
LnNldFJlbW90ZURlc2NyaXB0aW9uKGNhbGxlci5sb2NhbERlc2NyaXB0aW9uKTsKKyAgY29uc3Qg
Y2FuZGlkYXRlID0gYXdhaXQgY2FuZGlkYXRlUHJvbWlzZTsKKworICAvLyBDaGFpbiBzZXRMb2Nh
bERlc2NyaXB0aW9uKCksIHNldExvY2FsRGVzY3JpcHRpb24oKSBhbmQgYWRkSWNlQ2FuZGlkYXRl
KCkKKyAgLy8gd2l0aG91dCBwZXJmb3JtaW5nIGF3YWl0IGJldHdlZW4gdGhlIGNhbGxzLgorICBj
b25zdCBwZW5kaW5nUHJvbWlzZXMgPSBbXTsKKyAgY29uc3QgcmVzb2x2ZU9yZGVyID0gW107Cisg
IHBlbmRpbmdQcm9taXNlcy5wdXNoKGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKCkudGhlbigo
KSA9PiB7CisgICAgcmVzb2x2ZU9yZGVyLnB1c2goJ3NldExvY2FsRGVzY3JpcHRpb24gMScpOwor
ICB9KSk7CisgIHBlbmRpbmdQcm9taXNlcy5wdXNoKGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9u
KCkudGhlbigoKSA9PiB7CisgICAgcmVzb2x2ZU9yZGVyLnB1c2goJ3NldExvY2FsRGVzY3JpcHRp
b24gMicpOworICB9KSk7CisgIHBlbmRpbmdQcm9taXNlcy5wdXNoKGNhbGxlZS5hZGRJY2VDYW5k
aWRhdGUoY2FuZGlkYXRlKS50aGVuKCgpID0+IHsKKyAgICByZXNvbHZlT3JkZXIucHVzaCgnYWRk
SWNlQ2FuZGlkYXRlJyk7CisgIH0pKTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocGVuZGluZ1Byb21p
c2VzKTsKKworICBhc3NlcnRfZXF1YWxzKHJlc29sdmVPcmRlclswXSwgJ3NldExvY2FsRGVzY3Jp
cHRpb24gMScpOworfSwgJ2FkZEljZUNhbmRpZGF0ZSBpcyBub3QgcmVzb2x2ZWQgZmlyc3QgaWYg
Mnggc2V0TG9jYWxEZXNjcmlwdGlvbiAnICsKKyAgICdvcGVyYXRpb25zIGFyZSBwZW5kaW5nJyk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOwor
ICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgIGNhbGxlci5hZGRUcmFuc2NlaXZlcignYXVkaW8n
KTsKKworICBjb25zdCBjYW5kaWRhdGVQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7
CisgICAgY2FsbGVyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiByZXNvbHZlKGUuY2FuZGlkYXRlKTsK
KyAgfSk7CisgIGF3YWl0IGNhbGxlci5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IGNhbGxlci5j
cmVhdGVPZmZlcigpKTsKKyAgYXdhaXQgY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKGNhbGxl
ci5sb2NhbERlc2NyaXB0aW9uKTsKKyAgY29uc3QgY2FuZGlkYXRlID0gYXdhaXQgY2FuZGlkYXRl
UHJvbWlzZTsKKworICAvLyBDaGFpbiBzZXRMb2NhbERlc2NyaXB0aW9uKCksIHNldExvY2FsRGVz
Y3JpcHRpb24oKSBhbmQgYWRkSWNlQ2FuZGlkYXRlKCkKKyAgLy8gd2l0aG91dCBwZXJmb3JtaW5n
IGF3YWl0IGJldHdlZW4gdGhlIGNhbGxzLgorICBjb25zdCBwZW5kaW5nUHJvbWlzZXMgPSBbXTsK
KyAgY29uc3QgcmVzb2x2ZU9yZGVyID0gW107CisgIHBlbmRpbmdQcm9taXNlcy5wdXNoKGNhbGxl
ZS5zZXRMb2NhbERlc2NyaXB0aW9uKCkudGhlbigoKSA9PiB7CisgICAgcmVzb2x2ZU9yZGVyLnB1
c2goJ3NldExvY2FsRGVzY3JpcHRpb24gMScpOworICB9KSk7CisgIHBlbmRpbmdQcm9taXNlcy5w
dXNoKGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKCkudGhlbigoKSA9PiB7CisgICAgcmVzb2x2
ZU9yZGVyLnB1c2goJ3NldExvY2FsRGVzY3JpcHRpb24gMicpOworICB9KSk7CisgIHBlbmRpbmdQ
cm9taXNlcy5wdXNoKGNhbGxlZS5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKS50aGVuKCgpID0+
IHsKKyAgICByZXNvbHZlT3JkZXIucHVzaCgnYWRkSWNlQ2FuZGlkYXRlJyk7CisgIH0pKTsKKyAg
YXdhaXQgUHJvbWlzZS5hbGwocGVuZGluZ1Byb21pc2VzKTsKKworICAvLyBUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCBib3RoIGlzc3VlcyBkZXNjcmliZWQgaW4gaHR0cHM6Ly9jcmJ1Zy5jb20vMTAx
OTIyMgorICAvLyBhbmQgaHR0cHM6Ly9jcmJ1Zy5jb20vMTAxOTIzMiBhcmUgZml4ZWQuIElmIHRo
aXMgdGVzdCBwYXNzZXMgaW4gQ2hyb21lLCB0aGUKKyAgLy8gSUNFIGNhbmRpZGF0ZSBleGNoYW5n
ZSBpc3N1ZXMgZGVzY3JpYmVkIGluCisgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2lzc3Vlcy8xOTg2NiBzaG91bGQgYmUgcmVzb2x2ZWQuCisgIGFzc2VydF9h
cnJheV9lcXVhbHMoCisgICAgICByZXNvbHZlT3JkZXIsCisgICAgICBbJ3NldExvY2FsRGVzY3Jp
cHRpb24gMScsICdzZXRMb2NhbERlc2NyaXB0aW9uIDInLCAnYWRkSWNlQ2FuZGlkYXRlJ10pOwor
fSwgJ2FkZEljZUNhbmRpZGF0ZSBhbmQgc2V0TG9jYWxEZXNjcmlwdGlvbiBhcmUgcmVzb2x2ZWQg
aW4gdGhlIGNvcnJlY3QgJyArCisgICAnb3JkZXIsIGFzIGRlZmluZWQgYnkgdGhlIG9wZXJhdGlv
bnMgY2hhaW4gc3BlY2lmaWNhdGlvbicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IGNhbGxlci5jbG9zZSgpKTsKKyAgY29uc3QgY2FsbGVlID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworICBjYWxs
ZXIuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgIGxldCBldmVudHMgPSBbXTsKKyAgbGV0IHBl
bmRpbmdQcm9taXNlcyA9IFtdOworCisgIGNvbnN0IG9uQ2FuZGlkYXRlUHJvbWlzZSA9IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4geworICAgIGNhbGxlci5vbmljZWNhbmRpZGF0ZSA9ICgpID0+IHsK
KyAgICAgIGV2ZW50cy5wdXNoKCdjYW5kaWRhdGUgZ2VuZXJhdGVkJyk7CisgICAgICByZXNvbHZl
KCk7CisgICAgfQorICB9KTsKKyAgcGVuZGluZ1Byb21pc2VzLnB1c2gob25DYW5kaWRhdGVQcm9t
aXNlKTsKKyAgcGVuZGluZ1Byb21pc2VzLnB1c2goY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24o
KS50aGVuKCgpID0+IHsKKyAgICBldmVudHMucHVzaCgnc2V0TG9jYWxEZXNjcmlwdGlvbicpOwor
ICB9KSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHBlbmRpbmdQcm9taXNlcyk7CisgIGFzc2VydF9h
cnJheV9lcXVhbHMoZXZlbnRzLCBbJ3NldExvY2FsRGVzY3JpcHRpb24nLCAnY2FuZGlkYXRlIGdl
bmVyYXRlZCddKTsKK30sICdvbmljZWNhbmRpZGF0ZSBmaXJlcyBhZnRlciByZXNvbHZpbmcgc2V0
TG9jYWxEZXNjcmlwdGlvbiBpbiBvZmZlcmVyJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7Cisg
IGNhbGxlci5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKyAgbGV0IGV2ZW50cyA9IFtdOworICBs
ZXQgcGVuZGluZ1Byb21pc2VzID0gW107CisKKyAgY2FsbGVyLm9uaWNlY2FuZGlkYXRlID0gKGV2
KSA9PiB7CisgICAgaWYgKGV2LmNhbmRpZGF0ZSkgeworICAgICAgY2FsbGVlLmFkZEljZUNhbmRp
ZGF0ZShldi5jYW5kaWRhdGUpOworICAgIH0KKyAgfQorICBjb25zdCBvZmZlciA9IGF3YWl0IGNh
bGxlci5jcmVhdGVPZmZlcigpOworICBjb25zdCBvbkNhbmRpZGF0ZVByb21pc2UgPSBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKKyAgICBjYWxsZWUub25pY2VjYW5kaWRhdGUgPSAoKSA9PiB7Cisg
ICAgICBldmVudHMucHVzaCgnY2FuZGlkYXRlIGdlbmVyYXRlZCcpOworICAgICAgcmVzb2x2ZSgp
OworICAgIH0KKyAgfSk7CisgIGF3YWl0IGNhbGxlZS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZl
cik7CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgcGVu
ZGluZ1Byb21pc2VzLnB1c2gob25DYW5kaWRhdGVQcm9taXNlKTsKKyAgcGVuZGluZ1Byb21pc2Vz
LnB1c2goY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKS50aGVuKCgpID0+IHsKKyAg
ICBldmVudHMucHVzaCgnc2V0TG9jYWxEZXNjcmlwdGlvbicpOworICB9KSk7CisgIGF3YWl0IFBy
b21pc2UuYWxsKHBlbmRpbmdQcm9taXNlcyk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnRz
LCBbJ3NldExvY2FsRGVzY3JpcHRpb24nLCAnY2FuZGlkYXRlIGdlbmVyYXRlZCddKTsKK30sICdv
bmljZWNhbmRpZGF0ZSBmaXJlcyBhZnRlciByZXNvbHZpbmcgc2V0TG9jYWxEZXNjcmlwdGlvbiBp
biBhbnN3ZXJlcicpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZElj
ZUNhbmRpZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwKaW5kZXgg
MjI4M2M2ODM1ZTE0MDFmMzQxNmQ3OWE2MjgxZjI1YzA5ZjFiMzAyMi4uYzY4ZTQ0MmEyZDUwOTRm
MjJkNTA4ZWM4YjY4MDRiYzJhNThkMDcyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNl
Q2FuZGlkYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwKQEAg
LTg1LDQ0ICs4NSwzNyBAQCBhPXJ0Y3AtcnNpemUKICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2Uo
L1suKis/XiR7fSgpfFtcXVxcXS9nLCAnXFwkJicpOwogICB9CiAKLSAgLy8gQ2hlY2sgdGhhdCBh
IGNhbmRpZGF0ZSBsaW5lIGlzIGZvdW5kIGFmdGVyIHRoZSBmaXJzdCBtZWRpYSBsaW5lCi0gIC8v
IGJ1dCBiZWZvcmUgdGhlIHNlY29uZCwgaS5lLiBpdCBiZWxvbmdzIHRvIHRoZSBmaXJzdCBtZWRp
YSBzdHJlYW0KLSAgZnVuY3Rpb24gYXNzZXJ0X2NhbmRpZGF0ZV9saW5lX2JldHdlZW4oc2RwLCBi
ZWZvcmVNZWRpYUxpbmUsIGNhbmRpZGF0ZUxpbmUsIGFmdGVyTWVkaWFMaW5lKSB7CisgIGZ1bmN0
aW9uIGlzX2NhbmRpZGF0ZV9saW5lX2JldHdlZW4oc2RwLCBiZWZvcmVNZWRpYUxpbmUsIGNhbmRp
ZGF0ZUxpbmUsIGFmdGVyTWVkaWFMaW5lKSB7CiAgICAgY29uc3QgbGluZTEgPSBlc2NhcGVSZWdF
eHAoYmVmb3JlTWVkaWFMaW5lKTsKICAgICBjb25zdCBsaW5lMiA9IGVzY2FwZVJlZ0V4cChjYW5k
aWRhdGVMaW5lKTsKICAgICBjb25zdCBsaW5lMyA9IGVzY2FwZVJlZ0V4cChhZnRlck1lZGlhTGlu
ZSk7CiAKICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYCR7bGluZTF9W15dKyR7bGluZTJ9
W15dKyR7bGluZTN9YCk7CisgICAgcmV0dXJuIHJlZ2V4LnRlc3Qoc2RwKTsKKyAgfQogCi0gICAg
YXNzZXJ0X3RydWUocmVnZXgudGVzdChzZHApLAorICAvLyBDaGVjayB0aGF0IGEgY2FuZGlkYXRl
IGxpbmUgaXMgZm91bmQgYWZ0ZXIgdGhlIGZpcnN0IG1lZGlhIGxpbmUKKyAgLy8gYnV0IGJlZm9y
ZSB0aGUgc2Vjb25kLCBpLmUuIGl0IGJlbG9uZ3MgdG8gdGhlIGZpcnN0IG1lZGlhIHN0cmVhbQor
ICBmdW5jdGlvbiBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYmV0d2VlbihzZHAsIGJlZm9yZU1lZGlh
TGluZSwgY2FuZGlkYXRlTGluZSwgYWZ0ZXJNZWRpYUxpbmUpIHsKKyAgICBhc3NlcnRfdHJ1ZShp
c19jYW5kaWRhdGVfbGluZV9iZXR3ZWVuKHNkcCwgYmVmb3JlTWVkaWFMaW5lLCBjYW5kaWRhdGVM
aW5lLCBhZnRlck1lZGlhTGluZSksCiAgICAgICBgRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJl
IGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgJHtiZWZvcmVNZWRpYUxpbmV9IGFuZCAke2FmdGVy
TWVkaWFMaW5lfWApOwogICB9CiAKICAgLy8gQ2hlY2sgdGhhdCBhIGNhbmRpZGF0ZSBsaW5lIGlz
IGZvdW5kIGFmdGVyIHRoZSBzZWNvbmQgbWVkaWEgbGluZQogICAvLyBpLmUuIGl0IGJlbG9uZ3Mg
dG8gdGhlIHNlY29uZCBtZWRpYSBzdHJlYW0KLSAgZnVuY3Rpb24gYXNzZXJ0X2NhbmRpZGF0ZV9s
aW5lX2FmdGVyKHNkcCwgYmVmb3JlTWVkaWFMaW5lLCBjYW5kaWRhdGVMaW5lKSB7CisgIGZ1bmN0
aW9uIGlzX2NhbmRpZGF0ZV9saW5lX2FmdGVyKHNkcCwgYmVmb3JlTWVkaWFMaW5lLCBjYW5kaWRh
dGVMaW5lKSB7CiAgICAgY29uc3QgbGluZTEgPSBlc2NhcGVSZWdFeHAoYmVmb3JlTWVkaWFMaW5l
KTsKICAgICBjb25zdCBsaW5lMiA9IGVzY2FwZVJlZ0V4cChjYW5kaWRhdGVMaW5lKTsKIAogICAg
IGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgJHtsaW5lMX1bXl0rJHtsaW5lMn1gKTsKIAotICAg
IGFzc2VydF90cnVlKHJlZ2V4LnRlc3Qoc2RwKSwKLSAgICAgIGBFeHBlY3QgY2FuZGlkYXRlIGxp
bmUgdG8gYmUgZm91bmQgYWZ0ZXIgbWVkaWEgbGluZSAke2JlZm9yZU1lZGlhTGluZX1gKTsKKyAg
ICByZXR1cm4gcmVnZXgudGVzdChzZHApOwogICB9CiAKLSAgLy8gUmVqZWN0IGJlY2F1c2UgV2Vi
SURMIGZvciBhZGRJY2VDYW5kaWRhdGUgZG9lcyBub3QgYWxsb3cgbnVsbCBhcmd1bWVudAotICAv
LyBudWxsIGNhbiBiZSBhY2NpZGVudGFsbHkgcGFzc2VkIGZyb20gb25pY2VjYW5kaWRhdGUgZXZl
bnQgaGFuZGxlcgotICAvLyB3aGVuIG51bGwgaXMgdXNlZCB0byBpbmRpY2F0ZSBlbmQgb2YgY2Fu
ZGlkYXRlCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotCi0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLQot
ICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYykKLSAgICAudGhl
bigoKSA9PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAg
ICAgcGMuYWRkSWNlQ2FuZGlkYXRlKG51bGwpKSk7Ci0gIH0sICdBZGQgbnVsbCBjYW5kaWRhdGUg
c2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcicpOworICBmdW5jdGlvbiBhc3NlcnRfY2FuZGlk
YXRlX2xpbmVfYWZ0ZXIoc2RwLCBiZWZvcmVNZWRpYUxpbmUsIGNhbmRpZGF0ZUxpbmUpIHsKKyAg
ICBhc3NlcnRfdHJ1ZShpc19jYW5kaWRhdGVfbGluZV9hZnRlcihzZHAsIGJlZm9yZU1lZGlhTGlu
ZSwgY2FuZGlkYXRlTGluZSksCisgICAgICBgRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZv
dW5kIGFmdGVyIG1lZGlhIGxpbmUgJHtiZWZvcmVNZWRpYUxpbmV9YCk7CisgIH0KIAogICAvKgog
ICAgIDQuNC4yLiAgYWRkSWNlQ2FuZGlkYXRlCkBAIC0xMzUsNyArMTI4LDcgQEAgYT1ydGNwLXJz
aXplCiAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogCi0gICAgcmV0dXJu
IHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAorICAgIHJldHVybiBwcm9t
aXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgICBwYy5hZGRJY2VD
YW5kaWRhdGUoewogICAgICAgICBjYW5kaWRhdGU6IGNhbmRpZGF0ZVN0cjEsCiAgICAgICAgIHNk
cE1pZDogc2RwTWlkMSwKQEAgLTE0Nyw2ICsxNDAsOTAgQEAgYT1ydGNwLXJzaXplCiAgIC8qCiAg
ICAgU3VjY2VzcyBjYXNlcwogICAgKi8KKworICAvLyBBbGwgb2YgdGhlc2Ugc2hvdWxkIHdvcmss
IGJlY2F1c2UgYWxsIG9mIHRoZXNlIGVuZCB1cCBiZWluZyBlcXVpdmFsZW50IHRvIHRoZQorICAv
LyBzYW1lIHRoaW5nOyBhbiBlbmQtb2YtY2FuZGlkYXRlcyBzaWduYWwgZm9yIGFsbCBsZXZlbHMv
bWlkcy91ZnJhZ3MuCisgIFsKKyAgICAvLyBUaGlzIGlzIGp1c3QgdGhlIGRlZmF1bHQuIEV2ZXJ5
dGhpbmcgZWxzZSBoZXJlIGlzIGVxdWl2YWxlbnQgdG8gdGhpcy4KKyAgICB7CisgICAgICBjYW5k
aWRhdGU6ICcnLAorICAgICAgc2RwTWlkOiBudWxsLAorICAgICAgc2RwTUxpbmVJbmRleDogbnVs
bCwKKyAgICAgIHVzZXJuYW1lRnJhZ21lbnQ6IHVuZGVmaW5lZAorICAgIH0sCisgICAgLy8gVGhl
IGFyZyBpcyBvcHRpb25hbCwgc28gd2hlbiBwYXNzaW5nIHVuZGVmaW5lZCB3ZSdsbCBqdXN0IGdl
dCB0aGUgZGVmYXVsdAorICAgIHVuZGVmaW5lZCwKKyAgICAvLyBUaGUgYXJnIGlzIG9wdGlvbmFs
LCBidXQgbm90IG51bGxhYmxlLCBzbyB3ZSBnZXQgdGhlIGRlZmF1bHQgYWdhaW4KKyAgICBudWxs
LAorICAgIC8vIE1lbWJlcnMgaW4gdGhlIGRpY3Rpb25hcnkgdGFrZSB0aGVpciBkZWZhdWx0IHZh
bHVlcworICAgIHt9CisgIF0uZm9yRWFjaChpbml0ID0+IHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHNlc3Npb25EZXNjKTsKKyAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoaW5pdCk7
CisgICAgYXNzZXJ0X2NhbmRpZGF0ZV9saW5lX2JldHdlZW4ocGMucmVtb3RlRGVzY3JpcHRpb24u
c2RwLAorICAgICAgbWVkaWFMaW5lMSwgZW5kT2ZDYW5kaWRhdGVMaW5lLCBtZWRpYUxpbmUyKTsK
KyAgICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYWZ0ZXIocGMucmVtb3RlRGVzY3JpcHRpb24uc2Rw
LAorICAgICAgbWVkaWFMaW5lMiwgZW5kT2ZDYW5kaWRhdGVMaW5lKTsKKyAgfSwgYGFkZEljZUNh
bmRpZGF0ZSgke0pTT04uc3RyaW5naWZ5KGluaXQpfSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1l
bmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnNgKSk7CisKKyAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBhd2FpdCBwYy5zZXRSZW1v
dGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYyk7CisgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlw
dGlvbihhd2FpdCBwYy5jcmVhdGVBbnN3ZXIoKSk7CisgICAgYXdhaXQgcGMuYWRkSWNlQ2FuZGlk
YXRlKHt9KTsKKyAgICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYmV0d2VlbihwYy5yZW1vdGVEZXNj
cmlwdGlvbi5zZHAsCisgICAgICBtZWRpYUxpbmUxLCBlbmRPZkNhbmRpZGF0ZUxpbmUsIG1lZGlh
TGluZTIpOworICAgIGFzc2VydF9jYW5kaWRhdGVfbGluZV9hZnRlcihwYy5yZW1vdGVEZXNjcmlw
dGlvbi5zZHAsCisgICAgICBtZWRpYUxpbmUyLCBlbmRPZkNhbmRpZGF0ZUxpbmUpOworICB9LCAn
YWRkSWNlQ2FuZGlkYXRlKHt9KSBpbiBzdGFibGUgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQt
b2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMnKTsKKworICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBhd2FpdCBwYy5zZXRSZW1v
dGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYyk7CisgICAgYXdhaXQgcGMuYWRkSWNlQ2FuZGlkYXRl
KHsKKyAgICAgIHVzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21lbnQxLAorICAgICAgc2Rw
TWlkOiBzZHBNaWQxCisgICAgfSk7CisgICAgYXNzZXJ0X2NhbmRpZGF0ZV9saW5lX2JldHdlZW4o
cGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAorICAgICAgbWVkaWFMaW5lMSwgZW5kT2ZDYW5kaWRh
dGVMaW5lLCBtZWRpYUxpbmUyKTsKKyAgICBhc3NlcnRfZmFsc2UoaXNfY2FuZGlkYXRlX2xpbmVf
YWZ0ZXIocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAorICAgICAgbWVkaWFMaW5lMiwgZW5kT2ZD
YW5kaWRhdGVMaW5lKSk7CisgIH0sICdhZGRJY2VDYW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6
IHVzZXJuYW1lRnJhZ21lbnQxLCBzZHBNaWQ6IHNkcE1pZDF9KSBzaG91bGQgd29yaywgYW5kIGFk
ZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIHRoZSBmaXJzdCBtLXNlY3Rpb24nKTsKKworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBhd2Fp
dCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYyk7CisgICAgYXdhaXQgcGMuYWRk
SWNlQ2FuZGlkYXRlKHsKKyAgICAgIHVzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21lbnQy
LAorICAgICAgc2RwTUxpbmVJbmRleDogMQorICAgIH0pOworICAgIGFzc2VydF9mYWxzZShpc19j
YW5kaWRhdGVfbGluZV9iZXR3ZWVuKHBjLnJlbW90ZURlc2NyaXB0aW9uLnNkcCwKKyAgICAgIG1l
ZGlhTGluZTEsIGVuZE9mQ2FuZGlkYXRlTGluZSwgbWVkaWFMaW5lMikpOworICAgIGFzc2VydF90
cnVlKGlzX2NhbmRpZGF0ZV9saW5lX2FmdGVyKHBjLnJlbW90ZURlc2NyaXB0aW9uLnNkcCwKKyAg
ICAgIG1lZGlhTGluZTIsIGVuZE9mQ2FuZGlkYXRlTGluZSkpOworICB9LCAnYWRkSWNlQ2FuZGlk
YXRlKHt1c2VybmFtZUZyYWdtZW50OiB1c2VybmFtZUZyYWdtZW50Miwgc2RwTUxpbmVJbmRleDog
MX0pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gdGhlIGZpcnN0
IG0tc2VjdGlvbicpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKKworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25E
ZXNjKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdPcGVyYXRpb25FcnJvcics
CisgICAgICBwYy5hZGRJY2VDYW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6ICJubyBzdWNoIHVm
cmFnIn0pKTsKKyAgfSwgJ2FkZEljZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFnbWVudDogIm5vIHN1
Y2ggdWZyYWcifSkgc2hvdWxkIG5vdCB3b3JrJyk7CisKICAgcHJvbWlzZV90ZXN0KHQgPT4gewog
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKQEAgLTE4Niw2ICsyNjMs
MTcgQEAgYT1ydGNwLXJzaXplCiAgICAgICAgIHNkcE1pZDogc2RwTWlkMSB9KSk7CiAgIH0sICdB
ZGQgY2FuZGlkYXRlIHdpdGggb25seSB2YWxpZCBzZHBNaWQgc2hvdWxkIHN1Y2NlZWQnKTsKIAor
ICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICByZXR1
cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpCisgICAgICAudGhlbigoKSA9
PiBwYy5hZGRJY2VDYW5kaWRhdGUobmV3IFJUQ0ljZUNhbmRpZGF0ZSh7CisgICAgICAgIGNhbmRp
ZGF0ZTogY2FuZGlkYXRlU3RyMSwKKyAgICAgICAgc2RwTWlkOiBzZHBNaWQxIH0pKSk7CisgIH0s
ICdBZGQgY2FuZGlkYXRlIHdpdGggb25seSB2YWxpZCBzZHBNaWQgYW5kIFJUQ0ljZUNhbmRpZGF0
ZSBzaG91bGQgc3VjY2VlZCcpOworCiAgIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogCkBAIC0yNTQsNyArMzQyLDcgQEAgYT1ydGNw
LXJzaXplCiAgICAgICBjYW5kaWRhdGU6IGNhbmRpZGF0ZVN0cjEsCiAgICAgICBzZHBNaWQ6IHNk
cE1pZDEsCiAgICAgICBzZHBNTGluZUluZGV4OiBzZHBNTGluZUluZGV4MSwKLSAgICAgIHVmcmFn
OiBudWxsCisgICAgICB1c2VybmFtZUZyYWdtZW50OiBudWxsCiAgICAgfSkpCiAgICAgLnRoZW4o
KCkgPT4gewogICAgICAgYXNzZXJ0X2NhbmRpZGF0ZV9saW5lX2JldHdlZW4ocGMucmVtb3RlRGVz
Y3JpcHRpb24uc2RwLApAQCAtMzQyLDcgKzQzMCw3IEBAIGE9cnRjcC1yc2l6ZQogCiAgICAgcmV0
dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKQogICAgIC50aGVuKCgpID0+
Ci0gICAgICBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAorICAgICAgcHJvbWlz
ZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwKICAgICAgICAgcGMuYWRkSWNlQ2FuZGlkYXRlKHsK
ICAgICAgICAgICBjYW5kaWRhdGU6IGNhbmRpZGF0ZVN0cjEsCiAgICAgICAgICAgc2RwTWlkOiBu
dWxsLApAQCAtMzU3LDcgKzQ0NSw3IEBAIGE9cnRjcC1yc2l6ZQogCiAgICAgcmV0dXJuIHBjLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKQogICAgIC50aGVuKCgpID0+Ci0gICAgICBw
cm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAorICAgICAgcHJvbWlzZV9yZWplY3Rz
X2pzKHQsIFR5cGVFcnJvciwKICAgICAgICAgcGMuYWRkSWNlQ2FuZGlkYXRlKHsKICAgICAgICAg
ICBjYW5kaWRhdGU6IGNhbmRpZGF0ZVN0cjEKICAgICAgICAgfSkpKTsKQEAgLTM3MCw3ICs0NTgs
NyBAQCBhPXJ0Y3AtcnNpemUKIAogICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihz
ZXNzaW9uRGVzYykKICAgICAudGhlbigoKSA9PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsIG5l
dyBUeXBlRXJyb3IoKSwKKyAgICAgIHByb21pc2VfcmVqZWN0c19qcyh0LCBUeXBlRXJyb3IsCiAg
ICAgICAgIHBjLmFkZEljZUNhbmRpZGF0ZSh7CiAgICAgICAgICAgY2FuZGlkYXRlOiBpbnZhbGlk
Q2FuZGlkYXRlU3RyLAogICAgICAgICAgIHNkcE1pZDogbnVsbCwKQEAgLTM3OCwzMyArNDY2LDYg
QEAgYT1ydGNwLXJzaXplCiAgICAgICAgIH0pKSk7CiAgIH0sICdBZGQgY2FuZGlkYXRlIHdpdGgg
aW52YWxpZCBjYW5kaWRhdGUgc3RyaW5nIGFuZCBib3RoIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRl
eCBudWxsIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3InKTsKIAotICBwcm9taXNlX3Rlc3Qo
dCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLQotICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0KLSAgICByZXR1cm4gcGMuc2V0UmVtb3Rl
RGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpCi0gICAgLnRoZW4oKCkgPT4KLSAgICAgIHByb21pc2Vf
cmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksCi0gICAgICAgIHBjLmFkZEljZUNhbmRpZGF0ZSh7
fSkpKTsKLSAgfSwgJ0FkZCBjYW5kaWRhdGUgd2l0aCBlbXB0eSBkaWN0IHNob3VsZCByZWplY3Qg
d2l0aCBUeXBlRXJyb3InKTsKLQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLQotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7Ci0KLSAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRl
c2MpCi0gICAgLnRoZW4oKCkgPT4KLSAgICAgIHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVy
cm9yKCksCi0gICAgICAgIHBjLmFkZEljZUNhbmRpZGF0ZSh7Ci0gICAgICAgICAgY2FuZGlkYXRl
OiAnJywKLSAgICAgICAgICBzZHBNaWQ6IG51bGwsCi0gICAgICAgICAgc2RwTUxpbmVJbmRleDog
bnVsbCwKLSAgICAgICAgICB1c2VybmFtZUZyYWdtZW50OiB1bmRlZmluZWQKLSAgICAgICAgfSkp
KTsKLSAgfSwgJ0FkZCBjYW5kaWRhdGUgd2l0aCBtYW51YWxseSBmaWxsZWQgZGVmYXVsdCB2YWx1
ZXMgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcicpOwotCiAgIC8qCiAgICAgNC40LjIuICBh
ZGRJY2VDYW5kaWRhdGUKICAgICAgIDQuMy4gIElmIGNhbmRpZGF0ZS5zZHBNaWQgaXMgbm90IG51
bGwsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgpAQCAtNDE5LDcgKzQ4MCw3IEBAIGE9cnRjcC1y
c2l6ZQogCiAgICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKQog
ICAgIC50aGVuKCgpID0+Ci0gICAgICBwcm9taXNlX3JlamVjdHModCwgJ09wZXJhdGlvbkVycm9y
JywKKyAgICAgIHByb21pc2VfcmVqZWN0c19kb20odCwgJ09wZXJhdGlvbkVycm9yJywKICAgICAg
ICAgcGMuYWRkSWNlQ2FuZGlkYXRlKHsKICAgICAgICAgICBjYW5kaWRhdGU6IGNhbmRpZGF0ZVN0
cjEsCiAgICAgICAgICAgc2RwTWlkOiAnaW52YWxpZCcsCkBAIC00NDMsNyArNTA0LDcgQEAgYT1y
dGNwLXJzaXplCiAKICAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRl
c2MpCiAgICAgLnRoZW4oKCkgPT4KLSAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnT3BlcmF0aW9u
RXJyb3InLAorICAgICAgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnT3BlcmF0aW9uRXJyb3InLAog
ICAgICAgICBwYy5hZGRJY2VDYW5kaWRhdGUoewogICAgICAgICAgIGNhbmRpZGF0ZTogY2FuZGlk
YXRlU3RyMSwKICAgICAgICAgICBzZHBNTGluZUluZGV4OiAyLApAQCAtNDk5LDEyICs1NjAsMTIg
QEAgYT1ydGNwLXJzaXplCiAKICAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vz
c2lvbkRlc2MpCiAgICAgLnRoZW4oKCkgPT4KLSAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnT3Bl
cmF0aW9uRXJyb3InLAorICAgICAgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnT3BlcmF0aW9uRXJy
b3InLAogICAgICAgICBwYy5hZGRJY2VDYW5kaWRhdGUoewogICAgICAgICAgIGNhbmRpZGF0ZTog
Y2FuZGlkYXRlU3RyMSwKICAgICAgICAgICBzZHBNaWQ6IHNkcE1pZDEsCiAgICAgICAgICAgc2Rw
TUxpbmVJbmRleDogc2RwTUxpbmVJbmRleDEsCi0gICAgICAgICAgdWZyYWc6ICdpbnZhbGlkJwor
ICAgICAgICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICdpbnZhbGlkJwogICAgICAgICB9KSkpOwogICB9
LCAnQWRkIGNhbmRpZGF0ZSB3aXRoIGludmFsaWQgdXNlcm5hbWVGcmFnbWVudCBzaG91bGQgcmVq
ZWN0IHdpdGggT3BlcmF0aW9uRXJyb3InKTsKIApAQCAtNTIyLDcgKzU4Myw3IEBAIGE9cnRjcC1y
c2l6ZQogCiAgICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKQog
ICAgIC50aGVuKCgpID0+Ci0gICAgICBwcm9taXNlX3JlamVjdHModCwgJ09wZXJhdGlvbkVycm9y
JywKKyAgICAgIHByb21pc2VfcmVqZWN0c19kb20odCwgJ09wZXJhdGlvbkVycm9yJywKICAgICAg
ICAgcGMuYWRkSWNlQ2FuZGlkYXRlKHsKICAgICAgICAgICBjYW5kaWRhdGU6IGludmFsaWRDYW5k
aWRhdGVTdHIsCiAgICAgICAgICAgc2RwTWlkOiBzZHBNaWQxLApAQCAtNTM4LDEyICs1OTksMTIg
QEAgYT1ydGNwLXJzaXplCiAKICAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vz
c2lvbkRlc2MpCiAgICAgLnRoZW4oKCkgPT4KLSAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnT3Bl
cmF0aW9uRXJyb3InLAorICAgICAgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnT3BlcmF0aW9uRXJy
b3InLAogICAgICAgICBwYy5hZGRJY2VDYW5kaWRhdGUoewogICAgICAgICAgIGNhbmRpZGF0ZTog
Y2FuZGlkYXRlU3RyMiwKICAgICAgICAgICBzZHBNaWQ6IHNkcE1pZDIsCiAgICAgICAgICAgc2Rw
TUxpbmVJbmRleDogc2RwTUxpbmVJbmRleDIsCi0gICAgICAgICAgdXNlcm5hbWVGcmFnZW1lbnQ6
IHVzZXJuYW1lRnJhZ21lbnQxCisgICAgICAgICAgdXNlcm5hbWVGcmFnbWVudDogdXNlcm5hbWVG
cmFnbWVudDEKICAgICAgICAgfSkpKTsKICAgfSwgJ0FkZCBjYW5kaWRhdGUgd2l0aCBzZHBNaWQg
YmVsb25naW5nIHRvIGRpZmZlcmVudCB1c2VybmFtZUZyYWdtZW50IHNob3VsZCByZWplY3Qgd2l0
aCBPcGVyYXRpb25FcnJvcicpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMuaHRtbAppbmRleCAxNTUwZmM0
Zjc5NDNiNzljYzMzMWQ1YzkzY2E2ZDU2NDM3OTNkZWFkLi43NTg1OTYxZjMxY2U5NDJkYjk0YTZl
NTliZTc2Y2Y4YjhiM2RlMGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLmh0bWwKQEAgLTQ2LDcgKzQ2
LDcgQEAKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogCiAgICAgcGMu
Y2xvc2UoKTsKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IHBj
LmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pKQorICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlk
U3RhdGVFcnJvcicsICgpID0+IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pKQogICB9LCAnYWRk
VHJhY2sgd2hlbiBwYyBpcyBjbG9zZWQgc2hvdWxkIHRocm93IEludmFsaWRTdGF0ZUVycm9yJyk7
CiAKICAgLyoKQEAgLTE0Miw3ICsxNDIsNyBAQAogICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0u
Z2V0VHJhY2tzKCk7CiAKICAgICBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKLSAgICBhc3Nl
cnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PiBwYy5hZGRUcmFjayh0cmFjaywg
c3RyZWFtKSk7CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgp
ID0+IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pKTsKICAgfSwgJ0FkZGluZyB0aGUgc2FtZSB0
cmFjayBtdWx0aXBsZSB0aW1lcyBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CiAK
ICAgLyoKQEAgLTE5MCw3ICsxOTAsNyBAQAogICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIu
c2VuZGVyLnRyYWNrLCBudWxsKTsKICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVj
dGlvbiwgJ3NlbmRyZWN2Jyk7CiAKLSAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICBjb25zdCBzdHJl
YW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3Ao
KSkpOwogICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY29uc3Qg
c2VuZGVyID0gcGMuYWRkVHJhY2sodHJhY2spOwpAQCAtMjA1LDcgKzIwNSw3IEBACiAgICAgY29u
c3QgY2FsbGVlID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBjYWxsZWUuY2xvc2UoKSk7CiAKLSAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICBjb25zdCBz
dHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKICAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0
b3AoKSkpOwogICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY29u
c3QgdHJhbnNjZWl2ZXIgPSBjYWxsZXIuYWRkVHJhbnNjZWl2ZXIodHJhY2spOwpAQCAtMjQ2LDcg
KzI0Niw3IEBACiAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5zZW5kZXIudHJhY2ssIG51
bGwpOwogICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAncmVjdm9ubHkn
KTsKIAotICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5v
aXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFt
LmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3Qg
W3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgICBjb25zdCBzZW5kZXIgPSBwYy5hZGRU
cmFjayh0cmFjayk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFuc2NlaXZlci5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFuc2NlaXZlci5odHRwcy1leHBlY3Rl
ZC50eHQKaW5kZXggMDY4YTY0ZmIxMGMyYmRjNDlkNDUwMDk4ZGEzODQxN2JkNTk0ZTU2ZS4uMjU2
ZWY3MWZhOTcwYzlmYjNhMWExZDI1YTNhZWM2MzEyZjNjNzljNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tYWRkVHJhbnNjZWl2ZXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWFkZFRyYW5zY2VpdmVyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNywxMyArNywxMyBAQCBQQVNT
IGFkZFRyYW5zY2VpdmVyKCkgd2l0aCBkaXJlY3Rpb24gaW5hY3RpdmUgc2hvdWxkIGhhdmUgcmVz
dWx0IHRyYW5zY2VpdmVyLmRpcgogUEFTUyBhZGRUcmFuc2NlaXZlcigpIHdpdGggaW52YWxpZCBk
aXJlY3Rpb24gc2hvdWxkIHRocm93IFR5cGVFcnJvciAKIFBBU1MgYWRkVHJhbnNjZWl2ZXIodHJh
Y2spIHNob3VsZCBoYXZlIHJlc3VsdCB3aXRoIHNlbmRlci50cmFjayBiZSBnaXZlbiB0cmFjayAK
IFBBU1MgYWRkVHJhbnNjZWl2ZXIodHJhY2spIG11bHRpcGxlIHRpbWVzIHNob3VsZCBjcmVhdGUg
bXVsdGlwbGUgdHJhbnNjZWl2ZXJzIAotRkFJTCBhZGRUcmFuc2NlaXZlcigpIHdpdGggcmlkIGNv
bnRhaW5pbmcgaW52YWxpZCBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgc2hvdWxkIHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KK0ZBSUwgYWRkVHJhbnNj
ZWl2ZXIoKSB3aXRoIHJpZCBjb250YWluaW5nIGludmFsaWQgbm9uLWFscGhhbnVtZXJpYyBjaGFy
YWN0ZXJzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24g
IigpID0+CiAgICAgICBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7CiAgICAgICAgIHNlbmRF
bmNvZGluZ3M6IFt7CiAgICAgICAgICAgcmlkOiAnQEludmFsaWQhJwogICAgICAgICB9XQogICAg
ICAgfSkiIGRpZCBub3QgdGhyb3cKLUZBSUwgYWRkVHJhbnNjZWl2ZXIoKSB3aXRoIHJpZCBsb25n
ZXIgdGhhbiAxNiBjaGFyYWN0ZXJzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogZnVuY3Rpb24gIigpID0+CitGQUlMIGFkZFRyYW5zY2VpdmVyKCkgd2l0aCByaWQgbG9uZ2Vy
IHRoYW4gMTYgY2hhcmFjdGVycyBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3Nf
anM6IGZ1bmN0aW9uICIoKSA9PgogICAgICAgcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywgewog
ICAgICAgICBzZW5kRW5jb2RpbmdzOiBbewogICAgICAgICAgIHJpZDogJ2EnLnJlcGVhdCgxNykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1hZGRUcmFuc2NlaXZlci5odHRwcy5odG1sCmluZGV4IDZkZjA1NjExN2QwMjQ1MmUw
NDBiMTUzMTQ3ZGJkYWQ3YmY4ZmE5YmIuLjY4YTI2MjMzOTFiNWZhNTExZWQ4MGQyNzIyNDVmODYw
ZmJhZWFjOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYW5zY2VpdmVyLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbApAQCAtMyw2ICsz
LDcgQEAKIDx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuYWRkVHJhbnNjZWl2ZXI8
L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgogICAndXNlIHN0cmljdCc7CiAKQEAgLTc5LDcgKzgwLDcgQEAKICAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogCiAgICAgYXNzZXJ0X2lkbF9hdHRyaWJ1dGUocGMs
ICdhZGRUcmFuc2NlaXZlcicpOwotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAo
KSA9PiBwYy5hZGRUcmFuc2NlaXZlcignaW52YWxpZCcpKTsKKyAgICBhc3NlcnRfdGhyb3dzX2pz
KFR5cGVFcnJvciwgKCkgPT4gcGMuYWRkVHJhbnNjZWl2ZXIoJ2ludmFsaWQnKSk7CiAgIH0sICdh
ZGRUcmFuc2NlaXZlcigpIHdpdGggc3RyaW5nIGFyZ3VtZW50IGFzIGludmFsaWQga2luZCBzaG91
bGQgdGhyb3cgVHlwZUVycm9yJyk7CiAKICAgLyoKQEAgLTIzMSw3ICsyMzIsNyBAQAogICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAKICAgICBhc3NlcnRfaWRsX2F0dHJpYnV0
ZShwYywgJ2FkZFRyYW5zY2VpdmVyJyk7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
KCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBw
Yy5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7IGRpcmVjdGlvbjogJ2ludmFsaWQnIH0pKTsKICAg
fSwgYGFkZFRyYW5zY2VpdmVyKCkgd2l0aCBpbnZhbGlkIGRpcmVjdGlvbiBzaG91bGQgdGhyb3cg
VHlwZUVycm9yYCk7CiAKQEAgLTI0NCw3ICsyNDUsNyBAQAogICAgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
IAotICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHthdWRpbzogdHJ1ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNl
U3RyZWFtKHthdWRpbzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdl
dFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3Ry
YWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFk
ZFRyYW5zY2VpdmVyKHRyYWNrKTsKQEAgLTI4NCw3ICsyODUsNyBAQAogICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKIAotICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdl
dE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3Ry
ZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29u
c3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgICBjb25zdCB0cmFuc2NlaXZlcjEg
PSBwYy5hZGRUcmFuc2NlaXZlcih0cmFjayk7CkBAIC0zMjMsNyArMzI0LDcgQEAKICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIGFzc2VydF9pZGxfYXR0cmlidXRlKHBj
LCAnYWRkVHJhbnNjZWl2ZXInKTsKIAotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgogICAgICAgcGMu
YWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywgewogICAgICAgICBzZW5kRW5jb2RpbmdzOiBbewogICAg
ICAgICAgIHJpZDogJ0BJbnZhbGlkIScKQEAgLTMzNiw3ICszMzcsNyBAQAogICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgYXNzZXJ0X2lkbF9hdHRyaWJ1dGUocGMsICdh
ZGRUcmFuc2NlaXZlcicpOwogCi0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgp
ID0+CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBwYy5hZGRU
cmFuc2NlaXZlcignYXVkaW8nLCB7CiAgICAgICAgIHNlbmRFbmNvZGluZ3M6IFt7CiAgICAgICAg
ICAgcmlkOiAnYScucmVwZWF0KDE3KQpAQCAtMzYyLDcgKzM2Myw2IEBACiAgICAgICBzZW5kRW5j
b2RpbmdzOiBbewogICAgICAgICBkdHg6ICdlbmFibGVkJywKICAgICAgICAgYWN0aXZlOiBmYWxz
ZSwKLSAgICAgICAgcHJpb3JpdHk6ICdsb3cnLAogICAgICAgICBwdGltZTogNSwKICAgICAgICAg
bWF4Qml0cmF0ZTogOCwKICAgICAgICAgbWF4RnJhbWVyYXRlOiAyNSwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0
YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0NjFiZjE2OTk3YjZiZWU0
OTdkZWNlYzY1MTQ4NTA2ZTg4Yjc3M2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyMzcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0
Zi04PgotPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5jb25uZWN0aW9uU3RhdGU8
L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0gIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxv
d2luZyBlZGl0b3IgZHJhZnQ6Ci0gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMv
YXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bQotCi0gIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVy
IGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgot
ICAvLyBleGNoYW5nZUljZUNhbmRpZGF0ZXMKLSAgLy8gZG9TaWduYWxpbmdIYW5kc2hha2UKLQot
ICAvKgotICAgIDQuMy4yLiAgSW50ZXJmYWNlIERlZmluaXRpb24KLSAgICAgIGludGVyZmFjZSBS
VENQZWVyQ29ubmVjdGlvbiA6IEV2ZW50VGFyZ2V0IHsKLSAgICAgICAgLi4uCi0gICAgICAgIHJl
YWRvbmx5ICBhdHRyaWJ1dGUgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBjb25uZWN0aW9uU3RhdGU7
Ci0gICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyICAgICAgICAgICBvbmNv
bm5lY3Rpb25zdGF0ZWNoYW5nZTsKLSAgICAgIH07Ci0KLSAgICA0LjQuMy4gIFJUQ1BlZXJDb25u
ZWN0aW9uU3RhdGUgRW51bQotICAgICAgZW51bSBSVENQZWVyQ29ubmVjdGlvblN0YXRlIHsKLSAg
ICAgICAgIm5ldyIsCi0gICAgICAgICJjb25uZWN0aW5nIiwKLSAgICAgICAgImNvbm5lY3RlZCIs
Ci0gICAgICAgICJkaXNjb25uZWN0ZWQiLAotICAgICAgICAiZmFpbGVkIiwKLSAgICAgICAgImNs
b3NlZCIKLSAgICAgIH07Ci0KLSAgICA1LjUuICBSVENEdGxzVHJhbnNwb3J0IEludGVyZmFjZQot
ICAgICAgaW50ZXJmYWNlIFJUQ0R0bHNUcmFuc3BvcnQgewotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgUlRDSWNlVHJhbnNwb3J0ICAgICAgIGljZVRyYW5zcG9ydDsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFJUQ0R0bHNUcmFuc3BvcnRTdGF0ZSBzdGF0ZTsKLSAgICAgICAgLi4uCi0g
ICAgICB9OwotCi0gICAgICBlbnVtIFJUQ0R0bHNUcmFuc3BvcnRTdGF0ZSB7Ci0gICAgICAgICJu
ZXciLAotICAgICAgICAiY29ubmVjdGluZyIsCi0gICAgICAgICJjb25uZWN0ZWQiLAotICAgICAg
ICAiY2xvc2VkIiwKLSAgICAgICAgImZhaWxlZCIKLSAgICAgIH07Ci0KLSAgICA1LjYuICBSVENJ
Y2VUcmFuc3BvcnQgSW50ZXJmYWNlCi0gICAgICBpbnRlcmZhY2UgUlRDSWNlVHJhbnNwb3J0IHsK
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIHN0YXRlOwot
ICAgICAgICAuLi4KLSAgICAgIH07Ci0KLSAgICAgIGVudW0gUlRDSWNlVHJhbnNwb3J0U3RhdGUg
ewotICAgICAgICAibmV3IiwKLSAgICAgICAgImNoZWNraW5nIiwKLSAgICAgICAgImNvbm5lY3Rl
ZCIsCi0gICAgICAgICJjb21wbGV0ZWQiLAotICAgICAgICAiZmFpbGVkIiwKLSAgICAgICAgImRp
c2Nvbm5lY3RlZCIsCi0gICAgICAgICJjbG9zZWQiCi0gICAgICB9OwotICAgKi8KLQotICAvKgot
ICAgIDQuNC4zLiAgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBFbnVtCi0gICAgICBuZXcKLSAgICAg
ICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBp
biB0aGUgbmV3Ci0gICAgICAgIHN0YXRlIGFuZCBub25lIG9mIHRoZSB0cmFuc3BvcnRzIGFyZSBp
biB0aGUgY29ubmVjdGluZywgY2hlY2tpbmcsCi0gICAgICAgIGZhaWxlZCBvciBkaXNjb25uZWN0
ZWQgc3RhdGUsIG9yIGFsbCB0cmFuc3BvcnRzIGFyZSBpbiB0aGUgY2xvc2VkIHN0YXRlLgotICAg
Ki8KLSAgdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OwotICAgIGFzc2VydF9lcXVhbHMocGMuY29ubmVjdGlvblN0YXRlLCAnbmV3Jyk7Ci0gIH0sICdJ
bml0aWFsIGNvbm5lY3Rpb25TdGF0ZSBzaG91bGQgYmUgbmV3Jyk7Ci0KLSAgdGVzdCh0ID0+IHsK
LSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHBjLmNsb3NlKCk7
Ci0gICAgYXNzZXJ0X2VxdWFscyhwYy5jb25uZWN0aW9uU3RhdGUsICdjbG9zZWQnKTsKLSAgfSwg
J0Nsb3NpbmcgdGhlIGNvbm5lY3Rpb24gc2hvdWxkIHNldCBjb25uZWN0aW9uU3RhdGUgdG8gY2xv
c2VkJyk7Ci0KLSAgLyoKLSAgICA0LjQuMy4gIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgRW51bQot
ICAgICAgY29ubmVjdGVkCi0gICAgICAgIEFsbCBSVENJY2VUcmFuc3BvcnRzIGFuZCBSVENEdGxz
VHJhbnNwb3J0cyBhcmUgaW4gdGhlIGNvbm5lY3RlZCwKLSAgICAgICAgY29tcGxldGVkIG9yIGNs
b3NlZCBzdGF0ZSBhbmQgYXQgbGVhc3Qgb2YgdGhlbSBpcyBpbiB0aGUgY29ubmVjdGVkCi0gICAg
ICAgIG9yIGNvbXBsZXRlZCBzdGF0ZS4KLQotICAgIDUuNS4gIFJUQ0R0bHNUcmFuc3BvcnRTdGF0
ZQotICAgICAgY29ubmVjdGVkCi0gICAgICAgIERUTFMgaGFzIGNvbXBsZXRlZCBuZWdvdGlhdGlv
biBvZiBhIHNlY3VyZSBjb25uZWN0aW9uLgotCi0gICAgNS42LiAgUlRDSWNlVHJhbnNwb3J0U3Rh
dGUKLSAgICAgIGNvbm5lY3RlZAotICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBmb3Vu
ZCBhIHVzYWJsZSBjb25uZWN0aW9uLCBidXQgaXMgc3RpbGwKLSAgICAgICAgY2hlY2tpbmcgb3Ro
ZXIgY2FuZGlkYXRlIHBhaXJzIHRvIHNlZSBpZiB0aGVyZSBpcyBhIGJldHRlciBjb25uZWN0aW9u
LgotICAgICAgICBJdCBtYXkgYWxzbyBzdGlsbCBiZSBnYXRoZXJpbmcgYW5kL29yIHdhaXRpbmcg
Zm9yIGFkZGl0aW9uYWwgcmVtb3RlCi0gICAgICAgIGNhbmRpZGF0ZXMuIElmIGNvbnNlbnQgY2hl
Y2tzIFtSRkM3Njc1XSBmYWlsIG9uIHRoZSBjb25uZWN0aW9uIGluIHVzZSwKLSAgICAgICAgYW5k
IHRoZXJlIGFyZSBubyBvdGhlciBzdWNjZXNzZnVsIGNhbmRpZGF0ZSBwYWlycyBhdmFpbGFibGUs
IHRoZW4gdGhlCi0gICAgICAgIHN0YXRlIHRyYW5zaXRpb25zIHRvICJjaGVja2luZyIgKGlmIHRo
ZXJlIGFyZSBjYW5kaWRhdGUgcGFpcnMgcmVtYWluaW5nCi0gICAgICAgIHRvIGJlIGNoZWNrZWQp
IG9yICJkaXNjb25uZWN0ZWQiIChpZiB0aGVyZSBhcmUgbm8gY2FuZGlkYXRlIHBhaXJzIHRvCi0g
ICAgICAgIGNoZWNrLCBidXQgdGhlIHBlZXIgaXMgc3RpbGwgZ2F0aGVyaW5nIGFuZC9vciB3YWl0
aW5nIGZvciBhZGRpdGlvbmFsCi0gICAgICAgIHJlbW90ZSBjYW5kaWRhdGVzKS4KLQotICAgICAg
Y29tcGxldGVkCi0gICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlzaGVkIGdhdGhl
cmluZywgcmVjZWl2ZWQgYW4gaW5kaWNhdGlvbiB0aGF0Ci0gICAgICAgIHRoZXJlIGFyZSBubyBt
b3JlIHJlbW90ZSBjYW5kaWRhdGVzLCBmaW5pc2hlZCBjaGVja2luZyBhbGwgY2FuZGlkYXRlCi0g
ICAgICAgIHBhaXJzIGFuZCBmb3VuZCBhIGNvbm5lY3Rpb24uIElmIGNvbnNlbnQgY2hlY2tzIFtS
RkM3Njc1XSBzdWJzZXF1ZW50bHkKLSAgICAgICAgZmFpbCBvbiBhbGwgc3VjY2Vzc2Z1bCBjYW5k
aWRhdGUgcGFpcnMsIHRoZSBzdGF0ZSB0cmFuc2l0aW9ucyB0byAiZmFpbGVkIi4KLSAgICovCi0K
LSAgYXN5bmNfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
Mi5jbG9zZSgpKTsKLQotICAgIGxldCBoYWRfY29ubmVjdGluZyA9IGZhbHNlOwotCi0gICAgY29u
c3Qgb25Db25uZWN0aW9uU3RhdGVDaGFuZ2UgPSB0LnN0ZXBfZnVuYygoKSA9PiB7Ci0gICAgICBj
b25zdCB7Y29ubmVjdGlvblN0YXRlfSA9IHBjMTsKLSAgICAgIGlmIChjb25uZWN0aW9uU3RhdGUg
PT09ICdjb25uZWN0aW5nJykgewotICAgICAgICBoYWRfY29ubmVjdGluZyA9IHRydWU7Ci0gICAg
ICB9IGVsc2UgaWYgKGNvbm5lY3Rpb25TdGF0ZSA9PT0gJ2Nvbm5lY3RlZCcpIHsKLSAgICAgICAg
YXNzZXJ0X3RydWUoaGFkX2Nvbm5lY3RpbmcsICJzdGF0ZSBzaG91bGQgcGFzcyBjb25uZWN0aW5n
IGJlZm9yZSByZWFjaGluZyBjb25uZWN0ZWQiKTsKLSAgICAgICAgdC5kb25lKCk7Ci0gICAgICB9
Ci0gICAgfSk7Ci0KLSAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKLQotICAgIHBj
MS5hZGRFdmVudExpc3RlbmVyKCdjb25uZWN0aW9uc3RhdGVjaGFuZ2UnLCBvbkNvbm5lY3Rpb25T
dGF0ZUNoYW5nZSk7Ci0KLSAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOwotICAg
IGRvU2lnbmFsaW5nSGFuZHNoYWtlKHBjMSwgcGMyKTsKLSAgfSwgJ2Nvbm5lY3Rpb24gd2l0aCBv
bmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rp
b24gc3RhdGUnKTsKLQotICBhc3luY190ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OwotICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gICAgY29uc3Qgb25Db25uZWN0aW9uU3RhdGVD
aGFuZ2UgPSB0LnN0ZXBfZnVuYygoKSA9PiB7Ci0gICAgICBjb25zdCB7Y29ubmVjdGlvblN0YXRl
fSA9IHBjMTsKLSAgICAgIGlmIChjb25uZWN0aW9uU3RhdGUgPT09ICdjb25uZWN0ZWQnKSB7Ci0g
ICAgICAgIGNvbnN0IHNjdHBUcmFuc3BvcnQgPSBwYzEuc2N0cDsKLQotICAgICAgICBjb25zdCBk
dGxzVHJhbnNwb3J0ID0gc2N0cFRyYW5zcG9ydC50cmFuc3BvcnQ7Ci0gICAgICAgIGFzc2VydF9l
cXVhbHMoZHRsc1RyYW5zcG9ydC5zdGF0ZSwgJ2Nvbm5lY3RlZCcsCi0gICAgICAgICAgJ0V4cGVj
dCBEVExTIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQgc3RhdGUnKTsKLQotICAgICAgICBj
b25zdCBpY2VUcmFuc3BvcnQgPSBkdGxzVHJhbnNwb3J0LmljZVRyYW5zcG9ydAotICAgICAgICBh
c3NlcnRfdHJ1ZShpY2VUcmFuc3BvcnQuc3RhdGUgPT09ICAnY29ubmVjdGVkJyB8fAotICAgICAg
ICAgIGljZVRyYW5zcG9ydC5zdGF0ZSA9PT0gJ2NvbXBsZXRlZCcsCi0gICAgICAgICAgJ0V4cGVj
dCBJQ0UgdHJhbnNwb3J0IHRvIGJlIGluIGNvbm5lY3RlZCBvciBjb21wbGV0ZWQgc3RhdGUnKTsK
LQotICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0KLSAgICB9KTsKLQotICAgIHBjMS5jcmVhdGVE
YXRhQ2hhbm5lbCgndGVzdCcpOwotCi0gICAgcGMxLmFkZEV2ZW50TGlzdGVuZXIoJ2Nvbm5lY3Rp
b25zdGF0ZWNoYW5nZScsIG9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlKTsKLQotICAgIGV4Y2hhbmdl
SWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0gICAgZG9TaWduYWxpbmdIYW5kc2hha2UocGMxLCBw
YzIpOwotICB9LCAnY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50
dWFsbHkgaGF2ZSB0cmFuc3BvcnRzIGluIGNvbm5lY3RlZCBzdGF0ZScpOwotCi0gIC8qCi0gICAg
VE9ETwotICAgIDQuNC4zLiAgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBFbnVtCi0gICAgICBjb25u
ZWN0aW5nCi0gICAgICAgIEFueSBvZiB0aGUgUlRDSWNlVHJhbnNwb3J0cyBvciBSVENEdGxzVHJh
bnNwb3J0cyBhcmUgaW4gdGhlCi0gICAgICAgIGNvbm5lY3Rpbmcgb3IgY2hlY2tpbmcgc3RhdGUg
YW5kIG5vbmUgb2YgdGhlbSBpcyBpbiB0aGUgZmFpbGVkIHN0YXRlLgotCi0gICAgICBkaXNjb25u
ZWN0ZWQKLSAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnRzIG9yIFJUQ0R0bHNUcmFu
c3BvcnRzIGFyZSBpbiB0aGUgZGlzY29ubmVjdGVkCi0gICAgICAgIHN0YXRlIGFuZCBub25lIG9m
IHRoZW0gYXJlIGluIHRoZSBmYWlsZWQgb3IgY29ubmVjdGluZyBvciBjaGVja2luZyBzdGF0ZS4K
LQotICAgICAgZmFpbGVkCi0gICAgICAgIEFueSBvZiB0aGUgUlRDSWNlVHJhbnNwb3J0cyBvciBS
VENEdGxzVHJhbnNwb3J0cyBhcmUgaW4gYSBmYWlsZWQgc3RhdGUuCi0KLSAgICAgIGNsb3NlZAot
ICAgICAgICBUaGUgUlRDUGVlckNvbm5lY3Rpb24gb2JqZWN0J3MgW1tpc0Nsb3NlZF1dIHNsb3Qg
aXMgdHJ1ZS4KLQotICAgICA1LjUuIFJUQ0R0bHNUcmFuc3BvcnRTdGF0ZQotICAgICAgbmV3Ci0g
ICAgICAgIERUTFMgaGFzIG5vdCBzdGFydGVkIG5lZ290aWF0aW5nIHlldC4KLQotICAgICAgY29u
bmVjdGluZwotICAgICAgICBEVExTIGlzIGluIHRoZSBwcm9jZXNzIG9mIG5lZ290aWF0aW5nIGEg
c2VjdXJlIGNvbm5lY3Rpb24uCi0KLSAgICAgIGNsb3NlZAotICAgICAgICBUaGUgdHJhbnNwb3J0
IGhhcyBiZWVuIGNsb3NlZC4KLQotICAgICAgZmFpbGVkCi0gICAgICAgIFRoZSB0cmFuc3BvcnQg
aGFzIGZhaWxlZCBhcyB0aGUgcmVzdWx0IG9mIGFuIGVycm9yIChzdWNoIGFzIGEgZmFpbHVyZQot
ICAgICAgICB0byB2YWxpZGF0ZSB0aGUgcmVtb3RlIGZpbmdlcnByaW50KS4KLQotICAgIDUuNi4g
IFJUQ0ljZVRyYW5zcG9ydFN0YXRlCi0gICAgICBuZXcKLSAgICAgICAgVGhlIFJUQ0ljZVRyYW5z
cG9ydCBpcyBnYXRoZXJpbmcgY2FuZGlkYXRlcyBhbmQvb3Igd2FpdGluZyBmb3IKLSAgICAgICAg
cmVtb3RlIGNhbmRpZGF0ZXMgdG8gYmUgc3VwcGxpZWQsIGFuZCBoYXMgbm90IHlldCBzdGFydGVk
IGNoZWNraW5nLgotCi0gICAgICBjaGVja2luZwotICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0
IGhhcyByZWNlaXZlZCBhdCBsZWFzdCBvbmUgcmVtb3RlIGNhbmRpZGF0ZSBhbmQKLSAgICAgICAg
aXMgY2hlY2tpbmcgY2FuZGlkYXRlIHBhaXJzIGFuZCBoYXMgZWl0aGVyIG5vdCB5ZXQgZm91bmQg
YSBjb25uZWN0aW9uCi0gICAgICAgIG9yIGNvbnNlbnQgY2hlY2tzIFtSRkM3Njc1XSBoYXZlIGZh
aWxlZCBvbiBhbGwgcHJldmlvdXNseSBzdWNjZXNzZnVsCi0gICAgICAgIGNhbmRpZGF0ZSBwYWly
cy4gSW4gYWRkaXRpb24gdG8gY2hlY2tpbmcsIGl0IG1heSBhbHNvIHN0aWxsIGJlIGdhdGhlcmlu
Zy4KLQotICAgICAgZmFpbGVkCi0gICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlz
aGVkIGdhdGhlcmluZywgcmVjZWl2ZWQgYW4gaW5kaWNhdGlvbiB0aGF0Ci0gICAgICAgIHRoZXJl
IGFyZSBubyBtb3JlIHJlbW90ZSBjYW5kaWRhdGVzLCBmaW5pc2hlZCBjaGVja2luZyBhbGwgY2Fu
ZGlkYXRlIHBhaXJzLAotICAgICAgICBhbmQgYWxsIHBhaXJzIGhhdmUgZWl0aGVyIGZhaWxlZCBj
b25uZWN0aXZpdHkgY2hlY2tzIG9yIGhhdmUgbG9zdCBjb25zZW50LgotCi0gICAgICBkaXNjb25u
ZWN0ZWQKLSAgICAgICAgVGhlIElDRSBBZ2VudCBoYXMgZGV0ZXJtaW5lZCB0aGF0IGNvbm5lY3Rp
dml0eSBpcyBjdXJyZW50bHkgbG9zdCBmb3IgdGhpcwotICAgICAgICBSVENJY2VUcmFuc3BvcnQg
LiBUaGlzIGlzIG1vcmUgYWdncmVzc2l2ZSB0aGFuIGZhaWxlZCwgYW5kIG1heSB0cmlnZ2VyCi0g
ICAgICAgIGludGVybWl0dGVudGx5IChhbmQgcmVzb2x2ZSBpdHNlbGYgd2l0aG91dCBhY3Rpb24p
IG9uIGEgZmxha3kgbmV0d29yay4KLSAgICAgICAgVGhlIHdheSB0aGlzIHN0YXRlIGlzIGRldGVy
bWluZWQgaXMgaW1wbGVtZW50YXRpb24gZGVwZW5kZW50LgotCi0gICAgICAgIEV4YW1wbGVzIGlu
Y2x1ZGU6Ci0gICAgICAgICAgTG9zaW5nIHRoZSBuZXR3b3JrIGludGVyZmFjZSBmb3IgdGhlIGNv
bm5lY3Rpb24gaW4gdXNlLgotICAgICAgICAgIFJlcGVhdGVkbHkgZmFpbGluZyB0byByZWNlaXZl
IGEgcmVzcG9uc2UgdG8gU1RVTiByZXF1ZXN0cy4KLQotICAgICAgICBBbHRlcm5hdGl2ZWx5LCB0
aGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBmaW5pc2hlZCBjaGVja2luZyBhbGwgZXhpc3RpbmcKLSAg
ICAgICAgY2FuZGlkYXRlcyBwYWlycyBhbmQgZmFpbGVkIHRvIGZpbmQgYSBjb25uZWN0aW9uIChv
ciBjb25zZW50IGNoZWNrcwotICAgICAgICBbUkZDNzY3NV0gb25jZSBzdWNjZXNzZnVsLCBoYXZl
IG5vdyBmYWlsZWQpLCBidXQgaXQgaXMgc3RpbGwgZ2F0aGVyaW5nCi0gICAgICAgIGFuZC9vciB3
YWl0aW5nIGZvciBhZGRpdGlvbmFsIHJlbW90ZSBjYW5kaWRhdGVzLgotCi0gICAgICBjbG9zZWQK
LSAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgc2h1dCBkb3duIGFuZCBpcyBubyBsb25n
ZXIgcmVzcG9uZGluZyB0byBTVFVOIHJlcXVlc3RzLgotICAgKi8KLTwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmFhYzU5ZTMwYjRhNDBmN2Q5OTUyYmQwMjU4OTllMDhiM2M3Y2MyNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw5IEBACisKK1BBU1MgSW5pdGlhbCBjb25uZWN0aW9uU3RhdGUgc2hvdWxkIGJlIG5ldyAK
K1BBU1MgQ2xvc2luZyB0aGUgY29ubmVjdGlvbiBzaG91bGQgc2V0IGNvbm5lY3Rpb25TdGF0ZSB0
byBjbG9zZWQgCitQQVNTIGNvbm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBl
dmVudHVhbGx5IGhhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUgCitGQUlMIGNvbm5lY3Rp
b24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgdHJhbnNwb3J0
cyBpbiBjb25uZWN0ZWQgc3RhdGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ3NjdHBUcmFuc3BvcnQudHJhbnNwb3J0JykKK0ZBSUwgY29ubmVjdGlvblN0YXRlIHJlbWFp
bnMgbmV3IHdoZW4gbm90IGFkZGluZyByZW1vdGUgaWNlIGNhbmRpZGF0ZXMgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIm5ldyIgYnV0IGdvdCAiY2hlY2tpbmciCitQQVNTIGNvbm5lY3Rpb25TdGF0
ZSB0cmFuc2l0aW9ucyB0byBjb25uZWN0ZWQgdmlhIGNvbm5lY3RpbmcgCitQQVNTIENsb3Npbmcg
YSBQZWVyQ29ubmVjdGlvbiBzaG91bGQgbm90IGZpcmUgY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2
ZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVk
YjgyNzJkZjMwNzI2MGY5ZGIwYzQzMzNjMjNjN2FkNGM0NDMyYjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDI5MSBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJD
b25uZWN0aW9uLnByb3RvdHlwZS5jb25uZWN0aW9uU3RhdGU8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1Bl
ZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmlj
dCc7CisgIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6Cisg
IC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2Vi
cnRjLmh0bQorCisgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVk
IGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgorICAvLyBleGNoYW5nZUljZUNhbmRp
ZGF0ZXMKKyAgLy8gZXhjaGFuZ2VPZmZlckFuc3dlcgorCisgIC8qCisgICAgNC4zLjIuICBJbnRl
cmZhY2UgRGVmaW5pdGlvbgorICAgICAgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIDogRXZl
bnRUYXJnZXQgeworICAgICAgICAuLi4KKyAgICAgICAgcmVhZG9ubHkgIGF0dHJpYnV0ZSBSVENQ
ZWVyQ29ubmVjdGlvblN0YXRlIGNvbm5lY3Rpb25TdGF0ZTsKKyAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgICAgIG9uY29ubmVjdGlvbnN0YXRlY2hhbmdlOwor
ICAgICAgfTsKKworICAgIDQuNC4zLiAgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAg
ICBlbnVtIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgeworICAgICAgICAibmV3IiwKKyAgICAgICAg
ImNvbm5lY3RpbmciLAorICAgICAgICAiY29ubmVjdGVkIiwKKyAgICAgICAgImRpc2Nvbm5lY3Rl
ZCIsCisgICAgICAgICJmYWlsZWQiLAorICAgICAgICAiY2xvc2VkIgorICAgICAgfTsKKworICAg
IDUuNS4gIFJUQ0R0bHNUcmFuc3BvcnQgSW50ZXJmYWNlCisgICAgICBpbnRlcmZhY2UgUlRDRHRs
c1RyYW5zcG9ydCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENJY2VUcmFuc3BvcnQg
ICAgICAgaWNlVHJhbnNwb3J0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRHRsc1Ry
YW5zcG9ydFN0YXRlIHN0YXRlOworICAgICAgICAuLi4KKyAgICAgIH07CisKKyAgICAgIGVudW0g
UlRDRHRsc1RyYW5zcG9ydFN0YXRlIHsKKyAgICAgICAgIm5ldyIsCisgICAgICAgICJjb25uZWN0
aW5nIiwKKyAgICAgICAgImNvbm5lY3RlZCIsCisgICAgICAgICJjbG9zZWQiLAorICAgICAgICAi
ZmFpbGVkIgorICAgICAgfTsKKworICAgIDUuNi4gIFJUQ0ljZVRyYW5zcG9ydCBJbnRlcmZhY2UK
KyAgICAgIGludGVyZmFjZSBSVENJY2VUcmFuc3BvcnQgeworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgUlRDSWNlVHJhbnNwb3J0U3RhdGUgc3RhdGU7CisgICAgICAgIC4uLgorICAgICAgfTsK
KworICAgICAgZW51bSBSVENJY2VUcmFuc3BvcnRTdGF0ZSB7CisgICAgICAgICJuZXciLAorICAg
ICAgICAiY2hlY2tpbmciLAorICAgICAgICAiY29ubmVjdGVkIiwKKyAgICAgICAgImNvbXBsZXRl
ZCIsCisgICAgICAgICJmYWlsZWQiLAorICAgICAgICAiZGlzY29ubmVjdGVkIiwKKyAgICAgICAg
ImNsb3NlZCIKKyAgICAgIH07CisgICAqLworCisgIC8qCisgICAgNC40LjMuICBSVENQZWVyQ29u
bmVjdGlvblN0YXRlIEVudW0KKyAgICAgIG5ldworICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRy
YW5zcG9ydHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBuZXcKKyAgICAgICAgc3Rh
dGUgYW5kIG5vbmUgb2YgdGhlIHRyYW5zcG9ydHMgYXJlIGluIHRoZSBjb25uZWN0aW5nLCBjaGVj
a2luZywKKyAgICAgICAgZmFpbGVkIG9yIGRpc2Nvbm5lY3RlZCBzdGF0ZSwgb3IgYWxsIHRyYW5z
cG9ydHMgYXJlIGluIHRoZSBjbG9zZWQgc3RhdGUuCisgICAqLworICB0ZXN0KHQgPT4geworICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgYXNzZXJ0X2VxdWFscyhw
Yy5jb25uZWN0aW9uU3RhdGUsICduZXcnKTsKKyAgfSwgJ0luaXRpYWwgY29ubmVjdGlvblN0YXRl
IHNob3VsZCBiZSBuZXcnKTsKKworICB0ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgcGMuY2xvc2UoKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBj
LmNvbm5lY3Rpb25TdGF0ZSwgJ2Nsb3NlZCcpOworICB9LCAnQ2xvc2luZyB0aGUgY29ubmVjdGlv
biBzaG91bGQgc2V0IGNvbm5lY3Rpb25TdGF0ZSB0byBjbG9zZWQnKTsKKworICAvKgorICAgIDQu
NC4zLiAgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAgICBjb25uZWN0ZWQKKyAgICAg
ICAgQWxsIFJUQ0ljZVRyYW5zcG9ydHMgYW5kIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0aGUg
Y29ubmVjdGVkLAorICAgICAgICBjb21wbGV0ZWQgb3IgY2xvc2VkIHN0YXRlIGFuZCBhdCBsZWFz
dCBvZiB0aGVtIGlzIGluIHRoZSBjb25uZWN0ZWQKKyAgICAgICAgb3IgY29tcGxldGVkIHN0YXRl
LgorCisgICAgNS41LiAgUlRDRHRsc1RyYW5zcG9ydFN0YXRlCisgICAgICBjb25uZWN0ZWQKKyAg
ICAgICAgRFRMUyBoYXMgY29tcGxldGVkIG5lZ290aWF0aW9uIG9mIGEgc2VjdXJlIGNvbm5lY3Rp
b24uCisKKyAgICA1LjYuICBSVENJY2VUcmFuc3BvcnRTdGF0ZQorICAgICAgY29ubmVjdGVkCisg
ICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZvdW5kIGEgdXNhYmxlIGNvbm5lY3Rpb24s
IGJ1dCBpcyBzdGlsbAorICAgICAgICBjaGVja2luZyBvdGhlciBjYW5kaWRhdGUgcGFpcnMgdG8g
c2VlIGlmIHRoZXJlIGlzIGEgYmV0dGVyIGNvbm5lY3Rpb24uCisgICAgICAgIEl0IG1heSBhbHNv
IHN0aWxsIGJlIGdhdGhlcmluZyBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbCByZW1vdGUK
KyAgICAgICAgY2FuZGlkYXRlcy4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIGZhaWwgb24g
dGhlIGNvbm5lY3Rpb24gaW4gdXNlLAorICAgICAgICBhbmQgdGhlcmUgYXJlIG5vIG90aGVyIHN1
Y2Nlc3NmdWwgY2FuZGlkYXRlIHBhaXJzIGF2YWlsYWJsZSwgdGhlbiB0aGUKKyAgICAgICAgc3Rh
dGUgdHJhbnNpdGlvbnMgdG8gImNoZWNraW5nIiAoaWYgdGhlcmUgYXJlIGNhbmRpZGF0ZSBwYWly
cyByZW1haW5pbmcKKyAgICAgICAgdG8gYmUgY2hlY2tlZCkgb3IgImRpc2Nvbm5lY3RlZCIgKGlm
IHRoZXJlIGFyZSBubyBjYW5kaWRhdGUgcGFpcnMgdG8KKyAgICAgICAgY2hlY2ssIGJ1dCB0aGUg
cGVlciBpcyBzdGlsbCBnYXRoZXJpbmcgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwKKyAg
ICAgICAgcmVtb3RlIGNhbmRpZGF0ZXMpLgorCisgICAgICBjb21wbGV0ZWQKKyAgICAgICAgVGhl
IFJUQ0ljZVRyYW5zcG9ydCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNlaXZlZCBhbiBpbmRp
Y2F0aW9uIHRoYXQKKyAgICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3RlIGNhbmRpZGF0ZXMs
IGZpbmlzaGVkIGNoZWNraW5nIGFsbCBjYW5kaWRhdGUKKyAgICAgICAgcGFpcnMgYW5kIGZvdW5k
IGEgY29ubmVjdGlvbi4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIHN1YnNlcXVlbnRseQor
ICAgICAgICBmYWlsIG9uIGFsbCBzdWNjZXNzZnVsIGNhbmRpZGF0ZSBwYWlycywgdGhlIHN0YXRl
IHRyYW5zaXRpb25zIHRvICJmYWlsZWQiLgorICAgKi8KKworICBhc3luY190ZXN0KHQgPT4gewor
ICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgbGV0
IGhhZF9jb25uZWN0aW5nID0gZmFsc2U7CisKKyAgICBjb25zdCBvbkNvbm5lY3Rpb25TdGF0ZUNo
YW5nZSA9IHQuc3RlcF9mdW5jKCgpID0+IHsKKyAgICAgIGNvbnN0IHtjb25uZWN0aW9uU3RhdGV9
ID0gcGMxOworICAgICAgaWYgKGNvbm5lY3Rpb25TdGF0ZSA9PT0gJ2Nvbm5lY3RpbmcnKSB7Cisg
ICAgICAgIGhhZF9jb25uZWN0aW5nID0gdHJ1ZTsKKyAgICAgIH0gZWxzZSBpZiAoY29ubmVjdGlv
blN0YXRlID09PSAnY29ubmVjdGVkJykgeworICAgICAgICBhc3NlcnRfdHJ1ZShoYWRfY29ubmVj
dGluZywgInN0YXRlIHNob3VsZCBwYXNzIGNvbm5lY3RpbmcgYmVmb3JlIHJlYWNoaW5nIGNvbm5l
Y3RlZCIpOworICAgICAgICB0LmRvbmUoKTsKKyAgICAgIH0KKyAgICB9KTsKKworICAgIHBjMS5j
cmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOworCisgICAgcGMxLmFkZEV2ZW50TGlzdGVuZXIoJ2Nv
bm5lY3Rpb25zdGF0ZWNoYW5nZScsIG9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlKTsKKworICAgIGV4
Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgICAgZXhjaGFuZ2VPZmZlckFuc3dlcihw
YzEsIHBjMik7CisgIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQg
ZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlJyk7CisKKyAgYXN5bmNf
dGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKKworICAgIGNvbnN0IG9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlID0gdC5zdGVwX2Z1bmMoKCkg
PT4geworICAgICAgY29uc3Qge2Nvbm5lY3Rpb25TdGF0ZX0gPSBwYzE7CisgICAgICBpZiAoY29u
bmVjdGlvblN0YXRlID09PSAnY29ubmVjdGVkJykgeworICAgICAgICBjb25zdCBzY3RwVHJhbnNw
b3J0ID0gcGMxLnNjdHA7CisKKyAgICAgICAgY29uc3QgZHRsc1RyYW5zcG9ydCA9IHNjdHBUcmFu
c3BvcnQudHJhbnNwb3J0OworICAgICAgICBhc3NlcnRfZXF1YWxzKGR0bHNUcmFuc3BvcnQuc3Rh
dGUsICdjb25uZWN0ZWQnLAorICAgICAgICAgICdFeHBlY3QgRFRMUyB0cmFuc3BvcnQgdG8gYmUg
aW4gY29ubmVjdGVkIHN0YXRlJyk7CisKKyAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gZHRs
c1RyYW5zcG9ydC5pY2VUcmFuc3BvcnQKKyAgICAgICAgYXNzZXJ0X3RydWUoaWNlVHJhbnNwb3J0
LnN0YXRlID09PSAgJ2Nvbm5lY3RlZCcgfHwKKyAgICAgICAgICBpY2VUcmFuc3BvcnQuc3RhdGUg
PT09ICdjb21wbGV0ZWQnLAorICAgICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBp
biBjb25uZWN0ZWQgb3IgY29tcGxldGVkIHN0YXRlJyk7CisKKyAgICAgICAgdC5kb25lKCk7Cisg
ICAgICB9CisgICAgfSk7CisKKyAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKwor
ICAgIHBjMS5hZGRFdmVudExpc3RlbmVyKCdjb25uZWN0aW9uc3RhdGVjaGFuZ2UnLCBvbkNvbm5l
Y3Rpb25TdGF0ZUNoYW5nZSk7CisKKyAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIp
OworICAgIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICB9LCAnY29ubmVjdGlvbiB3
aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSB0cmFuc3BvcnRzIGlu
IGNvbm5lY3RlZCBzdGF0ZScpOworCisgIC8qCisgICAgVE9ETworICAgIDQuNC4zLiAgUlRDUGVl
ckNvbm5lY3Rpb25TdGF0ZSBFbnVtCisgICAgICBjb25uZWN0aW5nCisgICAgICAgIEFueSBvZiB0
aGUgUlRDSWNlVHJhbnNwb3J0cyBvciBSVENEdGxzVHJhbnNwb3J0cyBhcmUgaW4gdGhlCisgICAg
ICAgIGNvbm5lY3Rpbmcgb3IgY2hlY2tpbmcgc3RhdGUgYW5kIG5vbmUgb2YgdGhlbSBpcyBpbiB0
aGUgZmFpbGVkIHN0YXRlLgorCisgICAgICBkaXNjb25uZWN0ZWQKKyAgICAgICAgQW55IG9mIHRo
ZSBSVENJY2VUcmFuc3BvcnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0aGUgZGlzY29u
bmVjdGVkCisgICAgICAgIHN0YXRlIGFuZCBub25lIG9mIHRoZW0gYXJlIGluIHRoZSBmYWlsZWQg
b3IgY29ubmVjdGluZyBvciBjaGVja2luZyBzdGF0ZS4KKworICAgICAgZmFpbGVkCisgICAgICAg
IEFueSBvZiB0aGUgUlRDSWNlVHJhbnNwb3J0cyBvciBSVENEdGxzVHJhbnNwb3J0cyBhcmUgaW4g
YSBmYWlsZWQgc3RhdGUuCisKKyAgICAgIGNsb3NlZAorICAgICAgICBUaGUgUlRDUGVlckNvbm5l
Y3Rpb24gb2JqZWN0J3MgW1tpc0Nsb3NlZF1dIHNsb3QgaXMgdHJ1ZS4KKworICAgICA1LjUuIFJU
Q0R0bHNUcmFuc3BvcnRTdGF0ZQorICAgICAgbmV3CisgICAgICAgIERUTFMgaGFzIG5vdCBzdGFy
dGVkIG5lZ290aWF0aW5nIHlldC4KKworICAgICAgY29ubmVjdGluZworICAgICAgICBEVExTIGlz
IGluIHRoZSBwcm9jZXNzIG9mIG5lZ290aWF0aW5nIGEgc2VjdXJlIGNvbm5lY3Rpb24uCisKKyAg
ICAgIGNsb3NlZAorICAgICAgICBUaGUgdHJhbnNwb3J0IGhhcyBiZWVuIGNsb3NlZC4KKworICAg
ICAgZmFpbGVkCisgICAgICAgIFRoZSB0cmFuc3BvcnQgaGFzIGZhaWxlZCBhcyB0aGUgcmVzdWx0
IG9mIGFuIGVycm9yIChzdWNoIGFzIGEgZmFpbHVyZQorICAgICAgICB0byB2YWxpZGF0ZSB0aGUg
cmVtb3RlIGZpbmdlcnByaW50KS4KKworICAgIDUuNi4gIFJUQ0ljZVRyYW5zcG9ydFN0YXRlCisg
ICAgICBuZXcKKyAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBpcyBnYXRoZXJpbmcgY2FuZGlk
YXRlcyBhbmQvb3Igd2FpdGluZyBmb3IKKyAgICAgICAgcmVtb3RlIGNhbmRpZGF0ZXMgdG8gYmUg
c3VwcGxpZWQsIGFuZCBoYXMgbm90IHlldCBzdGFydGVkIGNoZWNraW5nLgorCisgICAgICBjaGVj
a2luZworICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyByZWNlaXZlZCBhdCBsZWFzdCBv
bmUgcmVtb3RlIGNhbmRpZGF0ZSBhbmQKKyAgICAgICAgaXMgY2hlY2tpbmcgY2FuZGlkYXRlIHBh
aXJzIGFuZCBoYXMgZWl0aGVyIG5vdCB5ZXQgZm91bmQgYSBjb25uZWN0aW9uCisgICAgICAgIG9y
IGNvbnNlbnQgY2hlY2tzIFtSRkM3Njc1XSBoYXZlIGZhaWxlZCBvbiBhbGwgcHJldmlvdXNseSBz
dWNjZXNzZnVsCisgICAgICAgIGNhbmRpZGF0ZSBwYWlycy4gSW4gYWRkaXRpb24gdG8gY2hlY2tp
bmcsIGl0IG1heSBhbHNvIHN0aWxsIGJlIGdhdGhlcmluZy4KKworICAgICAgZmFpbGVkCisgICAg
ICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlzaGVkIGdhdGhlcmluZywgcmVjZWl2ZWQg
YW4gaW5kaWNhdGlvbiB0aGF0CisgICAgICAgIHRoZXJlIGFyZSBubyBtb3JlIHJlbW90ZSBjYW5k
aWRhdGVzLCBmaW5pc2hlZCBjaGVja2luZyBhbGwgY2FuZGlkYXRlIHBhaXJzLAorICAgICAgICBh
bmQgYWxsIHBhaXJzIGhhdmUgZWl0aGVyIGZhaWxlZCBjb25uZWN0aXZpdHkgY2hlY2tzIG9yIGhh
dmUgbG9zdCBjb25zZW50LgorCisgICAgICBkaXNjb25uZWN0ZWQKKyAgICAgICAgVGhlIElDRSBB
Z2VudCBoYXMgZGV0ZXJtaW5lZCB0aGF0IGNvbm5lY3Rpdml0eSBpcyBjdXJyZW50bHkgbG9zdCBm
b3IgdGhpcworICAgICAgICBSVENJY2VUcmFuc3BvcnQgLiBUaGlzIGlzIG1vcmUgYWdncmVzc2l2
ZSB0aGFuIGZhaWxlZCwgYW5kIG1heSB0cmlnZ2VyCisgICAgICAgIGludGVybWl0dGVudGx5IChh
bmQgcmVzb2x2ZSBpdHNlbGYgd2l0aG91dCBhY3Rpb24pIG9uIGEgZmxha3kgbmV0d29yay4KKyAg
ICAgICAgVGhlIHdheSB0aGlzIHN0YXRlIGlzIGRldGVybWluZWQgaXMgaW1wbGVtZW50YXRpb24g
ZGVwZW5kZW50LgorCisgICAgICAgIEV4YW1wbGVzIGluY2x1ZGU6CisgICAgICAgICAgTG9zaW5n
IHRoZSBuZXR3b3JrIGludGVyZmFjZSBmb3IgdGhlIGNvbm5lY3Rpb24gaW4gdXNlLgorICAgICAg
ICAgIFJlcGVhdGVkbHkgZmFpbGluZyB0byByZWNlaXZlIGEgcmVzcG9uc2UgdG8gU1RVTiByZXF1
ZXN0cy4KKworICAgICAgICBBbHRlcm5hdGl2ZWx5LCB0aGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBm
aW5pc2hlZCBjaGVja2luZyBhbGwgZXhpc3RpbmcKKyAgICAgICAgY2FuZGlkYXRlcyBwYWlycyBh
bmQgZmFpbGVkIHRvIGZpbmQgYSBjb25uZWN0aW9uIChvciBjb25zZW50IGNoZWNrcworICAgICAg
ICBbUkZDNzY3NV0gb25jZSBzdWNjZXNzZnVsLCBoYXZlIG5vdyBmYWlsZWQpLCBidXQgaXQgaXMg
c3RpbGwgZ2F0aGVyaW5nCisgICAgICAgIGFuZC9vciB3YWl0aW5nIGZvciBhZGRpdGlvbmFsIHJl
bW90ZSBjYW5kaWRhdGVzLgorCisgICAgICBjbG9zZWQKKyAgICAgICAgVGhlIFJUQ0ljZVRyYW5z
cG9ydCBoYXMgc2h1dCBkb3duIGFuZCBpcyBubyBsb25nZXIgcmVzcG9uZGluZyB0byBTVFVOIHJl
cXVlc3RzLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGNh
bGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
Y2FsbGVyLmNsb3NlKCkpOworICAgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworICAgIGNvbnN0
IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2su
c3RvcCgpKSk7CisgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKKyAgICBj
YWxsZXIuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CisKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVy
QW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKKworICAgIGFzc2VydF9lcXVhbHMoY2FsbGVyLmljZUNv
bm5lY3Rpb25TdGF0ZSwgJ25ldycpOworICAgIGFzc2VydF9lcXVhbHMoY2FsbGVlLmljZUNvbm5l
Y3Rpb25TdGF0ZSwgJ25ldycpOworICB9LCAnY29ubmVjdGlvblN0YXRlIHJlbWFpbnMgbmV3IHdo
ZW4gbm90IGFkZGluZyByZW1vdGUgaWNlIGNhbmRpZGF0ZXMnKTsKKworICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisKKyAgICBjb25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlci5jbG9zZSgpKTsKKyAgICBjb25zdCBj
YWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IGNhbGxlZS5jbG9zZSgpKTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVh
bSh7YXVkaW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFj
a3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIGNvbnN0IFt0cmFja10g
PSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgY2FsbGVyLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0p
OworCisgICAgY29uc3Qgc3RhdGVzID0gW107CisgICAgY2FsbGVyLmFkZEV2ZW50TGlzdGVuZXIo
J2Nvbm5lY3Rpb25zdGF0ZWNoYW5nZScsICgpID0+IHN0YXRlcy5wdXNoKGNhbGxlci5jb25uZWN0
aW9uU3RhdGUpKTsKKyAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMoY2FsbGVyLCBjYWxsZWUpOwor
ICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2FsbGVyLCBjYWxsZWUpOworCisgICAgYXdh
aXQgbGlzdGVuVG9Db25uZWN0ZWQoY2FsbGVyKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
c3RhdGVzLCBbJ2Nvbm5lY3RpbmcnLCAnY29ubmVjdGVkJ10pOworICB9LCAnY29ubmVjdGlvblN0
YXRlIHRyYW5zaXRpb25zIHRvIGNvbm5lY3RlZCB2aWEgY29ubmVjdGluZycpOworCisgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBn
ZXROb2lzZVN0cmVhbSh7IGF1ZGlvOiB0cnVlIH0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
c3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisKKyAg
ICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiBwYzEuYWRkVHJhY2sodHJhY2ss
IHN0cmVhbSkpOworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgICAgZXhj
aGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgYXdhaXQgbGlzdGVuVG9JY2VDb25uZWN0
ZWQocGMyKTsKKworICAgIHBjMi5vbmNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9IHQudW5yZWFjaGVk
X2Z1bmMoKTsKKyAgICBwYzIuY2xvc2UoKTsKKyAgICBhc3NlcnRfdHJ1ZShwYzIuY29ubmVjdGlv
blN0YXRlID09PSAnY2xvc2VkJyk7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBf
dGltZW91dChyLCAxMDApKTsKKyAgfSwgJ0Nsb3NpbmcgYSBQZWVyQ29ubmVjdGlvbiBzaG91bGQg
bm90IGZpcmUgY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50Jyk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWNvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25zdHJ1
Y3Rvci5odG1sCmluZGV4IGFiZWEyZWI2NzYxYjc3OWJhNTI3Yjc1NjYwZDBjMjI1OGM4MDViYTEu
LjE3MDhiMjcwNWY4MjNiMGMxNWQzOGQ2ZGU5ZmQxOWU0MjI5ZDdhNTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNvbnN0cnVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29uc3RydWN0b3Iu
aHRtbApAQCAtMTQsNyArMTQsNyBAQCBjb25zdCB0b1N0cmluZ1Rocm93cyA9IHsgdG9TdHJpbmc6
IGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3I7IH0gfTsKIGNvbnN0IHRvTnVtYmVyVGhyb3dz
ID0gU3ltYm9sKCk7CiAKIC8vIFRlc3QgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBjb25zdHJ1
Y3Rvci4gVGhlIGtleSBpcyB0aGUgYXJndW1lbnQgaXRzZWxmLAotLy8gYW5kIHRoZSB2YWx1ZSBp
cyB0aGUgZmlyc3QgYXJndW1lbnQgZm9yIGFzc2VydF90aHJvd3MsIG9yIGZhbHNlIGlmIG5vCisv
LyBhbmQgdGhlIHZhbHVlIGlzIHRoZSBmaXJzdCBhcmd1bWVudCBmb3IgYXNzZXJ0X3Rocm93c19q
cywgb3IgZmFsc2UgaWYgbm8KIC8vIGV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duLgogY29uc3Qg
dGVzdEFyZ3MgPSB7CiAgIC8vIE5vIGFyZ3VtZW50IG9yIGVxdWl2YWxlbnQuCkBAIC0yNCwxNCAr
MjQsMTQgQEAgY29uc3QgdGVzdEFyZ3MgPSB7CiAgICd7fSc6IGZhbHNlLAogCiAgIC8vIGNlcnRp
ZmljYXRlcwotICAneyBjZXJ0aWZpY2F0ZXM6IG51bGwgfSc6IG5ldyBUeXBlRXJyb3IsCisgICd7
IGNlcnRpZmljYXRlczogbnVsbCB9JzogVHlwZUVycm9yLAogICAneyBjZXJ0aWZpY2F0ZXM6IHVu
ZGVmaW5lZCB9JzogZmFsc2UsCiAgICd7IGNlcnRpZmljYXRlczogW10gfSc6IGZhbHNlLAotICAn
eyBjZXJ0aWZpY2F0ZXM6IFtudWxsXSB9JzogbmV3IFR5cGVFcnJvciwKLSAgJ3sgY2VydGlmaWNh
dGVzOiBbdW5kZWZpbmVkXSB9JzogbmV3IFR5cGVFcnJvciwKKyAgJ3sgY2VydGlmaWNhdGVzOiBb
bnVsbF0gfSc6IFR5cGVFcnJvciwKKyAgJ3sgY2VydGlmaWNhdGVzOiBbdW5kZWZpbmVkXSB9Jzog
VHlwZUVycm9yLAogCiAgIC8vIGljZUNhbmRpZGF0ZVBvb2xTaXplCi0gICd7IGljZUNhbmRpZGF0
ZVBvb2xTaXplOiB0b051bWJlclRocm93cyB9JzogbmV3IFR5cGVFcnJvciwKKyAgJ3sgaWNlQ2Fu
ZGlkYXRlUG9vbFNpemU6IHRvTnVtYmVyVGhyb3dzIH0nOiBUeXBlRXJyb3IsCiB9CiAKIGZvciAo
Y29uc3QgYXJnIGluIHRlc3RBcmdzKSB7CkBAIC0zOSw3ICszOSw3IEBAIGZvciAoY29uc3QgYXJn
IGluIHRlc3RBcmdzKSB7CiAgIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgY29uc3QgdGhyb3dzID0g
dGVzdEFyZ3NbYXJnXTsKICAgICBpZiAodGhyb3dzKSB7Ci0gICAgICBhc3NlcnRfdGhyb3dzKHRo
cm93cywgZnVuY3Rpb24oKSB7CisgICAgICBhc3NlcnRfdGhyb3dzX2pzKHRocm93cywgZnVuY3Rp
b24oKSB7CiAgICAgICAgIGV2YWwoZXhwcik7CiAgICAgICB9KTsKICAgICB9IGVsc2UgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlQW5zd2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVh
dGVBbnN3ZXIuaHRtbAppbmRleCAwMzBjZWQ4Yzk4ZjRjOTI2YzVhZjg3MGJmMTYwOTdmNGY1NmE3
ZDFlLi5jZWIwMWU1NGYzNDYxODc5YmY5ZGExODBlNmQ2NjQ2ZjhiMDRjNTk2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1jcmVhdGVBbnN3ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVB
bnN3ZXIuaHRtbApAQCAtMjQsNyArMjQsNyBAQAogICBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjLmNsb3NlKCkpOwotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRT
dGF0ZUVycm9yJywKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZFN0
YXRlRXJyb3InLAogICAgICAgcGMuY3JlYXRlQW5zd2VyKCkpOwogICB9LCAnY3JlYXRlQW5zd2Vy
KCkgd2l0aCBudWxsIHJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlk
U3RhdGVFcnJvcicpOwogCkBAIC01OSw3ICs1OSw3IEBACiAgICAgLnRoZW4ob2ZmZXIgPT4gcGMu
c2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKQogICAgIC50aGVuKCgpID0+IHsKICAgICAgIHBj
LmNsb3NlKCk7Ci0gICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkU3RhdGVF
cnJvcicsCisgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZFN0YXRl
RXJyb3InLAogICAgICAgICBwYy5jcmVhdGVBbnN3ZXIoKSk7CiAgICAgfSk7CiAgIH0sICdjcmVh
dGVBbnN3ZXIoKSB3aGVuIGNvbm5lY3Rpb24gaXMgY2xvc2VkIHJlamVjdCB3aXRoIEludmFsaWRT
dGF0ZUVycm9yJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5lbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5lbC1leHBlY3RlZC50eHQK
aW5kZXggM2MxMWMwMWQxYThlZTVmMjY0OTQ3Mzg3Mjg4YjU4NmNjNzU1YzIwMi4uZGNmYzBjODJi
NTUxOTQ2YWRkOTdkYmQ5ZjZiYjVlMWVkMjgxNmIzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Y3JlYXRlRGF0YUNoYW5uZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURh
dGFDaGFubmVsLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAogUEFTUyBjcmVhdGVEYXRh
Q2hhbm5lbCB3aXRoIG5vIGFyZ3VtZW50IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIGNy
ZWF0ZURhdGFDaGFubmVsIHdpdGggY2xvc2VkIGNvbm5lY3Rpb24gc2hvdWxkIHRocm93IEludmFs
aWRTdGF0ZUVycm9yIAotRkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCBhdHRyaWJ1dGUgZGVmYXVsdCB2
YWx1ZXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImxvdyIgYnV0IGdvdCAodW5k
ZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBwcm92aWRlZCBw
YXJhbWV0ZXJzIHNob3VsZCBpbml0aWFsaXplIGF0dHJpYnV0ZXMgdG8gcHJvdmlkZWQgdmFsdWVz
IFR5cGUgZXJyb3IKK0ZBSUwgY3JlYXRlRGF0YUNoYW5uZWwgYXR0cmlidXRlIGRlZmF1bHQgdmFs
dWVzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJibG9iIiBidXQgZ290ICJhcnJheWJ1ZmZlciIK
K0ZBSUwgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBwcm92aWRlZCBwYXJhbWV0ZXJzIHNob3VsZCBp
bml0aWFsaXplIGF0dHJpYnV0ZXMgdG8gcHJvdmlkZWQgdmFsdWVzIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJibG9iIiBidXQgZ290ICJhcnJheWJ1ZmZlciIKIFBBU1MgY3JlYXRlRGF0YUNoYW5u
ZWwgd2l0aCBsYWJlbCAiZm9vIiBzaG91bGQgc3VjY2VlZCAKIEZBSUwgY3JlYXRlRGF0YUNoYW5u
ZWwgd2l0aCBsYWJlbCBudWxsIHNob3VsZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJudWxsIiBidXQgZ290ICIiCiBQQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggbGFiZWwgdW5k
ZWZpbmVkIHNob3VsZCBzdWNjZWVkIApAQCAtMTEsMjYgKzExLDY4IEBAIFBBU1MgY3JlYXRlRGF0
YUNoYW5uZWwgd2l0aCBvcmRlcmVkIGZhbHNlIHNob3VsZCBzdWNjZWVkCiBQQVNTIGNyZWF0ZURh
dGFDaGFubmVsIHdpdGggb3JkZXJlZCBudWxsL3VuZGVmaW5lZCBzaG91bGQgc3VjY2VlZCAKIFBB
U1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBtYXhQYWNrZXRMaWZlVGltZSAwIHNob3VsZCBzdWNj
ZWVkIAogUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG1heFJldHJhbnNtaXRzIDAgc2hvdWxk
IHN1Y2NlZWQgCi1QQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggYm90aCBtYXhQYWNrZXRMaWZl
VGltZSBhbmQgbWF4UmV0cmFuc21pdHMgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIAorUEFTUyBj
cmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGJvdGggbWF4UGFja2V0TGlmZVRpbWUgYW5kIG1heFJldHJh
bnNtaXRzIHVuZGVmaW5lZCBzaG91bGQgc3VjY2VlZCAKK1BBU1MgY3JlYXRlRGF0YUNoYW5uZWwg
d2l0aCBib3RoIG1heFBhY2tldExpZmVUaW1lIGFuZCBtYXhSZXRyYW5zbWl0cyBzaG91bGQgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHByb3RvY29sICJmb28i
IHNob3VsZCBzdWNjZWVkIAogUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHByb3RvY29sIG51
bGwgc2hvdWxkIHN1Y2NlZWQgCiBQQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggcHJvdG9jb2wg
dW5kZWZpbmVkIHNob3VsZCBzdWNjZWVkIAogUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHBy
b3RvY29sIGxvbmUgc3Vycm9nYXRlIHNob3VsZCBzdWNjZWVkIAotUEFTUyBjcmVhdGVEYXRhQ2hh
bm5lbCB3aXRoIG5lZ290aWF0ZWQgdHJ1ZSBzaG91bGQgc3VjY2VlZCAKLVBBU1MgY3JlYXRlRGF0
YUNoYW5uZWwgd2l0aCBpZCAwIHNob3VsZCBzdWNjZWVkIAotUEFTUyBjcmVhdGVEYXRhQ2hhbm5l
bCB3aXRoIGlkIDEgc2hvdWxkIHN1Y2NlZWQgCi1QQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGgg
aWQgNjU1MzQgc2hvdWxkIHN1Y2NlZWQgCitGQUlMIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggaWQg
MCBhbmQgbmVnb3RpYXRlZCBub3Qgc2V0IHNob3VsZCBzdWNjZWVkLCBidXQgbm90IHNldCB0aGUg
Y2hhbm5lbCdzIGlkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdv
dCAobnVtYmVyKSAwCitGQUlMIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggaWQgMSBhbmQgbmVnb3Rp
YXRlZCBub3Qgc2V0IHNob3VsZCBzdWNjZWVkLCBidXQgbm90IHNldCB0aGUgY2hhbm5lbCdzIGlk
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAobnVtYmVyKSAx
CitGQUlMIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggaWQgNjU1MzQgYW5kIG5lZ290aWF0ZWQgbm90
IHNldCBzaG91bGQgc3VjY2VlZCwgYnV0IG5vdCBzZXQgdGhlIGNoYW5uZWwncyBpZCBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKG51bWJlcikgNjU1MzQKK0ZB
SUwgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCA2NTUzNSBhbmQgbmVnb3RpYXRlZCBub3Qgc2V0
IHNob3VsZCBzdWNjZWVkLCBidXQgbm90IHNldCB0aGUgY2hhbm5lbCdzIGlkIFR5cGUgZXJyb3IK
K1BBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCAwIGFuZCBuZWdvdGlhdGVkIHRydWUgc2hv
dWxkIHN1Y2NlZWQsIGFuZCBzZXQgdGhlIGNoYW5uZWwncyBpZCAKK1BBU1MgY3JlYXRlRGF0YUNo
YW5uZWwgd2l0aCBpZCAxIGFuZCBuZWdvdGlhdGVkIHRydWUgc2hvdWxkIHN1Y2NlZWQsIGFuZCBz
ZXQgdGhlIGNoYW5uZWwncyBpZCAKK0ZBSUwgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCA2NTUz
NCBhbmQgbmVnb3RpYXRlZCB0cnVlIHNob3VsZCBzdWNjZWVkLCBhbmQgc2V0IHRoZSBjaGFubmVs
J3MgaWQgVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorUEFTUyBjcmVhdGVEYXRhQ2hh
bm5lbCB3aXRoIGlkIC0xIGFuZCBuZWdvdGlhdGVkIG5vdCBzZXQgc2hvdWxkIHRocm93IFR5cGVF
cnJvciAKK1BBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCA2NTUzNiBhbmQgbmVnb3RpYXRl
ZCBub3Qgc2V0IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIGNyZWF0ZURhdGFDaGFubmVs
IHdpdGggaWQgLTEgc2hvdWxkIHRocm93IFR5cGVFcnJvciAKIFBBU1MgY3JlYXRlRGF0YUNoYW5u
ZWwgd2l0aCBpZCA2NTUzNSBzaG91bGQgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBjcmVhdGVEYXRh
Q2hhbm5lbCB3aXRoIGlkIDY1NTM2IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIGNyZWF0
ZURhdGFDaGFubmVsIHdpdGggcHJpb3JpdHkgImhpZ2giIHNob3VsZCBzdWNjZWVkIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJoaWdoIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVm
aW5lZAotRkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGludmFsaWQgcHJpb3JpdHkgc2hvdWxk
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4gcGMuY3JlYXRl
RGF0YUNoYW5uZWwoJycsIHsgcHJpb3JpdHk6ICdpbnZhbGlkJyB9KSIgZGlkIG5vdCB0aHJvdwot
RkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG5lZ290aWF0ZWQgZmFsc2UgYW5kIGxvbmcgbGFi
ZWwgc2hvdWxkIHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4K
K0ZBSUwgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCB0b28gbG9uZyBsYWJlbCBzaG91bGQgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PgorICAgIHBjLmNyZWF0
ZURhdGFDaGFubmVsKCdsJy5yZXBlYXQoNjU1MzYpLCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVl
LAorICAgICAgaWQ6IDQyCisgICAgfSkiIGRpZCBub3QgdGhyb3cKK0ZBSUwgY3JlYXRlRGF0YUNo
YW5uZWwgd2l0aCB0b28gbG9uZyBsYWJlbCAoMiBieXRlIHVuaWNvZGUpIHNob3VsZCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+CisgICAgcGMuY3JlYXRl
RGF0YUNoYW5uZWwoJ1x1MDBiNScucmVwZWF0KDMyNzY4KSkiIGRpZCBub3QgdGhyb3cKK1BBU1Mg
Y3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBzYW1lIGxhYmVsIHVzZWQgdHdpY2Ugc2hvdWxkIG5vdCB0
aHJvdyAKK1BBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBuZWdvdGlhdGVkIHRydWUgYW5kIGlk
IHNob3VsZCBzdWNjZWVkIAorRkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHRvbyBsb25nIHBy
b3RvY29sIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24g
IigpID0+CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsKKyAgICAgIHByb3RvY29sOiAn
cCcucmVwZWF0KDY1NTM2KSwKKyAgICAgIG5lZ290aWF0ZWQ6IHRydWUsCisgICAgICBpZDogNDIK
KyAgICB9KSIgZGlkIG5vdCB0aHJvdworRkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHRvbyBs
b25nIHByb3RvY29sICgyIGJ5dGUgdW5pY29kZSkgc2hvdWxkIHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4KICAgICBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgn
JywgewotICAgICAgbGFiZWw6ICcgJy5yZXBlYXQoNjU1MzYpLAotICAgICAgbmVnb3RpYXRlZDog
ZmFsc2UKKyAgICAgIHByb3RvY29sOiAnXHUwMGI2Jy5yZXBlYXQoMzI3NjgpCisgICAgfSkiIGRp
ZCBub3QgdGhyb3cKK1BBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBtYXhpbXVtIGxlbmd0aCBs
YWJlbCBhbmQgcHJvdG9jb2wgc2hvdWxkIHN1Y2NlZWQgCitQQVNTIGNyZWF0ZURhdGFDaGFubmVs
IHdpdGggbmVnb3RpYXRlZCBmYWxzZSBzaG91bGQgc3VjY2VlZCAKK0ZBSUwgY3JlYXRlRGF0YUNo
YW5uZWwgd2l0aCBuZWdvdGlhdGVkIGZhbHNlIGFuZCBpZCA0MiBzaG91bGQgaWdub3JlIHRoZSBp
ZCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGMuaWQgdG8gYmUgaWdub3JlZCAobnVsbCkgZXhwZWN0
ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChudW1iZXIpIDQyCitGQUlMIGNyZWF0ZURhdGFDaGFu
bmVsIHdpdGggbmVnb3RpYXRlZCB0cnVlIGFuZCBpZCBub3QgZGVmaW5lZCBzaG91bGQgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PgorICAgIHBjLmNyZWF0
ZURhdGFDaGFubmVsKCd0ZXN0JywgeworICAgICAgbmVnb3RpYXRlZDogdHJ1ZQogICAgIH0pIiBk
aWQgbm90IHRocm93Ci1QQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggbmVnb3RpYXRlZCBmYWxz
ZSBhbmQgbG9uZyBwcm90b2NvbCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIAotRkFJTCBjcmVhdGVE
YXRhQ2hhbm5lbCB3aXRoIG5lZ290aWF0ZWQgdHJ1ZSBhbmQgbG9uZyBsYWJlbCBhbmQgbG9uZyBw
cm90b2NvbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYnV0IGdvdCAiIgotRkFJTCBDaGFu
bmVscyBjcmVhdGVkIGFmdGVyIFNDVFAgdHJhbnNwb3J0IGlzIGVzdGFibGlzaGVkIHNob3VsZCBo
YXZlIGlkIGFzc2lnbmVkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBnZW5lcmF0
ZUFuc3dlciIKK0ZBSUwgQ2hhbm5lbHMgY3JlYXRlZCAoYWZ0ZXIgc2V0UmVtb3RlRGVzY3JpcHRp
b24pIHNob3VsZCBoYXZlIGlkIGFzc2lnbmVkIGFzc2VydF9ub3RfZXF1YWxzOiBFeHBlY3QgZGMx
LmlkIHRvIGJlIGFzc2lnbmVkIGFmdGVyIHJlbW90ZSBkZXNjcmlwdGlvbiBoYXMgYmVlbiBzZXQg
Z290IGRpc2FsbG93ZWQgdmFsdWUgbnVsbAorRkFJTCBSZXVzaW5nIGEgZGF0YSBjaGFubmVsIGlk
IHRoYXQgaXMgaW4gdXNlIHNob3VsZCB0aHJvdyBPcGVyYXRpb25FcnJvciBhc3NlcnRfdGhyb3dz
X2RvbTogZnVuY3Rpb24gIigpID0+CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5uZWwt
MycsIHsKKyAgICAgIG5lZ290aWF0ZWQ6IHRydWUsCisgICAgICBpZDogNDIsCisgICAgfSkiIHRo
cmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv
cnRlZC4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIE9wZXJhdGlvbkVycm9yOiBwcm9wZXJ0
eSAiY29kZSIgaXMgZXF1YWwgdG8gOSwgZXhwZWN0ZWQgMAorRkFJTCBSZXVzaW5nIGEgZGF0YSBj
aGFubmVsIGlkIHRoYXQgaXMgaW4gdXNlIChhZnRlciBzZXRSZW1vdGVEZXNjcmlwdGlvbikgc2hv
dWxkIHRocm93IE9wZXJhdGlvbkVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkg
PT4KKyAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5uZWwtMycsIHsKKyAgICAgIG5lZ290
aWF0ZWQ6IHRydWUsCisgICAgICBpZDogNDIsCisgICAgfSkiIHRocmV3IG9iamVjdCAiTm90U3Vw
cG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iIHRoYXQgaXMgbm90
IGEgRE9NRXhjZXB0aW9uIE9wZXJhdGlvbkVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwg
dG8gOSwgZXhwZWN0ZWQgMAorRkFJTCBSZXVzaW5nIGEgZGF0YSBjaGFubmVsIGlkIHRoYXQgaXMg
aW4gdXNlIChhZnRlciBzZXRSZW1vdGVEZXNjcmlwdGlvbiwgbmVnb3RpYXRlZCB2aWEgRENFUCkg
c2hvdWxkIHRocm93IE9wZXJhdGlvbkVycm9yIGFzc2VydF9ub3RfZXF1YWxzOiBFeHBlY3QgZGMx
LmlkIHRvIGJlIGFzc2lnbmVkIGFmdGVyIHJlbW90ZSBkZXNjcmlwdGlvbiBoYXMgYmVlbiBzZXQg
Z290IGRpc2FsbG93ZWQgdmFsdWUgbnVsbAorUEFTUyBOZXcgZGF0YWNoYW5uZWwgc2hvdWxkIGJl
IGluIHRoZSBjb25uZWN0aW5nIHN0YXRlIGFmdGVyIGNyZWF0aW9uIChhZnRlciBjb25uZWN0aW9u
IGVzdGFibGlzaG1lbnQpIAorUEFTUyBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyBkYXRhY2hhbm5l
bCwgc2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseSAKK1BBU1MgYWRkVHJhY2ssIHRoZW4gY3JlYXRp
bmcgZGF0YWNoYW5uZWwsIHNob3VsZCBuZWdvdGlhdGUgcHJvcGVybHkgd2hlbiBtYXgtYnVuZGxl
IGlzIHVzZWQgCitGQUlMIFN0b3BwaW5nIHRoZSBidW5kbGUtdGFnIHdoZW4gdGhlcmUgaXMgYSBk
YXRhY2hhbm5lbCBpbiB0aGUgYnVuZGxlIHNob3VsZCBraWxsIHRoZSBEYXRhQ2hhbm5lbCBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJPcGVyYXRp
b25FcnJvcjogRmFpbGVkIHRvIHNldCBsb2NhbCBhbnN3ZXIgc2RwOiBGYWlsZWQgdG8gYXBwbHkg
dGhlIGRlc2NyaXB0aW9uIGZvciAxOiBGYWlsZWQgdG8gc2V0dXAgUlRDUCBtdXguIgorUEFTUyBO
ZXcgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgaW4gdGhlIGNvbm5lY3Rpbmcgc3Rh
dGUgYWZ0ZXIgY3JlYXRpb24gKGFmdGVyIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCkgCitQQVNT
IGFkZFRyYWNrLCB0aGVuIGNyZWF0aW5nIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwsIHNob3VsZCBu
ZWdvdGlhdGUgcHJvcGVybHkgCitQQVNTIGFkZFRyYWNrLCB0aGVuIGNyZWF0aW5nIG5lZ290aWF0
ZWQgZGF0YWNoYW5uZWwsIHNob3VsZCBuZWdvdGlhdGUgcHJvcGVybHkgd2hlbiBtYXgtYnVuZGxl
IGlzIHVzZWQgCitGQUlMIFN0b3BwaW5nIHRoZSBidW5kbGUtdGFnIHdoZW4gdGhlcmUgaXMgYSBu
ZWdvdGlhdGVkIGRhdGFjaGFubmVsIGluIHRoZSBidW5kbGUgc2hvdWxkIGtpbGwgdGhlIERhdGFD
aGFubmVsIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIk9wZXJhdGlvbkVycm9yOiBGYWlsZWQgdG8gc2V0IGxvY2FsIGFuc3dlciBzZHA6IEZhaWxl
ZCB0byBhcHBseSB0aGUgZGVzY3JpcHRpb24gZm9yIDE6IEZhaWxlZCB0byBzZXR1cCBSVENQIG11
eC4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5lbC5odG1sCmluZGV4IDQ1MGEyNTAwMmVkMjIxMmU3
ZjFkZDVjYjk3ZmY5ODVlM2Y5NTdhYTEuLjg3ODY3NjY0YjU4YTY3ODdiZDk2Y2ZiODU1NTliNGYx
MTcxZTI2M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5uZWwuaHRtbApAQCAtMSwxNTQgKzEsMTg1
IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5
cGUuY3JlYXRlRGF0YUNoYW5uZWw8L3RpdGxlPgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7CiAKLS8vIFRlc3QgaXMgYmFz
ZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6Ci0vLyBodHRwczovL3Jhd2dpdC5jb20v
dzNjL3dlYnJ0Yy1wYy9jYzhkODBmNDU1Yjg2YzgwNDFkNjNiY2ViOGI0NTdmNDVjNzJhYTg5L3dl
YnJ0Yy5odG1sCitjb25zdCBzdG9wVHJhY2tzID0gKC4uLnN0cmVhbXMpID0+IHsKKyAgc3RyZWFt
cy5mb3JFYWNoKHN0cmVhbSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0
cmFjay5zdG9wKCkpKTsKK307CisKKy8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBy
ZXZpc2lvbjoKKy8vIGh0dHBzOi8vcmF3Z2l0LmNvbS93M2Mvd2VicnRjLXBjLzFjYzViZmMzZmYx
ODc0MTAzM2Q4MDRjNGE3MWY3ODkxMjQyZmI1YjMvd2VicnRjLmh0bWwKIAogLyoKICAgNi4xLiAg
UlRDUGVlckNvbm5lY3Rpb24gSW50ZXJmYWNlIEV4dGVuc2lvbnMKIAogICAgIHBhcnRpYWwgaW50
ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIHsKLSAgICAgIFJUQ0RhdGFDaGFubmVsIGNyZWF0ZURh
dGFDaGFubmVsKFVTVlN0cmluZyBsYWJlbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25hbCBSVENEYXRhQ2hhbm5lbEluaXQgZGF0YUNoYW5uZWxEaWN0KTsK
LSAgICAgIC4uLgorICAgICAgICBbLi4uXQorICAgICAgICBSVENEYXRhQ2hhbm5lbCBjcmVhdGVE
YXRhQ2hhbm5lbChVU1ZTdHJpbmcgbGFiZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIFJUQ0RhdGFDaGFubmVsSW5pdCBkYXRhQ2hhbm5lbERpY3Qp
OworICAgICAgICBbLi4uXQogICAgIH07CiAKICAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKIAogICAg
IGludGVyZmFjZSBSVENEYXRhQ2hhbm5lbCA6IEV2ZW50VGFyZ2V0IHsKLSAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgVVNWU3RyaW5nICAgICAgICAgICBsYWJlbDsKLSAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICAgICBvcmRlcmVkOwotICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydD8gICAgIG1heFBhY2tldExpZmVUaW1lOwotICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydD8gICAgIG1heFJldHJhbnNtaXRzOwotICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgICAgICAgICAgIHByb3RvY29sOwotICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgIG5lZ290aWF0ZWQ7Ci0g
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0PyAgICAgaWQ7Ci0gICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFJUQ1ByaW9yaXR5VHlwZSAgICAgcHJpb3JpdHk7Ci0gICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFJUQ0RhdGFDaGFubmVsU3RhdGUgcmVhZHlTdGF0ZTsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyAgICAgICAgICAgbGFiZWw7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgIG9yZGVyZWQ7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydD8gICAgIG1heFBhY2tldExpZmVUaW1l
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQ/ICAgICBtYXhSZXRy
YW5zbWl0czsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyAgICAgICAgICAg
cHJvdG9jb2w7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAg
IG5lZ290aWF0ZWQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydD8g
ICAgIGlkOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRGF0YUNoYW5uZWxTdGF0ZSBy
ZWFkeVN0YXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICAg
ICBidWZmZXJlZEFtb3VudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgICAgICAgYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQ7CisgICAgICAgIFsuLi5dCisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgIGJpbmFyeVR5cGU7Cisg
ICAgICAgIFsuLi5dCiAgICAgfTsKIAogICAgIGRpY3Rpb25hcnkgUlRDRGF0YUNoYW5uZWxJbml0
IHsKLSAgICAgIGJvb2xlYW4gICAgICAgICBvcmRlcmVkID0gdHJ1ZTsKLSAgICAgIHVuc2lnbmVk
IHNob3J0ICBtYXhQYWNrZXRMaWZlVGltZTsKLSAgICAgIHVuc2lnbmVkIHNob3J0ICBtYXhSZXRy
YW5zbWl0czsKLSAgICAgIFVTVlN0cmluZyAgICAgICBwcm90b2NvbCA9ICIiOwotICAgICAgYm9v
bGVhbiAgICAgICAgIG5lZ290aWF0ZWQgPSBmYWxzZTsKLSAgICAgIFtFbmZvcmNlUmFuZ2VdCi0g
ICAgICB1bnNpZ25lZCBzaG9ydCAgaWQ7Ci0gICAgICBSVENQcmlvcml0eVR5cGUgcHJpb3JpdHkg
PSAibG93IjsKLSAgICB9OwotCi0gIDQuOS4xLiAgUlRDUHJpb3JpdHlUeXBlIEVudW0KLQotICAg
IGVudW0gUlRDUHJpb3JpdHlUeXBlIHsKLSAgICAgICJ2ZXJ5LWxvdyIsCi0gICAgICAibG93IiwK
LSAgICAgICJtZWRpdW0iLAotICAgICAgImhpZ2giCisgICAgICAgIGJvb2xlYW4gICAgICAgICBv
cmRlcmVkID0gdHJ1ZTsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQgIG1heFBhY2tldExpZmVUaW1l
OworICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbWF4UmV0cmFuc21pdHM7CisgICAgICAgIFVTVlN0
cmluZyAgICAgICBwcm90b2NvbCA9ICIiOworICAgICAgICBib29sZWFuICAgICAgICAgbmVnb3Rp
YXRlZCA9IGZhbHNlOworICAgICAgICBbRW5mb3JjZVJhbmdlXQorICAgICAgICB1bnNpZ25lZCBz
aG9ydCAgaWQ7CiAgICAgfTsKICAqLwogCi10ZXN0KCgpID0+IHsKK3Rlc3QodCA9PiB7CiAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CisKICAgYXNzZXJ0X2VxdWFscyhwYy5jcmVhdGVEYXRhQ2hhbm5lbC5sZW5n
dGgsIDEpOwotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gcGMuY3JlYXRl
RGF0YUNoYW5uZWwoKSk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBwYy5j
cmVhdGVEYXRhQ2hhbm5lbCgpKTsKIH0sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG5vIGFyZ3Vt
ZW50IHNob3VsZCB0aHJvdyBUeXBlRXJyb3InKTsKIAogLyoKICAgNi4yLiAgY3JlYXRlRGF0YUNo
YW5uZWwKICAgICAyLiAgSWYgY29ubmVjdGlvbidzIFtbaXNDbG9zZWRdXSBzbG90IGlzIHRydWUs
IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yLgogICovCi10ZXN0KCgpID0+IHsKK3Rlc3QodCA9
PiB7CiAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgIHBjLmNsb3NlKCk7
CiAgIGFzc2VydF9lcXVhbHMocGMuc2lnbmFsaW5nU3RhdGUsICdjbG9zZWQnLCAnc2lnbmFsaW5n
IHN0YXRlJyk7Ci0gIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gcGMu
Y3JlYXRlRGF0YUNoYW5uZWwoJycpKTsKKyAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0
ZUVycm9yJywgKCkgPT4gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycpKTsKIH0sICdjcmVhdGVEYXRh
Q2hhbm5lbCB3aXRoIGNsb3NlZCBjb25uZWN0aW9uIHNob3VsZCB0aHJvdyBJbnZhbGlkU3RhdGVF
cnJvcicpOwogCiAvKgogICA2LjEuICBjcmVhdGVEYXRhQ2hhbm5lbAotICAgIDQuICBMZXQgY2hh
bm5lbCBoYXZlIGEgW1tMYWJlbF1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8gdGhlIHZh
bHVlIG9mIHRoZQorICAgIDQuICBMZXQgY2hhbm5lbCBoYXZlIGEgW1tEYXRhQ2hhbm5lbExhYmVs
XV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0byB0aGUgdmFsdWUgb2YgdGhlCiAgICAgICAg
IGZpcnN0IGFyZ3VtZW50LgotICAgIDUuICBMZXQgb3B0aW9ucyBiZSB0aGUgc2Vjb25kIGFyZ3Vt
ZW50LgotICAgIDYuICBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbTWF4UGFja2V0TGlmZVRpbWVdXSBp
bnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvCisgICAgNi4gIExldCBvcHRpb25zIGJlIHRoZSBz
ZWNvbmQgYXJndW1lbnQuCisgICAgNy4gIExldCBjaGFubmVsIGhhdmUgYW4gW1tNYXhQYWNrZXRM
aWZlVGltZV1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8KICAgICAgICAgb3B0aW9uJ3Mg
bWF4UGFja2V0TGlmZVRpbWUgbWVtYmVyLCBpZiBwcmVzZW50LCBvdGhlcndpc2UgbnVsbC4KLSAg
ICA3LiAgTGV0IGNoYW5uZWwgaGF2ZSBhbiBbW01heFJldHJhbnNtaXRzXV0gaW50ZXJuYWwgc2xv
dCBpbml0aWFsaXplZCB0bworICAgIDguICBMZXQgY2hhbm5lbCBoYXZlIGEgW1tSZWFkeVN0YXRl
XV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0byAiY29ubmVjdGluZyIuCisgICAgOS4gIExl
dCBjaGFubmVsIGhhdmUgYSBbW0J1ZmZlcmVkQW1vdW50XV0gaW50ZXJuYWwgc2xvdCBpbml0aWFs
aXplZCB0byAwLgorICAgIDEwLiBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbTWF4UmV0cmFuc21pdHNd
XSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvCiAgICAgICAgIG9wdGlvbidzIG1heFJldHJh
bnNtaXRzIG1lbWJlciwgaWYgcHJlc2VudCwgb3RoZXJ3aXNlIG51bGwuCi0gICAgOC4gIExldCBj
aGFubmVsIGhhdmUgYW4gW1tEYXRhQ2hhbm5lbElkXV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXpl
ZCB0bwotICAgICAgICBvcHRpb24ncyBpZCBtZW1iZXIsIGlmIHByZXNlbnQsIG90aGVyd2lzZSBu
dWxsLgotICAgIDkuICBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbT3JkZXJlZF1dIGludGVybmFsIHNs
b3QgaW5pdGlhbGl6ZWQgdG8gb3B0aW9uJ3MKKyAgICAxMS4gTGV0IGNoYW5uZWwgaGF2ZSBhbiBb
W09yZGVyZWRdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvIG9wdGlvbidzCiAgICAgICAg
IG9yZGVyZWQgbWVtYmVyLgotICAgIDEwLiBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbUHJvdG9jb2xd
XSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvIG9wdGlvbidzCisgICAgMTIuIExldCBjaGFu
bmVsIGhhdmUgYSBbW0RhdGFDaGFubmVsUHJvdG9jb2xdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxp
emVkIHRvIG9wdGlvbidzCiAgICAgICAgIHByb3RvY29sIG1lbWJlci4KLSAgICAxMS4gTGV0IGNo
YW5uZWwgaGF2ZSBhbiBbW05lZ290aWF0ZWRdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRv
IG9wdGlvbidzCi0gICAgICAgIG5lZ290aWF0ZWQgbWVtYmVyLgotICAgIDEyLiBMZXQgY2hhbm5l
bCBoYXZlIGFuIFtbRGF0YUNoYW5uZWxQcmlvcml0eV1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6
ZWQKLSAgICAgICAgdG8gb3B0aW9uJ3MgcHJpb3JpdHkgbWVtYmVyLgorICAgIDE0LiBMZXQgY2hh
bm5lbCBoYXZlIGEgW1tOZWdvdGlhdGVkXV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0byBv
cHRpb24ncyBuZWdvdGlhdGVkCisgICAgICAgIG1lbWJlci4KKyAgICAxNS4gTGV0IGNoYW5uZWwg
aGF2ZSBhbiBbW0RhdGFDaGFubmVsSWRdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvIG9w
dGlvbidzIGlkCisgICAgICAgIG1lbWJlciwgaWYgaXQgaXMgcHJlc2VudCBhbmQgW1tOZWdvdGlh
dGVkXV0gaXMgdHJ1ZSwgb3RoZXJ3aXNlIG51bGwuCisgICAgMjEuIElmIHRoZSBbW0RhdGFDaGFu
bmVsSWRdXSBzbG90IGlzIG51bGwgKGR1ZSB0byBubyBJRCBiZWluZyBwYXNzZWQgaW50bworICAg
ICAgICBjcmVhdGVEYXRhQ2hhbm5lbCwgb3IgW1tOZWdvdGlhdGVkXV0gYmVpbmcgZmFsc2UpLCBh
bmQgdGhlIERUTFMgcm9sZSBvZiB0aGUgU0NUUAorICAgICAgICB0cmFuc3BvcnQgaGFzIGFscmVh
ZHkgYmVlbiBuZWdvdGlhdGVkLCB0aGVuIGluaXRpYWxpemUgW1tEYXRhQ2hhbm5lbElkXV0gdG8g
YSB2YWx1ZQorICAgICAgICBnZW5lcmF0ZWQgYnkgdGhlIHVzZXIgYWdlbnQsIGFjY29yZGluZyB0
byBbUlRDV0VCLURBVEEtUFJPVE9DT0xdLCBhbmQgc2tpcAorICAgICAgICB0byB0aGUgbmV4dCBz
dGVwLiBJZiBubyBhdmFpbGFibGUgSUQgY291bGQgYmUgZ2VuZXJhdGVkLCBvciBpZiB0aGUgdmFs
dWUgb2YgdGhlCisgICAgICAgIFtbRGF0YUNoYW5uZWxJZF1dIHNsb3QgaXMgYmVpbmcgdXNlZCBi
eSBhbiBleGlzdGluZyBSVENEYXRhQ2hhbm5lbCwgdGhyb3cgYW4KKyAgICAgICAgT3BlcmF0aW9u
RXJyb3IgZXhjZXB0aW9uLgorCisgICAgICAgIE5vdGUKKyAgICAgICAgSWYgdGhlIFtbRGF0YUNo
YW5uZWxJZF1dIHNsb3QgaXMgbnVsbCBhZnRlciB0aGlzIHN0ZXAsIGl0IHdpbGwgYmUgcG9wdWxh
dGVkIG9uY2UKKyAgICAgICAgdGhlIERUTFMgcm9sZSBpcyBkZXRlcm1pbmVkIGR1cmluZyB0aGUg
cHJvY2VzcyBvZiBzZXR0aW5nIGFuIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi4KKyAgICAyMi4gSWYg
Y2hhbm5lbCBpcyB0aGUgZmlyc3QgUlRDRGF0YUNoYW5uZWwgY3JlYXRlZCBvbiBjb25uZWN0aW9u
LCB1cGRhdGUgdGhlCisgICAgICAgIG5lZ290aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25uZWN0
aW9uLgorCiAKICAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKIAogICAgIEEgUlRDRGF0YUNoYW5uZWws
IGNyZWF0ZWQgd2l0aCBjcmVhdGVEYXRhQ2hhbm5lbCBvciBkaXNwYXRjaGVkIHZpYSBhCiAgICAg
UlRDRGF0YUNoYW5uZWxFdmVudCwgTVVTVCBpbml0aWFsbHkgYmUgaW4gdGhlIGNvbm5lY3Rpbmcg
c3RhdGUKIAorICAgIGJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkCisgICAgICBbLi4uXSBUaGUg
YnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQgaXMgaW5pdGlhbGx5IHplcm8gb24gZWFjaCBuZXcg
UlRDRGF0YUNoYW5uZWwsCisgICAgICBidXQgdGhlIGFwcGxpY2F0aW9uIG1heSBjaGFuZ2UgaXRz
IHZhbHVlIGF0IGFueSB0aW1lLgorCiAgICAgYmluYXJ5VHlwZQotICAgICAgV2hlbiBhIFJUQ0Rh
dGFDaGFubmVsIG9iamVjdCBpcyBjcmVhdGVkLCB0aGUgYmluYXJ5VHlwZSBhdHRyaWJ1dGUgTVVT
VAorICAgICAgWy4uLl0gV2hlbiBhIFJUQ0RhdGFDaGFubmVsIG9iamVjdCBpcyBjcmVhdGVkLCB0
aGUgYmluYXJ5VHlwZSBhdHRyaWJ1dGUgTVVTVAogICAgICAgYmUgaW5pdGlhbGl6ZWQgdG8gdGhl
IHN0cmluZyAiYmxvYiIuCiAgKi8KLXRlc3QoKCkgPT4gewordGVzdCh0ID0+IHsKICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29uc3QgY2hhbm5lbCA9IHBjLmNyZWF0
ZURhdGFDaGFubmVsKCcnKTsKLSAgYXNzZXJ0X3RydWUoY2hhbm5lbCBpbnN0YW5jZW9mIFJUQ0Rh
dGFDaGFubmVsLCAnaXMgUlRDRGF0YUNoYW5uZWwnKTsKLSAgYXNzZXJ0X2VxdWFscyhjaGFubmVs
LmxhYmVsLCAnJyk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5vcmRlcmVkLCB0cnVlKTsKLSAg
YXNzZXJ0X2VxdWFscyhjaGFubmVsLm1heFBhY2tldExpZmVUaW1lLCBudWxsKTsKLSAgYXNzZXJ0
X2VxdWFscyhjaGFubmVsLm1heFJldHJhbnNtaXRzLCBudWxsKTsKLSAgYXNzZXJ0X2VxdWFscyhj
aGFubmVsLnByb3RvY29sLCAnJyk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5uZWdvdGlhdGVk
LCBmYWxzZSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgY29uc3Qg
ZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJyk7CiAKKyAgYXNzZXJ0X3RydWUoZGMgaW5zdGFu
Y2VvZiBSVENEYXRhQ2hhbm5lbCwgJ2lzIFJUQ0RhdGFDaGFubmVsJyk7CisgIGFzc2VydF9lcXVh
bHMoZGMubGFiZWwsICcnKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5vcmRlcmVkLCB0cnVlKTsKKyAg
YXNzZXJ0X2VxdWFscyhkYy5tYXhQYWNrZXRMaWZlVGltZSwgbnVsbCk7CisgIGFzc2VydF9lcXVh
bHMoZGMubWF4UmV0cmFuc21pdHMsIG51bGwpOworICBhc3NlcnRfZXF1YWxzKGRjLnByb3RvY29s
LCAnJyk7CisgIGFzc2VydF9lcXVhbHMoZGMubmVnb3RpYXRlZCwgZmFsc2UpOwogICAvLyBTaW5j
ZSBubyBvZmZlci9hbnN3ZXIgZXhjaGFuZ2UgaGFzIG9jY3VycmVkIHlldCwgdGhlIERUTFMgcm9s
ZSBpcyB1bmtub3duCiAgIC8vIGFuZCBzbyB0aGUgSUQgc2hvdWxkIGJlIG51bGwuCi0gIGFzc2Vy
dF9lcXVhbHMoY2hhbm5lbC5pZCwgbnVsbCk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5wcmlv
cml0eSwgJ2xvdycpOwotCi0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5yZWFkeVN0YXRlLCAnY29u
bmVjdGluZycpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwuYmluYXJ5VHlwZSwgJ2Jsb2InKTsK
LQorICBhc3NlcnRfZXF1YWxzKGRjLmlkLCBudWxsKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5yZWFk
eVN0YXRlLCAnY29ubmVjdGluZycpOworICBhc3NlcnRfZXF1YWxzKGRjLmJ1ZmZlcmVkQW1vdW50
LCAwKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5idWZmZXJlZEFtb3VudExvd1RocmVzaG9sZCwgMCk7
CisgIGFzc2VydF9lcXVhbHMoZGMuYmluYXJ5VHlwZSwgJ2Jsb2InKTsKIH0sICdjcmVhdGVEYXRh
Q2hhbm5lbCBhdHRyaWJ1dGUgZGVmYXVsdCB2YWx1ZXMnKTsKIAotdGVzdCgoKSA9PiB7Cit0ZXN0
KHQgPT4gewogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBj
aGFubmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnLCB7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgY29uc3QgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgn
dGVzdCcsIHsKICAgICBvcmRlcmVkOiBmYWxzZSwKLSAgICBtYXhQYWNrZXRMaWZlVGltZTogbnVs
bCwKICAgICBtYXhSZXRyYW5zbWl0czogMSwKKyAgICAvLyBOb3RlOiBtYXhQYWNrZXRMaWZlVGlt
ZSBpcyBub3Qgc2V0IGluIHRoaXMgdGVzdC4KICAgICBwcm90b2NvbDogJ2N1c3RvbScsCiAgICAg
bmVnb3RpYXRlZDogdHJ1ZSwKLSAgICBpZDogMywKLSAgICBwcmlvcml0eTogJ2hpZ2gnCisgICAg
aWQ6IDMKICAgfSk7CiAKLSAgYXNzZXJ0X3RydWUoY2hhbm5lbCBpbnN0YW5jZW9mIFJUQ0RhdGFD
aGFubmVsLCAnaXMgUlRDRGF0YUNoYW5uZWwnKTsKLSAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLmxh
YmVsLCAndGVzdCcpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwub3JkZXJlZCwgZmFsc2UpOwot
ICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwubWF4UGFja2V0TGlmZVRpbWUsIG51bGwpOwotICBhc3Nl
cnRfZXF1YWxzKGNoYW5uZWwubWF4UmV0cmFuc21pdHMsIDEpOwotICBhc3NlcnRfZXF1YWxzKGNo
YW5uZWwucHJvdG9jb2wsICdjdXN0b20nKTsKLSAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLm5lZ290
aWF0ZWQsIHRydWUpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwuaWQsIDMpOwotICBhc3NlcnRf
ZXF1YWxzKGNoYW5uZWwucHJpb3JpdHksICdoaWdoJyk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5l
bC5yZWFkeVN0YXRlLCAnY29ubmVjdGluZycpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwuYmlu
YXJ5VHlwZSwgJ2Jsb2InKTsKLQorICBhc3NlcnRfdHJ1ZShkYyBpbnN0YW5jZW9mIFJUQ0RhdGFD
aGFubmVsLCAnaXMgUlRDRGF0YUNoYW5uZWwnKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5sYWJlbCwg
J3Rlc3QnKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5vcmRlcmVkLCBmYWxzZSk7CisgIGFzc2VydF9l
cXVhbHMoZGMubWF4UGFja2V0TGlmZVRpbWUsIG51bGwpOworICBhc3NlcnRfZXF1YWxzKGRjLm1h
eFJldHJhbnNtaXRzLCAxKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5wcm90b2NvbCwgJ2N1c3RvbScp
OworICBhc3NlcnRfZXF1YWxzKGRjLm5lZ290aWF0ZWQsIHRydWUpOworICBhc3NlcnRfZXF1YWxz
KGRjLmlkLCAzKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5yZWFkeVN0YXRlLCAnY29ubmVjdGluZycp
OworICBhc3NlcnRfZXF1YWxzKGRjLmJ1ZmZlcmVkQW1vdW50LCAwKTsKKyAgYXNzZXJ0X2VxdWFs
cyhkYy5idWZmZXJlZEFtb3VudExvd1RocmVzaG9sZCwgMCk7CisgIGFzc2VydF9lcXVhbHMoZGMu
YmluYXJ5VHlwZSwgJ2Jsb2InKTsKKworICBjb25zdCBkYzIgPSBwYy5jcmVhdGVEYXRhQ2hhbm5l
bCgndGVzdDInLCB7CisgICAgb3JkZXJlZDogZmFsc2UsCisgICAgbWF4UGFja2V0TGlmZVRpbWU6
IDQyCisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRjMi5sYWJlbCwgJ3Rlc3QyJyk7CisgIGFzc2Vy
dF9lcXVhbHMoZGMyLm1heFBhY2tldExpZmVUaW1lLCA0Mik7CisgIGFzc2VydF9lcXVhbHMoZGMy
Lm1heFJldHJhbnNtaXRzLCBudWxsKTsKIH0sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHByb3Zp
ZGVkIHBhcmFtZXRlcnMgc2hvdWxkIGluaXRpYWxpemUgYXR0cmlidXRlcyB0byBwcm92aWRlZCB2
YWx1ZXMnKTsKIAogLyoKICAgNi4yLiAgY3JlYXRlRGF0YUNoYW5uZWwKLSAgICA0LiAgTGV0IGNo
YW5uZWwgaGF2ZSBhIFtbTGFiZWxdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvIHRoZSB2
YWx1ZSBvZiB0aGUKKyAgICA0LiAgTGV0IGNoYW5uZWwgaGF2ZSBhIFtbRGF0YUNoYW5uZWxMYWJl
bF1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8gdGhlIHZhbHVlIG9mIHRoZQogICAgICAg
ICBmaXJzdCBhcmd1bWVudC4KIAogICBbRUNNQTI2Ml0gNy4xLjEyLiBUb1N0cmluZyhhcmd1bWVu
dCkKQEAgLTE2NCw3NiArMTk1LDEwMiBAQCBjb25zdCBsYWJlbHMgPSBbCiAgIFsnbG9uZSBzdXJy
b2dhdGUnLCAnXHVEODAwJywgJ1x1RkZGRCddLAogXTsKIGZvciAoY29uc3QgW2Rlc2NyaXB0aW9u
LCBsYWJlbCwgZXhwZWN0ZWRdIG9mIGxhYmVscykgewotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCh0
ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbjsKLSAgICBjb25zdCBj
aGFubmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwobGFiZWwpOwotICAgIGFzc2VydF9lcXVhbHMo
Y2hhbm5lbC5sYWJlbCwgZXhwZWN0ZWQpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CisKKyAgICBjb25zdCBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKGxhYmVsKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGRjLmxhYmVsLCBleHBlY3RlZCk7CiAgIH0sIGBjcmVhdGVEYXRhQ2hh
bm5lbCB3aXRoIGxhYmVsICR7ZGVzY3JpcHRpb259IHNob3VsZCBzdWNjZWVkYCk7CiB9CiAKIC8q
CiAgIDYuMi4gIFJUQ0RhdGFDaGFubmVsCiAgICAgY3JlYXRlRGF0YUNoYW5uZWwKLSAgICAgIDku
ICBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbT3JkZXJlZF1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6
ZWQgdG8gb3B0aW9uJ3MKKyAgICAgIDExLiBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbT3JkZXJlZF1d
IGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8gb3B0aW9uJ3MKICAgICAgICAgICBvcmRlcmVk
IG1lbWJlci4KICAqLwotdGVzdCgoKSA9PiB7Cit0ZXN0KHQgPT4gewogICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBjaGFubmVsID0gcGMuY3JlYXRlRGF0YUNo
YW5uZWwoJycsIHsgb3JkZXJlZDogZmFsc2UgfSk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5v
cmRlcmVkLCBmYWxzZSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAg
Y29uc3QgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBvcmRlcmVkOiBmYWxzZSB9KTsK
KyAgYXNzZXJ0X2VxdWFscyhkYy5vcmRlcmVkLCBmYWxzZSk7CiB9LCAnY3JlYXRlRGF0YUNoYW5u
ZWwgd2l0aCBvcmRlcmVkIGZhbHNlIHNob3VsZCBzdWNjZWVkJyk7CiAKIC8vIHRydWUgYXMgdGhl
IGRlZmF1bHQgdmFsdWUgb2YgYSBib29sZWFuIGlzIGNvbmZ1c2luZyBiZWNhdXNlIG51bGwgaXMg
Y29udmVydGVkCiAvLyB0byBmYWxzZSB3aGlsZSB1bmRlZmluZWQgaXMgY29udmVydGVkIHRvIHRy
dWUuCi10ZXN0KCgpID0+IHsKK3Rlc3QodCA9PiB7CiAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7Ci0gIGNvbnN0IGNoYW5uZWwxID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycs
IHsgb3JkZXJlZDogbnVsbCB9KTsKLSAgYXNzZXJ0X2VxdWFscyhjaGFubmVsMS5vcmRlcmVkLCBm
YWxzZSk7Ci0gIGNvbnN0IGNoYW5uZWwyID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsgb3Jk
ZXJlZDogdW5kZWZpbmVkIH0pOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwyLm9yZGVyZWQsIHRy
dWUpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgIGNvbnN0IGRjMSA9
IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7IG9yZGVyZWQ6IG51bGwgfSk7CisgIGFzc2VydF9l
cXVhbHMoZGMxLm9yZGVyZWQsIGZhbHNlKTsKKyAgY29uc3QgZGMyID0gcGMuY3JlYXRlRGF0YUNo
YW5uZWwoJycsIHsgb3JkZXJlZDogdW5kZWZpbmVkIH0pOworICBhc3NlcnRfZXF1YWxzKGRjMi5v
cmRlcmVkLCB0cnVlKTsKIH0sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG9yZGVyZWQgbnVsbC91
bmRlZmluZWQgc2hvdWxkIHN1Y2NlZWQnKTsKIAogLyoKICAgNi4yLiAgUlRDRGF0YUNoYW5uZWwK
ICAgICBjcmVhdGVEYXRhQ2hhbm5lbAotICAgICAgNi4gIExldCBjaGFubmVsIGhhdmUgYW4gW1tN
YXhQYWNrZXRMaWZlVGltZV1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8KKyAgICAgIDcu
ICBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbTWF4UGFja2V0TGlmZVRpbWVdXSBpbnRlcm5hbCBzbG90
IGluaXRpYWxpemVkIHRvCiAgICAgICAgICAgb3B0aW9uJ3MgbWF4UGFja2V0TGlmZVRpbWUgbWVt
YmVyLCBpZiBwcmVzZW50LCBvdGhlcndpc2UgbnVsbC4KICAqLwotdGVzdCgoKSA9PiB7Cit0ZXN0
KHQgPT4gewogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbjsKLSAgY29uc3QgY2hh
bm5lbCA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7IG1heFBhY2tldExpZmVUaW1lOiAwIH0p
OwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwubWF4UGFja2V0TGlmZVRpbWUsIDApOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgIGNvbnN0IGRjID0gcGMuY3JlYXRlRGF0
YUNoYW5uZWwoJycsIHsgbWF4UGFja2V0TGlmZVRpbWU6IDAgfSk7CisgIGFzc2VydF9lcXVhbHMo
ZGMubWF4UGFja2V0TGlmZVRpbWUsIDApOwogfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggbWF4
UGFja2V0TGlmZVRpbWUgMCBzaG91bGQgc3VjY2VlZCcpOwogCiAvKgogICA2LjIuICBSVENEYXRh
Q2hhbm5lbAogICAgIGNyZWF0ZURhdGFDaGFubmVsCi0gICAgICA3LiAgTGV0IGNoYW5uZWwgaGF2
ZSBhbiBbW01heFJldHJhbnNtaXRzXV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0bworICAg
ICAgMTAuIExldCBjaGFubmVsIGhhdmUgYW4gW1tNYXhSZXRyYW5zbWl0c11dIGludGVybmFsIHNs
b3QgaW5pdGlhbGl6ZWQgdG8KICAgICAgICAgICBvcHRpb24ncyBtYXhSZXRyYW5zbWl0cyBtZW1i
ZXIsIGlmIHByZXNlbnQsIG90aGVyd2lzZSBudWxsLgogICovCi10ZXN0KCgpID0+IHsKK3Rlc3Qo
dCA9PiB7CiAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uOwotICBjb25zdCBjaGFu
bmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsgbWF4UmV0cmFuc21pdHM6IDAgfSk7Ci0g
IGFzc2VydF9lcXVhbHMoY2hhbm5lbC5tYXhSZXRyYW5zbWl0cywgMCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgY29uc3QgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5l
bCgnJywgeyBtYXhSZXRyYW5zbWl0czogMCB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5tYXhSZXRy
YW5zbWl0cywgMCk7CiB9LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBtYXhSZXRyYW5zbWl0cyAw
IHNob3VsZCBzdWNjZWVkJyk7CiAKIC8qCiAgIDYuMi4gIGNyZWF0ZURhdGFDaGFubmVsCi0gICAg
MTUuIElmIGJvdGggW1tNYXhQYWNrZXRMaWZlVGltZV1dIGFuZCBbW01heFJldHJhbnNtaXRzXV0g
YXR0cmlidXRlcyBhcmUgc2V0Ci0gICAgICAgIChub3QgbnVsbCksIHRocm93IGEgVHlwZUVycm9y
LgorICAgIDE4LiBJZiBib3RoIFtbTWF4UGFja2V0TGlmZVRpbWVdXSBhbmQgW1tNYXhSZXRyYW5z
bWl0c11dIGF0dHJpYnV0ZXMgYXJlIHNldCAobm90IG51bGwpLAorICAgICAgICB0aHJvdyBhIFR5
cGVFcnJvci4KICAqLwotdGVzdCgoKSA9PiB7Cit0ZXN0KHQgPT4gewogICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbjsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgp
ID0+IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisKKyAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsKKyAgICBtYXhQYWNrZXRM
aWZlVGltZTogdW5kZWZpbmVkLAorICAgIG1heFJldHJhbnNtaXRzOiB1bmRlZmluZWQKKyAgfSk7
Cit9LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBib3RoIG1heFBhY2tldExpZmVUaW1lIGFuZCBt
YXhSZXRyYW5zbWl0cyB1bmRlZmluZWQgc2hvdWxkIHN1Y2NlZWQnKTsKKwordGVzdCh0ID0+IHsK
KyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb247CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7CisKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHBj
LmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7CiAgICAgbWF4UGFja2V0TGlmZVRpbWU6IDAsCiAgICAg
bWF4UmV0cmFuc21pdHM6IDAKICAgfSkpOwotfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggYm90
aCBtYXhQYWNrZXRMaWZlVGltZSBhbmQgbWF4UmV0cmFuc21pdHMgc2hvdWxkIHRocm93IFN5bnRh
eEVycm9yJyk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBwYy5jcmVhdGVE
YXRhQ2hhbm5lbCgnJywgeworICAgIG1heFBhY2tldExpZmVUaW1lOiA0MiwKKyAgICBtYXhSZXRy
YW5zbWl0czogNDIKKyAgfSkpOworfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggYm90aCBtYXhQ
YWNrZXRMaWZlVGltZSBhbmQgbWF4UmV0cmFuc21pdHMgc2hvdWxkIHRocm93IFR5cGVFcnJvcicp
OwogCiAvKgogICA2LjIuICBSVENEYXRhQ2hhbm5lbAogICAgIGNyZWF0ZURhdGFDaGFubmVsCi0g
ICAgICAxMC4gTGV0IGNoYW5uZWwgaGF2ZSBhbiBbW1Byb3RvY29sXV0gaW50ZXJuYWwgc2xvdCBp
bml0aWFsaXplZCB0byBvcHRpb24ncworICAgICAgMTIuIExldCBjaGFubmVsIGhhdmUgYSBbW0Rh
dGFDaGFubmVsUHJvdG9jb2xdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvIG9wdGlvbidz
CiAgICAgICAgICAgcHJvdG9jb2wgbWVtYmVyLgogICovCiBjb25zdCBwcm90b2NvbHMgPSBbCkBA
IC0yNDMsMTk2ICszMDAsNDUzIEBAIGNvbnN0IHByb3RvY29scyA9IFsKICAgWydsb25lIHN1cnJv
Z2F0ZScsICdcdUQ4MDAnLCAnXHVGRkZEJ10sCiBdOwogZm9yIChjb25zdCBbZGVzY3JpcHRpb24s
IHByb3RvY29sLCBleHBlY3RlZF0gb2YgcHJvdG9jb2xzKSB7Ci0gIHRlc3QoKCkgPT4geworICB0
ZXN0KHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uOwotICAgIGNv
bnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBwcm90b2NvbCB9KTsKLSAg
ICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwucHJvdG9jb2wsIGV4cGVjdGVkKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgY29uc3QgZGMgPSBwYy5jcmVhdGVEYXRh
Q2hhbm5lbCgnJywgeyBwcm90b2NvbCB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjLnByb3RvY29s
LCBleHBlY3RlZCk7CiAgIH0sIGBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHByb3RvY29sICR7ZGVz
Y3JpcHRpb259IHNob3VsZCBzdWNjZWVkYCk7CiB9CiAKIC8qCiAgIDYuMi4gIFJUQ0RhdGFDaGFu
bmVsCiAgICAgY3JlYXRlRGF0YUNoYW5uZWwKLSAgICAgIDExLiBMZXQgY2hhbm5lbCBoYXZlIGFu
IFtbTmVnb3RpYXRlZF1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8gb3B0aW9uJ3MKLSAg
ICAgICAgICBuZWdvdGlhdGVkIG1lbWJlci4KKyAgICAgIDIwLiBJZiBbW0RhdGFDaGFubmVsSWRd
XSBpcyBlcXVhbCB0byA2NTUzNSwgd2hpY2ggaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIGFs
bG93ZWQKKyAgICAgICAgICBJRCBvZiA2NTUzNCBidXQgc3RpbGwgcXVhbGlmaWVzIGFzIGFuIHVu
c2lnbmVkIHNob3J0LCB0aHJvdyBhIFR5cGVFcnJvci4KICAqLwotdGVzdCgoKSA9PiB7Ci0gIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uOwotICBjb25zdCBjaGFubmVsID0gcGMuY3Jl
YXRlRGF0YUNoYW5uZWwoJycsIHsgbmVnb3RpYXRlZDogdHJ1ZSB9KTsKLSAgYXNzZXJ0X2VxdWFs
cyhjaGFubmVsLm5lZ290aWF0ZWQsIHRydWUpOwotfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGgg
bmVnb3RpYXRlZCB0cnVlIHNob3VsZCBzdWNjZWVkJyk7Ci0KK2ZvciAoY29uc3QgaWQgb2YgWzAs
IDEsIDY1NTM0LCA2NTUzNV0pIHsKKyAgdGVzdCgodCkgPT4geworICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKyAgICBjb25zdCBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7IGlkIH0pOworICAg
IGFzc2VydF9lcXVhbHMoZGMuaWQsIG51bGwpOworICB9LCBgY3JlYXRlRGF0YUNoYW5uZWwgd2l0
aCBpZCAke2lkfSBhbmQgbmVnb3RpYXRlZCBub3Qgc2V0IHNob3VsZCBzdWNjZWVkLCBidXQgbm90
IHNldCB0aGUgY2hhbm5lbCdzIGlkYCk7Cit9CiAKLS8qCi0gIDYuMi4gIFJUQ0RhdGFDaGFubmVs
Ci0gICAgY3JlYXRlRGF0YUNoYW5uZWwKLSAgICAgIDEwLiBJZiBpZCBpcyBlcXVhbCB0byA2NTUz
NSwgd2hpY2ggaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIGFsbG93ZWQgSUQKLSAgICAgICAg
ICBvZiA2NTUzNCBidXQgc3RpbGwgcXVhbGlmaWVzIGFzIGFuIHVuc2lnbmVkIHNob3J0LCB0aHJv
dyBhIFR5cGVFcnJvci4KLSAqLwogZm9yIChjb25zdCBpZCBvZiBbMCwgMSwgNjU1MzRdKSB7Ci0g
IHRlc3QoKCkgPT4geworICB0ZXN0KHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7Ci0gICAgY29uc3QgY2hhbm5lbCA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcn
LCB7IGlkIH0pOwotICAgIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5pZCwgaWQpOwotICB9LCBgY3Jl
YXRlRGF0YUNoYW5uZWwgd2l0aCBpZCAke2lkfSBzaG91bGQgc3VjY2VlZGApOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBjb25zdCBkYyA9IHBjLmNyZWF0ZURh
dGFDaGFubmVsKCcnLCB7ICduZWdvdGlhdGVkJzogdHJ1ZSwgJ2lkJzogaWQgfSk7CisgICAgYXNz
ZXJ0X2VxdWFscyhkYy5pZCwgaWQpOworICB9LCBgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCAk
e2lkfSBhbmQgbmVnb3RpYXRlZCB0cnVlIHNob3VsZCBzdWNjZWVkLCBhbmQgc2V0IHRoZSBjaGFu
bmVsJ3MgaWRgKTsKK30KKworZm9yIChjb25zdCBpZCBvZiBbLTEsIDY1NTM2XSkgeworICB0ZXN0
KCh0KSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGFzc2VydF90aHJvd3NfanMoVHlw
ZUVycm9yLCAoKSA9PiBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBpZCB9KSk7CisgIH0sIGBj
cmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGlkICR7aWR9IGFuZCBuZWdvdGlhdGVkIG5vdCBzZXQgc2hv
dWxkIHRocm93IFR5cGVFcnJvcmApOwogfQogCiBmb3IgKGNvbnN0IGlkIG9mIFstMSwgNjU1MzUs
IDY1NTM2XSkgewotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCh0ID0+IHsKICAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJv
cigpLCAoKSA9PiBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBpZCB9KSk7CisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVy
cm9yLCAoKSA9PiBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywKKyAgICAgICAgeyAnbmVnb3RpYXRl
ZCc6IHRydWUsICdpZCc6IGlkIH0pKTsKICAgfSwgYGNyZWF0ZURhdGFDaGFubmVsIHdpdGggaWQg
JHtpZH0gc2hvdWxkIHRocm93IFR5cGVFcnJvcmApOwogfQogCiAvKgotICA2LjIuICBSVENEYXRh
Q2hhbm5lbAotICAgIGNyZWF0ZURhdGFDaGFubmVsCi0gICAgICAxMi4gTGV0IGNoYW5uZWwgaGF2
ZSBhbiBbW0RhdGFDaGFubmVsUHJpb3JpdHldXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkCi0g
ICAgICAgICAgdG8gb3B0aW9uJ3MgcHJpb3JpdHkgbWVtYmVyLgotCisgIDYuMi4gIGNyZWF0ZURh
dGFDaGFubmVsCisgICAgNS4gIElmIFtbRGF0YUNoYW5uZWxMYWJlbF1dIGlzIGxvbmdlciB0aGFu
IDY1NTM1IGJ5dGVzLCB0aHJvdyBhIFR5cGVFcnJvci4KICAqLwotdGVzdCgoKSA9PiB7Cit0ZXN0
KHQgPT4gewogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBjb25zdCBj
aGFubmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsgcHJpb3JpdHk6ICdoaWdoJyB9KTsK
LSAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLnByaW9yaXR5LCAnaGlnaCcpOwotfSwgJ2NyZWF0ZURh
dGFDaGFubmVsIHdpdGggcHJpb3JpdHkgImhpZ2giIHNob3VsZCBzdWNjZWVkJyk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJy
b3IsICgpID0+CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2wnLnJlcGVhdCg2NTUzNikpKTsK
KworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KKyAgICBwYy5jcmVhdGVEYXRh
Q2hhbm5lbCgnbCcucmVwZWF0KDY1NTM2KSwgeworICAgICAgbmVnb3RpYXRlZDogdHJ1ZSwKKyAg
ICAgIGlkOiA0MgorICAgIH0pKTsKK30sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHRvbyBsb25n
IGxhYmVsIHNob3VsZCB0aHJvdyBUeXBlRXJyb3InKTsKIAotdGVzdCgoKSA9PiB7Cit0ZXN0KHQg
PT4gewogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBhc3NlcnRfdGhy
b3dzKG5ldyBUeXBlRXJyb3IoKSwKLSAgICAoKSA9PiBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywg
eyBwcmlvcml0eTogJ2ludmFsaWQnIH0pKTsKLX0sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGlu
dmFsaWQgcHJpb3JpdHkgc2hvdWxkIHRocm93IFR5cGVFcnJvcicpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworCisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9
PgorICAgIHBjLmNyZWF0ZURhdGFDaGFubmVsKCdcdTAwYjUnLnJlcGVhdCgzMjc2OCkpKTsKKwor
ICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KKyAgICBwYy5jcmVhdGVEYXRhQ2hh
bm5lbCgnXHUwMGI1Jy5yZXBlYXQoMzI3NjgpLCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVlLAor
ICAgICAgaWQ6IDQyCisgICAgfSkpOworfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggdG9vIGxv
bmcgbGFiZWwgKDIgYnl0ZSB1bmljb2RlKSBzaG91bGQgdGhyb3cgVHlwZUVycm9yJyk7CiAKIC8q
Ci0gIDYuMi4gIGNyZWF0ZURhdGFDaGFubmVsCi0gICAgMTMuIElmIFtbTmVnb3RpYXRlZF1dIGlz
IGZhbHNlIGFuZCBbW0xhYmVsXV0gaXMgbG9uZ2VyIHRoYW4gNjU1MzUgYnl0ZXMKLSAgICAgICAg
bG9uZywgdGhyb3cgYSBUeXBlRXJyb3IuICAqLwotdGVzdCgoKSA9PiB7CisgIDYuMi4gIGxhYmVs
CisgICAgICAgIFsuLi5dIFNjcmlwdHMgYXJlIGFsbG93ZWQgdG8gY3JlYXRlIG11bHRpcGxlIFJU
Q0RhdGFDaGFubmVsIG9iamVjdHMgd2l0aCB0aGUgc2FtZSBsYWJlbC4KKyAgICAgICAgWy4uLl0K
KyAqLwordGVzdCh0ID0+IHsKICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
LSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+Ci0gICAgcGMuY3JlYXRlRGF0
YUNoYW5uZWwoJycsIHsKLSAgICAgIGxhYmVsOiAnICcucmVwZWF0KDY1NTM2KSwKLSAgICAgIG5l
Z290aWF0ZWQ6IGZhbHNlCi0gICAgfSkpOwotfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggbmVn
b3RpYXRlZCBmYWxzZSBhbmQgbG9uZyBsYWJlbCBzaG91bGQgdGhyb3cgVHlwZUVycm9yJyk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgY29uc3QgbGFiZWwgPSAndGVz
dCc7CisKKyAgcGMuY3JlYXRlRGF0YUNoYW5uZWwobGFiZWwpOworICBwYy5jcmVhdGVEYXRhQ2hh
bm5lbChsYWJlbCk7Cit9LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBzYW1lIGxhYmVsIHVzZWQg
dHdpY2Ugc2hvdWxkIG5vdCB0aHJvdycpOwogCiAvKgogICA2LjIuICBjcmVhdGVEYXRhQ2hhbm5l
bAotICAgIDE0LiBJZiBbW05lZ290aWF0ZWRdXSBpcyBmYWxzZSBhbmQgW1tQcm90b2NvbF1dIGlz
IGxvbmdlciB0aGFuIDY1NTM1IGJ5dGVzIGxvbmcsCi0gICAgICAgIHRocm93IGEgVHlwZUVycm9y
LgorICAgIDEzLiBJZiBbW0RhdGFDaGFubmVsUHJvdG9jb2xdXSBpcyBsb25nZXIgdGhhbiA2NTUz
NSBieXRlcyBsb25nLCB0aHJvdyBhIFR5cGVFcnJvci4KICAqLwotdGVzdCgoKSA9PiB7CisKK3Rl
c3QodCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCBjaGFubmVsID0gcGMuY3JlYXRlRGF0
YUNoYW5uZWwoJycsIHsgbmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDQyIH0pOworICBhc3NlcnRfZXF1
YWxzKGNoYW5uZWwubmVnb3RpYXRlZCwgdHJ1ZSk7Cit9LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0
aCBuZWdvdGlhdGVkIHRydWUgYW5kIGlkIHNob3VsZCBzdWNjZWVkJyk7CisKK3Rlc3QodCA9PiB7
CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+
CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsKKyAgICAgIHByb3RvY29sOiAncCcucmVw
ZWF0KDY1NTM2KQorICAgIH0pKTsKKworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkg
PT4KKyAgICBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeworICAgICAgcHJvdG9jb2w6ICdwJy5y
ZXBlYXQoNjU1MzYpLAorICAgICAgbmVnb3RpYXRlZDogdHJ1ZSwKKyAgICAgIGlkOiA0MgorICAg
IH0pKTsKK30sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHRvbyBsb25nIHByb3RvY29sIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3InKTsKKwordGVzdCh0ID0+IHsKICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsICgpID0+CiAgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsKLSAgICAg
IHByb3RvY29sOiAnICcucmVwZWF0KDY1NTM2KSwKLSAgICAgIG5lZ290aWF0ZWQ6IGZhbHNlCisg
ICAgICBwcm90b2NvbDogJ1x1MDBiNicucmVwZWF0KDMyNzY4KQogICAgIH0pKTsKLX0sICdjcmVh
dGVEYXRhQ2hhbm5lbCB3aXRoIG5lZ290aWF0ZWQgZmFsc2UgYW5kIGxvbmcgcHJvdG9jb2wgc2hv
dWxkIHRocm93IFR5cGVFcnJvcicpOwogCi10ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsICgpID0+CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsKKyAgICAg
IHByb3RvY29sOiAnXHUwMGI2Jy5yZXBlYXQoMzI3NjgpLAorICAgICAgbmVnb3RpYXRlZDogdHJ1
ZSwKKyAgICAgIGlkOiA0MgorICAgIH0pKTsKK30sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHRv
byBsb25nIHByb3RvY29sICgyIGJ5dGUgdW5pY29kZSkgc2hvdWxkIHRocm93IFR5cGVFcnJvcicp
OworCit0ZXN0KHQgPT4gewogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwot
ICBjb25zdCBsYWJlbCA9ICcgJy5yZXBlYXQoNjU1MzYpCisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CisKKyAgY29uc3QgbGFiZWwgPSAnbCcucmVwZWF0KDY1NTM1KTsKKyAgY29u
c3QgcHJvdG9jb2wgPSAncCcucmVwZWF0KDY1NTM1KTsKIAotICBjb25zdCBjaGFubmVsID0gcGMu
Y3JlYXRlRGF0YUNoYW5uZWwoJycsIHsKLSAgICBsYWJlbCwKLSAgICBwcm90b2NvbDogJyAnLnJl
cGVhdCg2NTUzNiksCi0gICAgbmVnb3RpYXRlZDogdHJ1ZQorICBjb25zdCBkYyA9IHBjLmNyZWF0
ZURhdGFDaGFubmVsKGxhYmVsLCB7CisgICAgcHJvdG9jb2w6IHByb3RvY29sCiAgIH0pOwogCi0g
IGFzc2VydF9lcXVhbHMoY2hhbm5lbC5sYWJlbCwgbGFiZWwpOwotfSwgJ2NyZWF0ZURhdGFDaGFu
bmVsIHdpdGggbmVnb3RpYXRlZCB0cnVlIGFuZCBsb25nIGxhYmVsIGFuZCBsb25nIHByb3RvY29s
IHNob3VsZCBzdWNjZWVkJyk7CisgIGFzc2VydF9lcXVhbHMoZGMubGFiZWwsIGxhYmVsKTsKKyAg
YXNzZXJ0X2VxdWFscyhkYy5wcm90b2NvbCwgcHJvdG9jb2wpOworfSwgJ2NyZWF0ZURhdGFDaGFu
bmVsIHdpdGggbWF4aW11bSBsZW5ndGggbGFiZWwgYW5kIHByb3RvY29sIHNob3VsZCBzdWNjZWVk
Jyk7CisKKy8qCisgIDYuMiAgIGNyZWF0ZURhdGFDaGFubmVsCisgICAgMTUuIExldCBjaGFubmVs
IGhhdmUgYW4gW1tEYXRhQ2hhbm5lbElkXV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0byBv
cHRpb24ncyBpZCBtZW1iZXIsCisgICAgICAgIGlmIGl0IGlzIHByZXNlbnQgYW5kIFtbTmVnb3Rp
YXRlZF1dIGlzIHRydWUsIG90aGVyd2lzZSBudWxsLgorCisgICAgICAgIE5PVEUKKyAgICAgICAg
VGhpcyBtZWFucyB0aGUgaWQgbWVtYmVyIHdpbGwgYmUgaWdub3JlZCBpZiB0aGUgZGF0YSBjaGFu
bmVsIGlzIG5lZ290aWF0ZWQgaW4tYmFuZDsgdGhpcworICAgICAgICBpcyBpbnRlbnRpb25hbC4g
RGF0YSBjaGFubmVscyBuZWdvdGlhdGVkIGluLWJhbmQgc2hvdWxkIGhhdmUgSURzIHNlbGVjdGVk
IGJhc2VkIG9uIHRoZQorICAgICAgICBEVExTIHJvbGUsIGFzIHNwZWNpZmllZCBpbiBbUlRDV0VC
LURBVEEtUFJPVE9DT0xdLgorICovCit0ZXN0KHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbjsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBj
b25zdCBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7CisgICAgbmVnb3RpYXRlZDogZmFs
c2UsCisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRjLm5lZ290aWF0ZWQsIGZhbHNlLCAnRXhwZWN0
IGRjLm5lZ290aWF0ZWQgdG8gYmUgZmFsc2UnKTsKK30sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRo
IG5lZ290aWF0ZWQgZmFsc2Ugc2hvdWxkIHN1Y2NlZWQnKTsKKwordGVzdCh0ID0+IHsKKyAgY29u
c3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb247CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisKKyAgY29uc3QgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeworICAg
IG5lZ290aWF0ZWQ6IGZhbHNlLAorICAgIGlkOiA0MgorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhk
Yy5uZWdvdGlhdGVkLCBmYWxzZSwgJ0V4cGVjdCBkYy5uZWdvdGlhdGVkIHRvIGJlIGZhbHNlJyk7
CisgIGFzc2VydF9lcXVhbHMoZGMuaWQsIG51bGwsICdFeHBlY3QgZGMuaWQgdG8gYmUgaWdub3Jl
ZCAobnVsbCknKTsKK30sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG5lZ290aWF0ZWQgZmFsc2Ug
YW5kIGlkIDQyIHNob3VsZCBpZ25vcmUgdGhlIGlkJyk7CisKKy8qCisgIDYuMi4gIGNyZWF0ZURh
dGFDaGFubmVsCisgICAgMTYuIElmIFtbTmVnb3RpYXRlZF1dIGlzIHRydWUgYW5kIFtbRGF0YUNo
YW5uZWxJZF1dIGlzIG51bGwsIHRocm93IGEgVHlwZUVycm9yLgorICovCit0ZXN0KHQgPT4gewor
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjLmNsb3NlKCkpOworCisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9Pgor
ICAgIHBjLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0JywgeworICAgICAgbmVnb3RpYXRlZDogdHJ1
ZQorICAgIH0pKTsKK30sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG5lZ290aWF0ZWQgdHJ1ZSBh
bmQgaWQgbm90IGRlZmluZWQgc2hvdWxkIHRocm93IFR5cGVFcnJvcicpOwogCiAvKgogICA0LjQu
MS42LiAgU2V0IHRoZSBSVENTZXNzaW9uU2Vzc2lvbkRlc2NyaXB0aW9uCiAgICAgMi4yLjYuICBJ
ZiBkZXNjcmlwdGlvbiBpcyBvZiB0eXBlICJhbnN3ZXIiIG9yICJwcmFuc3dlciIsIHRoZW4gcnVu
IHRoZQogICAgICAgICAgICAgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgMS4gIElmIGRlc2NyaXB0
aW9uIGluaXRpYXRlcyB0aGUgZXN0YWJsaXNobWVudCBvZiBhIG5ldyBTQ1RQIGFzc29jaWF0aW9u
LAotICAgICAgICAgIGFzIGRlZmluZWQgaW4gW1NDVFAtU0RQXSwgU2VjdGlvbnMgMTAuMyBhbmQg
MTAuNCwgc2V0IHRoZSB2YWx1ZSBvZgotICAgICAgICAgIGNvbm5lY3Rpb24ncyBbW3NjdHBUcmFu
c3BvcnRdXSBpbnRlcm5hbCBzbG90IHRvIGEgbmV3bHkgY3JlYXRlZCBSVENTY3RwVHJhbnNwb3J0
LgotICAgICAgMi4gIElmIGRlc2NyaXB0aW9uIG5lZ290aWF0ZXMgdGhlIERUTFMgcm9sZSBvZiB0
aGUgU0NUUCB0cmFuc3BvcnQsIGFuZAotICAgICAgICAgIHRoZXJlIGlzIGFuIFJUQ0RhdGFDaGFu
bmVsIHdpdGggYSBudWxsIGlkLCB0aGVuIGdlbmVyYXRlIGFuIElEIGFjY29yZGluZwotICAgICAg
ICAgIHRvIFtSVENXRUItREFUQS1QUk9UT0NPTF0uCisgICAgICAzLiAgICBJZiBkZXNjcmlwdGlv
biBuZWdvdGlhdGVzIHRoZSBEVExTIHJvbGUgb2YgdGhlIFNDVFAgdHJhbnNwb3J0LCBhbmQgdGhl
cmUgaXMgYW4KKyAgICAgICAgICAgIFJUQ0RhdGFDaGFubmVsIHdpdGggYSBudWxsIGlkLCB0aGVu
IGdlbmVyYXRlIGFuIElEIGFjY29yZGluZyB0bworICAgICAgICAgICAgW1JUQ1dFQi1EQVRBLVBS
T1RPQ09MXS4gWy4uLl0KIAotICA2LjIuICBjcmVhdGVEYXRhQ2hhbm5lbAotICAgIDE4LiBJZiB0
aGUgW1tEYXRhQ2hhbm5lbElkXV0gc2xvdCBpcyBudWxsIChkdWUgdG8gbm8gSUQgYmVpbmcgcGFz
c2VkIGludG8KLSAgICAgICAgY3JlYXRlRGF0YUNoYW5uZWwpLCBhbmQgdGhlIERUTFMgcm9sZSBv
ZiB0aGUgU0NUUCB0cmFuc3BvcnQgaGFzIGFscmVhZHkKLSAgICAgICAgYmVlbiBuZWdvdGlhdGVk
LCB0aGVuIGluaXRpYWxpemUgW1tEYXRhQ2hhbm5lbElkXV0gdG8gYSB2YWx1ZSBnZW5lcmF0ZWQK
LSAgICAgICAgYnkgdGhlIHVzZXIgYWdlbnQsIGFjY29yZGluZyB0byBbUlRDV0VCLURBVEEtUFJP
VE9DT0xdLgorICA2LjEuICBjcmVhdGVEYXRhQ2hhbm5lbAorICAgIDIxLiBJZiB0aGUgW1tEYXRh
Q2hhbm5lbElkXV0gc2xvdCBpcyBudWxsIChkdWUgdG8gbm8gSUQgYmVpbmcgcGFzc2VkIGludG8K
KyAgICAgICAgY3JlYXRlRGF0YUNoYW5uZWwsIG9yIFtbTmVnb3RpYXRlZF1dIGJlaW5nIGZhbHNl
KSwgYW5kIHRoZSBEVExTIHJvbGUgb2YgdGhlIFNDVFAKKyAgICAgICAgdHJhbnNwb3J0IGhhcyBh
bHJlYWR5IGJlZW4gbmVnb3RpYXRlZCwgdGhlbiBpbml0aWFsaXplIFtbRGF0YUNoYW5uZWxJZF1d
IHRvIGEgdmFsdWUKKyAgICAgICAgZ2VuZXJhdGVkIGJ5IHRoZSB1c2VyIGFnZW50LCBhY2NvcmRp
bmcgdG8gW1JUQ1dFQi1EQVRBLVBST1RPQ09MXSwgYW5kIHNraXAKKyAgICAgICAgdG8gdGhlIG5l
eHQgc3RlcC4gSWYgbm8gYXZhaWxhYmxlIElEIGNvdWxkIGJlIGdlbmVyYXRlZCwgb3IgaWYgdGhl
IHZhbHVlIG9mIHRoZQorICAgICAgICBbW0RhdGFDaGFubmVsSWRdXSBzbG90IGlzIGJlaW5nIHVz
ZWQgYnkgYW4gZXhpc3RpbmcgUlRDRGF0YUNoYW5uZWwsIHRocm93IGFuCisgICAgICAgIE9wZXJh
dGlvbkVycm9yIGV4Y2VwdGlvbi4KKworICAgICAgICBOb3RlCisgICAgICAgIElmIHRoZSBbW0Rh
dGFDaGFubmVsSWRdXSBzbG90IGlzIG51bGwgYWZ0ZXIgdGhpcyBzdGVwLCBpdCB3aWxsIGJlIHBv
cHVsYXRlZCBvbmNlCisgICAgICAgIHRoZSBEVExTIHJvbGUgaXMgZGV0ZXJtaW5lZCBkdXJpbmcg
dGhlIHByb2Nlc3Mgb2Ygc2V0dGluZyBhbiBSVENTZXNzaW9uRGVzY3JpcHRpb24uCiAgKi8KLXBy
b21pc2VfdGVzdCh0ID0+IHsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgY29uc3QgbmVnb3RpYXRlZERjID0gcGMx
LmNyZWF0ZURhdGFDaGFubmVsKCduZWdvdGlhdGVkLWNoYW5uZWwnLCB7CisgICAgbmVnb3RpYXRl
ZDogdHJ1ZSwKKyAgICBpZDogNDIsCisgIH0pOworICBhc3NlcnRfZXF1YWxzKG5lZ290aWF0ZWRE
Yy5pZCwgNDIsICdFeHBlY3QgbmVnb3RpYXRlZERjLmlkIHRvIGJlIDQyJyk7CisKKyAgY29uc3Qg
ZGMxID0gcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdjaGFubmVsJyk7CisgIGFzc2VydF9lcXVhbHMo
ZGMxLmlkLCBudWxsLCAnRXhwZWN0IGluaXRpYWwgaWQgdG8gYmUgbnVsbCcpOworCisgIGNvbnN0
IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IFByb21pc2UuYWxsKFtw
YzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlciksIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihv
ZmZlcildKTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBh
d2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBhc3NlcnRfbm90X2Vx
dWFscyhkYzEuaWQsIG51bGwsCisgICAgJ0V4cGVjdCBkYzEuaWQgdG8gYmUgYXNzaWduZWQgYWZ0
ZXIgcmVtb3RlIGRlc2NyaXB0aW9uIGhhcyBiZWVuIHNldCcpOworCisgIGFzc2VydF9ncmVhdGVy
X3RoYW5fZXF1YWwoZGMxLmlkLCAwLAorICAgICdFeHBlY3QgZGMxLmlkIHRvIGJlIHNldCB0byB2
YWxpZCB1bnNpZ25lZCBzaG9ydCcpOworCisgIGFzc2VydF9sZXNzX3RoYW4oZGMxLmlkLCA2NTUz
NSwKKyAgICAnRXhwZWN0IGRjMS5pZCB0byBiZSBzZXQgdG8gdmFsaWQgdW5zaWduZWQgc2hvcnQn
KTsKKworICBjb25zdCBkYzIgPSBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5uZWwnKTsKKwor
ICBhc3NlcnRfbm90X2VxdWFscyhkYzIuaWQsIG51bGwsCisgICAgJ0V4cGVjdCBkYzIuaWQgdG8g
YmUgYXNzaWduZWQgYWZ0ZXIgcmVtb3RlIGRlc2NyaXB0aW9uIGhhcyBiZWVuIHNldCcpOworCisg
IGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZGMyLmlkLCAwLAorICAgICdFeHBlY3QgZGMyLmlk
IHRvIGJlIHNldCB0byB2YWxpZCB1bnNpZ25lZCBzaG9ydCcpOworCisgIGFzc2VydF9sZXNzX3Ro
YW4oZGMyLmlkLCA2NTUzNSwKKyAgICAnRXhwZWN0IGRjMi5pZCB0byBiZSBzZXQgdG8gdmFsaWQg
dW5zaWduZWQgc2hvcnQnKTsKKworICBhc3NlcnRfbm90X2VxdWFscyhkYzIsIGRjMSwKKyAgICAn
RXhwZWN0IGNoYW5uZWxzIGNyZWF0ZWQgZnJvbSBzYW1lIGxhYmVsIHRvIGJlIGRpZmZlcmVudCcp
OworCisgIGFzc2VydF9lcXVhbHMoZGMyLmxhYmVsLCBkYzEubGFiZWwsCisgICAgJ0V4cGVjdCBk
aWZmZXJlbnQgY2hhbm5lbHMgY2FuIGhhdmUgdGhlIHNhbWUgbGFiZWwgYnV0IGRpZmZlcmVudCBp
ZCcpOworCisgIGFzc2VydF9ub3RfZXF1YWxzKGRjMi5pZCwgZGMxLmlkLAorICAgICdFeHBlY3Qg
ZGlmZmVyZW50IGNoYW5uZWxzIGNhbiBoYXZlIHRoZSBzYW1lIGxhYmVsIGJ1dCBkaWZmZXJlbnQg
aWQnKTsKKworICBhc3NlcnRfZXF1YWxzKG5lZ290aWF0ZWREYy5pZCwgNDIsCisgICAgJ0V4cGVj
dCBuZWdvdGlhdGVkRGMuaWQgdG8gYmUgNDIgYWZ0ZXIgcmVtb3RlIGRlc2NyaXB0aW9uIGhhcyBi
ZWVuIHNldCcpOworfSwgJ0NoYW5uZWxzIGNyZWF0ZWQgKGFmdGVyIHNldFJlbW90ZURlc2NyaXB0
aW9uKSBzaG91bGQgaGF2ZSBpZCBhc3NpZ25lZCcpOworCit0ZXN0KHQgPT4gewogICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOwotICBjb25zdCBjaGFubmVsMSA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCdjaGFubmVs
Jyk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbDEuaWQsIG51bGwsCi0gICAgJ0V4cGVjdCBpbml0
aWFsIGlkIHRvIGJlIG51bGwnKTsKIAotICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoKQotICAudGhl
bihvZmZlciA9PgotICAgIHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpCi0gICAgLnRoZW4o
KCkgPT4gZ2VuZXJhdGVBbnN3ZXIob2ZmZXIpKSkKLSAgLnRoZW4oYW5zd2VyID0+IHBjLnNldFJl
bW90ZURlc2NyaXB0aW9uKGFuc3dlcikpCi0gIC50aGVuKCgpID0+IHsKLSAgICBhc3NlcnRfbm90
X2VxdWFscyhjaGFubmVsMS5pZCwgbnVsbCwKLSAgICAgICdFeHBlY3QgY2hhbm5lbDEuaWQgdG8g
YmUgYXNzaWduZWQnKTsKKyAgY29uc3QgZGMxID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5u
ZWwtMScsIHsKKyAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAgIGlkOiA0MiwKKyAgfSk7CisgIGFz
c2VydF9lcXVhbHMoZGMxLmlkLCA0MiwKKyAgICAnRXhwZWN0IGRjMS5pZCB0byBiZSA0MicpOwor
CisgIGNvbnN0IGRjMiA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCdjaGFubmVsLTInLCB7CisgICAg
bmVnb3RpYXRlZDogdHJ1ZSwKKyAgICBpZDogNDMsCisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRj
Mi5pZCwgNDMsCisgICAgJ0V4cGVjdCBkYzIuaWQgdG8gYmUgNDMnKTsKKworICBhc3NlcnRfdGhy
b3dzX2RvbSgnT3BlcmF0aW9uRXJyb3InLCAoKSA9PgorICAgIHBjLmNyZWF0ZURhdGFDaGFubmVs
KCdjaGFubmVsLTMnLCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAgICAgaWQ6IDQyLAor
ICAgIH0pKTsKIAotICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoY2hhbm5lbDEuaWQsIDAs
Ci0gICAgICAnRXhwZWN0IGNoYW5uZWwxLmlkIHRvIGJlIHNldCB0byB2YWxpZCB1bnNpZ25lZCBz
aG9ydCcpOworfSwgJ1JldXNpbmcgYSBkYXRhIGNoYW5uZWwgaWQgdGhhdCBpcyBpbiB1c2Ugc2hv
dWxkIHRocm93IE9wZXJhdGlvbkVycm9yJyk7CiAKLSAgICBhc3NlcnRfbGVzc190aGFuKGNoYW5u
ZWwxLmlkLCA2NTUzNSwKLSAgICAgICdFeHBlY3QgY2hhbm5lbDEuaWQgdG8gYmUgc2V0IHRvIHZh
bGlkIHVuc2lnbmVkIHNob3J0Jyk7CisvLyBXZSd2ZSBzZWVuIGltcGxlbWVudGF0aW9ucyBiZWhh
dmluZyBkaWZmZXJlbnRseSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBjb25uZWN0aW9uIGhhcyBiZWVu
CisvLyBlc3RhYmxpc2hlZC4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CiAKLSAgICBjb25zdCBjaGFubmVsMiA9IHBjLmNy
ZWF0ZURhdGFDaGFubmVsKCdjaGFubmVsJyk7CisgIGNvbnN0IGRjMSA9IHBjMS5jcmVhdGVEYXRh
Q2hhbm5lbCgnY2hhbm5lbC0xJywgeworICAgIG5lZ290aWF0ZWQ6IHRydWUsCisgICAgaWQ6IDQy
LAorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEuaWQsIDQyLCAnRXhwZWN0IGRjMS5pZCB0byBi
ZSA0MicpOwogCi0gICAgYXNzZXJ0X25vdF9lcXVhbHMoY2hhbm5lbDIuaWQsIG51bGwsCi0gICAg
ICAnRXhwZWN0IGNoYW5uZWwyLmlkIHRvIGJlIGFzc2lnbmVkJyk7CisgIGNvbnN0IGRjMiA9IHBj
MS5jcmVhdGVEYXRhQ2hhbm5lbCgnY2hhbm5lbC0yJywgeworICAgIG5lZ290aWF0ZWQ6IHRydWUs
CisgICAgaWQ6IDQzLAorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYzIuaWQsIDQzLCAnRXhwZWN0
IGRjMi5pZCB0byBiZSA0MycpOwogCi0gICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChjaGFu
bmVsMi5pZCwgMCwKLSAgICAgICdFeHBlY3QgY2hhbm5lbDIuaWQgdG8gYmUgc2V0IHRvIHZhbGlk
IHVuc2lnbmVkIHNob3J0Jyk7CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVy
KCk7CisgIGF3YWl0IFByb21pc2UuYWxsKFtwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlciks
IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcildKTsKKyAgY29uc3QgYW5zd2VyID0gYXdh
aXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24o
YW5zd2VyKTsKIAotICAgIGFzc2VydF9sZXNzX3RoYW4oY2hhbm5lbDIuaWQsIDY1NTM1LAotICAg
ICAgJ0V4cGVjdCBjaGFubmVsMi5pZCB0byBiZSBzZXQgdG8gdmFsaWQgdW5zaWduZWQgc2hvcnQn
KTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEuaWQsIDQyLCAnRXhwZWN0IGRjMS5pZCB0byBiZSA0Micp
OwogCi0gICAgYXNzZXJ0X25vdF9lcXVhbHMoY2hhbm5lbDIsIGNoYW5uZWwxLAotICAgICAgJ0V4
cGVjdCBjaGFubmVscyBjcmVhdGVkIGZyb20gc2FtZSBsYWJlbCB0byBiZSBkaWZmZXJlbnQnKTsK
KyAgYXNzZXJ0X2VxdWFscyhkYzIuaWQsIDQzLCAnRXhwZWN0IGRjMi5pZCB0byBiZSA0MycpOwog
Ci0gICAgYXNzZXJ0X2VxdWFscyhjaGFubmVsMi5sYWJlbCwgY2hhbm5lbDEubGFiZWwsCi0gICAg
ICAnRXhwZWN0IGRpZmZlcmVudCBjaGFubm5lbHMgY2FuIGhhdmUgdGhlIHNhbWUgbGFiZWwgYnV0
IGRpZmZlcmVudCBpZCcpOworICBhc3NlcnRfdGhyb3dzX2RvbSgnT3BlcmF0aW9uRXJyb3InLCAo
KSA9PgorICAgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnY2hhbm5lbC0zJywgeworICAgICAgbmVn
b3RpYXRlZDogdHJ1ZSwKKyAgICAgIGlkOiA0MiwKKyAgICB9KSk7Cit9LCAnUmV1c2luZyBhIGRh
dGEgY2hhbm5lbCBpZCB0aGF0IGlzIGluIHVzZSAoYWZ0ZXIgc2V0UmVtb3RlRGVzY3JpcHRpb24p
IHNob3VsZCB0aHJvdyAnICsKKyAgICdPcGVyYXRpb25FcnJvcicpOwogCi0gICAgYXNzZXJ0X25v
dF9lcXVhbHMoY2hhbm5lbDIuaWQsIGNoYW5uZWwxLmlkLAotICAgICAgJ0V4cGVjdCBkaWZmZXJl
bnQgY2hhbm5uZWxzIGNhbiBoYXZlIHRoZSBzYW1lIGxhYmVsIGJ1dCBkaWZmZXJlbnQgaWQnKTsK
LSAgfSk7Ci19LCAnQ2hhbm5lbHMgY3JlYXRlZCBhZnRlciBTQ1RQIHRyYW5zcG9ydCBpcyBlc3Rh
Ymxpc2hlZCBzaG91bGQgaGF2ZSBpZCBhc3NpZ25lZCcpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNs
b3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAotLyoKLSAgVE9E
TwotICAgIDYuMS4gIGNyZWF0ZURhdGFDaGFubmVsCi0gICAgICAxOC4gSWYgbm8gYXZhaWxhYmxl
IElEIGNvdWxkIGJlIGdlbmVyYXRlZCwgb3IgaWYgdGhlIHZhbHVlIG9mIHRoZQotICAgICAgICAg
IGlkIG1lbWJlciBvZiB0aGUgZGljdGlvbmFyeSBpcyB0YWtlbiBieSBhbiBleGlzdGluZyBSVENE
YXRhQ2hhbm5lbCwgdGhyb3cKLSAgICAgICAgICBhIFJlc291cmNlSW5Vc2UgZXhjZXB0aW9uLgor
ICBjb25zdCBkYzEgPSBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5uZWwtMScpOworCisgIGNv
bnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IFByb21pc2UuYWxs
KFtwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlciksIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihvZmZlcildKTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOwor
ICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBhc3NlcnRfbm90
X2VxdWFscyhkYzEuaWQsIG51bGwsCisgICAgJ0V4cGVjdCBkYzEuaWQgdG8gYmUgYXNzaWduZWQg
YWZ0ZXIgcmVtb3RlIGRlc2NyaXB0aW9uIGhhcyBiZWVuIHNldCcpOwogCisgIGFzc2VydF90aHJv
d3NfZG9tKCdPcGVyYXRpb25FcnJvcicsICgpID0+CisgICAgcGMxLmNyZWF0ZURhdGFDaGFubmVs
KCdjaGFubmVsLTInLCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAgICAgaWQ6IGRjMS5p
ZCwKKyAgICB9KSk7Cit9LCAnUmV1c2luZyBhIGRhdGEgY2hhbm5lbCBpZCB0aGF0IGlzIGluIHVz
ZSAoYWZ0ZXIgc2V0UmVtb3RlRGVzY3JpcHRpb24sIG5lZ290aWF0ZWQgdmlhIERDRVApICcgKwor
ICAnc2hvdWxkIHRocm93IE9wZXJhdGlvbkVycm9yJyk7CisKKworZm9yIChjb25zdCBvcHRpb25z
IG9mIFt7fSwge25lZ290aWF0ZWQ6IHRydWUsIGlkOiAwfV0pIHsKKyAgY29uc3QgbW9kZSA9IGAk
e29wdGlvbnMubmVnb3RpYXRlZD8gIm5lZ290aWF0ZWQgIiA6ICIifWRhdGFjaGFubmVsYDsKKwor
ICAvLyBCYXNlZCBvbiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDQxNzIzCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKKworICAgIGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zLCBwYzEp
OworCisgICAgY29uc3QgZGMgPSBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJycpOworICAgIGFzc2Vy
dF9lcXVhbHMoZGMucmVhZHlTdGF0ZSwgJ2Nvbm5lY3RpbmcnLCAnQ2hhbm5lbCBzaG91bGQgYmUg
aW4gdGhlIGNvbm5lY3Rpbmcgc3RhdGUnKTsKKyAgfSwgYE5ldyAke21vZGV9IHNob3VsZCBiZSBp
biB0aGUgY29ubmVjdGluZyBzdGF0ZSBhZnRlciBjcmVhdGlvbiBgICsKKyAgICAgYChhZnRlciBj
b25uZWN0aW9uIGVzdGFibGlzaG1lbnQpYCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5v
aXNlU3RyZWFtKHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHN0b3BUcmFja3Moc3RyZWFtKSk7CisgICAgY29uc3QgYXVkaW8gPSBzdHJlYW0uZ2V0
QXVkaW9UcmFja3MoKVswXTsKKyAgICBjb25zdCB2aWRlbyA9IHN0cmVhbS5nZXRWaWRlb1RyYWNr
cygpWzBdOworICAgIHBjMS5hZGRUcmFjayhhdWRpbywgc3RyZWFtKTsKKyAgICBwYzEuYWRkVHJh
Y2sodmlkZW8sIHN0cmVhbSk7CisgICAgYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9w
dGlvbnMsIHBjMSk7CisgIH0sIGBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyAke21vZGV9LCBzaG91
bGQgbmVnb3RpYXRlIHByb3Blcmx5YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiAibWF4
LWJ1bmRsZSJ9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBj
b25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWUsIHZpZGVvOiB0
cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdG9wVHJhY2tzKHN0cmVhbSkpOworICAg
IGNvbnN0IGF1ZGlvID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisgICAgY29uc3Qgdmlk
ZW8gPSBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICBwYzEuYWRkVHJhY2soYXVkaW8s
IHN0cmVhbSk7CisgICAgcGMxLmFkZFRyYWNrKHZpZGVvLCBzdHJlYW0pOworICAgIGF3YWl0IGNy
ZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zLCBwYzEpOworICB9LCBgYWRkVHJhY2ssIHRo
ZW4gY3JlYXRpbmcgJHttb2RlfSwgc2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseSB3aGVuIG1heC1i
dW5kbGUgaXMgdXNlZGApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1heC1idW5kbGUi
fSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlv
OiB0cnVlLCB2aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RvcFRyYWNr
cyhzdHJlYW0pKTsKKyAgICBjb25zdCBhdWRpbyA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBd
OworICAgIGNvbnN0IHZpZGVvID0gc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgcGMx
LmFkZFRyYWNrKGF1ZGlvLCBzdHJlYW0pOworICAgIHBjMS5hZGRUcmFjayh2aWRlbywgc3RyZWFt
KTsKKyAgICBjb25zdCBbZGMxLCBkYzJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQs
IG9wdGlvbnMsIHBjMSwgcGMyKTsKKworICAgIHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9w
KCk7CisgICAgY29uc3QgZGMxQ2xvc2VkID0gbmV3IFByb21pc2UociA9PiBkYzEub25jbG9zZSA9
IHIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICAgIGF3YWl0
IGRjMUNsb3NlZDsKKyAgfSwgYFN0b3BwaW5nIHRoZSBidW5kbGUtdGFnIHdoZW4gdGhlcmUgaXMg
YSAke21vZGV9IGluIHRoZSBidW5kbGUgYCArCisgICAgIGBzaG91bGQga2lsbCB0aGUgRGF0YUNo
YW5uZWxgKTsKK30KKworLyoKICAgVW50ZXN0YWJsZQogICAgIDYuMS4gIGNyZWF0ZURhdGFDaGFu
bmVsCi0gICAgICAxNi4gSWYgYSBzZXR0aW5nLCBlaXRoZXIgW1tNYXhQYWNrZXRMaWZlVGltZV1d
IG9yIFtbTWF4UmV0cmFuc21pdHNdXSwgaGFzCi0gICAgICAgICAgYmVlbiBzZXQgdG8gaW5kaWNh
dGUgdW5yZWxpYWJsZSBtb2RlLCBhbmQgdGhhdCB2YWx1ZSBleGNlZWRzIHRoZSBtYXhpbXVtCi0g
ICAgICAgICAgdmFsdWUgc3VwcG9ydGVkIGJ5IHRoZSB1c2VyIGFnZW50LCB0aGUgdmFsdWUgTVVT
VCBiZSBzZXQgdG8gdGhlIHVzZXIKLSAgICAgICAgICBhZ2VudHMgbWF4aW11bSB2YWx1ZS4KKyAg
ICAgIDE5LiBJZiBhIHNldHRpbmcsIGVpdGhlciBbW01heFBhY2tldExpZmVUaW1lXV0gb3IgW1tN
YXhSZXRyYW5zbWl0c11dLCBoYXMgYmVlbiBzZXQgdG8KKyAgICAgICAgICBpbmRpY2F0ZSB1bnJl
bGlhYmxlIG1vZGUsIGFuZCB0aGF0IHZhbHVlIGV4Y2VlZHMgdGhlIG1heGltdW0gdmFsdWUgc3Vw
cG9ydGVkCisgICAgICAgICAgYnkgdGhlIHVzZXIgYWdlbnQsIHRoZSB2YWx1ZSBNVVNUIGJlIHNl
dCB0byB0aGUgdXNlciBhZ2VudHMgbWF4aW11bSB2YWx1ZS4KIAotICAgICAgMjAuIENyZWF0ZSBj
aGFubmVsJ3MgYXNzb2NpYXRlZCB1bmRlcmx5aW5nIGRhdGEgdHJhbnNwb3J0IGFuZCBjb25maWd1
cmUKKyAgICAgIDIzLiBSZXR1cm4gY2hhbm5lbCBhbmQgY29udGludWUgdGhlIGZvbGxvd2luZyBz
dGVwcyBpbiBwYXJhbGxlbC4KKyAgICAgIDI0LiBDcmVhdGUgY2hhbm5lbCdzIGFzc29jaWF0ZWQg
dW5kZXJseWluZyBkYXRhIHRyYW5zcG9ydCBhbmQgY29uZmlndXJlCiAgICAgICAgICAgaXQgYWNj
b3JkaW5nIHRvIHRoZSByZWxldmFudCBwcm9wZXJ0aWVzIG9mIGNoYW5uZWwuCiAKICAgVGVzdGVk
IGluIFJUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbAotICAgIDIxLiBJ
ZiBjaGFubmVsIHdhcyB0aGUgZmlyc3QgUlRDRGF0YUNoYW5uZWwgY3JlYXRlZCBvbiBjb25uZWN0
aW9uLCB1cGRhdGUKLSAgICAgICAgdGhlIG5lZ290aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25u
ZWN0aW9uLgotCi0gIElzc3VlcwotICAgIHczYy93ZWJydGMtcGMjMTQxMgotICAgICAgUmVzb3Vy
Y2VJblVzZSBleGNlcHRpb24gaXMgbm90IGRlZmluZWQKLQotICBDb3ZlcmFnZSBSZXBvcnQKLSAg
ICBUZXN0ZWQgICAgICAgIDIyCi0gICAgTm90IFRlc3RlZCAgICAgMQotICAgIFVudGVzdGFibGUg
ICAgIDIKLSAgICBUb3RhbCAgICAgICAgIDI1CisgICAgMjIuIElmIGNoYW5uZWwgaXMgdGhlIGZp
cnN0IFJUQ0RhdGFDaGFubmVsIGNyZWF0ZWQgb24gY29ubmVjdGlvbiwgdXBkYXRlIHRoZQorICAg
ICAgICBuZWdvdGlhdGlvbi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KKworICBUZXN0ZWQg
aW4gUlRDRGF0YUNoYW5uZWwtaWQuaHRtbAorICAgIC0gT2RkL2V2ZW4gcnVsZXMgZm9yICcuaWQn
CisKKyAgVGVzdGVkIGluIFJUQ0RhdGFDaGFubmVsLWRjZXAuaHRtbAorICAgIC0gVHJhbnNtaXNz
aW9uIG9mICcubGFiZWwnIGFuZCBmdXJ0aGVyIG9wdGlvbnMKICovCiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWNyZWF0ZU9mZmVyLWV4cGVjdGVkLnR4dAppbmRleCA0Mjc3YWI2YzBlZGM5YmE2OWMzYjczYTBm
ZTczYmMxNDUxZjVkOWVmLi43NzZlMWVhMzFhZGRjZjM5ZDIxYmQ1YWUxZDgzZjA5ZGNiNGRhYzY4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItZXhwZWN0ZWQudHh0CkBAIC0zLDQgKzMsNSBAQCBQQVNT
IGNyZWF0ZU9mZmVyKCkgd2l0aCBubyBhcmd1bWVudCBmcm9tIG5ld2x5IGNyZWF0ZWQgUlRDUGVl
ckNvbm5lY3Rpb24gc2hvdWxkCiBQQVNTIGNyZWF0ZU9mZmVyKCkgYW5kIHRoZW4gc2V0TG9jYWxE
ZXNjcmlwdGlvbigpIHNob3VsZCBzdWNjZWVkIAogUEFTUyBjcmVhdGVPZmZlcigpIGFmdGVyIGNv
bm5lY3Rpb24gaXMgY2xvc2VkIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciAK
IEZBSUwgV2hlbiBtZWRpYSBzdHJlYW0gaXMgYWRkZWQgd2hlbiBjcmVhdGVPZmZlcigpIGlzIHJ1
bm5pbmcgaW4gcGFyYWxsZWwsIHRoZSByZXN1bHQgb2ZmZXIgc2hvdWxkIGNvbnRhaW4gdGhlIG5l
dyBtZWRpYSBzdHJlYW0gYXNzZXJ0X2VxdWFsczogRXhwZWN0IG09YXVkaW8gbGluZSB0byBiZSBm
b3VuZCBpbiBvZmZlciBTRFAgZXhwZWN0ZWQgMSBidXQgZ290IDAKK0ZBSUwgY3JlYXRlT2ZmZXIo
KSBzaG91bGQgZmFpbCB3aGVuIHNpZ25hbGluZyBzdGF0ZSBpcyBub3Qgc3RhYmxlIG9yIGhhdmUt
bG9jYWwtb2ZmZXIgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVm
aW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Y3JlYXRlT2ZmZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKaW5kZXggYzU2
ZDQ1MjgwZWY2MzE3YmMwZWY3N2I4YWQ3MWU5MjczYzgwOTg2My4uNzA0ZmEzYzY0NjdlMzc3NDQ3
YjE0MGZiY2Q3YjI3Y2IxZDlkMjBkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2Zm
ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sCkBAIC00OSw3ICs0OSw3
IEBACiAKICAgICByZXR1cm4gZ2VuZXJhdGVWaWRlb1JlY2VpdmVPbmx5T2ZmZXIocGMpCiAgICAg
LnRoZW4ob2ZmZXIgPT4KLSAgICAgIHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpCisgICAg
ICAgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikKICAgICAgIC50aGVuKCgpID0+IHsKICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgJ2hhdmUtbG9jYWwtb2ZmZXIn
KTsKICAgICAgICAgYXNzZXJ0X3Nlc3Npb25fZGVzY19zaW1pbGFyKHBjLmxvY2FsRGVzY3JpcHRp
b24sIG9mZmVyKTsKQEAgLTY1LDcgKzY1LDcgQEAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOwogICAgIHBjLmNsb3NlKCk7CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3Rz
KHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20o
dCwgJ0ludmFsaWRTdGF0ZUVycm9yJywKICAgICAgIHBjLmNyZWF0ZU9mZmVyKCkpOwogICB9LCAn
Y3JlYXRlT2ZmZXIoKSBhZnRlciBjb25uZWN0aW9uIGlzIGNsb3NlZCBzaG91bGQgcmVqZWN0IHdp
dGggSW52YWxpZFN0YXRlRXJyb3InKTsKIApAQCAtOTMsNiArOTMsMjYgQEAKICAgICB9KTsKICAg
fSwgJ1doZW4gbWVkaWEgc3RyZWFtIGlzIGFkZGVkIHdoZW4gY3JlYXRlT2ZmZXIoKSBpcyBydW5u
aW5nIGluIHBhcmFsbGVsLCB0aGUgcmVzdWx0IG9mZmVyIHNob3VsZCBjb250YWluIHRoZSBuZXcg
bWVkaWEgc3RyZWFtJyk7CiAKKyAgLyoKKyAgSWYgY29ubmVjdGlvbidzIHNpZ25hbGluZyBzdGF0
ZSBpcyBuZWl0aGVyICJzdGFibGUiIG5vciAiaGF2ZS1sb2NhbC1vZmZlciIsIHJldHVybiBhIHBy
b21pc2UgcmVqZWN0ZWQgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgSW52YWxpZFN0YXRlRXJyb3IuCisg
ICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBj
b25zdCBzdGF0ZXMgPSBbXTsKKyAgICBwYy5hZGRFdmVudExpc3RlbmVyKCdzaWduYWxpbmdzdGF0
ZWNoYW5nZScsICgpID0+IHN0YXRlcy5wdXNoKHBjLnNpZ25hbGluZ1N0YXRlKSk7CisKKyAgICBy
ZXR1cm4gZ2VuZXJhdGVWaWRlb1JlY2VpdmVPbmx5T2ZmZXIocGMpCisgICAgLnRoZW4ob2ZmZXIg
PT4KKyAgICAgICBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikKKyAgICAgICAudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgJ2hhdmUt
cmVtb3RlLW9mZmVyJyk7CisgICAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwg
J0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgICAgICAgICBwYy5jcmVhdGVPZmZlcigpKTsKKyAg
ICAgICB9KQorICAgICApCisgIH0sICdjcmVhdGVPZmZlcigpIHNob3VsZCBmYWlsIHdoZW4gc2ln
bmFsaW5nIHN0YXRlIGlzIG5vdCBzdGFibGUgb3IgaGF2ZS1sb2NhbC1vZmZlcicpOwogICAvKgog
ICAgKiAgVE9ETwogICAgKiAgNC4zLjIgY3JlYXRlT2ZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlm
aWNhdGUuaHRtbAppbmRleCBkMWE2Mzk1ZjAxZjMyNWVkNDViZDczODViNzY2YjA2NWI2MmVjM2Vj
Li40Y2RhOTdlOWI3ZWU1ZDVjOGVjOTUzNGVkZjU3ZjMxNjE3MmFmMzczIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2Vu
ZXJhdGVDZXJ0aWZpY2F0ZS5odG1sCkBAIC02OCwxMiArNjgsMTIgQEAKICAgICogICAgICAgIHdp
bGwgbm90IHVzZSB0byBnZW5lcmF0ZSBhIGNlcnRpZmljYXRlIGZvciBSVENQZWVyQ29ubmVjdGlv
bi4KICAgICovCiAgIHByb21pc2VfdGVzdCh0ID0+Ci0gICAgcHJvbWlzZV9yZWplY3RzKHQsICdO
b3RTdXBwb3J0ZWRFcnJvcicsCisgICAgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnTm90U3VwcG9y
dGVkRXJyb3InLAogICAgICAgUlRDUGVlckNvbm5lY3Rpb24uZ2VuZXJhdGVDZXJ0aWZpY2F0ZSgn
aW52YWxpZC1hbGdvJykpLAogICAgICdnZW5lcmF0ZUNlcnRpZmljYXRlKCkgd2l0aCBpbnZhbGlk
IHN0cmluZyBhbGdvcml0aG0gc2hvdWxkIHJlamVjdCB3aXRoIE5vdFN1cHBvcnRlZEVycm9yJyk7
CiAKICAgcHJvbWlzZV90ZXN0KHQgPT4KLSAgICBwcm9taXNlX3JlamVjdHModCwgJ05vdFN1cHBv
cnRlZEVycm9yJywKKyAgICBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdOb3RTdXBwb3J0ZWRFcnJv
cicsCiAgICAgICBSVENQZWVyQ29ubmVjdGlvbi5nZW5lcmF0ZUNlcnRpZmljYXRlKHsKICAgICAg
ICAgbmFtZTogJ2ludmFsaWQtYWxnbycKICAgICAgIH0pKSwKQEAgLTExOCw3ICsxMTgsNyBAQAog
ICB9LCAnZ2VuZXJhdGVDZXJ0aWZpY2F0ZSgpIHdpdGggMCBleHBpcmVzIHBhcmFtZXRlciBzaG91
bGQgZ2VuZXJhdGUgZXhwaXJlZCBjZXJ0Jyk7CiAKICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAg
IHJldHVybiBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAorICAgIHJldHVybiBw
cm9taXNlX3JlamVjdHNfanModCwgVHlwZUVycm9yLAogICAgICAgUlRDUGVlckNvbm5lY3Rpb24u
Z2VuZXJhdGVDZXJ0aWZpY2F0ZSh7CiAgICAgICAgIG5hbWU6ICdFQ0RTQScsCiAgICAgICAgIG5h
bWVkQ3VydmU6ICdQLTI1NicsCkBAIC0xMjcsNyArMTI3LDcgQEAKICAgfSwgJ2dlbmVyYXRlQ2Vy
dGlmaWNhdGUoKSB3aXRoIGludmFsaWQgcmFuZ2UgZm9yIGV4cGlyZXMgc2hvdWxkIHJlamVjdCB3
aXRoIFR5cGVFcnJvcicpOwogCiAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gcHJv
bWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwKKyAgICByZXR1cm4gcHJvbWlzZV9yZWpl
Y3RzX2pzKHQsIFR5cGVFcnJvciwKICAgICAgIFJUQ1BlZXJDb25uZWN0aW9uLmdlbmVyYXRlQ2Vy
dGlmaWNhdGUoewogICAgICAgICBuYW1lOiAnRUNEU0EnLAogICAgICAgICBuYW1lZEN1cnZlOiAn
UC0yNTYnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZjNTU0
ZjhkMjgxMzE0M2Q0MWExOWY3NWQ3MWZiYzgzZGMyMDc2NTcuLmFjOTQ4YWMwZTIwZGM3YzQ4N2Vm
MjVjYWFjZTM4MDkyZjM4ODgzNjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTEsNiArMSw0IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdl
ID0gbnVsbAotCiBQQVNTIGdldFN0YXRzKCkgd2l0aCBubyBhcmd1bWVudCBzaG91bGQgc3VjY2Vl
ZCAKIFBBU1MgZ2V0U3RhdHMobnVsbCkgc2hvdWxkIHN1Y2NlZWQgCiBGQUlMIGdldFN0YXRzKCkg
d2l0aCB0cmFjayBub3QgYWRkZWQgdG8gY29ubmVjdGlvbiBzaG91bGQgcmVqZWN0IHdpdGggSW52
YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1
bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCkBAIC05LDkgKzcsOSBAQCBQQVNTIGdl
dFN0YXRzKCkgd2l0aCB0cmFjayBhZGRlZCB2aWEgYWRkVHJhbnNjZWl2ZXIgc2hvdWxkIHN1Y2Nl
ZWQKIEZBSUwgZ2V0U3RhdHMoKSB3aXRoIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBtb3JlIHRoYW4g
b25lIHNlbmRlciBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCiBGQUlMIGdldFN0YXRzKCkgd2l0aCB0cmFjayBhc3NvY2lhdGVkIHdpdGggYm90
aCBzZW5kZXIgYW5kIHJlY2VpdmVyIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkQWNjZXNzRXJy
b3IgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFj
aGVkIHVucmVhY2hhYmxlIGNvZGUKIFBBU1MgZ2V0U3RhdHMoKSB3aXRoIG5vIGFyZ3VtZW50IHNo
b3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgcGVlci1jb25uZWN0aW9uIHN0YXRz
IG9uIGFuIGVtcHR5IFBDIAotRkFJTCBnZXRTdGF0cygpIHdpdGggbm8gYXJndW1lbnQgc2hvdWxk
IHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBwZWVyLWNvbm5lY3Rpb24gc3RhdHMgYW5k
IG91dGJvdW5kLXRyYWNrLXN0YXRzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LmF1
ZGlvTGV2ZWwgdG8gYmUgbnVtYmVyIGV4cGVjdGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5l
ZCIKLUZBSUwgZ2V0U3RhdHMoKSB3aXRoIG5vIGFyZ3VtZW50IHNob3VsZCByZXR1cm4gc3RhdHMg
Zm9yIG5vLXN0cmVhbSB0cmFja3MgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkuYXVk
aW9MZXZlbCB0byBiZSBudW1iZXIgZXhwZWN0ZWQgIm51bWJlciIgYnV0IGdvdCAidW5kZWZpbmVk
IgotRkFJTCBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBSdHBTZW5kZXIgc2hv
dWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBvdXRib3VuZC1ydHAgc3RhdHMgYXNz
ZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkuaXAgdG8gYmUgc3RyaW5nIGV4cGVjdGVkICJz
dHJpbmciIGJ1dCBnb3QgInVuZGVmaW5lZCIKLVRJTUVPVVQgZ2V0U3RhdHMoKSBvbiB0cmFjayBh
c3NvY2lhdGVkIHdpdGggUnRwUmVjZWl2ZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29u
dGFpbmluZyBpbmJvdW5kLXJ0cCBzdGF0cyBUZXN0IHRpbWVkIG91dAotRkFJTCBnZXRTdGF0cygp
IHdpdGggY29ubmVjdGVkIHBlZXIgY29ubmVjdGlvbnMgaGF2aW5nIHRyYWNrcyBhbmQgZGF0YSBj
aGFubmVsIHNob3VsZCByZXR1cm4gYWxsIG1hbmRhdG9yeSB0byBpbXBsZW1lbnQgc3RhdHMgYXNz
ZXJ0X3VucmVhY2hlZDogdGVzdCBmYWlsZWQgd2l0aCBlcnJvcjogRXJyb3I6IGFzc2VydF90cnVl
OiBFeHBlY3QgZGljdGlvbmFyeS5kYXRhQ2hhbm5lbElkZW50aWZpZXIgdG8gYmUgaW50ZWdlciBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgZ2V0
U3RhdHMoKSB3aXRoIG5vIGFyZ3VtZW50IHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRh
aW5pbmcgcGVlci1jb25uZWN0aW9uIHN0YXRzIGFuZCBvdXRib3VuZC10cmFjay1zdGF0cyBhc3Nl
cnRfdHJ1ZTogRXhwZWN0IHN0YXRzUmVwb3J0IHRvIGNvbnRhaW4gc3RhdHMgb2JqZWN0IG9mIHR5
cGUgb3V0Ym91bmQtcnRwIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGdldFN0YXRzKCkg
d2l0aCBubyBhcmd1bWVudCBzaG91bGQgcmV0dXJuIHN0YXRzIGZvciBuby1zdHJlYW0gdHJhY2tz
IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnRvdGFsQXVkaW9FbmVyZ3kgdG8gYmUg
bnVtYmVyIGV4cGVjdGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgZ2V0U3Rh
dHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdpdGggUnRwU2VuZGVyIHNob3VsZCByZXR1cm4gc3Rh
dHMgcmVwb3J0IGNvbnRhaW5pbmcgb3V0Ym91bmQtcnRwIHN0YXRzIGFzc2VydF9lcXVhbHM6IEV4
cGVjdCBkaWN0aW9uYXJ5LnRvdGFsQXVkaW9FbmVyZ3kgdG8gYmUgbnVtYmVyIGV4cGVjdGVkICJu
dW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgZ2V0U3RhdHMoKSBvbiB0cmFjayBhc3Nv
Y2lhdGVkIHdpdGggUnRwUmVjZWl2ZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFp
bmluZyBpbmJvdW5kLXJ0cCBzdGF0cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5j
b2RlY0lkIHRvIGJlIHN0cmluZyBleHBlY3RlZCAic3RyaW5nIiBidXQgZ290ICJ1bmRlZmluZWQi
CitGQUlMIGdldFN0YXRzKCkgd2l0aCBjb25uZWN0ZWQgcGVlciBjb25uZWN0aW9ucyBoYXZpbmcg
dHJhY2tzIGFuZCBkYXRhIGNoYW5uZWwgc2hvdWxkIHJldHVybiBhbGwgbWFuZGF0b3J5IHRvIGlt
cGxlbWVudCBzdGF0cyBhc3NlcnRfdW5yZWFjaGVkOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yOiBF
cnJvcjogYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkudG90YWxBdWRpb0VuZXJneSB0
byBiZSBudW1iZXIgZXhwZWN0ZWQgIm51bWJlciIgYnV0IGdvdCAidW5kZWZpbmVkIiBSZWFjaGVk
IHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwKaW5kZXggYzJjNGU4ZTM3
MTc2Y2UxMzQ0N2MxYzgyMzhhYTYyNDNmOWFlYTEzMC4uYmRmNzc3MDM1MGU5OWZlNmI3MzBkM2U5
MTI1NWY0OWYzMDk2MWVkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCkBAIC0yMiw3ICsyMiw3
IEBACiAKICAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20g
UlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzCiAgIC8vICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
Ci0gIC8vICAgZG9TaWduYWxpbmdIYW5kc2hha2UKKyAgLy8gICBleGNoYW5nZU9mZmVyQW5zd2Vy
CiAKICAgLyoKICAgICA4LjIuICBnZXRTdGF0cwpAQCAtNjQsNyArNjQsNyBAQAogICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgcmV0dXJuIGdldFRyYWNrRnJvbVVzZXJN
ZWRpYSgnYXVkaW8nKQogICAgIC50aGVuKChbdHJhY2ssIG1lZGlhU3RyZWFtXSkgPT4gewotICAg
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZEFjY2Vzc0Vycm9yJywgcGMuZ2V0
U3RhdHModHJhY2spKTsKKyAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZh
bGlkQWNjZXNzRXJyb3InLCBwYy5nZXRTdGF0cyh0cmFjaykpOwogICAgIH0pOwogICB9LCAnZ2V0
U3RhdHMoKSB3aXRoIHRyYWNrIG5vdCBhZGRlZCB0byBjb25uZWN0aW9uIHNob3VsZCByZWplY3Qg
d2l0aCBJbnZhbGlkQWNjZXNzRXJyb3InKTsKIApAQCAtMTAzLDcgKzEwMyw3IEBACiAgICAgICBh
c3NlcnRfbm90X2VxdWFscyh0cmFuc2NlaXZlcjEuc2VuZGVyLCB0cmFuc2NlaXZlcjIuc2VuZGVy
KTsKICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIxLnNlbmRlci50cmFjaywgdHJhbnNj
ZWl2ZXIyLnNlbmRlci50cmFjayk7CiAKLSAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwg
J0ludmFsaWRBY2Nlc3NFcnJvcicsIHBjLmdldFN0YXRzKHRyYWNrKSk7CisgICAgICByZXR1cm4g
cHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZEFjY2Vzc0Vycm9yJywgcGMuZ2V0U3RhdHMo
dHJhY2spKTsKICAgICB9KTsKICAgfSwgYGdldFN0YXRzKCkgd2l0aCB0cmFjayBhc3NvY2lhdGVk
IHdpdGggbW9yZSB0aGFuIG9uZSBzZW5kZXIgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRBY2Nl
c3NFcnJvcmApOwogCkBAIC0xMTcsNyArMTE3LDcgQEAKICAgICBjb25zdCB0cmFuc2NlaXZlcjIg
PSBwYy5hZGRUcmFuc2NlaXZlcih0cmFuc2NlaXZlcjEucmVjZWl2ZXIudHJhY2spOwogICAgIGFz
c2VydF9lcXVhbHModHJhbnNjZWl2ZXIxLnJlY2VpdmVyLnRyYWNrLCB0cmFuc2NlaXZlcjIuc2Vu
ZGVyLnRyYWNrKTsKIAotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRBY2Nl
c3NFcnJvcicsIHBjLmdldFN0YXRzKHRyYW5zY2VpdmVyMS5yZWNlaXZlci50cmFjaykpOworICAg
IHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLCBwYy5n
ZXRTdGF0cyh0cmFuc2NlaXZlcjEucmVjZWl2ZXIudHJhY2spKTsKICAgfSwgJ2dldFN0YXRzKCkg
d2l0aCB0cmFjayBhc3NvY2lhdGVkIHdpdGggYm90aCBzZW5kZXIgYW5kIHJlY2VpdmVyIHNob3Vs
ZCByZWplY3Qgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3InKTsKIAogICAvKgpAQCAtMTQ0LDggKzE0
NCw4IEBACiAgICAgICByZXR1cm4gcGMuZ2V0U3RhdHMoKTsKICAgICB9KQogICAgIC50aGVuKHN0
YXRzUmVwb3J0ID0+IHsKLSAgICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQoc3RhdHNSZXBvcnQpOwot
ICAgICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsncGVlci1j
b25uZWN0aW9uJ10pOworLy8gICAgICB2YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRzUmVwb3J0KTsK
Ky8vICAgICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsncGVl
ci1jb25uZWN0aW9uJ10pOwogICAgICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3Rh
dHNSZXBvcnQsIFsnb3V0Ym91bmQtcnRwJ10pOwogICAgIH0pOwogICB9LCAnZ2V0U3RhdHMoKSB3
aXRoIG5vIGFyZ3VtZW50IHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgcGVl
ci1jb25uZWN0aW9uIHN0YXRzIGFuZCBvdXRib3VuZC10cmFjay1zdGF0cycpOwpAQCAtMTcyLDcg
KzE3Miw3IEBACiAgICAgICAgIC0gQWxsIFJUQ091dGJvdW5kUlRQU3RyZWFtU3RhdHMgb2JqZWN0
cyBjb3JyZXNwb25kaW5nIHRvIHNlbGVjdG9yLgogICAgICAgICAtIEFsbCBzdGF0cyBvYmplY3Rz
IHJlZmVyZW5jZWQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBieSB0aGUgUlRDT3V0Ym91bmRSVFBT
dHJlYW1TdGF0cwogICAgICAgICAgIG9iamVjdHMgYWRkZWQuCi0gICAqLworICAqLwogICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29ubmVjdGlv
bldpdGhDbGVhbnVwKHQpOwogICAgIGNvbnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0
aENsZWFudXAodCk7CkBAIC0xODAsNyArMTgwLDcgQEAKICAgICBsZXQgW3RyYWNrLCBtZWRpYVN0
cmVhbV0gPSBhd2FpdCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJyk7CiAgICAgcGMuYWRk
VHJhY2sodHJhY2ssIG1lZGlhU3RyZWFtKTsKICAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMs
IHBjMik7Ci0gICAgYXdhaXQgZG9TaWduYWxpbmdIYW5kc2hha2UocGMsIHBjMik7CisgICAgYXdh
aXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywgcGMyKTsKICAgICBhd2FpdCBsaXN0ZW5Ub0ljZUNv
bm5lY3RlZChwYyk7CiAgICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBwYy5nZXRTdGF0cyh0cmFjayk7
CiAgICAgdmFsaWRhdGVTdGF0c1JlcG9ydChzdGF0cyk7CkBAIC0yMDMsMTEgKzIwMywxNiBAQAog
ICAgIGxldCBbdHJhY2ssIG1lZGlhU3RyZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRp
YSgnYXVkaW8nKTsKICAgICBwYy5hZGRUcmFjayh0cmFjaywgbWVkaWFTdHJlYW0pOwogICAgIGV4
Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYywgcGMyKTsKLSAgICBhd2FpdCBkb1NpZ25hbGluZ0hhbmRz
aGFrZShwYywgcGMyKTsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICAg
IHBjMi5nZXRSZWNlaXZlcnMoKVswXS50cmFjay5hZGRFdmVudExpc3RlbmVyKCd1bm11dGUnLCBy
ZXNvbHZlKTsKLSAgICB9KTsKLSAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHBjMi5nZXRTdGF0cyh0
cmFjayk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywgcGMyKTsKKyAgICAvLyBX
YWl0IGZvciB1bm11dGUgaWYgdGhlIHRyYWNrIGlzIG5vdCBhbHJlYWR5IHVubXV0ZWQuCisgICAg
Ly8gQWNjb3JkaW5nIHRvIHNwZWMsIGl0IHNob3VsZCBiZSBtdXRlZCB3aGVuIGJlaW5nIGNyZWF0
ZWQsIGJ1dCB0aGlzCisgICAgLy8gaXMgbm90IHdoYXQgdGhpcyB0ZXN0IGlzIHRlc3RpbmcsIHNv
IGFsbG93IGl0IHRvIGJlIHVubXV0ZWQuCisgICAgaWYgKHBjMi5nZXRSZWNlaXZlcnMoKVswXS50
cmFjay5tdXRlZCkgeworICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAg
ICAgIHBjMi5nZXRSZWNlaXZlcnMoKVswXS50cmFjay5hZGRFdmVudExpc3RlbmVyKCd1bm11dGUn
LCByZXNvbHZlKTsKKyAgICAgIH0pOworICAgIH0KKyAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHBj
Mi5nZXRTdGF0cyhwYzIuZ2V0UmVjZWl2ZXJzKClbMF0udHJhY2spOwogICAgIHZhbGlkYXRlU3Rh
dHNSZXBvcnQoc3RhdHMpOwogICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRz
LCBbJ2luYm91bmQtcnRwJ10pOwogICB9LCBgZ2V0U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVk
IHdpdGggUnRwUmVjZWl2ZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBp
bmJvdW5kLXJ0cCBzdGF0c2ApOwpAQCAtMjI3LDggKzIzMiw2IEBACiAgICAgInJlbW90ZS1vdXRi
b3VuZC1ydHAiLAogICAgICJwZWVyLWNvbm5lY3Rpb24iLAogICAgICJkYXRhLWNoYW5uZWwiLAot
ICAgICJzdHJlYW0iLAotICAgICJ0cmFjayIsCiAgICAgInRyYW5zcG9ydCIsCiAgICAgImNhbmRp
ZGF0ZS1wYWlyIiwKICAgICAibG9jYWwtY2FuZGlkYXRlIiwKQEAgLTI3MSw2ICsyNzQsNyBAQAog
CiAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YUNoYW5uZWxTdGF0cy5sYWJlbCwgJ3Rlc3QtY2hh
bm5lbCcpOwogCisgICAgICAgIC8qIFRPRE8gdHJhY2sgc3RhdHMgYXJlIG9ic29sZXRlIC0gcmVw
bGFjZSB3aXRoIHNlbmRlci9yZWNlaXZlcj8gKi8KICAgICAgICAgY29uc3QgYXVkaW9UcmFja1N0
YXRzID0gZmluZFN0YXRzRnJvbVJlcG9ydChzdGF0c1JlcG9ydCwKICAgICAgICAgICBzdGF0cyA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gc3RhdHMudHlwZSA9PT0gJ3RyYWNrJyAmJgpAQCAtMjg5
LDEzICsyOTMsNiBAQAogCiAgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW9UcmFja1N0YXRzLmtp
bmQsICd2aWRlbycpOwogCi0gICAgICAgIGNvbnN0IG1lZGlhU3RyZWFtU3RhdHMgPSBmaW5kU3Rh
dHNGcm9tUmVwb3J0KHN0YXRzUmVwb3J0LAotICAgICAgICAgIHN0YXRzID0+IHsKLSAgICAgICAg
ICAgIHJldHVybiBzdGF0cy50eXBlID09PSAnc3RyZWFtJyAmJgotICAgICAgICAgICAgICBzdGF0
cy5zdHJlYW1JZGVudGlmaWVyID09PSBtZWRpYVN0cmVhbS5pZDsKLSAgICAgICAgICB9LAotICAg
ICAgICAgICdFeHBlY3QgbWVkaWEgc3RyZWFtIHN0YXRzIHRvIGJlIGZvdW5kJyk7Ci0KICAgICAg
ICAgYXNzZXJ0X3RydWUobWVkaWFTdHJlYW1TdGF0cy50cmFja0lkcy5pbmNsdWRlKGF1ZGlvVHJh
Y2tTdGF0cy5pZCkpOwogICAgICAgICBhc3NlcnRfdHJ1ZShtZWRpYVN0cmVhbVN0YXRzLnRyYWNr
SWRzLmluY2x1ZGUodmlkZW9UcmFja1N0YXRzLmlkKSk7CiAgICAgICB9CkBAIC0zMDQsNiArMzAx
LDcgQEAKICAgICAgICAgLy8gV2FpdCBhIHdoaWxlIGZvciB0aGUgcGVlciBjb25uZWN0aW9ucyB0
byBjb2xsZWN0IHN0YXRzCiAgICAgICAgIHQuc3RlcF90aW1lb3V0KCgpID0+IHsKICAgICAgICAg
ICBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAvKiBUT0RPOiBmb3IgYm90aCBwYzEgYW5kIHBj
MiB0byBleHBvc2UgYWxsIG1hbmRhdG9yeSBzdGF0cywgdGhleSBuZWVkIHRvIGJvdGggc2VuZC9y
ZWNlaXZlIHRyYWNrcyBhbmQgZGF0YSBjaGFubmVscyAqLwogICAgICAgICAgICAgcGMxLmdldFN0
YXRzKCkKICAgICAgICAgICAgIC50aGVuKHN0YXRzUmVwb3J0ID0+IHRlc3RTdGF0c1JlcG9ydChw
YzEsIHN0YXRzUmVwb3J0KSksCiAKQEAgLTMzNiw3ICszMzQsNyBAQAogCiAKICAgICAgIGV4Y2hh
bmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0gICAgICBkb1NpZ25hbGluZ0hhbmRzaGFrZShw
YzEsIHBjMik7CisgICAgICBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKICAgICB9KSkK
ICAgICAuY2F0Y2godC5zdGVwX2Z1bmMoZXJyID0+IHsKICAgICAgIGFzc2VydF91bnJlYWNoZWQo
YHRlc3QgZmFpbGVkIHdpdGggZXJyb3I6ICR7ZXJyfWApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzCmluZGV4IDBiMjVkZjI2MTkwYzE0
YTFlM2MwYTVhMWU1Y2Q3NTE0YjdlYjY5ZjguLjA3NjI2YmQwY2NjMzllOTMwMzRiZWFmMWY3NDVi
YmM0OWE5NDM4YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1oZWxwZXIuanMKQEAgLTE0MCw2ICsxNDAsMTUgQEAgYXN5bmMgZnVuY3Rpb24gZ2Vu
ZXJhdGVBbnN3ZXIob2ZmZXIpIHsKICAgcmV0dXJuIGFuc3dlcjsKIH0KIAorLy8gSGVscGVyIGZ1
bmN0aW9uIHRvIGdlbmVyYXRlIG9mZmVyIHVzaW5nIGEgZnJlc2hseQorLy8gY3JlYXRlZCBSVENQ
ZWVyQ29ubmVjdGlvbiBvYmplY3QKK2FzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlT2ZmZXIoKSB7Cisg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IG9mZmVyID0gYXdh
aXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgcGMuY2xvc2UoKTsKKyAgcmV0dXJuIG9mZmVyOworfQor
CiAvLyBSdW4gYSB0ZXN0IGZ1bmN0aW9uIHRoYXQgcmV0dXJuIGEgcHJvbWlzZSB0aGF0IHNob3Vs
ZAogLy8gbmV2ZXIgYmUgcmVzb2x2ZWQuIEZvciBsYWNrIG9mIGJldHRlciBvcHRpb25zLAogLy8g
d2Ugd2FpdCBmb3IgYSB0aW1lIG91dCBhbmQgcGFzcyB0aGUgdGVzdCBpZiB0aGUKQEAgLTE4MSwx
MzIgKzE5MCw5OSBAQCBmdW5jdGlvbiBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpIHsK
ICAgZG9FeGNoYW5nZShwYzIsIHBjMSk7CiB9CiAKLS8vIEhlbHBlciBmdW5jdGlvbiBmb3IgZG9p
bmcgb25lIHJvdW5kIG9mIG9mZmVyL2Fuc3dlciBleGNoYW5nZQotLy8gYmV0d2VlbiB0d28gbG9j
YWwgcGVlciBjb25uZWN0aW9ucwotYXN5bmMgZnVuY3Rpb24gZG9TaWduYWxpbmdIYW5kc2hha2Uo
bG9jYWxQYywgcmVtb3RlUGMsIG9wdGlvbnM9e30pIHsKLSAgbGV0IG9mZmVyID0gYXdhaXQgbG9j
YWxQYy5jcmVhdGVPZmZlcigpOwotICAvLyBNb2RpZnkgb2ZmZXIgaWYgY2FsbGJhY2sgaGFzIGJl
ZW4gcHJvdmlkZWQKLSAgaWYgKG9wdGlvbnMubW9kaWZ5T2ZmZXIpIHsKLSAgICBvZmZlciA9IGF3
YWl0IG9wdGlvbnMubW9kaWZ5T2ZmZXIob2ZmZXIpOwotICB9Ci0KLSAgLy8gQXBwbHkgb2ZmZXIK
LSAgYXdhaXQgbG9jYWxQYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKLSAgYXdhaXQgcmVt
b3RlUGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworLy8gUmV0dXJucyBhIHByb21pc2Ug
dGhhdCByZXNvbHZlcyB3aGVuIGEgfG5hbWV8IGV2ZW50IGlzIGZpcmVkLgorZnVuY3Rpb24gd2Fp
dFVudGlsRXZlbnQob2JqLCBuYW1lKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShyID0+IG9iai5h
ZGRFdmVudExpc3RlbmVyKG5hbWUsIHIsIHtvbmNlOiB0cnVlfSkpOworfQogCi0gIGxldCBhbnN3
ZXIgPSBhd2FpdCByZW1vdGVQYy5jcmVhdGVBbnN3ZXIoKTsKLSAgLy8gTW9kaWZ5IGFuc3dlciBp
ZiBjYWxsYmFjayBoYXMgYmVlbiBwcm92aWRlZAotICBpZiAob3B0aW9ucy5tb2RpZnlBbnN3ZXIp
IHsKLSAgICBhbnN3ZXIgPSBhd2FpdCBvcHRpb25zLm1vZGlmeUFuc3dlcihhbnN3ZXIpOworLy8g
UmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB8dHJhbnNwb3J0LnN0YXRl
fCBpcyB8c3RhdGV8CisvLyBUaGlzIHNob3VsZCB3b3JrIGZvciBSVENTY3RwVHJhbnNwb3J0LCBS
VENEdGxzVHJhbnNwb3J0IGFuZCBSVENJY2VUcmFuc3BvcnQuCithc3luYyBmdW5jdGlvbiB3YWl0
Rm9yU3RhdGUodHJhbnNwb3J0LCBzdGF0ZSkgeworICB3aGlsZSAodHJhbnNwb3J0LnN0YXRlICE9
IHN0YXRlKSB7CisgICAgYXdhaXQgd2FpdFVudGlsRXZlbnQodHJhbnNwb3J0LCAnc3RhdGVjaGFu
Z2UnKTsKICAgfQotCi0gIC8vIEFwcGx5IGFuc3dlcgotICBhd2FpdCByZW1vdGVQYy5zZXRMb2Nh
bERlc2NyaXB0aW9uKGFuc3dlcik7Ci0gIGF3YWl0IGxvY2FsUGMuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYW5zd2VyKTsKIH0KIAogLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVu
IHxwYy5pY2VDb25uZWN0aW9uU3RhdGV8IGlzICdjb25uZWN0ZWQnCiAvLyBvciAnY29tcGxldGVk
Jy4KLWZ1bmN0aW9uIGxpc3RlblRvSWNlQ29ubmVjdGVkKHBjKSB7Ci0gIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4gewotICAgIGZ1bmN0aW9uIGlzQ29ubmVjdGVkKHBjKSB7Ci0gICAg
ICByZXR1cm4gcGMuaWNlQ29ubmVjdGlvblN0YXRlID09ICdjb25uZWN0ZWQnIHx8Ci0gICAgICAg
ICAgICBwYy5pY2VDb25uZWN0aW9uU3RhdGUgPT0gJ2NvbXBsZXRlZCc7Ci0gICAgfQotICAgIGlm
IChpc0Nvbm5lY3RlZChwYykpIHsKLSAgICAgIHJlc29sdmUoKTsKLSAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgcGMub25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7Ci0gICAgICBp
ZiAoaXNDb25uZWN0ZWQocGMpKQotICAgICAgICByZXNvbHZlKCk7Ci0gICAgfTsKLSAgfSk7Cith
c3luYyBmdW5jdGlvbiBsaXN0ZW5Ub0ljZUNvbm5lY3RlZChwYykgeworICBhd2FpdCB3YWl0Rm9y
SWNlU3RhdGVDaGFuZ2UocGMsIFsnY29ubmVjdGVkJywgJ2NvbXBsZXRlZCddKTsKK30KKworLy8g
UmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHxwYy5pY2VDb25uZWN0aW9uU3Rh
dGV8IGlzIGluIG9uZSBvZiB0aGUKKy8vIHdhbnRlZCBzdGF0ZXMuCithc3luYyBmdW5jdGlvbiB3
YWl0Rm9ySWNlU3RhdGVDaGFuZ2UocGMsIHdhbnRlZFN0YXRlcykgeworICB3aGlsZSAoIXdhbnRl
ZFN0YXRlcy5pbmNsdWRlcyhwYy5pY2VDb25uZWN0aW9uU3RhdGUpKSB7CisgICAgYXdhaXQgd2Fp
dFVudGlsRXZlbnQocGMsICdpY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2UnKTsKKyAgfQogfQogCiAv
LyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gfHBjLmNvbm5lY3Rpb25TdGF0
ZXwgaXMgJ2Nvbm5lY3RlZCcuCi1mdW5jdGlvbiBsaXN0ZW5Ub0Nvbm5lY3RlZChwYykgewotICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKLSAgICBpZiAocGMuY29ubmVjdGlvblN0
YXRlID09ICdjb25uZWN0ZWQnKSB7Ci0gICAgICByZXNvbHZlKCk7Ci0gICAgICByZXR1cm47Ci0g
ICAgfQotICAgIHBjLm9uY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gKCkgPT4gewotICAgICAgaWYg
KHBjLmNvbm5lY3Rpb25TdGF0ZSA9PSAnY29ubmVjdGVkJykKLSAgICAgICAgcmVzb2x2ZSgpOwot
ICAgIH07Ci0gIH0pOworYXN5bmMgZnVuY3Rpb24gbGlzdGVuVG9Db25uZWN0ZWQocGMpIHsKKyAg
d2hpbGUgKHBjLmNvbm5lY3Rpb25TdGF0ZSAhPSAnY29ubmVjdGVkJykgeworICAgIGF3YWl0IHdh
aXRVbnRpbEV2ZW50KHBjLCAnY29ubmVjdGlvbnN0YXRlY2hhbmdlJyk7CisgIH0KK30KKworLy8g
UmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHxwYy5jb25uZWN0aW9uU3RhdGV8
IGlzIGluIG9uZSBvZiB0aGUKKy8vIHdhbnRlZCBzdGF0ZXMuCithc3luYyBmdW5jdGlvbiB3YWl0
Rm9yQ29ubmVjdGlvblN0YXRlQ2hhbmdlKHBjLCB3YW50ZWRTdGF0ZXMpIHsKKyAgd2hpbGUgKCF3
YW50ZWRTdGF0ZXMuaW5jbHVkZXMocGMuY29ubmVjdGlvblN0YXRlKSkgeworICAgIGF3YWl0IHdh
aXRVbnRpbEV2ZW50KHBjLCAnY29ubmVjdGlvbnN0YXRlY2hhbmdlJyk7CisgIH0KIH0KIAogLy8g
UmVzb2x2ZXMgd2hlbiBSVFAgcGFja2V0cyBoYXZlIGJlZW4gcmVjZWl2ZWQuCi1mdW5jdGlvbiBs
aXN0ZW5Gb3JTU1JDcyh0LCByZWNlaXZlcikgewotICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsKLSAgICBmdW5jdGlvbiBsaXN0ZW4oKSB7Ci0gICAgICBjb25zdCBzc3JjcyA9IHJl
Y2VpdmVyLmdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKTsKLSAgICAgIGFzc2VydF90cnVlKHNz
cmNzICE9IHVuZGVmaW5lZCk7Ci0gICAgICBpZiAoc3NyY3MubGVuZ3RoID4gMCkgewotICAgICAg
ICByZXNvbHZlKHNzcmNzKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgdC5zdGVw
X3RpbWVvdXQobGlzdGVuLCAwKTsKLSAgICB9OwotICAgIGxpc3RlbigpOwotICB9KTsKK2FzeW5j
IGZ1bmN0aW9uIGxpc3RlbkZvclNTUkNzKHQsIHJlY2VpdmVyKSB7CisgIHdoaWxlICh0cnVlKSB7
CisgICAgY29uc3Qgc3NyY3MgPSByZWNlaXZlci5nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCk7
CisgICAgYXNzZXJ0X3RydWUoQXJyYXkuaXNBcnJheShzc3JjcykpOworICAgIGlmIChzc3Jjcy5s
ZW5ndGggPiAwKSB7CisgICAgICByZXR1cm4gc3NyY3M7CisgICAgfQorICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMCkpOworICB9CiB9CiAKLS8vIEhlbHBlciBm
dW5jdGlvbiB0byBjcmVhdGUgYSBwYWlyIG9mIGNvbm5lY3RlZCBkYXRhIGNoYW5uZWwuCisvLyBI
ZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgcGFpciBvZiBjb25uZWN0ZWQgZGF0YSBjaGFubmVs
cy4KIC8vIE9uIHN1Y2Nlc3MgdGhlIHByb21pc2UgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgd2l0aCB0
d28gZGF0YSBjaGFubmVscy4KIC8vIEl0IGRvZXMgdGhlIGhlYXZ5IGxpZnRpbmcgb2YgcGVyZm9y
bWluZyBzaWduYWxpbmcgaGFuZHNoYWtlLAogLy8gSUNFIGNhbmRpZGF0ZSBleGNoYW5nZSwgYW5k
IHdhaXRpbmcgZm9yIGRhdGEgY2hhbm5lbCBhdCB0d28KLS8vIGVuZCBwb2ludHMgdG8gb3Blbi4K
LWZ1bmN0aW9uIGNyZWF0ZURhdGFDaGFubmVsUGFpcigKLSAgcGMxPW5ldyBSVENQZWVyQ29ubmVj
dGlvbigpLAotICBwYzI9bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkpCi17Ci0gIGNvbnN0IGNoYW5u
ZWwxID0gcGMxLmNyZWF0ZURhdGFDaGFubmVsKCcnKTsKLQotICBleGNoYW5nZUljZUNhbmRpZGF0
ZXMocGMxLCBwYzIpOwotCi0gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7Ci0gICAgbGV0IGNoYW5uZWwyOwotICAgIGxldCBvcGVuZWQxID0gZmFsc2U7Ci0gICAgbGV0
IG9wZW5lZDIgPSBmYWxzZTsKLQotICAgIGZ1bmN0aW9uIG9uQm90aE9wZW5lZCgpIHsKLSAgICAg
IHJlc29sdmUoW2NoYW5uZWwxLCBjaGFubmVsMl0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9u
T3BlbjEoKSB7Ci0gICAgICBvcGVuZWQxID0gdHJ1ZTsKLSAgICAgIGlmKG9wZW5lZDIpIG9uQm90
aE9wZW5lZCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uT3BlbjIoKSB7Ci0gICAgICBvcGVu
ZWQyID0gdHJ1ZTsKLSAgICAgIGlmKG9wZW5lZDEpIG9uQm90aE9wZW5lZCgpOworLy8gZW5kIHBv
aW50cyB0byBvcGVuLiBDYW4gZG8gYm90aCBuZWdvdGlhdGVkIGFuZCBub24tbmVnb3RpYXRlZCBz
ZXR1cC4KK2FzeW5jIGZ1bmN0aW9uIGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjMSA9IGNyZWF0ZVBlZXJDb25u
ZWN0aW9uV2l0aENsZWFudXAodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGMyID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KSkgeworICBsZXQgcGFp
ciA9IFtdLCBib3RoT3BlbjsKKyAgdHJ5IHsKKyAgICBpZiAob3B0aW9ucy5uZWdvdGlhdGVkKSB7
CisgICAgICBwYWlyID0gW3BjMSwgcGMyXS5tYXAocGMgPT4gcGMuY3JlYXRlRGF0YUNoYW5uZWwo
JycsIG9wdGlvbnMpKTsKKyAgICAgIGJvdGhPcGVuID0gUHJvbWlzZS5hbGwocGFpci5tYXAoZGMg
PT4gbmV3IFByb21pc2UoKHIsIGUpID0+IHsKKyAgICAgICAgZGMub25vcGVuID0gcjsKKyAgICAg
ICAgZGMub25lcnJvciA9ICh7ZXJyb3J9KSA9PiBlKGVycm9yKTsKKyAgICAgIH0pKSk7CisgICAg
fSBlbHNlIHsKKyAgICAgIHBhaXIgPSBbcGMxLmNyZWF0ZURhdGFDaGFubmVsKCcnLCBvcHRpb25z
KV07CisgICAgICBib3RoT3BlbiA9IFByb21pc2UuYWxsKFsKKyAgICAgICAgbmV3IFByb21pc2Uo
KHIsIGUpID0+IHsKKyAgICAgICAgICBwYWlyWzBdLm9ub3BlbiA9IHI7CisgICAgICAgICAgcGFp
clswXS5vbmVycm9yID0gKHtlcnJvcn0pID0+IGUoZXJyb3IpOworICAgICAgICB9KSwKKyAgICAg
ICAgbmV3IFByb21pc2UoKHIsIGUpID0+IHBjMi5vbmRhdGFjaGFubmVsID0gKHtjaGFubmVsfSkg
PT4geworICAgICAgICAgIHBhaXJbMV0gPSBjaGFubmVsOworICAgICAgICAgIGNoYW5uZWwub25v
cGVuID0gcjsKKyAgICAgICAgICBjaGFubmVsLm9uZXJyb3IgPSAoe2Vycm9yfSkgPT4gZShlcnJv
cik7CisgICAgICAgIH0pCisgICAgICBdKTsKICAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkRhdGFD
aGFubmVsKGV2ZW50KSB7Ci0gICAgICBjaGFubmVsMiA9IGV2ZW50LmNoYW5uZWw7Ci0gICAgICBj
aGFubmVsMi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7Ci0gICAgICBjb25zdCB7
IHJlYWR5U3RhdGUgfSA9IGNoYW5uZWwyOwotCi0gICAgICBpZihyZWFkeVN0YXRlID09PSAnb3Bl
bicpIHsKLSAgICAgICAgb25PcGVuMigpOwotICAgICAgfSBlbHNlIGlmKHJlYWR5U3RhdGUgPT09
ICdjb25uZWN0aW5nJykgewotICAgICAgICBjaGFubmVsMi5hZGRFdmVudExpc3RlbmVyKCdvcGVu
Jywgb25PcGVuMik7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZWplY3QobmV3IEVycm9yKGBV
bmV4cGVjdGVkIHJlYWR5IHN0YXRlICR7cmVhZHlTdGF0ZX1gKSk7Ci0gICAgICB9CisgICAgZXhj
aGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5z
d2VyKHBjMSwgcGMyKTsKKyAgICBhd2FpdCBib3RoT3BlbjsKKyAgICByZXR1cm4gcGFpcjsKKyAg
fSBmaW5hbGx5IHsKKyAgICBmb3IgKGNvbnN0IGRjIG9mIHBhaXIpIHsKKyAgICAgICBkYy5vbm9w
ZW4gPSBkYy5vbmVycm9yID0gbnVsbDsKICAgICB9Ci0KLSAgICBjaGFubmVsMS5hZGRFdmVudExp
c3RlbmVyKCdvcGVuJywgb25PcGVuMSk7Ci0gICAgY2hhbm5lbDEuYWRkRXZlbnRMaXN0ZW5lcign
ZXJyb3InLCByZWplY3QpOwotCi0gICAgcGMyLmFkZEV2ZW50TGlzdGVuZXIoJ2RhdGFjaGFubmVs
Jywgb25EYXRhQ2hhbm5lbCk7Ci0KLSAgICBkb1NpZ25hbGluZ0hhbmRzaGFrZShwYzEsIHBjMik7
Ci0gIH0pOworICB9CiB9CiAKIC8vIFdhaXQgZm9yIFJUUCBhbmQgUlRDUCBzdGF0cyB0byBhcnJp
dmUKQEAgLTMzMCwyOCArMzA2LDIxIEBAIGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JSdHBBbmRSdGNw
U3RhdHMocGMpIHsKIC8vIFdhaXQgZm9yIGEgc2luZ2xlIG1lc3NhZ2UgZXZlbnQgYW5kIHJldHVy
bgogLy8gYSBwcm9taXNlIHRoYXQgcmVzb2x2ZSB3aGVuIHRoZSBldmVudCBmaXJlcwogZnVuY3Rp
b24gYXdhaXRNZXNzYWdlKGNoYW5uZWwpIHsKKyAgY29uc3Qgb25jZSA9IHRydWU7CiAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgY2hhbm5lbC5hZGRFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywKLSAgICAgIGV2ZW50ID0+IHJlc29sdmUoZXZlbnQuZGF0YSks
Ci0gICAgICB7IG9uY2U6IHRydWUgfSk7Ci0KLSAgICBjaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIo
J2Vycm9yJywgcmVqZWN0LCB7IG9uY2U6IHRydWUgfSk7CisgICAgY2hhbm5lbC5hZGRFdmVudExp
c3RlbmVyKCdtZXNzYWdlJywgKHtkYXRhfSkgPT4gcmVzb2x2ZShkYXRhKSwge29uY2V9KTsKKyAg
ICBjaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgcmVqZWN0LCB7b25jZX0pOwogICB9
KTsKIH0KIAogLy8gSGVscGVyIHRvIGNvbnZlcnQgYSBibG9iIHRvIGFycmF5IGJ1ZmZlciBzbyB0
aGF0CiAvLyB3ZSBjYW4gcmVhZCB0aGUgY29udGVudAotZnVuY3Rpb24gYmxvYlRvQXJyYXlCdWZm
ZXIoYmxvYikgeworYXN5bmMgZnVuY3Rpb24gYmxvYlRvQXJyYXlCdWZmZXIoYmxvYikgeworICBj
b25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICByZWFkZXIucmVhZEFzQXJyYXlCdWZm
ZXIoYmxvYik7CiAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0g
ICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKLQotICAgIHJlYWRlci5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgKCkgPT4gewotICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0KTsK
LSAgICB9KTsKLQotICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7
Ci0KLSAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYik7CisgICAgcmVhZGVyLmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpLCB7b25jZTog
dHJ1ZX0pOworICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsICgpID0+IHJlamVj
dChyZWFkZXIuZXJyb3IpLCB7b25jZTogdHJ1ZX0pOwogICB9KTsKIH0KIApAQCAtNDIzLDcgKzM5
Miw3IEBAIGNvbnN0IHRyYWNrRmFjdG9yaWVzID0gewogICAgIHJldHVybiBkc3Quc3RyZWFtLmdl
dEF1ZGlvVHJhY2tzKClbMF07CiAgIH0sCiAKLSAgdmlkZW8oe3dpZHRoID0gNjQwLCBoZWlnaHQg
PSA0ODB9ID0ge30pIHsKKyAgdmlkZW8oe3dpZHRoID0gNjQwLCBoZWlnaHQgPSA0ODAsIHNpZ25h
bCA9IG51bGx9ID0ge30pIHsKICAgICBjb25zdCBjYW52YXMgPSBPYmplY3QuYXNzaWduKAogICAg
ICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksIHt3aWR0aCwgaGVpZ2h0fQogICAg
ICk7CkBAIC00MzQsOCArNDAzLDEzIEBAIGNvbnN0IHRyYWNrRmFjdG9yaWVzID0gewogICAgIHNl
dEludGVydmFsKCgpID0+IHsKICAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiKCR7Y291bnQlMjU1
fSwgJHtjb3VudCpjb3VudCUyNTV9LCAke2NvdW50JTI1NX0pYDsKICAgICAgIGNvdW50ICs9IDE7
Ci0KICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgIC8vIElm
IHNpZ25hbCBpcyBzZXQsIGFkZCBhIGNvbnN0YW50LWNvbG9yIGJveCB0byB0aGUgdmlkZW8gZnJh
bWUKKyAgICAgIC8vIGF0IGNvb3JkaW5hdGVzIDEwIHRvIDMwIGluIGJvdGggWCBhbmQgWSBkaXJl
Y3Rpb24uCisgICAgICBpZiAoc2lnbmFsICE9PSBudWxsKSB7CisgICAgICAgIGN0eC5maWxsU3R5
bGUgPSBgcmdiKCR7c2lnbmFsfSwgJHtzaWduYWx9LCAke3NpZ25hbH0pYDsKKyAgICAgICAgY3R4
LmZpbGxSZWN0KDEwLCAxMCwgMjAsIDIwKTsKKyAgICAgIH0KICAgICB9LCAxMDApOwogCiAgICAg
aWYgKGRvY3VtZW50LmJvZHkpIHsKQEAgLTQ1MCwxMyArNDI0LDQyIEBAIGNvbnN0IHRyYWNrRmFj
dG9yaWVzID0gewogICB9CiB9OwogCisvLyBHZXQgdGhlIHNpZ25hbCBmcm9tIGEgdmlkZW8gZWxl
bWVudCBpbnNlcnRlZCBieSBjcmVhdGVOb2lzZVN0cmVhbQorZnVuY3Rpb24gZ2V0VmlkZW9TaWdu
YWwodikgeworICBpZiAodi52aWRlb1dpZHRoIDwgMjEgfHwgdi52aWRlb0hlaWdodCA8IDIxKSB7
CisgICAgcmV0dXJuIG51bGw7CisgIH0KKyAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiY2FudmFzIik7CisgIGNhbnZhcy53aWR0aCA9IHYudmlkZW9XaWR0aDsKKyAgY2Fu
dmFzLmhlaWdodCA9IHYudmlkZW9IZWlnaHQ7CisgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0
Q29udGV4dCgnMmQnKTsKKyAgY29udGV4dC5kcmF3SW1hZ2UodiwgMCwgMCwgdi52aWRlb1dpZHRo
LCB2LnZpZGVvSGVpZ2h0KTsKKyAgLy8gRXh0cmFjdCBwaXhlbCB2YWx1ZSBhdCBwb3NpdGlvbiAy
MCwgMjAKKyAgY29uc3QgcGl4ZWwgPSBjb250ZXh0LmdldEltYWdlRGF0YSgyMCwgMjAsIDEsIDEp
OworICAvLyBVc2UgbHVtYSByZWNvbnN0cnVjdGlvbiB0byBnZXQgYmFjayBvcmlnaW5hbCB2YWx1
ZSBhY2NvcmRpbmcgdG8KKyAgLy8gSVRVLVIgcmVjIEJULjcwOQorICByZXR1cm4gKHBpeGVsLmRh
dGFbMF0gKiAwLjIxICsgcGl4ZWwuZGF0YVsxXSAqIDAuNzIgKyBwaXhlbC5kYXRhWzJdICogMC4w
Nyk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRldGVjdFNpZ25hbCh0LCB2LCB2YWx1ZSkgeworICB3
aGlsZSAodHJ1ZSkgeworICAgIGNvbnN0IHNpZ25hbCA9IGdldFZpZGVvU2lnbmFsKHYpOworICAg
IGlmIChzaWduYWwgIT09IG51bGwgJiYgc2lnbmFsIDwgdmFsdWUgKyAxICYmIHNpZ25hbCA+IHZh
bHVlIC0gMSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBXZSB3b3VsZCBsaWtlIHRv
IHdhaXQgZm9yIGVhY2ggbmV3IGZyYW1lIGluc3RlYWQgaGVyZSwKKyAgICAvLyBidXQgdGhlcmUg
c2VlbXMgdG8gYmUgbm8gc3VjaCBjYWxsYmFjay4KKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+
IHQuc3RlcF90aW1lb3V0KHIsIDEwMCkpOworICB9Cit9CisKIC8vIEdlbmVyYXRlIGEgTWVkaWFT
dHJlYW0gYmVhcmluZyB0aGUgc3BlY2lmaWVkIHRyYWNrcy4KIC8vCiAvLyBAcGFyYW0ge29iamVj
dH0gW2NhcHNdCiAvLyBAcGFyYW0ge2Jvb2xlYW59IFtjYXBzLmF1ZGlvXSAtIGZsYWcgaW5kaWNh
dGluZyB3aGV0aGVyIHRoZSBnZW5lcmF0ZWQgc3RyZWFtCiAvLyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3VsZCBpbmNsdWRlIGFuIGF1ZGlvIHRyYWNrCiAvLyBAcGFyYW0ge2Jv
b2xlYW59IFtjYXBzLnZpZGVvXSAtIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBnZW5lcmF0
ZWQgc3RyZWFtCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCBpbmNs
dWRlIGEgdmlkZW8gdHJhY2sKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hv
dWxkIGluY2x1ZGUgYSB2aWRlbyB0cmFjaywgb3IgcGFyYW1ldGVycyBmb3IgdmlkZW8KIGFzeW5j
IGZ1bmN0aW9uIGdldE5vaXNlU3RyZWFtKGNhcHMgPSB7fSkgewogICBpZiAoIXRyYWNrRmFjdG9y
aWVzLmNhbkNyZWF0ZShjYXBzKSkgewogICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYShjYXBzKTsKQEAgLTQ2OCw3ICs0NzEsNyBAQCBhc3luYyBmdW5jdGlvbiBn
ZXROb2lzZVN0cmVhbShjYXBzID0ge30pIHsKICAgfQogCiAgIGlmIChjYXBzLnZpZGVvKSB7Ci0g
ICAgdHJhY2tzLnB1c2godHJhY2tGYWN0b3JpZXMudmlkZW8oKSk7CisgICAgdHJhY2tzLnB1c2go
dHJhY2tGYWN0b3JpZXMudmlkZW8oY2Fwcy52aWRlbykpOwogICB9CiAKICAgcmV0dXJuIG5ldyBN
ZWRpYVN0cmVhbSh0cmFja3MpOwpAQCAtNTEzLDIwICs1MTYsMTkgQEAgZnVuY3Rpb24gZ2V0VXNl
ck1lZGlhVHJhY2tzQW5kU3RyZWFtcyhjb3VudCwgdHlwZSA9ICdhdWRpbycpIHsKIAogLy8gUGVy
Zm9ybXMgYW4gb2ZmZXIgZXhjaGFuZ2UgY2FsbGVyIC0+IGNhbGxlZS4KIGFzeW5jIGZ1bmN0aW9u
IGV4Y2hhbmdlT2ZmZXIoY2FsbGVyLCBjYWxsZWUpIHsKLSAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBj
YWxsZXIuY3JlYXRlT2ZmZXIoKTsKLSAgYXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24o
b2ZmZXIpOwotICByZXR1cm4gY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAg
YXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVy
KCkpOworICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24oY2FsbGVyLmxvY2FsRGVz
Y3JpcHRpb24pOwogfQogLy8gUGVyZm9ybXMgYW4gYW5zd2VyIGV4Y2hhbmdlIGNhbGxlciAtPiBj
YWxsZWUuCiBhc3luYyBmdW5jdGlvbiBleGNoYW5nZUFuc3dlcihjYWxsZXIsIGNhbGxlZSkgewot
ICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBjYWxsZWUuY3JlYXRlQW5zd2VyKCk7Ci0gIGF3YWl0IGNh
bGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7Ci0gIHJldHVybiBjYWxsZXIuc2V0UmVt
b3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRp
b24oYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpKTsKKyAgYXdhaXQgY2FsbGVyLnNldFJlbW90
ZURlc2NyaXB0aW9uKGNhbGxlZS5sb2NhbERlc2NyaXB0aW9uKTsKIH0KIGFzeW5jIGZ1bmN0aW9u
IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2FsbGVyLCBjYWxsZWUpIHsKICAgYXdhaXQgZXhjaGFuZ2VP
ZmZlcihjYWxsZXIsIGNhbGxlZSk7Ci0gIHJldHVybiBleGNoYW5nZUFuc3dlcihjYWxsZXIsIGNh
bGxlZSk7CisgIGF3YWl0IGV4Y2hhbmdlQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKIH0KKwogLy8g
VGhlIHJldHVybmVkIHByb21pc2UgaXMgcmVzb2x2ZWQgd2l0aCBjYWxsZXIncyBvbnRyYWNrIGV2
ZW50LgogYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VBbnN3ZXJBbmRMaXN0ZW5Ub09udHJhY2sodCwg
Y2FsbGVyLCBjYWxsZWUpIHsKICAgY29uc3Qgb250cmFja1Byb21pc2UgPSBhZGRFdmVudExpc3Rl
bmVyUHJvbWlzZSh0LCBjYWxsZXIsICd0cmFjaycpOwpAQCAtNTgyLDE0ICs1ODQsMTMgQEAgY2xh
c3MgUmVzb2x2ZXIgZXh0ZW5kcyBQcm9taXNlIHsKICAgfQogfQogCi1mdW5jdGlvbiBhZGRFdmVu
dExpc3RlbmVyUHJvbWlzZSh0LCB0YXJnZXQsIHR5cGUsIGxpc3RlbmVyKSB7Ci0gIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgdGFyZ2V0LmFkZEV2ZW50TGlz
dGVuZXIodHlwZSwgdC5zdGVwX2Z1bmMoZSA9PiB7Ci0gICAgICBpZiAobGlzdGVuZXIgIT0gdW5k
ZWZpbmVkKQotICAgICAgICBlID0gbGlzdGVuZXIoZSk7Ci0gICAgICByZXNvbHZlKGUpOwotICAg
IH0pKTsKLSAgfSk7CitmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyUHJvbWlzZSh0LCBvYmosIHR5
cGUsIGxpc3RlbmVyKSB7CisgIGlmICghbGlzdGVuZXIpIHsKKyAgICByZXR1cm4gd2FpdFVudGls
RXZlbnQob2JqLCB0eXBlKTsKKyAgfQorICByZXR1cm4gbmV3IFByb21pc2UociA9PiBvYmouYWRk
RXZlbnRMaXN0ZW5lcih0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0LnN0ZXBfZnVuYyhlID0+IHIobGlzdGVuZXIoZSkpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29uY2U6IHRydWV9KSk7CiB9CiAK
IGZ1bmN0aW9uIGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCkgewpAQCAtNjE2LDYg
KzYxNywxOCBAQCBmdW5jdGlvbiBmaW5kVHJhbnNjZWl2ZXJGb3JTZW5kZXIocGMsIHNlbmRlcikg
ewogICByZXR1cm4gbnVsbDsKIH0KIAorZnVuY3Rpb24gcHJlZmVyQ29kZWModHJhbnNjZWl2ZXIs
IG1pbWVUeXBlLCBzZHBGbXRwTGluZSkgeworICBjb25zdCB7Y29kZWNzfSA9IFJUQ1J0cFNlbmRl
ci5nZXRDYXBhYmlsaXRpZXModHJhbnNjZWl2ZXIucmVjZWl2ZXIudHJhY2sua2luZCk7CisgIC8v
IHNkcEZtdHBMaW5lIGlzIG9wdGlvbmFsLCBwaWNrIHRoZSBmaXJzdCBwYXJ0aWFsIG1hdGNoIGlm
IG5vdCBnaXZlbi4KKyAgY29uc3Qgc2VsZWN0ZWRDb2RlY0luZGV4ID0gY29kZWNzLmZpbmRJbmRl
eChjID0+IHsKKyAgICByZXR1cm4gYy5taW1lVHlwZSA9PT0gbWltZVR5cGUgJiYgKGMuc2RwRm10
cExpbmUgPT09IHNkcEZtdHBMaW5lIHx8ICFzZHBGbXRwTGluZSk7CisgIH0pOworICBjb25zdCBz
ZWxlY3RlZENvZGVjID0gY29kZWNzW3NlbGVjdGVkQ29kZWNJbmRleF07CisgIGNvZGVjcy5zbGlj
ZShzZWxlY3RlZENvZGVjSW5kZXgsIDEpOworICBjb2RlY3MudW5zaGlmdChzZWxlY3RlZENvZGVj
KTsKKyAgcmV0dXJuIHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKTsKK30K
KwogLy8gQ29udGFpbnMgYSBzZXQgb2YgdmFsdWVzIGFuZCB3aWxsIHllbGwgYXQgeW91IGlmIHlv
dSB0cnkgdG8gYWRkIGEgdmFsdWUgdHdpY2UuCiBjbGFzcyBVbmlxdWVTZXQgZXh0ZW5kcyBTZXQg
ewogICBjb25zdHJ1Y3RvcihpdGVtcykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29u
bmVjdGlvblN0YXRlLWRpc2Nvbm5lY3RlZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1pY2VDb25uZWN0aW9uU3RhdGUtZGlzY29ubmVjdGVkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43OTkzMTc3YTEzMjQ5N2Y5NDA4ODYxMWRkNTRiNTkwMmFmNzAyNWRiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLWRpc2Nvbm5lY3RlZC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSUNFIGdvZXMgdG8gZGlz
Y29ubmVjdGVkIGlmIHRoZSBvdGhlciBzaWRlIGdvZXMgYXdheSAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLWRpc2Nvbm5lY3RlZC5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLWRpc2Nvbm5lY3RlZC5odHRwcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFmNTVhMGMwMDM1MTJmOThkYzk2ZDExYzA3ZThhNTA5OWVkMWY1ZWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZGlzY29ubmVjdGVkLmh0
dHBzLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+UlRD
UGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLmljZUNvbm5lY3Rpb25TdGF0ZSAtIGRpc2Nvbm5lY3Rp
b248L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgICBjb25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IGNhbGxlci5jbG9zZSgpKTsKKyAgICBjb25zdCBjYWxsZWUgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgp
KTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzp0cnVl
fSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0
cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRy
YWNrcygpOworICAgIGNhbGxlci5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAgICBleGNoYW5n
ZUljZUNhbmRpZGF0ZXMoY2FsbGVyLCBjYWxsZWUpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJB
bnN3ZXIoY2FsbGVyLCBjYWxsZWUpOworCisgICAgYXdhaXQgbGlzdGVuVG9JY2VDb25uZWN0ZWQo
Y2FsbGVyKTsKKworICAgIGNhbGxlZS5jbG9zZSgpOworICAgIGF3YWl0IHdhaXRGb3JJY2VTdGF0
ZUNoYW5nZShjYWxsZXIsIFsnZGlzY29ubmVjdGVkJywgJ2ZhaWxlZCddKTsKKyAgICAvLyBUT0RP
OiB0aGlzIHNob3VsZCBldmVudHVhbGx5IHRyYW5zaXRpb24gdG8gZmFpbGVkIGJ1dCB0aGF0IHRh
a2VzCisgICAgLy8gc29tZXdoYXQgbG9uZyAoMTUtMzBzKSBzbyBpcyBub3QgdGVzdGFibGUuCisg
IH0sICdJQ0UgZ29lcyB0byBkaXNjb25uZWN0ZWQgaWYgdGhlIG90aGVyIHNpZGUgZ29lcyBhd2F5
Jyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0
ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwK
aW5kZXggOGFjYWJmNDk3NjZiYTA4OTk5Yjg4NTdkOGNiNjU4OWQxNTg3Yzg0My4uZDMxMjYwNjVi
OTk3NzhmMzJiNWUzMTMyMTEwODVkNTVjMDY0ZmUxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
aWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVj
dGlvblN0YXRlLmh0dHBzLmh0bWwKQEAgLTEsNSArMSw2IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxt
ZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4K
IDx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuaWNlQ29ubmVjdGlvblN0YXRlPC90
aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
QEAgLTEwLDEwICsxMSw2IEBACiAgIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBl
ZGl0b3IgZHJhZnQ6CiAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2
ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKIAotICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5j
dGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKLSAgLy8g
ZXhjaGFuZ2VJY2VDYW5kaWRhdGVzCi0gIC8vIGRvU2lnbmFsaW5nSGFuZHNoYWtlCi0KICAgLyoK
ICAgICA0LjMuMi4gIEludGVyZmFjZSBEZWZpbml0aW9uCiAgICAgICBpbnRlcmZhY2UgUlRDUGVl
ckNvbm5lY3Rpb24gOiBFdmVudFRhcmdldCB7CkBAIC0xMjUsNiArMTIyLDggQEAKICAgICAgICAg
YXNzZXJ0X3RydWUoaGFkX2NoZWNraW5nLCAnc3RhdGUgc2hvdWxkIHBhc3MgY2hlY2tpbmcgYmVm
b3JlJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyByZWFjaGluZyBjb25u
ZWN0ZWQgb3IgY29tcGxldGVkJyk7CiAgICAgICAgIHQuZG9uZSgpOworICAgICAgfSBlbHNlIGlm
IChpY2VDb25uZWN0aW9uU3RhdGUgPT09ICdmYWlsZWQnKSB7CisgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoIklDRSBzaG91bGQgbm90IGZhaWwiKTsKICAgICAgIH0KICAgICB9KTsKIApAQCAtMTMz
LDcgKzEzMiw3IEBACiAgICAgcGMxLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWNvbm5lY3Rpb25zdGF0
ZWNoYW5nZScsIG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlKTsKIAogICAgIGV4Y2hhbmdlSWNl
Q2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0gICAgZG9TaWduYWxpbmdIYW5kc2hha2UocGMxLCBwYzIp
OworICAgIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwogICB9LCAnY29ubmVjdGlvbiB3
aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQgb3Ig
JyArCiAgICAgICdjb21wbGV0ZWQgY29ubmVjdGlvbiBzdGF0ZScpOwogCkBAIC0xNDgsMjUgKzE0
NywyOCBAQCBhc3luY190ZXN0KHQgPT4gewogICAgICAgY29uc3QgeyBpY2VDb25uZWN0aW9uU3Rh
dGUgfSA9IHBjMTsKIAogICAgICAgaWYoaWNlQ29ubmVjdGlvblN0YXRlID09PSAnY2hlY2tpbmcn
KSB7Ci0gICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC50cmFu
c3BvcnQ7CisgICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC5p
Y2VUcmFuc3BvcnQ7CiAKICAgICAgICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUs
ICdjaGVja2luZycsCiAgICAgICAgICAgJ0V4cGVjdCBJQ0UgdHJhbnNwb3J0IHRvIGJlIGluIGNo
ZWNraW5nIHN0YXRlIHdoZW4nICsKICAgICAgICAgICAnIGljZUNvbm5lY3Rpb25TdGF0ZSBpcyBj
aGVja2luZycpOwogCiAgICAgICB9IGVsc2UgaWYoaWNlQ29ubmVjdGlvblN0YXRlID09PSAnY29u
bmVjdGVkJykgewotICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzEuc2N0cC50cmFuc3Bv
cnQudHJhbnNwb3J0OworICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzEuc2N0cC50cmFu
c3BvcnQuaWNlVHJhbnNwb3J0OwogCiAgICAgICAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0
LnN0YXRlLCAnY29ubmVjdGVkJywKICAgICAgICAgICAnRXhwZWN0IElDRSB0cmFuc3BvcnQgdG8g
YmUgaW4gY29ubmVjdGVkIHN0YXRlIHdoZW4nICsKICAgICAgICAgICAnIGljZUNvbm5lY3Rpb25T
dGF0ZSBpcyBjb25uZWN0ZWQnKTsKLQorICAgICAgICB0LmRvbmUoKTsKICAgICAgIH0gZWxzZSBp
ZihpY2VDb25uZWN0aW9uU3RhdGUgPT09ICdjb21wbGV0ZWQnKSB7Ci0gICAgICAgIGNvbnN0IGlj
ZVRyYW5zcG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC50cmFuc3BvcnQ7CisgICAgICAgIGNvbnN0
IGljZVRyYW5zcG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQ7CiAKICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICdjb21wbGV0ZWQnLAogICAgICAg
ICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQgc3RhdGUgd2hlbicg
KwogICAgICAgICAgICcgaWNlQ29ubmVjdGlvblN0YXRlIGlzIGNvbXBsZXRlZCcpOworICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgIH0gZWxzZSBpZiAoaWNlQ29ubmVjdGlvblN0YXRlID09PSAnZmFp
bGVkJykgeworICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJJQ0Ugc2hvdWxkIG5vdCBmYWlsIik7
CiAgICAgICB9CiAgICAgfSk7CiAKQEAgLTE3OCwxMCArMTgwLDQyIEBAIGFzeW5jX3Rlc3QodCA9
PiB7CiAgICAgcGMxLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZScs
IG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlKTsKIAogICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRl
cyhwYzEsIHBjMik7Ci0gICAgZG9TaWduYWxpbmdIYW5kc2hha2UocGMxLCBwYzIpOworICAgIGV4
Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwogICB9LCAnY29ubmVjdGlvbiB3aXRoIG9uZSBk
YXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgJyArCiAgICAgICdoYXZlIGNvbm5lY3RlZCBj
b25uZWN0aW9uIHN0YXRlJyk7CiAKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9w
KCkpKTsKKyAgICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiBwYzEuYWRkVHJh
Y2sodHJhY2ssIHN0cmVhbSkpOworCisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMy
KTsKKyAgICBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5U
b0ljZUNvbm5lY3RlZChwYzEpOworICB9LCAnY29ubmVjdGlvbiB3aXRoIGF1ZGlvIHRyYWNrIHNo
b3VsZCBldmVudHVhbGx5ICcgKworICAgICAnaGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0
ZScpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdl
dE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZSwgdmlkZW86dHJ1ZX0pOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgp
KSk7CisgICAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gcGMxLmFkZFRyYWNr
KHRyYWNrLCBzdHJlYW0pKTsKKworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7
CisgICAgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgYXdhaXQgbGlzdGVuVG9J
Y2VDb25uZWN0ZWQocGMxKTsKKyAgfSwgJ2Nvbm5lY3Rpb24gd2l0aCBhdWRpbyBhbmQgdmlkZW8g
dHJhY2tzIHNob3VsZCBldmVudHVhbGx5ICcgKworICAgICAnaGF2ZSBjb25uZWN0ZWQgY29ubmVj
dGlvbiBzdGF0ZScpOworCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBj
YWxsZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IGNhbGxlci5jbG9zZSgpKTsKQEAgLTE4OSwxMSArMjIzLDEyIEBAIGFzeW5jX3Rlc3QodCA9PiB7
CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CiAKICAgICBjYWxsZXIu
YWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywge2RpcmVjdGlvbjoncmVjdm9ubHknfSk7Ci0gICAgY29u
c3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1
ZGlvOnRydWV9KTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVk
aW86dHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZv
ckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVh
bS5nZXRUcmFja3MoKTsKICAgICBjYWxsZWUuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CiAgICAg
ZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKGNhbGxlciwgY2FsbGVlKTsKLSAgICBhd2FpdCBkb1NpZ25h
bGluZ0hhbmRzaGFrZShjYWxsZXIsIGNhbGxlZSk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFu
c3dlcihjYWxsZXIsIGNhbGxlZSk7CiAKICAgICBhc3NlcnRfZXF1YWxzKGNhbGxlci5nZXRUcmFu
c2NlaXZlcnMoKS5sZW5ndGgsIDEpOwogICAgIGNvbnN0IFt0cmFuc2NlaXZlcl0gPSBjYWxsZXIu
Z2V0VHJhbnNjZWl2ZXJzKCk7CkBAIC0yNDIsNSArMjc3LDEyNCBAQCBhc3luY190ZXN0KHQgPT4g
ewogCiAgICAgICBjbG9zZWQKICAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgc2h1dCBk
b3duIGFuZCBpcyBubyBsb25nZXIgcmVzcG9uZGluZyB0byBTVFVOIHJlcXVlc3RzLgotICAgKi8K
KyAgKi8KKworZm9yIChsZXQgYnVuZGxlX3BvbGljeSBvZiBbJ2JhbGFuY2VkJywgJ21heC1idW5k
bGUnLCAnbWF4LWNvbXBhdCddKSB7CisKKworICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgICAgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7YnVuZGxlUG9saWN5
OiBidW5kbGVfcG9saWN5fSk7CisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlci5jbG9z
ZSgpKTsKKyAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKAorICAgICAg
ICAgIHthdWRpbzogdHJ1ZSwgdmlkZW86dHJ1ZX0pOworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAg
ICAgIGNvbnN0IFt0cmFjazEsIHRyYWNrMl0gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgICBj
b25zdCBzZW5kZXIxID0gY2FsbGVyLmFkZFRyYWNrKHRyYWNrMSk7CisgICAgICBjb25zdCBzZW5k
ZXIyID0gY2FsbGVyLmFkZFRyYWNrKHRyYWNrMik7CisgICAgICBjYWxsZXIuY3JlYXRlRGF0YUNo
YW5uZWwoJ2RhdGFjaGFubmVsJyk7CisgICAgICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOwor
ICAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKGNhbGxlciwgY2FsbGVlKTsKKyAgICAgIGNvbnN0
IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisgICAgICBhd2FpdCBjYWxsZXIu
c2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgICAgICBjb25zdCBbY2FsbGVyX3RyYW5zY2Vp
dmVyMSwgY2FsbGVyX3RyYW5zY2VpdmVyMl0gPSBjYWxsZXIuZ2V0VHJhbnNjZWl2ZXJzKCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNlbmRlcjEudHJhbnNwb3J0LCBjYWxsZXJfdHJhbnNjZWl2ZXIx
LnNlbmRlci50cmFuc3BvcnQpOworICAgICAgYXdhaXQgY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0
aW9uKG9mZmVyKTsKKyAgICAgIGNvbnN0IFtjYWxsZWVfdHJhbnNjZWl2ZXIxLCBjYWxsZWVfdHJh
bnNjZWl2ZXIyXSA9IGNhbGxlZS5nZXRUcmFuc2NlaXZlcnMoKTsKKyAgICAgIGNvbnN0IGFuc3dl
ciA9IGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgICAgIGF3YWl0IGNhbGxlZS5zZXRM
b2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgICAgICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYW5zd2VyKTsKKyAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIHNob3VsZCBoYXZl
IGEgc2luZ2xlIElDRSB0cmFuc3BvcnQsIGFuZCBpdAorICAgICAgLy8gc2hvdWxkIGV2ZW50dWFs
bHkgZ2V0IHRvIHRoZSAiY29ubmVjdGVkIiBzdGF0ZS4KKyAgICAgIGF3YWl0IHdhaXRGb3JTdGF0
ZShjYWxsZXJfdHJhbnNjZWl2ZXIxLnJlY2VpdmVyLnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3RlZCcpOworICAgICAgLy8gVGhlIFBlZXJD
b25uZWN0aW9uJ3MgaWNlQ29ubmVjdGlvblN0YXRlIHNob3VsZCB0aGVyZWZvcmUgYmUgJ2Nvbm5l
Y3RlZCcKKyAgICAgIGFzc2VydF9lcXVhbHMoY2FsbGVyLmljZUNvbm5lY3Rpb25TdGF0ZSwgJ2Nv
bm5lY3RlZCcsCisgICAgICAgICAgICAgICAgICAgICdQQy5pY2VDb25uZWN0aW9uU3RhdGU6Jyk7
CisgICAgfSwgJ2ljZUNvbm5lY3Rpb25TdGF0ZSBjaGFuZ2VzIGF0IHRoZSByaWdodCB0aW1lLCB3
aXRoIGJ1bmRsZSBwb2xpY3kgJyArCisgICAgICAgICAgICAgICAgIGJ1bmRsZV9wb2xpY3kpOwor
fQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOworICBwYzEub25pY2VjYW5kaWRhdGUgPSBhc3luYyBlID0+IHsKKyAgICBp
ZiAoZS5jYW5kaWRhdGUpIHsKKyAgICAgIGF3YWl0IHBjMi5hZGRJY2VDYW5kaWRhdGUoZS5jYW5k
aWRhdGUpOworICAgIH0KKyAgfTsKKyAgcGMxLmNhbmRpZGF0ZUJ1ZmZlciA9IFtdOworICBwYzIu
b25pY2VjYW5kaWRhdGUgPSBlID0+IHsKKyAgICAvLyBEb24ndCBhZGQgY2FuZGlkYXRlIGlmIGNh
bmRpZGF0ZSBidWZmZXIgaXMgYWxyZWFkeSB1c2VkCisgICAgaWYgKGUuY2FuZGlkYXRlICYmIHBj
MS5jYW5kaWRhdGVCdWZmZXIpIHsKKyAgICAgIHBjMS5jYW5kaWRhdGVCdWZmZXIucHVzaChlLmNh
bmRpZGF0ZSkKKyAgICB9CisgIH07CisgIHBjMS5pY2VTdGF0ZXMgPSBbcGMxLmljZUNvbm5lY3Rp
b25TdGF0ZV07CisgIHBjMi5pY2VTdGF0ZXMgPSBbcGMyLmljZUNvbm5lY3Rpb25TdGF0ZV07Cisg
IHBjMS5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICBwYzEuaWNlU3Rh
dGVzLnB1c2gocGMxLmljZUNvbm5lY3Rpb25TdGF0ZSk7CisgIH07CisgIHBjMi5vbmljZWNvbm5l
Y3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICBwYzIuaWNlU3RhdGVzLnB1c2gocGMyLmlj
ZUNvbm5lY3Rpb25TdGF0ZSk7CisgIH07CisKKyAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBn
ZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfSk7CisgIGNvbnN0IGxvY2Fs
U3RyZWFtMiA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9
KTsKKyAgY29uc3QgcmVtb3RlU3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0
cnVlLCB2aWRlbzogdHJ1ZX0pOworICBmb3IgKGNvbnN0IHN0cmVhbSBvZiBbbG9jYWxTdHJlYW0s
IGxvY2FsU3RyZWFtMiwgcmVtb3RlU3RyZWFtXSkgeworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
c3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIH0K
KyAgbG9jYWxTdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0ID0+IHBjMS5hZGRUcmFjayh0LCBs
b2NhbFN0cmVhbSkpOworICBsb2NhbFN0cmVhbTIuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0ID0+IHBj
MS5hZGRUcmFjayh0LCBsb2NhbFN0cmVhbTIpKTsKKyAgcmVtb3RlU3RyZWFtLmdldFRyYWNrcygp
LmZvckVhY2godCA9PiBwYzIuYWRkVHJhY2sodCwgcmVtb3RlU3RyZWFtKSk7CisgIGNvbnN0IG9m
ZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcik7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsK
KyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzIu
c2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oYW5zd2VyKTsKKyAgcGMxLmNhbmRpZGF0ZUJ1ZmZlci5mb3JFYWNoKGMgPT4gcGMxLmFk
ZEljZUNhbmRpZGF0ZShjKSk7CisgIGRlbGV0ZSBwYzEuY2FuZGlkYXRlQnVmZmVyOworICBhd2Fp
dCBsaXN0ZW5Ub0ljZUNvbm5lY3RlZChwYzEpOworICBhd2FpdCBsaXN0ZW5Ub0ljZUNvbm5lY3Rl
ZChwYzIpOworICAvLyBXaGlsZSB3ZSdyZSB3YWl0aW5nIGZvciBwYzIsIHBjMSBtYXkgb3IgbWF5
IG5vdCBoYXZlIHRyYW5zaXRpb25lZAorICAvLyB0byAiY29tcGxldGVkIiBzdGF0ZSwgc28gYWxs
b3cgZm9yIGJvdGggY2FzZXMuCisgIGlmIChwYzEuaWNlU3RhdGVzLmxlbmd0aCA9PSAzKSB7Cisg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhwYzEuaWNlU3RhdGVzLCBbJ25ldycsICdjaGVja2luZycs
ICdjb25uZWN0ZWQnXSk7CisgIH0gZWxzZSB7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhwYzEu
aWNlU3RhdGVzLCBbJ25ldycsICdjaGVja2luZycsICdjb25uZWN0ZWQnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZWQnXSk7CisgIH0KKyAgYXNzZXJ0
X2FycmF5X2VxdWFscyhwYzIuaWNlU3RhdGVzLCBbJ25ldycsICdjaGVja2luZycsICdjb25uZWN0
ZWQnXSk7Cit9LCAnUmVzcG9uZGVyIElDRSBjb25uZWN0aW9uIHN0YXRlIGJlaGF2ZXMgYXMgZXhw
ZWN0ZWQnKTsKKworLyoKKyAgVGVzdCBjYXNlIGZvciBzdGVwIDExIG9mIFBlZXJDb25uZWN0aW9u
LmNsb3NlKCkuCisgIC4uLgorICAxMS4gU2V0IGNvbm5lY3Rpb24ncyBJQ0UgY29ubmVjdGlvbiBz
dGF0ZSB0byAiY2xvc2VkIi4gVGhpcyBkb2VzIG5vdCBpbnZva2UKKyAgICAgIHRoZSAidXBkYXRl
IHRoZSBJQ0UgY29ubmVjdGlvbiBzdGF0ZSIgcHJvY2VkdXJlLCBhbmQgZG9lcyBub3QgZmlyZSBh
bnkKKyAgICAgIGV2ZW50LgorICAuLi4KKyovCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHsgYXVkaW86IHRydWUgfSk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sg
PT4gdHJhY2suc3RvcCgpKSk7CisKKyAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sg
PT4gcGMxLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
KHBjMSwgcGMyKTsKKyAgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgIGF3YWl0IGxp
c3RlblRvSWNlQ29ubmVjdGVkKHBjMik7CisKKyAgcGMyLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hh
bmdlID0gdC51bnJlYWNoZWRfZnVuYygpOworICBwYzIuY2xvc2UoKTsKKyAgYXNzZXJ0X3RydWUo
cGMyLmljZUNvbm5lY3Rpb25TdGF0ZSA9PT0gJ2Nsb3NlZCcpOworICBhd2FpdCBuZXcgUHJvbWlz
ZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDEwMCkpOworfSwgJ0Nsb3NpbmcgYSBQZWVyQ29ubmVj
dGlvbiBzaG91bGQgbm90IGZpcmUgaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50Jyk7CisK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKaW5kZXggZTZkOGQwNjI3MDFh
Nzk1YTI4OWFkMDExZmE0Y2ZhZTE0M2EzNDJlOS4uM2YwMTI4YmI4NDNkZGJkZDEyOWY4YTEwYjYw
MWIyMWMyMWNlN2RlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCkBAIC0xMSw3ICsx
MSw3IEBACiAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAx
NzA2MDUvd2VicnRjLmh0bWwKIAogICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMg
YXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKLSAgLy8gZG9TaWdu
YWxpbmdIYW5kc2hha2UKKyAgLy8gZXhjaGFuZ2VPZmZlckFuc3dlcgogICAvLyBleGNoYW5nZUlj
ZUNhbmRpZGF0ZXMKICAgLy8gZ2VuZXJhdGVBdWRpb1JlY2VpdmVPbmx5T2ZmZXIKIApAQCAtNjAs
MTYgKzYwLDIxIEBACiAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogCisg
ICAgbGV0IHJlYWNoZWRHYXRoZXJpbmcgPSBmYWxzZTsKICAgICBjb25zdCBvbkljZUdhdGhlcmlu
Z1N0YXRlQ2hhbmdlID0gdC5zdGVwX2Z1bmMoKCkgPT4gewogICAgICAgY29uc3QgeyBpY2VHYXRo
ZXJpbmdTdGF0ZSB9ID0gcGM7CiAKLSAgICAgIGlmKGljZUdhdGhlcmluZ1N0YXRlID09PSAnY29t
cGxldGUnKSB7CisgICAgICBpZihpY2VHYXRoZXJpbmdTdGF0ZSA9PT0gJ2dhdGhlcmluZycpIHsK
KyAgICAgICAgcmVhY2hlZEdhdGhlcmluZyA9IHRydWU7CisgICAgICB9IGVsc2UgaWYoaWNlR2F0
aGVyaW5nU3RhdGUgPT09ICdjb21wbGV0ZScpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUocmVhY2hl
ZEdhdGhlcmluZywgJ2ljZUdhdGhlcmluZ1N0YXRlIHNob3VsZCByZWFjaCBnYXRoZXJpbmcgYmVm
b3JlIGNvbXBsZXRlJyk7CiAgICAgICAgIHQuZG9uZSgpOwogICAgICAgfQogICAgIH0pOwogCiAg
ICAgYXNzZXJ0X2VxdWFscyhwYy5vbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdlLCBudWxsLAogICAg
ICAgJ0V4cGVjdCBjb25uZWN0aW9uIHRvIGhhdmUgaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UgZXZl
bnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLmljZUdhdGhlcmluZ1N0YXRlLCAnbmV3Jyk7CiAK
ICAgICBwYy5hZGRFdmVudExpc3RlbmVyKCdpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZScsIG9uSWNl
R2F0aGVyaW5nU3RhdGVDaGFuZ2UpOwogCkBAIC03OSw2ICs4NCwxMzEgQEAKICAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoYFVuaGFuZGxlZCByZWplY3Rpb24gJHtlcnIubmFtZX06ICR7ZXJyLm1lc3Nh
Z2V9YCkpKTsKICAgfSwgJ2ljZUdhdGhlcmluZ1N0YXRlIHNob3VsZCBldmVudHVhbGx5IGJlY29t
ZSBjb21wbGV0ZSBhZnRlciBzZXRMb2NhbERlc2NyaXB0aW9uJyk7CiAKKyAgY29uc3QgaWNlR2F0
aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyA9IGFzeW5jIChwYywgLi4uc3RhdGVzKSA9PiB7CisgICAg
Zm9yIChjb25zdCBzdGF0ZSBvZiBzdGF0ZXMpIHsKKyAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgcGMuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0
aGVyaW5nc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICAgICAgaWYgKHBjLmljZUdhdGhlcmlu
Z1N0YXRlID09IHN0YXRlKSB7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHJlamVjdChgVW5leHBlY3RlZCBnYXRoZXJpbmcgc3RhdGU6ICR7
cGMuaWNlR2F0aGVyaW5nU3RhdGV9LCB3YXMgZXhwZWN0aW5nICR7c3RhdGV9YCk7CisgICAgICAg
ICAgfQorICAgICAgICB9LCB7b25jZTogdHJ1ZX0pOworICAgICAgfSk7CisgICAgfQorICB9Owor
CisgIGNvbnN0IGluaXRpYWxPZmZlckFuc3dlciA9IGFzeW5jIChwYzEsIHBjMiwgb2ZmZXJPcHRp
b25zKSA9PiB7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oCisgICAgICBhd2Fp
dCBwYzEuY3JlYXRlT2ZmZXIob2ZmZXJPcHRpb25zKSk7CisgICAgY29uc3QgcGMxVHJhbnNpdGlv
bnMgPSBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjMSwgJ2dhdGhlcmluZycsICdjb21w
bGV0ZScpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNj
cmlwdGlvbik7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNy
ZWF0ZUFuc3dlcigpKTsKKyAgICBjb25zdCBwYzJUcmFuc2l0aW9ucyA9IGljZUdhdGhlcmluZ1N0
YXRlVHJhbnNpdGlvbnMocGMyLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRlJyk7CisgICAgYXdhaXQg
cGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIGF3
YWl0IHBjMVRyYW5zaXRpb25zOworICAgIGF3YWl0IHBjMlRyYW5zaXRpb25zOworICB9OworCisg
IGNvbnN0IGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyA9IGFzeW5jICh0LCBwYykg
PT4geworICAgIHBjLm9uaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UgPSB0LnN0ZXBfZnVuYygoKSA9
PiBhc3NlcnRfdW5yZWFjaGVkKCdTaG91bGQgbm90IGdldCBhbiBpY2VnYXRoZXJpbmdzdGF0ZWNo
YW5nZSByaWdodCBub3chJykpOworICB9OworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBhd2Fp
dCBpbml0aWFsT2ZmZXJBbnN3ZXIocGMxLCBwYzIsIHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVl
fSk7CisKKyAgICBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0ZUNoYW5nZXModCwgcGMxKTsKKyAg
ICBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0ZUNoYW5nZXModCwgcGMyKTsKKworICAgIGF3YWl0
IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgICBh
d2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7CisK
KyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDUwMCkpOworICB9
LCAnc2V0TG9jYWxEZXNjcmlwdGlvbihyZW9mZmVyKSB3aXRoIG5vIG5ldyB0cmFuc3BvcnRzIHNo
b3VsZCBub3QgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gY2hhbmdlJyk7CisKKyAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworICAgIGF3YWl0IGluaXRpYWxPZmZlckFuc3dlcihwYzEsIHBjMiwge29mZmVy
VG9SZWNlaXZlQXVkaW86IHRydWV9KTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlv
bihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IHRydWV9KSk7CisgICAgYXdhaXQg
aWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRoZXJpbmcnLCAnY29tcGxldGUn
KTsKKyAgICBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0ZUNoYW5nZXModCwgcGMxKTsKKyAgICBh
d2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogJ3JvbGxiYWNrJ30pOworICAgIGF3
YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMTAwMCkpOworICB9LCAncm9s
bGluZyBiYWNrIGFuIElDRSByZXN0YXJ0IHdoZW4gZ2F0aGVyaW5nIGlzIGNvbXBsZXRlIHNob3Vs
ZCBub3QgcmVzdWx0IGluIGljZUdhdGhlcmluZ1N0YXRlIGNoYW5nZXMnKTsKKworICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisgICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7b2ZmZXJU
b1JlY2VpdmVBdWRpbzp0cnVlfSk7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24o
YXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtpY2VSZXN0YXJ0OiB0cnVlfSkpOworICAgIGF3YWl0IGlj
ZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMxLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRlJyk7
CisgIH0sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJlb2ZmZXIpIHdpdGggYSBuZXcgdHJhbnNwb3J0
IHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0byBnbyB0byAiY2hlY2tpbmciIGFuZCB0
aGVuICJjb21wbGV0ZSInKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29u
c3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgICAgZXhwZWN0Tm9Nb3Jl
R2F0aGVyaW5nU3RhdGVDaGFuZ2VzKHQsIHBjMik7CisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBw
YzEuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KTsKKyAgICBhd2FpdCBw
YzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihvZmZlcik7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0
eXBlOiAncm9sbGJhY2snfSk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9m
ZmVyKTsKKyAgfSwgJ3NSRCBkb2VzIG5vdCBjYXVzZSBJQ0UgZ2F0aGVyaW5nIHN0YXRlIGNoYW5n
ZXMnKQorCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CisgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigKKyAgICAgIGF3YWl0IHBjLmNyZWF0
ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSkpOworICAgIGF3YWl0IGljZUdhdGhl
cmluZ1N0YXRlVHJhbnNpdGlvbnMocGMsICdnYXRoZXJpbmcnLCAnY29tcGxldGUnKTsKKyAgICBh
d2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAncm9sbGJhY2snfSk7CisgICAgYXdh
aXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYywgJ25ldycpOworICB9LCAnc2V0TG9j
YWxEZXNjcmlwdGlvbihyb2xsYmFjaykgb2Ygb3JpZ2luYWwgb2ZmZXIgc2hvdWxkIGNhdXNlIGlj
ZUdhdGhlcmluZ1N0YXRlIHRvIHJlYWNoICJuZXciIHdoZW4gc3RhcnRpbmcgaW4gImNvbXBsZXRl
IicpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CisgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigKKyAgICAgIGF3YWl0IHBjLmNyZWF0
ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSkpOworICAgIGF3YWl0IGljZUdhdGhl
cmluZ1N0YXRlVHJhbnNpdGlvbnMocGMsICdnYXRoZXJpbmcnKTsKKyAgICBhd2FpdCBwYy5zZXRM
b2NhbERlc2NyaXB0aW9uKHt0eXBlOiAncm9sbGJhY2snfSk7CisgICAgLy8gV2UgbWlnaHQgZ28g
ZGlyZWN0bHkgdG8gJ25ldycsIG9yIHdlIG1pZ2h0IGdvIHRvICdjb21wbGV0ZScgZmlyc3QsCisg
ICAgLy8gZGVwZW5kaW5nIG9uIHRpbWluZy4gQWxsb3cgZWl0aGVyLgorICAgIGNvbnN0IHJlc3Vs
dHMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoWworICAgICAgaWNlR2F0aGVyaW5nU3RhdGVU
cmFuc2l0aW9ucyhwYywgJ25ldycpLAorICAgICAgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9u
cyhwYywgJ2NvbXBsZXRlJywgJ25ldycpXSk7CisgICAgYXNzZXJ0X3RydWUocmVzdWx0cy5zb21l
KHJlc3VsdCA9PiByZXN1bHQuc3RhdHVzID09ICdmdWxmaWxsZWQnKSwKKyAgICAgICdJQ0UgZ2F0
aGVyaW5nIHN0YXRlIHNob3VsZCBnbyBiYWNrIHRvICJuZXciLCBwb3NzaWJseSB0aHJvdWdoICJj
b21wbGV0ZSInKTsKKyAgfSwgJ3NldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIG9mIG9yaWdp
bmFsIG9mZmVyIHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0byByZWFjaCAibmV3IiB3
aGVuIHN0YXJ0aW5nIGluICJnYXRoZXJpbmciJyk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICAg
IGF3YWl0IGluaXRpYWxPZmZlckFuc3dlcihwYzEsIHBjMiwge29mZmVyVG9SZWNlaXZlQXVkaW86
IHRydWV9KTsKKworICAgIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9wKCk7CisgICAgYXdh
aXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAg
IGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7Cisg
ICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigp
KTsKKyAgICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjMiwgJ25ldycpOwor
ICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7
CisgICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICduZXcnKTsKKyAg
fSwgJ3JlbmVnb3RpYXRpb24gdGhhdCBjbG9zZXMgYWxsIHRyYW5zcG9ydHMgc2hvdWxkIHJlc3Vs
dCBpbiBJQ0UgZ2F0aGVyaW5nIHN0YXRlICJuZXciJyk7CisKICAgLyoKICAgICA0LjQuMi4gIFJU
Q0ljZUdhdGhlcmluZ1N0YXRlIEVudW0KICAgICAgIGdhdGhlcmluZwpAQCAtMTA4LDEzICsyMzgs
MTMgQEAKICAgICAgIGNvbnN0IHsgaWNlR2F0aGVyaW5nU3RhdGUgfSA9IHBjMjsKIAogICAgICAg
aWYoaWNlR2F0aGVyaW5nU3RhdGUgPT09ICdnYXRoZXJpbmcnKSB7Ci0gICAgICAgIGNvbnN0IGlj
ZVRyYW5zcG9ydCA9IHBjMi5zY3RwLnRyYW5zcG9ydC50cmFuc3BvcnQ7CisgICAgICAgIGNvbnN0
IGljZVRyYW5zcG9ydCA9IHBjMi5zY3RwLnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQ7CiAKICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2F0aGVyaW5nU3RhdGUsICdnYXRoZXJpbmcn
LAogICAgICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjaGVja2luZyBnYXRo
ZXJpbmdTdGF0ZSB3aGVuIGljZUdhdGhlcmluZ1N0YXRlIGlzIGNoZWNraW5nJyk7CiAKICAgICAg
IH0gZWxzZSBpZihpY2VHYXRoZXJpbmdTdGF0ZSA9PT0gJ2NvbXBsZXRlJykgewotICAgICAgICBj
b25zdCBpY2VUcmFuc3BvcnQgPSBwYzIuc2N0cC50cmFuc3BvcnQudHJhbnNwb3J0OworICAgICAg
ICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzIuc2N0cC50cmFuc3BvcnQuaWNlVHJhbnNwb3J0Owog
CiAgICAgICAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdhdGhlcmluZ1N0YXRlLCAnY29t
cGxldGUnLAogICAgICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjb21wbGV0
ZSBnYXRoZXJpbmdTdGF0ZSB3aGVuIGljZUdhdGhlcmluZ1N0YXRlIGlzIGNvbXBsZXRlJyk7CkBA
IC0xMzUsNyArMjY1LDcgQEAKICAgICBwYzIuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5n
c3RhdGVjaGFuZ2UnLCBvbkljZUdhdGhlcmluZ1N0YXRlQ2hhbmdlKTsKIAogICAgIGV4Y2hhbmdl
SWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0gICAgZG9TaWduYWxpbmdIYW5kc2hha2UocGMxLCBw
YzIpOworICAgIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwogICB9LCAnY29ubmVjdGlv
biB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQg
Y29ubmVjdGlvbiBzdGF0ZScpOwogCiAgIC8qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5k
YXRvcnktZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5
LWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTkzNDA3YTBjZWQxN2E0
ZjllYWM5NjQxZmZmOWJiYzQ0NDY4OTRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
bWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgwIEBACisK
K0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitGQUlMIGdldFN0YXRz
IHN1Y2NlZWRzIGFzc2VydF9lcXVhbHM6IFRlc3QgZXJyb3IuIFN0cmluZy4gZXhwZWN0ZWQgInN0
cmluZyIgYnV0IGdvdCAidW5kZWZpbmVkIgorVElNRU9VVCBSVENSdHBTdHJlYW1TdGF0cydzIHNz
cmMgVGVzdCB0aW1lZCBvdXQKK05PVFJVTiBSVENSdHBTdHJlYW1TdGF0cydzIGtpbmQgCitOT1RS
VU4gUlRDUnRwU3RyZWFtU3RhdHMncyB0cmFuc3BvcnRJZCAKK05PVFJVTiBSVENSdHBTdHJlYW1T
dGF0cydzIGNvZGVjSWQgCitOT1RSVU4gUlRDUmVjZWl2ZWRSdHBTdHJlYW1TdGF0cydzIHBhY2tl
dHNSZWNlaXZlZCAKK05PVFJVTiBSVENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzJ3MgcGFja2V0c0xv
c3QgCitOT1RSVU4gUlRDUmVjZWl2ZWRSdHBTdHJlYW1TdGF0cydzIGppdHRlciAKK05PVFJVTiBS
VENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzJ3MgcGFja2V0c0Rpc2NhcmRlZCAKK05PVFJVTiBSVENJ
bmJvdW5kUnRwU3RyZWFtU3RhdHMncyB0cmFja0lkIAorTk9UUlVOIFJUQ0luYm91bmRSdHBTdHJl
YW1TdGF0cydzIHJlY2VpdmVySWQgCitOT1RSVU4gUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3Mg
cmVtb3RlSWQgCitOT1RSVU4gUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgZnJhbWVzRGVjb2Rl
ZCAKK05PVFJVTiBSVENSZW1vdGVJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyBsb2NhbElkIAorTk9U
UlVOIFJUQ1JlbW90ZUluYm91bmRSdHBTdHJlYW1TdGF0cydzIHJvdW5kVHJpcFRpbWUgCitOT1RS
VU4gUlRDU2VudFJ0cFN0cmVhbVN0YXRzJ3MgcGFja2V0c1NlbnQgCitOT1RSVU4gUlRDU2VudFJ0
cFN0cmVhbVN0YXRzJ3MgYnl0ZXNTZW50IAorTk9UUlVOIFJUQ091dGJvdW5kUnRwU3RyZWFtU3Rh
dHMncyB0cmFja0lkIAorTk9UUlVOIFJUQ091dGJvdW5kUnRwU3RyZWFtU3RhdHMncyBzZW5kZXJJ
ZCAKK05PVFJVTiBSVENPdXRib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgcmVtb3RlSWQgCitOT1RSVU4g
UlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIGZyYW1lc0VuY29kZWQgCitOT1RSVU4gUlRDUmVt
b3RlT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIGxvY2FsSWQgCitOT1RSVU4gUlRDUmVtb3RlT3V0
Ym91bmRSdHBTdHJlYW1TdGF0cydzIHJlbW90ZVRpbWVzdGFtcCAKK05PVFJVTiBSVENQZWVyQ29u
bmVjdGlvblN0YXRzJ3MgZGF0YUNoYW5uZWxzT3BlbmVkIAorTk9UUlVOIFJUQ1BlZXJDb25uZWN0
aW9uU3RhdHMncyBkYXRhQ2hhbm5lbHNDbG9zZWQgCitOT1RSVU4gUlRDRGF0YUNoYW5uZWxTdGF0
cydzIHByb3RvY29sIAorTk9UUlVOIFJUQ0RhdGFDaGFubmVsU3RhdHMncyBkYXRhQ2hhbm5lbElk
ZW50aWZpZXIgCitOT1RSVU4gUlRDRGF0YUNoYW5uZWxTdGF0cydzIHN0YXRlIAorTk9UUlVOIFJU
Q0RhdGFDaGFubmVsU3RhdHMncyBtZXNzYWdlc1NlbnQgCitOT1RSVU4gUlRDRGF0YUNoYW5uZWxT
dGF0cydzIGJ5dGVzU2VudCAKK05PVFJVTiBSVENEYXRhQ2hhbm5lbFN0YXRzJ3MgbWVzc2FnZXNS
ZWNlaXZlZCAKK05PVFJVTiBSVENEYXRhQ2hhbm5lbFN0YXRzJ3MgYnl0ZXNSZWNlaXZlZCAKK05P
VFJVTiBSVENNZWRpYVN0cmVhbVN0YXRzJ3Mgc3RyZWFtSWRlbnRpZmVyIAorTk9UUlVOIFJUQ01l
ZGlhU3RyZWFtU3RhdHMncyB0cmFja0lkcyAKK05PVFJVTiBSVENNZWRpYUhhbmRsZXJTdGF0cydz
IHRyYWNrSWRlbnRpZmllciAKK05PVFJVTiBSVENNZWRpYUhhbmRsZXJTdGF0cydzIHJlbW90ZVNv
dXJjZSAKK05PVFJVTiBSVENNZWRpYUhhbmRsZXJTdGF0cydzIGVuZGVkIAorTk9UUlVOIFJUQ0F1
ZGlvSGFuZGxlclN0YXRzJ3MgYXVkaW9MZXZlbCAKK05PVFJVTiBSVENWaWRlb0hhbmRsZXJTdGF0
cydzIGZyYW1lV2lkdGggCitOT1RSVU4gUlRDVmlkZW9IYW5kbGVyU3RhdHMncyBmcmFtZUhlaWdo
dCAKK05PVFJVTiBSVENWaWRlb0hhbmRsZXJTdGF0cydzIGZyYW1lc1BlclNlY29uZCAKK05PVFJV
TiBSVENWaWRlb1NlbmRlclN0YXRzJ3MgZnJhbWVzU2VudCAKK05PVFJVTiBSVENWaWRlb1JlY2Vp
dmVyU3RhdHMncyBmcmFtZXNSZWNlaXZlZCAKK05PVFJVTiBSVENWaWRlb1JlY2VpdmVyU3RhdHMn
cyBmcmFtZXNEZWNvZGVkIAorTk9UUlVOIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0cydzIGZyYW1lc0Ry
b3BwZWQgCitOT1RSVU4gUlRDVmlkZW9SZWNlaXZlclN0YXRzJ3MgcGFydGlhbEZyYW1lc0xvc3Qg
CitOT1RSVU4gUlRDQ29kZWNTdGF0cydzIHBheWxvYWRUeXBlIAorTk9UUlVOIFJUQ0NvZGVjU3Rh
dHMncyBjb2RlY1R5cGUgCitOT1RSVU4gUlRDQ29kZWNTdGF0cydzIGNsb2NrUmF0ZSAKK05PVFJV
TiBSVENDb2RlY1N0YXRzJ3MgY2hhbm5lbHMgCitOT1RSVU4gUlRDQ29kZWNTdGF0cydzIHNkcEZt
dHBMaW5lIAorTk9UUlVOIFJUQ1RyYW5zcG9ydFN0YXRzJ3MgYnl0ZXNTZW50IAorTk9UUlVOIFJU
Q1RyYW5zcG9ydFN0YXRzJ3MgYnl0ZXNSZWNlaXZlZCAKK05PVFJVTiBSVENUcmFuc3BvcnRTdGF0
cydzIHJ0Y3BUcmFuc3BvcnRTdGF0c0lkIAorTk9UUlVOIFJUQ1RyYW5zcG9ydFN0YXRzJ3Mgc2Vs
ZWN0ZWRDYW5kaWRhdGVQYWlySWQgCitOT1RSVU4gUlRDVHJhbnNwb3J0U3RhdHMncyBsb2NhbENl
cnRpZmljYXRlSWQgCitOT1RSVU4gUlRDVHJhbnNwb3J0U3RhdHMncyByZW1vdGVDZXJ0aWZpY2F0
ZUlkIAorTk9UUlVOIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIHRyYW5zcG9ydElkIAorTk9U
UlVOIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIGxvY2FsQ2FuZGlkYXRlSWQgCitOT1RSVU4g
UlRDSWNlQ2FuZGlkYXRlUGFpclN0YXRzJ3MgcmVtb3RlQ2FuZGlkYXRlSWQgCitOT1RSVU4gUlRD
SWNlQ2FuZGlkYXRlUGFpclN0YXRzJ3Mgc3RhdGUgCitOT1RSVU4gUlRDSWNlQ2FuZGlkYXRlUGFp
clN0YXRzJ3MgcHJpb3JpdHkgCitOT1RSVU4gUlRDSWNlQ2FuZGlkYXRlUGFpclN0YXRzJ3Mgbm9t
aW5hdGVkIAorTk9UUlVOIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIGJ5dGVzU2VudCAKK05P
VFJVTiBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMncyBieXRlc1JlY2VpdmVkIAorTk9UUlVOIFJU
Q0ljZUNhbmRpZGF0ZVBhaXJTdGF0cydzIHRvdGFsUm91bmRUcmlwVGltZSAKK05PVFJVTiBSVENJ
Y2VDYW5kaWRhdGVQYWlyU3RhdHMncyBjdXJyZW50Um91bmRUcmlwVGltZSAKK05PVFJVTiBSVENJ
Y2VDYW5kaWRhdGVTdGF0cydzIGFkZHJlc3MgCitOT1RSVU4gUlRDSWNlQ2FuZGlkYXRlU3RhdHMn
cyBwb3J0IAorTk9UUlVOIFJUQ0ljZUNhbmRpZGF0ZVN0YXRzJ3MgcHJvdG9jb2wgCitOT1RSVU4g
UlRDSWNlQ2FuZGlkYXRlU3RhdHMncyBjYW5kaWRhdGVUeXBlIAorTk9UUlVOIFJUQ0ljZUNhbmRp
ZGF0ZVN0YXRzJ3MgdXJsIAorTk9UUlVOIFJUQ0NlcnRpZmljYXRlU3RhdHMncyBmaW5nZXJwcmlu
dCAKK05PVFJVTiBSVENDZXJ0aWZpY2F0ZVN0YXRzJ3MgZmluZ2VycHJpbnRBbGdvcml0aG0gCitO
T1RSVU4gUlRDQ2VydGlmaWNhdGVTdGF0cydzIGJhc2U2NENlcnRpZmljYXRlIAorTk9UUlVOIFJU
Q0NlcnRpZmljYXRlU3RhdHMncyBpc3N1ZXJDZXJ0aWZpY2F0ZUlkIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1h
bmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViMGQ1OTE1M2RjYTQyODUx
OGVlNTEwZTAxZTFkNGZmZTg3YWJmMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1t
YW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbApAQCAtMCwwICsxLDI2NyBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyI+Cis8dGl0bGU+TWFuZGF0b3J5LXRvLWltcGxlbWVudCBzdGF0cyBjb21wbGlhbmNl
IChhIHN1YnNldCBvZiB3ZWJydGMtc3RhdHMpPC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9u
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iZGljdGlvbmFyeS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1N0YXRzLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvLyBGcm9tIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93
ZWJydGMtcGMvI21hbmRhdG9yeS10by1pbXBsZW1lbnQtc3RhdHMKKworY29uc3QgbWFuZGF0b3J5
ID0geworICBSVENSdHBTdHJlYW1TdGF0czogWworICAgICJzc3JjIiwKKyAgICAia2luZCIsCisg
ICAgInRyYW5zcG9ydElkIiwKKyAgICAiY29kZWNJZCIsCisgIF0sCisgIFJUQ1JlY2VpdmVkUnRw
U3RyZWFtU3RhdHM6IFsKKyAgICAicGFja2V0c1JlY2VpdmVkIiwKKyAgICAicGFja2V0c0xvc3Qi
LAorICAgICJqaXR0ZXIiLAorICAgICJwYWNrZXRzRGlzY2FyZGVkIiwKKyAgXSwKKyAgUlRDSW5i
b3VuZFJ0cFN0cmVhbVN0YXRzOiBbCisgICAgInRyYWNrSWQiLAorICAgICJyZWNlaXZlcklkIiwK
KyAgICAicmVtb3RlSWQiLAorICAgICJmcmFtZXNEZWNvZGVkIiwKKyAgXSwKKyAgUlRDUmVtb3Rl
SW5ib3VuZFJ0cFN0cmVhbVN0YXRzOiBbCisgICAgImxvY2FsSWQiLAorICAgICJyb3VuZFRyaXBU
aW1lIiwKKyAgXSwKKyAgUlRDU2VudFJ0cFN0cmVhbVN0YXRzOiBbCisgICAgInBhY2tldHNTZW50
IiwKKyAgICAiYnl0ZXNTZW50IgorICBdLAorICBSVENPdXRib3VuZFJ0cFN0cmVhbVN0YXRzOiBb
CisgICAgInRyYWNrSWQiLAorICAgICJzZW5kZXJJZCIsCisgICAgInJlbW90ZUlkIiwKKyAgICAi
ZnJhbWVzRW5jb2RlZCIsCisgIF0sCisgIFJUQ1JlbW90ZU91dGJvdW5kUnRwU3RyZWFtU3RhdHM6
IFsKKyAgICAibG9jYWxJZCIsCisgICAgInJlbW90ZVRpbWVzdGFtcCIsCisgIF0sCisgIFJUQ1Bl
ZXJDb25uZWN0aW9uU3RhdHM6IFsKKyAgICAiZGF0YUNoYW5uZWxzT3BlbmVkIiwKKyAgICAiZGF0
YUNoYW5uZWxzQ2xvc2VkIiwKKyAgXSwKKyAgUlRDRGF0YUNoYW5uZWxTdGF0czogWworICAgICJw
cm90b2NvbCIsCisgICAgImRhdGFDaGFubmVsSWRlbnRpZmllciIsCisgICAgInN0YXRlIiwKKyAg
ICAibWVzc2FnZXNTZW50IiwKKyAgICAiYnl0ZXNTZW50IiwKKyAgICAibWVzc2FnZXNSZWNlaXZl
ZCIsCisgICAgImJ5dGVzUmVjZWl2ZWQiLAorICBdLAorICBSVENNZWRpYVN0cmVhbVN0YXRzOiBb
CisgICAgInN0cmVhbUlkZW50aWZlciIsCisgICAgInRyYWNrSWRzIiwKKyAgXSwKKyAgUlRDTWVk
aWFIYW5kbGVyU3RhdHM6IFsKKyAgICAidHJhY2tJZGVudGlmaWVyIiwKKyAgICAicmVtb3RlU291
cmNlIiwKKyAgICAiZW5kZWQiLAorICBdLAorICBSVENBdWRpb0hhbmRsZXJTdGF0czogWworICAg
ICJhdWRpb0xldmVsIiwKKyAgXSwKKyAgUlRDVmlkZW9IYW5kbGVyU3RhdHM6IFsKKyAgICAiZnJh
bWVXaWR0aCIsCisgICAgImZyYW1lSGVpZ2h0IiwKKyAgICAiZnJhbWVzUGVyU2Vjb25kIiwKKyAg
XSwKKyAgUlRDVmlkZW9TZW5kZXJTdGF0czogWworICAgICJmcmFtZXNTZW50IiwKKyAgXSwKKyAg
UlRDVmlkZW9SZWNlaXZlclN0YXRzOiBbCisgICAgImZyYW1lc1JlY2VpdmVkIiwKKyAgICAiZnJh
bWVzRGVjb2RlZCIsCisgICAgImZyYW1lc0Ryb3BwZWQiLAorICAgICJwYXJ0aWFsRnJhbWVzTG9z
dCIsCisgIF0sCisgIFJUQ0NvZGVjU3RhdHM6IFsKKyAgICAicGF5bG9hZFR5cGUiLAorICAgICJj
b2RlY1R5cGUiLAorICAgICJjbG9ja1JhdGUiLAorICAgICJjaGFubmVscyIsCisgICAgInNkcEZt
dHBMaW5lIiwKKyAgXSwKKyAgUlRDVHJhbnNwb3J0U3RhdHM6IFsKKyAgICAiYnl0ZXNTZW50IiwK
KyAgICAiYnl0ZXNSZWNlaXZlZCIsCisgICAgInJ0Y3BUcmFuc3BvcnRTdGF0c0lkIiwKKyAgICAi
c2VsZWN0ZWRDYW5kaWRhdGVQYWlySWQiLAorICAgICJsb2NhbENlcnRpZmljYXRlSWQiLAorICAg
ICJyZW1vdGVDZXJ0aWZpY2F0ZUlkIiwKKyAgXSwKKyAgUlRDSWNlQ2FuZGlkYXRlUGFpclN0YXRz
OiBbCisgICAgInRyYW5zcG9ydElkIiwKKyAgICAibG9jYWxDYW5kaWRhdGVJZCIsCisgICAgInJl
bW90ZUNhbmRpZGF0ZUlkIiwKKyAgICAic3RhdGUiLAorICAgICJwcmlvcml0eSIsCisgICAgIm5v
bWluYXRlZCIsCisgICAgImJ5dGVzU2VudCIsCisgICAgImJ5dGVzUmVjZWl2ZWQiLAorICAgICJ0
b3RhbFJvdW5kVHJpcFRpbWUiLAorICAgICJjdXJyZW50Um91bmRUcmlwVGltZSIsCisgIF0sCisg
IFJUQ0ljZUNhbmRpZGF0ZVN0YXRzOiBbCisgICAgImFkZHJlc3MiLAorICAgICJwb3J0IiwKKyAg
ICAicHJvdG9jb2wiLAorICAgICJjYW5kaWRhdGVUeXBlIiwKKyAgICAidXJsIiwKKyAgXSwKKyAg
UlRDQ2VydGlmaWNhdGVTdGF0czogWworICAgICJmaW5nZXJwcmludCIsCisgICAgImZpbmdlcnBy
aW50QWxnb3JpdGhtIiwKKyAgICAiYmFzZTY0Q2VydGlmaWNhdGUiLAorICAgICJpc3N1ZXJDZXJ0
aWZpY2F0ZUlkIiwKKyAgXSwKK307CisKKy8vIEZyb20gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dl
YnJ0Yy1zdGF0cy93ZWJydGMtc3RhdHMuaHRtbCNydGNzdGF0c3R5cGUtc3RyKgorCitjb25zdCBk
aWN0aW9uYXJ5TmFtZXMgPSB7CisgICJjb2RlYyI6ICJSVENDb2RlY1N0YXRzIiwKKyAgImluYm91
bmQtcnRwIjogIlJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cyIsCisgICJvdXRib3VuZC1ydHAiOiAi
UlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cyIsCisgICJyZW1vdGUtaW5ib3VuZC1ydHAiOiAiUlRD
UmVtb3RlSW5ib3VuZFJ0cFN0cmVhbVN0YXRzIiwKKyAgInJlbW90ZS1vdXRib3VuZC1ydHAiOiAi
UlRDUmVtb3RlT3V0Ym91bmRSdHBTdHJlYW1TdGF0cyIsCisgICJjc3JjIjogIlJUQ1J0cENvbnRy
aWJ1dGluZ1NvdXJjZVN0YXRzIiwKKyAgInBlZXItY29ubmVjdGlvbiI6ICJSVENQZWVyQ29ubmVj
dGlvblN0YXRzIiwKKyAgImRhdGEtY2hhbm5lbCI6ICJSVENEYXRhQ2hhbm5lbFN0YXRzIiwKKyAg
InN0cmVhbSI6ICJSVENNZWRpYVN0cmVhbVN0YXRzIiwKKyAgInRyYWNrIjogeworICAgIHZpZGVv
OiAiUlRDU2VuZGVyVmlkZW9UcmFja0F0dGFjaG1lbnRTdGF0cyIsCisgICAgYXVkaW86ICJSVENT
ZW5kZXJBdWRpb1RyYWNrQXR0YWNobWVudFN0YXRzIgorICB9LAorICAic2VuZGVyIjogeworICAg
IGF1ZGlvOiAiUlRDQXVkaW9TZW5kZXJTdGF0cyIsCisgICAgdmlkZW86ICJSVENWaWRlb1NlbmRl
clN0YXRzIgorICB9LAorICAicmVjZWl2ZXIiOiB7CisgICAgYXVkaW86ICJSVENBdWRpb1JlY2Vp
dmVyU3RhdHMiLAorICAgIHZpZGVvOiAiUlRDVmlkZW9SZWNlaXZlclN0YXRzIiwKKyAgfSwKKyAg
InRyYW5zcG9ydCI6ICJSVENUcmFuc3BvcnRTdGF0cyIsCisgICJjYW5kaWRhdGUtcGFpciI6ICJS
VENJY2VDYW5kaWRhdGVQYWlyU3RhdHMiLAorICAibG9jYWwtY2FuZGlkYXRlIjogIlJUQ0ljZUNh
bmRpZGF0ZVN0YXRzIiwKKyAgInJlbW90ZS1jYW5kaWRhdGUiOiAiUlRDSWNlQ2FuZGlkYXRlU3Rh
dHMiLAorICAiY2VydGlmaWNhdGUiOiAiUlRDQ2VydGlmaWNhdGVTdGF0cyIsCit9OworCisvLyBG
cm9tIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtc3RhdHMvd2VicnRjLXN0YXRzLmh0bWwg
KHdlYmlkbCkKKworY29uc3QgcGFyZW50cyA9IHsKKyAgUlRDVmlkZW9IYW5kbGVyU3RhdHM6ICJS
VENNZWRpYUhhbmRsZXJTdGF0cyIsCisgIFJUQ1ZpZGVvU2VuZGVyU3RhdHM6ICJSVENWaWRlb0hh
bmRsZXJTdGF0cyIsCisgIFJUQ1NlbmRlclZpZGVvVHJhY2tBdHRhY2htZW50U3RhdHM6ICJSVENW
aWRlb1NlbmRlclN0YXRzIiwKKyAgUlRDVmlkZW9SZWNlaXZlclN0YXRzOiAiUlRDVmlkZW9IYW5k
bGVyU3RhdHMiLAorICBSVENBdWRpb0hhbmRsZXJTdGF0czogIlJUQ01lZGlhSGFuZGxlclN0YXRz
IiwKKyAgUlRDQXVkaW9TZW5kZXJTdGF0czogIlJUQ0F1ZGlvSGFuZGxlclN0YXRzIiwKKyAgUlRD
U2VuZGVyQXVkaW9UcmFja0F0dGFjaG1lbnRTdGF0czogIlJUQ0F1ZGlvU2VuZGVyU3RhdHMiLAor
ICBSVENBdWRpb1JlY2VpdmVyU3RhdHM6ICJSVENBdWRpb0hhbmRsZXJTdGF0cyIsCisgIFJUQ1Jl
Y2VpdmVkUnRwU3RyZWFtU3RhdHM6ICJSVENSdHBTdHJlYW1TdGF0cyIsCisgIFJUQ0luYm91bmRS
dHBTdHJlYW1TdGF0czogIlJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMiLAorICBSVENSZW1vdGVJ
bmJvdW5kUnRwU3RyZWFtU3RhdHM6ICJSVENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzIiwKKyAgUlRD
U2VudFJ0cFN0cmVhbVN0YXRzOiAiUlRDUnRwU3RyZWFtU3RhdHMiLAorICBSVENPdXRib3VuZFJ0
cFN0cmVhbVN0YXRzOiAiUlRDU2VudFJ0cFN0cmVhbVN0YXRzIiwKKyAgUlRDUmVtb3RlT3V0Ym91
bmRSdHBTdHJlYW1TdGF0cyA6ICJSVENTZW50UnRwU3RyZWFtU3RhdHMiLAorfTsKKworY29uc3Qg
cmVtYWluaW5nID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtYW5kYXRvcnkpKTsKK2ZvciAo
Y29uc3QgZGljdE5hbWUgaW4gcmVtYWluaW5nKSB7CisgIHJlbWFpbmluZ1tkaWN0TmFtZV0gPSBu
ZXcgU2V0KHJlbWFpbmluZ1tkaWN0TmFtZV0pOworfQorCithc3luYyBmdW5jdGlvbiBnZXRBbGxT
dGF0cyh0LCBwYykgeworICAvLyBUcnkgdG8gb2J0YWluIGFzIG1hbnkgc3RhdHMgYXMgcG9zc2li
bGUsIHdhaXRpbmcgdXAgdG8gMjAgc2Vjb25kcyBmb3IKKyAgLy8gcm91bmRUcmlwVGltZSB3aGlj
aCBjYW4gdGFrZSBzZXZlcmFsIFJUQ1AgbWVzc2FnZXMgdG8gY2FsY3VsYXRlLgorICBsZXQgc3Rh
dHM7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykgeworICAgIHN0YXRzID0gYXdhaXQg
cGMuZ2V0U3RhdHMoKTsKKyAgICBjb25zdCB2YWx1ZXMgPSBbLi4uc3RhdHMudmFsdWVzKCldOwor
ICAgIGNvbnN0IFthdWRpbywgdmlkZW9dID0gWyJhdWRpbyIsICJ2aWRlbyJdLm1hcChraW5kID0+
CisgICAgICB2YWx1ZXMuZmluZChzID0+IHMudHlwZSA9PSAicmVtb3RlLWluYm91bmQtcnRwIiAm
JiBzLmtpbmQgPT0ga2luZCkpOworICAgIGlmIChhdWRpbyAmJiAicm91bmRUcmlwVGltZSIgaW4g
YXVkaW8gJiYKKyAgICAgICAgdmlkZW8gJiYgInJvdW5kVHJpcFRpbWUiIGluIHZpZGVvKSB7Cisg
ICAgICByZXR1cm4gc3RhdHM7CisgICAgfQorICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5z
dGVwX3RpbWVvdXQociwgMTAwMCkpOworICB9CisgIHJldHVybiBzdGF0czsKK30KKworbGV0IHN1
Y2NlZWQ7Citjb25zdCBzdWNjZXNzID0gbmV3IFByb21pc2UociA9PiBzdWNjZWVkID0gcik7CisK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisKKyAgY29uc3QgZGMxID0gcGMxLmNyZWF0ZURhdGFDaGFubmVsKCJkdW1teSIs
IHtuZWdvdGlhdGVkOiB0cnVlLCBpZDogMH0pOworICBjb25zdCBkYzIgPSBwYzIuY3JlYXRlRGF0
YUNoYW5uZWwoImR1bW15Iiwge25lZ290aWF0ZWQ6IHRydWUsIGlkOiAwfSk7CisKKyAgY29uc3Qg
c3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlLCBhdWRpbzp0cnVlfSk7
CisgIGZvciAoY29uc3QgdHJhY2sgb2Ygc3RyZWFtLmdldFRyYWNrcygpKSB7CisgICAgcGMxLmFk
ZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworICAgIHBjMi5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHRyYWNrLnN0b3AoKSk7CisgIH0KKyAgZXhjaGFuZ2VJ
Y2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEs
IHBjMik7CisgIGNvbnN0IHN0YXRzID0gYXdhaXQgZ2V0QWxsU3RhdHModCwgcGMxKTsKKworICAv
LyBUaGUgZm9jdXMgb2YgdGhpcyB0ZXN0IGlzIG5vdCBBUEkgY29ycmVjdG5lc3MsIGJ1dCByYXRo
ZXIgdG8gcHJvdmlkZSBhbgorICAvLyBhY2Nlc3NpYmxlIG1ldHJpYyBvZiBpbXBsZW1lbnRhdGlv
biBwcm9ncmVzcyBieSBkaWN0aW9uYXJ5IG1lbWJlci4gV2UgY291bnQKKyAgLy8gd2hldGhlciB3
ZSd2ZSBzZWVuIGVhY2ggZGljdGlvbmFyeSdzIG1hbmRhdG9yeSBtZW1iZXJzIGluIGdldFN0YXRz
KCkuCisKKyAgZm9yIChjb25zdCBzdGF0IG9mIHN0YXRzLnZhbHVlcygpKSB7CisgICAgbGV0IGRp
Y3ROYW1lID0gZGljdGlvbmFyeU5hbWVzW3N0YXQudHlwZV07CisgICAgaWYgKCFkaWN0TmFtZSkg
Y29udGludWU7CisgICAgaWYgKHR5cGVvZiBkaWN0TmFtZSA9PSAib2JqZWN0IikgeworICAgICAg
ZGljdE5hbWUgPSBkaWN0TmFtZVtzdGF0LmtpbmRdOworICAgIH0KKyAgICBhc3NlcnRfZXF1YWxz
KHR5cGVvZiBkaWN0TmFtZSwgInN0cmluZyIsICJUZXN0IGVycm9yLiBTdHJpbmcuIik7CisgICAg
aWYgKGRpY3ROYW1lICYmIG1hbmRhdG9yeVtkaWN0TmFtZV0pIHsKKyAgICAgIGRvIHsKKyAgICAg
ICAgY29uc3QgbWVtYmVyTmFtZXMgPSBtYW5kYXRvcnlbZGljdE5hbWVdOworICAgICAgICBjb25z
dCByZW1haW5pbmdOYW1lcyA9IHJlbWFpbmluZ1tkaWN0TmFtZV07CisgICAgICAgIGFzc2VydF90
cnVlKG1lbWJlck5hbWVzLmxlbmd0aCA+IDAsICJUZXN0IGVycm9yLiBQYXJlbnQgbm90IGZvdW5k
LiIpOworICAgICAgICBmb3IgKGNvbnN0IG1lbWJlck5hbWUgb2YgbWVtYmVyTmFtZXMpIHsKKyAg
ICAgICAgICBpZiAobWVtYmVyTmFtZSBpbiBzdGF0KSB7CisgICAgICAgICAgICBhc3NlcnRfbm90
X2VxdWFscyhzdGF0W21lbWJlck5hbWVdLCB1bmRlZmluZWQsICJOb3QgdW5kZWZpbmVkIik7Cisg
ICAgICAgICAgICByZW1haW5pbmdOYW1lcy5kZWxldGUobWVtYmVyTmFtZSk7CisgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIGRpY3ROYW1lID0gcGFyZW50c1tkaWN0TmFtZV07CisgICAg
ICB9IHdoaWxlIChkaWN0TmFtZSk7CisgICAgfQorICB9CisgIHN1Y2NlZWQoKTsKK30sICdnZXRT
dGF0cyBzdWNjZWVkcycpOworCitmb3IgKGNvbnN0IGRpY3ROYW1lIGluIG1hbmRhdG9yeSkgewor
ICBmb3IgKGNvbnN0IG1lbWJlck5hbWUgb2YgbWFuZGF0b3J5W2RpY3ROYW1lXSkgeworICAgIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAgIGF3YWl0IHN1Y2Nlc3M7CisgICAgICBhc3Nl
cnRfdHJ1ZSghcmVtYWluaW5nW2RpY3ROYW1lXS5oYXMobWVtYmVyTmFtZSksCisgICAgICAgICAg
ICAgICAgICBgSXMgJHttZW1iZXJOYW1lfSBwcmVzZW50YCk7CisgICAgfSwgYCR7ZGljdE5hbWV9
J3MgJHttZW1iZXJOYW1lfWApOworICB9Cit9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tb25kYXRhY2hhbm5lbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRhdGFj
aGFubmVsLWV4cGVjdGVkLnR4dAppbmRleCA4MmEzOWVmMDYzM2NlMzQ2OThjYjdlNDY2MDRmZmU0
NTQ0YTYwMjYwLi5mYzA2NjRkN2E2MDg0MzkyZjJmYmVmOWQ0NmI4N2RkZDQ1N2U5OTU3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1vbmRhdGFjaGFubmVsLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDEwIEBACiAKLVBB
U1MgZGF0YWNoYW5uZWwgZXZlbnQgc2hvdWxkIGZpcmUgd2hlbiBuZXcgZGF0YSBjaGFubmVsIGlz
IGFubm91bmNlZCB0byB0aGUgcmVtb3RlIHBlZXIgCi1GQUlMIERhdGEgY2hhbm5lbCBjcmVhdGVk
IG9uIHJlbW90ZSBwZWVyIHNob3VsZCBtYXRjaCB0aGUgc2FtZSBjb25maWd1cmF0aW9uIGFzIGxv
Y2FsIHBlZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImhpZ2giIGJ1dCBnb3Qg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1QQVNTIERhdGEgY2hhbm5lbCBjcmVhdGVkIHdpdGggbmVn
b3RpYXRlZCBzZXQgdG8gdHJ1ZSBzaG91bGQgbm90IGZpcmUgZGF0YWNoYW5uZWwgZXZlbnQgb24g
cmVtb3RlIHBlZXIgCitGQUlMIERhdGEgY2hhbm5lbCBldmVudCBzaG91bGQgZmlyZSB3aGVuIG5l
dyBkYXRhIGNoYW5uZWwgaXMgYW5ub3VuY2VkIHRvIHRoZSByZW1vdGUgcGVlciBhc3NlcnRfZXF1
YWxzOiBFeHBlY3QgY2hhbm5lbCByZWFkeSBzdGF0ZSB0byBiZSBvcGVuIGV4cGVjdGVkICJvcGVu
IiBidXQgZ290ICJjb25uZWN0aW5nIgorRkFJTCBTaG91bGQgYmUgYWJsZSB0byBzZW5kIGRhdGEg
aW4gYSBkYXRhY2hhbm5lbCBldmVudCBoYW5kbGVyIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxp
ZCBzdGF0ZS4KK1BBU1MgT3BlbiBldmVudCBzaG91bGQgbm90IGJlIHJhaXNlZCB3aGVuIGNsb3Np
bmcgdGhlIGNoYW5uZWwgaW4gdGhlIGRhdGFjaGFubmVsIGV2ZW50IAorUEFTUyBPcGVuIGV2ZW50
IHNob3VsZCBiZSByYWlzZWQgd2hlbiBjbG9zaW5nIHRoZSBjaGFubmVsIGluIHRoZSBkYXRhY2hh
bm5lbCBldmVudCBhZnRlciBlbnF1ZXVpbmcgYSB0YXNrIAorRkFJTCBPcGVuIGV2ZW50IHNob3Vs
ZCBub3QgYmUgcmFpc2VkIHdoZW4gc2VuZGluZyBhbmQgaW1tZWRpYXRlbHkgY2xvc2luZyB0aGUg
Y2hhbm5lbCBpbiB0aGUgZGF0YWNoYW5uZWwgZXZlbnQgVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZh
bGlkIHN0YXRlLgorRkFJTCBJbi1iYW5kIG5lZ290aWF0ZWQgY2hhbm5lbCBjcmVhdGVkIG9uIHJl
bW90ZSBwZWVyIHNob3VsZCBtYXRjaCB0aGUgc2FtZSBjb25maWd1cmF0aW9uIGFzIGxvY2FsIHBl
ZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChudW1iZXIp
IDY1NTM1CitGQUlMIEluLWJhbmQgbmVnb3RpYXRlZCBjaGFubmVsIGNyZWF0ZWQgb24gcmVtb3Rl
IHBlZXIgc2hvdWxkIG1hdGNoIHRoZSBzYW1lIChkZWZhdWx0KSBjb25maWd1cmF0aW9uIGFzIGxv
Y2FsIHBlZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChu
dW1iZXIpIDY1NTM1CitQQVNTIE5lZ290aWF0ZWQgY2hhbm5lbCBzaG91bGQgbm90IGZpcmUgZGF0
YWNoYW5uZWwgZXZlbnQgb24gcmVtb3RlIHBlZXIgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LW9uZGF0YWNoYW5uZWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uZGF0YWNoYW5uZWwuaHRtbAppbmRl
eCAxMDcwZWU3MDFkMjMzNmNmYjE0YzczNzBmOWRiMjVkYWY1OTIyZDdiLi40NmZlOGUwZjUxYjFi
MWE4NTVmMDZkNTRjODE5Nzg0ZDZmNTQyNTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRh
dGFjaGFubmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25kYXRhY2hhbm5lbC5odG1sCkBAIC01
LDE4MCArNSwzNjkgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIC8vIFRlc3QgaXMgYmFz
ZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6Ci0gIC8vIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKLQotICAvLyBUaGUg
Zm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0
aW9uLWhlbHBlci5qczoKLSAgLy8gZXhjaGFuZ2VJY2VDYW5kaWRhdGVzCi0gIC8vIGRvU2lnbmFs
aW5nSGFuZHNoYWtlCi0KLSAgLyoKLSAgICA2LjIuICBSVENEYXRhQ2hhbm5lbAotICAgICAgV2hl
biBhbiB1bmRlcmx5aW5nIGRhdGEgdHJhbnNwb3J0IGlzIHRvIGJlIGFubm91bmNlZAotICAgICAg
ICAyLiAgTGV0IGNoYW5uZWwgYmUgYSBuZXdseSBjcmVhdGVkIFJUQ0RhdGFDaGFubmVsIG9iamVj
dC4KLSAgICAgICAgNS4gIFNldCBjaGFubmVsJ3MgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgdG8gY29u
bmVjdGluZy4KLSAgICAgICAgNi4gIEZpcmUgYSBkYXRhY2hhbm5lbCBldmVudCBuYW1lZCBkYXRh
Y2hhbm5lbCB3aXRoIGNoYW5uZWwgYXQgdGhlCi0gICAgICAgICAgICBSVENQZWVyQ29ubmVjdGlv
biBvYmplY3QuCi0KLSAgICA2LjMuICBSVENEYXRhQ2hhbm5lbEV2ZW50Ci0gICAgICBGaXJpbmcg
YSBkYXRhY2hhbm5lbCBldmVudCBuYW1lZCBlIHdpdGggYSBSVENEYXRhQ2hhbm5lbCBjaGFubmVs
IG1lYW5zCi0gICAgICB0aGF0IGFuIGV2ZW50IHdpdGggdGhlIG5hbWUgZSwgd2hpY2ggZG9lcyBu
b3QgYnViYmxlIChleGNlcHQgd2hlcmUKLSAgICAgIG90aGVyd2lzZSBzdGF0ZWQpIGFuZCBpcyBu
b3QgY2FuY2VsYWJsZSAoZXhjZXB0IHdoZXJlIG90aGVyd2lzZSBzdGF0ZWQpLAotICAgICAgYW5k
IHdoaWNoIHVzZXMgdGhlIFJUQ0RhdGFDaGFubmVsRXZlbnQgaW50ZXJmYWNlIHdpdGggdGhlIGNo
YW5uZWwKLSAgICAgIGF0dHJpYnV0ZSBzZXQgdG8gY2hhbm5lbCwgbXVzdCBiZSBjcmVhdGVkIGFu
ZCBkaXNwYXRjaGVkIGF0IHRoZSBnaXZlbgotICAgICAgdGFyZ2V0LgotCi0gICAgICBpbnRlcmZh
Y2UgUlRDRGF0YUNoYW5uZWxFdmVudCA6IEV2ZW50IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFJUQ0RhdGFDaGFubmVsIGNoYW5uZWw7Ci0gICAgICB9OwotICAgKi8KLSAgYXN5bmNfdGVz
dCh0ID0+IHsKLSAgICBjb25zdCBsb2NhbFBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0g
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBsb2NhbFBjLmNsb3NlKCkpOwotICAgIGNvbnN0IHJlbW90
ZVBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0KLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHJlbW90ZVBjLmNsb3NlKCkpOwotCi0gICAgbGV0IGV2ZW50Q291bnQgPSAwOwotCi0gICAgY29u
c3Qgb25EYXRhQ2hhbm5lbCA9IHQuc3RlcF9mdW5jX2RvbmUoZXZlbnQgPT4gewotICAgICAgZXZl
bnRDb3VudCsrOwotICAgICAgYXNzZXJ0X2VxdWFscyhldmVudENvdW50LCAxLAotICAgICAgICAn
RXhwZWN0IGRhdGEgY2hhbm5lbCBldmVudCB0byBmaXJlIGV4YWN0bHkgb25jZScpOwotCi0gICAg
ICBhc3NlcnRfdHJ1ZShldmVudCBpbnN0YW5jZW9mIFJUQ0RhdGFDaGFubmVsRXZlbnQsCi0gICAg
ICAgICdFeHBlY3QgZXZlbnQgdG8gYmUgaW5zdGFuY2Ugb2YgUlRDRGF0YUNoYW5uZWxFdmVudCcp
OwotCi0gICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LmJ1YmJsZXMsIGZhbHNlKTsKLSAgICAgIGFz
c2VydF9lcXVhbHMoZXZlbnQuY2FuY2VsYWJsZSwgZmFsc2UpOwotCi0gICAgICBjb25zdCB7IGNo
YW5uZWwgfSA9IGV2ZW50OwotICAgICAgYXNzZXJ0X3RydWUoY2hhbm5lbCBpbnN0YW5jZW9mIFJU
Q0RhdGFDaGFubmVsLAotICAgICAgICAnRXhwZWN0IGNoYW5uZWwgdG8gYmUgaW5zdGFuY2Ugb2Yg
UlRDRGF0YUNoYW5uZWwnKTsKLQotICAgICAgY29uc3QgeyByZWFkeVN0YXRlIH0gPSBjaGFubmVs
OwotCi0gICAgICAvLyBUaGUgc3BlYyByZXF1aXJlcyByZWFkeVN0YXRlIHRvIGJlIGNvbm5lY3Rp
bmcgYXQgZmlyc3QsCi0gICAgICAvLyBidXQgaXQgbWF5IHF1aWNrbHkgY2hhbmdlIHRvIG9wZW4g
YmVmb3JlIHRoZSBjYWxsYmFjawotICAgICAgLy8gaXMgaW52b2tlZCwgZXNwZWNpYWxseSB3aXRo
IGxvY2FsIGNvbm5lY3Rpb25zLgotICAgICAgYXNzZXJ0X3RydWUocmVhZHlTdGF0ZSA9PT0gJ2Nv
bm5lY3RpbmcnIHx8IHJlYWR5U3RhdGUgPT09ICdvcGVuJywKLSAgICAgICAgJ0V4cGVjdCBjaGFu
bmVsIHJlYWR5IHN0YXRlIHRvIGJlIGVpdGhlciBjb25uZWN0aW5nIG9yIG9wZW4nKTsKLSAgICB9
KTsKKyd1c2Ugc3RyaWN0JzsKKworLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIHJl
dmlzaW9uOgorLy8gaHR0cHM6Ly9yYXdnaXQuY29tL3czYy93ZWJydGMtcGMvMWNjNWJmYzNmZjE4
NzQxMDMzZDgwNGM0YTcxZjc4OTEyNDJmYjViMy93ZWJydGMuaHRtbAorCisvLyBUaGUgZm9sbG93
aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhl
bHBlci5qczoKKy8vIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcworLy8gZXhjaGFuZ2VPZmZlckFuc3dl
cgorLy8gY3JlYXRlRGF0YUNoYW5uZWxQYWlyCisKKy8qCisgIDYuMi4gIFJUQ0RhdGFDaGFubmVs
CisgICAgV2hlbiBhbiB1bmRlcmx5aW5nIGRhdGEgdHJhbnNwb3J0IGlzIHRvIGJlIGFubm91bmNl
ZCAodGhlIG90aGVyIHBlZXIgY3JlYXRlZCBhIGNoYW5uZWwgd2l0aAorICAgIG5lZ290aWF0ZWQg
dW5zZXQgb3Igc2V0IHRvIGZhbHNlKSwgdGhlIHVzZXIgYWdlbnQgb2YgdGhlIHBlZXIgdGhhdCBk
aWQgbm90IGluaXRpYXRlIHRoZQorICAgIGNyZWF0aW9uIHByb2Nlc3MgTVVTVCBxdWV1ZSBhIHRh
c2sgdG8gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgICAyLiBMZXQgY2hhbm5lbCBiZSBh
IG5ld2x5IGNyZWF0ZWQgUlRDRGF0YUNoYW5uZWwgb2JqZWN0LgorICAgICAgNy4gU2V0IGNoYW5u
ZWwncyBbW1JlYWR5U3RhdGVdXSB0byBvcGVuIChidXQgZG8gbm90IGZpcmUgdGhlIG9wZW4gZXZl
bnQsIHlldCkuCisgICAgICA4LiBGaXJlIGEgZGF0YWNoYW5uZWwgZXZlbnQgbmFtZWQgZGF0YWNo
YW5uZWwgd2l0aCBjaGFubmVsIGF0IHRoZSBSVENQZWVyQ29ubmVjdGlvbiBvYmplY3QuCisKKyAg
Ni4zLiAgUlRDRGF0YUNoYW5uZWxFdmVudAorICAgIEZpcmluZyBhIGRhdGFjaGFubmVsIGV2ZW50
IG5hbWVkIGUgd2l0aCBhbiBSVENEYXRhQ2hhbm5lbCBjaGFubmVsIG1lYW5zIHRoYXQgYW4gZXZl
bnQgd2l0aCB0aGUKKyAgICBuYW1lIGUsIHdoaWNoIGRvZXMgbm90IGJ1YmJsZSAoZXhjZXB0IHdo
ZXJlIG90aGVyd2lzZSBzdGF0ZWQpIGFuZCBpcyBub3QgY2FuY2VsYWJsZSAoZXhjZXB0CisgICAg
d2hlcmUgb3RoZXJ3aXNlIHN0YXRlZCksIGFuZCB3aGljaCB1c2VzIHRoZSBSVENEYXRhQ2hhbm5l
bEV2ZW50IGludGVyZmFjZSB3aXRoIHRoZSBjaGFubmVsCisgICAgYXR0cmlidXRlIHNldCB0byBj
aGFubmVsLCBNVVNUIGJlIGNyZWF0ZWQgYW5kIGRpc3BhdGNoZWQgYXQgdGhlIGdpdmVuIHRhcmdl
dC4KKworICAgIGludGVyZmFjZSBSVENEYXRhQ2hhbm5lbEV2ZW50IDogRXZlbnQgeworICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFJUQ0RhdGFDaGFubmVsIGNoYW5uZWw7CisgICAgfTsKKyAqLwor
cHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHJlc29sdmVyID0gbmV3IFJlc29s
dmVyKCk7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGxldCBl
dmVudENvdW50ID0gMDsKKworICBwYzIub25kYXRhY2hhbm5lbCA9IHQuc3RlcF9mdW5jKChldmVu
dCkgPT4geworICAgIGV2ZW50Q291bnQrKzsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50Q291bnQs
IDEsCisgICAgICAnRXhwZWN0IGRhdGEgY2hhbm5lbCBldmVudCB0byBmaXJlIGV4YWN0bHkgb25j
ZScpOworCisgICAgYXNzZXJ0X3RydWUoZXZlbnQgaW5zdGFuY2VvZiBSVENEYXRhQ2hhbm5lbEV2
ZW50LAorICAgICAgJ0V4cGVjdCBldmVudCB0byBiZSBpbnN0YW5jZSBvZiBSVENEYXRhQ2hhbm5l
bEV2ZW50Jyk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LmJ1YmJsZXMsIGZhbHNlKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGV2ZW50LmNhbmNlbGFibGUsIGZhbHNlKTsKKworICAgIGNvbnN0IGRj
ID0gZXZlbnQuY2hhbm5lbDsKKyAgICBhc3NlcnRfdHJ1ZShkYyBpbnN0YW5jZW9mIFJUQ0RhdGFD
aGFubmVsLAorICAgICAgJ0V4cGVjdCBjaGFubmVsIHRvIGJlIGluc3RhbmNlIG9mIFJUQ0RhdGFD
aGFubmVsJyk7CisKKyAgICAvLyBUaGUgY2hhbm5lbCBzaG91bGQgYmUgaW4gdGhlICdvcGVuJyBz
dGF0ZSBhbHJlYWR5LgorICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJydGMt
cGMvcHVsbC8xODUxCisgICAgYXNzZXJ0X2VxdWFscyhkYy5yZWFkeVN0YXRlLCAnb3BlbicsCisg
ICAgICAnRXhwZWN0IGNoYW5uZWwgcmVhZHkgc3RhdGUgdG8gYmUgb3BlbicpOworCisgICAgcmVz
b2x2ZXIucmVzb2x2ZSgpOworICB9KTsKKworICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2ZpcmUt
bWUhJyk7CisKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisKKyAgYXdhaXQgcmVzb2x2ZXI7Cit9LCAnRGF0
YSBjaGFubmVsIGV2ZW50IHNob3VsZCBmaXJlIHdoZW4gbmV3IGRhdGEgY2hhbm5lbCBpcyBhbm5v
dW5jZWQgdG8gdGhlIHJlbW90ZSBwZWVyJyk7CisKKy8qCisgIFNpbmNlIHRoZSBjaGFubmVsIHNo
b3VsZCBiZSBpbiB0aGUgJ29wZW4nIHN0YXRlIHdoZW4gZGlzcGF0Y2hpbmcgdmlhIHRoZSAnZGF0
YWNoYW5uZWwnIGV2ZW50LAorICB3ZSBzaG91bGQgYmUgYWJsZSB0byBzZW5kIGRhdGEgaW4gdGhl
IGV2ZW50IGhhbmRsZXIuCisgKi8KK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICBjb25z
dCByZXNvbHZlciA9IG5ldyBSZXNvbHZlcigpOworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
Mi5jbG9zZSgpKTsKIAotICAgIGxvY2FsUGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKLQot
ICAgIHJlbW90ZVBjLmFkZEV2ZW50TGlzdGVuZXIoJ2RhdGFjaGFubmVsJywgb25EYXRhQ2hhbm5l
bCk7Ci0gICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKGxvY2FsUGMsIHJlbW90ZVBjKTsKLSAgICBk
b1NpZ25hbGluZ0hhbmRzaGFrZShsb2NhbFBjLCByZW1vdGVQYyk7Ci0gIH0sICdkYXRhY2hhbm5l
bCBldmVudCBzaG91bGQgZmlyZSB3aGVuIG5ldyBkYXRhIGNoYW5uZWwgaXMgYW5ub3VuY2VkIHRv
IHRoZSByZW1vdGUgcGVlcicpOwotCi0gIC8qCi0gICAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKLSAg
ICAgIGludGVyZmFjZSBSVENEYXRhQ2hhbm5lbCA6IEV2ZW50VGFyZ2V0IHsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyAgICAgICAgICAgbGFiZWw7Ci0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgIG9yZGVyZWQ7Ci0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydD8gICAgIG1heFBhY2tldExpZmVUaW1lOwotICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQ/ICAgICBtYXhSZXRyYW5zbWl0
czsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyAgICAgICAgICAgcHJvdG9j
b2w7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgIG5lZ290
aWF0ZWQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydD8gICAgIGlk
OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDUHJpb3JpdHlUeXBlICAgICBwcmlvcml0
eTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0RhdGFDaGFubmVsU3RhdGUgcmVhZHlT
dGF0ZTsKLSAgICAgICAgLi4uCi0gICAgICB9OwotCi0gICAgICBXaGVuIGFuIHVuZGVybHlpbmcg
ZGF0YSB0cmFuc3BvcnQgaXMgdG8gYmUgYW5ub3VuY2VkCi0gICAgICAgIDMuICBMZXQgY29uZmln
dXJhdGlvbiBiZSBhbiBpbmZvcm1hdGlvbiBidW5kbGUgcmVjZWl2ZWQgZnJvbSB0aGUKLSAgICAg
ICAgICAgIG90aGVyIHBlZXIgYXMgYSBwYXJ0IG9mIHRoZSBwcm9jZXNzIHRvIGVzdGFibGlzaCB0
aGUgdW5kZXJseWluZwotICAgICAgICAgICAgZGF0YSB0cmFuc3BvcnQgZGVzY3JpYmVkIGJ5IHRo
ZSBXZWJSVEMgRGF0YUNoYW5uZWwgUHJvdG9jb2wKLSAgICAgICAgICAgIHNwZWNpZmljYXRpb24g
W1JUQ1dFQi1EQVRBLVBST1RPQ09MXS4KLSAgICAgICAgNC4gIEluaXRpYWxpemUgY2hhbm5lbCdz
IGxhYmVsLCBvcmRlcmVkLCBtYXhQYWNrZXRMaWZlVGltZSwKLSAgICAgICAgICAgIG1heFJldHJh
bnNtaXRzLCBwcm90b2NvbCwgbmVnb3RpYXRlZCBhbmQgaWQgYXR0cmlidXRlcyB0byB0aGVpcgot
ICAgICAgICAgICAgY29ycmVzcG9uZGluZyB2YWx1ZXMgaW4gY29uZmlndXJhdGlvbi4KLSAgICov
Ci0gIGFzeW5jX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgbG9jYWxQYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gbG9jYWxQYy5jbG9zZSgpKTsKLSAg
ICBjb25zdCByZW1vdGVQYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotCi0gICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiByZW1vdGVQYy5jbG9zZSgpKTsKLQotICAgIGNvbnN0IG9uRGF0YUNoYW5u
ZWwgPSB0LnN0ZXBfZnVuY19kb25lKGV2ZW50ID0+IHsKLSAgICAgIGNvbnN0IHJlbW90ZUNoYW5u
ZWwgPSBldmVudC5jaGFubmVsOwotICAgICAgYXNzZXJ0X3RydWUocmVtb3RlQ2hhbm5lbCBpbnN0
YW5jZW9mIFJUQ0RhdGFDaGFubmVsLAotICAgICAgICAnRXhwZWN0IGNoYW5uZWwgdG8gYmUgaW5z
dGFuY2Ugb2YgUlRDRGF0YUNoYW5uZWwnKTsKLQotICAgICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVD
aGFubmVsLmxhYmVsLCAndGVzdCcpOwotICAgICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVDaGFubmVs
LmlkLCA4KTsKLSAgICAgIGFzc2VydF9lcXVhbHMocmVtb3RlQ2hhbm5lbC5vcmRlcmVkLCBmYWxz
ZSk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZUNoYW5uZWwubWF4UmV0cmFuc21pdHMsIDEp
OwotICAgICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVDaGFubmVsLnByb3RvY29sLCAnY3VzdG9tJyk7
Ci0gICAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZUNoYW5uZWwucHJpb3JpdHksICdoaWdoJyk7Cisg
IGNvbnN0IG1lc3NhZ2UgPSAnbWVvdyBtZW93ISc7CisKKyAgcGMyLm9uZGF0YWNoYW5uZWwgPSB0
LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsKKyAgICBjb25zdCBkYzIgPSBldmVudC5jaGFubmVsOwor
ICAgIGRjMi5zZW5kKG1lc3NhZ2UpOworICB9KTsKKworICBjb25zdCBkYzEgPSBwYzEuY3JlYXRl
RGF0YUNoYW5uZWwoJ2ZpcmUtbWUhJyk7CisgIGRjMS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYygo
ZXZlbnQpID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEsIG1lc3NhZ2UsCisgICAg
ICAnUmVjZWl2ZWQgZGF0YSBzaG91bGQgYmUgZXF1YWwgdG8gc2VudCBkYXRhJyk7CisKKyAgICBy
ZXNvbHZlci5yZXNvbHZlKCk7CisgIH0pOworCisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEs
IHBjMik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworCisgIGF3YWl0
IHJlc29sdmVyOworfSwgJ1Nob3VsZCBiZSBhYmxlIHRvIHNlbmQgZGF0YSBpbiBhIGRhdGFjaGFu
bmVsIGV2ZW50IGhhbmRsZXInKTsKKworLyoKKyAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKKyAgICBX
aGVuIGFuIHVuZGVybHlpbmcgZGF0YSB0cmFuc3BvcnQgaXMgdG8gYmUgYW5ub3VuY2VkICh0aGUg
b3RoZXIgcGVlciBjcmVhdGVkIGEgY2hhbm5lbCB3aXRoCisgICAgbmVnb3RpYXRlZCB1bnNldCBv
ciBzZXQgdG8gZmFsc2UpLCB0aGUgdXNlciBhZ2VudCBvZiB0aGUgcGVlciB0aGF0IGRpZCBub3Qg
aW5pdGlhdGUgdGhlCisgICAgY3JlYXRpb24gcHJvY2VzcyBNVVNUIHF1ZXVlIGEgdGFzayB0byBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgIDguIEZpcmUgYSBkYXRhY2hhbm5lbCBldmVu
dCBuYW1lZCBkYXRhY2hhbm5lbCB3aXRoIGNoYW5uZWwgYXQgdGhlIFJUQ1BlZXJDb25uZWN0aW9u
IG9iamVjdC4KKyAgICAgIDkuIElmIHRoZSBjaGFubmVsJ3MgW1tSZWFkeVN0YXRlXV0gaXMgc3Rp
bGwgb3BlbiwgYW5ub3VuY2UgdGhlIGRhdGEgY2hhbm5lbCBhcyBvcGVuLgorICovCitwcm9taXNl
X3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTsK
KyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgcGMyLm9uZGF0YWNo
YW5uZWwgPSB0LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsKKyAgICBjb25zdCBkYyA9IGV2ZW50LmNo
YW5uZWw7CisgICAgZGMub25vcGVuID0gdC5zdGVwX2Z1bmMoKCkgPT4geworICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgnT3BlbiBldmVudCBzaG91bGQgbm90IGZpcmUnKTsKICAgICB9KTsKIAotICAg
IGNvbnN0IGxvY2FsQ2hhbm5lbCA9IGxvY2FsUGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnLCB7
Ci0gICAgICBpZDogOCwKLSAgICAgIG9yZGVyZWQ6IGZhbHNlLAotICAgICAgbWF4UmV0cmFuc21p
dHM6IDEsCi0gICAgICBwcm90b2NvbDogJ2N1c3RvbScsCi0gICAgICBwcmlvcml0eTogJ2hpZ2gn
CisgICAgLy8gVGhpcyBzaG91bGQgcHJldmVudCB0cmlnZ2VyaW5nIHRoZSAnb3BlbicgZXZlbnQK
KyAgICBkYy5jbG9zZSgpOworCisgICAgLy8gV2FpdCBhIGJpdCB0byBlbnN1cmUgdGhlICdvcGVu
JyBldmVudCBkb2VzIE5PVCBmaXJlCisgICAgdC5zdGVwX3RpbWVvdXQoKCkgPT4gcmVzb2x2ZXIu
cmVzb2x2ZSgpLCA1MDApOworICB9KTsKKworICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2ZpcmUt
bWUhJyk7CisKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisKKyAgYXdhaXQgcmVzb2x2ZXI7Cit9LCAnT3Bl
biBldmVudCBzaG91bGQgbm90IGJlIHJhaXNlZCB3aGVuIGNsb3NpbmcgdGhlIGNoYW5uZWwgaW4g
dGhlIGRhdGFjaGFubmVsIGV2ZW50Jyk7CisKKy8vIEFkZGVkIHRoaXMgdGVzdCBhcyBhIHJlc3Vs
dCBvZiB0aGUgZGlzY3Vzc2lvbiBpbgorLy8gaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJydGMt
cGMvcHVsbC8xODUxI2Rpc2N1c3Npb25fcjE4NTk3Njc0NworcHJvbWlzZV90ZXN0KGFzeW5jICh0
KSA9PiB7CisgIGNvbnN0IHJlc29sdmVyID0gbmV3IFJlc29sdmVyKCk7CisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMi5vbmRhdGFjaGFubmVsID0gdC5zdGVw
X2Z1bmMoKGV2ZW50KSA9PiB7CisgICAgY29uc3QgZGMgPSBldmVudC5jaGFubmVsOworICAgIGRj
Lm9ub3BlbiA9IHQuc3RlcF9mdW5jKChldmVudCkgPT4geworICAgICAgcmVzb2x2ZXIucmVzb2x2
ZSgpOwogICAgIH0pOwogCi0gICAgYXNzZXJ0X2VxdWFscyhsb2NhbENoYW5uZWwubGFiZWwsICd0
ZXN0Jyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhsb2NhbENoYW5uZWwuaWQsIDgpOwotICAgIGFzc2Vy
dF9lcXVhbHMobG9jYWxDaGFubmVsLm9yZGVyZWQsIGZhbHNlKTsKLSAgICBhc3NlcnRfZXF1YWxz
KGxvY2FsQ2hhbm5lbC5tYXhSZXRyYW5zbWl0cywgMSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhsb2Nh
bENoYW5uZWwucHJvdG9jb2wsICdjdXN0b20nKTsKLSAgICBhc3NlcnRfZXF1YWxzKGxvY2FsQ2hh
bm5lbC5wcmlvcml0eSwgJ2hpZ2gnKTsKLQotICAgIHJlbW90ZVBjLmFkZEV2ZW50TGlzdGVuZXIo
J2RhdGFjaGFubmVsJywgb25EYXRhQ2hhbm5lbCk7Ci0gICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
KGxvY2FsUGMsIHJlbW90ZVBjKTsKLSAgICBkb1NpZ25hbGluZ0hhbmRzaGFrZShsb2NhbFBjLCBy
ZW1vdGVQYyk7Ci0gIH0sICdEYXRhIGNoYW5uZWwgY3JlYXRlZCBvbiByZW1vdGUgcGVlciBzaG91
bGQgbWF0Y2ggdGhlIHNhbWUgY29uZmlndXJhdGlvbiBhcyBsb2NhbCBwZWVyJyk7Ci0KLSAgLyoK
LSAgICA2LjIuICBSVENEYXRhQ2hhbm5lbAotICAgICAgRGljdGlvbmFyeSBSVENEYXRhQ2hhbm5l
bEluaXQgTWVtYmVycwotICAgICAgICBuZWdvdGlhdGVkCi0gICAgICAgICAgVGhlIGRlZmF1bHQg
dmFsdWUgb2YgZmFsc2UgdGVsbHMgdGhlIHVzZXIgYWdlbnQgdG8gYW5ub3VuY2UgdGhlCi0gICAg
ICAgICAgY2hhbm5lbCBpbi1iYW5kIGFuZCBpbnN0cnVjdCB0aGUgb3RoZXIgcGVlciB0byBkaXNw
YXRjaCBhIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgICBSVENEYXRhQ2hhbm5lbCBvYmplY3QuIElm
IHNldCB0byB0cnVlLCBpdCBpcyB1cCB0byB0aGUgYXBwbGljYXRpb24KLSAgICAgICAgICB0byBu
ZWdvdGlhdGUgdGhlIGNoYW5uZWwgYW5kIGNyZWF0ZSBhIFJUQ0RhdGFDaGFubmVsIG9iamVjdCB3
aXRoIHRoZQotICAgICAgICAgIHNhbWUgaWQgYXQgdGhlIG90aGVyIHBlZXIuCi0gICAqLwotICBh
c3luY190ZXN0KHQgPT4gewotICAgIGNvbnN0IGxvY2FsUGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGxvY2FsUGMuY2xvc2UoKSk7Ci0gICAgY29u
c3QgcmVtb3RlUGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLQotICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcmVtb3RlUGMuY2xvc2UoKSk7Ci0KLSAgICBjb25zdCBvbkRhdGFDaGFubmVsID0g
dC51bnJlYWNoZWRfZnVuYygnZGF0YWNoYW5uZWwgZXZlbnQgc2hvdWxkIG5vdCBiZSBmaXJlZCcp
OwotCi0gICAgbG9jYWxQYy5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcsIHsKLSAgICAgIG5lZ290
aWF0ZWQ6IHRydWUKKyAgICAvLyBUaGlzIHNob3VsZCBOT1QgcHJldmVudCB0cmlnZ2VyaW5nIHRo
ZSAnb3BlbicgZXZlbnQgc2luY2UgaXQgZW5xdWV1ZXMgYXQgbGVhc3QgdHdvIHRhc2tzCisgICAg
dC5zdGVwX3RpbWVvdXQoKCkgPT4geworICAgICAgdC5zdGVwX3RpbWVvdXQoKCkgPT4geworICAg
ICAgICBkYy5jbG9zZSgpCisgICAgICB9LCAxKTsKKyAgICB9LCAxKTsKKyAgfSk7CisKKyAgcGMx
LmNyZWF0ZURhdGFDaGFubmVsKCdmaXJlLW1lIScpOworCisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRl
cyhwYzEsIHBjMik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworCisg
IGF3YWl0IHJlc29sdmVyOworfSwgJ09wZW4gZXZlbnQgc2hvdWxkIGJlIHJhaXNlZCB3aGVuIGNs
b3NpbmcgdGhlIGNoYW5uZWwgaW4gdGhlIGRhdGFjaGFubmVsIGV2ZW50IGFmdGVyICcgKworICAn
ZW5xdWV1aW5nIGEgdGFzaycpOworCisKKy8qCisgIENvbWJpbmF0aW9uIG9mIHRoZSB0d28gdGVz
dHMgYWJvdmUgKHNlbmQgYW5kIGNsb3NlKS4KKyAqLworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9
PiB7CisgIGNvbnN0IHJlc29sdmVyID0gbmV3IFJlc29sdmVyKCk7CisgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNvbnN0IG1lc3NhZ2UgPSAnbWVvdyBtZW93ISc7
CisKKyAgcGMyLm9uZGF0YWNoYW5uZWwgPSB0LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsKKyAgICBj
b25zdCBkYzIgPSBldmVudC5jaGFubmVsOworICAgIGRjMi5vbm9wZW4gPSB0LnN0ZXBfZnVuYygo
KSA9PiB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdPcGVuIGV2ZW50IHNob3VsZCBub3QgZmly
ZScpOwogICAgIH0pOwogCi0gICAgcmVtb3RlUGMuYWRkRXZlbnRMaXN0ZW5lcignZGF0YWNoYW5u
ZWwnLCBvbkRhdGFDaGFubmVsKTsKLSAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMobG9jYWxQYywg
cmVtb3RlUGMpOwotICAgIGRvU2lnbmFsaW5nSGFuZHNoYWtlKGxvY2FsUGMsIHJlbW90ZVBjKTsK
LQotICAgIHQuc3RlcF90aW1lb3V0KHQuc3RlcF9mdW5jX2RvbmUoKSwgMjAwKTsKLSAgfSwgJ0Rh
dGEgY2hhbm5lbCBjcmVhdGVkIHdpdGggbmVnb3RpYXRlZCBzZXQgdG8gdHJ1ZSBzaG91bGQgbm90
IGZpcmUgZGF0YWNoYW5uZWwgZXZlbnQgb24gcmVtb3RlIHBlZXInKTsKLQotICAvKgotICAgIE5v
bi10ZXN0YWJsZQotICAgIDYuMi4gIFJUQ0RhdGFDaGFubmVsCi0gICAgICBXaGVuIGFuIHVuZGVy
bHlpbmcgZGF0YSB0cmFuc3BvcnQgaXMgdG8gYmUgYW5ub3VuY2VkCi0gICAgICAgIDEuICBJZiB0
aGUgYXNzb2NpYXRlZCBSVENQZWVyQ29ubmVjdGlvbiBvYmplY3QncyBbW2lzQ2xvc2VkXV0gc2xv
dAotICAgICAgICAgICAgaXMgdHJ1ZSwgYWJvcnQgdGhlc2Ugc3RlcHMuCi0KLSAgICBUaGUgYWJv
dmUgc3RlcCBpcyBub3QgdGVzdGFibGUgYmVjYXVzZSB0byByZWFjaCBpdCB3ZSB3b3VsZCBoYXZl
IHRvCi0gICAgY2xvc2UgdGhlIHBlZXIgY29ubmVjdGlvbiBhZnRlciB0aGUgcmVtb3RlIHBlZXIg
Y2FsbAotICAgIHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSBidXQgYmVmb3JlIHRoZSB1bmRl
cmx5aW5nIGRhdGEgdHJhbnNwb3J0Ci0gICAgaXMgY29ubmVjdGVkLiBUaGlzIHJlcXVpcmUgdGhl
IHByb21pc2UgY2FsbGJhY2sgZm9yIHNldExvY2FsRGVzY3JpcHRpb24oKQotICAgIHRvIGJlIGNh
bGxlZCBhdCB0aGUgcmlnaHQgbW9tZW50LCB3aGljaCBpcyBub3QgYWx3YXlzIHBvc3NpYmxlLgot
ICAgKi8KKyAgICAvLyBUaGlzIHNob3VsZCBzZW5kIGJ1dCBzdGlsbCBwcmV2ZW50IHRyaWdnZXJp
bmcgdGhlICdvcGVuJyBldmVudAorICAgIGRjMi5zZW5kKG1lc3NhZ2UpOworICAgIGRjMi5jbG9z
ZSgpOworICB9KTsKKworICBjb25zdCBkYzEgPSBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2ZpcmUt
bWUhJyk7CisgIGRjMS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsKKyAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEsIG1lc3NhZ2UsCisgICAgICAnUmVjZWl2ZWQgZGF0YSBz
aG91bGQgYmUgZXF1YWwgdG8gc2VudCBkYXRhJyk7CisKKyAgICByZXNvbHZlci5yZXNvbHZlKCk7
CisgIH0pOworCisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IGV4
Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworCisgIGF3YWl0IHJlc29sdmVyOworfSwgJ09w
ZW4gZXZlbnQgc2hvdWxkIG5vdCBiZSByYWlzZWQgd2hlbiBzZW5kaW5nIGFuZCBpbW1lZGlhdGVs
eSBjbG9zaW5nIHRoZSBjaGFubmVsIGluIHRoZSAnICsKKyAgJ2RhdGFjaGFubmVsIGV2ZW50Jyk7
CisKKy8qCisgIDYuMi4gIFJUQ0RhdGFDaGFubmVsCisKKyAgICBpbnRlcmZhY2UgUlRDRGF0YUNo
YW5uZWwgOiBFdmVudFRhcmdldCB7CisgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5n
ICAgICAgICAgICBsYWJlbDsKKyAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAg
ICAgICAgIG9yZGVyZWQ7CisgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQ/
ICAgICBtYXhQYWNrZXRMaWZlVGltZTsKKyAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBzaG9ydD8gICAgIG1heFJldHJhbnNtaXRzOworICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVT
VlN0cmluZyAgICAgICAgICAgcHJvdG9jb2w7CisgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiAgICAgICAgICAgICBuZWdvdGlhdGVkOworICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIHNob3J0PyAgICAgaWQ7CisgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRGF0YUNo
YW5uZWxTdGF0ZSByZWFkeVN0YXRlOworICAgICAgLi4uCisgICAgfTsKKworICAgIFdoZW4gYW4g
dW5kZXJseWluZyBkYXRhIHRyYW5zcG9ydCBpcyB0byBiZSBhbm5vdW5jZWQgKHRoZSBvdGhlciBw
ZWVyIGNyZWF0ZWQgYSBjaGFubmVsIHdpdGgKKyAgICBuZWdvdGlhdGVkIHVuc2V0IG9yIHNldCB0
byBmYWxzZSksIHRoZSB1c2VyIGFnZW50IG9mIHRoZSBwZWVyIHRoYXQgZGlkIG5vdCBpbml0aWF0
ZSB0aGUKKyAgICBjcmVhdGlvbiBwcm9jZXNzIE1VU1QgcXVldWUgYSB0YXNrIHRvIHJ1biB0aGUg
Zm9sbG93aW5nIHN0ZXBzOgorICAgICAgMi4gTGV0IGNoYW5uZWwgYmUgYSBuZXdseSBjcmVhdGVk
IFJUQ0RhdGFDaGFubmVsIG9iamVjdC4KKyAgICAgIDMuIExldCBjb25maWd1cmF0aW9uIGJlIGFu
IGluZm9ybWF0aW9uIGJ1bmRsZSByZWNlaXZlZCBmcm9tIHRoZSBvdGhlciBwZWVyIGFzIGEgcGFy
dCBvZiB0aGUKKyAgICAgICAgIHByb2Nlc3MgdG8gZXN0YWJsaXNoIHRoZSB1bmRlcmx5aW5nIGRh
dGEgdHJhbnNwb3J0IGRlc2NyaWJlZCBieSB0aGUgV2ViUlRDIERhdGFDaGFubmVsCisgICAgICAg
ICBQcm90b2NvbCBzcGVjaWZpY2F0aW9uIFtSVENXRUItREFUQS1QUk9UT0NPTF0uCisgICAgICA0
LiBJbml0aWFsaXplIGNoYW5uZWwncyBbW0RhdGFDaGFubmVsTGFiZWxdXSwgW1tPcmRlcmVkXV0s
IFtbTWF4UGFja2V0TGlmZVRpbWVdXSwKKyAgICAgICAgIFtbTWF4UmV0cmFuc21pdHNdXSwgW1tE
YXRhQ2hhbm5lbFByb3RvY29sXV0sIGFuZCBbW0RhdGFDaGFubmVsSWRdXSBpbnRlcm5hbCBzbG90
cyB0byB0aGUKKyAgICAgICAgIGNvcnJlc3BvbmRpbmcgdmFsdWVzIGluIGNvbmZpZ3VyYXRpb24u
CisgICAgICA1LiBJbml0aWFsaXplIGNoYW5uZWwncyBbW05lZ290aWF0ZWRdXSBpbnRlcm5hbCBz
bG90IHRvIGZhbHNlLgorICAgICAgNy4gU2V0IGNoYW5uZWwncyBbW1JlYWR5U3RhdGVdXSBzbG90
IHRvIGNvbm5lY3RpbmcuCisgICAgICA4LiBGaXJlIGEgZGF0YWNoYW5uZWwgZXZlbnQgbmFtZWQg
ZGF0YWNoYW5uZWwgd2l0aCBjaGFubmVsIGF0IHRoZSBSVENQZWVyQ29ubmVjdGlvbiBvYmplY3Qu
CisKKyAgICBOb3RlOiBNb3JlIGV4aGF1c3RpdmUgdGVzdHMgYXJlIGRlZmluZWQgaW4gUlRDRGF0
YUNoYW5uZWwtZGNlcAorICovCisKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICBjb25z
dCByZXNvbHZlciA9IG5ldyBSZXNvbHZlcigpOworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
Mi5jbG9zZSgpKTsKKworICBjb25zdCBkYzEgPSBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3Qn
LCB7CisgICAgb3JkZXJlZDogZmFsc2UsCisgICAgbWF4UmV0cmFuc21pdHM6IDEsCisgICAgcHJv
dG9jb2w6ICdjdXN0b20nLAorICB9KTsKKworICBhc3NlcnRfZXF1YWxzKGRjMS5sYWJlbCwgJ3Rl
c3QnKTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEub3JkZXJlZCwgZmFsc2UpOworICBhc3NlcnRfZXF1
YWxzKGRjMS5tYXhQYWNrZXRMaWZlVGltZSwgbnVsbCk7CisgIGFzc2VydF9lcXVhbHMoZGMxLm1h
eFJldHJhbnNtaXRzLCAxKTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEucHJvdG9jb2wsICdjdXN0b20n
KTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEubmVnb3RpYXRlZCwgZmFsc2UpOworCisgIHBjMi5vbmRh
dGFjaGFubmVsID0gdC5zdGVwX2Z1bmMoKGV2ZW50KSA9PiB7CisgICAgY29uc3QgZGMyID0gZXZl
bnQuY2hhbm5lbDsKKyAgICBhc3NlcnRfdHJ1ZShkYzIgaW5zdGFuY2VvZiBSVENEYXRhQ2hhbm5l
bCwKKyAgICAgICdFeHBlY3QgY2hhbm5lbCB0byBiZSBpbnN0YW5jZSBvZiBSVENEYXRhQ2hhbm5l
bCcpOworCisgICAgYXNzZXJ0X2VxdWFscyhkYzIubGFiZWwsICd0ZXN0Jyk7CisgICAgYXNzZXJ0
X2VxdWFscyhkYzIub3JkZXJlZCwgZmFsc2UpOworICAgIGFzc2VydF9lcXVhbHMoZGMyLm1heFBh
Y2tldExpZmVUaW1lLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMi5tYXhSZXRyYW5zbWl0
cywgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhkYzIucHJvdG9jb2wsICdjdXN0b20nKTsKKyAgICBh
c3NlcnRfZXF1YWxzKGRjMi5uZWdvdGlhdGVkLCBmYWxzZSk7CisgICAgYXNzZXJ0X2VxdWFscyhk
YzIuaWQsIGRjMS5pZCk7CisKKyAgICByZXNvbHZlci5yZXNvbHZlKCk7CisgIH0pOworCisgIGV4
Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXIocGMxLCBwYzIpOworCisgIGF3YWl0IHJlc29sdmVyOworfSwgJ0luLWJhbmQgbmVnb3RpYXRl
ZCBjaGFubmVsIGNyZWF0ZWQgb24gcmVtb3RlIHBlZXIgc2hvdWxkIG1hdGNoIHRoZSBzYW1lIGNv
bmZpZ3VyYXRpb24gYXMgbG9jYWwgJyArCisgICdwZWVyJyk7CisKK3Byb21pc2VfdGVzdChhc3lu
YyAodCkgPT4geworICBjb25zdCByZXNvbHZlciA9IG5ldyBSZXNvbHZlcigpOworICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBjb25zdCBkYzEgPSBwYzEuY3JlYXRl
RGF0YUNoYW5uZWwoJycpOworCisgIGFzc2VydF9lcXVhbHMoZGMxLmxhYmVsLCAnJyk7CisgIGFz
c2VydF9lcXVhbHMoZGMxLm9yZGVyZWQsIHRydWUpOworICBhc3NlcnRfZXF1YWxzKGRjMS5tYXhQ
YWNrZXRMaWZlVGltZSwgbnVsbCk7CisgIGFzc2VydF9lcXVhbHMoZGMxLm1heFJldHJhbnNtaXRz
LCBudWxsKTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEucHJvdG9jb2wsICcnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhkYzEubmVnb3RpYXRlZCwgZmFsc2UpOworCisgIHBjMi5vbmRhdGFjaGFubmVsID0gdC5z
dGVwX2Z1bmMoKGV2ZW50KSA9PiB7CisgICAgY29uc3QgZGMyID0gZXZlbnQuY2hhbm5lbDsKKyAg
ICBhc3NlcnRfdHJ1ZShkYzIgaW5zdGFuY2VvZiBSVENEYXRhQ2hhbm5lbCwKKyAgICAgICdFeHBl
Y3QgY2hhbm5lbCB0byBiZSBpbnN0YW5jZSBvZiBSVENEYXRhQ2hhbm5lbCcpOworCisgICAgYXNz
ZXJ0X2VxdWFscyhkYzIubGFiZWwsICcnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMi5vcmRlcmVk
LCB0cnVlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMi5tYXhQYWNrZXRMaWZlVGltZSwgbnVsbCk7
CisgICAgYXNzZXJ0X2VxdWFscyhkYzIubWF4UmV0cmFuc21pdHMsIG51bGwpOworICAgIGFzc2Vy
dF9lcXVhbHMoZGMyLnByb3RvY29sLCAnJyk7CisgICAgYXNzZXJ0X2VxdWFscyhkYzIubmVnb3Rp
YXRlZCwgZmFsc2UpOworICAgIGFzc2VydF9lcXVhbHMoZGMyLmlkLCBkYzEuaWQpOworCisgICAg
cmVzb2x2ZXIucmVzb2x2ZSgpOworICB9KTsKKworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMx
LCBwYzIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKworICBhd2Fp
dCByZXNvbHZlcjsKK30sICdJbi1iYW5kIG5lZ290aWF0ZWQgY2hhbm5lbCBjcmVhdGVkIG9uIHJl
bW90ZSBwZWVyIHNob3VsZCBtYXRjaCB0aGUgc2FtZSAoZGVmYXVsdCkgJyArCisgICdjb25maWd1
cmF0aW9uIGFzIGxvY2FsIHBlZXInKTsKKworLyoKKyAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKKyAg
ICBEaWN0aW9uYXJ5IFJUQ0RhdGFDaGFubmVsSW5pdCBNZW1iZXJzCisgICAgICBuZWdvdGlhdGVk
CisgICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIGZhbHNlIHRlbGxzIHRoZSB1c2VyIGFnZW50
IHRvIGFubm91bmNlIHRoZQorICAgICAgICBjaGFubmVsIGluLWJhbmQgYW5kIGluc3RydWN0IHRo
ZSBvdGhlciBwZWVyIHRvIGRpc3BhdGNoIGEgY29ycmVzcG9uZGluZworICAgICAgICBSVENEYXRh
Q2hhbm5lbCBvYmplY3QuIElmIHNldCB0byB0cnVlLCBpdCBpcyB1cCB0byB0aGUgYXBwbGljYXRp
b24KKyAgICAgICAgdG8gbmVnb3RpYXRlIHRoZSBjaGFubmVsIGFuZCBjcmVhdGUgYSBSVENEYXRh
Q2hhbm5lbCBvYmplY3Qgd2l0aCB0aGUKKyAgICAgICAgc2FtZSBpZCBhdCB0aGUgb3RoZXIgcGVl
ci4KKyAqLworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHJlc29sdmVyID0g
bmV3IFJlc29sdmVyKCk7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
CisgIHBjMi5vbmRhdGFjaGFubmVsID0gdC51bnJlYWNoZWRfZnVuYygnZGF0YWNoYW5uZWwgZXZl
bnQgc2hvdWxkIG5vdCBiZSBmaXJlZCcpOworCisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVz
dCcsIHsKKyAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAgIGlkOiA0MgorICB9KTsKKworICBleGNo
YW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2Vy
KHBjMSwgcGMyKTsKKworICAvLyBXYWl0IGEgYml0IHRvIGVuc3VyZSB0aGUgJ2RhdGFjaGFubmVs
JyBldmVudCBkb2VzIE5PVCBmaXJlCisgIHQuc3RlcF90aW1lb3V0KCgpID0+IHJlc29sdmVyLnJl
c29sdmUoKSwgNTAwKTsKKyAgYXdhaXQgcmVzb2x2ZXI7Cit9LCAnTmVnb3RpYXRlZCBjaGFubmVs
IHNob3VsZCBub3QgZmlyZSBkYXRhY2hhbm5lbCBldmVudCBvbiByZW1vdGUgcGVlcicpOworCisv
KgorICBOb24tdGVzdGFibGUKKyAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKKyAgICBXaGVuIGFuIHVu
ZGVybHlpbmcgZGF0YSB0cmFuc3BvcnQgaXMgdG8gYmUgYW5ub3VuY2VkCisgICAgICAxLiAgSWYg
dGhlIGFzc29jaWF0ZWQgUlRDUGVlckNvbm5lY3Rpb24gb2JqZWN0J3MgW1tpc0Nsb3NlZF1dIHNs
b3QKKyAgICAgICAgICBpcyB0cnVlLCBhYm9ydCB0aGVzZSBzdGVwcy4KKworICBUaGUgYWJvdmUg
c3RlcCBpcyBub3QgdGVzdGFibGUgYmVjYXVzZSB0byByZWFjaCBpdCB3ZSB3b3VsZCBoYXZlIHRv
CisgIGNsb3NlIHRoZSBwZWVyIGNvbm5lY3Rpb24ganVzdCBiZXR3ZWVuIHJlY2VpdmluZyB0aGUg
aW4tYmFuZCBuZWdvdGlhdGVkIGRhdGEKKyAgY2hhbm5lbCB2aWEgRENFUCBhbmQgZmlyaW5nIHRo
ZSBkYXRhY2hhbm5lbCBldmVudC4KKyAqLwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1vbmljZWNhbmRpZGF0ZWVycm9yLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LW9uaWNlY2FuZGlkYXRlZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkYTIy
M2FjNmM5NDM4OTZkYjAzOTE1MDNjNWUxY2M4YjcxN2JjMTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1vbmljZWNhbmRpZGF0ZWVycm9yLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJ
TUVPVVQgU3VyZmFjaW5nIG9uaWNlY2FuZGlkYXRlZXJyb3IgVGVzdCB0aW1lZCBvdXQKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tb25pY2VjYW5kaWRhdGVlcnJvci5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tb25pY2VjYW5kaWRhdGVlcnJvci5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5NmNj
OWRkMWExNWIwZTM1Y2ZhZTUwYzdiYjg3MmI4NzY2NzJhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1vbmljZWNhbmRpZGF0ZWVycm9yLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwzOCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJD
b25uZWN0aW9uLnByb3RvdHlwZS5vbmljZWNhbmRpZGF0ZWVycm9yPC90aXRsZT4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJS
VENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBjb25maWcgPSB7CisgICAgaWNlU2VydmVyczog
W3t1cmxzOiAidHVybjoxMjMiLCB1c2VybmFtZTogIjEyMyIsIGNyZWRlbnRpYWw6ICIxMjMifV0K
KyAgfTsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qgb25FcnJvclByb21pc2UgPSBh
ZGRFdmVudExpc3RlbmVyUHJvbWlzZSh0LCBwYywgJ2ljZWNhbmRpZGF0ZWVycm9yJywgZXZlbnQg
PT4geworICAgICBhc3NlcnRfdHJ1ZShldmVudCBpbnN0YW5jZW9mIFJUQ1BlZXJDb25uZWN0aW9u
SWNlRXJyb3JFdmVudCwKKyAgICAgICdFeHBlY3QgZXZlbnQgdG8gYmUgaW5zdGFuY2Ugb2YgUlRD
UGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50Jyk7CisgICAgLy8gRG8gbm90IGhhcmRjb2RlIGFu
eSBzcGVjaWZpYyBlcnJvcnMgaGVyZS4gSW5zdGVhZCBvbmx5IHZlcmlmeQorICAgIC8vIHRoYXQg
YWxsIHRoZSBmaWVsZHMgY29udGFpbiBzb21ldGhpbmcgZXhwZWN0ZWQuCisgICAgLy8gVGVzdGlu
ZyBvZiBldmVudC5lcnJvclRleHQgY2FuIGJlIGFkZGVkIGxhdGVyIG9uY2UgaXQncyBjb250ZW50
IGlzCisgICAgLy8gc3BlY2lmaWVkIGluIHNwZWMgd2l0aCBtb3JlIGRldGFpbC4KKyAgICBhc3Nl
cnRfdHJ1ZShldmVudC5lcnJvckNvZGUgPj0gMzAwICYmIGV2ZW50LmVycm9yQ29kZSA8PSA3OTks
ICJlcnJvckNvZGUiKTsKKyAgICBpZiAoZXZlbnQucG9ydCA9PSAwKSB7CisgICAgICBhc3NlcnRf
ZXF1YWxzKGV2ZW50LmFkZHJlc3MsIG51bGwpOworICAgIH0gZWxzZSB7CisgICAgICBhc3NlcnRf
dHJ1ZShldmVudC5hZGRyZXNzLmluY2x1ZGVzKCIuIikgfHwgZXZlbnQuYWRkcmVzcy5pbmNsdWRl
cygiOiIpKTsKKyAgICB9CisgICAgYXNzZXJ0X3RydWUoZXZlbnQudXJsLmluY2x1ZGVzKCIxMjMi
KSwgInVybCIpOworICB9KTsKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0o
e2F1ZGlvOnRydWV9KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCku
Zm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgcGMuYWRkVHJhY2soc3RyZWFtLmdl
dEF1ZGlvVHJhY2tzKClbMF0sIHN0cmVhbSk7CisKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlw
dGlvbihhd2FpdCBwYy5jcmVhdGVPZmZlcigpKTsKKyAgYXdhaXQgb25FcnJvclByb21pc2U7Cit9
LCAnU3VyZmFjaW5nIG9uaWNlY2FuZGlkYXRlZXJyb3InKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKaW5kZXggZjdiZjhiZDNlM2JkYzI0YzYzYTkyZGEyMmVh
YWU3N2I5NWYwZDRmZC4uMmVkYTdiNWIzNDFjYTk2NWRjYTk3MGNkZmE1YzczYjJmNTdlMzE4OSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbApAQCAtMTEsNiArMTEsNyBAQAogICAv
LyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0
Yy5odG1sCiAKICAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQg
ZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6CisgIC8vICAgZ2VuZXJhdGVPZmZlcgog
ICAvLyAgIGdlbmVyYXRlQW5zd2VyCiAgIC8vICAgZ2VuZXJhdGVBdWRpb1JlY2VpdmVPbmx5T2Zm
ZXIKICAgLy8gICB0ZXN0X25ldmVyX3Jlc29sdmUKQEAgLTE5MywxNiArMTk0LDIxOSBAQAogICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAKICAgICBwYy5hZGRUcmFuc2NlaXZl
cignYXVkaW8nKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9ubmVnb3Rp
YXRpb25uZWVkZWQgPSByZXNvbHZlKTsKKwogICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3Jl
YXRlT2ZmZXIoKTsKICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKICAg
ICBsZXQgZmlyZWQgPSBmYWxzZTsKICAgICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gZSA9PiBm
aXJlZCA9IHRydWU7CiAgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKyAgICBhd2Fp
dCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBnZW5lcmF0ZUFuc3dlcihvZmZlcikpOwor
ICAgIGF3YWl0IHVuZGVmaW5lZDsKKyAgICBhc3NlcnRfZmFsc2UoZmlyZWQsICJuZWdvdGlhdGlv
bm5lZWRlZCBzaG91bGQgbm90IGZpcmUgdW50aWwgdGhlIG5leHQgaXRlcmF0aW9uIG9mIHRoZSBl
dmVudCBsb29wIGFmdGVyIFNSRCBzdWNjZXNzIik7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcmVzb2x2ZSk7CisgIH0sICduZWdvdGlh
dGlvbm5lZWRlZCBldmVudCBzaG91bGQgZmlyZSBvbmx5IGFmdGVyIHNpZ25hbGluZyBzdGF0ZSBn
b2VzIGJhY2sgdG8gc3RhYmxlIGFmdGVyIHNldFJlbW90ZURlc2NyaXB0aW9uJyk7CisKKyAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIHBjLmFk
ZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
cGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHJlc29sdmUpOworCisgICAgbGV0IGZpcmVkID0gZmFs
c2U7CisgICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IGUgPT4gZmlyZWQgPSB0cnVlOworICAg
IGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IGdlbmVyYXRlT2ZmZXIoKSk7Cisg
ICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERl
c2NyaXB0aW9uKGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpKTsKKyAgICBhd2FpdCB1bmRlZmluZWQ7
CisgICAgYXNzZXJ0X2ZhbHNlKGZpcmVkLCAibmVnb3RpYXRpb25uZWVkZWQgc2hvdWxkIG5vdCBm
aXJlIHVudGlsIHRoZSBuZXh0IGl0ZXJhdGlvbiBvZiB0aGUgZXZlbnQgbG9vcCBhZnRlciBTTEQg
c3VjY2VzcyIpOworCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290
aWF0aW9ubmVlZGVkID0gcmVzb2x2ZSk7CisgIH0sICduZWdvdGlhdGlvbm5lZWRlZCBldmVudCBz
aG91bGQgZmlyZSBvbmx5IGFmdGVyIHNpZ25hbGluZyBzdGF0ZSBnb2VzIGJhY2sgdG8gc3RhYmxl
IGFmdGVyIHNldExvY2FsRGVzY3JpcHRpb24nKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBwYy5hZGRUcmFuc2NlaXZlcignYXVk
aW8nKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSByZXNvbHZlKTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2Zm
ZXIoKTsKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBsZXQg
ZmlyZWQgPSBmYWxzZTsKKyAgICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gZSA9PiBmaXJlZCA9
IHRydWU7CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKyAgICBjb25zdCBwID0g
cGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgZ2VuZXJhdGVBbnN3ZXIob2ZmZXIpKTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2Ug
PSByZXNvbHZlKTsKKyAgICBhc3NlcnRfZmFsc2UoZmlyZWQsICJuZWdvdGlhdGlvbm5lZWRlZCBz
aG91bGQgbm90IGZpcmUgYmVmb3JlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGZpcmVzIik7CisgICAg
YXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcmVz
b2x2ZSk7CisgICAgYXdhaXQgcDsKKyAgfSwgJ25lZ290aWF0aW9ubmVlZGVkIGV2ZW50IHNob3Vs
ZCBmaXJlIG9ubHkgYWZ0ZXIgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQgZmlyZXMgZnJvbSBz
ZXRSZW1vdGVEZXNjcmlwdGlvbicpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBy
ZXNvbHZlKTsKKworICAgIGxldCBmaXJlZCA9IGZhbHNlOworICAgIHBjLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSBlID0+IGZpcmVkID0gdHJ1ZTsKKyAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlw
dGlvbihhd2FpdCBnZW5lcmF0ZU9mZmVyKCkpOworICAgIHBjLmNyZWF0ZURhdGFDaGFubmVsKCd0
ZXN0Jyk7CisKKyAgICBjb25zdCBwID0gcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYy5j
cmVhdGVBbnN3ZXIoKSk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbnNp
Z25hbGluZ3N0YXRlY2hhbmdlID0gcmVzb2x2ZSk7CisgICAgYXNzZXJ0X2ZhbHNlKGZpcmVkLCAi
bmVnb3RpYXRpb25uZWVkZWQgc2hvdWxkIG5vdCBmaXJlIHVudGlsIHRoZSBuZXh0IGl0ZXJhdGlv
biBvZiB0aGUgZXZlbnQgbG9vcCBhZnRlciByZXR1cm5pbmcgdG8gc3RhYmxlIik7CisgICAgYXdh
aXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcmVzb2x2
ZSk7CisgICAgYXdhaXQgcDsKKyAgfSwgJ25lZ290aWF0aW9ubmVlZGVkIGV2ZW50IHNob3VsZCBm
aXJlIG9ubHkgYWZ0ZXIgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQgZmlyZXMgZnJvbSBzZXRM
b2NhbERlc2NyaXB0aW9uJyk7CisKKyAgLyoKKyAgICA1LjEuICBSVENQZWVyQ29ubmVjdGlvbiBJ
bnRlcmZhY2UgRXh0ZW5zaW9ucworCisgICAgICBhZGRUcmFjaworICAgICAgICAxMC4gVXBkYXRl
IHRoZSBuZWdvdGlhdGlvbi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KKyAgKi8KKyAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGNvbnN0
IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHsgYXVkaW86IHRydWUgfSk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFj
ay5zdG9wKCkpKTsKKyAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOworICAg
IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcmVzb2x2ZSk7CisgIH0sICdhZGRUcmFj
ayBzaG91bGQgY2F1c2UgbmVnb3RpYXRpb25uZWVkZWQgdG8gZmlyZScpOworCisgIC8qCisgICAg
NS4xLiAgUlRDUGVlckNvbm5lY3Rpb24gSW50ZXJmYWNlIEV4dGVuc2lvbnMKKworICAgICAgcmVt
b3ZlVHJhY2sKKyAgICAgICAgMTIuIFVwZGF0ZSB0aGUgbmVnb3RpYXRpb24tbmVlZGVkIGZsYWcg
Zm9yIGNvbm5lY3Rpb24uCisgICovCisgIGFzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29u
c3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0o
eyBhdWRpbzogdHJ1ZSB9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFj
a3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIGNvbnN0IFt0cmFja10g
PSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgY29uc3Qgc2VuZGVyID0gcGMuYWRkVHJhY2sodHJh
Y2ssIHN0cmVhbSk7CisgICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHQuc3RlcF9mdW5jKGFz
eW5jICgpID0+IHsKKyAgICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSB0LnN0ZXBfZnVuYyhh
c3luYyAoKSA9PiB7CisgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ29ubmVnb3RpYXRpb25uZWVk
ZWQgbWlzZmlyZWQnKTsKKyAgICAgIH0pOworICAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5j
cmVhdGVPZmZlcigpOworICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7
CisKKyAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGdlbmVyYXRlQW5zd2VyKG9mZmVyKTsKKyAg
ICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgICAgIHBjLnJl
bW92ZVRyYWNrKHNlbmRlcik7CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBj
Lm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNvbHZlKQorICAgICAgdC5kb25lKCk7CisgICAgfSk7
CisgIH0sICdyZW1vdmVUcmFjayBzaG91bGQgY2F1c2UgbmVnb3RpYXRpb25uZWVkZWQgdG8gZmly
ZSBvbiB0aGUgY2FsbGVyJyk7CisKKyAgLyoKKyAgICA1LjEuICBSVENQZWVyQ29ubmVjdGlvbiBJ
bnRlcmZhY2UgRXh0ZW5zaW9ucworCisgICAgICByZW1vdmVUcmFjaworICAgICAgICAxMi4gVXBk
YXRlIHRoZSBuZWdvdGlhdGlvbi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KKyAgKi8KKyAg
YXN5bmNfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlci5jbG9zZSgpKTsKKyAg
ICBjYWxsZXIuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywge2RpcmVjdGlvbjoncmVjdm9ubHknfSk7
CisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKworICAgIGNv
bnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gY2FsbGVlLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9p
c2VTdHJlYW0oeyBhdWRpbzogdHJ1ZSB9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVh
bS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIGNvbnN0
IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgY29uc3Qgc2VuZGVyID0gY2FsbGVl
LmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworCisgICAgY2FsbGVlLm9ubmVnb3RpYXRpb25uZWVk
ZWQgPSB0LnN0ZXBfZnVuYyhhc3luYyAoKSA9PiB7CisgICAgICBjYWxsZWUub25uZWdvdGlhdGlv
bm5lZWRlZCA9IHQuc3RlcF9mdW5jKGFzeW5jICgpID0+IHsKKyAgICAgICAgYXNzZXJ0X3VucmVh
Y2hlZCgnb25uZWdvdGlhdGlvbm5lZWRlZCBtaXNmaXJlZCcpOworICAgICAgfSk7CisgICAgICBh
d2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICAgICAgY29uc3QgYW5z
d2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpOworICAgICAgY2FsbGVlLnNldExvY2Fs
RGVzY3JpcHRpb24oYW5zd2VyKTsKKworICAgICAgY2FsbGVlLnJlbW92ZVRyYWNrKHNlbmRlcik7
CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGNhbGxlZS5vbm5lZ290aWF0aW9u
bmVlZGVkID0gcmVzb2x2ZSkKKyAgICAgIHQuZG9uZSgpOworICAgIH0pOworICB9LCAncmVtb3Zl
VHJhY2sgc2hvdWxkIGNhdXNlIG5lZ290aWF0aW9ubmVlZGVkIHRvIGZpcmUgb24gdGhlIGNhbGxl
ZScpOworCisgIC8qCisgICAgNS40LiAgUlRDUnRwVHJhbnNjZWl2ZXIgSW50ZXJmYWNlCisKKyAg
ICAgIHNldERpcmVjdGlvbgorICAgICAgICA3LiAgVXBkYXRlIHRoZSBuZWdvdGlhdGlvbi1uZWVk
ZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KKyAgKi8KKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRk
VHJhbnNjZWl2ZXIoJ2F1ZGlvJywge2RpcmVjdGlvbjonc2VuZHJlY3YnfSk7CisgICAgY29uc3Qg
b2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICAgIGF3YWl0IHBjLnNldExvY2FsRGVz
Y3JpcHRpb24ob2ZmZXIpOwogICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGdlbmVyYXRlQW5zd2Vy
KG9mZmVyKTsKICAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwotICAg
IGFzc2VydF9mYWxzZShmaXJlZCwgIm5lZ290aWF0aW9ubmVlZGVkIHNob3VsZCBub3QgZmlyZSB1
bnRpbCB0aGUgbmV4dCBpdGVyYXRpb24gb2YgdGhlIGV2ZW50IGxvb3AgYWZ0ZXIgcmV0dXJuaW5n
IHRvIHN0YWJsZSIpOworICAgIHRyYW5zY2VpdmVyLmRpcmVjdGlvbiA9ICdyZWN2b25seSc7Cisg
ICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0g
cmVzb2x2ZSk7CisgIH0sICdVcGRhdGluZyB0aGUgZGlyZWN0aW9uIG9mIHRoZSB0cmFuc2NlaXZl
ciBzaG91bGQgY2F1c2UgbmVnb3RpYXRpb25uZWVkZWQgdG8gZmlyZScpOworCisgIC8qCisgICAg
NS4yLiAgUlRDUnRwU2VuZGVyIEludGVyZmFjZQorCisgICAgICBzZXRTdHJlYW1zCisgICAgICAg
IDcuICBVcGRhdGUgdGhlIG5lZ290aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25uZWN0aW9uLgor
ICAqLworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwor
CisgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7ZGly
ZWN0aW9uOidzZW5kcmVjdid9KTsKKyAgICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9m
ZmVyKCk7CisgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgICAgY29u
c3QgYW5zd2VyID0gYXdhaXQgZ2VuZXJhdGVBbnN3ZXIob2ZmZXIpOworICAgIGF3YWl0IHBjLnNl
dFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgICBjb25zdCBzdHJlYW0gPSBuZXcgTWVk
aWFTdHJlYW0oKTsKKyAgICB0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcyhzdHJlYW0pOwog
ICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHJlc29sdmUpOwotICB9LCAnbmVnb3RpYXRpb25uZWVkZWQgZXZlbnQgc2hvdWxkIGZpcmUgb25s
eSBhZnRlciBzaWduYWxpbmcgc3RhdGUgZ28gYmFjayB0byBzdGFibGUnKTsKKyAgfSwgJ0NhbGxp
bmcgc2V0U3RyZWFtcyBzaG91bGQgY2F1c2UgbmVnb3RpYXRpb25uZWVkZWQgdG8gZmlyZScpOwor
CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGxldCBuZWdvdGlhdGlvbkNvdW50ID0gMDsKKyAg
ICBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IGFzeW5jICgpID0+IHsKKyAgICAgIG5lZ290aWF0
aW9uQ291bnQrKzsKKyAgICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBj
MS5jcmVhdGVPZmZlcigpKTsKKyAgICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihw
YzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlv
bihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICAgICAgYXdhaXQgcGMxLnNldFJlbW90ZURl
c2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICB9CisKKyAgICBwYzEuYWRkVHJh
bnNjZWl2ZXIoInZpZGVvIik7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25zaWdu
YWxpbmdzdGF0ZWNoYW5nZSA9ICgpID0+IHBjMS5zaWduYWxpbmdTdGF0ZSA9PSAic3RhYmxlIiAm
JiByKCkpOworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgICBhd2FpdCBuZXcg
UHJvbWlzZShyID0+IHBjMS5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gKCkgPT4gcGMxLnNpZ25h
bGluZ1N0YXRlID09ICJzdGFibGUiICYmIHIoKSk7CisgICAgYXNzZXJ0X2VxdWFscyhuZWdvdGlh
dGlvbkNvdW50LCAyKTsKKyAgfSwgJ0FkZGluZyB0d28gdHJhbnNjZWl2ZXJzLCBvbmUgYXQgYSB0
aW1lLCByZXN1bHRzIGluIHRoZSBleHBlY3RlZCBudW1iZXIgb2YgbmVnb3RpYXRpb25uZWVkZWQg
ZXZlbnRzJyk7CiAKICAgLyoKICAgICBUT0RPCkBAIC0yNDMsMTkgKzQ0Nyw4IEBACiAgICAgICBX
aGVuIHRoZSBSVENQZWVyQ29ubmVjdGlvbigpIGNvbnN0cnVjdG9yIGlzIGludm9rZWQKICAgICAg
ICAgNy4gIExldCBjb25uZWN0aW9uIGhhdmUgYSBbW25lZWROZWdvdGlhdGlvbl1dIGludGVybmFs
IHNsb3QsIGluaXRpYWxpemVkIHRvIGZhbHNlLgogCi0gICAgNS4xLiAgUlRDUGVlckNvbm5lY3Rp
b24gSW50ZXJmYWNlIEV4dGVuc2lvbnMKLQotICAgICAgYWRkVHJhY2sKLSAgICAgICAgMTAuIFVw
ZGF0ZSB0aGUgbmVnb3RpYXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24uCi0KLSAgICAg
IHJlbW92ZVRyYWNrCi0gICAgICAgIDEyLiBVcGRhdGUgdGhlIG5lZ290aWF0aW9uLW5lZWRlZCBm
bGFnIGZvciBjb25uZWN0aW9uLgotCiAgICAgNS40LiAgUlRDUnRwVHJhbnNjZWl2ZXIgSW50ZXJm
YWNlCiAKLSAgICAgIHNldERpcmVjdGlvbgotICAgICAgICA3LiAgVXBkYXRlIHRoZSBuZWdvdGlh
dGlvbi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KLQogICAgICAgc3RvcAogICAgICAgICAx
MS4gVXBkYXRlIHRoZSBuZWdvdGlhdGlvbi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGQ3MDk3MDRkNjI5NWI5MzI5Y2MxMzhjYTkzZGViNWFiY2Y4OTAxNjIu
LmMyODE2Y2E2MzliOTkzNjkwYjA0MGQwYjljNjRhYmE1NDllOTJlZDcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSw0IEBACiAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gb25zaWduYWxpbmdzdGF0
ZWNoYW5nZWQgCitQQVNTIE5lZ290aWF0aW9uIG1ldGhvZHMgZmlyZSBzaWduYWxpbmdzdGF0ZWNo
YW5nZSBldmVudHMgCitGQUlMIENsb3NpbmcgYSBQZWVyQ29ubmVjdGlvbiBzaG91bGQgbm90IGZp
cmUgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQgYXNzZXJ0X3VucmVhY2hlZDogUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3Rh
dGVjaGFuZ2VkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdl
ZC5odHRwcy5odG1sCmluZGV4IGZjMzE4MmQzZDU5ZWE1YmE4MGNiY2YwMjJhNzZjNGZjNDBmMThh
MWEuLjBjODQwNTc3MGI2MTZkMWQwZjNiZTIyNmE4MTU3ODBjYzFhZDA0MTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMuaHRtbApAQCAtNyw3ICs3LDcg
QEAKIDxzY3JpcHQ+CiAKIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgY29uc3QgW3RyYWNr
XSA9IChhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9KSkuZ2V0VHJhY2tzKCk7CisgIGNvbnN0IFt0cmFja10gPSAoYXdhaXQgZ2V0Tm9pc2VTdHJl
YW0oe3ZpZGVvOiB0cnVlfSkpLmdldFRyYWNrcygpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHRy
YWNrLnN0b3AoKSk7CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKQEAgLTE1LDE2ICsxNSw0MiBAQCBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkp
OwogICBwYzEuYWRkVHJhY2sodHJhY2ssIG5ldyBNZWRpYVN0cmVhbSgpKTsKICAgYXdhaXQgcGMx
LnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICBjb25zdCBl
dmVudHMgPSBbXTsKKyAgcGMyLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSB0LnN0ZXBfZnVuYyhl
ID0+IHsKKyAgICBjb25zdCBbdHJhbnNjZWl2ZXJdID0gcGMyLmdldFRyYW5zY2VpdmVycygpOwor
ICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgbnVsbCk7Cisg
ICAgZXZlbnRzLnB1c2gocGMyLnNpZ25hbGluZ1N0YXRlKTsKKyAgfSk7CiAgIGF3YWl0IHBjMi5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0gIGNvbnN0IHNpZ25h
bGluZ1N0YXRlQ2hhbmdlUmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKKyAgYXNzZXJ0X2VxdWFs
cyhldmVudHMubGVuZ3RoLCAxLCAiZXZlbnQgZmlyZWQiKTsKKyAgYXNzZXJ0X2VxdWFscyhldmVu
dHNbMF0sICJoYXZlLXJlbW90ZS1vZmZlciIpOworCiAgIHBjMi5vbnNpZ25hbGluZ3N0YXRlY2hh
bmdlID0gdC5zdGVwX2Z1bmMoZSA9PiB7Ci0gICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYzIuZ2V0
VHJhbnNjZWl2ZXJzKClbMF07Ci0gICAgYXNzZXJ0X2VxdWFscyhwYzIuc2lnbmFsaW5nU3RhdGUs
ICJzdGFibGUiKTsKKyAgICBjb25zdCBbdHJhbnNjZWl2ZXJdID0gcGMyLmdldFRyYW5zY2VpdmVy
cygpOwogICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgInJl
Y3Zvbmx5Iik7Ci0gICAgc2lnbmFsaW5nU3RhdGVDaGFuZ2VSZXNvbHZlci5yZXNvbHZlKCk7Cisg
ICAgZXZlbnRzLnB1c2gocGMyLnNpZ25hbGluZ1N0YXRlKTsKICAgfSk7CiAgIGF3YWl0IHBjMi5z
ZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7Ci0gIGF3YWl0IHNp
Z25hbGluZ1N0YXRlQ2hhbmdlUmVzb2x2ZXI7Ci19KTsKKyAgYXNzZXJ0X2VxdWFscyhldmVudHMu
bGVuZ3RoLCAyLCAiZXZlbnQgZmlyZWQiKTsKKyAgYXNzZXJ0X2VxdWFscyhldmVudHNbMV0sICJz
dGFibGUiKTsKK30sICdOZWdvdGlhdGlvbiBtZXRob2RzIGZpcmUgc2lnbmFsaW5nc3RhdGVjaGFu
Z2UgZXZlbnRzJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3Nl
KCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oeyBhdWRpbzogdHJ1ZSB9KTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9w
KCkpKTsKKworICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiBwYzEuYWRkVHJh
Y2sodHJhY2ssIHN0cmVhbSkpOworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOwor
ICBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXdhaXQgbGlzdGVuVG9JY2VDb25u
ZWN0ZWQocGMyKTsKKworICBwYzIub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9IHQudW5yZWFjaGVk
X2Z1bmMoKTsKKyAgcGMyLmNsb3NlKCk7CisgIGFzc2VydF90cnVlKHBjMi5zaWduYWxpbmdTdGF0
ZSA9PT0gJ2Nsb3NlZCcpOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0
KHIsIDEwMCkpOworfSwgJ0Nsb3NpbmcgYSBQZWVyQ29ubmVjdGlvbiBzaG91bGQgbm90IGZpcmUg
c2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQnKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBz
Lmh0bWwKaW5kZXggMTAyMTAxMjlhY2Q1OThmZDk1OTEyNGZiZTUxNDYyZGU4YTFjZGIwYi4uOTlm
MzBjMjY0YjM2NDhkNTJmZGE2YmI1MGRlOTgwYmNiZTg0YmUzYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tb250cmFjay5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0cHMu
aHRtbApAQCAtOTUsNyArOTUsNyBAQAogCiAgIC8vIHRlc3RzIHRoYXQgb250cmFjayBpcyBjYWxs
ZWQgYW5kIHBhcnNlcyB0aGUgbXNpZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBTRFAgYW5kIGNyZWF0
ZXMKICAgLy8gdGhlIHN0cmVhbXMgd2l0aCBtYXRjaGluZyBpZGVudGlmaWVycy4KLSAgYXN5bmNf
dGVzdCh0ID0+IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOwpAQCAtMTIzLDM0ICsxMjMsMjggQEAgYT1tc2lkOnN0cmVhbTEgdHJhY2sxCiBhPXNz
cmM6MTAwMSBjbmFtZTpzb21lCiBgOwogCi0gICAgcGMub250cmFjayA9IHQuc3RlcF9mdW5jKHRy
YWNrRXZlbnQgPT4gewotICAgICAgY29uc3QgeyBzdHJlYW1zLCB0cmFjaywgdHJhbnNjZWl2ZXIg
fSA9IHRyYWNrRXZlbnQ7CisgICAgY29uc3QgdHJhY2tFdmVudFByb21pc2UgPSBhZGRFdmVudExp
c3RlbmVyUHJvbWlzZSh0LCBwYywgJ3RyYWNrJyk7CisgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oeyB0eXBlOiAnb2ZmZXInLCBzZHAgfSk7CisgICAgY29uc3QgdHJhY2tFdmVudCA9
IGF3YWl0IHRyYWNrRXZlbnRQcm9taXNlOworICAgIGNvbnN0IHsgc3RyZWFtcywgdHJhY2ssIHRy
YW5zY2VpdmVyIH0gPSB0cmFja0V2ZW50OwogCi0gICAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbXMu
bGVuZ3RoLCAxLAotICAgICAgICAndGhlIHRyYWNrIGJlbG9uZ3MgdG8gb25lIE1lZGlhU3RyZWFt
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW1zLmxlbmd0aCwgMSwKKyAgICAgICd0aGUgdHJh
Y2sgYmVsb25ncyB0byBvbmUgTWVkaWFTdHJlYW0nKTsKIAotICAgICAgY29uc3QgW3N0cmVhbV0g
PSBzdHJlYW1zOwotICAgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uaWQsICdzdHJlYW0xJywKLSAg
ICAgICAgJ0V4cGVjdCBzdHJlYW0uaWQgdG8gYmUgdGhlIHNhbWUgYXMgc3BlY2lmaWVkIGluIHRo
ZSBhPW1zaWQgbGluZScpOworICAgIGNvbnN0IFtzdHJlYW1dID0gc3RyZWFtczsKKyAgICBhc3Nl
cnRfZXF1YWxzKHN0cmVhbS5pZCwgJ3N0cmVhbTEnLAorICAgICAgJ0V4cGVjdCBzdHJlYW0uaWQg
dG8gYmUgdGhlIHNhbWUgYXMgc3BlY2lmaWVkIGluIHRoZSBhPW1zaWQgbGluZScpOwogCi0gICAg
ICBhc3NlcnRfZXF1YWxzKHRyYWNrLmtpbmQsICdhdWRpbycsCi0gICAgICAgICdFeHBlY3QgdHJh
Y2sua2luZCB0byBiZSBhdWRpbycpOworICAgIGFzc2VydF9lcXVhbHModHJhY2sua2luZCwgJ2F1
ZGlvJywKKyAgICAgICdFeHBlY3QgdHJhY2sua2luZCB0byBiZSBhdWRpbycpOwogCi0gICAgICB2
YWxpZGF0ZVRyYWNrRXZlbnQodHJhY2tFdmVudCk7CisgICAgdmFsaWRhdGVUcmFja0V2ZW50KHRy
YWNrRXZlbnQpOwogCi0gICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwg
J3JlY3Zvbmx5JywKLSAgICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlci5kaXJlY3Rpb24gdG8gYmUg
cmV2ZXJzZSBvZiBzZW5kb25seSAocmVjdm9ubHkpJyk7Ci0KLSAgICAgIHQuZG9uZSgpOwotICAg
IH0pOwotCi0gICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oeyB0eXBlOiAnb2ZmZXInLCBzZHAg
fSkKLSAgICAuY2F0Y2godC5zdGVwX2Z1bmMoZXJyID0+IHsKLSAgICAgIGFzc2VydF91bnJlYWNo
ZWQoJ0Vycm9yICcgKyBlcnIubmFtZSArICc6ICcgKyBlcnIubWVzc2FnZSk7Ci0gICAgfSkpOwor
ICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAncmVjdm9ubHknLAorICAg
ICAgJ0V4cGVjdCB0cmFuc2NlaXZlci5kaXJlY3Rpb24gdG8gYmUgcmV2ZXJzZSBvZiBzZW5kb25s
eSAocmVjdm9ubHkpJyk7CiAgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgdHJpZ2dl
ciBvbnRyYWNrIGV2ZW50IHdoZW4gdGhlIE1TSUQgb2YgdGhlIHN0cmVhbSBpcyBpcyBwYXJzZWQu
Jyk7CiAKLSAgYXN5bmNfdGVzdCh0ID0+IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewog
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjLmNsb3NlKCkpOwpAQCAtMTc5LDEwMSArMTczLDYxIEBAIGE9c3NyYzoxMDAx
IGNuYW1lOnNvbWUKIAogICAgIHBjLm9udHJhY2sgPSB0LnVucmVhY2hlZF9mdW5jKCdvbnRyYWNr
IGV2ZW50IHNob3VsZCBub3QgZmlyZSBmb3IgdHJhY2sgd2l0aCByZWN2b25seSBkaXJlY3Rpb24n
KTsKIAotICAgIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHsgdHlwZTogJ29mZmVyJywgc2RwIH0p
Ci0gICAgLmNhdGNoKHQuc3RlcF9mdW5jKGVyciA9PiB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVk
KCdFcnJvciAnICsgZXJyLm5hbWUgKyAnOiAnICsgZXJyLm1lc3NhZ2UpOwotICAgIH0pKQotICAg
IC50aGVuKHQuc3RlcF9mdW5jKCgpID0+IHsKLSAgICAgIHQuc3RlcF90aW1lb3V0KHQuc3RlcF9m
dW5jX2RvbmUoKSwgMTAwKTsKLSAgICB9KSk7CisgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oeyB0eXBlOiAnb2ZmZXInLCBzZHAgfSk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAxMDApKTsKICAgfSwgJ3NldFJlbW90ZURl
c2NyaXB0aW9uKCkgd2l0aCBtPSBsaW5lIG9mIHJlY3Zvbmx5IGRpcmVjdGlvbiBzaG91bGQgbm90
IHRyaWdnZXIgdHJhY2sgZXZlbnQnKTsKIAotICBhc3luY190ZXN0KHQgPT4geworICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
Mi5jbG9zZSgpKTsKIAotICAgIHBjMi5vbnRyYWNrID0gdC5zdGVwX2Z1bmModHJhY2tFdmVudCA9
PiB7Ci0gICAgICBjb25zdCB7IHRyYWNrIH0gPSB0cmFja0V2ZW50OwotCi0gICAgICBhc3NlcnRf
ZXF1YWxzKHRyYWNrLmtpbmQsICdhdWRpbycsCi0gICAgICAgICdFeHBlY3QgdHJhY2sua2luZCB0
byBiZSBhdWRpbycpOwotCi0gICAgICB2YWxpZGF0ZVRyYWNrRXZlbnQodHJhY2tFdmVudCk7Cisg
ICAgY29uc3QgW3RyYWNrLCBtZWRpYVN0cmVhbV0gPSBhd2FpdCBnZXRUcmFja0Zyb21Vc2VyTWVk
aWEoJ2F1ZGlvJyk7CisgICAgcGMxLmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7CisgICAg
Y29uc3QgdHJhY2tFdmVudFByb21pc2UgPSBhZGRFdmVudExpc3RlbmVyUHJvbWlzZSh0LCBwYzIs
ICd0cmFjaycpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzEu
Y3JlYXRlT2ZmZXIoKSk7CisgICAgY29uc3QgdHJhY2tFdmVudCA9IGF3YWl0IHRyYWNrRXZlbnRQ
cm9taXNlOwogCi0gICAgICB0LmRvbmUoKTsKLSAgICB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHRy
YWNrRXZlbnQudHJhY2sua2luZCwgJ2F1ZGlvJywKKyAgICAgICdFeHBlY3QgdHJhY2sua2luZCB0
byBiZSBhdWRpbycpOwogCi0gICAgcmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8n
KQotICAgIC50aGVuKChbdHJhY2ssIG1lZGlhU3RyZWFtXSkgPT4gewotICAgICAgcGMxLmFkZFRy
YWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7Ci0KLSAgICAgIHJldHVybiBwYzEuY3JlYXRlT2ZmZXIo
KQotICAgICAgLnRoZW4ob2ZmZXIgPT4gcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSk7
Ci0gICAgfSkKLSAgICAuY2F0Y2godC5zdGVwX2Z1bmMoZXJyID0+IHsKLSAgICAgIGFzc2VydF91
bnJlYWNoZWQoJ0Vycm9yICcgKyBlcnIubmFtZSArICc6ICcgKyBlcnIubWVzc2FnZSk7Ci0gICAg
fSkpOworICAgIHZhbGlkYXRlVHJhY2tFdmVudCh0cmFja0V2ZW50KTsKICAgfSwgJ2FkZFRyYWNr
KCkgc2hvdWxkIGNhdXNlIHJlbW90ZSBjb25uZWN0aW9uIHRvIGZpcmUgb250cmFjayB3aGVuIHNl
dFJlbW90ZURlc2NyaXB0aW9uKCknKTsKIAotICBhc3luY190ZXN0KHQgPT4geworICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
Mi5jbG9zZSgpKTsKIAotICAgIHBjMi5vbnRyYWNrID0gdC5zdGVwX2Z1bmModHJhY2tFdmVudCA9
PiB7Ci0gICAgICBjb25zdCB7IHRyYWNrIH0gPSB0cmFja0V2ZW50OwotCi0gICAgICBhc3NlcnRf
ZXF1YWxzKHRyYWNrLmtpbmQsICd2aWRlbycsCi0gICAgICAgICdFeHBlY3QgdHJhY2sua2luZCB0
byBiZSB2aWRlbycpOwotCi0gICAgICB2YWxpZGF0ZVRyYWNrRXZlbnQodHJhY2tFdmVudCk7Cisg
ICAgcGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOwogCi0gICAgICB0LmRvbmUoKTsKLSAgICB9
KTsKKyAgICBjb25zdCB0cmFja0V2ZW50UHJvbWlzZSA9IGFkZEV2ZW50TGlzdGVuZXJQcm9taXNl
KHQsIHBjMiwgJ3RyYWNrJyk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3
YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgICBjb25zdCB0cmFja0V2ZW50ID0gYXdhaXQgdHJh
Y2tFdmVudFByb21pc2U7CisgICAgY29uc3QgeyB0cmFjayB9ID0gdHJhY2tFdmVudDsKIAotICAg
IHBjMS5hZGRUcmFuc2NlaXZlcigndmlkZW8nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRyYWNrLmtp
bmQsICd2aWRlbycsCisgICAgICAnRXhwZWN0IHRyYWNrLmtpbmQgdG8gYmUgdmlkZW8nKTsKIAot
ICAgIHJldHVybiBwYzEuY3JlYXRlT2ZmZXIoKQotICAgIC50aGVuKG9mZmVyID0+IHBjMi5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpCi0gICAgLmNhdGNoKHQuc3RlcF9mdW5jKGVyciA9PiB7
Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCdFcnJvciAnICsgZXJyLm5hbWUgKyAnOiAnICsgZXJy
Lm1lc3NhZ2UpOwotICAgIH0pKTsKKyAgICB2YWxpZGF0ZVRyYWNrRXZlbnQodHJhY2tFdmVudCk7
CiAgIH0sIGBhZGRUcmFuc2NlaXZlcigndmlkZW8nKSBzaG91bGQgY2F1c2UgcmVtb3RlIGNvbm5l
Y3Rpb24gdG8gZmlyZSBvbnRyYWNrIHdoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24oKWApOwogCi0g
IGFzeW5jX3Rlc3QodCA9PiB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
IAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCi0gICAgcGMyLm9udHJh
Y2sgPSB0LnN0ZXBfZnVuYyh0cmFja0V2ZW50ID0+IHsKLSAgICAgIGNvbnN0IHsgdHJhY2sgfSA9
IHRyYWNrRXZlbnQ7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHModHJhY2sua2luZCwgJ3ZpZGVvJywK
LSAgICAgICAgJ0V4cGVjdCB0cmFjay5raW5kIHRvIGJlIHZpZGVvJyk7Ci0KLSAgICAgIHZhbGlk
YXRlVHJhY2tFdmVudCh0cmFja0V2ZW50KTsKLQotICAgICAgdC5kb25lKCk7Ci0gICAgfSk7Ci0K
ICAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywgeyBkaXJlY3Rpb246ICdpbmFjdGl2ZScg
fSk7CiAgICAgcGMyLm9udHJhY2sgPSB0LnVucmVhY2hlZF9mdW5jKCdvbnRyYWNrIGV2ZW50IHNo
b3VsZCBub3QgZmlyZSBmb3IgdHJhY2sgd2l0aCBpbmFjdGl2ZSBkaXJlY3Rpb24nKTsKIAotICAg
IHJldHVybiBwYzEuY3JlYXRlT2ZmZXIoKQotICAgIC50aGVuKG9mZmVyID0+IHBjMi5zZXRSZW1v
dGVEZXNjcmlwdGlvbihvZmZlcikpCi0gICAgLmNhdGNoKHQuc3RlcF9mdW5jKGVyciA9PiB7Ci0g
ICAgICBhc3NlcnRfdW5yZWFjaGVkKCdFcnJvciAnICsgZXJyLm5hbWUgKyAnOiAnICsgZXJyLm1l
c3NhZ2UpOwotICAgIH0pKQotICAgIC50aGVuKHQuc3RlcF9mdW5jKCgpID0+IHsKLSAgICAgIHQu
c3RlcF90aW1lb3V0KHQuc3RlcF9mdW5jX2RvbmUoKSwgMTAwKTsKLSAgICB9KSk7CisgICAgYXdh
aXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDEw
MCkpOwogICB9LCBgYWRkVHJhbnNjZWl2ZXIoKSB3aXRoIGluYWN0aXZlIGRpcmVjdGlvbiBzaG91
bGQgbm90IGNhdXNlIHJlbW90ZSBjb25uZWN0aW9uIHRvIGZpcmUgb250cmFjayB3aGVuIHNldFJl
bW90ZURlc2NyaXB0aW9uKClgKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1vcGVyYXRpb25zLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9wZXJhdGlvbnMu
aHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhYjBkNDFiZTQ4NDgwZmI3NDE0MTk4NmJk
NmZjZjZiZTZhMDY4ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vcGVyYXRpb25z
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYzIEBACisKK0hhcm5lc3MgRXJyb3IgKEZB
SUwpLCBtZXNzYWdlID0gVW5oYW5kbGVkIHJlamVjdGlvbjogRXhwZWN0IGxpbmU6IHY9CisKK1BB
U1MgcHJvbWlzZVN0YXRlIGhlbHBlciB3b3JrcyAKK1BBU1MgcHJvbWlzZVN0YXRlRmluYWwgaGVs
cGVyIHdvcmtzIAorRkFJTCBjcmVhdGVPZmZlciBtdXN0IGRldGVjdCBJbnZhbGlkU3RhdGVFcnJv
ciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4gaXMgZW1wdHkgKHByZXJlcXVpc2l0ZSkgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVycm9yIiBidXQgZ290ICJFcnJvciIKK1BB
U1MgY3JlYXRlQW5zd2VyIG11c3QgZGV0ZWN0IEludmFsaWRTdGF0ZUVycm9yIHN5bmNocm9ub3Vz
bHkgd2hlbiBjaGFpbiBpcyBlbXB0eSAocHJlcmVxdWlzaXRlKSAKK1BBU1MgU0xEKHJvbGxiYWNr
KSBtdXN0IGRldGVjdCBJbnZhbGlkU3RhdGVFcnJvciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4g
aXMgZW1wdHkgCitGQUlMIGFkZEljZUNhbmRpZGF0ZSBtdXN0IGRldGVjdCBJbnZhbGlkU3RhdGVF
cnJvciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4gaXMgZW1wdHkgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgIkludmFsaWRTdGF0ZUVycm9yIiBidXQgZ290ICJUeXBlRXJyb3IiCitQQVNTIHJlcGxh
Y2VUcmFjayBtdXN0IGRldGVjdCBJbnZhbGlkU3RhdGVFcnJvciBzeW5jaHJvbm91c2x5IHdoZW4g
Y2hhaW4gaXMgZW1wdHkgYW5kIHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQgCitQQVNTIHNldFBhcmFt
ZXRlcnMgbXVzdCBkZXRlY3QgSW52YWxpZFN0YXRlRXJyb3Igc3luY2hyb25vdXNseSBhbHdheXMg
d2hlbiB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIAorRkFJTCBwYy5nZXRTdGF0cyBtdXN0IGRldGVj
dCBJbnZhbGlkQWNjZXNzRXJyb3Igc3luY2hyb25vdXNseSBhbHdheXMgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIkludmFsaWRBY2Nlc3NFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitQQVNTIGlzT3Bl
cmF0aW9uc0NoYWluRW1wdHkgZGV0ZWN0cyBlbXB0eSBpbiBzdGFibGUgCitQQVNTIGlzT3BlcmF0
aW9uc0NoYWluRW1wdHkgZGV0ZWN0cyBlbXB0eSBpbiBoYXZlLWxvY2FsLW9mZmVyIAorRkFJTCBp
c09wZXJhdGlvbnNDaGFpbkVtcHR5IGRldGVjdHMgZW1wdHkgaW4gaGF2ZS1yZW1vdGUtb2ZmZXIg
YXNzZXJ0X2VxdWFsczogaXNPcGVyYXRpb25zQ2hhaW5FbXB0eSBpcyB3b3JraW5nIGV4cGVjdGVk
ICJJbnZhbGlkU3RhdGVFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitQQVNTIGNyZWF0ZU9mZmVyIHVz
ZXMgb3BlcmF0aW9ucyBjaGFpbiAKK0ZBSUwgY3JlYXRlQW5zd2VyIHVzZXMgb3BlcmF0aW9ucyBj
aGFpbiBhc3NlcnRfZXF1YWxzOiBpc09wZXJhdGlvbnNDaGFpbkVtcHR5IGlzIHdvcmtpbmcgZXhw
ZWN0ZWQgIkludmFsaWRTdGF0ZUVycm9yIiBidXQgZ290ICJFcnJvciIKK1BBU1Mgc2V0TG9jYWxE
ZXNjcmlwdGlvbiB1c2VzIG9wZXJhdGlvbnMgY2hhaW4gCitQQVNTIHNldFJlbW90ZURlc2NyaXB0
aW9uIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiAKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRlIHVzZXMgb3Bl
cmF0aW9ucyBjaGFpbiBhc3NlcnRfZXF1YWxzOiBpc09wZXJhdGlvbnNDaGFpbkVtcHR5IGlzIHdv
cmtpbmcgZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVycm9yIiBidXQgZ290ICJFcnJvciIKK1BBU1Mg
RmlyaW5nIG9mIG5lZ290aWF0aW9ubmVlZGVkIGRvZXMgTk9UIHVzZSBvcGVyYXRpb25zIGNoYWlu
IAorRkFJTCBOZWdvdGlhdGlvbm5lZWRlZCBvbmx5IGZpcmVzIG9uY2Ugb3BlcmF0aW9ucyBjaGFp
biBpcyBlbXB0eSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorRkFJTCByZXBsYWNlVHJh
Y2sgdXNlcyBvcGVyYXRpb25zIGNoYWluIGFzc2VydF9mYWxzZTogTm9uLWVtcHR5IGNoYWluIGV4
cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIHNldFBhcmFtZXRlcnMgZG9lcyBOT1QgdXNlIHRo
ZSBvcGVyYXRpb25zIGNoYWluIGFzc2VydF9lcXVhbHM6IE1ldGhvZCBpcyBhc3luYyBleHBlY3Rl
ZCAicGVuZGluZyIgYnV0IGdvdCAiZnVsZmlsbGVkIgorUEFTUyBwYy5nZXRTdGF0cyBkb2VzIE5P
VCB1c2UgdGhlIG9wZXJhdGlvbnMgY2hhaW4gCitQQVNTIHNlbmRlci5nZXRTdGF0cyBkb2VzIE5P
VCB1c2UgdGhlIG9wZXJhdGlvbnMgY2hhaW4gCitQQVNTIHJlY2VpdmVyLmdldFN0YXRzIGRvZXMg
Tk9UIHVzZSB0aGUgb3BlcmF0aW9ucyBjaGFpbiAKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRlIGNoYWlu
cyBvbnRvIFNSRCwgZmFpbHMgYmVmb3JlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJJbnZhbGlk
U3RhdGVFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitGQUlMIE9wZXJhdGlvbnMgcXVldWUgbm90IHZ1
bG5lcmFibGUgdG8gcmVjdXJzaW9uIGJ5IGNoYWluZWQgbmVnb3RpYXRpb25uZWVkZWQgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK0ZBSUwgUGFjayBvcGVyYXRpb25zIHF1ZXVlIHdpdGgg
aW1wbGljaXQgb2ZmZXIgYW5kIGFuc3dlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJPcGVyYXRpb25FcnJvcjogRXhwZWN0IGxpbmU6IHY9Igor
VElNRU9VVCBOZWdvdGlhdGUgc29sZWx5IGJ5IG9wZXJhdGlvbnMgcXVldWUgYW5kIHNpZ25hbGlu
ZyBzdGF0ZSBUZXN0IHRpbWVkIG91dAorCitIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9
IFVuaGFuZGxlZCByZWplY3Rpb246IEV4cGVjdCBsaW5lOiB2PQorCitQQVNTIHByb21pc2VTdGF0
ZSBoZWxwZXIgd29ya3MgCitQQVNTIHByb21pc2VTdGF0ZUZpbmFsIGhlbHBlciB3b3JrcyAKK0ZB
SUwgY3JlYXRlT2ZmZXIgbXVzdCBkZXRlY3QgSW52YWxpZFN0YXRlRXJyb3Igc3luY2hyb25vdXNs
eSB3aGVuIGNoYWluIGlzIGVtcHR5IChwcmVyZXF1aXNpdGUpIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJJbnZhbGlkU3RhdGVFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitQQVNTIGNyZWF0ZUFuc3dl
ciBtdXN0IGRldGVjdCBJbnZhbGlkU3RhdGVFcnJvciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4g
aXMgZW1wdHkgKHByZXJlcXVpc2l0ZSkgCitQQVNTIFNMRChyb2xsYmFjaykgbXVzdCBkZXRlY3Qg
SW52YWxpZFN0YXRlRXJyb3Igc3luY2hyb25vdXNseSB3aGVuIGNoYWluIGlzIGVtcHR5IAorRkFJ
TCBhZGRJY2VDYW5kaWRhdGUgbXVzdCBkZXRlY3QgSW52YWxpZFN0YXRlRXJyb3Igc3luY2hyb25v
dXNseSB3aGVuIGNoYWluIGlzIGVtcHR5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJJbnZhbGlk
U3RhdGVFcnJvciIgYnV0IGdvdCAiVHlwZUVycm9yIgorUEFTUyByZXBsYWNlVHJhY2sgbXVzdCBk
ZXRlY3QgSW52YWxpZFN0YXRlRXJyb3Igc3luY2hyb25vdXNseSB3aGVuIGNoYWluIGlzIGVtcHR5
IGFuZCB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIAorUEFTUyBzZXRQYXJhbWV0ZXJzIG11c3QgZGV0
ZWN0IEludmFsaWRTdGF0ZUVycm9yIHN5bmNocm9ub3VzbHkgYWx3YXlzIHdoZW4gdHJhbnNjZWl2
ZXIgaXMgc3RvcHBlZCAKK0ZBSUwgcGMuZ2V0U3RhdHMgbXVzdCBkZXRlY3QgSW52YWxpZEFjY2Vz
c0Vycm9yIHN5bmNocm9ub3VzbHkgYWx3YXlzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJJbnZh
bGlkQWNjZXNzRXJyb3IiIGJ1dCBnb3QgIkVycm9yIgorUEFTUyBpc09wZXJhdGlvbnNDaGFpbkVt
cHR5IGRldGVjdHMgZW1wdHkgaW4gc3RhYmxlIAorUEFTUyBpc09wZXJhdGlvbnNDaGFpbkVtcHR5
IGRldGVjdHMgZW1wdHkgaW4gaGF2ZS1sb2NhbC1vZmZlciAKK0ZBSUwgaXNPcGVyYXRpb25zQ2hh
aW5FbXB0eSBkZXRlY3RzIGVtcHR5IGluIGhhdmUtcmVtb3RlLW9mZmVyIGFzc2VydF9lcXVhbHM6
IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkgaXMgd29ya2luZyBleHBlY3RlZCAiSW52YWxpZFN0YXRl
RXJyb3IiIGJ1dCBnb3QgIkVycm9yIgorUEFTUyBjcmVhdGVPZmZlciB1c2VzIG9wZXJhdGlvbnMg
Y2hhaW4gCitGQUlMIGNyZWF0ZUFuc3dlciB1c2VzIG9wZXJhdGlvbnMgY2hhaW4gYXNzZXJ0X2Vx
dWFsczogaXNPcGVyYXRpb25zQ2hhaW5FbXB0eSBpcyB3b3JraW5nIGV4cGVjdGVkICJJbnZhbGlk
U3RhdGVFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitQQVNTIHNldExvY2FsRGVzY3JpcHRpb24gdXNl
cyBvcGVyYXRpb25zIGNoYWluIAorUEFTUyBzZXRSZW1vdGVEZXNjcmlwdGlvbiB1c2VzIG9wZXJh
dGlvbnMgY2hhaW4gCitGQUlMIGFkZEljZUNhbmRpZGF0ZSB1c2VzIG9wZXJhdGlvbnMgY2hhaW4g
YXNzZXJ0X2VxdWFsczogaXNPcGVyYXRpb25zQ2hhaW5FbXB0eSBpcyB3b3JraW5nIGV4cGVjdGVk
ICJJbnZhbGlkU3RhdGVFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitQQVNTIEZpcmluZyBvZiBuZWdv
dGlhdGlvbm5lZWRlZCBkb2VzIE5PVCB1c2Ugb3BlcmF0aW9ucyBjaGFpbiAKK0ZBSUwgTmVnb3Rp
YXRpb25uZWVkZWQgb25seSBmaXJlcyBvbmNlIG9wZXJhdGlvbnMgY2hhaW4gaXMgZW1wdHkgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK0ZBSUwgcmVwbGFjZVRyYWNrIHVzZXMgb3BlcmF0
aW9ucyBjaGFpbiBhc3NlcnRfZmFsc2U6IE5vbi1lbXB0eSBjaGFpbiBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorRkFJTCBzZXRQYXJhbWV0ZXJzIGRvZXMgTk9UIHVzZSB0aGUgb3BlcmF0aW9ucyBj
aGFpbiBhc3NlcnRfZXF1YWxzOiBNZXRob2QgaXMgYXN5bmMgZXhwZWN0ZWQgInBlbmRpbmciIGJ1
dCBnb3QgImZ1bGZpbGxlZCIKK1BBU1MgcGMuZ2V0U3RhdHMgZG9lcyBOT1QgdXNlIHRoZSBvcGVy
YXRpb25zIGNoYWluIAorUEFTUyBzZW5kZXIuZ2V0U3RhdHMgZG9lcyBOT1QgdXNlIHRoZSBvcGVy
YXRpb25zIGNoYWluIAorUEFTUyByZWNlaXZlci5nZXRTdGF0cyBkb2VzIE5PVCB1c2UgdGhlIG9w
ZXJhdGlvbnMgY2hhaW4gCitGQUlMIGFkZEljZUNhbmRpZGF0ZSBjaGFpbnMgb250byBTUkQsIGZh
aWxzIGJlZm9yZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiSW52YWxpZFN0YXRlRXJyb3IiIGJ1
dCBnb3QgIkVycm9yIgorRkFJTCBPcGVyYXRpb25zIHF1ZXVlIG5vdCB2dWxuZXJhYmxlIHRvIHJl
Y3Vyc2lvbiBieSBjaGFpbmVkIG5lZ290aWF0aW9ubmVlZGVkIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMiCitGQUlMIFBhY2sgb3BlcmF0aW9ucyBxdWV1ZSB3aXRoIGltcGxpY2l0IG9mZmVy
IGFuZCBhbnN3ZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6IEV4cGVjdCBsaW5lOiB2PSIKK1RJTUVPVVQgTmVnb3Rp
YXRlIHNvbGVseSBieSBvcGVyYXRpb25zIHF1ZXVlIGFuZCBzaWduYWxpbmcgc3RhdGUgVGVzdCB0
aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb3BlcmF0aW9ucy5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tb3BlcmF0aW9ucy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4YWUzYWZj
ZDczZTQxMDAzNDVlZGRkYzUwNTg5NWFkZDI2ZWE1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1vcGVyYXRpb25zLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw0MjUgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT48L3RpdGxlPgorPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJp
Y3QnOworCisvLyBIZWxwZXJzIHRvIHRlc3QgQVBJcyAicmV0dXJuIGEgcHJvbWlzZSByZWplY3Rl
ZCB3aXRoIGEgbmV3bHkgY3JlYXRlZCIgZXJyb3IuCisvLyBTdHJpY3RseSBzcGVha2luZyB0aGlz
IG1lYW5zIGFscmVhZHktcmVqZWN0ZWQgdXBvbiByZXR1cm4uCitmdW5jdGlvbiBwcm9taXNlU3Rh
dGUocCkgeworICBjb25zdCB0ID0ge307CisgIHJldHVybiBQcm9taXNlLnJhY2UoW3AsIHRdKQor
ICAgIC50aGVuKHYgPT4gKHYgPT09IHQpPyAicGVuZGluZyIgOiAiZnVsZmlsbGVkIiwgKCkgPT4g
InJlamVjdGVkIik7Cit9CisKKy8vIEhvd2V2ZXIsIHRvIGFsbG93IHByb21pc2VzIHRvIGJlIHVz
ZWQgaW4gaW1wbGVtZW50YXRpb25zLCB0aGlzIGhlbHBlciBhZGRzCisvLyBzb21lIHNsYWNrOiBy
ZXR1cm5pbmcgYSBwZW5kaW5nIHByb21pc2Ugd2lsbCBwYXNzLCBwcm92aWRlZCBpdCBpcyByZWpl
Y3RlZAorLy8gYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgcnVuIG9mIHRoZSBldmVudCBs
b29wIChpLmUuIG9uIG1pY3JvdGFzayBxdWV1ZQorLy8gYmVmb3JlIG5leHQgdGFzaykuCithc3lu
YyBmdW5jdGlvbiBwcm9taXNlU3RhdGVGaW5hbChwKSB7CisgIGZvciAobGV0IGkgPSAwOyBpIDwg
MjA7IGkrKykgeworICAgIGF3YWl0IHByb21pc2VTdGF0ZShwKTsKKyAgfQorICByZXR1cm4gcHJv
bWlzZVN0YXRlKHApOworfQorCitbcHJvbWlzZVN0YXRlLCBwcm9taXNlU3RhdGVGaW5hbF0uZm9y
RWFjaChmID0+IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXNzZXJ0X2VxdWFscyhhd2Fp
dCBmKFByb21pc2UucmVzb2x2ZSgpKSwgImZ1bGZpbGxlZCIpOworICBhc3NlcnRfZXF1YWxzKGF3
YWl0IGYoUHJvbWlzZS5yZWplY3QoKSksICJyZWplY3RlZCIpOworICBhc3NlcnRfZXF1YWxzKGF3
YWl0IGYobmV3IFByb21pc2UoKCkgPT4ge30pKSwgInBlbmRpbmciKTsKK30sIGAke2YubmFtZX0g
aGVscGVyIHdvcmtzYCkpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CisgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjLmNyZWF0ZU9m
ZmVyKCkpOworICBjb25zdCBwID0gcGMuY3JlYXRlT2ZmZXIoKTsKKyAgY29uc3QgaGF2ZVN0YXRl
ID0gcHJvbWlzZVN0YXRlRmluYWwocCk7CisgIHRyeSB7CisgICAgYXdhaXQgcDsKKyAgICBhc3Nl
cnRfdW5yZWFjaGVkKCJDb250cm9sLiBNdXN0IG5vdCBzdWNjZWVkIik7CisgIH0gY2F0Y2ggKGUp
IHsKKyAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIkludmFsaWRTdGF0ZUVycm9yIik7CisgIH0K
KyAgYXNzZXJ0X2VxdWFscyhhd2FpdCBoYXZlU3RhdGUsICJyZWplY3RlZCIsICJwcm9taXNlIHJl
amVjdGVkIG9uIHNhbWUgdGFzayIpOworfSwgImNyZWF0ZU9mZmVyIG11c3QgZGV0ZWN0IEludmFs
aWRTdGF0ZUVycm9yIHN5bmNocm9ub3VzbHkgd2hlbiBjaGFpbiBpcyBlbXB0eSAocHJlcmVxdWlz
aXRlKSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Cisg
IGNvbnN0IHAgPSBwYy5jcmVhdGVBbnN3ZXIoKTsKKyAgY29uc3QgaGF2ZVN0YXRlID0gcHJvbWlz
ZVN0YXRlRmluYWwocCk7CisgIHRyeSB7CisgICAgYXdhaXQgcDsKKyAgICBhc3NlcnRfdW5yZWFj
aGVkKCJDb250cm9sLiBNdXN0IG5vdCBzdWNjZWVkIik7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBh
c3NlcnRfZXF1YWxzKGUubmFtZSwgIkludmFsaWRTdGF0ZUVycm9yIik7CisgIH0KKyAgYXNzZXJ0
X2VxdWFscyhhd2FpdCBoYXZlU3RhdGUsICJyZWplY3RlZCIsICJwcm9taXNlIHJlamVjdGVkIG9u
IHNhbWUgdGFzayIpOworfSwgImNyZWF0ZUFuc3dlciBtdXN0IGRldGVjdCBJbnZhbGlkU3RhdGVF
cnJvciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4gaXMgZW1wdHkgKHByZXJlcXVpc2l0ZSkiKTsK
KworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCBw
ID0gcGMuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOworICBjb25zdCBo
YXZlU3RhdGUgPSBwcm9taXNlU3RhdGVGaW5hbChwKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCBwOwor
ICAgIGFzc2VydF91bnJlYWNoZWQoIkNvbnRyb2wuIE11c3Qgbm90IHN1Y2NlZWQiKTsKKyAgfSBj
YXRjaCAoZSkgeworICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiSW52YWxpZFN0YXRlRXJyb3Ii
KTsKKyAgfQorICBhc3NlcnRfZXF1YWxzKGF3YWl0IGhhdmVTdGF0ZSwgInJlamVjdGVkIiwgInBy
b21pc2UgcmVqZWN0ZWQgb24gc2FtZSB0YXNrIik7Cit9LCAiU0xEKHJvbGxiYWNrKSBtdXN0IGRl
dGVjdCBJbnZhbGlkU3RhdGVFcnJvciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4gaXMgZW1wdHki
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25z
dCBwID0gcGMuYWRkSWNlQ2FuZGlkYXRlKCk7CisgIGNvbnN0IGhhdmVTdGF0ZSA9IHByb21pc2VT
dGF0ZUZpbmFsKHApOworICB0cnkgeworICAgIGF3YWl0IHA7CisgICAgYXNzZXJ0X3VucmVhY2hl
ZCgiQ29udHJvbC4gTXVzdCBub3Qgc3VjY2VlZCIpOworICB9IGNhdGNoIChlKSB7CisgICAgYXNz
ZXJ0X2VxdWFscyhlLm5hbWUsICJJbnZhbGlkU3RhdGVFcnJvciIpOworICB9CisgIGFzc2VydF9l
cXVhbHMocGMucmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJubyByZW1vdGUgZGVzY2lwdGlvbiIp
OworICBhc3NlcnRfZXF1YWxzKGF3YWl0IGhhdmVTdGF0ZSwgInJlamVjdGVkIiwgInByb21pc2Ug
cmVqZWN0ZWQgb24gc2FtZSB0YXNrIik7Cit9LCAiYWRkSWNlQ2FuZGlkYXRlIG11c3QgZGV0ZWN0
IEludmFsaWRTdGF0ZUVycm9yIHN5bmNocm9ub3VzbHkgd2hlbiBjaGFpbiBpcyBlbXB0eSIpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHRy
YW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIHRyYW5zY2VpdmVyLnN0
b3AoKTsKKyAgY29uc3QgcCA9IHRyYW5zY2VpdmVyLnNlbmRlci5yZXBsYWNlVHJhY2sobnVsbCk7
CisgIGNvbnN0IGhhdmVTdGF0ZSA9IHByb21pc2VTdGF0ZUZpbmFsKHApOworICB0cnkgeworICAg
IGF3YWl0IHA7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgiQ29udHJvbC4gTXVzdCBub3Qgc3VjY2Vl
ZCIpOworICB9IGNhdGNoIChlKSB7CisgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJJbnZhbGlk
U3RhdGVFcnJvciIpOworICB9CisgIGFzc2VydF9lcXVhbHMoYXdhaXQgaGF2ZVN0YXRlLCAicmVq
ZWN0ZWQiLCAicHJvbWlzZSByZWplY3RlZCBvbiBzYW1lIHRhc2siKTsKK30sICJyZXBsYWNlVHJh
Y2sgbXVzdCBkZXRlY3QgSW52YWxpZFN0YXRlRXJyb3Igc3luY2hyb25vdXNseSB3aGVuIGNoYWlu
IGlzIGVtcHR5IGFuZCB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIik7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5h
ZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgdHJhbnNjZWl2ZXIuc3RvcCgpOworICBjb25zdCBw
YXJhbWV0ZXJzID0gdHJhbnNjZWl2ZXIuc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgY29uc3Qg
cCA9IHRyYW5zY2VpdmVyLnNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpOworICBjb25z
dCBoYXZlU3RhdGUgPSBwcm9taXNlU3RhdGVGaW5hbChwKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCBw
OworICAgIGFzc2VydF91bnJlYWNoZWQoIkNvbnRyb2wuIE11c3Qgbm90IHN1Y2NlZWQiKTsKKyAg
fSBjYXRjaCAoZSkgeworICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiSW52YWxpZFN0YXRlRXJy
b3IiKTsKKyAgfQorICBhc3NlcnRfZXF1YWxzKGF3YWl0IGhhdmVTdGF0ZSwgInJlamVjdGVkIiwg
InByb21pc2UgcmVqZWN0ZWQgb24gc2FtZSB0YXNrIik7Cit9LCAic2V0UGFyYW1ldGVycyBtdXN0
IGRldGVjdCBJbnZhbGlkU3RhdGVFcnJvciBzeW5jaHJvbm91c2x5IGFsd2F5cyB3aGVuIHRyYW5z
Y2VpdmVyIGlzIHN0b3BwZWQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOworICBjb25zdCB7dHJhY2t9ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRk
VHJhbnNjZWl2ZXIoImF1ZGlvIikucmVjZWl2ZXI7CisgIGFzc2VydF9ub3RfZXF1YWxzKHRyYWNr
LCBudWxsKTsKKyAgY29uc3QgcCA9IHBjLmdldFN0YXRzKHRyYWNrKTsKKyAgY29uc3QgaGF2ZVN0
YXRlID0gcHJvbWlzZVN0YXRlRmluYWwocCk7CisgIHRyeSB7CisgICAgYXdhaXQgcDsKKyAgICBh
c3NlcnRfdW5yZWFjaGVkKCJDb250cm9sLiBNdXN0IG5vdCBzdWNjZWVkIik7CisgIH0gY2F0Y2gg
KGUpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIkludmFsaWRBY2Nlc3NFcnJvciIpOwor
ICB9CisgIGFzc2VydF9lcXVhbHMoYXdhaXQgaGF2ZVN0YXRlLCAicmVqZWN0ZWQiLCAicHJvbWlz
ZSByZWplY3RlZCBvbiBzYW1lIHRhc2siKTsKK30sICJwYy5nZXRTdGF0cyBtdXN0IGRldGVjdCBJ
bnZhbGlkQWNjZXNzRXJyb3Igc3luY2hyb25vdXNseSBhbHdheXMiKTsKKworLy8gSGVscGVyIGJ1
aWxkcyBvbiBhYm92ZSB0ZXN0cyB0byBjaGVjayBpZiBvcGVyYXRpb25zIHF1ZXVlIGlzIGVtcHR5
IG9yIG5vdC4KKy8vCisvLyBNZWFuaW5nIG9mICJlbXB0eSI6IEJlY2F1c2UgdGhpcyBoZWxwZXIg
dXNlcyB0aGUgc2xvcHB5IHByb21pc2VTdGF0ZUZpbmFsLAorLy8gaXQgbWF5IG5vdCBkZXRlY3Qg
b3BlcmF0aW9ucyBvbiB0aGUgY2hhaW4gdW5sZXNzIHRoZXkgYmxvY2sgdGhlIGN1cnJlbnQgcnVu
CisvLyBvZiB0aGUgZXZlbnQgbG9vcC4gSW4gb3RoZXIgd29yZHMsIGl0IG1heSBub3QgZGV0ZWN0
IG9wZXJhdGlvbnMgb24gdGhlIGNoYWluCisvLyB0aGF0IHJlc29sdmUgb24gdGhlIGVtcHR5aW5n
IG9mIHRoZSBtaWNyb3Rhc2sgcXVldWUgYXQgdGhlIGVuZCBvZiB0aGlzIHJ1biBvZgorLy8gdGhl
IGV2ZW50IGxvb3AuCisKK2FzeW5jIGZ1bmN0aW9uIGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMp
IHsKKyAgbGV0IHAsIGVycm9yOworICBjb25zdCBzaWduYWxpbmdTdGF0ZSA9IHBjLnNpZ25hbGlu
Z1N0YXRlOworICBpZiAoc2lnbmFsaW5nU3RhdGUgPT0gImhhdmUtcmVtb3RlLW9mZmVyIikgewor
ICAgIHAgPSBwYy5jcmVhdGVPZmZlcigpOworICB9IGVsc2UgeworICAgIHAgPSBwYy5jcmVhdGVB
bnN3ZXIoKTsKKyAgfQorICBjb25zdCBzdGF0ZSA9IGF3YWl0IHByb21pc2VTdGF0ZUZpbmFsKHAp
OworICB0cnkgeworICAgIGF3YWl0IHA7CisgICAgLy8gVGhpcyBoZWxwZXIgdHJpZXMgdG8gYXZv
aWQgc2lkZS1lZmZlY3RzIGJ5IGFsd2F5cyBmYWlsaW5nLAorICAgIC8vIGJ1dCBjcmVhdGVBbnN3
ZXIgYWJvdmUgbWF5IHN1Y2NlZWQgaWYgY2hhaW5lZCBhZnRlciBhbiBTUkQKKyAgICAvLyB0aGF0
IGNoYW5nZXMgdGhlIHNpZ25hbGluZyBzdGF0ZSBvbiB1cy4gSWdub3JlIHRoYXQgc3VjY2Vzcy4K
KyAgICBpZiAoc2lnbmFsaW5nU3RhdGUgPT0gcGMuc2lnbmFsaW5nU3RhdGUpIHsKKyAgICAgIGFz
c2VydF91bnJlYWNoZWQoIkNvbnRyb2wuIE11c3Qgbm90IHN1Y2NlZWQiKTsKKyAgICB9CisgIH0g
Y2F0Y2ggKGUpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIkludmFsaWRTdGF0ZUVycm9y
IiwKKyAgICAgICAgICAgICAgICAgICJpc09wZXJhdGlvbnNDaGFpbkVtcHR5IGlzIHdvcmtpbmci
KTsKKyAgfQorICByZXR1cm4gc3RhdGUgPT0gInJlamVjdGVkIjsKK30KKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBhc3NlcnRfdHJ1ZShhd2FpdCBpc09w
ZXJhdGlvbnNDaGFpbkVtcHR5KHBjKSwgIkVtcHR5IHRvIHN0YXJ0Iik7Cit9LCAiaXNPcGVyYXRp
b25zQ2hhaW5FbXB0eSBkZXRlY3RzIGVtcHR5IGluIHN0YWJsZSIpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGF3YWl0IHBjLnNldExvY2FsRGVzY3Jp
cHRpb24oYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKSk7CisgIGFzc2VydF90cnVlKGF3YWl0IGlzT3Bl
cmF0aW9uc0NoYWluRW1wdHkocGMpLCAiRW1wdHkgdG8gc3RhcnQiKTsKK30sICJpc09wZXJhdGlv
bnNDaGFpbkVtcHR5IGRldGVjdHMgZW1wdHkgaW4gaGF2ZS1sb2NhbC1vZmZlciIpOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGF3YWl0IHBjLnNldFJl
bW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCkpOworICBhc3NlcnRfdHJ1ZShh
d2FpdCBpc09wZXJhdGlvbnNDaGFpbkVtcHR5KHBjKSwgIkVtcHR5IHRvIHN0YXJ0Iik7Cit9LCAi
aXNPcGVyYXRpb25zQ2hhaW5FbXB0eSBkZXRlY3RzIGVtcHR5IGluIGhhdmUtcmVtb3RlLW9mZmVy
Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29u
c3QgcCA9IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGFzc2VydF9mYWxzZShhd2FpdCBpc09wZXJhdGlv
bnNDaGFpbkVtcHR5KHBjKSwgIk5vbi1lbXB0eSBjaGFpbiIpOworICBhd2FpdCBwOworfSwgImNy
ZWF0ZU9mZmVyIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9u
KGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCkpOworICBjb25zdCBwID0gcGMuY3JlYXRlQW5zd2VyKCk7
CisgIGFzc2VydF9mYWxzZShhd2FpdCBpc09wZXJhdGlvbnNDaGFpbkVtcHR5KHBjKSwgIk5vbi1l
bXB0eSBjaGFpbiIpOworICBhd2FpdCBwOworfSwgImNyZWF0ZUFuc3dlciB1c2VzIG9wZXJhdGlv
bnMgY2hhaW4iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGFzc2VydF90cnVl
KGF3YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMpLCAiRW1wdHkgYmVmb3JlIik7CisgIGNv
bnN0IHAgPSBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXNzZXJ0X2ZhbHNlKGF3
YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMpLCAiTm9uLWVtcHR5IGNoYWluIik7CisgIGF3
YWl0IHA7Cit9LCAic2V0TG9jYWxEZXNjcmlwdGlvbiB1c2VzIG9wZXJhdGlvbnMgY2hhaW4iKTsK
KworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCBv
ZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGFzc2VydF90cnVlKGF3YWl0IGlzT3Bl
cmF0aW9uc0NoYWluRW1wdHkocGMpLCAiRW1wdHkgYmVmb3JlIik7CisgIGNvbnN0IHAgPSBwYy5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGFzc2VydF9mYWxzZShhd2FpdCBpc09wZXJh
dGlvbnNDaGFpbkVtcHR5KHBjKSwgIk5vbi1lbXB0eSBjaGFpbiIpOworICBhd2FpdCBwOworfSwg
InNldFJlbW90ZURlc2NyaXB0aW9uIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiIpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkp
OworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2Fp
dCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2Zm
ZXIpOworICBjb25zdCB7Y2FuZGlkYXRlfSA9IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
aWNlY2FuZGlkYXRlID0gcik7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZl
cik7CisgIGNvbnN0IHAgPSBwYzIuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CisgIGFzc2Vy
dF9mYWxzZShhd2FpdCBpc09wZXJhdGlvbnNDaGFpbkVtcHR5KHBjMiksICJOb24tZW1wdHkgY2hh
aW4iKTsKKyAgYXdhaXQgcDsKK30sICJhZGRJY2VDYW5kaWRhdGUgdXNlcyBvcGVyYXRpb25zIGNo
YWluIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAg
Y29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgYXdhaXQg
bmV3IFByb21pc2UociA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGFzc2VydF90
cnVlKGF3YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMpLCAiRW1wdHkgY2hhaW4iKTsKKyAg
YXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChyLCAwKSk7CisgIGFzc2VydF90
cnVlKGF3YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMpLCAiRW1wdHkgY2hhaW4iKTsKK30s
ICJGaXJpbmcgb2YgbmVnb3RpYXRpb25uZWVkZWQgZG9lcyBOT1QgdXNlIG9wZXJhdGlvbnMgY2hh
aW4iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Cisg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKKworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIHBj
MS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3Jl
YXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBj
b25zdCBjYW5kaWRhdGVzID0gW107CisgIGZvciAobGV0IGM7IChjID0gKGF3YWl0IG5ldyBQcm9t
aXNlKHIgPT4gcGMxLm9uaWNlY2FuZGlkYXRlID0gcikpLmNhbmRpZGF0ZSk7KSB7CisgICAgY2Fu
ZGlkYXRlcy5wdXNoKGMpOworICB9CisgIHBjMi5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAg
bGV0IGZpcmVkID0gZmFsc2U7CisgIGNvbnN0IHAgPSBuZXcgUHJvbWlzZShyID0+IHBjMi5vbm5l
Z290aWF0aW9ubmVlZGVkID0gKCkgPT4gcihmaXJlZCA9IHRydWUpKTsKKyAgYXdhaXQgUHJvbWlz
ZS5hbGwoWworICAgIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlciksCisgICAgLi4uY2Fu
ZGlkYXRlcy5tYXAoY2FuZGlkYXRlID0+IHBjMi5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKSks
CisgICAgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oKQorICBdKTsKKyAgYXNzZXJ0X2ZhbHNlKGZp
cmVkLCAiTmVnb3RpYXRpb25uZWVkZWQgbXVzdG4ndCBoYXZlIGZpcmVkIHlldC4iKTsKKyAgYXdh
aXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChyLCAwKSk7CisgIGFzc2VydF90cnVl
KGZpcmVkLCAiTmVnb3RpYXRpb25uZWVkZWQgbXVzdCBoYXZlIGZpcmVkIGJ5IG5vdy4iKTsKKyAg
YXdhaXQgcDsKK30sICJOZWdvdGlhdGlvbm5lZWRlZCBvbmx5IGZpcmVzIG9uY2Ugb3BlcmF0aW9u
cyBjaGFpbiBpcyBlbXB0eSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoImF1ZGlv
Iik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIp
OworICAvLyBOb3RlOiBzaW5jZSB0aGUgbmVnb3RpYXRpb25uZWVkZWQgZXZlbnQgaXMgZmlyZWQg
ZnJvbSBhIGNoYWluZWQgc3luY2hyb25vdXMKKyAgLy8gZnVuY3Rpb24gaW4gdGhlIHNwZWMsIHF1
ZXVlIGEgdGFzayBiZWZvcmUgZG9pbmcgb3VyIHByZWNoZWNrLgorICBhd2FpdCBuZXcgUHJvbWlz
ZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKKyAgYXNzZXJ0X3RydWUoYXdhaXQgaXNPcGVy
YXRpb25zQ2hhaW5FbXB0eShwYyksICJFbXB0eSBjaGFpbiIpOworICBjb25zdCBwID0gdHJhbnNj
ZWl2ZXIuc2VuZGVyLnJlcGxhY2VUcmFjayhudWxsKTsKKyAgYXNzZXJ0X2ZhbHNlKGF3YWl0IGlz
T3BlcmF0aW9uc0NoYWluRW1wdHkocGMpLCAiTm9uLWVtcHR5IGNoYWluIik7CisgIGF3YWl0IHA7
Cit9LCAicmVwbGFjZVRyYWNrIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiIpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMu
b25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3Rl
cF90aW1lb3V0KHIsIDApKTsKKyAgYXNzZXJ0X3RydWUoYXdhaXQgaXNPcGVyYXRpb25zQ2hhaW5F
bXB0eShwYyksICJFbXB0eSBjaGFpbiIpOworICBjb25zdCBwYXJhbWV0ZXJzID0gdHJhbnNjZWl2
ZXIuc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgY29uc3QgcCA9IHRyYW5zY2VpdmVyLnNlbmRl
ci5zZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpOworICBjb25zdCBoYXZlU3RhdGUgPSBwcm9taXNl
U3RhdGVGaW5hbChwKTsKKyAgYXNzZXJ0X3RydWUoYXdhaXQgaXNPcGVyYXRpb25zQ2hhaW5FbXB0
eShwYyksICJFbXB0eSBjaGFpbiIpOworICBhc3NlcnRfZXF1YWxzKGF3YWl0IGhhdmVTdGF0ZSwg
InBlbmRpbmciLCAiTWV0aG9kIGlzIGFzeW5jIik7CisgIGF3YWl0IHA7Cit9LCAic2V0UGFyYW1l
dGVycyBkb2VzIE5PVCB1c2UgdGhlIG9wZXJhdGlvbnMgY2hhaW4iKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCBwID0gcGMuZ2V0U3RhdHMo
KTsKKyAgY29uc3QgaGF2ZVN0YXRlID0gcHJvbWlzZVN0YXRlRmluYWwocCk7CisgIGFzc2VydF90
cnVlKGF3YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMpLCAiRW1wdHkgY2hhaW4iKTsKKyAg
YXNzZXJ0X2VxdWFscyhhd2FpdCBoYXZlU3RhdGUsICJwZW5kaW5nIiwgIk1ldGhvZCBpcyBhc3lu
YyIpOworICBhd2FpdCBwOworfSwgInBjLmdldFN0YXRzIGRvZXMgTk9UIHVzZSB0aGUgb3BlcmF0
aW9ucyBjaGFpbiIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2Uo
KSk7CisgIGNvbnN0IHtzZW5kZXJ9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3
YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2Fp
dCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKKyAgYXNzZXJ0X3RydWUo
YXdhaXQgaXNPcGVyYXRpb25zQ2hhaW5FbXB0eShwYyksICJFbXB0eSBjaGFpbiIpOworICBjb25z
dCBwID0gc2VuZGVyLmdldFN0YXRzKCk7CisgIGNvbnN0IGhhdmVTdGF0ZSA9IHByb21pc2VTdGF0
ZUZpbmFsKHApOworICBhc3NlcnRfdHJ1ZShhd2FpdCBpc09wZXJhdGlvbnNDaGFpbkVtcHR5KHBj
KSwgIkVtcHR5IGNoYWluIik7CisgIGFzc2VydF9lcXVhbHMoYXdhaXQgaGF2ZVN0YXRlLCAicGVu
ZGluZyIsICJNZXRob2QgaXMgYXN5bmMiKTsKKyAgYXdhaXQgcDsKK30sICJzZW5kZXIuZ2V0U3Rh
dHMgZG9lcyBOT1QgdXNlIHRoZSBvcGVyYXRpb25zIGNoYWluIik7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qge3JlY2VpdmVyfSA9IHBjLmFk
ZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLm9ubmVn
b3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGlt
ZW91dChyLCAwKSk7CisgIGFzc2VydF90cnVlKGF3YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHko
cGMpLCAiRW1wdHkgY2hhaW4iKTsKKyAgY29uc3QgcCA9IHJlY2VpdmVyLmdldFN0YXRzKCk7Cisg
IGNvbnN0IGhhdmVTdGF0ZSA9IHByb21pc2VTdGF0ZUZpbmFsKHApOworICBhc3NlcnRfdHJ1ZShh
d2FpdCBpc09wZXJhdGlvbnNDaGFpbkVtcHR5KHBjKSwgIkVtcHR5IGNoYWluIik7CisgIGFzc2Vy
dF9lcXVhbHMoYXdhaXQgaGF2ZVN0YXRlLCAicGVuZGluZyIsICJNZXRob2QgaXMgYXN5bmMiKTsK
KyAgYXdhaXQgcDsKK30sICJyZWNlaXZlci5nZXRTdGF0cyBkb2VzIE5PVCB1c2UgdGhlIG9wZXJh
dGlvbnMgY2hhaW4iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBwYzEuYWRkVHJhbnNjZWl2ZXIoInZpZGVv
Iik7CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3Qge2NhbmRpZGF0ZX0gPSBhd2Fp
dCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbmljZWNhbmRpZGF0ZSA9IHIpOworICB0cnkgeworICAg
IGF3YWl0IHBjMi5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKKyAgICBhc3NlcnRfdW5yZWFj
aGVkKCJDb250cm9sLiBNdXN0IG5vdCBzdWNjZWVkIik7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBh
c3NlcnRfZXF1YWxzKGUubmFtZSwgIkludmFsaWRTdGF0ZUVycm9yIik7CisgIH0KKyAgY29uc3Qg
cCA9IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGF3YWl0IHBjMi5hZGRJY2VD
YW5kaWRhdGUoY2FuZGlkYXRlKTsKKyAgYXdhaXQgcDsKK30sICJhZGRJY2VDYW5kaWRhdGUgY2hh
aW5zIG9udG8gU1JELCBmYWlscyBiZWZvcmUiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworCisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2Zm
ZXIoKTsKKyAgcGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7CisgIGF3YWl0IG5ldyBQcm9taXNl
KHIgPT4gcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBjb25zdCBwID0gKGFzeW5jICgp
ID0+IHsKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIH0pKCk7CisgIGF3
YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMCkpOworICBhd2FpdCBwYy5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGF3YWl0IHA7Cit9LCAiT3BlcmF0aW9ucyBx
dWV1ZSBub3QgdnVsbmVyYWJsZSB0byByZWN1cnNpb24gYnkgY2hhaW5lZCBuZWdvdGlhdGlvbm5l
ZWRlZCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsK
KyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAg
YXdhaXQgUHJvbWlzZS5hbGwoWworICAgIHBjMS5jcmVhdGVPZmZlcigpLAorICAgIHBjMS5zZXRM
b2NhbERlc2NyaXB0aW9uKHt0eXBlOiAib2ZmZXIifSkKKyAgXSk7CisgIGF3YWl0IFByb21pc2Uu
YWxsKFsKKyAgICBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24p
LAorICAgIHBjMi5jcmVhdGVBbnN3ZXIoKSwKKyAgICBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbih7
dHlwZTogImFuc3dlciJ9KQorICBdKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9u
KHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKK30sICJQYWNrIG9wZXJhdGlvbnMgcXVldWUgd2l0aCBp
bXBsaWNpdCBvZmZlciBhbmQgYW5zd2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgY29uc3Qgc3RhdGUg
PSAocGMsIHMpID0+IG5ldyBQcm9taXNlKHIgPT4gcGMub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBwYy5zaWduYWxp
bmdTdGF0ZSA9PSBzICYmIHIoKSk7CisgIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAg
cGMxLmNyZWF0ZU9mZmVyKCk7CisgIHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAib2Zm
ZXIifSk7CisgIGF3YWl0IHN0YXRlKHBjMSwgImhhdmUtbG9jYWwtb2ZmZXIiKTsKKyAgcGMyLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgcGMyLmNyZWF0ZUFu
c3dlcigpOworICBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogImFuc3dlciJ9KTsKKyAg
YXdhaXQgc3RhdGUocGMyLCAic3RhYmxlIik7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlw
dGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7Cit9LCAiTmVnb3RpYXRlIHNvbGVseSBieSBvcGVy
YXRpb25zIHF1ZXVlIGFuZCBzaWduYWxpbmcgc3RhdGUiKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNlOTNmYWJjNDYwOWFiMzIwNTY2MWM0MDA3OTY1MGY1MmVjYTlmMTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACisKK0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzZXR1cCBj
b25uZWN0cyBOb3QgZW5vdWdoIGFyZ3VtZW50cworRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9uIHNl
dHVwIGNvbm5lY3RzIHdpdGggcm9sZXMgcmV2ZXJzZWQgTm90IGVub3VnaCBhcmd1bWVudHMKK0ZB
SUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZSBOb3QgZW5vdWdoIGFyZ3VtZW50cworRkFJTCBQ
ZXJmZWN0IG5lZ290aWF0aW9uIGdsYXJlIHdpdGggcm9sZXMgcmV2ZXJzZWQgTm90IGVub3VnaCBh
cmd1bWVudHMKK0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgTm90IGVub3Vn
aCBhcmd1bWVudHMKK0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgd2l0aCBy
b2xlcyByZXZlcnNlZCBOb3QgZW5vdWdoIGFyZ3VtZW50cworRkFJTCBQZXJmZWN0IG5lZ290aWF0
aW9uIHN0cmVzcyBnbGFyZSBsaW5lYXIgTm90IGVub3VnaCBhcmd1bWVudHMKK0ZBSUwgUGVyZmVj
dCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIHdpdGggcm9sZXMgcmV2ZXJzZWQgTm90
IGVub3VnaCBhcmd1bWVudHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdv
dGlhdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRw
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFkMjcyNWMzM2NhNjZiMzAzOTU5ZjMyZDEwN2FlNTE2YmFkZTRh
NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0
dHBzLmh0bWwKQEAgLTAsMCArMSwxODYgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPjwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2Z1bmN0aW9uIHBlZXIob3RoZXIsIHBvbGl0ZSwgZmFp
bCA9IG51bGwpIHsKKyAgY29uc3Qgc2VuZCA9ICh0Z3QsIG1zZykgPT4gdGd0LnBvc3RNZXNzYWdl
KEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobXNnKSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiKiIpOworICBpZiAoIWZhaWwpIGZhaWwgPSBlID0+IHNl
bmQod2luZG93LnBhcmVudCwge2Vycm9yOiBgJHtlLm5hbWV9OiAke2UubWVzc2FnZX1gfSk7Cisg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgaWYgKCF3aW5kb3cuYXNz
ZXJ0X2VxdWFscykgeworICAgIHdpbmRvdy5hc3NlcnRfZXF1YWxzID0gKGEsIGIsIG1zZykgPT4g
YSA9PT0gYiB8fAorICAgICAgICBmYWlsKG5ldyBFcnJvcihgJHttc2d9IGV4cGVjdGVkICR7Yn0g
YnV0IGdvdCAke2F9YCkpOworICB9CisKKyAgY29uc3QgY29tbWFuZHMgPSB7CisgICAgYXN5bmMg
YWRkVHJhbnNjZWl2ZXIoKSB7CisgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5z
Y2VpdmVyKCJ2aWRlbyIpOworICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYy5hZGRFdmVu
dExpc3RlbmVyKCJuZWdvdGlhdGVkIiwgciwge29uY2U6IHRydWV9KSk7CisgICAgICBpZiAoIXRy
YW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24pIHsKKyAgICAgICAgLy8gTWlnaHQgaGF2ZSBqdXN0
IG1pc3NlZCB0aGUgbmVnb3RpYXRpb24gdHJhaW4uIENhdGNoIG5leHQgb25lLgorICAgICAgICBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLmFkZEV2ZW50TGlzdGVuZXIoIm5lZ290aWF0ZWQiLCBy
LCB7b25jZTogdHJ1ZX0pKTsKKyAgICAgIH0KKyAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2
ZXIuY3VycmVudERpcmVjdGlvbiwgInNlbmRvbmx5IiwgImhhdmUgZGlyZWN0aW9uIik7CisgICAg
ICByZXR1cm4gcGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoOworICAgIH0sCisgICAgYXN5bmMg
c2ltcGxlQ29ubmVjdCgpIHsKKyAgICAgIGNvbnN0IHAgPSBjb21tYW5kcy5hZGRUcmFuc2NlaXZl
cigpOworICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYy5vbmljZWNvbm5lY3Rpb25zdGF0
ZWNoYW5nZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBwYy5pY2VDb25uZWN0aW9u
U3RhdGUgPT0gImNvbm5lY3RlZCIgJiYgcigpKTsKKyAgICAgIHJldHVybiBhd2FpdCBwOworICAg
IH0sCisgICAgYXN5bmMgZ2V0TnVtVHJhbnNjZWl2ZXJzKCkgeworICAgICAgcmV0dXJuIHBjLmdl
dFRyYW5zY2VpdmVycygpLmxlbmd0aDsKKyAgICB9LAorICB9OworCisgIHRyeSB7CisgICAgcGMu
YWRkRXZlbnRMaXN0ZW5lcigiaWNlY2FuZGlkYXRlIiwgKHtjYW5kaWRhdGV9KSA9PiBzZW5kKG90
aGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7Y2FuZGlkYXRlfSkpOworICAgIGxldCBtYWtpbmdPZmZlciA9IGZhbHNlLCBp
Z25vcmVPZmZlciA9IGZhbHNlOworICAgIHBjLmFkZEV2ZW50TGlzdGVuZXIoIm5lZ290aWF0aW9u
bmVlZGVkIiwgYXN5bmMgKCkgPT4geworICAgICAgdHJ5IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhwYy5zaWduYWxpbmdTdGF0ZSwgInN0YWJsZSIsICJuZWdvdGlhdGlvbm5lZWRlZCBhbHdheXMg
ZmlyZXMgaW4gc3RhYmxlIHN0YXRlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMobWFraW5nT2Zm
ZXIsIGZhbHNlLCAibmVnb3RpYXRpb25uZWVkZWQgbm90IGFscmVhZHkgaW4gcHJvZ3Jlc3MiKTsK
KyAgICAgICAgbWFraW5nT2ZmZXIgPSB0cnVlOworICAgICAgICBhd2FpdCBwYy5zZXRMb2NhbERl
c2NyaXB0aW9uKCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMuc2lnbmFsaW5nU3RhdGUsICJo
YXZlLWxvY2FsLW9mZmVyIiwgIm5lZ290aWF0aW9ubmVlZGVkIG5vdCByYWNpbmcgd2l0aCBvbm1l
c3NhZ2UiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5sb2NhbERlc2NyaXB0aW9uLnR5cGUs
ICJvZmZlciIsICJuZWdvdGlhdGlvbm5lZWRlZCBTTEQgd29ya2VkIik7CisgICAgICAgIHNlbmQo
b3RoZXIsIHtkZXNjcmlwdGlvbjogcGMubG9jYWxEZXNjcmlwdGlvbn0pOworICAgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBmYWlsKGUpOworICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgbWFr
aW5nT2ZmZXIgPSBmYWxzZTsKKyAgICAgIH0KKyAgICB9KTsKKyAgICB3aW5kb3cub25tZXNzYWdl
ID0gYXN5bmMgKHtkYXRhOiB7ZGVzY3JpcHRpb24sIGNhbmRpZGF0ZSwgcnVufX0pID0+IHsKKyAg
ICAgIHRyeSB7CisgICAgICAgIGlmIChkZXNjcmlwdGlvbikgeworICAgICAgICAgIGlnbm9yZU9m
ZmVyID0gZGVzY3JpcHRpb24udHlwZSA9PSAib2ZmZXIiICYmICFwb2xpdGUgJiYKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAobWFraW5nT2ZmZXIgfHwgcGMuc2lnbmFsaW5nU3RhdGUgIT0gInN0
YWJsZSIpOworICAgICAgICAgIGlmIChpZ25vcmVPZmZlcikgeworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgIH0KKyAgICAgICAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihk
ZXNjcmlwdGlvbik7CisgICAgICAgICAgaWYgKGRlc2NyaXB0aW9uLnR5cGUgPT0gIm9mZmVyIikg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgImhhdmUtcmVt
b3RlLW9mZmVyIiwgIlJlbW90ZSBvZmZlciIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhw
Yy5yZW1vdGVEZXNjcmlwdGlvbi50eXBlLCAib2ZmZXIiLCAiU1JEIHdvcmtlZCIpOworICAgICAg
ICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgInN0YWJsZSIsICJvbm1lc3NhZ2Ugbm90IHJhY2lu
ZyB3aXRoIG5lZ290aWF0aW9ubmVlZGVkIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBj
LmxvY2FsRGVzY3JpcHRpb24udHlwZSwgImFuc3dlciIsICJvbm1lc3NhZ2UgU0xEIHdvcmtlZCIp
OworICAgICAgICAgICAgc2VuZChvdGhlciwge2Rlc2NyaXB0aW9uOiBwYy5sb2NhbERlc2NyaXB0
aW9ufSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMu
cmVtb3RlRGVzY3JpcHRpb24udHlwZSwgImFuc3dlciIsICJBbnN3ZXIgd2FzIHNldCIpOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgInN0YWJsZSIsICJhbnN3
ZXJlZCIpOworICAgICAgICAgICAgcGMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoIm5lZ290aWF0
ZWQiKSk7CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGNhbmRpZGF0ZSkgeworICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoY2FuZGlk
YXRlKTsKKyAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICBpZiAoIWlnbm9yZU9m
ZmVyKSB0aHJvdyBlOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChydW4pIHsKKyAg
ICAgICAgICBzZW5kKHdpbmRvdy5wYXJlbnQsIHtbcnVuLmlkXTogYXdhaXQgY29tbWFuZHNbcnVu
LmNtZF0oKSB8fCAwfSk7CisgICAgICAgIH0KKyAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ZmFpbChlKTsKKyAgICAgIH0KKyAgICB9OworICB9IGNhdGNoIChlKSB7CisgICAgZmFpbChlKTsK
KyAgfQorICByZXR1cm4gcGM7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHNldHVwUGVlcklmcmFtZSh0
LCBwb2xpdGUpIHsKKyAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gaWZyYW1lLnJlbW92ZSgpKTsKKyAgaWZyYW1l
LnNyY2RvYyA9CisgICBgPGh0bWxcPjxzY3JpcHRcPigke3BlZXIudG9TdHJpbmcoKX0pKHdpbmRv
dy5wYXJlbnQsICR7cG9saXRlfSk7PC9zY3JpcHRcPjwvaHRtbFw+YDsKKyAgZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGlmcmFtZSk7CisKKyAgY29uc3QgZmFpbENhdGNoZXIg
PSB0LnN0ZXBfZnVuYygoe2RhdGF9KSA9PgorICAgICAgKCJlcnJvciIgaW4gZGF0YSkgJiYgYXNz
ZXJ0X3VucmVhY2hlZChgRXJyb3IgaW4gaWZyYW1lOiAke2RhdGEuZXJyb3J9YCkpOworICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZhaWxDYXRjaGVyKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZhaWxDYXRj
aGVyKSk7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gaWZyYW1lLm9ubG9hZCA9IHIpOworICBy
ZXR1cm4gaWZyYW1lOworfQorCitmdW5jdGlvbiBzZXR1cFBlZXJUb3BMZXZlbCh0LCBvdGhlciwg
cG9saXRlKSB7CisgIGNvbnN0IHBjID0gcGVlcihvdGhlciwgcG9saXRlLCB0LnN0ZXBfZnVuYyhl
ID0+IHsgdGhyb3cgZTsgfSkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHsgcGMuY2xvc2UoKTsg
d2luZG93Lm9ubWVzc2FnZSA9IG51bGw7IH0pOworfQorCitsZXQgY291bnRlciA9IDA7Cithc3lu
YyBmdW5jdGlvbiBydW4odGFyZ2V0LCBjbWQpIHsKKyAgY29uc3QgaWQgPSBgcmVzdWx0JHtjb3Vu
dGVyKyt9YDsKKyAgdGFyZ2V0LnBvc3RNZXNzYWdlKHtydW46IHtjbWQsIGlkfX0sICIqIik7Cisg
IHJldHVybiBuZXcgUHJvbWlzZShyID0+IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Y3Rpb24gbGlzdGVuKHtkYXRhfSkgeworICAgIGlmICghKGlkIGluIGRhdGEpKSByZXR1cm47Cisg
ICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBsaXN0ZW4pOworICAgIHIo
ZGF0YVtpZF0pOworICB9KSk7Cit9CisKK2xldCBpZnJhbWU7Cithc3luYyBmdW5jdGlvbiBzZXR1
cEFCKHQsIHBvbGl0ZUEsIHBvbGl0ZUIpIHsKKyAgaWZyYW1lID0gYXdhaXQgc2V0dXBQZWVySWZy
YW1lKHQsIHBvbGl0ZUIpOworICByZXR1cm4gc2V0dXBQZWVyVG9wTGV2ZWwodCwgaWZyYW1lLmNv
bnRlbnRXaW5kb3csIHBvbGl0ZUEpOworfQorY29uc3QgcnVuQSA9IGNtZCA9PiBydW4od2luZG93
LCBjbWQpOworY29uc3QgcnVuQiA9IGNtZCA9PiBydW4oaWZyYW1lLmNvbnRlbnRXaW5kb3csIGNt
ZCk7Citjb25zdCBydW5Cb3RoID0gKGNtZEEsIGNtZEIgPSBjbWRBKSA9PiBQcm9taXNlLmFsbChb
cnVuQShjbWRBKSwgcnVuQihjbWRCKV0pOworCithc3luYyBmdW5jdGlvbiBwcm9taXNlX3Rlc3Rf
Ym90aF9yb2xlcyhmLCBuYW1lKSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IGYodCwgYXdh
aXQgc2V0dXBBQih0LCB0cnVlLCBmYWxzZSkpLCBuYW1lKTsKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gZih0LCBhd2FpdCBzZXR1cEFCKHQsIGZhbHNlLCB0cnVlKSksCisgICAgICAgICAgICAg
ICBgJHtuYW1lfSB3aXRoIHJvbGVzIHJldmVyc2VkYCk7Cit9CisKK3Byb21pc2VfdGVzdF9ib3Ro
X3JvbGVzKGFzeW5jICh0LCBwYykgPT4geworICBhc3NlcnRfZXF1YWxzKGF3YWl0IHJ1bkEoInNp
bXBsZUNvbm5lY3QiKSwgMSwgIm9uZSB0cmFuc2NlaXZlciIpOworICBhc3NlcnRfZXF1YWxzKGF3
YWl0IHJ1bkIoImFkZFRyYW5zY2VpdmVyIiksIDIsICJ0d28gdHJhbnNjZWl2ZXJzIik7Cit9LCAi
UGVyZmVjdCBuZWdvdGlhdGlvbiBzZXR1cCBjb25uZWN0cyIpOworCitwcm9taXNlX3Rlc3RfYm90
aF9yb2xlcyhhc3luYyAodCwgcGMpID0+IHsKKyAgYXdhaXQgcnVuQm90aCgiYWRkVHJhbnNjZWl2
ZXIiKTsKKyAgY29uc3QgW251bUEsIG51bUJdID0gYXdhaXQgcnVuQm90aCgiZ2V0TnVtVHJhbnNj
ZWl2ZXJzIik7CisgIGFzc2VydF9lcXVhbHMobnVtQSwgMiwgInR3byB0cmFuc2NlaXZlcnMgb24g
c2lkZSBBIik7CisgIGFzc2VydF9lcXVhbHMobnVtQiwgMiwgInR3byB0cmFuc2NlaXZlcnMgb24g
c2lkZSBCIik7Cit9LCAiUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZSIpOworCitwcm9taXNlX3Rl
c3RfYm90aF9yb2xlcyhhc3luYyAodCwgcGMpID0+IHsKKyAgY29uc3QgcHMgPSBbXTsKKyAgZm9y
IChsZXQgaSA9IDIwOyBpID4gMDsgaS0tKSB7CisgICAgcHMucHVzaChydW5Cb3RoKCJhZGRUcmFu
c2NlaXZlciIpKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIs
IGkgLSAxKSk7CisgIH0KKyAgcHMucHVzaChydW5Cb3RoKCJhZGRUcmFuc2NlaXZlciIpKTsKKyAg
YXdhaXQgUHJvbWlzZS5hbGwocHMpOworICBjb25zdCBbbnVtQSwgbnVtQl0gPSBhd2FpdCBydW5C
b3RoKCJnZXROdW1UcmFuc2NlaXZlcnMiKTsKKyAgYXNzZXJ0X2VxdWFscyhudW1BLCA0MiwgIjQy
IHRyYW5zY2VpdmVycyBvbiBzaWRlIEEiKTsKKyAgYXNzZXJ0X2VxdWFscyhudW1CLCA0MiwgIjQy
IHRyYW5zY2VpdmVycyBvbiBzaWRlIEIiKTsKK30sICJQZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVz
cyBnbGFyZSIpOworCitwcm9taXNlX3Rlc3RfYm90aF9yb2xlcyhhc3luYyAodCwgcGMpID0+IHsK
KyAgY29uc3QgcHMgPSBbXTsKKyAgZm9yIChsZXQgaSA9IDIwOyBpID4gMDsgaS0tKSB7CisgICAg
cHMucHVzaChydW5Cb3RoKCJhZGRUcmFuc2NlaXZlciIpKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKKyAgfQorICBwcy5wdXNoKHJ1bkJvdGgoImFk
ZFRyYW5zY2VpdmVyIikpOworICBhd2FpdCBQcm9taXNlLmFsbChwcyk7CisgIGNvbnN0IFtudW1B
LCBudW1CXSA9IGF3YWl0IHJ1bkJvdGgoImdldE51bVRyYW5zY2VpdmVycyIpOworICBhc3NlcnRf
ZXF1YWxzKG51bUEsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQSIpOworICBhc3NlcnRf
ZXF1YWxzKG51bUIsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQiIpOworfSwgIlBlcmZl
Y3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIGxpbmVhciIpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMuaHRtbAppbmRleCBjNGM2YjRmZDA0MTBkZDQ1ZTk5
ZDhhZTMxM2VkZTQyYWU3NTkzZTQ5Li5jMjgwYTdkNDRkOGQyYTQ3N2YyNjAwYzc0MWVkNjg5MDNl
NTE2NjUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0ZS5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLmh0bWwKQEAgLTEs
NSArMSw2IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi10
cmFuc2NlaXZlcnMuaHR0cHMuaHRtbDwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CkBAIC03MiwxMiArNzMsMTYgQEAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewogICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOwogCiAgIGNv
bnN0IGUgPSBhd2FpdCBleGNoYW5nZU9mZmVyQW5kTGlzdGVuVG9PbnRyYWNrKHQsIHBjMSwgcGMy
KTsKKyAgY29uc3QgbXV0ZVdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGUudHJhY2ssIFsn
bXV0ZScsICd1bm11dGUnXSk7CiAgIGF3YWl0IGV4Y2hhbmdlQW5zd2VyKHBjMSwgcGMyKTsKKyAg
YXdhaXQgbXV0ZVdhdGNoZXIud2FpdF9mb3IoJ3VubXV0ZScpOworCisgIGNvbnN0IG11dGVQcm9t
aXNlID0gbXV0ZVdhdGNoZXIud2FpdF9mb3IoJ211dGUnKTsKICAgbG9jYWxUcmFuc2NlaXZlci5k
aXJlY3Rpb24gPSAnaW5hY3RpdmUnOwogICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwg
cGMyKTsKKyAgYXdhaXQgbXV0ZVByb21pc2U7CiAKLSAgY29uc3QgdW5tdXRlV2F0Y2hlciA9IG5l
dyBFdmVudFdhdGNoZXIodCwgZS50cmFjaywgWyd1bm11dGUnXSk7Ci0gIGNvbnN0IHVubXV0ZVBy
b21pc2UgPSB1bm11dGVXYXRjaGVyLndhaXRfZm9yKCd1bm11dGUnKTsKKyAgY29uc3QgdW5tdXRl
UHJvbWlzZSA9IG11dGVXYXRjaGVyLndhaXRfZm9yKCd1bm11dGUnKTsKICAgbG9jYWxUcmFuc2Nl
aXZlci5kaXJlY3Rpb24gPSAnc2VuZHJlY3YnOwogICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2Vy
KHBjMSwgcGMyKTsKIApAQCAtMTAwLDggKzEwNSwyOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CiAgIGF3YWl0IHVubXV0ZVByb21pc2U7CiAKICAgY29uc3QgbXV0ZVByb21pc2UgPSBtdXRl
V2F0Y2hlci53YWl0X2ZvcignbXV0ZScpOwotICBwYzIuY2xvc2UoKTsKKyAgbG9jYWxUcmFuc2Nl
aXZlci5zdG9wKCk7CisgIGF3YWl0IG11dGVQcm9taXNlOworfSwgJ3RyYW5zY2VpdmVyLnN0b3Ao
KSBvbiBvbmUgc2lkZSAod2l0aG91dCByZW5lZ290aWF0aW9uKSBjYXVzZXMgbXV0ZSBldmVudHMg
b24gdGhlIG90aGVyJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMx
ID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKKyAgY29uc3QgcGMxU2VuZGVy
ID0gcGMxLmFkZFRyYWNrKC4uLmF3YWl0IGNyZWF0ZVRyYWNrQW5kU3RyZWFtV2l0aENsZWFudXAo
dCkpOworICBjb25zdCBsb2NhbFRyYW5zY2VpdmVyID0gZmluZFRyYW5zY2VpdmVyRm9yU2VuZGVy
KHBjMSwgcGMxU2VuZGVyKTsKKyAgY29uc3QgcGMyID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRo
Q2xlYW51cCh0KTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKworICBjb25z
dCBlID0gYXdhaXQgZXhjaGFuZ2VPZmZlckFuZExpc3RlblRvT250cmFjayh0LCBwYzEsIHBjMik7
CisgIC8vIE5lZWQgdG8gd2FpdCBmb3IgdGhlIGluaXRpYWwgdW5tdXRlIGV2ZW50IGJlZm9yZSBj
bG9zaW5nLCBvdGhlcndpc2UKKyAgLy8gdGhlcmUgd2lsbCBiZSBubyB0cmFuc2l0aW9uIGZyb20g
dW5tdXRlZC0+bXV0ZWQuCisgIGNvbnN0IG11dGVXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0
LCBlLnRyYWNrLCBbJ211dGUnLCAndW5tdXRlJ10pOworICBjb25zdCB1bm11dGVQcm9taXNlID0g
bXV0ZVdhdGNoZXIud2FpdF9mb3IoJ3VubXV0ZScpOworICBhd2FpdCBleGNoYW5nZUFuc3dlcihw
YzEsIHBjMik7CisgIGF3YWl0IHVubXV0ZVByb21pc2U7CisKKyAgY29uc3QgbXV0ZVByb21pc2Ug
PSBtdXRlV2F0Y2hlci53YWl0X2ZvcignbXV0ZScpOworICBwYzEuY2xvc2UoKTsKICAgYXdhaXQg
bXV0ZVByb21pc2U7Ci19LCAncGMuY2xvc2UoKSBtdXRlcyByZW1vdGUgdHJhY2tzJyk7Cit9LCAn
cGMuY2xvc2UoKSBvbiBvbmUgc2lkZSBjYXVzZXMgbXV0ZSBldmVudHMgb24gdGhlIG90aGVyJyk7
CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3ZlVHJhY2suaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3ZlVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IDE1Y2UzZmNjMDAzNTU1YWZjZDQxMzg5MmZlYzM4ZWM4YjNlNjFhNzcuLjMxYWEwOWM1
ZGE0NTNjZTZmM2I4ZDZhN2FhNDhmYjJhMzYxZmJmYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXJlbW92ZVRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdmVU
cmFjay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTExLDQgKzExLDYgQEAgUEFTUyBDYWxsaW5nIHJl
bW92ZVRyYWNrIHdpdGggY3VycmVudERpcmVjdGlvbiBzZW5kcmVjdiBzaG91bGQgc2V0IGRpcmVj
dGlvbiB0bwogUEFTUyBDYWxsaW5nIHJlbW92ZVRyYWNrIHdpdGggY3VycmVudERpcmVjdGlvbiBz
ZW5kb25seSBzaG91bGQgc2V0IGRpcmVjdGlvbiB0byBpbmFjdGl2ZSAKIFBBU1MgQ2FsbGluZyBy
ZW1vdmVUcmFjayB3aXRoIGN1cnJlbnREaXJlY3Rpb24gcmVjdm9ubHkgc2hvdWxkIG5vdCBjaGFu
Z2UgZGlyZWN0aW9uIAogUEFTUyBDYWxsaW5nIHJlbW92ZVRyYWNrIHdpdGggY3VycmVudERpcmVj
dGlvbiBpbmFjdGl2ZSBzaG91bGQgbm90IGNoYW5nZSBkaXJlY3Rpb24gCitGQUlMIENhbGxpbmcg
cmVtb3ZlVHJhY2sgb24gYSBzdG9wcGVkIHRyYW5zY2VpdmVyIHNob3VsZCBiZSBhIG5vLW9wIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBNZWRpYVN0cmVhbVRyYWNrXSIg
YnV0IGdvdCBudWxsCitQQVNTIENhbGxpbmcgcmVtb3ZlVHJhY2sgb24gYSBudWxsIHRyYWNrIHNo
b3VsZCBoYXZlIG5vIGVmZmVjdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3ZlVHJh
Y2suaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW92ZVRyYWNrLmh0dHBzLmh0bWwKaW5kZXgg
ZmZiM2ZlY2VjYzQ4ZGRmZjM4NjllYTcyOGIwMGI5NGM3NjM4MDMzNC4uODMwOTVjMDg1YThiMjA1
MTJiNTE3M2IyZDM2Yzk4NDIxMjJmYzRjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3Zl
VHJhY2suaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdmVUcmFjay5odHRwcy5odG1s
CkBAIC0zNiwxNCArMzYsMTQgQEAKICAgICovCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIGNvbnN0IHN0cmVh
bSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1
ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1
ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2go
dHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRU
cmFja3MoKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKHRyYWNr
KTsKICAgICBjb25zdCB7IHNlbmRlciB9ID0gdHJhbnNjZWl2ZXI7CiAKICAgICBwYy5jbG9zZSgp
OwotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gcGMucmVtb3Zl
VHJhY2soc2VuZGVyKSk7CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9y
JywgKCkgPT4gcGMucmVtb3ZlVHJhY2soc2VuZGVyKSk7CiAgIH0sICdhZGRUcmFuc2NlaXZlciAt
IENhbGxpbmcgcmVtb3ZlVHJhY2sgd2hlbiBjb25uZWN0aW9uIGlzIGNsb3NlZCBzaG91bGQgdGhy
b3cgSW52YWxpZFN0YXRlRXJyb3InKTsKIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CkBA
IC01NiwxMyArNTYsMTMgQEAKICAgICBjb25zdCBzZW5kZXIgPSBwYy5hZGRUcmFjayh0cmFjaywg
c3RyZWFtKTsKIAogICAgIHBjLmNsb3NlKCk7Ci0gICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0
YXRlRXJyb3InLCAoKSA9PiBwYy5yZW1vdmVUcmFjayhzZW5kZXIpKTsKKyAgICBhc3NlcnRfdGhy
b3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBwYy5yZW1vdmVUcmFjayhzZW5kZXIp
KTsKICAgfSwgJ2FkZFRyYWNrIC0gQ2FsbGluZyByZW1vdmVUcmFjayB3aGVuIGNvbm5lY3Rpb24g
aXMgY2xvc2VkIHNob3VsZCB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvcicpOwogCiAgIHByb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgY29uc3Qgc3RyZWFt
ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVl
fSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVl
fSk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0
cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRy
YWNrcygpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2sp
OwpAQCAtNzAsNyArNzAsNyBAQAogCiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CiAgICAgcGMyLmNsb3NlKCk7Ci0gICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRl
RXJyb3InLCAoKSA9PiBwYzIucmVtb3ZlVHJhY2soc2VuZGVyKSk7CisgICAgYXNzZXJ0X3Rocm93
c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gcGMyLnJlbW92ZVRyYWNrKHNlbmRlcikp
OwogICB9LCAnYWRkVHJhbnNjZWl2ZXIgLSBDYWxsaW5nIHJlbW92ZVRyYWNrIG9uIGRpZmZlcmVu
dCBjb25uZWN0aW9uIHRoYXQgaXMgY2xvc2VkIHNob3VsZCB0aHJvdyBJbnZhbGlkU3RhdGVFcnJv
cicpOwogCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKQEAgLTg0LDcgKzg0LDcgQEAKIAog
ICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHBjMi5jbG9zZSgp
OwotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gcGMyLnJlbW92
ZVRyYWNrKHNlbmRlcikpOworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJv
cicsICgpID0+IHBjMi5yZW1vdmVUcmFjayhzZW5kZXIpKTsKICAgfSwgJ2FkZFRyYWNrIC0gQ2Fs
bGluZyByZW1vdmVUcmFjayBvbiBkaWZmZXJlbnQgY29ubmVjdGlvbiB0aGF0IGlzIGNsb3NlZCBz
aG91bGQgdGhyb3cgSW52YWxpZFN0YXRlRXJyb3InKTsKIAogICAvKgpAQCAtOTQsNyArOTQsNyBA
QAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAg
IGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KHthdWRpbzogdHJ1ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFt
KHthdWRpbzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNr
cygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3RyYWNrXSA9
IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5z
Y2VpdmVyKHRyYWNrKTsKQEAgLTEwMiw3ICsxMDIsNyBAQAogCiAgICAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2Uo
KSk7Ci0gICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkgPT4gcGMyLnJl
bW92ZVRyYWNrKHNlbmRlcikpOworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkQWNjZXNz
RXJyb3InLCAoKSA9PiBwYzIucmVtb3ZlVHJhY2soc2VuZGVyKSk7CiAgIH0sICdhZGRUcmFuc2Nl
aXZlciAtIENhbGxpbmcgcmVtb3ZlVHJhY2sgb24gZGlmZmVyZW50IGNvbm5lY3Rpb24gc2hvdWxk
IHRocm93IEludmFsaWRBY2Nlc3NFcnJvcicpOwogCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKQEAgLTExNiw3ICsxMTYsNyBAQAogCiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0gICAgYXNz
ZXJ0X3Rocm93cygnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkgPT4gcGMyLnJlbW92ZVRyYWNrKHNl
bmRlcikpOworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9
PiBwYzIucmVtb3ZlVHJhY2soc2VuZGVyKSk7CiAgIH0sICdhZGRUcmFjayAtIENhbGxpbmcgcmVt
b3ZlVHJhY2sgb24gZGlmZmVyZW50IGNvbm5lY3Rpb24gc2hvdWxkIHRocm93IEludmFsaWRBY2Nl
c3NFcnJvcicpCiAKICAgLyoKQEAgLTEyNiw3ICsxMjYsNyBAQAogICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOworICAg
IGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOwogICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4g
dHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsK
ICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKHRyYWNrKTsKQEAgLTE2
Nyw3ICsxNjcsNyBAQAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOwog
ICAgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOwotICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5h
dmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOworICAgIGNv
bnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOwogICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJh
Y2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAg
ICBjb25zdCB0cmFuc2NlaXZlciA9IGNhbGxlci5hZGRUcmFuc2NlaXZlcih0cmFjayk7CkBAIC0y
MDIsNyArMjAyLDcgQEAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5j
bG9zZSgpKTsKLSAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBn
ZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0
cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwogICAgIGNv
bnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIg
PSBwYy5hZGRUcmFuc2NlaXZlcih0cmFjaywgeyBkaXJlY3Rpb246ICdzZW5kb25seScgfSk7CkBA
IC0yMzYsNyArMjM2LDcgQEAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlci5jbG9zZSgp
KTsKICAgICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKLSAgICBjb25zdCBzdHJlYW0gPSBhd2Fp
dCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAg
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKICAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+
IHRyYWNrLnN0b3AoKSkpOwogICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7
CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBjYWxsZXIuYWRkVHJhbnNjZWl2ZXIodHJhY2ssIHsg
ZGlyZWN0aW9uOiAncmVjdm9ubHknIH0pOwpAQCAtMjcwLDcgKzI3MCw3IEBACiAgIHByb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgY29uc3Qgc3RyZWFt
ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVl
fSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVl
fSk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0
cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRy
YWNrcygpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2ss
IHsgZGlyZWN0aW9uOiAnaW5hY3RpdmUnIH0pOwpAQCAtMjkyLDYgKzI5MiwzMyBAQAogICAgIGFz
c2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgJ2luYWN0aXZlJyk7CiAg
IH0sICdDYWxsaW5nIHJlbW92ZVRyYWNrIHdpdGggY3VycmVudERpcmVjdGlvbiBpbmFjdGl2ZSBz
aG91bGQgbm90IGNoYW5nZSBkaXJlY3Rpb24nKTsKIAorICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5v
aXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFt
LmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgY29uc3Qg
W3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKKyAgICBjb25zdCBzZW5kZXIgPSBwYy5hZGRU
cmFjayh0cmFjaywgc3RyZWFtKTsKKworICAgIHBjLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3Ao
KTsKKyAgICBwYy5yZW1vdmVUcmFjayhzZW5kZXIpOworICAgIGFzc2VydF9lcXVhbHMoc2VuZGVy
LnRyYWNrLCB0cmFjayk7CisgIH0sICJDYWxsaW5nIHJlbW92ZVRyYWNrIG9uIGEgc3RvcHBlZCB0
cmFuc2NlaXZlciBzaG91bGQgYmUgYSBuby1vcCIpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0
Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJl
YW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBjb25z
dCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOworICAgIGNvbnN0IHNlbmRlciA9IHBjLmFk
ZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworCisgICAgYXdhaXQgc2VuZGVyLnJlcGxhY2VUcmFjayhu
dWxsKTsKKyAgICBwYy5yZW1vdmVUcmFjayhzZW5kZXIpOworICAgIGFzc2VydF9lcXVhbHMoc2Vu
ZGVyLnRyYWNrLCBudWxsKTsKK30sICJDYWxsaW5nIHJlbW92ZVRyYWNrIG9uIGEgbnVsbCB0cmFj
ayBzaG91bGQgaGF2ZSBubyBlZmZlY3QiKTsKKworCiAgIC8qCiAgICAgVE9ETwogICAgICAgNS4x
LiAgcmVtb3ZlVHJhY2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2Utb25uZWdv
dGlhdGlvbm5lZWRlZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNl
LW9ubmVnb3RpYXRpb25uZWVkZWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkNmEz
YjNkNzcxZWNkYTBkYTEzMDRjNTZhYWMyMDk1MDIwZGQ0NmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1yZXN0YXJ0SWNlLW9ubmVnb3RpYXRpb25uZWVkZWQuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIE5lZ290aWF0aW9uIG5lZWRlZCB3aGVuIHJldHVy
bmluZyB0byBzdGFibGUgZG9lcyBub3QgZmlyZSB0b28gZWFybHkgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBwYzEucmVzdGFy
dEljZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYzEucmVzdGFydEljZSgpJywgJ3BjMS5yZXN0
YXJ0SWNlJyBpcyB1bmRlZmluZWQpIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0
SWNlLW9ubmVnb3RpYXRpb25uZWVkZWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJ
Y2Utb25uZWdvdGlhdGlvbm5lZWRlZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkY2NlNDUxOTk1
NTk3ZWEwNzJjN2U0OTFmMGNlZjkwODAxNGNmMGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1yZXN0YXJ0SWNlLW9ubmVnb3RpYXRpb25uZWVkZWQuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDI5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+PC90
aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorInVzZSBzdHJpY3QiOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVk
aW8iKTsKKworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRl
T2ZmZXIoKSk7CisgIHBjMS5yZXN0YXJ0SWNlKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2Ny
aXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgIC8vIFdoZW4gdGhlIHNldFJlbW90
ZURlc2NyaXB0aW9uKCkgcHJvbWlzZSBhYm92ZSBpcyByZXNvbHZlZCBhIHRhc2sgc2hvdWxkIGJl
CisgIC8vIHF1ZXVlZCB0byBmaXJlIHRoZSBvbm5lZ290aWF0aW9ubmVlZGVkIGV2ZW50LiBCZWNh
dXNlIG9mIHRoaXMsIHdlIHNob3VsZAorICAvLyBoYXZlIHRpbWUgdG8gaG9vayB1cCB0aGUgZXZl
bnQgbGlzdGVuZXIgKmFmdGVyKiBhd2FpdGluZyB0aGUgU1JEIHByb21pc2UuCisgIGF3YWl0IG5l
dyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKK30sICJOZWdvdGlh
dGlvbiBuZWVkZWQgd2hlbiByZXR1cm5pbmcgdG8gc3RhYmxlIGRvZXMgbm90IGZpcmUgdG9vIGVh
cmx5Iik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kN2IyNTk0NjgxZmZiNTI3ODc0YjhhMWRkNjc2YTJkMzhjNjJhYWM0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNSBAQAorCitGQUlMIHJlc3RhcnRJY2UoKSBkb2VzIG5vdCB0cmln
Z2VyIG5lZ290aWF0aW9uIGFoZWFkIG9mIGluaXRpYWwgbmVnb3RpYXRpb24gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBwYzEu
cmVzdGFydEljZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYzEucmVzdGFydEljZSgpJywgJ3Bj
MS5yZXN0YXJ0SWNlJyBpcyB1bmRlZmluZWQpIgorRkFJTCByZXN0YXJ0SWNlKCkgaGFzIG5vIGVm
ZmVjdCBvbiBpbml0aWFsIG5lZ290aWF0aW9uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogcGMxLnJlc3RhcnRJY2UgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAncGMxLnJlc3RhcnRJY2UoKScsICdwYzEucmVzdGFydEljZScgaXMg
dW5kZWZpbmVkKSIKK0ZBSUwgcmVzdGFydEljZSgpIGZpcmVzIG5lZ290aWF0aW9ubmVlZGVkIGFm
dGVyIGluaXRpYWwgbmVnb3RpYXRpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBwYzEucmVzdGFydEljZSBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdwYzEucmVzdGFydEljZSgpJywgJ3BjMS5yZXN0YXJ0SWNlJyBpcyB1bmRl
ZmluZWQpIgorRkFJTCByZXN0YXJ0SWNlKCkgY2F1c2VzIGZyZXNoIHVmcmFncyBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHBj
MS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5yZXN0YXJ0SWNlKCknLCAn
cGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVmaW5lZCkiCitGQUlMIHJlc3RhcnRJY2UoKSB3b3JrcyBp
biBoYXZlLWxvY2FsLW9mZmVyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogcGMxLnJlc3RhcnRJY2UgaXMgbm90IGEgZnVuY3Rp
b24uIChJbiAncGMxLnJlc3RhcnRJY2UoKScsICdwYzEucmVzdGFydEljZScgaXMgdW5kZWZpbmVk
KSIKK0ZBSUwgcmVzdGFydEljZSgpIHdvcmtzIGluIGluaXRpYWwgaGF2ZS1sb2NhbC1vZmZlciBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5yZXN0YXJ0
SWNlKCknLCAncGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVmaW5lZCkiCitGQUlMIHJlc3RhcnRJY2Uo
KSB3b3JrcyBpbiBoYXZlLXJlbW90ZS1vZmZlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5yZXN0YXJ0SWNlKCknLCAncGMxLnJlc3RhcnRJY2UnIGlz
IHVuZGVmaW5lZCkiCitGQUlMIHJlc3RhcnRJY2UoKSBkb2VzIG5vdGhpbmcgaW4gaW5pdGlhbCBo
YXZlLXJlbW90ZS1vZmZlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ3BjMS5yZXN0YXJ0SWNlKCknLCAncGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVmaW5lZCki
CitGQUlMIHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBwYzEucmVz
dGFydEljZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYzEucmVzdGFydEljZSgpJywgJ3BjMS5y
ZXN0YXJ0SWNlJyBpcyB1bmRlZmluZWQpIgorRkFJTCByZXN0YXJ0SWNlKCkgaXMgc2F0aXNmaWVk
IGJ5IHJlbW90ZSBJQ0UgcmVzdGFydCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3BjMS5yZXN0YXJ0SWNlKCknLCAncGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVm
aW5lZCkiCitGQUlMIHJlc3RhcnRJY2UoKSB0cnVtcHMge2ljZVJlc3RhcnQ6IGZhbHNlfSBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5yZXN0YXJ0SWNl
KCknLCAncGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVmaW5lZCkiCitGQUlMIHJlc3RhcnRJY2UoKSBz
dXJ2aXZlcyByb2xsYmFjayBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ3BjMS5yZXN0YXJ0SWNlKCknLCAncGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVmaW5lZCki
CitGQUlMIHJlc3RhcnRJY2UoKSBzdXJ2aXZlcyByZW1vdGUgb2ZmZXIgY29udGFpbmluZyBwYXJ0
aWFsIHJlc3RhcnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiBwYzEucmVzdGFydEljZSBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdwYzEucmVzdGFydEljZSgpJywgJ3BjMS5yZXN0YXJ0SWNlJyBpcyB1bmRlZmluZWQpIgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1yZXN0YXJ0SWNlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY4YzY2MWE0MWRkMGExY2I4ZjU2
YmFmODBmNmQzYjc5N2Y5ZTIyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3Rh
cnRJY2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDM5NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24g
Z2V0TGluZXMoc2RwLCBzdGFydHNXaXRoKSB7CisgIGNvbnN0IGxpbmVzID0gc2RwLnNwbGl0KCJc
clxuIikuZmlsdGVyKGwgPT4gbC5zdGFydHNXaXRoKHN0YXJ0c1dpdGgpKTsKKyAgYXNzZXJ0X3Ry
dWUobGluZXMubGVuZ3RoID4gMCwgYE9uZSBvciBtb3JlICR7c3RhcnRzV2l0aH0gaW4gc2RwYCk7
CisgIHJldHVybiBsaW5lczsKK30KKworY29uc3QgZ2V0VWZyYWdzID0gKHtzZHB9KSA9PiBnZXRM
aW5lcyhzZHAsICJhPWljZS11ZnJhZzoiKTsKK2NvbnN0IGdldFB3ZHMgPSAoe3NkcH0pID0+IGdl
dExpbmVzKHNkcCwgImE9aWNlLXB3ZDoiKTsKKworYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VPZmZl
ckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpIHsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNj
cmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICBhd2FpdCBwYzEuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOyAvLyBFbmQgb24gcGMxLiBObyByYWNl
Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPblNlY29uZChwYzEs
IHBjMikgeworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRl
T2ZmZXIoKSk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNj
cmlwdGlvbik7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3Jl
YXRlQW5zd2VyKCkpOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzEucmVtb3Rl
RGVzY3JpcHRpb24pOyAvLyBFbmQgb24gcGMyLiBObyByYWNlCit9CisKK2FzeW5jIGZ1bmN0aW9u
IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMpIHsKKyAgYXNzZXJ0X2VxdWFscyhwYy5z
aWduYWxpbmdTdGF0ZSwgInN0YWJsZSIsICJJbiBzdGFibGUgc3RhdGUiKTsKKyAgY29uc3QgZXZl
bnQgPSBhd2FpdCBQcm9taXNlLnJhY2UoWworICAgIG5ldyBQcm9taXNlKHIgPT4gcGMub25uZWdv
dGlhdGlvbm5lZWRlZCA9IHIpLAorICAgIG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQo
ciwgMTApKQorICBdKTsKKyAgYXNzZXJ0X2VxdWFscyhldmVudCwgdW5kZWZpbmVkLCAiTm8gbmVn
b3RpYXRpb25uZWVkZWQgZXZlbnQiKTsKK30KKworLy8gSW4gQ2hyb21pdW0sIGFzc2VydF9lcXVh
bHMoKSBwcm9kdWNlcyB0ZXN0IGV4cGVjdGF0aW9ucyB3aXRoIHRoZSB2YWx1ZXMKKy8vIGNvbXBh
cmVkLiBCZWNhdXNlIHVmcmFncyBhcmUgZGlmZmVyZW50IG9uIGVhY2ggcnVuLCB0aGlzIHdvdWxk
IG1ha2UgQ2hyb21pdW0KKy8vIHRlc3QgZXhwZWN0YXRpb25zIGRpZmZlcmVudCBvbiBlYWNoIHJ1
biBvbiB0ZXN0cyB0aGF0IGZhaWxlZCB3aGVuIGNvbXBhcmluZworLy8gdWZyYWdzLiBUbyB3b3Jr
IGFyb3VuZCB0aGlzIHByb2JsZW0sIGFzc2VydF91ZnJhZ3NfZXF1YWxzKCkgYW5kCisvLyBhc3Nl
cnRfdWZyYWdzX25vdF9lcXVhbHMoKSBzaG91bGQgYmUgcHJlZmVycmVkIG92ZXIgYXNzZXJ0X2Vx
dWFscygpIGFuZAorLy8gYXNzZXJ0X25vdF9lcXVhbHMoKS4KK2Z1bmN0aW9uIGFzc2VydF91ZnJh
Z3NfZXF1YWxzKHgsIHksIGRlc2NyaXB0aW9uKSB7CisgIGFzc2VydF90cnVlKHggPT09IHksIGRl
c2NyaXB0aW9uKTsKK30KK2Z1bmN0aW9uIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyh4LCB5LCBk
ZXNjcmlwdGlvbikgeworICBhc3NlcnRfZmFsc2UoeCA9PT0geSwgZGVzY3JpcHRpb24pOworfQor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworCisgIHBjMS5yZXN0YXJ0SWNlKCk7CisgIGF3YWl0IGFzc2VydE5vTmVnb3Rp
YXRpb25OZWVkZWQodCwgcGMxKTsKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3
YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKK30sICJyZXN0YXJ0SWNlKCkg
ZG9lcyBub3QgdHJpZ2dlciBuZWdvdGlhdGlvbiBhaGVhZCBvZiBpbml0aWFsIG5lZ290aWF0aW9u
Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7CisKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2Fp
dCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIHBjMS5y
ZXN0YXJ0SWNlKCk7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwg
cGMyKTsKKyAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworfSwgInJl
c3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9uIGluaXRpYWwgbmVnb3RpYXRpb24iKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IG5ldyBQcm9t
aXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOworICBwYzEucmVzdGFydEljZSgpOworICBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7Cit9LCAi
cmVzdGFydEljZSgpIGZpcmVzIG5lZ290aWF0aW9ubmVlZGVkIGFmdGVyIGluaXRpYWwgbmVnb3Rp
YXRpb24iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Cisg
IGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKKworICBjb25z
dCBbb2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0
IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQg
ZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOworICBhc3NlcnRfdWZyYWdz
X2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJj
b250cm9sIDEiKTsKKyAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2NhbERl
c2NyaXB0aW9uKVswXSwgb2xkVWZyYWcyLCAiY29udHJvbCAyIik7CisKKyAgcGMxLnJlc3RhcnRJ
Y2UoKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Cisg
IGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
Y29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICBh
c3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNo
YW5nZWQiKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcy
LCAidWZyYWcgMiBjaGFuZ2VkIik7CisgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQo
dCwgcGMxKTsKKworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBj
Mik7CisgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlv
bilbMF0sIG5ld1VmcmFnMSwgIlVuY2hhbmdlZCAxIik7CisgIGFzc2VydF91ZnJhZ3NfZXF1YWxz
KGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMiwgIlVuY2hhbmdl
ZCAyIik7Cit9LCAicmVzdGFydEljZSgpIGNhdXNlcyBmcmVzaCB1ZnJhZ3MiKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKKworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IG5ldyBQcm9taXNl
KHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZl
ckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOworCisgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0
VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRV
ZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2Ny
aXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgcGMxLnJlc3RhcnRJY2UoKTsKKyAg
YXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
YXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsK
KyAgLy8gU2V2ZXJhbCB0ZXN0cyBpbiB0aGlzIGZpbGUgaW5pdGlhbGl6ZXMgdGhlIG9ubmVnb3Rp
YXRpb25uZWVkZWQgbGlzdGVuZXIKKyAgLy8gYmVmb3JlIHRoZSBzZXRMb2NhbERlc2NyaXB0aW9u
KCkgb3Igc2V0UmVtb3RlRGVzY3JpcHRpb24oKSB0aGF0IHdlIGV4cGVjdAorICAvLyB0byB0cmln
Z2VyIG5lZ290aWF0aW9uIG5lZWRlZC4gVGhpcyBhbGxvd3MgQ2hyb21lIHRvIGV4ZXJjaXNlIHRo
ZXNlIHRlc3RzCisgIC8vIHdpdGhvdXQgdGltaW5nIG91dCBkdWUgdG8gYSBidWcgdGhhdCBjYXVz
ZXMgb25uZWdvdGlhdGlvbm5lZWRlZCB0byBmaXJlIHRvbworICAvLyBlYXJseS4KKyAgLy8gVE9E
TyhodHRwczovL2NyYnVnLmNvbS85ODU3OTcpOiBPbmNlIENocm9tZSBkb2VzIG5vdCBmaXJlIE9O
TiB0b28gZWFybHksCisgIC8vIHNpbXBseSBkbyAiYXdhaXQgbmV3IFByb21pc2UoLi4uKSIgaW5z
dGVhZCBvZgorICAvLyAiYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlIiBoZXJlIGFuZCBp
biBvdGhlciB0ZXN0cyBpbiB0aGlzIGZpbGUuCisgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJv
bWlzZSA9CisgICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0g
cik7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlv
bik7CisgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlv
bilbMF0sIG9sZFVmcmFnMSwgIlVuY2hhbmdlZCAxIik7CisgIGFzc2VydF91ZnJhZ3NfZXF1YWxz
KGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwgIlVuY2hhbmdl
ZCAyIik7CisgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgYXdhaXQgZXhjaGFu
Z2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOworICBjb25zdCBbbmV3VWZyYWcxXSA9
IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtuZXdVZnJhZzJdID0g
Z2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1
YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7CisgIGFzc2VydF91
ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIp
OworICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Cit9LCAicmVzdGFy
dEljZSgpIHdvcmtzIGluIGhhdmUtbG9jYWwtb2ZmZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBwYzEu
YWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
bmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24o
YXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICBwYzEucmVzdGFydEljZSgpOworICBhd2FpdCBw
YzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBhd2FpdCBw
YzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICBjb25z
dCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAgICAgbmV3IFByb21pc2UociA9PiBwYzEu
b25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICBjb25zdCBbb2xkVWZyYWcxXSA9IGdldFVmcmFn
cyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0VWZyYWdz
KHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNl
OworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7CisgIGNv
bnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgY29u
c3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICBhc3Nl
cnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5n
ZWQiKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAi
dWZyYWcgMiBjaGFuZ2VkIik7CisgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwg
cGMxKTsKK30sICJyZXN0YXJ0SWNlKCkgd29ya3MgaW4gaW5pdGlhbCBoYXZlLWxvY2FsLW9mZmVy
Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7CisKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2Fp
dCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3YWl0
IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKKworICBjb25zdCBbb2xk
VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtvbGRV
ZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICBhd2FpdCBwYzIu
c2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7CisgIGF3YWl0IHBj
MS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgIHBjMS5yZXN0
YXJ0SWNlKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3Jl
YXRlQW5zd2VyKCkpOworICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAgICAg
bmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBw
YzEuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzIucmVtb3RlRGVzY3JpcHRpb24pOyAvLyBFbmQgb24g
cGMxLiBObyByYWNlCisgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzEubG9jYWxE
ZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMSwgIlVuY2hhbmdlZCAxIik7CisgIGFzc2VydF91ZnJh
Z3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMiwg
IlVuY2hhbmdlZCAyIik7CisgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgYXdh
aXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOworICBjb25zdCBbbmV3
VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtuZXdV
ZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXNzZXJ0X3VmcmFn
c19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Cisg
IGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIg
Y2hhbmdlZCIpOworICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Cit9
LCAicmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtcmVtb3RlLW9mZmVyIik7CisKK3Byb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CisKKyAgcGMyLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBwYzIuc2V0TG9jYWxE
ZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7CisgIGF3YWl0IHBjMS5zZXRSZW1v
dGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgIHBjMS5yZXN0YXJ0SWNlKCk7
CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlQW5zd2Vy
KCkpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihwYzIucmVtb3RlRGVzY3JpcHRp
b24pOyAvLyBFbmQgb24gcGMxLiBObyByYWNlCisgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25O
ZWVkZWQodCwgcGMxKTsKK30sICJyZXN0YXJ0SWNlKCkgZG9lcyBub3RoaW5nIGluIGluaXRpYWwg
aGF2ZS1yZW1vdGUtb2ZmZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBwYzEuYWRkVHJhbnNjZWl2ZXIo
ImF1ZGlvIik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVk
ZWQgPSByKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIp
OworCisgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKKyAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24p
OworCisgIHBjMS5yZXN0YXJ0SWNlKCk7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
bmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNl
ID0KKyAgICAgIG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsK
KyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBjMiwgcGMxKTsKKyAgYXNz
ZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xk
VWZyYWcxLCAibm90aGluZyB5ZXQgMSIpOworICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJh
Z3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzIsICJub3RoaW5nIHlldCAyIik7
CisgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZl
ckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOworICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVm
cmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZy
YWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5l
d1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7CisgIGFzc2VydF91ZnJhZ3Nf
bm90X2VxdWFscyhuZXdVZnJhZzIsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOworICBh
d2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Cit9LCAicmVzdGFydEljZSgp
IHN1cnZpdmVzIHJlbW90ZSBvZmZlciIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRUcmFuc2Nl
aXZlcigiYXVkaW8iKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlv
bm5lZWRlZCA9IHIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEs
IHBjMik7CisKKyAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3Jp
cHRpb24pOworICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlw
dGlvbik7CisKKyAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgcGMyLnJlc3RhcnRJY2UoKTsKKyAgYXdh
aXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25TZWNvbmQocGMyLCBwYzEpOworICBjb25zdCBbbmV3
VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtuZXdV
ZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXNzZXJ0X3VmcmFn
c19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7Cisg
IGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIg
Y2hhbmdlZCIpOworICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7CisK
KyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOworICBhc3Nl
cnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdV
ZnJhZzEsICJVbmNoYW5nZWQgMSIpOworICBhc3NlcnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3Mo
cGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBuZXdVZnJhZzIsICJVbmNoYW5nZWQgMiIpOworICBh
d2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Cit9LCAicmVzdGFydEljZSgp
IGlzIHNhdGlzZmllZCBieSByZW1vdGUgSUNFIHJlc3RhcnQiKTsKKworcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBw
YzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMx
Lm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVu
ZE9uRmlyc3QocGMxLCBwYzIpOworCisgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBj
MS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMy
LmxvY2FsRGVzY3JpcHRpb24pOworCisgIHBjMS5yZXN0YXJ0SWNlKCk7CisgIGF3YWl0IG5ldyBQ
cm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgcGMxLnNl
dExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtpY2VSZXN0YXJ0OiBmYWxz
ZX0pKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0
aW9uKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFu
c3dlcigpKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2Ny
aXB0aW9uKTsKKyAgY29uc3QgW25ld1VmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3Jp
cHRpb24pOworICBjb25zdCBbbmV3VWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlw
dGlvbik7CisgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwg
InVmcmFnIDEgY2hhbmdlZCIpOworICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcx
LCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsKKyAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlh
dGlvbk5lZWRlZCh0LCBwYzEpOworfSwgInJlc3RhcnRJY2UoKSB0cnVtcHMge2ljZVJlc3RhcnQ6
IGZhbHNlfSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsK
KyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOwor
ICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7CisKKyAgY29u
c3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBjb25z
dCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgcGMx
LnJlc3RhcnRJY2UoKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlv
bm5lZWRlZCA9IHIpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEu
Y3JlYXRlT2ZmZXIoKSk7CisgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9CisgICAg
ICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3YWl0
IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7CisgIGF3YWl0IG5l
Z290aWF0aW9uTmVlZGVkUHJvbWlzZTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9u
Rmlyc3QocGMxLCBwYzIpOworICBjb25zdCBbbmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9j
YWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtuZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xk
VWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7CisgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhu
ZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFnIDIgY2hhbmdlZCIpOworICBhd2FpdCBhc3NlcnRO
b05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Cit9LCAicmVzdGFydEljZSgpIHN1cnZpdmVzIHJv
bGxiYWNrIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xpY3k6ICJtYXgtY29tcGF0In0pOworICBjb25z
dCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1heC1jb21wYXQi
fSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7Cisg
IHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBw
YzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2Vy
RW5kT25GaXJzdChwYzEsIHBjMik7CisKKyAgY29uc3Qgb2xkVWZyYWdzMSA9IGdldFVmcmFncyhw
YzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IG9sZFVmcmFnczIgPSBnZXRVZnJhZ3MocGMy
LmxvY2FsRGVzY3JpcHRpb24pOworICBjb25zdCBvbGRQd2RzMiA9IGdldFB3ZHMocGMyLmxvY2Fs
RGVzY3JpcHRpb24pOworCisgIHBjMS5yZXN0YXJ0SWNlKCk7CisgIGF3YWl0IG5ldyBQcm9taXNl
KHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKworICAvLyBFbmdpbmVlciBhIHBh
cnRpYWwgSUNFIHJlc3RhcnQgZnJvbSBwYzIKKyAgcGMyLnJlc3RhcnRJY2UoKTsKKyAgYXdhaXQg
cGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkpOworICB7Cisg
ICAgbGV0IHt0eXBlLCBzZHB9ID0gcGMyLmxvY2FsRGVzY3JpcHRpb247CisgICAgLy8gUmVzdG9y
ZSBib3RoIG9sZCBpY2UtdWZyYWcgYW5kIG9sZCBpY2UtcHdkIHRvIHRyaWdnZXIgYSBwYXJ0aWFs
IHJlc3RhcnQKKyAgICBzZHAgPSBzZHAucmVwbGFjZShnZXRVZnJhZ3Moe3NkcH0pWzBdLCBvbGRV
ZnJhZ3MyWzBdKTsKKyAgICBzZHAgPSBzZHAucmVwbGFjZShnZXRQd2RzKHtzZHB9KVswXSwgb2xk
UHdkczJbMF0pOworICAgIGNvbnN0IG5ld1VmcmFnczIgPSBnZXRVZnJhZ3Moe3NkcH0pOworICAg
IGNvbnN0IG5ld1B3ZHMyID0gZ2V0UHdkcyh7c2RwfSk7CisgICAgYXNzZXJ0X3VmcmFnc19lcXVh
bHMobmV3VWZyYWdzMlswXSwgb2xkVWZyYWdzMlswXSwgImNvbnRyb2wgdWZyYWcgbWF0Y2giKTsK
KyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdQd2RzMlswXSwgb2xkUHdkczJbMF0sICJjb250
cm9sIHB3ZCBtYXRjaCIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZ3My
WzFdLCBvbGRVZnJhZ3MyWzFdLCAiY29udHJvbCB1ZnJhZyBub24tbWF0Y2giKTsKKyAgICBhc3Nl
cnRfdWZyYWdzX25vdF9lcXVhbHMobmV3UHdkczJbMV0sIG9sZFB3ZHMyWzFdLCAiY29udHJvbCBw
d2Qgbm9uLW1hdGNoIik7CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBl
LCBzZHB9KTsKKyAgfQorICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAgICAg
bmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBw
YzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCkpOworICBjb25z
dCBuZXdVZnJhZ3MxID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXNzZXJ0
X3VmcmFnc19lcXVhbHMobmV3VWZyYWdzMVswXSwgb2xkVWZyYWdzMVswXSwgIlVuY2hhbmdlZCAx
Iik7CisgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZ3MxWzFdLCBvbGRVZnJhZ3Mx
WzFdLCAiUmVzdGFydGVkIDIiKTsKKyAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOwor
ICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7
CisgIGNvbnN0IG5ld2VzdFVmcmFnczEgPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24p
OworICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3ZXN0VWZyYWdzMVswXSwgb2xkVWZyYWdz
MVswXSwgIlJlc3RhcnRlZCAxIik7CisgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdlc3RV
ZnJhZ3MxWzFdLCBvbGRVZnJhZ3MxWzFdLCAiUmVzdGFydGVkIDIiKTsKKyAgYXdhaXQgYXNzZXJ0
Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworfSwgInJlc3RhcnRJY2UoKSBzdXJ2aXZlcyBy
ZW1vdGUgb2ZmZXIgY29udGFpbmluZyBwYXJ0aWFsIHJlc3RhcnQiKTsKKworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLWFuc3dlci5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1hbnN3ZXIuaHRtbAppbmRleCBiNzgzZDg1
NDczOGE5MjZjZmRmMGVjYzdlY2Q3ODk3YjViODZiMjAwLi44MjFlZTFkMGIxNWNlMTFhZGI5YjVj
Njg4ZWRhNjNiYWUwMmU0MGRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2Ny
aXB0aW9uLWFuc3dlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24t
YW5zd2VyLmh0bWwKQEAgLTEzMiw3ICsxMzIsNyBAQAogICAgICAgcGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ob2ZmZXIpCiAgICAgICAudGhlbigoKSA9PiBnZW5lcmF0ZUFuc3dlcihvZmZlcikpCiAg
ICAgICAudGhlbihhbnN3ZXIgPT4KLSAgICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlk
TW9kaWZpY2F0aW9uRXJyb3InLAorICAgICAgICBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZh
bGlkTW9kaWZpY2F0aW9uRXJyb3InLAogICAgICAgICAgIHBjLnNldExvY2FsRGVzY3JpcHRpb24o
YW5zd2VyKSkpKTsKICAgfSwgJ3NldExvY2FsRGVzY3JpcHRpb24oKSB3aXRoIGFuc3dlciBub3Qg
Y3JlYXRlZCBieSBvd24gY3JlYXRlQW5zd2VyKCkgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRN
b2RpZmljYXRpb25FcnJvcicpOwogCkBAIC0xNTMsOSArMTUzLDkgQEAKIAogICAgIHJldHVybiBw
Yy5jcmVhdGVPZmZlcigpCiAgICAgLnRoZW4ob2ZmZXIgPT4KLSAgICAgIHByb21pc2VfcmVqZWN0
cyh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAn
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKICAgICAgICAgcGMuc2V0TG9jYWxEZXNjcmlwdGlv
bih7IHR5cGU6ICdhbnN3ZXInLCBzZHA6IG9mZmVyLnNkcCB9KSkpOwotICB9LCAnQ2FsbGluZyBz
ZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikgZnJvbSBzdGFibGUgc3RhdGUgc2hvdWxkIHJlamVj
dCB3aXRoIEludmFsaWRTdGF0ZUVycm9yJyk7CisgIH0sICdDYWxsaW5nIHNldExvY2FsRGVzY3Jp
cHRpb24oYW5zd2VyKSBmcm9tIHN0YWJsZSBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yJyk7CiAKICAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CkBAIC0xNjcsOCArMTY3LDYxIEBACiAgICAg
ICBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKQogICAgICAgLnRoZW4oKCkgPT4gZ2VuZXJh
dGVBbnN3ZXIob2ZmZXIpKSkKICAgICAudGhlbihhbnN3ZXIgPT4KLSAgICAgIHByb21pc2VfcmVq
ZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgcHJvbWlzZV9yZWplY3RzX2RvbSh0
LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKICAgICAgICAgcGMuc2V0TG9jYWxEZXNjcmlw
dGlvbihhbnN3ZXIpKSk7Ci0gIH0sICdDYWxsaW5nIHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2Vy
KSBmcm9tIGhhdmUtbG9jYWwtb2ZmZXIgc3RhdGUgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRT
dGF0ZUVycm9yJyk7CisgIH0sICdDYWxsaW5nIHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSBm
cm9tIGhhdmUtbG9jYWwtb2ZmZXIgc3RhdGUgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2Rp
ZmljYXRpb25FcnJvcicpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IG9mZmVy
ID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSk7Cisg
ICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBjb25zdCBhbnN3
ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7IC8vIFtbTGFzdEFuc3dlcl1dIHNsb3Qgc2V0
CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7
CisgICAgYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZVZpZGVvOiB0cnVlfSk7
IC8vIFtbTGFzdE9mZmVyXV0gc2xvdCBzZXQKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ob2ZmZXIpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7
IC8vIFNob3VsZCBjaGVjayBhZ2FpbnN0IFtbTGFzdEFuc3dlcl1dLCBub3QgW1tMYXN0T2ZmZXJd
XQorICB9LCAiU2V0dGluZyBwcmV2aW91c2x5IGdlbmVyYXRlZCBhbnN3ZXIgYWZ0ZXIgYSBjYWxs
IHRvIGNyZWF0ZU9mZmVyIHNob3VsZCB3b3JrIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisg
ICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7
b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pKTsKKyAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBw
YzIuY3JlYXRlQW5zd2VyKCk7CisgICAgY29uc3Qgc2xkUHJvbWlzZSA9IHBjMi5zZXRMb2NhbERl
c2NyaXB0aW9uKGFuc3dlcik7CisKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5zaWduYWxpbmdTdGF0
ZSwgImhhdmUtcmVtb3RlLW9mZmVyIiwgInNpZ25hbGluZ1N0YXRlIHNob3VsZCBub3QgYmUgc2V0
IHN5bmNocm9ub3VzbHkgYWZ0ZXIgYSBjYWxsIHRvIHNMRCIpOworCisgICAgYXNzZXJ0X2VxdWFs
cyhwYzIucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIG51bGwsICJwZW5kaW5nTG9jYWxEZXNjcmlw
dGlvbiBzaG91bGQgbmV2ZXIgYmUgc2V0IGR1ZSB0byBzTEQoYW5zd2VyKSIpOworICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHBjMi5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJwZW5kaW5n
UmVtb3RlRGVzY3JpcHRpb24gc2hvdWxkIG5vdCBiZSBzZXQgc3luY2hyb25vdXNseSBhZnRlciBh
IGNhbGwgdG8gc0xEIik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIucGVuZGluZ1JlbW90ZURlc2Ny
aXB0aW9uLnR5cGUsICJvZmZlciIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLnJlbW90ZURlc2Ny
aXB0aW9uLnNkcCwgcGMyLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbi5zZHApOworICAgIGFzc2Vy
dF9lcXVhbHMocGMyLmN1cnJlbnRMb2NhbERlc2NyaXB0aW9uLCBudWxsLCAiY3VycmVudExvY2Fs
RGVzY3JpcHRpb24gc2hvdWxkIG5vdCBiZSBzZXQgc3luY2hyb25vdXNseSBhZnRlciBhIGNhbGwg
dG8gc0xEIik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuY3VycmVudFJlbW90ZURlc2NyaXB0aW9u
LCBudWxsLCAiY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBub3QgYmUgc2V0IHN5bmNo
cm9ub3VzbHkgYWZ0ZXIgYSBjYWxsIHRvIHNMRCIpOworCisgICAgY29uc3Qgc3RhYmxlUHJvbWlz
ZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgcGMyLm9uc2lnbmFsaW5nc3RhdGVj
aGFuZ2UgPSAoKSA9PiB7CisgICAgICAgIHJlc29sdmUocGMyLnNpZ25hbGluZ1N0YXRlKTsKKyAg
ICAgIH0KKyAgICB9KTsKKyAgICBjb25zdCByYWNlVmFsdWUgPSBhd2FpdCBQcm9taXNlLnJhY2Uo
W3N0YWJsZVByb21pc2UsIHNsZFByb21pc2VdKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJhY2VWYWx1
ZSwgInN0YWJsZSIsICJzaWduYWxpbmdzdGF0ZWNoYW5nZSBldmVudCBzaG91bGQgZmlyZSBiZWZv
cmUgc0xEIHJlc29sdmVzIik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIucGVuZGluZ0xvY2FsRGVz
Y3JpcHRpb24sIG51bGwsICJwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBzaG91bGQgbmV2ZXIgYmUg
c2V0IGR1ZSB0byBzTEQoYW5zd2VyKSIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLnBlbmRpbmdS
ZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwgInBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQg
YmUgdXBkYXRlZCBiZWZvcmUgdGhlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50Iik7CisgICAg
YXNzZXJ0X25vdF9lcXVhbHMocGMyLmN1cnJlbnRMb2NhbERlc2NyaXB0aW9uLCBudWxsLCAiY3Vy
cmVudExvY2FsRGVzY3JpcHRpb24gc2hvdWxkIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBzaWduYWxp
bmdzdGF0ZWNoYW5nZSBldmVudCIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmN1cnJlbnRMb2Nh
bERlc2NyaXB0aW9uLnR5cGUsICJhbnN3ZXIiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5jdXJy
ZW50TG9jYWxEZXNjcmlwdGlvbi5zZHAsIHBjMi5sb2NhbERlc2NyaXB0aW9uLnNkcCk7CisgICAg
YXNzZXJ0X25vdF9lcXVhbHMocGMyLmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwgImN1
cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgYmUgdXBkYXRlZCBiZWZvcmUgdGhlIHNpZ25h
bGluZ3N0YXRlY2hhbmdlIGV2ZW50Iik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuY3VycmVudFJl
bW90ZURlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmN1
cnJlbnRSZW1vdGVEZXNjcmlwdGlvbi5zZHAsIHBjMi5yZW1vdGVEZXNjcmlwdGlvbi5zZHApOwor
CisgICAgYXdhaXQgc2xkUHJvbWlzZTsKKyAgfSwgInNldExvY2FsRGVzY3JpcHRpb24oYW5zd2Vy
KSBzaG91bGQgdXBkYXRlIGludGVybmFsIHN0YXRlIHdpdGggYSBxdWV1ZWQgdGFzaywgaW4gdGhl
IHJpZ2h0IG9yZGVyIik7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0
TG9jYWxEZXNjcmlwdGlvbi1vZmZlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlw
dGlvbi1vZmZlci5odG1sCmluZGV4IDQxNjYyZjMxNThmZTg4NmI4NDgxMjFmZmJjOWU5NzAxNjA2
NjZhMDEuLjdhZjcxNTBkZjYwOGI2MGZhMGUxZDJhZDAxZGI5Y2Q0ZGFlZmIxMjIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tb2ZmZXIuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLW9mZmVyLmh0bWwKQEAgLTExMSw3ICsxMTEsNyBA
QAogCiAgICAgcmV0dXJuIGdlbmVyYXRlRGF0YUNoYW5uZWxPZmZlcihwYykKICAgICAudGhlbihv
ZmZlciA9PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3InLAorICAgICAgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yJywKICAgICAgICAgcGMyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpKSk7CiAgIH0sICdz
ZXRMb2NhbERlc2NyaXB0aW9uKCkgd2l0aCBvZmZlciBub3QgY3JlYXRlZCBieSBvd24gY3JlYXRl
T2ZmZXIoKSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJyk7CiAK
QEAgLTEyNyw3ICsxMjcsNyBAQAogICAgICAgZ2VuZXJhdGVWaWRlb1JlY2VpdmVPbmx5T2ZmZXIo
cGMpCiAgICAgICAudGhlbihvZmZlcjIgPT4gewogICAgICAgICBhc3NlcnRfc2Vzc2lvbl9kZXNj
X25vdF9zaW1pbGFyKG9mZmVyMSwgb2ZmZXIyKTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0cyh0LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKKyAgICAgICAgcmV0dXJuIHByb21p
c2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCiAgICAgICAgICAg
cGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcjEpKTsKICAgICAgIH0pKTsKICAgfSwgJ1NldCBj
cmVhdGVkIG9mZmVyIG90aGVyIHRoYW4gbGFzdCBvZmZlciBzaG91bGQgcmVqZWN0IHdpdGggSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yJyk7CkBAIC0xNTcsNCArMTU3LDY5IEBACiAgICAgICAgICAg
fSkpKSk7CiAgIH0sICdDcmVhdGluZyBhbmQgc2V0dGluZyBvZmZlciBtdWx0aXBsZSB0aW1lcyBz
aG91bGQgc3VjY2VlZCcpOwogCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IG9mZmVy
ID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSk7IC8v
IFtbTGFzdE9mZmVyXV0gc2V0CisgICAgY29uc3Qgb2ZmZXIyID0gYXdhaXQgcGMyLmNyZWF0ZU9m
ZmVyKHtvZmZlclRvUmVjZWl2ZVZpZGVvOiB0cnVlfSk7CisgICAgYXdhaXQgcGMxLnNldFJlbW90
ZURlc2NyaXB0aW9uKG9mZmVyMik7CisgICAgYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpOyAvLyBb
W0xhc3RBbnN3ZXJdXSBzZXQKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5
cGU6ICJyb2xsYmFjayJ9KTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZl
cik7CisgIH0sICJTZXR0aW5nIHByZXZpb3VzbHkgZ2VuZXJhdGVkIG9mZmVyIGFmdGVyIGEgY2Fs
bCB0byBjcmVhdGVBbnN3ZXIgc2hvdWxkIHdvcmsiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisK
KyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIo
e29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KSk7CisKKyAgICBjb25zdCBvZmZlciA9IGF3YWl0
IHBjMS5jcmVhdGVPZmZlcigpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9m
ZmVyKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGNv
bnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgICBhd2FpdCBwYzIuc2V0
TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlw
dGlvbihhbnN3ZXIpOworCisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCku
bGVuZ3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5y
ZWNlaXZlci50cmFjay5raW5kLCAiYXVkaW8iKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRU
cmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5z
Y2VpdmVycygpWzBdLnJlY2VpdmVyLnRyYWNrLmtpbmQsICJhdWRpbyIpOworICB9LCAiTmVnb3Rp
YXRpb24gd29ya3Mgd2hlbiB0aGVyZSBoYXMgYmVlbiBhIHJlcGVhdGVkIHNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKKworICAgIGNvbnN0IHNsZFByb21pc2UgPSBwYy5zZXRMb2NhbERlc2NyaXB0
aW9uKGF3YWl0IHBjLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSkpOwor
CisgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgInN0YWJsZSIsICJzaWduYWxp
bmdTdGF0ZSBzaG91bGQgbm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVyIGEgY2FsbCB0byBz
TEQiKTsKKworICAgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIG51
bGwsICJwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gc2hvdWxkIG5ldmVyIGJlIHNldCBkdWUgdG8g
c0xEIik7CisgICAgYXNzZXJ0X2VxdWFscyhwYy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51
bGwsICJwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBzaG91bGQgbm90IGJlIHNldCBzeW5jaHJvbm91
c2x5IGFmdGVyIGEgY2FsbCB0byBzTEQiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLmN1cnJlbnRM
b2NhbERlc2NyaXB0aW9uLCBudWxsLCAiY3VycmVudExvY2FsRGVzY3JpcHRpb24gc2hvdWxkIG5v
dCBiZSBzZXQgc3luY2hyb25vdXNseSBhZnRlciBhIGNhbGwgdG8gc0xEIik7CisgICAgYXNzZXJ0
X2VxdWFscyhwYy5jdXJyZW50UmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJjdXJyZW50UmVtb3Rl
RGVzY3JpcHRpb24gc2hvdWxkIG5vdCBiZSBzZXQgc3luY2hyb25vdXNseSBhZnRlciBhIGNhbGwg
dG8gc0xEIik7CisKKyAgICBjb25zdCBzdGF0ZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHsKKyAgICAgIHBjLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICAg
IHJlc29sdmUocGMuc2lnbmFsaW5nU3RhdGUpOworICAgICAgfQorICAgIH0pOworICAgIGNvbnN0
IHJhY2VWYWx1ZSA9IGF3YWl0IFByb21pc2UucmFjZShbc3RhdGVQcm9taXNlLCBzbGRQcm9taXNl
XSk7CisgICAgYXNzZXJ0X2VxdWFscyhyYWNlVmFsdWUsICJoYXZlLWxvY2FsLW9mZmVyIiwgInNp
Z25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50IHNob3VsZCBmaXJlIGJlZm9yZSBzTEQgcmVzb2x2ZXMi
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwg
InBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgbmV2ZXIgYmUgc2V0IGR1ZSB0byBzTEQi
KTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhwYy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwgbnVs
bCwgInBlbmRpbmdMb2NhbERlc2NyaXB0aW9uIHNob3VsZCBiZSB1cGRhdGVkIGJlZm9yZSB0aGUg
c2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLnBlbmRp
bmdMb2NhbERlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIpOworICAgIGFzc2VydF9lcXVhbHMocGMu
cGVuZGluZ0xvY2FsRGVzY3JpcHRpb24uc2RwLCBwYy5sb2NhbERlc2NyaXB0aW9uLnNkcCk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhwYy5jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwgImN1cnJl
bnRMb2NhbERlc2NyaXB0aW9uIHNob3VsZCBuZXZlciBiZSB1cGRhdGVkIGR1ZSB0byBzTEQob2Zm
ZXIpIik7CisgICAgYXNzZXJ0X2VxdWFscyhwYy5jdXJyZW50UmVtb3RlRGVzY3JpcHRpb24sIG51
bGwsICJjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24gc2hvdWxkIG5ldmVyIGJlIHVwZGF0ZWQgZHVl
IHRvIHNMRChvZmZlcikiKTsKKworICAgIGF3YWl0IHNsZFByb21pc2U7CisgIH0sICJzZXRMb2Nh
bERlc2NyaXB0aW9uKG9mZmVyKSBzaG91bGQgdXBkYXRlIGludGVybmFsIHN0YXRlIHdpdGggYSBx
dWV1ZWQgdGFzaywgaW4gdGhlIHJpZ2h0IG9yZGVyIik7CisKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wYXJhbWV0ZXJsZXNzLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcGFyYW1ldGVybGVz
cy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ViNWUwY2U4Yzk0ZmNiNDc3ZWUzNWIy
ZjRlMDAxYzdlZmE1NjRmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2Fs
RGVzY3JpcHRpb24tcGFyYW1ldGVybGVzcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NSBAQAorCitGQUlMIFBhcmFtZXRlcmxlc3MgU0xEKCkgaW4gJ3N0YWJsZScgZ29lcyB0byAnaGF2
ZS1sb2NhbC1vZmZlcicgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK0ZBSUwgUGFyYW1l
dGVybGVzcyBTTEQoKSBpbiAnc3RhYmxlJyBzZXRzIHBlbmRpbmdMb2NhbERlc2NyaXB0aW9uIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMiCitGQUlMIFBhcmFtZXRlcmxlc3MgU0xEKCkgaW4g
J3N0YWJsZScgYXNzaWducyB0cmFuc2NlaXZlci5taWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cyIKK0ZBSUwgUGFyYW1ldGVybGVzcyBTTEQoKSBpbiAnaGF2ZS1yZW1vdGUtb2ZmZXInIGdv
ZXMgdG8gJ3N0YWJsZScgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK0ZBSUwgUGFyYW1l
dGVybGVzcyBTTEQoKSBpbiAnaGF2ZS1yZW1vdGUtb2ZmZXInIHNldHMgY3VycmVudExvY2FsRGVz
Y3JpcHRpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK0ZBSUwgUGFyYW1ldGVybGVz
cyBTTEQoKSBpbiAnaGF2ZS1yZW1vdGUtb2ZmZXInIHNldHMgdHJhbnNjZWl2ZXIuY3VycmVudERp
cmVjdGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorRkFJTCBQYXJhbWV0ZXJsZXNz
IFNMRCgpIHVzZXMgW1tMYXN0Q3JlYXRlZE9mZmVyXV0gaWYgaXQgaXMgc3RpbGwgdmFsaWQgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK0ZBSUwgUGFyYW1ldGVybGVzcyBTTEQoKSB1c2Vz
IFtbTGFzdENyZWF0ZWRBbnN3ZXJdXSBpZiBpdCBpcyBzdGlsbCB2YWxpZCBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBl
bm91Z2ggYXJndW1lbnRzIgorRkFJTCBQYXJhbWV0ZXJsZXNzIFNMRCgpIHJlamVjdHMgd2l0aCBJ
bnZhbGlkU3RhdGVFcnJvciBpZiBhbHJlYWR5IGNsb3NlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiSW52YWxpZFN0YXRlRXJyb3IiIGJ1dCBnb3QgIlR5cGVFcnJvciIKK0ZBSUwgUGFyYW1ldGVy
bGVzcyBTTEQoKSBuZXZlciBzZXR0bGVzIGlmIGNsb3NlZCB3aGlsZSBwZW5kaW5nIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
Tm90IGVub3VnaCBhcmd1bWVudHMiCitGQUlMIFBhcmFtZXRlcmxlc3MgU0xEKCkgaW4gYSBmdWxs
IE8vQSBleGNoYW5nZSBzdWNjZWVkcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorUEFT
UyBQYXJhbWV0ZXJsZXNzIFNSRCgpIHJlamVjdHMgd2l0aCBUeXBlRXJyb3IuIAorUEFTUyBSVENT
ZXNzaW9uRGVzY3JpcHRpb24gY29uc3RydWN0ZWQgd2l0aG91dCB0eXBlIHRocm93cyBUeXBlRXJy
b3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcGFyYW1l
dGVybGVzcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wYXJh
bWV0ZXJsZXNzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE3YTc2MzE5YTA1NzE5NjFkN2RhY2Mz
ZDE1NjIzMjcwODk1ODdiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2Fs
RGVzY3JpcHRpb24tcGFyYW1ldGVybGVzcy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTcwIEBACis8
IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+PC90aXRsZT4KKzxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBz
dHJpY3QiOworCitjb25zdCBrU21hbGxUaW1lb3V0TXMgPSAxMDA7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3Qgb2ZmZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IG9mZmVyZXIuY2xvc2UoKSk7CisKKyAgY29uc3Qgc2lnbmFs
aW5nU3RhdGVDaGFuZ2VFdmVudAorICAgICAgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIG9mZmVyZXIs
ICdzaWduYWxpbmdzdGF0ZWNoYW5nZScpCisgICAgICAud2FpdF9mb3IoJ3NpZ25hbGluZ3N0YXRl
Y2hhbmdlJyk7CisgIGF3YWl0IG9mZmVyZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2Fp
dCBzaWduYWxpbmdTdGF0ZUNoYW5nZUV2ZW50OworICBhc3NlcnRfZXF1YWxzKG9mZmVyZXIuc2ln
bmFsaW5nU3RhdGUsICdoYXZlLWxvY2FsLW9mZmVyJyk7Cit9LCAiUGFyYW1ldGVybGVzcyBTTEQo
KSBpbiAnc3RhYmxlJyBnb2VzIHRvICdoYXZlLWxvY2FsLW9mZmVyJyIpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBvZmZlcmVyLmNsb3NlKCkpOworCisgIGF3YWl0IG9m
ZmVyZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhc3NlcnRfbm90X2VxdWFscyhvZmZlcmVy
LnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLCBudWxsKTsKK30sICJQYXJhbWV0ZXJsZXNzIFNMRCgp
IGluICdzdGFibGUnIHNldHMgcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24iKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBvZmZlcmVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gb2ZmZXJlci5jbG9zZSgpKTsKKworICBjb25zdCB0
cmFuc2NlaXZlciA9IG9mZmVyZXIuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgIGFzc2VydF9l
cXVhbHModHJhbnNjZWl2ZXIubWlkLCBudWxsKTsKKyAgYXdhaXQgb2ZmZXJlci5zZXRMb2NhbERl
c2NyaXB0aW9uKCk7CisgIGFzc2VydF9ub3RfZXF1YWxzKHRyYW5zY2VpdmVyLm1pZCwgbnVsbCk7
Cit9LCAiUGFyYW1ldGVybGVzcyBTTEQoKSBpbiAnc3RhYmxlJyBhc3NpZ25zIHRyYW5zY2VpdmVy
Lm1pZCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyZXIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBvZmZlcmVyLmNs
b3NlKCkpOworICBjb25zdCBhbnN3ZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IGFuc3dlcmVyLmNsb3NlKCkpOworCisgIGF3YWl0IGFuc3dlcmVy
LnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IG9mZmVyZXIuY3JlYXRlT2ZmZXIoKSk7CisgIGNv
bnN0IHNpZ25hbGluZ1N0YXRlQ2hhbmdlRXZlbnQKKyAgICAgID0gbmV3IEV2ZW50V2F0Y2hlcih0
LCBhbnN3ZXJlciwgJ3NpZ25hbGluZ3N0YXRlY2hhbmdlJykKKyAgICAgIC53YWl0X2Zvcignc2ln
bmFsaW5nc3RhdGVjaGFuZ2UnKTsKKyAgYXdhaXQgYW5zd2VyZXIuc2V0TG9jYWxEZXNjcmlwdGlv
bigpOworICBhd2FpdCBzaWduYWxpbmdTdGF0ZUNoYW5nZUV2ZW50OworICBhc3NlcnRfZXF1YWxz
KGFuc3dlcmVyLnNpZ25hbGluZ1N0YXRlLCAnc3RhYmxlJyk7Cit9LCAiUGFyYW1ldGVybGVzcyBT
TEQoKSBpbiAnaGF2ZS1yZW1vdGUtb2ZmZXInIGdvZXMgdG8gJ3N0YWJsZSciKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBvZmZlcmVyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gb2ZmZXJlci5jbG9zZSgpKTsKKyAgY29uc3Qg
YW5zd2VyZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBhbnN3ZXJlci5jbG9zZSgpKTsKKworICBhd2FpdCBhbnN3ZXJlci5zZXRSZW1vdGVEZXNjcmlw
dGlvbihhd2FpdCBvZmZlcmVyLmNyZWF0ZU9mZmVyKCkpOworICBhd2FpdCBhbnN3ZXJlci5zZXRM
b2NhbERlc2NyaXB0aW9uKCk7CisgIGFzc2VydF9ub3RfZXF1YWxzKGFuc3dlcmVyLmN1cnJlbnRM
b2NhbERlc2NyaXB0aW9uLCBudWxsKTsKK30sICJQYXJhbWV0ZXJsZXNzIFNMRCgpIGluICdoYXZl
LXJlbW90ZS1vZmZlcicgc2V0cyBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbiIpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBvZmZlcmVyLmNsb3NlKCkpOworICBjb25zdCBh
bnN3ZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IGFuc3dlcmVyLmNsb3NlKCkpOworCisgIG9mZmVyZXIuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7
CisgIGNvbnN0IG9uVHJhbnNjZWl2ZXJQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9Pgor
ICAgICAgYW5zd2VyZXIub250cmFjayA9IGUgPT4gcmVzb2x2ZShlLnRyYW5zY2VpdmVyKSk7Cisg
IGF3YWl0IGFuc3dlcmVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IG9mZmVyZXIuY3JlYXRl
T2ZmZXIoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0gYXdhaXQgb25UcmFuc2NlaXZlclByb21p
c2U7CisgIGF3YWl0IGFuc3dlcmVyLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXNzZXJ0X2Vx
dWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAncmVjdm9ubHknKTsKK30sICJQYXJh
bWV0ZXJsZXNzIFNMRCgpIGluICdoYXZlLXJlbW90ZS1vZmZlcicgc2V0cyAiICsKKyAgICJ0cmFu
c2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3Qgb2ZmZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IG9mZmVyZXIuY2xvc2UoKSk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBvZmZl
cmVyLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IG9mZmVyZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigp
OworICAvLyBhc3NlcnRfdHJ1ZSgpIGlzIHVzZWQgcmF0aGVyIHRoYW4gYXNzZXJ0X2VxdWFscygp
IHNvIHRoYXQgaWYgdGhlIGFzc2VydGlvbgorICAvLyBmYWlscywgdGhlIC1leHBlY3RlZC50eHQg
ZmlsZSBpcyBub3QgZGlmZmVyZW50IG9uIGVhY2ggcnVuLgorICBhc3NlcnRfdHJ1ZShvZmZlcmVy
LnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLnNkcCA9PSBvZmZlci5zZHAsCisgICAgICAgICAgICAg
ICJvZmZlcmVyLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLnNkcCA9PSBvZmZlci5zZHAiKTsKK30s
ICJQYXJhbWV0ZXJsZXNzIFNMRCgpIHVzZXMgW1tMYXN0Q3JlYXRlZE9mZmVyXV0gaWYgaXQgaXMg
c3RpbGwgdmFsaWQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBvZmZl
cmVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gb2Zm
ZXJlci5jbG9zZSgpKTsKKyAgY29uc3QgYW5zd2VyZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBhbnN3ZXJlci5jbG9zZSgpKTsKKworICBhd2FpdCBh
bnN3ZXJlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBvZmZlcmVyLmNyZWF0ZU9mZmVyKCkp
OworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBhbnN3ZXJlci5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdh
aXQgYW5zd2VyZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICAvLyBhc3NlcnRfdHJ1ZSgpIGlz
IHVzZWQgcmF0aGVyIHRoYW4gYXNzZXJ0X2VxdWFscygpIHNvIHRoYXQgaWYgdGhlIGFzc2VydGlv
bgorICAvLyBmYWlscywgdGhlIC1leHBlY3RlZC50eHQgZmlsZSBpcyBub3QgZGlmZmVyZW50IG9u
IGVhY2ggcnVuLgorICBhc3NlcnRfdHJ1ZShhbnN3ZXJlci5jdXJyZW50TG9jYWxEZXNjcmlwdGlv
bi5zZHAgPT0gYW5zd2VyLnNkcCwKKyAgICAgICAgICAgICAgImFuc3dlcmVyLmN1cnJlbnRMb2Nh
bERlc2NyaXB0aW9uLnNkcCA9PSBhbnN3ZXIuc2RwIik7Cit9LCAiUGFyYW1ldGVybGVzcyBTTEQo
KSB1c2VzIFtbTGFzdENyZWF0ZWRBbnN3ZXJdXSBpZiBpdCBpcyBzdGlsbCB2YWxpZCIpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyZXIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgb2ZmZXJlci5jbG9zZSgpOworICB0cnkgeworICAgIGF3YWl0IG9mZmVy
ZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICAgIGFzc2VydF9ub3RfcmVhY2hlZCgpOworICB9
IGNhdGNoIChlKSB7CisgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJJbnZhbGlkU3RhdGVFcnJv
ciIpOworICB9Cit9LCAiUGFyYW1ldGVybGVzcyBTTEQoKSByZWplY3RzIHdpdGggSW52YWxpZFN0
YXRlRXJyb3IgaWYgYWxyZWFkeSBjbG9zZWQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICBjb25zdCBvZmZlcmVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gb2ZmZXJlci5jbG9zZSgpKTsKKworICBjb25zdCBwID0gUHJvbWlzZS5yYWNl
KFsKKyAgICBvZmZlcmVyLnNldExvY2FsRGVzY3JpcHRpb24oKSwKKyAgICBuZXcgUHJvbWlzZShy
ID0+IHQuc3RlcF90aW1lb3V0KCgpID0+IHIoInRpbWVvdXQiKSwga1NtYWxsVGltZW91dE1zKSkK
KyAgXSk7CisgIG9mZmVyZXIuY2xvc2UoKTsKKyAgYXNzZXJ0X2VxdWFscyhhd2FpdCBwLCAidGlt
ZW91dCIpOworfSwgIlBhcmFtZXRlcmxlc3MgU0xEKCkgbmV2ZXIgc2V0dGxlcyBpZiBjbG9zZWQg
d2hpbGUgcGVuZGluZyIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9m
ZmVyZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBv
ZmZlcmVyLmNsb3NlKCkpOworICBjb25zdCBhbnN3ZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGFuc3dlcmVyLmNsb3NlKCkpOworCisgIC8vIElt
cGxpY2l0bHkgY3JlYXRlIGFuIG9mZmVyLgorICBhd2FpdCBvZmZlcmVyLnNldExvY2FsRGVzY3Jp
cHRpb24oKTsKKyAgYXdhaXQgYW5zd2VyZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXJlci5w
ZW5kaW5nTG9jYWxEZXNjcmlwdGlvbik7CisgIC8vIEltcGxpY2l0bHkgY3JlYXRlIGFuIGFuc3dl
ci4KKyAgYXdhaXQgYW5zd2VyZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBvZmZl
cmVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcmVyLmN1cnJlbnRMb2NhbERlc2NyaXB0aW9u
KTsKK30sICJQYXJhbWV0ZXJsZXNzIFNMRCgpIGluIGEgZnVsbCBPL0EgZXhjaGFuZ2Ugc3VjY2Vl
ZHMiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBhbnN3ZXJlciA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0cnkgeworICAgIGF3YWl0IGFuc3dlcmVyLnNldFJl
bW90ZURlc2NyaXB0aW9uKCk7CisgICAgYXNzZXJ0X25vdF9yZWFjaGVkKCk7CisgIH0gY2F0Y2gg
KGUpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIlR5cGVFcnJvciIpOworICB9Cit9LCAi
UGFyYW1ldGVybGVzcyBTUkQoKSByZWplY3RzIHdpdGggVHlwZUVycm9yLiIpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgY29uc3Qge3NkcH0gPSBhd2FpdCBvZmZlcmVyLmNyZWF0ZU9mZmVyKCk7CisgIG5l
dyBSVENTZXNzaW9uRGVzY3JpcHRpb24oe3R5cGU6ICJvZmZlciIsIHNkcH0pOworICB0cnkgewor
ICAgIG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oe3NkcH0pOworICAgIGFzc2VydF9ub3RfcmVh
Y2hlZCgpOworICB9IGNhdGNoIChlKSB7CisgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJUeXBl
RXJyb3IiKTsKKyAgfQorfSwgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBjb25zdHJ1Y3RlZCB3aXRo
b3V0IHR5cGUgdGhyb3dzIFR5cGVFcnJvciIpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbAppbmRleCAxZmJiMzA5MjNmM2QxZTlh
YmVmNjk0MGE5MzFhNmQ0MjZlZDAxOTE1Li5lNDI5NmFlZjEzOWYxOWQwODIyOWM5NDUwZjYxYzMw
NzA2MTQ3ZDI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXBy
YW5zd2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wcmFuc3dl
ci5odG1sCkBAIC02NSw3ICs2NSw3IEBACiAKICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoKQog
ICAgIC50aGVuKG9mZmVyID0+Ci0gICAgICBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRTdGF0
ZUVycm9yJywKKyAgICAgIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRTdGF0ZUVycm9y
JywKICAgICAgICAgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbih7IHR5cGU6ICdwcmFuc3dlcicsIHNk
cDogb2ZmZXIuc2RwIH0pKSk7CiAgIH0sICdzZXRMb2NhbERlc2NyaXB0aW9uKHByYW5zd2VyKSBm
cm9tIHN0YWJsZSBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3InKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXJvbGxiYWNrLWV4
cGVjdGVkLnR4dAppbmRleCA5NTY2ZTRiOGE4MmRlNjdjN2Y2NzYwY2IxZTFhZDM2ZWQ2YTI0YzI5
Li5lNDBmNTJhMzZjMDgyMGVhY2M0NmFlNDMxM2U3Y2VhZjQ4MmI3MDAzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXJvbGxiYWNrLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXJvbGxiYWNrLWV4cGVjdGVkLnR4dApA
QCAtMyw0ICszLDUgQEAgRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBmcm9tIGhh
dmUtbG9jYWwtb2ZmZXIgc3RhdGUgc2hvdWxkIHJlc2V0IGJhY2sKIFBBU1Mgc2V0TG9jYWxEZXNj
cmlwdGlvbihyb2xsYmFjaykgZnJvbSBzdGFibGUgc3RhdGUgc2hvdWxkIHJlamVjdCB3aXRoIElu
dmFsaWRTdGF0ZUVycm9yIAogUEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBhZnRl
ciBzZXR0aW5nIGFuc3dlciBkZXNjcmlwdGlvbiBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0
YXRlRXJyb3IgCiBGQUlMIHNldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIHNob3VsZCBpZ25v
cmUgaW52YWxpZCBzZHAgY29udGVudCBhbmQgc3VjY2VlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3Jp
cHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKK0ZB
SUwgc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykgc2hvdWxkIHVwZGF0ZSBpbnRlcm5hbCBz
dGF0ZSB3aXRoIGEgcXVldWVkIHRhc3NrLCBpbiB0aGUgcmlnaHQgb3JkZXIgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJy
b3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcg
c3RhdGUiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcm9s
bGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcm9sbGJhY2suaHRt
bAppbmRleCA2MzBmODRmYWE0N2YyZDg1ODk5ODk2NzRhMmNiNmQzOTc5NzUyMGFjLi5lMTYwN2I2
MzgzNjY3MDc4NDFkNzQzNTJkOWU5ZWUxMGQyMTg1MDRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRMb2NhbERlc2NyaXB0aW9uLXJvbGxiYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0
TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay5odG1sCkBAIC05OSw3ICs5OSw3IEBACiAgIHByb21p
c2VfdGVzdCh0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwog
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAorICAgIHJldHVybiBwcm9taXNlX3JlamVj
dHNfZG9tKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgICBwYy5zZXRMb2NhbERlc2NyaXB0
aW9uKHsgdHlwZTogJ3JvbGxiYWNrJyB9KSk7CiAgIH0sIGBzZXRMb2NhbERlc2NyaXB0aW9uKHJv
bGxiYWNrKSBmcm9tIHN0YWJsZSBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRl
RXJyb3JgKTsKIApAQCAtMTEyLDcgKzExMiw3IEBACiAgICAgICAudGhlbigoKSA9PiBwYy5jcmVh
dGVBbnN3ZXIoKSkpCiAgICAgLnRoZW4oYW5zd2VyID0+IHBjLnNldExvY2FsRGVzY3JpcHRpb24o
YW5zd2VyKSkKICAgICAudGhlbigoKSA9PiB7Ci0gICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3Rz
KHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCisgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2Rv
bSh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAogICAgICAgICBwYy5zZXRMb2NhbERlc2NyaXB0aW9u
KHsgdHlwZTogJ3JvbGxiYWNrJyB9KSk7CiAgICAgfSk7CiAgIH0sIGBzZXRMb2NhbERlc2NyaXB0
aW9uKHJvbGxiYWNrKSBhZnRlciBzZXR0aW5nIGFuc3dlciBkZXNjcmlwdGlvbiBzaG91bGQgcmVq
ZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3JgKTsKQEAgLTEyNyw0ICsxMjcsMzIgQEAKICAgICAg
IHNkcDogJyE8SW52YWxpZCBTRFAgQ29udGVudD47JwogICAgIH0pKTsKICAgfSwgYHNldExvY2Fs
RGVzY3JpcHRpb24ocm9sbGJhY2spIHNob3VsZCBpZ25vcmUgaW52YWxpZCBzZHAgY29udGVudCBh
bmQgc3VjY2VlZGApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjLmNy
ZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSkpOworICAgIGNvbnN0IHNsZFBy
b21pc2UgPSBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7CisKKyAg
ICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAiaGF2ZS1sb2NhbC1vZmZlciIsICJz
aWduYWxpbmdTdGF0ZSBzaG91bGQgbm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVyIGEgY2Fs
bCB0byBzTEQiKTsKKworICAgIGFzc2VydF9ub3RfZXF1YWxzKHBjLnBlbmRpbmdMb2NhbERlc2Ny
aXB0aW9uLCBudWxsLCAicGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gc2hvdWxkIG5vdCBiZSBzZXQg
c3luY2hyb25vdXNseSBhZnRlciBhIGNhbGwgdG8gc0xEIik7CisgICAgYXNzZXJ0X2VxdWFscyhw
Yy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbi50eXBlLCAib2ZmZXIiKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHBjLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLnNkcCwgcGMubG9jYWxEZXNjcmlwdGlvbi5z
ZHApOworICAgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBudWxs
LCAicGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBuZXZlciBiZSBzZXQgZHVlIHRvIHNM
RChvZmZlcikiKTsKKworICAgIGNvbnN0IHN0YWJsZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgIHBjLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAg
ICAgIHJlc29sdmUocGMuc2lnbmFsaW5nU3RhdGUpOworICAgICAgfQorICAgIH0pOworICAgIGNv
bnN0IHJhY2VWYWx1ZSA9IGF3YWl0IFByb21pc2UucmFjZShbc3RhYmxlUHJvbWlzZSwgc2xkUHJv
bWlzZV0pOworICAgIGFzc2VydF9lcXVhbHMocmFjZVZhbHVlLCAic3RhYmxlIiwgInNpZ25hbGlu
Z3N0YXRlY2hhbmdlIGV2ZW50IHNob3VsZCBmaXJlIGJlZm9yZSBzTEQgcmVzb2x2ZXMiKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHBjLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLCBudWxsLCAicGVuZGlu
Z0xvY2FsRGVzY3JpcHRpb24gc2hvdWxkIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBzaWduYWxpbmdz
dGF0ZWNoYW5nZSBldmVudCIpOworICAgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ1JlbW90ZURl
c2NyaXB0aW9uLCBudWxsLCAicGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBuZXZlciBi
ZSBzZXQgZHVlIHRvIHNMRChvZmZlcikiKTsKKworICAgIGF3YWl0IHNsZFByb21pc2U7CisgIH0s
ICJzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBzaG91bGQgdXBkYXRlIGludGVybmFsIHN0
YXRlIHdpdGggYSBxdWV1ZWQgdGFzc2ssIGluIHRoZSByaWdodCBvcmRlciIpOworCiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24uaHRtbAppbmRleCAyYmVjYmQzZTIzZWZlZTZl
ZTE0OTg4Yjc3MGMzNGU4ZmJhOWQzNDU1Li5jNDY3MWMzMDA4ZTE5OTE3NmM1N2EyNzI4YmYyNWJh
YjY0ZmMyYjQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi5odG1sCkBAIC0xMjUsNiAr
MTI1LDcgQEAKIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3Nl
KCkpOwogICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKICAgICBsZXQg
ZXZlbnRTZXF1ZW5jZSA9ICcnOwogICAgIGNvbnN0IHNpZ25hbGluZ3N0YXRlY2hhbmdlUmVzb2x2
ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURl
c2NyaXB0aW9uLWFuc3dlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24t
YW5zd2VyLmh0bWwKaW5kZXggY2M1YmQxZTA4MDdiNzFlMGU5NmMzNjhmZTE4YWI2YmQwYzZkMTQy
ZC4uNzMwNjMxMWIwYWQ0ODYzYmJkZDk2NjcyNjBkYTNjODg1YjJkYzZiZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tYW5zd2VyLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tYW5zd2VyLmh0bWwKQEAgLTEwMiw3ICsxMDIsNyBA
QAogCiAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCkKICAgICAudGhlbihvZmZlciA9PgotICAg
ICAgcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCisgICAgICBwcm9taXNl
X3JlamVjdHNfZG9tKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgICAgIHBjLnNldFJlbW90
ZURlc2NyaXB0aW9uKHsgdHlwZTogJ2Fuc3dlcicsIHNkcDogb2ZmZXIuc2RwIH0pKSk7CiAgIH0s
ICdDYWxsaW5nIHNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcikgZnJvbSBzdGFibGUgc3RhdGUg
c2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yJyk7CiAKQEAgLTExNiw3ICsxMTYs
NyBAQAogICAgICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpCiAgICAgICAudGhlbigo
KSA9PiBnZW5lcmF0ZUFuc3dlcihvZmZlcikpKQogICAgIC50aGVuKGFuc3dlciA9PgotICAgICAg
cHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCisgICAgICBwcm9taXNlX3Jl
amVjdHNfZG9tKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgICAgIHBjLnNldFJlbW90ZURl
c2NyaXB0aW9uKGFuc3dlcikpKTsKICAgfSwgJ0NhbGxpbmcgc2V0UmVtb3RlRGVzY3JpcHRpb24o
YW5zd2VyKSBmcm9tIGhhdmUtcmVtb3RlLW9mZmVyIHN0YXRlIHNob3VsZCByZWplY3Qgd2l0aCBJ
bnZhbGlkU3RhdGVFcnJvcicpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVE
ZXNjcmlwdGlvbi1vZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNj
cmlwdGlvbi1vZmZlci1leHBlY3RlZC50eHQKaW5kZXggZGI2MTZiYzA0YWEzMDgwNWI2NzU5NDg3
NWNmOTQ1MGIyOTU4NmQ5NS4uMjBkN2FkNjJiNjVjMTE2ZmRjMDljYzMzODdlODJkYzlkYzQ2OGUy
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLWV4
cGVjdGVkLnR4dApAQCAtMSw3ICsxLDE2IEBACiAKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNz
YWdlID0gVW5oYW5kbGVkIHJlamVjdGlvbjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUg
d2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZQorCiBQQVNTIHNldFJlbW90ZURlc2NyaXB0aW9u
IHdpdGggdmFsaWQgb2ZmZXIgc2hvdWxkIHN1Y2NlZWQgCiBQQVNTIHNldFJlbW90ZURlc2NyaXB0
aW9uIG11bHRpcGxlIHRpbWVzIHNob3VsZCBzdWNjZWVkIAogUEFTUyBzZXRSZW1vdGVEZXNjcmlw
dGlvbiBtdWx0aXBsZSB0aW1lcyB3aXRoIGRpZmZlcmVudCBvZmZlciBzaG91bGQgc3VjY2VlZCAK
IEZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpIHdpdGggaW52YWxpZCBTRFAgc2hvdWxk
IHJlamVjdCB3aXRoIFJUQ0Vycm9yIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBlcnJvciBkZXRhaWwg
ZmllbGQgdG8gc2V0IHRvIHNkcC1zeW50YXgtZXJyb3IgZXhwZWN0ZWQgKHN0cmluZykgInNkcC1z
eW50YXgtZXJyb3IiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1QQVNTIHNldFJlbW90
ZURlc2NyaXB0aW9uKG9mZmVyKSBmcm9tIGhhdmUtbG9jYWwtb2ZmZXIgc3RhdGUgc2hvdWxkIHJl
amVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yIAorRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbihv
ZmZlcikgZnJvbSBoYXZlLWxvY2FsLW9mZmVyIHNob3VsZCByb2xsIGJhY2sgYW5kIHN1Y2NlZWQg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52
YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVu
dCBzaWduYWxpbmcgc3RhdGUiCitUSU1FT1VUIHNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSBm
cm9tIGhhdmUtbG9jYWwtb2ZmZXIgZmlyZXMgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgdHdpY2UgVGVz
dCB0aW1lZCBvdXQKK05PVFJVTiBzZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikgaW4gc3RhYmxl
IHNob3VsZCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgd2l0aCBhIHF1ZXVlZCB0YXNrLCBpbiB0aGUg
cmlnaHQgb3JkZXIgCitOT1RSVU4gc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpIGluIGhhdmUt
bG9jYWwtb2ZmZXIgc2hvdWxkIHVwZGF0ZSBpbnRlcm5hbCBzdGF0ZSB3aXRoIGEgcXVldWVkIHRh
c2ssIGluIHRoZSByaWdodCBvcmRlciAKK05PVFJVTiBOYWl2ZSByb2xsYmFjayBhcHByb2FjaCBp
cyBub3QgZ2xhcmUtcHJvb2YgKGNvbnRyb2wpIAorTk9UUlVOIHNldFJlbW90ZURlc2NyaXB0aW9u
KG9mZmVyKSBmcm9tIGhhdmUtbG9jYWwtb2ZmZXIgaXMgZ2xhcmUtcHJvb2YgCitOT1RSVU4gc2V0
UmVtb3RlRGVzY3JpcHRpb24oaW52YWxpZE9mZmVyKSBmcm9tIGhhdmUtbG9jYWwtb2ZmZXIgZG9l
cyBub3QgdW5kbyByb2xsYmFjayAKK05PVFJVTiByZXBlYXRlZCBzUkQob2ZmZXIpIHdvcmtzIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1vZmZlci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXIuaHRtbAppbmRleCBjYWU2
MmIyNGI2YzE4MGMwNmJlODdkZDQ4ZmZhYzM2NDQyNzYyNGRiLi5iNDcwMjQ0NjYxMzI1NWRhZWM3
ZGI1MzI1ZjY0MDg5YTkxN2ZkZWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVE
ZXNjcmlwdGlvbi1vZmZlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0
aW9uLW9mZmVyLmh0bWwKQEAgLTcsOSArNyw2IEBACiA8c2NyaXB0PgogICAndXNlIHN0cmljdCc7
CiAKLSAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKLSAg
Ly8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJy
dGMuaHRtbAotCiAgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVk
IGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgogICAvLyAgIGFzc2VydF9zZXNzaW9u
X2Rlc2Nfc2ltaWxhcigpCiAgIC8vICAgZ2VuZXJhdGVBdWRpb1JlY2VpdmVPbmx5T2ZmZXIKQEAg
LTE2MiwyNyArMTU5LDE3MCBAQAogICAgIH0pOwogICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24o
b2ZmZXIpIHdpdGggaW52YWxpZCBTRFAgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yJyk7CiAK
LSAgLyoKLSAgICA0LjMuMS42LiAgU2V0IHRoZSBSVENTZXNzaW9uU2Vzc2lvbkRlc2NyaXB0aW9u
Ci0gICAgICAyLjEuMy4gIElmIHRoZSBkZXNjcmlwdGlvbidzIHR5cGUgaXMgaW52YWxpZCBmb3Ig
dGhlIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIG9mCi0gICAgICAgICAgICAgIGNvbm5lY3Rpb24s
IHRoZW4gcmVqZWN0IHAgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgSW52YWxpZFN0YXRlRXJyb3IgYW5k
IGFib3J0Ci0gICAgICAgICAgICAgIHRoZXNlIHN0ZXBzLgorICBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Cisg
ICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkp
OworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2Zm
ZXIoKSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuc2lnbmFsaW5nU3RhdGUsICdoYXZlLXJlbW90
ZS1vZmZlcicpOworICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpIGZyb20gaGF2ZS1s
b2NhbC1vZmZlciBzaG91bGQgcm9sbCBiYWNrIGFuZCBzdWNjZWVkJyk7CiAKLSAgICBbSlNFUF0K
LSAgICAgIDUuNi4gIElmIHRoZSB0eXBlIGlzICJvZmZlciIsIHRoZSBQZWVyQ29ubmVjdGlvbiBz
dGF0ZSBNVVNUIGJlIGVpdGhlciAic3RhYmxlIiBvcgotICAgICAgICAgICAgImhhdmUtcmVtb3Rl
LW9mZmVyIi4KLSAgICovCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2Uo
KSk7Ci0gICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCkKLSAgICAudGhlbihvZmZlciA9PiB7Ci0g
ICAgICByZXR1cm4gcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikKLSAgICAgIC50aGVuKCgp
ID0+IHsKLSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJy
b3InLAotICAgICAgICAgIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSk7Ci0gICAgICB9
KTsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgICBjb25zdCBwID0gcGMxLnNldFJlbW90ZURl
c2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyID0+IHBjMS5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gcik7CisgICAgYXNzZXJ0X2VxdWFs
cyhwYzEuc2lnbmFsaW5nU3RhdGUsICdzdGFibGUnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5w
ZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwgbnVsbCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEucGVu
ZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBudWxsKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+
IHBjMS5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gcik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEu
c2lnbmFsaW5nU3RhdGUsICdoYXZlLXJlbW90ZS1vZmZlcicpOworICAgIGFzc2VydF9lcXVhbHMo
cGMxLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBj
MS5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24udHlwZSwgJ29mZmVyJyk7CisgICAgYXdhaXQgcDsK
KyAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSBmcm9tIGhhdmUtbG9jYWwtb2ZmZXIg
ZmlyZXMgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgdHdpY2UnKTsKKworICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CisKKyAgICBjb25zdCBzcmRQcm9taXNlID0gcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0
IHBjMS5jcmVhdGVPZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pKTsKKworICAgIGFz
c2VydF9lcXVhbHMocGMyLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwgInNpZ25hbGluZ1N0YXRl
IHNob3VsZCBub3QgYmUgc2V0IHN5bmNocm9ub3VzbHkgYWZ0ZXIgYSBjYWxsIHRvIHNSRCIpOwor
CisgICAgYXNzZXJ0X2VxdWFscyhwYzIucGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBudWxsLCAi
cGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBub3QgYmUgc2V0IHN5bmNocm9ub3VzbHkg
YWZ0ZXIgYSBjYWxsIHRvIHNSRCIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmN1cnJlbnRSZW1v
dGVEZXNjcmlwdGlvbiwgbnVsbCwgImN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgbm90
IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVyIGEgY2FsbCB0byBzUkQiKTsKKworICAgIGNvbnN0
IHN0YXRlUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgcGMyLm9uc2ln
bmFsaW5nc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICAgIHJlc29sdmUocGMyLnNpZ25hbGlu
Z1N0YXRlKTsKKyAgICAgIH0KICAgICB9KTsKLSAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKG9m
ZmVyKSBmcm9tIGhhdmUtbG9jYWwtb2ZmZXIgc3RhdGUgc2hvdWxkIHJlamVjdCB3aXRoIEludmFs
aWRTdGF0ZUVycm9yJyk7CisKKyAgICBjb25zdCByYWNlVmFsdWUgPSBhd2FpdCBQcm9taXNlLnJh
Y2UoW3N0YXRlUHJvbWlzZSwgc3JkUHJvbWlzZV0pOworICAgIGFzc2VydF9lcXVhbHMocmFjZVZh
bHVlLCAiaGF2ZS1yZW1vdGUtb2ZmZXIiLCAic2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQgc2hv
dWxkIGZpcmUgYmVmb3JlIHNSRCByZXNvbHZlcyIpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKHBj
Mi5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJwZW5kaW5nUmVtb3RlRGVzY3JpcHRp
b24gc2hvdWxkIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBzaWduYWxpbmdzdGF0ZWNoYW5nZSBldmVu
dCIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbi50eXBl
LCAib2ZmZXIiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5wZW5kaW5nUmVtb3RlRGVzY3JpcHRp
b24uc2RwLCBwYzIucmVtb3RlRGVzY3JpcHRpb24uc2RwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBj
Mi5jdXJyZW50UmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJjdXJyZW50UmVtb3RlRGVzY3JpcHRp
b24gc2hvdWxkIG5vdCBiZSBzZXQgYWZ0ZXIgYSBjYWxsIHRvIHNSRChvZmZlcikiKTsKKworICAg
IGF3YWl0IHNyZFByb21pc2U7CisgIH0sICJzZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikgaW4g
c3RhYmxlIHNob3VsZCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgd2l0aCBhIHF1ZXVlZCB0YXNrLCBp
biB0aGUgcmlnaHQgb3JkZXIiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAg
Y29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBhd2FpdCBw
YzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNl
aXZlQXVkaW86IHRydWV9KSk7CisKKyAgICAvLyBJbXBsaWNpdCByb2xsYmFjayEKKyAgICBjb25z
dCBzcmRQcm9taXNlID0gcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVP
ZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pKTsKKworICAgIGFzc2VydF9lcXVhbHMo
cGMyLnNpZ25hbGluZ1N0YXRlLCAiaGF2ZS1sb2NhbC1vZmZlciIsICJzaWduYWxpbmdTdGF0ZSBz
aG91bGQgbm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVyIGEgY2FsbCB0byBzUkQiKTsKKwor
ICAgIGFzc2VydF9lcXVhbHMocGMyLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwgInBl
bmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgbm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFm
dGVyIGEgY2FsbCB0byBzUkQiKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhwYzIucGVuZGluZ0xv
Y2FsRGVzY3JpcHRpb24sIG51bGwsICJwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBzaG91bGQgbm90
IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVyIGEgY2FsbCB0byBzUkQiKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHBjMi5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbi50eXBlLCAib2ZmZXIiKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHBjMi5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbi5zZHAsIHBjMi5sb2NhbERl
c2NyaXB0aW9uLnNkcCk7CisKKyAgICAvLyBGaXJzdCwgd2Ugc2hvdWxkIGdvIHRocm91Z2ggc3Rh
YmxlICh0aGUgaW1wbGljaXQgcm9sbGJhY2sgcGFydCkKKyAgICBjb25zdCBzdGFibGVQcm9taXNl
ID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICBwYzIub25zaWduYWxpbmdzdGF0ZWNo
YW5nZSA9ICgpID0+IHsKKyAgICAgICAgcmVzb2x2ZShwYzIuc2lnbmFsaW5nU3RhdGUpOworICAg
ICAgfQorICAgIH0pOworCisgICAgbGV0IHJhY2VWYWx1ZSA9IGF3YWl0IFByb21pc2UucmFjZShb
c3RhYmxlUHJvbWlzZSwgc3JkUHJvbWlzZV0pOworICAgIGFzc2VydF9lcXVhbHMocmFjZVZhbHVl
LCAic3RhYmxlIiwgInNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50IHNob3VsZCBmaXJlIGJlZm9y
ZSBzUkQgcmVzb2x2ZXMiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5wZW5kaW5nTG9jYWxEZXNj
cmlwdGlvbiwgbnVsbCwgInBlbmRpbmdMb2NhbERlc2NyaXB0aW9uIHNob3VsZCBiZSB1cGRhdGVk
IGJlZm9yZSB0aGUgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQiKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHBjMi5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJwZW5kaW5nUmVtb3RlRGVz
Y3JpcHRpb24gc2hvdWxkIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBzaWduYWxpbmdzdGF0ZWNoYW5n
ZSBldmVudCIpOworCisgICAgY29uc3QgaGF2ZVJlbW90ZU9mZmVyUHJvbWlzZSA9IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4geworICAgICAgcGMyLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSAoKSA9
PiB7CisgICAgICAgIHJlc29sdmUocGMyLnNpZ25hbGluZ1N0YXRlKTsKKyAgICAgIH0KKyAgICB9
KTsKKworICAgIHJhY2VWYWx1ZSA9IGF3YWl0IFByb21pc2UucmFjZShbaGF2ZVJlbW90ZU9mZmVy
UHJvbWlzZSwgc3JkUHJvbWlzZV0pOworICAgIGFzc2VydF9lcXVhbHMocmFjZVZhbHVlLCAiaGF2
ZS1yZW1vdGUtb2ZmZXIiLCAic2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQgc2hvdWxkIGZpcmUg
YmVmb3JlIHNSRCByZXNvbHZlcyIpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKHBjMi5wZW5kaW5n
UmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gc2hvdWxk
IGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBzaWduYWxpbmdzdGF0ZWNoYW5nZSBldmVudCIpOworICAg
IGFzc2VydF9lcXVhbHMocGMyLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbi50eXBlLCAib2ZmZXIi
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24uc2RwLCBw
YzIucmVtb3RlRGVzY3JpcHRpb24uc2RwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5wZW5kaW5n
TG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwgInBlbmRpbmdMb2NhbERlc2NyaXB0aW9uIHNob3VsZCBi
ZSB1cGRhdGVkIGJlZm9yZSB0aGUgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQiKTsKKworICAg
IGF3YWl0IHNyZFByb21pc2U7CisgIH0sICJzZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikgaW4g
aGF2ZS1sb2NhbC1vZmZlciBzaG91bGQgdXBkYXRlIGludGVybmFsIHN0YXRlIHdpdGggYSBxdWV1
ZWQgdGFzaywgaW4gdGhlIHJpZ2h0IG9yZGVyIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICAg
IGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsK
KyAgICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpOworICAgIGNvbnN0IHAx
ID0gcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsKKyAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gcik7CisgICAg
YXNzZXJ0X2VxdWFscyhwYzEuc2lnbmFsaW5nU3RhdGUsICdzdGFibGUnKTsKKyAgICBjb25zdCBw
MiA9IHBjMS5hZGRJY2VDYW5kaWRhdGUoKTsKKyAgICBjb25zdCBwMyA9IHBjMS5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihvZmZlcik7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52
YWxpZFN0YXRlRXJyb3InLCBwMik7CisgICAgYXdhaXQgcDE7CisgICAgYXdhaXQgcDM7CisgICAg
YXNzZXJ0X2VxdWFscyhwYzEuc2lnbmFsaW5nU3RhdGUsICdoYXZlLXJlbW90ZS1vZmZlcicpOwor
ICB9LCAnTmFpdmUgcm9sbGJhY2sgYXBwcm9hY2ggaXMgbm90IGdsYXJlLXByb29mIChjb250cm9s
KScpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlw
dGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgY29uc3QgcCA9IHBjMS5zZXRSZW1v
dGVEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXdhaXQgbmV3IFBy
b21pc2UociA9PiBwYzEub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9IHIpOworICAgIGFzc2VydF9l
cXVhbHMocGMxLnNpZ25hbGluZ1N0YXRlLCAnc3RhYmxlJyk7CisgICAgYXdhaXQgcGMxLmFkZElj
ZUNhbmRpZGF0ZSgpOworICAgIGF3YWl0IHA7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuc2lnbmFs
aW5nU3RhdGUsICdoYXZlLXJlbW90ZS1vZmZlcicpOworICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRp
b24ob2ZmZXIpIGZyb20gaGF2ZS1sb2NhbC1vZmZlciBpcyBnbGFyZS1wcm9vZicpOworCisgIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMi5jbG9zZSgpKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBw
YzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgY29uc3QgcCA9IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlv
bih7dHlwZTogJ29mZmVyJywgc2RwOiAnSW52YWxpZCBTRFAnfSk7CisgICAgYXdhaXQgbmV3IFBy
b21pc2UociA9PiBwYzEub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9IHIpOworICAgIGFzc2VydF9l
cXVhbHMocGMxLnNpZ25hbGluZ1N0YXRlLCAnc3RhYmxlJyk7CisgICAgYXNzZXJ0X2VxdWFscyhw
YzEucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIG51bGwpOworICAgIGFzc2VydF9lcXVhbHMocGMx
LnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzX2RvbSh0LCAnUlRDRXJyb3InLCBwKTsKKyAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKGlu
dmFsaWRPZmZlcikgZnJvbSBoYXZlLWxvY2FsLW9mZmVyIGRvZXMgbm90IHVuZG8gcm9sbGJhY2sn
KTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7
CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycp
OworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgICAgYXdhaXQg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5n
ZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCku
bGVuZ3RoLCAxKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7Cisg
ICAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICAgIGF3YWl0IHBj
Mi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURl
c2NyaXB0aW9uKGFuc3dlcik7CisgIH0sICdyZXBlYXRlZCBzUkQob2ZmZXIpIHdvcmtzJyk7CiAK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24t
cHJhbnN3ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXByYW5zd2Vy
Lmh0bWwKaW5kZXggYzI3ZWUyMDg1NWJlYTAzZTRhYThhMmNhODBiOTA2NTNmNWU5ZDViNS4uMWY4
YmRlMGYyOTRhODFjYmZjOThlNmM0YjNhYTA2ZjE5ZjM2ZTIzMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1wcmFuc3dlci5odG1sCkBAIC02Niw3ICs2Niw3IEBACiAK
ICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoKQogICAgIC50aGVuKG9mZmVyID0+Ci0gICAgICBw
cm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgIHByb21pc2VfcmVq
ZWN0c19kb20odCwgJ0ludmFsaWRTdGF0ZUVycm9yJywKICAgICAgICAgcGMuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oeyB0eXBlOiAncHJhbnN3ZXInLCBzZHA6IG9mZmVyLnNkcCB9KSkpOwogICB9LCAn
c2V0UmVtb3RlRGVzY3JpcHRpb24ocHJhbnN3ZXIpIGZyb20gc3RhYmxlIHN0YXRlIHNob3VsZCBy
ZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcicpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1yb2xsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1yb2xsYmFjay1leHBlY3RlZC50eHQKaW5kZXggNjAzMDBl
ZDZhNjliNzllMWU4MzcyMjUxZjJiNmIyZTdlMGRkZTNlZi4uMzliZGY3MDgzZWJiM2UyNjg1NWMz
NTk0MTkxMmY3YWUwNGIzYmMwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVz
Y3JpcHRpb24tcm9sbGJhY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90
ZURlc2NyaXB0aW9uLXJvbGxiYWNrLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDI1IEBACiAKK0hh
cm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gVW5oYW5kbGVkIHJlamVjdGlvbjogRGVzY3Jp
cHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZQorCiBG
QUlMIHNldFJlbW90ZURlc2NyaXB0aW9uKHJvbGxiYWNrKSBpbiBoYXZlLXJlbW90ZS1vZmZlciBz
dGF0ZSBzaG91bGQgcmV2ZXJ0IHRvIHN0YWJsZSBzdGF0ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3Jp
cHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKIFBB
U1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24ocm9sbGJhY2spIGZyb20gc3RhYmxlIHN0YXRlIHNob3Vs
ZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciAKIEZBSUwgc2V0UmVtb3RlRGVzY3JpcHRp
b24ocm9sbGJhY2spIHNob3VsZCBpZ25vcmUgaW52YWxpZCBzZHAgY29udGVudCBhbmQgc3VjY2Vl
ZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJ
bnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJy
ZW50IHNpZ25hbGluZyBzdGF0ZSIKIEZBSUwgbG9jYWwgb2ZmZXIgY3JlYXRlZCBiZWZvcmUgc2V0
UmVtb3RlRGVzY3JpcHRpb24ocmVtb3RlIG9mZmVyKSB0aGVuIHJvbGxiYWNrIHNob3VsZCBzdGls
bCBiZSB1c2FibGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxl
IHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCitGQUlMIGxvY2FsIG9mZmVyIGNyZWF0ZWQg
YmVmb3JlIHNldFJlbW90ZURlc2NyaXB0aW9uKHJlbW90ZSBvZmZlcikgd2l0aCBkaWZmZXJlbnQg
dHJhbnNjZWl2ZXIgbGV2ZWwgYXNzaWdubWVudHMgdGhlbiByb2xsYmFjayBzaG91bGQgc3RpbGwg
YmUgdXNhYmxlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3
aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgorRkFJTCByb2xsYmFjayBvZiBhIHJlbW90ZSBv
ZmZlciBzaG91bGQgcmVtb3ZlIGEgdHJhbnNjZWl2ZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0
aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCitGQUlM
IHJvbGxiYWNrIG9mIGEgcmVtb3RlIG9mZmVyIHNob3VsZCByZW1vdmUgdG91Y2hlZCB0cmFuc2Nl
aXZlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBj
dXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKK0ZBSUwgcm9sbGJhY2sgb2YgYSByZW1vdGUgb2ZmZXIg
c2hvdWxkIGtlZXAgYSB0cmFuc2NlaXZlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlw
ZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKK0ZBSUwgcm9sbGJh
Y2sgb2YgYSByZW1vdGUgb2ZmZXIgc2hvdWxkIGtlZXAgYSB0cmFuc2NlaXZlciBjcmVhdGVkIGJ5
IGFkZHRyYWNrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3
aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgorRkFJTCByb2xsYmFjayBvZiBhIHJlbW90ZSBv
ZmZlciBzaG91bGQga2VlcCBhIHRyYW5zY2VpdmVyIHdpdGhvdXQgdHJhY2tzIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVy
cm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5n
IHN0YXRlIgorRkFJTCBleHBsaWNpdCByb2xsYmFjayBvZiBsb2NhbCBvZmZlciBzaG91bGQgcmVt
b3ZlIHRyYW5zY2VpdmVycyBhbmQgdHJhbnNwb3J0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlv
biB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgorRkFJTCB3
aGVuIHVzaW5nIGFkZFRyYW5zY2VpdmVyLCBpbXBsaWNpdCByb2xsYmFjayBvZiBhIGxvY2FsIG9m
ZmVyIHNob3VsZCB2aXNpdCBzdGFibGUgc3RhdGUsIGJ1dCBub3QgZmlyZSBuZWdvdGlhdGlvbm5l
ZWRlZCB1bnRpbCB3ZSBzZXR0bGUgaW4gc3RhYmxlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlv
biB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgorRkFJTCB3
aGVuIHVzaW5nIGFkZFRyYWNrLCBpbXBsaWNpdCByb2xsYmFjayBvZiBhIGxvY2FsIG9mZmVyIHNo
b3VsZCB2aXNpdCBzdGFibGUgc3RhdGUsIGJ1dCBub3QgZmlyZSBuZWdvdGlhdGlvbm5lZWRlZCBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZh
bGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50
IHNpZ25hbGluZyBzdGF0ZSIKK0ZBSUwgcm9sbGJhY2sgb2YgYSByZW1vdGUgb2ZmZXIgdG8gbmVn
b3RpYXRlZCBzdGFibGUgc3RhdGUgc2hvdWxkIGVuYWJsZSBhcHBseWluZyBvZiBhIGxvY2FsIG9m
ZmVyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1
cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgorRkFJTCByb2xsYmFjayBvZiBhIGxvY2FsIG9mZmVyIHRv
IG5lZ290aWF0ZWQgc3RhYmxlIHN0YXRlIHNob3VsZCBlbmFibGUgYXBwbHlpbmcgb2YgYSByZW1v
dGUgb2ZmZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdp
dGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCitGQUlMIHJvbGxiYWNrIGEgbG9jYWwgb2ZmZXIg
d2l0aCBhdWRpbyBkaXJlY3Rpb24gY2hhbmdlIHRvIG5lZ290aWF0ZWQgc3RhYmxlIHN0YXRlIGFu
ZCB0aGVuIGFkZCB2aWRlbyByZWNlaXZlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlw
ZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKK0ZBSUwgdHdvIHRy
YW5zY2VpdmVycyB3aXRoIHNhbWUgbWlkcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlw
ZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKK0ZBSUwgb25yZW1v
dmV0cmFjayBmaXJlcyBkdXJpbmcgcmVtb3RlIHJvbGxiYWNrIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNj
cmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgor
RkFJTCByb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZlciB3aXRoIHN0cmVhbSBjaGFuZ2VzIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogcGMxLmdldFRyYW5zY2VpdmVycygpWzBdLnNlbmRlci5zZXRTdHJlYW1zIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3BjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5zZW5kZXIuc2V0U3RyZWFtcyhz
dHJlYW0yKScsICdwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc2VuZGVyLnNldFN0cmVhbXMnIGlz
IHVuZGVmaW5lZCkiCitQQVNTIHJlbW92ZVRyYWNrKCkgd2l0aCBhIHNlbmRlciBiZWluZyByb2xs
ZWQgYmFjayBkb2VzIG5vdCBjcmFzaCBvciB0aHJvdyAKK0ZBSUwgSW1wbGljaXQgcm9sbGJhY2sg
d2l0aCBvbmx5IGEgZGF0YWNoYW5uZWwgd29ya3MgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9u
IHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXJvbGxiYWNrLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1yb2xsYmFjay5odG1sCmluZGV4IGYyZGJm
MGI5NmYzYzY3MGEyMTlhMmYwN2E4NWU3N2YwZDIzMWE1YjguLmEwMzFhNjAxNWY0Mjc0ZDc4M2Zj
M2E1YTFiY2UwM2E3ZTIzZGZmZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURl
c2NyaXB0aW9uLXJvbGxiYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3Jp
cHRpb24tcm9sbGJhY2suaHRtbApAQCAtNzIsNyArNzIsNyBAQAogICAgICAgYXNzZXJ0X25vdF9l
cXVhbHMocGMucGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBudWxsKTsKICAgICAgIGFzc2VydF9l
cXVhbHMocGMuY3VycmVudFJlbW90ZURlc2NyaXB0aW9uLCBudWxsKTsKIAotICAgICAgcmV0dXJu
IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHsgdHlwZTogJ3JvbGxiYWNrJyB9KTsKKyAgICAgIHJl
dHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ3JvbGxiYWNrJ30pOwogICAgIH0p
CiAgICAgLnRoZW4oKCkgPT4gewogICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0
ZSwgJ3N0YWJsZScpOwpAQCAtOTksOCArOTksOCBAQAogICBwcm9taXNlX3Rlc3QodCA9PiB7CiAg
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOwotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFs
aWRTdGF0ZUVycm9yJywKLSAgICAgIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHsgdHlwZTogJ3Jv
bGxiYWNrJyB9KSk7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRT
dGF0ZUVycm9yJywKKyAgICAgIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAncm9sbGJh
Y2snfSkpOwogICB9LCBgc2V0UmVtb3RlRGVzY3JpcHRpb24ocm9sbGJhY2spIGZyb20gc3RhYmxl
IHN0YXRlIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcmApOwogCiAgIHByb21p
c2VfdGVzdCh0ID0+IHsKQEAgLTEzMiw0ICsxMzIsNDYwIEBACiAgICAgYXdhaXQgcGMxLnNldExv
Y2FsRGVzY3JpcHRpb24ob2ZmZXIxKTsKICAgfSwgYGxvY2FsIG9mZmVyIGNyZWF0ZWQgYmVmb3Jl
IHNldFJlbW90ZURlc2NyaXB0aW9uKHJlbW90ZSBvZmZlcikgdGhlbiByb2xsYmFjayBzaG91bGQg
c3RpbGwgYmUgdXNhYmxlYCk7CiAKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9w
KCkpKTsKKyAgICBwYzEuYWRkVHJhY2soc3RyZWFtLmdldFRyYWNrcygpWzBdLCBzdHJlYW0pOwor
CisgICAgLy8gV2UgZG9uJ3QgdXNlIHRoaXMgcmlnaHQgYXdheS4gcGMxIGhhcyBwcm92aXNpb25h
bGx5IGRlY2lkZWQgdGhhdCB0aGUKKyAgICAvLyAob25seSkgdHJhbnNjZWl2ZXIgaXMgYm91bmQg
dG8gbGV2ZWwgMC4KKyAgICBjb25zdCBvZmZlcjEgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsK
KworICAgIC8vIENyZWF0ZSBvZmZlciBmcm9tIHBjMiwgYXBwbHkgYW5kIHJvbGxiYWNrIG9uIHBj
MQorICAgIGNvbnN0IG9mZmVyMiA9IGF3YWl0IHBjMi5jcmVhdGVPZmZlcih7b2ZmZXJUb1JlY2Vp
dmVBdWRpbzogdHJ1ZSwgb2ZmZXJUb1JlY2VpdmVWaWRlbzogdHJ1ZX0pOworICAgIC8vIHBjMSBu
b3cgc2hvdWxkIGNoYW5nZSBpdHMgbWluZCBhYm91dCB3aGF0IGxldmVsIGl0cyB2aWRlbyB0cmFu
c2NlaXZlciBpcworICAgIC8vIGJvdW5kIHRvLiBJdCB3YXMgMCwgbm93IGl0IGlzIDEuCisgICAg
YXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyMik7CisKKyAgICAvLyBSb2xsaW5n
IGJhY2sgc2hvdWxkIHB1dCB0aGluZ3MgYmFjayB0aGUgd2F5IHRoZXkgd2VyZS4KKyAgICBhd2Fp
dCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKworICAgIC8v
IFRoZW4gdHJ5IGFwcGx5aW5nIHBjMSdzIG9sZCBvZmZlcgorICAgIGF3YWl0IHBjMS5zZXRMb2Nh
bERlc2NyaXB0aW9uKG9mZmVyMSk7CisgIH0sICJsb2NhbCBvZmZlciBjcmVhdGVkIGJlZm9yZSBz
ZXRSZW1vdGVEZXNjcmlwdGlvbihyZW1vdGUgb2ZmZXIpIHdpdGggZGlmZmVyZW50IHRyYW5zY2Vp
dmVyIGxldmVsIGFzc2lnbm1lbnRzIHRoZW4gcm9sbGJhY2sgc2hvdWxkIHN0aWxsIGJlIHVzYWJs
ZSIpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdl
dE5vaXNlU3RyZWFtKHt2aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3Ry
ZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMx
LmFkZFRyYWNrKHN0cmVhbS5nZXRUcmFja3MoKVswXSwgc3RyZWFtKTsKKworICAgIGF3YWl0IHBj
Mi5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXNz
ZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxKTsKKyAgICBhd2FpdCBw
YzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDApOworICB9LCAicm9sbGJhY2sg
b2YgYSByZW1vdGUgb2ZmZXIgc2hvdWxkIHJlbW92ZSBhIHRyYW5zY2VpdmVyIik7CisKKyAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0o
e3ZpZGVvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tz
KCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBwYzEuYWRkVHJhY2soc3Ry
ZWFtLmdldFRyYWNrcygpWzBdLCBzdHJlYW0pOworCisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURl
c2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBj
Mi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworCisgICAgY29uc3Qgc3RyZWFtMiA9IGF3
YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gc3RyZWFtMi5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwor
ICAgIGNvbnN0IHRyYWNrID0gc3RyZWFtMi5nZXRWaWRlb1RyYWNrcygpWzBdOworICAgIGF3YWl0
IHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5zZW5kZXIucmVwbGFjZVRyYWNrKHRyYWNrKTsKKwor
ICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOwor
ICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMCk7CisgIH0s
ICJyb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZlciBzaG91bGQgcmVtb3ZlIHRvdWNoZWQgdHJhbnNj
ZWl2ZXIiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2Fp
dCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAg
IHBjMS5hZGRUcmFjayhzdHJlYW0uZ2V0VHJhY2tzKClbMF0sIHN0cmVhbSk7CisKKyAgICBhd2Fp
dCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAg
IGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSk7CisKKyAgICBj
b25zdCBzdHJlYW0yID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0yLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4g
dHJhY2suc3RvcCgpKSk7CisgICAgcGMyLmFkZFRyYWNrKHN0cmVhbTIuZ2V0VHJhY2tzKClbMF0s
IHN0cmVhbTIpOworCisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAi
cm9sbGJhY2sifSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVu
Z3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5taWQs
IG51bGwpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpWzBdLnJlY2Vp
dmVyLnRyYW5zcG9ydCwgbnVsbCk7CisgIH0sICJyb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZlciBz
aG91bGQga2VlcCBhIHRyYW5zY2VpdmVyIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAg
Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0
cmFjay5zdG9wKCkpKTsKKyAgICBwYzEuYWRkVHJhY2soc3RyZWFtLmdldFRyYWNrcygpWzBdLCBz
dHJlYW0pOworCisgICAgY29uc3Qgc3RyZWFtMiA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRl
bzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtMi5nZXRUcmFja3MoKS5m
b3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMi5hZGRUcmFjayhzdHJlYW0y
LmdldFRyYWNrcygpWzBdLCBzdHJlYW0yKTsKKworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIu
Z2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxKTsKKworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVE
ZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdl
dFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0ubWlkLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFu
c2NlaXZlcnMoKVswXS5yZWNlaXZlci50cmFuc3BvcnQsIG51bGwpOworICB9LCAicm9sbGJhY2sg
b2YgYSByZW1vdGUgb2ZmZXIgc2hvdWxkIGtlZXAgYSB0cmFuc2NlaXZlciBjcmVhdGVkIGJ5IGFk
ZHRyYWNrIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNs
b3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdh
aXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAg
ICBwYzEuYWRkVHJhY2soc3RyZWFtLmdldFRyYWNrcygpWzBdLCBzdHJlYW0pOworCisgICAgYXdh
aXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworCisgICAg
Y29uc3Qgc3RyZWFtMiA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRlbzogdHJ1ZX0pOworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtMi5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+
IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMi5hZGRUcmFjayhzdHJlYW0yLmdldFRyYWNrcygpWzBd
LCBzdHJlYW0yKTsKKyAgICBhd2FpdCBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc2VuZGVyLnJl
cGxhY2VUcmFjayhudWxsKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5
cGU6ICJyb2xsYmFjayJ9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMo
KS5sZW5ndGgsIDEpOworICB9LCAicm9sbGJhY2sgb2YgYSByZW1vdGUgb2ZmZXIgc2hvdWxkIGtl
ZXAgYSB0cmFuc2NlaXZlciB3aXRob3V0IHRyYWNrcyIpOworCisgIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2Fp
dCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAg
IHBjLmFkZFRyYWNrKHN0cmVhbS5nZXRUcmFja3MoKVswXSwgc3RyZWFtKTsKKworICAgIGNvbnN0
IHN0YXRlcyA9IFtdOworICAgIGNvbnN0IHNpZ25hbGluZ3N0YXRlY2hhbmdlUmVzb2x2ZXIgPSBu
ZXcgUmVzb2x2ZXIoKTsKKyAgICBwYy5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gKCkgPT4gewor
ICAgICAgc3RhdGVzLnB1c2gocGMuc2lnbmFsaW5nU3RhdGUpOworICAgICAgc2lnbmFsaW5nc3Rh
dGVjaGFuZ2VSZXNvbHZlci5yZXNvbHZlKCk7CisgICAgfTsKKworICAgIGNvbnN0IG9mZmVyID0g
YXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9u
KG9mZmVyKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKVswXS5z
ZW5kZXIudHJhbnNwb3J0LCBudWxsKTsKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9u
KHt0eXBlOiAicm9sbGJhY2sifSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZl
cnMoKS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKClb
MF0ubWlkLCBudWxsKQorICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF0u
c2VuZGVyLnRyYW5zcG9ydCwgbnVsbCk7CisgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlv
bihvZmZlcik7CisgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgs
IDEpOworICAgIGF3YWl0IHNpZ25hbGluZ3N0YXRlY2hhbmdlUmVzb2x2ZXIucHJvbWlzZTsKKyAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKHN0YXRlcywgWydoYXZlLWxvY2FsLW9mZmVyJywgJ3N0YWJs
ZScsICdoYXZlLWxvY2FsLW9mZmVyJ10pOworICB9LCAiZXhwbGljaXQgcm9sbGJhY2sgb2YgbG9j
YWwgb2ZmZXIgc2hvdWxkIHJlbW92ZSB0cmFuc2NlaXZlcnMgYW5kIHRyYW5zcG9ydCIpOworCisg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBj
b25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0YXRlcyA9IFtdOworICAgIGNvbnN0IHNp
Z25hbGluZ3N0YXRlY2hhbmdlUmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKKyAgICBwYzEub25z
aWduYWxpbmdzdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgIHN0YXRlcy5wdXNoKHBjMS5zaWdu
YWxpbmdTdGF0ZSk7CisgICAgICBzaWduYWxpbmdzdGF0ZWNoYW5nZVJlc29sdmVyLnJlc29sdmUo
KTsKKyAgICB9OworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVk
aW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbTEuZ2V0VHJhY2tzKCku
Zm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIo
c3RyZWFtMS5nZXRUcmFja3MoKVswXSwgc3RyZWFtMSk7CisKKyAgICBjb25zdCBzdHJlYW0yID0g
YXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBzdHJlYW0yLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7
CisgICAgcGMyLmFkZFRyYW5zY2VpdmVyKHN0cmVhbTIuZ2V0VHJhY2tzKClbMF0sIHN0cmVhbTIp
OworCisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9m
ZmVyKCkpOworICAgIHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gdC5zdGVwX2Z1bmMoKCkgPT4g
YXNzZXJ0X3RydWUoZmFsc2UsICJUaGVyZSBzaG91bGQgYmUgbm8gbmVnb3RpYXRpb25uZWVkZWQg
ZXZlbnQgcmlnaHQgbm93IikpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihh
d2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24oYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpKTsKKyAgICBhd2FpdCBzaWduYWxpbmdzdGF0ZWNo
YW5nZVJlc29sdmVyLnByb21pc2U7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzdGF0ZXMsIFsn
aGF2ZS1sb2NhbC1vZmZlcicsICdzdGFibGUnLCAnaGF2ZS1yZW1vdGUtb2ZmZXInLCAnc3RhYmxl
J10pOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQg
PSByKTsKKyAgfSwgIndoZW4gdXNpbmcgYWRkVHJhbnNjZWl2ZXIsIGltcGxpY2l0IHJvbGxiYWNr
IG9mIGEgbG9jYWwgb2ZmZXIgc2hvdWxkIHZpc2l0IHN0YWJsZSBzdGF0ZSwgYnV0IG5vdCBmaXJl
IG5lZ290aWF0aW9ubmVlZGVkIHVudGlsIHdlIHNldHRsZSBpbiBzdGFibGUiKTsKKworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdGF0ZXMgPSBbXTsKKyAgICBjb25zdCBzaWduYWxp
bmdzdGF0ZWNoYW5nZVJlc29sdmVyID0gbmV3IFJlc29sdmVyKCk7CisgICAgcGMxLm9uc2lnbmFs
aW5nc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICBzdGF0ZXMucHVzaChwYzEuc2lnbmFsaW5n
U3RhdGUpOworICAgICAgc2lnbmFsaW5nc3RhdGVjaGFuZ2VSZXNvbHZlci5yZXNvbHZlKCk7Cisg
ICAgfTsKKyAgICBjb25zdCBzdHJlYW0xID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0
cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0xLmdldFRyYWNrcygpLmZvckVh
Y2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMxLmFkZFRyYWNrKHN0cmVhbTEuZ2V0
VHJhY2tzKClbMF0sIHN0cmVhbTEpOworCisgICAgY29uc3Qgc3RyZWFtMiA9IGF3YWl0IGdldE5v
aXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFt
Mi5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMi5h
ZGRUcmFjayhzdHJlYW0yLmdldFRyYWNrcygpWzBdLCBzdHJlYW0yKTsKKworICAgIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgICBwYzEu
b25uZWdvdGlhdGlvbm5lZWRlZCA9IHQuc3RlcF9mdW5jKCgpID0+IGFzc2VydF90cnVlKGZhbHNl
LCAiVGhlcmUgc2hvdWxkIGJlIG5vIG5lZ290aWF0aW9ubmVlZGVkIGV2ZW50IGluIHRoaXMgdGVz
dCIpKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0
ZU9mZmVyKCkpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5j
cmVhdGVBbnN3ZXIoKSk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzdGF0ZXMsIFsnaGF2ZS1s
b2NhbC1vZmZlcicsICdzdGFibGUnLCAnaGF2ZS1yZW1vdGUtb2ZmZXInLCAnc3RhYmxlJ10pOwor
ICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMCkpOworICB9LCAi
d2hlbiB1c2luZyBhZGRUcmFjaywgaW1wbGljaXQgcm9sbGJhY2sgb2YgYSBsb2NhbCBvZmZlciBz
aG91bGQgdmlzaXQgc3RhYmxlIHN0YXRlLCBidXQgbm90IGZpcmUgbmVnb3RpYXRpb25uZWVkZWQi
KTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXRO
b2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVh
bS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMS5h
ZGRUcmFjayhzdHJlYW0uZ2V0VHJhY2tzKClbMF0sIHN0cmVhbSk7CisKKyAgICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXdhaXQg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbik7CisK
KyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2Vy
KCkpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlw
dGlvbik7CisKKyAgICAvLyBJbiBzdGFibGUgc3RhdGUgYWRkIHZpZGVvIG9uIGJvdGggZW5kIGFu
ZCBtYWtlIHN1cmUgdmlkZW8gdHJhbnNjZWl2ZXIgaXMgbm90IGtpbGxlZC4KKworICAgIGNvbnN0
IHN0cmVhbTEgPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHN0cmVhbTEuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFj
ay5zdG9wKCkpKTsKKyAgICBwYzEuYWRkVHJhY2soc3RyZWFtMS5nZXRUcmFja3MoKVswXSwgc3Ry
ZWFtMSk7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0
ZU9mZmVyKCkpOworCisgICAgY29uc3Qgc3RyZWFtMiA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2
aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtMi5nZXRUcmFja3Mo
KS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMi5hZGRUcmFjayhzdHJl
YW0yLmdldFRyYWNrcygpWzBdLCBzdHJlYW0yKTsKKyAgICBjb25zdCBvZmZlcjIgPSBhd2FpdCBw
YzIuY3JlYXRlT2ZmZXIoKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMx
LnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFu
c2NlaXZlcnMoKS5sZW5ndGgsIDIpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9u
KG9mZmVyMik7CisgIH0sICJyb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZlciB0byBuZWdvdGlhdGVk
IHN0YWJsZSBzdGF0ZSBzaG91bGQgZW5hYmxlICIgKworICAgICAiYXBwbHlpbmcgb2YgYSBsb2Nh
bCBvZmZlciIpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3
YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7Cisg
ICAgcGMxLmFkZFRyYWNrKHN0cmVhbS5nZXRUcmFja3MoKVswXSwgc3RyZWFtKTsKKworICAgIGF3
YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAg
ICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLnBlbmRpbmdMb2NhbERlc2NyaXB0
aW9uKTsKKworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVh
dGVBbnN3ZXIoKSk7CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKKworICAgIC8vIEJvdGggZW5kcyB3YW50IHRvIGFkZCB2aWRlbyBhdCB0
aGUgc2FtZSB0aW1lLiBwYzIgcm9sbHMgYmFjay4KKworICAgIGNvbnN0IHN0cmVhbTIgPSBhd2Fp
dCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHN0cmVhbTIuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAg
ICBwYzIuYWRkVHJhY2soc3RyZWFtMi5nZXRUcmFja3MoKVswXSwgc3RyZWFtMik7CisgICAgYXdh
aXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkpOworICAg
IGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMik7CisgICAgYXNz
ZXJ0X25vdF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpWzFdLnNlbmRlci50cmFuc3BvcnQs
IG51bGwpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJh
Y2sifSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAy
KTsKKyAgICAvLyBSb2xsYmFjayBkaWRuJ3QgdG91Y2ggYXVkaW8gdHJhbnNjZWl2ZXIgYW5kIHRy
YW5zcG9ydCBpcyBpbnRhY3QuCisgICAgYXNzZXJ0X25vdF9lcXVhbHMocGMyLmdldFRyYW5zY2Vp
dmVycygpWzBdLnNlbmRlci50cmFuc3BvcnQsIG51bGwpOworICAgIC8vIFZpZGVvIHRyYW5zcG9y
dCBnb3Qga2lsbGVkLgorICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpWzFd
LnNlbmRlci50cmFuc3BvcnQsIG51bGwpOworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBnZXRO
b2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVh
bTEuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBwYzEu
YWRkVHJhY2soc3RyZWFtMS5nZXRUcmFja3MoKVswXSwgc3RyZWFtMSk7CisgICAgYXdhaXQgcGMx
LnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAgIGF3YWl0
IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24pOwor
ICB9LCAicm9sbGJhY2sgb2YgYSBsb2NhbCBvZmZlciB0byBuZWdvdGlhdGVkIHN0YWJsZSBzdGF0
ZSBzaG91bGQgZW5hYmxlICIgKworICAgICAiYXBwbHlpbmcgb2YgYSByZW1vdGUgb2ZmZXIiKTsK
KworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lz
ZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5n
ZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMS5hZGRU
cmFjayhzdHJlYW0uZ2V0VHJhY2tzKClbMF0sIHN0cmVhbSk7CisKKyAgICBhd2FpdCBwYzEuc2V0
TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXdhaXQgcGMy
LnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbik7CisKKyAg
ICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkp
OworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlv
bik7CisKKyAgICAvLyBwYzEgYWRkcyB2aWRlbyBhbmQgcGMyIGFkZHMgYXVkaW8uIHBjMiByb2xs
cyBiYWNrLgorICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpWzBdLmRpcmVj
dGlvbiwgInJlY3Zvbmx5Iik7CisgICAgY29uc3Qgc3RyZWFtMiA9IGF3YWl0IGdldE5vaXNlU3Ry
ZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtMi5nZXRU
cmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMi5hZGRUcmFj
ayhzdHJlYW0yLmdldFRyYWNrcygpWzBdLCBzdHJlYW0yKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBj
Mi5nZXRUcmFuc2NlaXZlcnMoKVswXS5kaXJlY3Rpb24sICJzZW5kcmVjdiIpOworICAgIGF3YWl0
IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5kaXJlY3Rpb24sICJzZW5kcmVj
diIpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2si
fSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxKTsK
KyAgICAvLyBzZXRMb2NhbERlc2NyaXB0aW9uIGRpZG4ndCBjaGFuZ2UgZGlyZWN0aW9uLiBTbyBk
aXJlY3Rpb24gcmVtYWlucyAic2VuZHJlY3YiCisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0uZGlyZWN0aW9uLCAic2VuZHJlY3YiKTsKKyAgICAvLyBSb2xsYmFjayBk
aWRuJ3QgdG91Y2ggYXVkaW8gdHJhbnNjZWl2ZXIgYW5kIHRyYW5zcG9ydCBpcyBpbnRhY3QuIFN0
aWxsIGNhbiByZWNlaXZlIGF1ZGlvLgorICAgIGFzc2VydF9ub3RfZXF1YWxzKHBjMi5nZXRUcmFu
c2NlaXZlcnMoKVswXS5yZWNlaXZlci50cmFuc3BvcnQsIG51bGwpOworICAgIGNvbnN0IHN0cmVh
bTEgPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHN0cmVhbTEuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9w
KCkpKTsKKyAgICBwYzEuYWRkVHJhY2soc3RyZWFtMS5nZXRUcmFja3MoKVswXSwgc3RyZWFtMSk7
CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVy
KCkpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEucGVuZGluZ0xvY2Fs
RGVzY3JpcHRpb24pOworICB9LCAicm9sbGJhY2sgYSBsb2NhbCBvZmZlciB3aXRoIGF1ZGlvIGRp
cmVjdGlvbiBjaGFuZ2UgdG8gbmVnb3RpYXRlZCAiICsKKyAgICAgInN0YWJsZSBzdGF0ZSBhbmQg
dGhlbiBhZGQgdmlkZW8gcmVjZWl2ZXIiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBw
YzEuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJywge2RpcmVjdGlvbjogJ3NlbmRvbmx5J30pOworICAg
IHBjMi5hZGRUcmFuc2NlaXZlcigndmlkZW8nLCB7ZGlyZWN0aW9uOiAnc2VuZG9ubHknfSk7Cisg
ICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkp
OworICAgIGNvbnN0IHBjMUZpcnN0TWlkID0gcGMxLmdldFRyYW5zY2VpdmVycygpWzBdLm1pZDsK
KyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIo
KSk7CisgICAgY29uc3QgcGMyRmlyc3RNaWQgPSBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ubWlk
OworICAgIC8vIEkgZG9uJ3QgdGhpbmsgaXQgaXMgbWFuZGF0ZWQgdGhhdCB0aGlzIGhhcyB0byBi
ZSB0cnVlLCBidXQgYW55IGltcGxlbWVudGF0aW9uIEkga25vdyBvZiB3b3VsZAorICAgIC8vIGhh
dmUgcHJlZGljdGFibGUgbWlkcyAoZS5nLiAwLCAxLCAyLi4uKSBzbyBwYzEgYW5kIHBjMiBzaG91
bGQgb2ZmZXIgd2l0aCB0aGUgc2FtZSBtaWRzLgorICAgIGFzc2VydF9lcXVhbHMocGMxRmlyc3RN
aWQsIHBjMkZpcnN0TWlkKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMy
LnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uKTsKKyAgICAvLyBXZSd2ZSBpbXBsaWNpdGx5IHJvbGxl
ZCBiYWNrIGFuZCB0aGUgU1JEIGNhdXNlZCBhIHNlY29uZCB0cmFuc2NlaXZlciB0byBiZSBjcmVh
dGVkLgorICAgIC8vIEFzIHN1Y2gsIHRoZSBmaXJzdCB0cmFuc2NlaXZlcidzIG1pZCB3aWxsIG5v
dyBiZSBudWxsLCBhbmQgdGhlIHNlY29uZCB0cmFuc2NlaXZlcidzIG1pZCB3aWxsCisgICAgLy8g
bWF0Y2ggdGhlIHJlbW90ZSBvZmZlci4KKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2Nl
aXZlcnMoKS5sZW5ndGgsIDIpOworICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFRyYW5zY2VpdmVy
cygpWzBdLm1pZCwgbnVsbCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJz
KClbMV0ubWlkLCBwYzJGaXJzdE1pZCk7CisgICAgLy8gSWYgd2Ugbm93IGRvIGFuIG9mZmVyIHRo
ZSBmaXJzdCB0cmFuc2NlaXZlciB3aWxsIGdldCBhIGRpZmZlcmVudCBtaWQgdGhhbiBpbiB0aGUg
Zmlyc3QKKyAgICAvLyBwYzEuY3JlYXRlT2ZmZXIoKSEKKyAgICBwYzEuc2V0TG9jYWxEZXNjcmlw
dGlvbihhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCkpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERl
c2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgICBhc3NlcnRfbm90X2VxdWFs
cyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ubWlkLCBwYzFGaXJzdE1pZCk7CisgIH0sICJ0d28g
dHJhbnNjZWl2ZXJzIHdpdGggc2FtZSBtaWRzIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICAg
IGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZSwgdmlkZW86
IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JF
YWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIGNvbnN0IGF1ZGlvID0gc3RyZWFtLmdl
dEF1ZGlvVHJhY2tzKClbMF07CisgICAgcGMxLmFkZFRyYWNrKGF1ZGlvLCBzdHJlYW0pOworICAg
IGNvbnN0IHZpZGVvID0gc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgcGMxLmFkZFRy
YWNrKHZpZGVvLCBzdHJlYW0pOworCisgICAgbGV0IHJlbW90ZVN0cmVhbSA9IG51bGw7CisgICAg
cGMyLm9udHJhY2sgPSBlID0+IHsgcmVtb3RlU3RyZWFtID0gZS5zdHJlYW1zWzBdOyB9CisgICAg
YXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsK
KyAgICBhc3NlcnRfdHJ1ZShyZW1vdGVTdHJlYW0gIT0gbnVsbCk7CisgICAgbGV0IHJlbW90ZVRy
YWNrcyA9IHJlbW90ZVN0cmVhbS5nZXRUcmFja3MoKTsKKyAgICBjb25zdCByZW1vdmVkVHJhY2tz
ID0gW107CisgICAgcmVtb3RlU3RyZWFtLm9ucmVtb3ZldHJhY2sgPSBlID0+IHsgcmVtb3ZlZFRy
YWNrcy5wdXNoKGUudHJhY2suaWQpOyB9CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0
aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7CisgICAgYXNzZXJ0X2VxdWFscyhyZW1vdmVkVHJhY2tz
Lmxlbmd0aCwgMiwKKyAgICAgICAgICAgICAgICAgICJSb2xsYmFjayBzaG91bGQgaGF2ZSByZW1v
dmVkIHR3byB0cmFja3MiKTsKKyAgICBhc3NlcnRfdHJ1ZShyZW1vdmVkVHJhY2tzLmluY2x1ZGVz
KHJlbW90ZVRyYWNrc1swXS5pZCksCisgICAgICAgICAgICAgICAgIkZpcnN0IHRyYWNrIHNob3Vs
ZCBiZSByZW1vdmVkIik7CisgICAgYXNzZXJ0X3RydWUocmVtb3ZlZFRyYWNrcy5pbmNsdWRlcyhy
ZW1vdGVUcmFja3NbMV0uaWQpLAorICAgICAgICAgICAgICAgICJTZWNvbmQgdHJhY2sgc2hvdWxk
IGJlIHJlbW92ZWQiKTsKKworICB9LCAib25yZW1vdmV0cmFjayBmaXJlcyBkdXJpbmcgcmVtb3Rl
IHJvbGxiYWNrIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtMSA9
IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gc3RyZWFtMS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkp
OworICAgIHBjMS5hZGRUcmFjayhzdHJlYW0xLmdldFRyYWNrcygpWzBdLCBzdHJlYW0xKTsKKwor
ICAgIGNvbnN0IG9mZmVyMSA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworCisgICAgY29uc3Qg
cmVtb3RlU3RyZWFtcyA9IFtdOworICAgIHBjMi5vbnRyYWNrID0gZSA9PiB7IHJlbW90ZVN0cmVh
bXMucHVzaChlLnN0cmVhbXNbMF0pOyB9CisKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlw
dGlvbihvZmZlcjEpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEucGVu
ZGluZ0xvY2FsRGVzY3JpcHRpb24pOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIGFzc2VydF9lcXVhbHMocmVtb3Rl
U3RyZWFtcy5sZW5ndGgsIDEsICJOdW1iZXIgb2YgcmVtb3RlIHN0cmVhbXMiKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHJlbW90ZVN0cmVhbXNbMF0uZ2V0VHJhY2tzKCkubGVuZ3RoLCAxLCAiTnVtYmVy
IG9mIHJlbW90ZSB0cmFja3MiKTsKKyAgICBjb25zdCB0cmFjayA9IHJlbW90ZVN0cmVhbXNbMF0u
Z2V0VHJhY2tzKClbMF07CisKKyAgICBjb25zdCBzdHJlYW0yID0gYXdhaXQgZ2V0Tm9pc2VTdHJl
YW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0yLmdldFRy
YWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMxLmdldFRyYW5z
Y2VpdmVycygpWzBdLnNlbmRlci5zZXRTdHJlYW1zKHN0cmVhbTIpOworCisgICAgY29uc3Qgb2Zm
ZXIyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURl
c2NyaXB0aW9uKG9mZmVyMik7CisKKyAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZVN0cmVhbXMubGVu
Z3RoLCAyKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZVN0cmVhbXNbMF0uZ2V0VHJhY2tzKCku
bGVuZ3RoLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZVN0cmVhbXNbMV0uZ2V0VHJhY2tz
KClbMF0uaWQsIHRyYWNrLmlkKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24o
e3R5cGU6ICJyb2xsYmFjayJ9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZVN0cmVhbXMubGVu
Z3RoLCAzKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZVN0cmVhbXNbMF0uaWQsIHJlbW90ZVN0
cmVhbXNbMl0uaWQpOworICAgIGFzc2VydF9lcXVhbHMocmVtb3RlU3RyZWFtc1sxXS5nZXRUcmFj
a3MoKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9lcXVhbHMocmVtb3RlU3RyZWFtc1syXS5nZXRU
cmFja3MoKS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMocmVtb3RlU3RyZWFtc1syXS5n
ZXRUcmFja3MoKVswXS5pZCwgdHJhY2suaWQpOworCisgIH0sICJyb2xsYmFjayBvZiBhIHJlbW90
ZSBvZmZlciB3aXRoIHN0cmVhbSBjaGFuZ2VzIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICAg
IHBjMi5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKyAgICBjb25zdCBvZmZlciA9IGF3YWl0IHBj
Mi5jcmVhdGVPZmZlcigpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZl
cik7CisgICAgY29uc3QgW3RyYW5zY2VpdmVyXSA9IHBjMS5nZXRUcmFuc2NlaXZlcnMoKTsKKyAg
ICBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6J3JvbGxiYWNrJ30pOworICAgIHBjMS5y
ZW1vdmVUcmFjayh0cmFuc2NlaXZlci5zZW5kZXIpOworICB9LCAncmVtb3ZlVHJhY2soKSB3aXRo
IGEgc2VuZGVyIGJlaW5nIHJvbGxlZCBiYWNrIGRvZXMgbm90IGNyYXNoIG9yIHRocm93Jyk7CisK
KyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigndmlkZW8nKTsKKyAg
ICBjb25zdCBjaGFubmVsID0gcGMyLmNyZWF0ZURhdGFDaGFubmVsKCdkdW1teScpOworICAgIGF3
YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKKyAg
ICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkp
OworICAgIGFzc2VydF9lcXVhbHMocGMyLnNpZ25hbGluZ1N0YXRlLCAnaGF2ZS1yZW1vdGUtb2Zm
ZXInKTsKKyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRl
QW5zd2VyKCkpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5j
cmVhdGVPZmZlcigpKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwucmVhZHlTdGF0ZSwgJ2Nv
bm5lY3RpbmcnKTsKKyAgfSwgJ0ltcGxpY2l0IHJvbGxiYWNrIHdpdGggb25seSBhIGRhdGFjaGFu
bmVsIHdvcmtzJyk7CisKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVt
b3RlRGVzY3JpcHRpb24tc2ltdWxjYXN0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXNldFJlbW90ZURlc2NyaXB0aW9uLXNpbXVsY2FzdC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjU5MmYzZGRkMDE1YzIzMDhlNjY5MTY2NDkwNzQzMDI1MzY2Y2I1MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXNpbXVsY2FzdC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgY3JlYXRlQW5zd2VyKCkgYXR0
YWNoZXMgdG8gYW4gZXhpc3RpbmcgdHJhbnNjZWl2ZXIgd2l0aCBhIHJlbW90ZSBzaW11bGNhc3Qg
b2ZmZXIgYXNzZXJ0X2VxdWFsczogRXhwZWN0ZWQgZXhhY3RseSBvbmUgdHJhbnNjZWl2ZXIgZXhw
ZWN0ZWQgMSBidXQgZ290IDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVz
Y3JpcHRpb24tc2ltdWxjYXN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNj
cmlwdGlvbi1zaW11bGNhc3QuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGI1ZDJiYWI3YWE5NDI5
MzUyYTE4NDIzNjBjNmM2YThhNzVjMTg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
c2V0UmVtb3RlRGVzY3JpcHRpb24tc2ltdWxjYXN0Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJD
b25uZWN0aW9uLnByb3RvdHlwZS5zZXRSZW1vdGVEZXNjcmlwdGlvbiByb2xsYmFjazwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisndXNlIHN0cmljdCc7CisvLyBUZXN0IGZvciBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0
Yy1wYy9wdWxsLzIxNTUKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKyAgY29uc3QgW3RyYWNrLCBzdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1lZGlh
KCd2aWRlbycpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHRyYWNrLnN0b3AoKSk7CisKKyAgcGMu
YWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CisKKyAgY29uc3Qgb2ZmZXJfc2RwID0gYHY9MAorbz0t
IDM4NDAyMzI0NjI0NzE1ODM4MjcgMiBJTiBJUDQgMTI3LjAuMC4xCitzPS0KK3Q9MCAwCithPWdy
b3VwOkJVTkRMRSAwCithPW1zaWQtc2VtYW50aWM6IFdNUworbT12aWRlbyA5IFVEUC9UTFMvUlRQ
L1NBVlBGIDk2CitjPUlOIElQNCAwLjAuMC4wCithPXJ0Y3A6OSBJTiBJUDQgMC4wLjAuMAorYT1p
Y2UtdWZyYWc6TGk2KworYT1pY2UtcHdkOjNDMDVDVFpCUlFWbUdDQXE3aFZhc0hsVAorYT1pY2Ut
b3B0aW9uczp0cmlja2xlCithPWZpbmdlcnByaW50OnNoYS0yNTYgNUI6RDM6OEU6NjY6MEU6N0Q6
RDM6RjM6OEU6RTY6ODA6Mjg6MTk6RkM6NTU6QUQ6NTg6NUQ6Qjk6M0Q6QTg6REU6NDU6NEE6RTc6
ODc6MDI6Rjg6M0M6MEI6M0I6QjMKK2E9c2V0dXA6YWN0cGFzcworYT1taWQ6MAorYT1leHRtYXA6
NCB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJ0cC1zdHJlYW0taWQKK2E9cmVjdm9u
bHkKK2E9cnRjcC1tdXgKK2E9cnRwbWFwOjk2IFZQOC85MDAwMAorYT1ydGNwLWZiOjk2IGdvb2ct
cmVtYgorYT1ydGNwLWZiOjk2IHRyYW5zcG9ydC1jYworYT1ydGNwLWZiOjk2IGNjbSBmaXIKK2E9
cmlkOmZvbyByZWN2CithPXJpZDpiYXIgcmVjdgorYT1yaWQ6YmF6IHJlY3YKK2E9c2ltdWxjYXN0
OnJlY3YgZm9vO2JhcjtiYXoKK2A7CisKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24o
e3R5cGU6ICdvZmZlcicsIHNkcDogb2ZmZXJfc2RwfSk7CisgIGNvbnN0IHRyYW5zY2VpdmVycyA9
IHBjLmdldFRyYW5zY2VpdmVycygpOworICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVycy5sZW5n
dGgsIDEsICdFeHBlY3RlZCBleGFjdGx5IG9uZSB0cmFuc2NlaXZlcicpOworfSwgJ2NyZWF0ZUFu
c3dlcigpIGF0dGFjaGVzIHRvIGFuIGV4aXN0aW5nIHRyYW5zY2VpdmVyIHdpdGggYSByZW1vdGUg
c2ltdWxjYXN0IG9mZmVyJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNl
dFJlbW90ZURlc2NyaXB0aW9uLXRyYWNrcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVt
b3RlRGVzY3JpcHRpb24tdHJhY2tzLmh0dHBzLmh0bWwKaW5kZXggNGU5NTY4ZjBiY2RiNDgxM2Q5
NzMxOTc2NDBhYTdlYTIwMDU5OGI1Ni4uZDJlZTY0NmUyYzE3YzdkMGFhMWQ2MzI4ODI4MzhhMDdh
NmQ1YTY4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tdHJh
Y2tzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tdHJh
Y2tzLmh0dHBzLmh0bWwKQEAgLTEsNSArMSw2IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxtZXRhIGNo
YXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDx0aXRs
ZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuc2V0UmVtb3RlRGVzY3JpcHRpb24gLSBhZGQv
cmVtb3ZlIHJlbW90ZSB0cmFja3M8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgpAQCAtMjcsOCArMjgsNiBAQAogICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gbG9jYWxTdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5z
dG9wKCkpKTsKICAgICBjYWxsZXIuYWRkVHJhY2sobG9jYWxTdHJlYW0uZ2V0VHJhY2tzKClbMF0p
OwogICAgIGNvbnN0IG9udHJhY2tQcm9taXNlID0gYWRkRXZlbnRMaXN0ZW5lclByb21pc2UodCwg
Y2FsbGVlLCAndHJhY2snLCBlID0+IHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZS50cmFjay5pZCwg
bG9jYWxTdHJlYW0uZ2V0VHJhY2tzKClbMF0uaWQsCi0gICAgICAgICAgICAgICAgICAgICdMb2Nh
bCBhbmQgcmVtb3RlIHRyYWNrIElEcyBtYXRjaC4nKTsKICAgICAgIGFzc2VydF9lcXVhbHMoZS5z
dHJlYW1zLmxlbmd0aCwgMCwgJ05vIHJlbW90ZSBzdHJlYW0gY3JlYXRlZC4nKTsKICAgICB9KTsK
ICAgICBhd2FpdCBleGNoYW5nZU9mZmVyKGNhbGxlciwgY2FsbGVlKTsKQEAgLTQ1LDggKzQ0LDYg
QEAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGxvY2FsU3RyZWFtLmdldFRyYWNrcygpLmZvckVh
Y2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY2FsbGVyLmFkZFRyYWNrKGxvY2FsU3Ry
ZWFtLmdldFRyYWNrcygpWzBdLCBsb2NhbFN0cmVhbSk7CiAgICAgY29uc3Qgb250cmFja1Byb21p
c2UgPSBhZGRFdmVudExpc3RlbmVyUHJvbWlzZSh0LCBjYWxsZWUsICd0cmFjaycsIGUgPT4gewot
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRyYWNrLmlkLCBsb2NhbFN0cmVhbS5nZXRUcmFja3MoKVsw
XS5pZCwKLSAgICAgICAgICAgICAgICAgICAgJ0xvY2FsIGFuZCByZW1vdGUgdHJhY2sgSURzIG1h
dGNoLicpOwogICAgICAgYXNzZXJ0X2VxdWFscyhlLnN0cmVhbXMubGVuZ3RoLCAxLCAnQ3JlYXRl
ZCBhIHNpbmdsZSByZW1vdGUgc3RyZWFtLicpOwogICAgICAgYXNzZXJ0X2VxdWFscyhlLnN0cmVh
bXNbMF0uaWQsIGxvY2FsU3RyZWFtLmlkLAogICAgICAgICAgICAgICAgICAgICAnTG9jYWwgYW5k
IHJlbW90ZSBzdHJlYW0gSURzIG1hdGNoLicpOwpAQCAtOTYsMTggKzkzLDEyIEBACiAgICAgfSk7
CiAgICAgYXdhaXQgZXhjaGFuZ2VPZmZlcihjYWxsZXIsIGNhbGxlZSk7CiAgICAgbGV0IGZpcnN0
VHJhY2tFdmVudCA9IGF3YWl0IG9udHJhY2tFdmVudFJlc29sdmVyc1swXTsKLSAgICBhc3NlcnRf
ZXF1YWxzKGZpcnN0VHJhY2tFdmVudC50cmFjay5pZCwKLSAgICAgICAgICAgICAgICAgIGxvY2Fs
U3RyZWFtc1swXS5nZXRUcmFja3MoKVswXS5pZCwKLSAgICAgICAgICAgICAgICAgICdGaXJzdCBv
bnRyYWNrXCdzIHRyYWNrIElEIG1hdGNoZXMgZmlyc3QgbG9jYWwgdHJhY2suJyk7CiAgICAgYXNz
ZXJ0X2VxdWFscyhmaXJzdFRyYWNrRXZlbnQuc3RyZWFtcy5sZW5ndGgsIDEsCiAgICAgICAgICAg
ICAgICAgICAnRmlyc3Qgb250cmFjayBmaXJlcyB3aXRoIGEgc2luZ2xlIHN0cmVhbS4nKTsKICAg
ICBhc3NlcnRfZXF1YWxzKGZpcnN0VHJhY2tFdmVudC5zdHJlYW1zWzBdLmlkLAogICAgICAgICAg
ICAgICAgICAgbG9jYWxTdHJlYW1zWzBdLmlkLAogICAgICAgICAgICAgICAgICAgJ0ZpcnN0IG9u
dHJhY2tcJ3Mgc3RyZWFtIElEIG1hdGNoZXMgbG9jYWwgc3RyZWFtLicpOwogICAgIGxldCBzZWNv
bmRUcmFja0V2ZW50ID0gYXdhaXQgb250cmFja0V2ZW50UmVzb2x2ZXJzWzFdOwotICAgIGFzc2Vy
dF9lcXVhbHMoc2Vjb25kVHJhY2tFdmVudC50cmFjay5pZCwKLSAgICAgICAgICAgICAgICAgIGxv
Y2FsU3RyZWFtc1sxXS5nZXRUcmFja3MoKVswXS5pZCwKLSAgICAgICAgICAgICAgICAgICdTZWNv
bmQgb250cmFja1wncyB0cmFjayBJRCBtYXRjaGVzIHNlY29uZCBsb2NhbCB0cmFjay4nKTsKICAg
ICBhc3NlcnRfZXF1YWxzKHNlY29uZFRyYWNrRXZlbnQuc3RyZWFtcy5sZW5ndGgsIDEsCiAgICAg
ICAgICAgICAgICAgICAnU2Vjb25kIG9udHJhY2sgZmlyZXMgd2l0aCBhIHNpbmdsZSBzdHJlYW0u
Jyk7CiAgICAgYXNzZXJ0X2VxdWFscyhzZWNvbmRUcmFja0V2ZW50LnN0cmVhbXNbMF0uaWQsCkBA
IC0xNDUsMTcgKzEzNiwxNiBAQAogICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhjYWxsZXIsIGNh
bGxlZSk7CiAgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7CiAg
ICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVTdHJlYW1zLmxlbmd0aCwgMSwgJ09uZSByZW1vdGUgc3Ry
ZWFtIGNyZWF0ZWQuJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVTdHJlYW1zWzBdLmdldFRy
YWNrcygpWzBdLmlkLAotICAgICAgICAgICAgICAgICAgbG9jYWxTdHJlYW1zWzBdLmdldFRyYWNr
cygpWzBdLmlkLAotICAgICAgICAgICAgICAgICAgJ0ZpcnN0IGxvY2FsIGFuZCByZW1vdGUgdHJh
Y2tzIGhhdmUgdGhlIHNhbWUgSUQuJyk7Ci0gICAgY29uc3Qgb25hZGR0cmFja1Byb21pc2UgPQot
ICAgICAgICBhZGRFdmVudExpc3RlbmVyUHJvbWlzZSh0LCByZW1vdGVTdHJlYW1zWzBdLCAnYWRk
dHJhY2snLCBlID0+IHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZS50cmFjay5pZCwgbG9jYWxTdHJl
YW1zWzFdLmdldFRyYWNrcygpWzBdLmlkLAotICAgICAgICAgICAgICAgICAgICAnU2Vjb25kIGxv
Y2FsIGFuZCByZW1vdGUgdHJhY2tzIGhhdmUgdGhlIHNhbWUgSUQuJyk7Ci0gICAgfSk7CisgICAg
YXNzZXJ0X2VxdWFscyhyZW1vdGVTdHJlYW1zWzBdLmlkLCBsb2NhbFN0cmVhbXNbMF0uaWQsCisg
ICAgICAgICAgICAgICAgICAnRmlyc3QgbG9jYWwgYW5kIHJlbW90ZSBzdHJlYW1zIGhhdmUgdGhl
IHNhbWUgSUQuJyk7CisgICAgY29uc3QgZmlyc3RSZW1vdGVUcmFjayA9IHJlbW90ZVN0cmVhbXNb
MF0uZ2V0VHJhY2tzKClbMF07CisgICAgY29uc3Qgb25hZGR0cmFja1Byb21pc2UgPSBhZGRFdmVu
dExpc3RlbmVyUHJvbWlzZSh0LCByZW1vdGVTdHJlYW1zWzBdLCAnYWRkdHJhY2snKTsKICAgICBj
YWxsZXIuYWRkVHJhY2sobG9jYWxTdHJlYW1zWzFdLmdldFRyYWNrcygpWzBdLCBsb2NhbFN0cmVh
bXNbMF0pOwogICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXIoY2FsbGVyLCBjYWxsZWUpOwotICAgIGF3
YWl0IG9uYWRkdHJhY2tQcm9taXNlOworICAgIGNvbnN0IGUgPSBhd2FpdCBvbmFkZHRyYWNrUHJv
bWlzZTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZVN0cmVhbXNbMF0uZ2V0VHJhY2tzKCkubGVu
Z3RoLCAyLCAnc3RyZWFtIGhhcyB0d28gdHJhY2tzJyk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMo
ZS50cmFjay5pZCwgZmlyc3RSZW1vdGVUcmFjay5pZCwKKyAgICAgICAgICAgICAgICAgICAgICAn
YWRkdHJhY2sgZXZlbnQgaGFzIGEgbmV3IHRyYWNrJyk7CiAgICAgYXNzZXJ0X2VxdWFscyhyZW1v
dGVTdHJlYW1zLmxlbmd0aCwgMSwgJ1N0aWxsIGEgc2luZ2xlIHJlbW90ZSBzdHJlYW0uJyk7CiAg
IH0sICdhZGRUcmFjaygpIGZvciBhbiBleGlzdGluZyBzdHJlYW0gbWFrZXMgc3RyZWFtLm9uYWRk
dHJhY2sgZmlyZS4nKTsKIApAQCAtMjA2LDggKzE5Niw2IEBACiAgICAgY2FsbGVyLmFkZFRyYWNr
KGxvY2FsU3RyZWFtc1swXS5nZXRUcmFja3MoKVswXSwKICAgICAgICAgICAgICAgICAgICAgbG9j
YWxTdHJlYW1zWzBdLCBsb2NhbFN0cmVhbXNbMV0pOwogICAgIGNvbnN0IG9udHJhY2tQcm9taXNl
ID0gYWRkRXZlbnRMaXN0ZW5lclByb21pc2UodCwgY2FsbGVlLCAndHJhY2snLCBlID0+IHsKLSAg
ICAgIGFzc2VydF9lcXVhbHMoZS50cmFjay5pZCwgbG9jYWxTdHJlYW1zWzBdLmdldFRyYWNrcygp
WzBdLmlkLAotICAgICAgICAgICAgICAgICAgICAnTG9jYWwgYW5kIHJlbW90ZSB0cmFjayBJRHMg
bWF0Y2guJyk7CiAgICAgICBhc3NlcnRfZXF1YWxzKGUuc3RyZWFtcy5sZW5ndGgsIDIsICdUd28g
cmVtb3RlIHN0cmVhbSBjcmVhdGVkLicpOwogICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLnN0
cmVhbXNbMF0uZ2V0VHJhY2tzKCksIFtlLnRyYWNrXSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ0ZpcnN0IHJlbW90ZSBzdHJlYW0gPT0gW3JlbW90ZSB0cmFja10uJyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0
UmVtb3RlRGVzY3JpcHRpb24uaHRtbAppbmRleCA0NjRlMTZkNzM2YTAyMDg1ZTMxMjM1MDU5N2M1
ZWJlNDkyZGUzYzFjLi4zZjMzNWQ3MWI5YWI2NDBjMzRiODc5ZDYyNGZhNzcyMTU0ODhkNWNlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLmh0bWwKQEAgLTU0LDcgKzU0LDcgQEAKICAg
ICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHsgdHlwZTogJ2JvZ3VzJywgc2RwOiAn
Ym9ndXMnIH0pOwogICAgICAgdC51bnJlYWNoZWRfZnVuYygiU2hvdWxkIGhhdmUgcmVqZWN0ZWQu
Iik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
KCksICgpID0+IHsgdGhyb3cgZSB9KTsKKyAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9y
LCAoKSA9PiB7IHRocm93IGUgfSk7CiAgICAgfQogICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24g
d2l0aCBpbnZhbGlkIHR5cGUgYW5kIGludmFsaWQgU0RQIHNob3VsZCByZWplY3Qgd2l0aCBUeXBl
RXJyb3InKTsKIApAQCAtNjcsNyArNjcsNyBAQAogICAgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oeyB0eXBlOiAnYW5zd2VyJywgc2RwOiAnaW52YWxpZCcgfSk7CiAgICAgICB0LnVu
cmVhY2hlZF9mdW5jKCJTaG91bGQgaGF2ZSByZWplY3RlZC4iKTsKICAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IHsgdGhyb3cg
ZSB9KTsKKyAgICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+
IHsgdGhyb3cgZSB9KTsKICAgICB9CiAgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHdpdGgg
aW52YWxpZCBTRFAgYW5kIHN0YWJsZSBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0
YXRlRXJyb3InKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhY2stc3RhdHMuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXRyYWNrLXN0YXRzLmh0dHBzLmh0bWwKaW5kZXggMmQwY2UzMDJh
MDFiY2YxNWQzZjQ5Y2IzNzI4ZTJhNDU4NDdlY2UyYS4uODNjOWYxOTE2Y2QwMmE1ZTkxMDMxZTRl
NjE4MzE5NjI4ZGE1MmNjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhY2stc3RhdHMuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0cy5odHRwcy5odG1sCkBAIC0xMSw3
ICsxMSw3IEBACiAgICd1c2Ugc3RyaWN0JzsKIAogICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBm
dW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKLSAg
Ly8gICBkb1NpZ25hbGluZ0hhbmRzaGFrZQorICAvLyAgIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIKICAg
Ly8gICBnZXRVc2VyTWVkaWFUcmFja3NBbmRTdHJlYW1zCiAgIC8vICAgd2FpdEZvclJ0cEFuZFJ0
Y3BTdGF0cwogCkBAIC0yMDgsNyArMjA4LDcgQEAKICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
dHJhY2tzLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgICBzZW5kaW5nVHJh
Y2sgPSB0cmFja3NbMF07CiAgICAgICBjYWxsZXIuYWRkVHJhY2soc2VuZGluZ1RyYWNrLCBzdHJl
YW1zWzBdKTsKLSAgICAgIHJldHVybiBkb1NpZ25hbGluZ0hhbmRzaGFrZShjYWxsZXIsIGNhbGxl
ZSk7CisgICAgICByZXR1cm4gZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7CiAg
ICAgfSkpCiAgICAgLnRoZW4odC5zdGVwX2Z1bmMoKCkgPT4gewogICAgICAgcmV0dXJuIGNhbGxl
ci5nZXRTdGF0cygpOwpAQCAtMjQyLDcgKzI0Miw3IEBACiAgICAgLnRoZW4odC5zdGVwX2Z1bmMo
KFt0cmFja3MsIHN0cmVhbXNdKSA9PiB7CiAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHRyYWNr
cy5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwogICAgICAgY2FsbGVyLmFkZFRyYWNr
KHRyYWNrc1swXSwgc3RyZWFtc1swXSk7Ci0gICAgICByZXR1cm4gZG9TaWduYWxpbmdIYW5kc2hh
a2UoY2FsbGVyLCBjYWxsZWUpOworICAgICAgcmV0dXJuIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2Fs
bGVyLCBjYWxsZWUpOwogICAgIH0pKQogICAgIC50aGVuKHQuc3RlcF9mdW5jKCgpID0+IHsKICAg
ICAgIHJldHVybiBjYWxsZWUuZ2V0U3RhdHMoKTsKQEAgLTM0NSw3ICszNDUsNyBAQAogICAgICAg
c2VuZGluZ1RyYWNrMSA9IHRyYWNrc1swXTsKICAgICAgIHNlbmRpbmdUcmFjazIgPSB0cmFja3Nb
MV07CiAgICAgICBzZW5kZXIgPSBjYWxsZXIuYWRkVHJhY2soc2VuZGluZ1RyYWNrMSwgc3RyZWFt
c1swXSk7Ci0gICAgICByZXR1cm4gZG9TaWduYWxpbmdIYW5kc2hha2UoY2FsbGVyLCBjYWxsZWUp
OworICAgICAgcmV0dXJuIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2FsbGVyLCBjYWxsZWUpOwogICAg
IH0pKQogICAgIC50aGVuKHQuc3RlcF9mdW5jKCgpID0+IHsKICAgICAgIHJldHVybiBzZW5kZXIu
cmVwbGFjZVRyYWNrKHNlbmRpbmdUcmFjazIpOwpAQCAtMzgyLDcgKzM4Miw3IEBACiAgICAgICBz
ZW5kaW5nVHJhY2sxID0gdHJhY2tzWzBdOwogICAgICAgc2VuZGluZ1RyYWNrMiA9IHRyYWNrc1sx
XTsKICAgICAgIHNlbmRlciA9IGNhbGxlci5hZGRUcmFjayhzZW5kaW5nVHJhY2sxLCBzdHJlYW1z
WzBdKTsKLSAgICAgIHJldHVybiBkb1NpZ25hbGluZ0hhbmRzaGFrZShjYWxsZXIsIGNhbGxlZSk7
CisgICAgICByZXR1cm4gZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7CiAgICAg
fSkpCiAgICAgLnRoZW4odC5zdGVwX2Z1bmMoKCkgPT4gewogICAgICAgcmV0dXJuIHNlbmRlci5y
ZXBsYWNlVHJhY2soc2VuZGluZ1RyYWNrMik7CkBAIC00MTYsNyArNDE2LDcgQEAKICAgICBsZXQg
c2VuZGVyID0gY2FsbGVyLmFkZFRyYWNrKHRyYWNrc1swXSwgc3RyZWFtc1swXSk7CiAgICAgY2Fs
bGVlLmFkZFRyYWNrKHRyYWNrc1sxXSwgc3RyZWFtc1sxXSk7CiAgICAgZXhjaGFuZ2VJY2VDYW5k
aWRhdGVzKGNhbGxlciwgY2FsbGVlKTsKLSAgICBhd2FpdCBkb1NpZ25hbGluZ0hhbmRzaGFrZShj
YWxsZXIsIGNhbGxlZSk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNh
bGxlZSk7CiAgICAgYXdhaXQgbGlzdGVuVG9Db25uZWN0ZWQoY2FsbGVyKTsKICAgICBsZXQgcmVj
ZWl2ZXIgPSBjYWxsZXIuZ2V0UmVjZWl2ZXJzKClbMF07CiAKQEAgLTQ2NSw3ICs0NjUsNyBAQAog
ICAgIGxldCBzZW5kZXIgPSBjYWxsZXIuYWRkVHJhY2sodHJhY2tzWzBdLCBzdHJlYW1zWzBdKTsK
ICAgICBjYWxsZWUuYWRkVHJhY2sodHJhY2tzWzFdLCBzdHJlYW1zWzFdKTsKICAgICBleGNoYW5n
ZUljZUNhbmRpZGF0ZXMoY2FsbGVyLCBjYWxsZWUpOwotICAgIGF3YWl0IGRvU2lnbmFsaW5nSGFu
ZHNoYWtlKGNhbGxlciwgY2FsbGVlKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKGNh
bGxlciwgY2FsbGVlKTsKICAgICBhd2FpdCBsaXN0ZW5Ub0Nvbm5lY3RlZChjYWxsZXIpOwogICAg
IGxldCByZWNlaXZlciA9IGNhbGxlci5nZXRSZWNlaXZlcnMoKVswXTsKIApAQCAtNTE0LDcgKzUx
NCw3IEBACiAgICAgbGV0IHNlbmRlciA9IGNhbGxlci5hZGRUcmFjayh0cmFja3NbMF0sIHN0cmVh
bXNbMF0pOwogICAgIGNhbGxlZS5hZGRUcmFjayh0cmFja3NbMV0sIHN0cmVhbXNbMV0pOwogICAg
IGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhjYWxsZXIsIGNhbGxlZSk7Ci0gICAgYXdhaXQgZG9TaWdu
YWxpbmdIYW5kc2hha2UoY2FsbGVyLCBjYWxsZWUpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJB
bnN3ZXIoY2FsbGVyLCBjYWxsZWUpOwogICAgIGF3YWl0IGxpc3RlblRvSWNlQ29ubmVjdGVkKGNh
bGxlcik7CiAKICAgICAvLyBXYWl0IHVudGlsIFJUQ1AgaGFzIGFycml2ZWQgc28gdGhhdCBpdCBj
YW4gbm90IGFycml2ZSBiZXR3ZWVuCkBAIC01NDYsNyArNTQ2LDcgQEAKICAgICBsZXQgc2VuZGVy
ID0gY2FsbGVyLmFkZFRyYWNrKHRyYWNrc1swXSwgc3RyZWFtc1swXSk7CiAgICAgY2FsbGVlLmFk
ZFRyYWNrKHRyYWNrc1sxXSwgc3RyZWFtc1sxXSk7CiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
KGNhbGxlciwgY2FsbGVlKTsKLSAgICBhd2FpdCBkb1NpZ25hbGluZ0hhbmRzaGFrZShjYWxsZXIs
IGNhbGxlZSk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7
CiAgICAgYXdhaXQgbGlzdGVuVG9JY2VDb25uZWN0ZWQoY2FsbGVyKTsKICAgICBsZXQgcmVjZWl2
ZXIgPSBjYWxsZXIuZ2V0UmVjZWl2ZXJzKClbMF07CiAKQEAgLTU3NCw3ICs1NzQsNyBAQAogICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgbGV0IFt0cmFja3MsIHN0cmVh
bXNdID0gYXdhaXQgZ2V0VXNlck1lZGlhVHJhY2tzQW5kU3RyZWFtcygxKTsKICAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHRyYWNrcy5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwotICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZEFjY2Vzc0Vycm9yJywgcGMuZ2V0U3Rh
dHModHJhY2tzWzBdKSk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxp
ZEFjY2Vzc0Vycm9yJywgcGMuZ2V0U3RhdHModHJhY2tzWzBdKSk7CiAgIH0sICdSVENQZWVyQ29u
bmVjdGlvbi5nZXRTdGF0cyh0cmFjaykgdGhyb3dzIEludmFsaWRBY2Nlc3NFcnJvciB3aGVuIHRo
ZXJlICcgKwogICAgICAnYXJlIHplcm8gc2VuZGVycyBvciByZWNlaXZlcnMgZm9yIHRoZSB0cmFj
aycpOwogCkBAIC01ODYsNyArNTg2LDcgQEAKICAgICBsZXQgc2VuZGVyMSA9IHBjLmFkZFRyYWNr
KHRyYWNrc1swXSwgc3RyZWFtc1swXSk7CiAgICAgbGV0IHNlbmRlcjIgPSBwYy5hZGRUcmFjayh0
cmFja3NbMV0sIHN0cmVhbXNbMV0pOwogICAgIGF3YWl0IHNlbmRlcjIucmVwbGFjZVRyYWNrKHNl
bmRlcjEudHJhY2spOwotICAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZEFjY2Vz
c0Vycm9yJywgcGMuZ2V0U3RhdHMoc2VuZGVyMS50cmFjaykpOworICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20odCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsIHBjLmdldFN0YXRzKHNlbmRlcjEu
dHJhY2spKTsKICAgfSwgJ1JUQ1BlZXJDb25uZWN0aW9uLmdldFN0YXRzKHRyYWNrKSB0aHJvd3Mg
SW52YWxpZEFjY2Vzc0Vycm9yIHdoZW4gdGhlcmUgJyArCiAgICAgICdhcmUgbXVsdGlwbGUgc2Vu
ZGVycyBmb3IgdGhlIHRyYWNrJyk7CiAKQEAgLTY0OCwxNSArNjQ4LDQgQEAKICAgICAgIH0KICAg
ICB9CiAgIH0KLQotICBhc3luYyBmdW5jdGlvbiBhc3luY19hc3NlcnRfdGhyb3dzKGV4Y2VwdGlv
bk5hbWUsIHByb21pc2UsIGRlc2NyaXB0aW9uKSB7Ci0gICAgdHJ5IHsKLSAgICAgIGF3YWl0IHBy
b21pc2U7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsIGV4
Y2VwdGlvbk5hbWUpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBhc3NlcnRfdW5yZWFjaGVk
KCdObyBleGNlcHRpb24gd2FzIHRocm93bi4nKTsKLSAgfQotCiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXRyYW5zY2VpdmVycy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi10cmFuc2NlaXZlcnMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDgwYjRlYWRlODUwMDUy
OGQyMmM0YzgxNmNkNmNmMzlkOTEzYzM1MzMuLmQzOWJmM2U1MmU5NjQ1NWMxNWFhY2M4ZWIzNjky
MWVhMjYwOTdkNjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYW5zY2VpdmVycy5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhbnNjZWl2ZXJzLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtNDEsNCArNDEsNiBAQCBQQVNTIGFkZFRyYW5zY2VpdmVyIGRvZXMgbm90IHJldXNl
IHJldXNhYmxlIHRyYW5zY2VpdmVycwogUEFTUyBDYW4gc2V0dXAgdHdvLXdheSBjYWxsIHVzaW5n
IGEgc2luZ2xlIHRyYW5zY2VpdmVyIAogUEFTUyBDbG9zaW5nIHRoZSBQQyBzdG9wcyB0aGUgdHJh
bnNjZWl2ZXJzIAogUEFTUyBDaGFuZ2luZyB0cmFuc2NlaXZlciBkaXJlY3Rpb24gdG8gJ3NlbmRy
ZWN2JyBtYWtlcyBvbnRyYWNrIGZpcmUgCitGQUlMIHRyYW5zY2VpdmVyLnNlbmRlci50cmFjayBk
b2VzIG5vdCByZXZlcnQgdG8gYW4gb2xkIHN0YXRlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMS5nZXRSZWNlaXZlcnMoKVswXS50cmFjaycpIgorRkFJ
TCB0cmFuc2NlaXZlci5kaXJlY3Rpb24gZG9lcyBub3QgcmV2ZXJ0IHRvIGFuIG9sZCBzdGF0ZSBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdwYzEuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0uZGlyZWN0aW9uID0gJ2luYWN0aXZlJycpIgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi10cmFuc2NlaXZlcnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYW5zY2Vp
dmVycy5odHRwcy5odG1sCmluZGV4IDliM2E5YTg1NDEzZTJkY2ZkYmNiYmVmZTJiOGIwNWEwZmZk
MDVjYTAuLjExMDYzOGNkNzRlOGQ5MTA2NWZiN2VmM2EyOGNlMWE4MDUxYzYzNzAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXRyYW5zY2VpdmVycy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXRyYW5zY2VpdmVycy5odHRwcy5odG1sCkBAIC0yMTAsMTAgKzIxMCwxMCBAQCBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IHRyYWNrRXZlbnQgPSBhd2FpdCBleGNoYW5nZU9mZmVy
QW5kTGlzdGVuVG9PbnRyYWNrKHQsIHBjMSwgcGMyKTsKICAgY29uc3QgdHJhbnNjZWl2ZXIgPSB0
cmFja0V2ZW50LnRyYW5zY2VpdmVyOwogICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmN1cnJl
bnREaXJlY3Rpb24sIG51bGwsCi0gICAgICAgICAgICAgICAgJ1NSRChvZmZlcik6IHRyYW5zY2ll
dmVyLmN1cnJlbnREaXJlY3Rpb24gaXMgbnVsbCcpOworICAgICAgICAgICAgICAgICdTUkQob2Zm
ZXIpOiB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIGlzIG51bGwnKTsKICAgYXdhaXQgcGMy
LnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKICAgYXNzZXJ0
X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAncmVjdm9ubHknLAotICAgICAg
ICAgICAgICAgICdTTEQoYW5zd2VyKTogdHJhbnNjaWV2ZXIuY3VycmVudERpcmVjdGlvbiBpcyBy
ZWN2b25seScpOworICAgICAgICAgICAgICAgICdTTEQoYW5zd2VyKTogdHJhbnNjZWl2ZXIuY3Vy
cmVudERpcmVjdGlvbiBpcyByZWN2b25seScpOwogfSwgJ3NldExvY2FsRGVzY3JpcHRpb24oYW5z
d2VyKTogdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiBpcyByZWN2b25seScpOwogCiBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CkBAIC0yMjMsMTAgKzIyMywxMCBAQCBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CiAgIGNvbnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFu
dXAodCk7CiAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXIocGMxLCBwYzIpOwogICBhc3NlcnRfZXF1YWxz
KHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24sIG51bGwsCi0gICAgICAgICAgICAgICAgJ1NM
RChvZmZlcik6IHRyYW5zY2lldmVyLmN1cnJlbnREaXJlY3Rpb24gaXMgbnVsbCcpOworICAgICAg
ICAgICAgICAgICdTTEQob2ZmZXIpOiB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIGlzIG51
bGwnKTsKICAgYXdhaXQgZXhjaGFuZ2VBbnN3ZXIocGMxLCBwYzIpOwogICBhc3NlcnRfZXF1YWxz
KHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24sICdzZW5kb25seScsCi0gICAgICAgICAgICAg
ICAgJ1NSRChhbnN3ZXIpOiB0cmFuc2NpZXZlci5jdXJyZW50RGlyZWN0aW9uIGlzIHNlbmRvbmx5
Jyk7CisgICAgICAgICAgICAgICAgJ1NSRChhbnN3ZXIpOiB0cmFuc2NlaXZlci5jdXJyZW50RGly
ZWN0aW9uIGlzIHNlbmRvbmx5Jyk7CiB9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOiB0
cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIGlzIHNlbmRvbmx5Jyk7CiAKIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKQEAgLTQ2OSw0ICs0NjksMzUgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewogICBhd2FpdCBleGNoYW5nZU9mZmVyQW5kTGlzdGVuVG9PbnRyYWNrKHQsIHBjMSwgcGMy
KTsKIH0sICdDaGFuZ2luZyB0cmFuc2NlaXZlciBkaXJlY3Rpb24gdG8gXCdzZW5kcmVjdlwnIG1h
a2VzIG9udHJhY2sgZmlyZScpOwogCisvLyBSZWdyZXNzaW9uIHRlc3QgY292ZXJhZ2UgZm9yIGh0
dHBzOi8vY3JidWcuY29tLzk1MDI4MC4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIGNvbnN0IHBjMlByb21pc2UgPSBw
YzIuY3JlYXRlT2ZmZXIoKQorICAgIC50aGVuKChvZmZlcikgPT4geyByZXR1cm4gcGMxLnNldFJl
bW90ZURlc2NyaXB0aW9uKG9mZmVyKTsgfSkKKyAgICAudGhlbigoKSA9PiB7IHJldHVybiBwYzEu
Y3JlYXRlQW5zd2VyKCk7IH0pCisgICAgLnRoZW4oKGFuc3dlcikgPT4geyByZXR1cm4gcGMxLnNl
dExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsgfSk7CisgIGNvbnN0IHBjMVByb21pc2UgPSBwYzEu
Y3JlYXRlT2ZmZXIoeyBvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSkKKyAgICAudGhlbigoKSA9
PiB7IHBjMS5hZGRUcmFjayhwYzEuZ2V0UmVjZWl2ZXJzKClbMF0udHJhY2spOyB9KTsKKyAgYXdh
aXQgUHJvbWlzZS5hbGwoW3BjMVByb21pc2UsIHBjMlByb21pc2VdKTsKKyAgYXNzZXJ0X2VxdWFs
cyhwYzEuZ2V0U2VuZGVycygpWzBdLnRyYWNrLCBwYzEuZ2V0UmVjZWl2ZXJzKClbMF0udHJhY2sp
OworfSwgJ3RyYW5zY2VpdmVyLnNlbmRlci50cmFjayBkb2VzIG5vdCByZXZlcnQgdG8gYW4gb2xk
IHN0YXRlJyk7CisKKy8vIFJlZ3Jlc3Npb24gdGVzdCBjb3ZlcmFnZSBmb3IgaHR0cHM6Ly9jcmJ1
Zy5jb20vOTUwMjgwLgorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgY29uc3QgcGMyUHJvbWlzZSA9IHBjMi5jcmVhdGVP
ZmZlcigpCisgICAgLnRoZW4oKG9mZmVyKSA9PiB7IHJldHVybiBwYzEuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ob2ZmZXIpOyB9KQorICAgIC50aGVuKCgpID0+IHsgcmV0dXJuIHBjMS5jcmVhdGVBbnN3
ZXIoKTsgfSk7CisgIGNvbnN0IHBjMVByb21pc2UgPSBwYzEuY3JlYXRlT2ZmZXIoeyBvZmZlclRv
UmVjZWl2ZUF1ZGlvOiB0cnVlfSkKKyAgICAudGhlbigoKSA9PiB7IHBjMS5nZXRUcmFuc2NlaXZl
cnMoKVswXS5kaXJlY3Rpb24gPSAnaW5hY3RpdmUnOyB9KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwo
W3BjMVByb21pc2UsIHBjMlByb21pc2VdKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNj
ZWl2ZXJzKClbMF0uZGlyZWN0aW9uLCAnaW5hY3RpdmUnKTsKK30sICd0cmFuc2NlaXZlci5kaXJl
Y3Rpb24gZG9lcyBub3QgcmV2ZXJ0IHRvIGFuIG9sZCBzdGF0ZScpOworCiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXZpZGVvRGV0ZWN0b3JUZXN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXZpZGVvRGV0ZWN0b3JUZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzE1
ZDU5NjY3YTgwNzYwYzcwNzIyMzZmNDc2ZGI1OGU1MGM0OTRiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIFNpZ25hbCBkZXRlY3RvciBkZXRlY3RzIHRyYWNrIGNoYW5nZSB3aXRoaW4gcmVh
c29uYWJsZSB0aW1lIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi12aWRlb0RldGVjdG9yVGVz
dC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MWZmZmRjNjg2MDM0NjViMjJiMzJkYTczOGFiNWZlZGFiMzc4ZjQxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbApAQCAtMCwwICsxLDg0IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBWaWRlbyBkZXRlY3Rv
ciB0ZXN0PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLy8gVGhpcyB0ZXN0IHZlcmlmaWVzIHRo
YXQgdGhlIGhlbHBlciBmdW5jdGlvbiAiZGV0ZWN0U2lnbmFsIiBmcm9tCisvLyBSVENQZWVyQ29u
bmVjdGlvbkhlbHBlciwgd2hpY2ggaXMgdXNlZCB0byBkZXRlY3QgY2hhbmdlcyBpbiBhIHZpZGVv
CisvLyBzaWduYWwsIHBlcmZvcm1zIHByb3Blcmx5IGZvciBhIHJhbmdlIG9mICJzaWduYWwiIHZh
bHVlcy4KKworLy8gSWYgaXQgZmFpbHMsIGl0IGluZGljYXRlcyB0aGF0IHRoZSB2aWRlbyBjb2Rl
YyB1c2VkIGluIHRoaXMgcGFydGljdWxhcgorLy8gYnJvd3NlciBhdCB0aGlzIHRpbWUgZG9lc24n
dCByZXByb2R1Y2UgdGhlIGx1bWEgc2lnbmFsIHJlbGlhYmx5IGVub3VnaAorLy8gZm9yIHRoaXMg
cGFydGljdWxhciBhcHBsaWNhdGlvbiwgd2hpY2ggbWF5IGxlYWQgdG8gb3RoZXIgdGVzdHMgdGhh
dAorLy8gdXNlIHRoZSAiZGV0ZWN0U2lnbmFsIiBoZWxwZXIgZmFpbGluZyB3aXRob3V0IGFuIG9i
dmlvdXMgY2F1c2UuCisKKy8vIFRoZSBtb3N0IGxpa2VseSBmYWlsdXJlIGlzIHRpbWVvdXQgLSB3
aGljaCB3aWxsIGhhcHBlbiBpZiB0aGUKKy8vIGx1bWEgdmFsdWUgZGV0ZWN0ZWQgZG9lc24ndCBz
ZXR0bGUgd2l0aGluIHRoZSBtYXJnaW4gb2YgZXJyb3IgYmVmb3JlCisvLyB0aGUgdGVzdCB0aW1l
cyBvdXQuCisKK2FzeW5jIGZ1bmN0aW9uIHNpZ25hbFNldHRsZW1lbnRUaW1lKHQsIHYsIHNlbmRl
ciwgc2lnbmFsLCBiYWNrZ3JvdW5kVHJhY2spIHsKKyAgY29uc3QgZGV0ZWN0aW9uU3RyZWFtID0g
YXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB7c2lnbmFsOiBzaWduYWx9fSk7CisgIGNvbnN0
IFtkZXRlY3Rpb25UcmFja10gPSBkZXRlY3Rpb25TdHJlYW0uZ2V0VHJhY2tzKCk7CisgIGF3YWl0
IHNlbmRlci5yZXBsYWNlVHJhY2soZGV0ZWN0aW9uVHJhY2spOworICBjb25zdCBmcmFtZXNCZWZv
cmUgPSB2LmdldFZpZGVvUGxheWJhY2tRdWFsaXR5KCkudG90YWxWaWRlb0ZyYW1lczsKKyAgYXdh
aXQgZGV0ZWN0U2lnbmFsKHQsIHYsIHNpZ25hbCk7CisgIGNvbnN0IGZyYW1lc0FmdGVyID0gdi5n
ZXRWaWRlb1BsYXliYWNrUXVhbGl0eSgpLnRvdGFsVmlkZW9GcmFtZXM7CisgIGF3YWl0IHNlbmRl
ci5yZXBsYWNlVHJhY2soYmFja2dyb3VuZFRyYWNrKTsKKyAgYXdhaXQgZGV0ZWN0U2lnbmFsKHQs
IHYsIDEwMCk7CisgIGRldGVjdGlvblN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+
IHRyYWNrLnN0b3AoKSk7CisgIHJldHVybiAoZnJhbWVzQWZ0ZXIgLSBmcmFtZXNCZWZvcmUpOwor
fQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd2aWRlbycpOworICB2LmF1dG9wbGF5ID0gdHJ1ZTsKKyAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3Nl
KCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBnZXROb2lz
ZVN0cmVhbSh7dmlkZW86IHtzaWduYWw6IDEwMH19KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBz
dHJlYW0xLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIGNv
bnN0IFt0cmFjazFdID0gc3RyZWFtMS5nZXRUcmFja3MoKTsKKyAgY29uc3Qgc2VuZGVyID0gcGMx
LmFkZFRyYWNrKHRyYWNrMSk7CisgIHBjMi5vbnRyYWNrID0gdC5zdGVwX2Z1bmMoKGUpID0+IHsK
KyAgICB2LnNyY09iamVjdCA9IG5ldyBNZWRpYVN0cmVhbShbZS50cmFja10pOworICB9KTsKKyAg
Y29uc3QgbWV0YWRhdGFUb0JlTG9hZGVkID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAg
ICB2LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgcmVzb2x2ZSk7CisgIH0pOwor
ICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBleGNoYW5nZU9mZmVyQW5zd2Vy
KHBjMSwgcGMyKTsKKyAgYXdhaXQgbWV0YWRhdGFUb0JlTG9hZGVkOworICAvLyBUaGUgYmFzaWMg
c2lnbmFsIGlzIGEgdHJhY2sgd2l0aCBzaWduYWwgMTAwLiBXZSByZXBsYWNlIHRoaXMKKyAgLy8g
d2l0aCB0cmFja3Mgd2l0aCBzaWduYWwgZnJvbSAwIHRvIDI1NSBhbmQgc2VlIGlmIHRoZXkgYXJl
IGFsbAorICAvLyByZWxpYWJseSBkZXRlY3RlZC4KKyAgYXdhaXQgZGV0ZWN0U2lnbmFsKHQsIHYs
IDEwMCk7CisgIC8vIEEgZmV3IGJ1ZmZlcmVkIGZyYW1lcyBhcmUgcmVjZWl2ZWQgd2l0aCB0aGUg
b2xkIGNvbnRlbnQsIGFuZCBhIGZldworICAvLyBmcmFtZXMgbWF5IG5vdCBoYXZlIHNldHRsZWQg
b24gZXhhY3RseSB0aGUgcmlnaHQgdmFsdWUuIEluIHRlc3RpbmcsCisgIC8vIHRoaXMgdGVzdCBw
YXNzZXMgd2l0aCBtYXhGcmFtZXMgPSAzOyBnaXZlIGEgbGl0dGxlIG1vcmUgbWFyZ2luLgorICBj
b25zdCBtYXhGcmFtZXMgPSA3OworICAvLyBUZXN0IHZhbHVlcyAwIGFuZCAyNTUKKyAgbGV0IG1h
eENvdW50ID0gYXdhaXQgc2lnbmFsU2V0dGxlbWVudFRpbWUodCwgdiwgc2VuZGVyLCAwLCB0cmFj
azEpOworICBhc3NlcnRfbGVzc190aGFuKG1heENvdW50LCBtYXhGcmFtZXMsCisgICAgICAnU2hv
dWxkIGdldCB0aGUgYmxhY2sgdmFsdWUgd2l0aGluICcgKyBtYXhGcmFtZXMgKyAnIGZyYW1lcycp
OworICBtYXhDb3VudCA9IE1hdGgubWF4KAorICAgICAgYXdhaXQgc2lnbmFsU2V0dGxlbWVudFRp
bWUodCwgdiwgc2VuZGVyLCAyNTUsIHRyYWNrMSksIG1heENvdW50KTsKKyAgYXNzZXJ0X2xlc3Nf
dGhhbihtYXhDb3VudCwgbWF4RnJhbWVzLAorICAgICAgJ1Nob3VsZCBnZXQgdGhlIHdoaXRlIHZh
bHVlIHdpdGhpbiAnICsgbWF4RnJhbWVzICsgJyBmcmFtZXMnKTsKKyAgLy8gVGVzdCBhIHNldCBv
ZiBvdGhlciB2YWx1ZXMgLSBmYXIgZW5vdWdoIGFwYXJ0IHRvIG1ha2UgdGhlIHRlc3QgZmFzdC4K
KyAgZm9yIChsZXQgc2lnbmFsID0gMjsgc2lnbmFsIDw9IDI1NTsgc2lnbmFsICs9IDQ3KSB7Cisg
ICAgaWYgKE1hdGguYWJzKHNpZ25hbCAtIDEwMCkgPiAxMCkgeworICAgICAgY29uc3QgY291bnQg
PSBhd2FpdCBzaWduYWxTZXR0bGVtZW50VGltZSh0LCB2LCBzZW5kZXIsIHNpZ25hbCwgdHJhY2sx
KTsKKyAgICAgIG1heENvdW50ID0gTWF0aC5tYXgoY291bnQsIG1heENvdW50KTsKKyAgICAgIGFz
c2VydF9sZXNzX3RoYW4obWF4Q291bnQsIDEwLAorICAgICAgICAgICdTaG91bGQgZ2V0IHZhbHVl
ICcgKyBzaWduYWwgKyAnIHdpdGhpbiAnICsgbWF4RnJhbWVzICsgJyBmcmFtZXMnKTsKKyAgICB9
CisgIH0KKyAgYXNzZXJ0X2xlc3NfdGhhbihtYXhDb3VudCwgMTAsICdTaG91bGQgZ2V0IHRoZSBy
aWdodCB2YWx1ZSB3aXRoaW4gMTAgZnJhbWVzJyk7Cit9LCAnU2lnbmFsIGRldGVjdG9yIGRldGVj
dHMgdHJhY2sgY2hhbmdlIHdpdGhpbiByZWFzb25hYmxlIHRpbWUnKTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudC1jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b25JY2VFdmVudC1jb25zdHJ1Y3Rvci5odG1sCmluZGV4IDdkZTdmY2FlYjEwZWYyMDllY2U2M2Fk
MzQ2ZjY2OGUxYzYzNGM0ZGIuLjQ0NzAwMmRjYTFmYTM1ODE2ZmRkMjRjNzRkZDc2MWMxZDQ4Y2Yw
MjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQtY29uc3RydWN0b3IuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbkljZUV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAg
aW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgOiBFdmVudCB7CiB9OwogICovCiB0
ZXN0KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKKyAg
YXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKICAgICBuZXcgUlRDUGVlckNvbm5l
Y3Rpb25JY2VFdmVudCgpOwogICB9KTsKIH0sICJSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50IHdp
dGggbm8gYXJndW1lbnRzIHRocm93cyBUeXBlRXJyb3IiKTsKQEAgLTEwOSw3ICsxMDksNyBAQCB0
ZXN0KCgpID0+IHsKIAogdGVzdCgoKSA9PiB7CiAgIGNvbnN0IHBsYWluID0geyBjYW5kaWRhdGUs
IHNkcE1pZCwgc2RwTUxpbmVJbmRleCwgdXNlcm5hbWVGcmFnbWVudCB9OwotICBhc3NlcnRfdGhy
b3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gbmV3IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQo
InR5cGUiLCB7IGNhbmRpZGF0ZTogcGxhaW4gfSkpOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgKCkgPT4gbmV3IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQoInR5cGUiLCB7IGNhbmRp
ZGF0ZTogcGxhaW4gfSkpOwogfSwgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgd2l0aCBub24g
UlRDSWNlQ2FuZGlkYXRlIG9iamVjdCB0aHJvd3MiKTsKIAogdGVzdCgoKSA9PiB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBQYXJhbWV0ZXJzLWNvZGVjcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1jb2RlY3MuaHRtbAppbmRl
eCAwMjMzOTA1MWM5Y2Y1MzIyNGQ3ZTQ3ZThlNzFjMjE1Y2QxZTE0OWRkLi5mNWZhNjVlMmFjOWJl
NzA2YTcyZmViNDljMDliMzdkZWY2NTk4NmU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWNvZGVj
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtY29kZWNzLmh0bWwKQEAgLTI4LDcgKzI4LDYgQEAKICAg
ICAgICAgc2VxdWVuY2U8UlRDUnRwSGVhZGVyRXh0ZW5zaW9uUGFyYW1ldGVycz4gaGVhZGVyRXh0
ZW5zaW9uczsKICAgICAgICAgUlRDUnRjcFBhcmFtZXRlcnMgICAgICAgICAgICAgICAgICAgICAg
ICAgcnRjcDsKICAgICAgICAgc2VxdWVuY2U8UlRDUnRwQ29kZWNQYXJhbWV0ZXJzPiAgICAgICAg
ICAgY29kZWNzOwotICAgICAgICBSVENEZWdyYWRhdGlvblByZWZlcmVuY2UgICAgICAgICAgICAg
ICAgICBkZWdyYWRhdGlvblByZWZlcmVuY2U7CiAgICAgICB9OwogCiAgICAgICBkaWN0aW9uYXJ5
IFJUQ1J0cENvZGVjUGFyYW1ldGVycyB7CkBAIC05OSw3ICs5OCw3IEBACiAgICAgICBjb2RlYy5w
YXlsb2FkVHlwZSArPSAxOwogICAgIH0KIAotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwg
J0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19k
b20odCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCiAgICAgICBzZW5kZXIuc2V0UGFyYW1l
dGVycyhwYXJhbSkpOwogICB9LCAnc2V0UGFyYW1ldGVycygpIHdpdGggY29kZWMucGF5bG9hZFR5
cGUgbW9kaWZpZWQgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJvcicp
OwogCkBAIC0xMTksNyArMTE4LDcgQEAKICAgICAgIGNvZGVjLm1pbWVUeXBlID0gYCR7Y29kZWMu
bWltZVR5cGV9LW1vZGlmaWVkYDsKICAgICB9CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3Rz
KHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAorICAgIHJldHVybiBwcm9taXNlX3JlamVj
dHNfZG9tKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAogICAgICAgc2VuZGVyLnNldFBh
cmFtZXRlcnMocGFyYW0pKTsKICAgfSwgJ3NldFBhcmFtZXRlcnMoKSB3aXRoIGNvZGVjLm1pbWVU
eXBlIG1vZGlmaWVkIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3In
KTsKIApAQCAtMTM5LDcgKzEzOCw3IEBACiAgICAgICBjb2RlYy5jbG9ja1JhdGUgKz0gMTsKICAg
ICB9CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3InLAorICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3InLAogICAgICAgc2VuZGVyLnNldFBhcmFtZXRlcnMocGFyYW0pKTsKICAgfSwg
J3NldFBhcmFtZXRlcnMoKSB3aXRoIGNvZGVjLmNsb2NrUmF0ZSBtb2RpZmllZCBzaG91bGQgcmVq
ZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJyk7CiAKQEAgLTE1OSw3ICsxNTgsNyBA
QAogICAgICAgY29kZWMuY2hhbm5lbHMgKz0gMTsKICAgICB9CiAKLSAgICByZXR1cm4gcHJvbWlz
ZV9yZWplY3RzKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAorICAgIHJldHVybiBwcm9t
aXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAogICAgICAgc2Vu
ZGVyLnNldFBhcmFtZXRlcnMocGFyYW0pKTsKICAgfSwgJ3NldFBhcmFtZXRlcnMoKSB3aXRoIGNv
ZGVjLmNoYW5uZWxzIG1vZGlmaWVkIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3InKTsKIApAQCAtMTc5LDcgKzE3OCw3IEBACiAgICAgICBjb2RlYy5zZHBGbXRwTGlu
ZSA9IGAke2NvZGVjLnNkcEZtdHBMaW5lfTtmb289MWA7CiAgICAgfQogCi0gICAgcmV0dXJuIHBy
b21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKKyAgICByZXR1cm4g
cHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKICAgICAg
IHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtKSk7CiAgIH0sICdzZXRQYXJhbWV0ZXJzKCkgd2l0
aCBjb2RlYy5zZHBGbXRwTGluZSBtb2RpZmllZCBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yJyk7CiAKQEAgLTIwMCw3ICsxOTksNyBAQAogICAgICAgY2hhbm5lbHM6
IDIKICAgICB9KTsKIAotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2Rp
ZmljYXRpb25FcnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFs
aWRNb2RpZmljYXRpb25FcnJvcicsCiAgICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkp
OwogICB9LCAnc2V0UGFyYW1ldGVycygpIHdpdGggbmV3IGNvZGVjcyBpbnNlcnRlZCBzaG91bGQg
cmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJyk7CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBh
cmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMt
ZGVncmFkYXRpb25QcmVmZXJlbmNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZjg2MzFhMDk3MWUxNzQxYmM4ZjY1OGI4ZDMyMDIzODY3M2NkMDFkYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3Jh
ZGF0aW9uUHJlZmVyZW5jZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAg
QEAKLQotRkFJTCBzZXRQYXJhbWV0ZXJzIHdpdGggZGVncmFkYXRpb25QcmVmZXJlbmNlIHNldCBz
aG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJl
IHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCi1GQUlM
IHNldFBhcmFtZXRlcnMgd2l0aCBkZWdyYWRhdGlvblByZWZlcmVuY2UgdW5zZXQgc2hvdWxkIHN1
Y2NlZWQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBv
YmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdy
YWRhdGlvblByZWZlcmVuY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTJj
OTJiYzFjMDgxNGYyOTRlMWI5MTUzZmViYzc2ODg2Y2YyZmRiOS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVy
ZW5jZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPlJUQ1J0cFBhcmFtZXRlcnMgZGVncmFkYXRp
b25QcmVmZXJlbmNlPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJkaWN0aW9uYXJ5LWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iUlRDUnRwUGFyYW1ldGVycy1oZWxwZXIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZv
bGxvd2luZyBlZGl0b3IgZHJhZnQ6Ci0gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMt
cGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKLQotICAvLyBUaGUgZm9sbG93aW5nIGhl
bHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpz
OgotICAvLyAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycwotCi0gIC8qCi0gICAgNS4yLiAg
UlRDUnRwU2VuZGVyIEludGVyZmFjZQotICAgICAgaW50ZXJmYWNlIFJUQ1J0cFNlbmRlciB7Ci0g
ICAgICAgIFByb21pc2U8dm9pZD4gICAgICAgICAgIHNldFBhcmFtZXRlcnMob3B0aW9uYWwgUlRD
UnRwUGFyYW1ldGVycyBwYXJhbWV0ZXJzKTsKLSAgICAgICAgUlRDUnRwUGFyYW1ldGVycyAgICAg
ICAgZ2V0UGFyYW1ldGVycygpOwotICAgICAgfTsKLQotICAgICAgZGljdGlvbmFyeSBSVENSdHBQ
YXJhbWV0ZXJzIHsKLSAgICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHJhbnNhY3Rpb25JZDsKLSAgICAgICAgc2VxdWVuY2U8UlRDUnRwRW5jb2RpbmdQYXJh
bWV0ZXJzPiAgICAgICAgZW5jb2RpbmdzOwotICAgICAgICBzZXF1ZW5jZTxSVENSdHBIZWFkZXJF
eHRlbnNpb25QYXJhbWV0ZXJzPiBoZWFkZXJFeHRlbnNpb25zOwotICAgICAgICBSVENSdGNwUGFy
YW1ldGVycyAgICAgICAgICAgICAgICAgICAgICAgICBydGNwOwotICAgICAgICBzZXF1ZW5jZTxS
VENSdHBDb2RlY1BhcmFtZXRlcnM+ICAgICAgICAgICBjb2RlY3M7Ci0gICAgICAgIFJUQ0RlZ3Jh
ZGF0aW9uUHJlZmVyZW5jZSAgICAgICAgICAgICAgICAgIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZTsK
LSAgICAgIH07Ci0KLSAgICAgIGVudW0gUlRDRGVncmFkYXRpb25QcmVmZXJlbmNlIHsKLSAgICAg
ICAgIm1haW50YWluLWZyYW1lcmF0ZSIsCi0gICAgICAgICJtYWludGFpbi1yZXNvbHV0aW9uIiwK
LSAgICAgICAgImJhbGFuY2VkIgotICAgICAgfTsKLQotICAgICAgLSBkZWdyYWRhdGlvblByZWZl
cmVuY2UgaXMgc2V0IHRvIHRoZSBsYXN0IHZhbHVlIHBhc3NlZCBpbnRvIHNldFBhcmFtZXRlcnMs
Ci0gICAgICAgIG9yIHRoZSBkZWZhdWx0IHZhbHVlIG9mICJiYWxhbmNlZCIgaWYgc2V0UGFyYW1l
dGVycyBoYXNuJ3QgYmVlbiBjYWxsZWQuCi0gICAqLwotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsK
LSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgY29uc3QgeyBzZW5kZXIgfSA9IHBjLmFkZFRyYW5z
Y2VpdmVyKCdhdWRpbycpOwotCi0gICAgY29uc3QgcGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVy
cygpOwotICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJhbSk7Ci0KLSAgICBhc3Nl
cnRfZXF1YWxzKHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSwgJ2JhbGFuY2VkJywKLSAgICAg
ICdFeHBlY3QgaW5pdGlhbCBwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UgdG8gYmUgYmFsYW5j
ZWQnKTsKLQotICAgIHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSA9ICdtYWludGFpbi1mcmFt
ZXJhdGUnOwotCi0gICAgcmV0dXJuIHBjLnNldFBhcmFtZXRlcnMocGFyYW0pCi0gICAgLnRoZW4o
KCkgPT4gewotICAgICAgY29uc3QgcGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOwotICAg
ICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsKLQotICAgICAgYXNzZXJ0X2Vx
dWFscyhwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UsICdtYWludGFpbi1mcmFtZXJhdGUnKTsK
LSAgICB9KTsKLSAgfSwgJ3NldFBhcmFtZXRlcnMgd2l0aCBkZWdyYWRhdGlvblByZWZlcmVuY2Ug
c2V0IHNob3VsZCBzdWNjZWVkJyk7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKLSAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1
ZGlvJyk7Ci0KLSAgICBjb25zdCBwYXJhbSA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7Ci0gICAg
dmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsKLQotICAgIGFzc2VydF9lcXVhbHMo
cGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlLCAnYmFsYW5jZWQnLAotICAgICAgJ0V4cGVjdCBp
bml0aWFsIHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSB0byBiZSBiYWxhbmNlZCcpOwotCi0g
ICAgcGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlID0gdW5kZWZpbmVkOwotCi0gICAgcmV0dXJu
IHBjLnNldFBhcmFtZXRlcnMocGFyYW0pCi0gICAgLnRoZW4oKCkgPT4gewotICAgICAgY29uc3Qg
cGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOwotICAgICAgdmFsaWRhdGVTZW5kZXJSdHBQ
YXJhbWV0ZXJzKHBhcmFtKTsKLQotICAgICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5kZWdyYWRhdGlv
blByZWZlcmVuY2UsIHVuZGVmaW5lZCk7Ci0gICAgfSk7Ci0gIH0sICdzZXRQYXJhbWV0ZXJzIHdp
dGggZGVncmFkYXRpb25QcmVmZXJlbmNlIHVuc2V0IHNob3VsZCBzdWNjZWVkJyk7Ci0KLTwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1lbmNvZGluZ3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFy
YW1ldGVycy1lbmNvZGluZ3MtZXhwZWN0ZWQudHh0CmluZGV4IGFmZjA5N2I5YWUwOGYyNDYyMDRk
Y2U5Y2E4ZGQxOWFjY2U0ZWVjYTkuLjFmMjhkOTc4YmEyNWExM2Y1YTFiNjdmMGZkNzI1OTdhM2M3
MWMxMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2RpbmdzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBQYXJhbWV0ZXJzLWVuY29kaW5ncy1leHBlY3RlZC50eHQKQEAgLTcsMjAgKzcsMTAgQEAgRkFJ
TCBzZW5kZXIuc2V0UGFyYW1ldGVycygpIHdpdGggZW5jb2RpbmdzIHVuc2V0IHNob3VsZCByZWpl
Y3Qgd2l0aCBUeXBlRXJyb3IgYXMKIEZBSUwgc2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQg
ZW5jb2RpbmcucmlkIGZpZWxkIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3IgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBv
YmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgogRkFJTCBzZXRQYXJh
bWV0ZXJzKCkgd2l0aCBlbmNvZGluZy5zY2FsZVJlc29sdXRpb25Eb3duQnkgZmllbGQgc2V0IHRv
IGxlc3MgdGhhbiAxLjAgc2hvdWxkIHJlamVjdCB3aXRoIFJhbmdlRXJyb3IgYXNzZXJ0X2VxdWFs
czogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9i
amVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgogRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBlbmNv
ZGluZy5zY2FsZVJlc29sdXRpb25Eb3duQnkgZmllbGQgc2V0IHRvIGdyZWF0ZXIgdGhhbiAxLjAg
c2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBi
ZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJ
TCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5kdHggc2hvdWxkIHN1Y2Nl
ZWQgd2l0aCBSVENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rp
b25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAi
dW5kZWZpbmVkIgotRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5k
dHggc2hvdWxkIHN1Y2NlZWQgd2l0aG91dCBSVENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2Vx
dWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQg
Im9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCB1
bnNldCBlbmNvZGluZy5kdHggc2hvdWxkIHN1Y2NlZWQgd2l0aCBSVENSdHBUcmFuc2NlaXZlcklu
aXQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmpl
Y3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBzZXRQYXJhbWV0
ZXJzKCkgd2l0aCB1bnNldCBlbmNvZGluZy5kdHggc2hvdWxkIHN1Y2NlZWQgd2l0aG91dCBSVENS
dHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0
byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgog
RkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5hY3RpdmUgc2hvdWxk
IHN1Y2NlZWQgd2l0aCBSVENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2VxdWFsczogRXhwZWN0
IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0
IGdvdCAidW5kZWZpbmVkIgogRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNv
ZGluZy5hY3RpdmUgc2hvdWxkIHN1Y2NlZWQgd2l0aG91dCBSVENSdHBUcmFuc2NlaXZlckluaXQg
YXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3Qg
ZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBzZXRQYXJhbWV0ZXJz
KCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5wcmlvcml0eSBzaG91bGQgc3VjY2VlZCB3aXRoIFJU
Q1J0cFRyYW5zY2VpdmVySW5pdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5ydGNw
IHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQi
Ci1GQUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5nLnByaW9yaXR5IHNo
b3VsZCBzdWNjZWVkIHdpdGhvdXQgUlRDUnRwVHJhbnNjZWl2ZXJJbml0IGFzc2VydF9lcXVhbHM6
IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUgcGxhaW4gb2JqZWN0IGV4cGVjdGVkICJvYmpl
Y3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgc2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZp
ZWQgZW5jb2RpbmcubmV0d29ya1ByaW9yaXR5IHNob3VsZCBzdWNjZWVkIHdpdGggUlRDUnRwVHJh
bnNjZWl2ZXJJbml0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUg
cGxhaW4gb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwg
c2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2RpbmcubmV0d29ya1ByaW9yaXR5IHNo
b3VsZCBzdWNjZWVkIHdpdGhvdXQgUlRDUnRwVHJhbnNjZWl2ZXJJbml0IGFzc2VydF9lcXVhbHM6
IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUgcGxhaW4gb2JqZWN0IGV4cGVjdGVkICJvYmpl
Y3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgc2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZp
ZWQgZW5jb2RpbmcucHRpbWUgc2hvdWxkIHN1Y2NlZWQgd2l0aCBSVENSdHBUcmFuc2NlaXZlcklu
aXQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmpl
Y3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBzZXRQYXJhbWV0
ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5wdGltZSBzaG91bGQgc3VjY2VlZCB3aXRob3V0
IFJUQ1J0cFRyYW5zY2VpdmVySW5pdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5y
dGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmlu
ZWQiCiBGQUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5nLm1heEJpdHJh
dGUgc2hvdWxkIHN1Y2NlZWQgd2l0aCBSVENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2VxdWFs
czogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9i
amVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgogRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2Rp
ZmllZCBlbmNvZGluZy5tYXhCaXRyYXRlIHNob3VsZCBzdWNjZWVkIHdpdGhvdXQgUlRDUnRwVHJh
bnNjZWl2ZXJJbml0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUg
cGxhaW4gb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwg
c2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2RpbmcubWF4RnJhbWVyYXRlIHNob3Vs
ZCBzdWNjZWVkIHdpdGggUlRDUnRwVHJhbnNjZWl2ZXJJbml0IGFzc2VydF9lcXVhbHM6IEV4cGVj
dCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUgcGxhaW4gb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1
dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgc2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5j
b2RpbmcubWF4RnJhbWVyYXRlIHNob3VsZCBzdWNjZWVkIHdpdGhvdXQgUlRDUnRwVHJhbnNjZWl2
ZXJJbml0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUgcGxhaW4g
b2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgc2V0UGFy
YW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2Rpbmcuc2NhbGVSZXNvbHV0aW9uRG93bkJ5IHNo
b3VsZCBzdWNjZWVkIHdpdGggUlRDUnRwVHJhbnNjZWl2ZXJJbml0IGFzc2VydF9lcXVhbHM6IEV4
cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUgcGxhaW4gb2JqZWN0IGV4cGVjdGVkICJvYmplY3Qi
IGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgc2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQg
ZW5jb2Rpbmcuc2NhbGVSZXNvbHV0aW9uRG93bkJ5IHNob3VsZCBzdWNjZWVkIHdpdGhvdXQgUlRD
UnRwVHJhbnNjZWl2ZXJJbml0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3Ag
dG8gYmUgcGxhaW4gb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5j
b2RpbmdzLmh0bWwKaW5kZXggMGQzZDA4YTFhMmIxZDgxNDg5MTVmNTM4YjRkNTdkM2EzZWE2ZWVh
Mi4uNTM5YjI2OTI4MDY5MzQyNTRjNGVjNGI4ZDhiYjE0ZWYxMjk2MjA3ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWVuY29kaW5ncy5odG1s
CkBAIC00MSwxNyArNDEsMTEgQEAKICAgICAgICAgc2VxdWVuY2U8UlRDUnRwSGVhZGVyRXh0ZW5z
aW9uUGFyYW1ldGVycz4gaGVhZGVyRXh0ZW5zaW9uczsKICAgICAgICAgUlRDUnRjcFBhcmFtZXRl
cnMgICAgICAgICAgICAgICAgICAgICAgICAgcnRjcDsKICAgICAgICAgc2VxdWVuY2U8UlRDUnRw
Q29kZWNQYXJhbWV0ZXJzPiAgICAgICAgICAgY29kZWNzOwotICAgICAgICBSVENEZWdyYWRhdGlv
blByZWZlcmVuY2UgICAgICAgICAgICAgICAgICBkZWdyYWRhdGlvblByZWZlcmVuY2U7CiAgICAg
ICB9OwogCiAgICAgICBkaWN0aW9uYXJ5IFJUQ1J0cEVuY29kaW5nUGFyYW1ldGVycyB7Ci0gICAg
ICAgIFJUQ0R0eFN0YXR1cyAgICAgICAgZHR4OwogICAgICAgICBib29sZWFuICAgICAgICAgICAg
IGFjdGl2ZTsKLSAgICAgICAgUlRDUHJpb3JpdHlUeXBlICAgICBwcmlvcml0eTsKLSAgICAgICAg
UlRDUHJpb3JpdHlUeXBlICAgICBuZXR3b3JrUHJpb3JpdHk7Ci0gICAgICAgIHVuc2lnbmVkIGxv
bmcgICAgICAgcHRpbWU7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgbWF4Qml0cmF0ZTsK
LSAgICAgICAgZG91YmxlICAgICAgICAgICAgICBtYXhGcmFtZXJhdGU7CiAKICAgICAgICAgW3Jl
YWRvbmx5XQogICAgICAgICBET01TdHJpbmcgICAgICAgICAgIHJpZDsKQEAgLTU5LDMwICs1Mywx
MCBAQAogICAgICAgICBkb3VibGUgICAgICAgICAgICAgIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsK
ICAgICAgIH07CiAKLSAgICAgIGVudW0gUlRDRHR4U3RhdHVzIHsKLSAgICAgICAgImRpc2FibGVk
IiwKLSAgICAgICAgImVuYWJsZWQiCi0gICAgICB9OwotCi0gICAgICBlbnVtIFJUQ1ByaW9yaXR5
VHlwZSB7Ci0gICAgICAgICJ2ZXJ5LWxvdyIsCi0gICAgICAgICJsb3ciLAotICAgICAgICAibWVk
aXVtIiwKLSAgICAgICAgImhpZ2giCi0gICAgICB9OwotCiAgICAgICBnZXRQYXJhbWV0ZXJzCiAg
ICAgICAgIC0gZW5jb2RpbmdzIGlzIHNldCB0byB0aGUgdmFsdWUgb2YgdGhlIFtbc2VuZCBlbmNv
ZGluZ3NdXSBpbnRlcm5hbCBzbG90LgogICAgKi8KIAotICAvLyBHZXQgdGhlIGZpcnN0IGVuY29k
aW5nIGluIHBhcmFtLmVuY29kaW5ncy4KLSAgLy8gQXNzZXJ0cyB0aGF0IHBhcmFtLmVuY29kaW5n
cyBoYXMgYXQgbGVhc3Qgb25lIGVsZW1lbnQuCi0gIGZ1bmN0aW9uIGdldEZpcnN0RW5jb2Rpbmco
cGFyYW0pIHsKLSAgICBjb25zdCB7IGVuY29kaW5ncyB9ID0gcGFyYW07Ci0gICAgYXNzZXJ0X2Vx
dWFscyhlbmNvZGluZ3MubGVuZ3RoLCAxKTsKLSAgICByZXR1cm4gZW5jb2RpbmdzWzBdOwotICB9
Ci0KICAgLyoKICAgICA1LjEuICBhZGRUcmFuc2NlaXZlcgogICAgICAgNy4gQ3JlYXRlIGFuIFJU
Q1J0cFNlbmRlciB3aXRoIHRyYWNrLCBzdHJlYW1zIGFuZCBzZW5kRW5jb2RpbmdzIGFuZCBsZXQg
c2VuZGVyCkBAIC0xNDIsMTMgKzExNiw5IEBACiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgY29uc3QgeyBzZW5kZXIgfSA9IHBjLmFkZFRyYW5z
Y2VpdmVyKCdhdWRpbycsIHsKKyAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2
ZXIoJ3ZpZGVvJywgewogICAgICAgc2VuZEVuY29kaW5nczogW3sKLSAgICAgICAgZHR4OiAnZW5h
YmxlZCcsCiAgICAgICAgIGFjdGl2ZTogZmFsc2UsCi0gICAgICAgIHByaW9yaXR5OiAnbG93JywK
LSAgICAgICAgbmV0d29ya1ByaW9yaXR5OiAnbG93JywKLSAgICAgICAgcHRpbWU6IDUsCiAgICAg
ICAgIG1heEJpdHJhdGU6IDgsCiAgICAgICAgIG1heEZyYW1lcmF0ZTogMjUsCiAgICAgICAgIHJp
ZDogJ2ZvbycKQEAgLTE2MCwxNCArMTMwLDkgQEAKICAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFt
ZXRlcnMocGFyYW0pOwogICAgIGNvbnN0IGVuY29kaW5nID0gZ2V0Rmlyc3RFbmNvZGluZyhwYXJh
bSk7CiAKLSAgICBhc3NlcnRfZXF1YWxzKGVuY29kaW5nLmR0eCwgJ2VuYWJsZWQnKTsKICAgICBh
c3NlcnRfZXF1YWxzKGVuY29kaW5nLmFjdGl2ZSwgZmFsc2UpOwotICAgIGFzc2VydF9lcXVhbHMo
ZW5jb2RpbmcucHJpb3JpdHksICdsb3cnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGVuY29kaW5nLm5l
dHdvcmtQcmlvcml0eSwgJ2xvdycpOwotICAgIGFzc2VydF9lcXVhbHMoZW5jb2RpbmcucHRpbWUs
IDUpOwogICAgIGFzc2VydF9lcXVhbHMoZW5jb2RpbmcubWF4Qml0cmF0ZSwgOCk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhlbmNvZGluZy5tYXhGcmFtZXJhdGUsIDI1KTsKLSAgICBhc3NlcnRfZXF1YWxz
KGVuY29kaW5nLnJpZCwgJ2ZvbycpOworICAgIGFzc2VydF9ub3Rfb3duX3Byb3BlcnR5KGVuY29k
aW5nLCAicmlkIiwgInJpZCBzaG91bGQgYmUgcmVtb3ZlZCB3aXRoIGEgc2luZ2xlIGVuY29kaW5n
Iik7CiAKICAgfSwgYHNlbmRlci5nZXRQYXJhbWV0ZXJzKCkgc2hvdWxkIHJldHVybiBzZW5kRW5j
b2RpbmdzIHNldCBieSBhZGRUcmFuc2NlaXZlcigpYCk7CiAKQEAgLTE5OCw3ICsxNjMsNyBAQAog
ICAgIGVuY29kaW5ncy5wdXNoKHt9KTsKICAgICBhc3NlcnRfZXF1YWxzKHBhcmFtLmVuY29kaW5n
cy5sZW5ndGgsIDIpOwogCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yJywKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKICAgICAgIHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFt
KSk7CiAgIH0sIGBzZW5kZXIuc2V0UGFyYW1ldGVycygpIHdpdGggbWlzbWF0Y2ggbnVtYmVyIG9m
IGVuY29kaW5ncyBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7
CiAKQEAgLTIxMyw3ICsxNzgsNyBAQAogCiAgICAgcGFyYW0uZW5jb2RpbmdzID0gdW5kZWZpbmVk
OwogCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksCisgICAg
cmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0LCBUeXBlRXJyb3IsCiAgICAgICBzZW5kZXIuc2V0
UGFyYW1ldGVycyhwYXJhbSkpOwogICB9LCBgc2VuZGVyLnNldFBhcmFtZXRlcnMoKSB3aXRoIGVu
Y29kaW5ncyB1bnNldCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yYCk7CiAKQEAgLTIzMiw3
ICsxOTcsNyBAQAogICAgIGFzc2VydF9lcXVhbHMoZW5jb2RpbmcucmlkLCAnZm9vJyk7CiAKICAg
ICBlbmNvZGluZy5yaWQgPSAnYmFyJzsKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJ
bnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAorICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9t
KHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAogICAgICAgc2VuZGVyLnNldFBhcmFtZXRl
cnMocGFyYW0pKTsKICAgfSwgYHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5n
LnJpZCBmaWVsZCBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7
CiAKQEAgLTI1MywxNCArMjE4LDE0IEBACiAgICAgY29uc3QgZW5jb2RpbmcgPSBnZXRGaXJzdEVu
Y29kaW5nKHBhcmFtKTsKIAogICAgIGVuY29kaW5nLnNjYWxlUmVzb2x1dGlvbkRvd25CeSA9IDAu
NTsKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBSYW5nZUVycm9yKCksCisgICAg
cmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0LCBSYW5nZUVycm9yLAogICAgICAgc2VuZGVyLnNl
dFBhcmFtZXRlcnMocGFyYW0pKTsKICAgfSwgYHNldFBhcmFtZXRlcnMoKSB3aXRoIGVuY29kaW5n
LnNjYWxlUmVzb2x1dGlvbkRvd25CeSBmaWVsZCBzZXQgdG8gbGVzcyB0aGFuIDEuMCBzaG91bGQg
cmVqZWN0IHdpdGggUmFuZ2VFcnJvcmApOwogCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgY29uc3QgeyBzZW5kZXIgfSA9IHBjLmFkZFRyYW5z
Y2VpdmVyKCdhdWRpbycpOworICAgIGNvbnN0IHsgc2VuZGVyIH0gPSBwYy5hZGRUcmFuc2NlaXZl
cigndmlkZW8nKTsKICAgICBhd2FpdCBkb09mZmVyQW5zd2VyRXhjaGFuZ2UodCwgcGMpOwogCiAg
ICAgY29uc3QgcGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOwpAQCAtMjc4LDgwICsyNDMs
MTMgQEAKICAgICB9KTsKICAgfSwgYHNldFBhcmFtZXRlcnMoKSB3aXRoIGVuY29kaW5nLnNjYWxl
UmVzb2x1dGlvbkRvd25CeSBmaWVsZCBzZXQgdG8gZ3JlYXRlciB0aGFuIDEuMCBzaG91bGQgc3Vj
Y2VlZGApOwogCi0gIC8vIEhlbHBlciBmdW5jdGlvbiB0byB0ZXN0IHRoYXQgbW9kaWZ5aW5nIGFu
IGVuY29kaW5nIGZpZWxkIHNob3VsZCBzdWNjZWVkCi0gIGZ1bmN0aW9uIHRlc3RfbW9kaWZpZWRf
ZW5jb2Rpbmcoa2luZCwgZmllbGQsIHZhbHVlMSwgdmFsdWUyLCBkZXNjKSB7Ci0gICAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLSAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgICBjb25z
dCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoa2luZCwgewotICAgICAgICBzZW5kRW5j
b2RpbmdzOiBbewotICAgICAgICAgIFtmaWVsZF06IHZhbHVlMQotICAgICAgICB9XQotICAgICAg
fSk7Ci0gICAgICBhd2FpdCBkb09mZmVyQW5zd2VyRXhjaGFuZ2UodCwgcGMpOwotCi0gICAgICBj
b25zdCBwYXJhbTEgPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOwotICAgICAgdmFsaWRhdGVTZW5k
ZXJSdHBQYXJhbWV0ZXJzKHBhcmFtMSk7Ci0gICAgICBjb25zdCBlbmNvZGluZzEgPSBnZXRGaXJz
dEVuY29kaW5nKHBhcmFtMSk7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHMoZW5jb2RpbmcxW2ZpZWxk
XSwgdmFsdWUxKTsKLSAgICAgIGVuY29kaW5nMVtmaWVsZF0gPSB2YWx1ZTI7Ci0KLSAgICAgIGF3
YWl0IHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtMSk7Ci0gICAgICBjb25zdCBwYXJhbTIgPSBz
ZW5kZXIuZ2V0UGFyYW1ldGVycygpOwotICAgICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJz
KHBhcmFtMik7Ci0gICAgICBjb25zdCBlbmNvZGluZzIgPSBnZXRGaXJzdEVuY29kaW5nKHBhcmFt
Mik7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGVuY29kaW5nMltmaWVsZF0sIHZhbHVlMik7Ci0gICAg
fSwgZGVzYyArICcgd2l0aCBSVENSdHBUcmFuc2NlaXZlckluaXQnKTsKLQotICAgIHByb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKLSAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7Ci0gICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAgICAgY29uc3Qg
eyBzZW5kZXIgfSA9IHBjLmFkZFRyYW5zY2VpdmVyKGtpbmQpOwotICAgICAgYXdhaXQgZG9PZmZl
ckFuc3dlckV4Y2hhbmdlKHQsIHBjKTsKLQotICAgICAgY29uc3QgaW5pdFBhcmFtID0gc2VuZGVy
LmdldFBhcmFtZXRlcnMoKTsKLSAgICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhpbml0
UGFyYW0pOwotICAgICAgaW5pdFBhcmFtLmVuY29kaW5nc1swXVtmaWVsZF0gPSB2YWx1ZTE7Ci0g
ICAgICBhd2FpdCBzZW5kZXIuc2V0UGFyYW1ldGVycyhpbml0UGFyYW0pOwotCi0gICAgICBjb25z
dCBwYXJhbTEgPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOwotICAgICAgdmFsaWRhdGVTZW5kZXJS
dHBQYXJhbWV0ZXJzKHBhcmFtMSk7Ci0gICAgICBjb25zdCBlbmNvZGluZzEgPSBnZXRGaXJzdEVu
Y29kaW5nKHBhcmFtMSk7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHMoZW5jb2RpbmcxW2ZpZWxkXSwg
dmFsdWUxKTsKLSAgICAgIGVuY29kaW5nMVtmaWVsZF0gPSB2YWx1ZTI7Ci0KLSAgICAgIGF3YWl0
IHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtMSk7Ci0gICAgICBjb25zdCBwYXJhbTIgPSBzZW5k
ZXIuZ2V0UGFyYW1ldGVycygpOwotICAgICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKHBh
cmFtMik7Ci0gICAgICBjb25zdCBlbmNvZGluZzIgPSBnZXRGaXJzdEVuY29kaW5nKHBhcmFtMik7
Ci0gICAgICBhc3NlcnRfZXF1YWxzKGVuY29kaW5nMltmaWVsZF0sIHZhbHVlMik7Ci0gICAgfSwg
ZGVzYyArICcgd2l0aG91dCBSVENSdHBUcmFuc2NlaXZlckluaXQnKTsKLSAgfQotCi0gIHRlc3Rf
bW9kaWZpZWRfZW5jb2RpbmcoJ2F1ZGlvJywgJ2R0eCcsICdlbmFibGVkJywgJ2Rpc2FibGVkJywK
LSAgICAnc2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2RpbmcuZHR4IHNob3VsZCBz
dWNjZWVkJyk7Ci0KLSAgdGVzdF9tb2RpZmllZF9lbmNvZGluZygnYXVkaW8nLCAnZHR4JywgJ2Vu
YWJsZWQnLCB1bmRlZmluZWQsCi0gICAgJ3NldFBhcmFtZXRlcnMoKSB3aXRoIHVuc2V0IGVuY29k
aW5nLmR0eCBzaG91bGQgc3VjY2VlZCcpOwotCiAgIHRlc3RfbW9kaWZpZWRfZW5jb2RpbmcoJ2F1
ZGlvJywgJ2FjdGl2ZScsIGZhbHNlLCB0cnVlLAogICAgICdzZXRQYXJhbWV0ZXJzKCkgd2l0aCBt
b2RpZmllZCBlbmNvZGluZy5hY3RpdmUgc2hvdWxkIHN1Y2NlZWQnKTsKIAotICB0ZXN0X21vZGlm
aWVkX2VuY29kaW5nKCdhdWRpbycsICdwcmlvcml0eScsICd2ZXJ5LWxvdycsICdoaWdoJywKLSAg
ICAnc2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2RpbmcucHJpb3JpdHkgc2hvdWxk
IHN1Y2NlZWQnKTsKLQotICB0ZXN0X21vZGlmaWVkX2VuY29kaW5nKCdhdWRpbycsICduZXR3b3Jr
UHJpb3JpdHknLCAndmVyeS1sb3cnLCAnaGlnaCcsCi0gICAgJ3NldFBhcmFtZXRlcnMoKSB3aXRo
IG1vZGlmaWVkIGVuY29kaW5nLm5ldHdvcmtQcmlvcml0eSBzaG91bGQgc3VjY2VlZCcpOwotCi0g
IHRlc3RfbW9kaWZpZWRfZW5jb2RpbmcoJ2F1ZGlvJywgJ3B0aW1lJywgMiwgNCwKLSAgICAnc2V0
UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2RpbmcucHRpbWUgc2hvdWxkIHN1Y2NlZWQn
KTsKLQogICB0ZXN0X21vZGlmaWVkX2VuY29kaW5nKCdhdWRpbycsICdtYXhCaXRyYXRlJywgMTAw
MDAsIDIwMDAwLAogICAgICdzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5t
YXhCaXRyYXRlIHNob3VsZCBzdWNjZWVkJyk7CiAKLSAgdGVzdF9tb2RpZmllZF9lbmNvZGluZygn
dmlkZW8nLCAnbWF4RnJhbWVyYXRlJywgMjQsIDE2LAotICAgICdzZXRQYXJhbWV0ZXJzKCkgd2l0
aCBtb2RpZmllZCBlbmNvZGluZy5tYXhGcmFtZXJhdGUgc2hvdWxkIHN1Y2NlZWQnKTsKKyAgdGVz
dF9tb2RpZmllZF9lbmNvZGluZygndmlkZW8nLCAnc2NhbGVSZXNvbHV0aW9uRG93bkJ5JywgMiwg
NCwKKyAgICAnc2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2Rpbmcuc2NhbGVSZXNv
bHV0aW9uRG93bkJ5IHNob3VsZCBzdWNjZWVkJyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1oZWFkZXJFeHRlbnNpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlYWRlckV4dGVu
c2lvbnMuaHRtbAppbmRleCA1Y2VjMDU5ZWI3ZmNiMDhjOTRjOWVkZjQ1OWMxOTE2MTQwMDQwNzE4
Li43ZGUyYjc1ZjRlZTg1YjMzOGQ2YjM2ZmY3YzEyYzViMTdiYjYxNzc5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQ
YXJhbWV0ZXJzLWhlYWRlckV4dGVuc2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlYWRlckV4
dGVuc2lvbnMuaHRtbApAQCAtMjcsNyArMjcsNiBAQAogICAgICAgICBzZXF1ZW5jZTxSVENSdHBI
ZWFkZXJFeHRlbnNpb25QYXJhbWV0ZXJzPiBoZWFkZXJFeHRlbnNpb25zOwogICAgICAgICBSVENS
dGNwUGFyYW1ldGVycyAgICAgICAgICAgICAgICAgICAgICAgICBydGNwOwogICAgICAgICBzZXF1
ZW5jZTxSVENSdHBDb2RlY1BhcmFtZXRlcnM+ICAgICAgICAgICBjb2RlY3M7Ci0gICAgICAgIFJU
Q0RlZ3JhZGF0aW9uUHJlZmVyZW5jZSAgICAgICAgICAgICAgICAgIGRlZ3JhZGF0aW9uUHJlZmVy
ZW5jZTsKICAgICAgIH07CiAKICAgICAgIGRpY3Rpb25hcnkgUlRDUnRwSGVhZGVyRXh0ZW5zaW9u
UGFyYW1ldGVycyB7CkBAIC02OCw3ICs2Nyw3IEBACiAgICAgICBlbmNyeXB0ZWQ6IGZhbHNlCiAg
ICAgfV07CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3InLAorICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkTW9k
aWZpY2F0aW9uRXJyb3InLAogICAgICAgc2VuZGVyLnNldFBhcmFtZXRlcnMocGFyYW0pKTsKICAg
fSwgYHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGhlYWRlckV4dGVuc2lvbnMgc2hvdWxk
IHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQ
YXJhbWV0ZXJzLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpzCmluZGV4IGQ3MDY5NDkz
MDA4NjU5MGFiMzYxNmMxY2RlMGZlYzQxOWMxYjYzZGEuLjE3ZWNmYmFmOTllOGZmMTMzMzczZjE0
ODdhMjgyZGJhYWI3NTYyZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpzCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFBhcmFtZXRlcnMtaGVscGVyLmpzCkBAIC00Niw5ICs0Niw2IEBAIGFzeW5jIGZ1bmN0aW9uIGRv
T2ZmZXJBbnN3ZXJFeGNoYW5nZSh0LCBjYWxsZXIpIHsKIAogICAgICAgLSBydGNwLmNuYW1lIGlz
IHNldCB0byB0aGUgQ05BTUUgb2YgdGhlIGFzc29jaWF0ZWQgUlRDUGVlckNvbm5lY3Rpb24uIHJ0
Y3AucmVkdWNlZFNpemUKICAgICAgICAgaXMgc2V0IHRvIHRydWUgaWYgcmVkdWNlZC1zaXplIFJU
Q1AgaGFzIGJlZW4gbmVnb3RpYXRlZCBmb3Igc2VuZGluZywgYW5kIGZhbHNlIG90aGVyd2lzZS4K
LQotICAgICAgLSBkZWdyYWRhdGlvblByZWZlcmVuY2UgaXMgc2V0IHRvIHRoZSBsYXN0IHZhbHVl
IHBhc3NlZCBpbnRvIHNldFBhcmFtZXRlcnMsIG9yIHRoZQotICAgICAgICBkZWZhdWx0IHZhbHVl
IG9mICJiYWxhbmNlZCIgaWYgc2V0UGFyYW1ldGVycyBoYXNuJ3QgYmVlbiBjYWxsZWQuCiAgKi8K
IGZ1bmN0aW9uIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJhbSkgewogICB2YWxpZGF0
ZVJ0cFBhcmFtZXRlcnMocGFyYW0pOwpAQCAtODAsNyArNzcsNyBAQCBmdW5jdGlvbiB2YWxpZGF0
ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0pIHsKICAgICAgIC0gcnRjcC5yZWR1Y2VkU2l6ZSBp
cyBzZXQgdG8gdHJ1ZSBpZiB0aGUgcmVjZWl2ZXIgaXMgY3VycmVudGx5IHByZXBhcmVkIHRvIHJl
Y2VpdmUKICAgICAgICAgcmVkdWNlZC1zaXplIFJUQ1AgcGFja2V0cywgYW5kIGZhbHNlIG90aGVy
d2lzZS4gcnRjcC5jbmFtZSBpcyBsZWZ0IHVuZGVmaW5lZC4KIAotICAgICAgLSB0cmFuc2FjdGlv
bklkIGFuZCBkZWdyYWRhdGlvblByZWZlcmVuY2UgYXJlIGxlZnQgdW5kZWZpbmVkLgorICAgICAg
LSB0cmFuc2FjdGlvbklkIGlzIGxlZnQgdW5kZWZpbmVkLgogICovCiBmdW5jdGlvbiB2YWxpZGF0
ZVJlY2VpdmVyUnRwUGFyYW1ldGVycyhwYXJhbSkgewogICB2YWxpZGF0ZVJ0cFBhcmFtZXRlcnMo
cGFyYW0pOwpAQCAtOTMsOSArOTAsNiBAQCBmdW5jdGlvbiB2YWxpZGF0ZVJlY2VpdmVyUnRwUGFy
YW1ldGVycyhwYXJhbSkgewogCiAgIGFzc2VydF9lcXVhbHMocGFyYW0ucnRjcC5jbmFtZSwgdW5k
ZWZpbmVkLAogICAgICdFeHBlY3QgcmVjZWl2ZXIgcGFyYW0ucnRjcC5jbmFtZSB0byBiZSB1bnNl
dCcpOwotCi0gIGFzc2VydF9lcXVhbHMocGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlLCB1bmRl
ZmluZWQsCi0gICAgJ0V4cGVjdCByZWNlaXZlciBwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2Ug
dG8gYmUgdW5zZXQnKTsKIH0KIAogLyoKQEAgLTEwNSw3ICs5OSw2IEBAIGZ1bmN0aW9uIHZhbGlk
YXRlUmVjZWl2ZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAgICAgc2VxdWVuY2U8UlRDUnRwSGVh
ZGVyRXh0ZW5zaW9uUGFyYW1ldGVycz4gaGVhZGVyRXh0ZW5zaW9uczsKICAgICBSVENSdGNwUGFy
YW1ldGVycyAgICAgICAgICAgICAgICAgICAgICAgICBydGNwOwogICAgIHNlcXVlbmNlPFJUQ1J0
cENvZGVjUGFyYW1ldGVycz4gICAgICAgICAgIGNvZGVjczsKLSAgICBSVENEZWdyYWRhdGlvblBy
ZWZlcmVuY2UgICAgICAgICAgICAgICAgICBkZWdyYWRhdGlvblByZWZlcmVuY2U7CiAgIH07CiAK
ICAgZW51bSBSVENEZWdyYWRhdGlvblByZWZlcmVuY2UgewpAQCAtMTM0LDkgKzEyNyw2IEBAIGZ1
bmN0aW9uIHZhbGlkYXRlUnRwUGFyYW1ldGVycyhwYXJhbSkgewogICBmb3IoY29uc3QgY29kZWMg
b2YgcGFyYW0uY29kZWNzKSB7CiAgICAgdmFsaWRhdGVDb2RlY1BhcmFtZXRlcnMoY29kZWMpOwog
ICB9Ci0KLSAgYXNzZXJ0X29wdGlvbmFsX2VudW1fZmllbGQocGFyYW0sICdkZWdyYWRhdGlvblBy
ZWZlcmVuY2UnLAotICAgIFsnbWFpbnRhaW4tZnJhbWVyYXRlJywgJ21haW50YWluLXJlc29sdXRp
b24nLCAnYmFsYW5jZWQnXSk7CiB9CiAKIC8qCkBAIC0yNDIsMyArMjMyLDY5IEBAIGZ1bmN0aW9u
IHZhbGlkYXRlQ29kZWNQYXJhbWV0ZXJzKGNvZGVjKSB7CiAgIGFzc2VydF9vcHRpb25hbF91bnNp
Z25lZF9pbnRfZmllbGQoY29kZWMsICdjaGFubmVscycpOwogICBhc3NlcnRfb3B0aW9uYWxfc3Ry
aW5nX2ZpZWxkKGNvZGVjLCAnc2RwRm10cExpbmUnKTsKIH0KKworLy8gR2V0IHRoZSBmaXJzdCBl
bmNvZGluZyBpbiBwYXJhbS5lbmNvZGluZ3MuCisvLyBBc3NlcnRzIHRoYXQgcGFyYW0uZW5jb2Rp
bmdzIGhhcyBhdCBsZWFzdCBvbmUgZWxlbWVudC4KK2Z1bmN0aW9uIGdldEZpcnN0RW5jb2Rpbmco
cGFyYW0pIHsKKyAgY29uc3QgeworICAgIGVuY29kaW5ncworICB9ID0gcGFyYW07CisgIGFzc2Vy
dF9lcXVhbHMoZW5jb2RpbmdzLmxlbmd0aCwgMSk7CisgIHJldHVybiBlbmNvZGluZ3NbMF07Cit9
CisKKy8vIEhlbHBlciBmdW5jdGlvbiB0byB0ZXN0IHRoYXQgbW9kaWZ5aW5nIGFuIGVuY29kaW5n
IGZpZWxkIHNob3VsZCBzdWNjZWVkCitmdW5jdGlvbiB0ZXN0X21vZGlmaWVkX2VuY29kaW5nKGtp
bmQsIGZpZWxkLCB2YWx1ZTEsIHZhbHVlMiwgZGVzYykgeworICBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IHsKKyAgICAgIHNlbmRlcgor
ICAgIH0gPSBwYy5hZGRUcmFuc2NlaXZlcihraW5kLCB7CisgICAgICBzZW5kRW5jb2RpbmdzOiBb
eworICAgICAgICBbZmllbGRdOiB2YWx1ZTEKKyAgICAgIH1dCisgICAgfSk7CisgICAgYXdhaXQg
ZG9PZmZlckFuc3dlckV4Y2hhbmdlKHQsIHBjKTsKKworICAgIGNvbnN0IHBhcmFtMSA9IHNlbmRl
ci5nZXRQYXJhbWV0ZXJzKCk7CisgICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFt
MSk7CisgICAgY29uc3QgZW5jb2RpbmcxID0gZ2V0Rmlyc3RFbmNvZGluZyhwYXJhbTEpOworCisg
ICAgYXNzZXJ0X2VxdWFscyhlbmNvZGluZzFbZmllbGRdLCB2YWx1ZTEpOworICAgIGVuY29kaW5n
MVtmaWVsZF0gPSB2YWx1ZTI7CisKKyAgICBhd2FpdCBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJh
bTEpOworICAgIGNvbnN0IHBhcmFtMiA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7CisgICAgdmFs
aWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFtMik7CisgICAgY29uc3QgZW5jb2RpbmcyID0g
Z2V0Rmlyc3RFbmNvZGluZyhwYXJhbTIpOworICAgIGFzc2VydF9lcXVhbHMoZW5jb2RpbmcyW2Zp
ZWxkXSwgdmFsdWUyKTsKKyAgfSwgZGVzYyArICcgd2l0aCBSVENSdHBUcmFuc2NlaXZlckluaXQn
KTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwor
ICAgIGNvbnN0IHsKKyAgICAgIHNlbmRlcgorICAgIH0gPSBwYy5hZGRUcmFuc2NlaXZlcihraW5k
KTsKKyAgICBhd2FpdCBkb09mZmVyQW5zd2VyRXhjaGFuZ2UodCwgcGMpOworCisgICAgY29uc3Qg
aW5pdFBhcmFtID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgICB2YWxpZGF0ZVNlbmRlclJ0
cFBhcmFtZXRlcnMoaW5pdFBhcmFtKTsKKyAgICBpbml0UGFyYW0uZW5jb2RpbmdzWzBdW2ZpZWxk
XSA9IHZhbHVlMTsKKyAgICBhd2FpdCBzZW5kZXIuc2V0UGFyYW1ldGVycyhpbml0UGFyYW0pOwor
CisgICAgY29uc3QgcGFyYW0xID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgICB2YWxpZGF0
ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0xKTsKKyAgICBjb25zdCBlbmNvZGluZzEgPSBnZXRG
aXJzdEVuY29kaW5nKHBhcmFtMSk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGVuY29kaW5nMVtmaWVs
ZF0sIHZhbHVlMSk7CisgICAgZW5jb2RpbmcxW2ZpZWxkXSA9IHZhbHVlMjsKKworICAgIGF3YWl0
IHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtMSk7CisgICAgY29uc3QgcGFyYW0yID0gc2VuZGVy
LmdldFBhcmFtZXRlcnMoKTsKKyAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0y
KTsKKyAgICBjb25zdCBlbmNvZGluZzIgPSBnZXRGaXJzdEVuY29kaW5nKHBhcmFtMik7CisgICAg
YXNzZXJ0X2VxdWFscyhlbmNvZGluZzJbZmllbGRdLCB2YWx1ZTIpOworICB9LCBkZXNjICsgJyB3
aXRob3V0IFJUQ1J0cFRyYW5zY2VpdmVySW5pdCcpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVy
cy1ydGNwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLXJ0Y3AuaHRtbAppbmRleCBjNDBlZGYyNTY5ODg0MmNi
OGU3YTAyNmIxNTYzZGQ1YzYwMmY2Njg5Li43OTY1MzA0NTIwMGU2NjdmNDA1YTc0OWFlNmY1MWEw
ODNkYzFmOTlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLXJ0Y3AuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0
ZXJzLXJ0Y3AuaHRtbApAQCAtMjcsNyArMjcsNiBAQAogICAgICAgICBzZXF1ZW5jZTxSVENSdHBI
ZWFkZXJFeHRlbnNpb25QYXJhbWV0ZXJzPiBoZWFkZXJFeHRlbnNpb25zOwogICAgICAgICBSVENS
dGNwUGFyYW1ldGVycyAgICAgICAgICAgICAgICAgICAgICAgICBydGNwOwogICAgICAgICBzZXF1
ZW5jZTxSVENSdHBDb2RlY1BhcmFtZXRlcnM+ICAgICAgICAgICBjb2RlY3M7Ci0gICAgICAgIFJU
Q0RlZ3JhZGF0aW9uUHJlZmVyZW5jZSAgICAgICAgICAgICAgICAgIGRlZ3JhZGF0aW9uUHJlZmVy
ZW5jZTsKICAgICAgIH07CiAKICAgICAgIGRpY3Rpb25hcnkgUlRDUnRjcFBhcmFtZXRlcnMgewpA
QCAtNzQsNyArNzMsNyBAQAogICAgICAgcnRjcC5jbmFtZSA9IGAke3J0Y3AuY25hbWV9LW1vZGlm
aWVkYDsKICAgICB9CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkTW9k
aWZpY2F0aW9uRXJyb3InLAorICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZh
bGlkTW9kaWZpY2F0aW9uRXJyb3InLAogICAgICAgc2VuZGVyLnNldFBhcmFtZXRlcnMocGFyYW0p
KTsKICAgfSwgYHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIHJ0Y3AuY25hbWUgc2hvdWxk
IHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwogCkBAIC05OCw3ICs5Nyw3
IEBACiAgICAgICBydGNwLnJlZHVjZWRTaXplID0gIXJ0Y3AucmVkdWNlZFNpemU7CiAgICAgfQog
Ci0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9y
JywKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZE1vZGlmaWNhdGlv
bkVycm9yJywKICAgICAgIHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtKSk7CiAgIH0sIGBzZXRQ
YXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBydGNwLnJlZHVjZWRTaXplIHNob3VsZCByZWplY3Qg
d2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVy
cy10cmFuc2FjdGlvbklkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLXRyYW5zYWN0aW9uSWQuaHRtbAppbmRl
eCA0NzJiMDQzOWI1Y2M3N2Q1NTNiNDgwMDBmNmE3ZGUzZGRhOTBiN2Q0Li5hN2I3ODY1NTMyYjg3
N2UxN2JmMTdlZGFiMGFiNDRlYzNjYTI4OGQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLXRyYW5z
YWN0aW9uSWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLXRyYW5zYWN0aW9uSWQuaHRtbApAQCAtNDgs
NyArNDgsNiBAQAogICAgICAgICBzZXF1ZW5jZTxSVENSdHBIZWFkZXJFeHRlbnNpb25QYXJhbWV0
ZXJzPiBoZWFkZXJFeHRlbnNpb25zOwogICAgICAgICBSVENSdGNwUGFyYW1ldGVycyAgICAgICAg
ICAgICAgICAgICAgICAgICBydGNwOwogICAgICAgICBzZXF1ZW5jZTxSVENSdHBDb2RlY1BhcmFt
ZXRlcnM+ICAgICAgICAgICBjb2RlY3M7Ci0gICAgICAgIFJUQ0RlZ3JhZGF0aW9uUHJlZmVyZW5j
ZSAgICAgICAgICAgICAgICAgIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZTsKICAgICAgIH07CiAKICAg
ICAgIGdldFBhcmFtZXRlcnMKQEAgLTYzLDYgKzYyLDcgQEAKICAgICovCiAgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgeyBzZW5kZXIg
fSA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGF3YWl0IGRvT2ZmZXJBbnN3ZXJF
eGNoYW5nZSh0LCBwYyk7CiAKQEAgLTczLDcgKzczLDYgQEAKICAgICB2YWxpZGF0ZVNlbmRlclJ0
cFBhcmFtZXRlcnMocGFyYW0yKTsKIAogICAgIGFzc2VydF9ub3RfZXF1YWxzKHBhcmFtMS50cmFu
c2FjdGlvbklkLCBwYXJhbTIudHJhbnNhY3Rpb25JZCk7Ci0KICAgfSwgYHNlbmRlci5nZXRQYXJh
bWV0ZXJzKCkgc2hvdWxkIHJldHVybiBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gSURzIGZvciBlYWNo
IGNhbGxgKTsKIAogICAvKgpAQCAtOTcsNyArOTYsNyBAQAogICAgIGNvbnN0IHsgdHJhbnNhY3Rp
b25JZCB9ID0gcGFyYW07CiAgICAgcGFyYW0udHJhbnNhY3Rpb25JZCA9IGAke3RyYW5zYWN0aW9u
SWR9LW1vZGlmaWVkYDsKIAotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRN
b2RpZmljYXRpb25FcnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0lu
dmFsaWRNb2RpZmljYXRpb25FcnJvcicsCiAgICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJh
bSkpOwogICB9LCBgc2VuZGVyLnNldFBhcmFtZXRlcnMoKSB3aXRoIHRyYW5zYWN0aW9uIElEIGRp
ZmZlcmVudCBmcm9tIGxhc3QgZ2V0UGFyYW1ldGVycygpIHNob3VsZCByZWplY3Qgd2l0aCBJbnZh
bGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIApAQCAtMTEyLDcgKzExMSw3IEBACiAKICAgICBwYXJh
bS50cmFuc2FjdGlvbklkID0gdW5kZWZpbmVkOwogCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0
cyh0LCBuZXcgVHlwZUVycm9yKCksCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0LCBU
eXBlRXJyb3IsCiAgICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkpOwogICB9LCBgc2Vu
ZGVyLnNldFBhcmFtZXRlcnMoKSB3aXRoIHRyYW5zYWN0aW9uIElEIHVuc2V0IHNob3VsZCByZWpl
Y3Qgd2l0aCBUeXBlRXJyb3JgKTsKIApAQCAtMTI3LDcgKzEyNiw3IEBACiAKICAgICByZXR1cm4g
c2VuZGVyLnNldFBhcmFtZXRlcnMocGFyYW0pCiAgICAgLnRoZW4oKCkgPT4KLSAgICAgIHByb21p
c2VfcmVqZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgcHJvbWlzZV9yZWplY3Rz
X2RvbSh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAogICAgICAgICBzZW5kZXIuc2V0UGFyYW1ldGVy
cyhwYXJhbSkpKTsKICAgfSwgYHNldFBhcmFtZXRlcnMoKSB0d2ljZSB3aXRoIHRoZSBzYW1lIHBh
cmFtZXRlcnMgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yYCk7CiAKQEAgLTE0
NSw3ICsxNDQsNyBAQAogCiAgICAgYXNzZXJ0X25vdF9lcXVhbHMocGFyYW0xLnRyYW5zYWN0aW9u
SWQsIHBhcmFtMi50cmFuc2FjdGlvbklkKTsKIAotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMo
dCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0
c19kb20odCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCiAgICAgICBzZW5kZXIuc2V0UGFy
YW1ldGVycyhwYXJhbTEpKTsKICAgfSwgYHNldFBhcmFtZXRlcnMoKSB3aXRoIHBhcmFtZXRlcnMg
b2xkZXIgdGhhbiBsYXN0IGdldFBhcmFtZXRlcnMoKSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldENvbnRyaWJ1
dGluZ1NvdXJjZXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldENvbnRyaWJ1dGluZ1NvdXJjZXMu
aHR0cHMuaHRtbAppbmRleCBhYTU5ZjFiOTEwYWNhMTRiMjEwMWIwNjM2NTRhMTdkMTYwMmJhMjZi
Li43MjQ1ZDQ3N2NjODk5NDA5OGUxZDBhZjJhOGE1ZGRiZjJmNTc2MjBlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBS
ZWNlaXZlci1nZXRDb250cmlidXRpbmdTb3VyY2VzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXIt
Z2V0Q29udHJpYnV0aW5nU291cmNlcy5odHRwcy5odG1sCkBAIC0xMyw3ICsxMyw3IEBAIGFzeW5j
IGZ1bmN0aW9uIGNvbm5lY3RBbmRFeHBlY3ROb0NzcmNzKHQsIGtpbmQpIHsKICAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOwogCi0gIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHtba2luZF06dHJ1ZX0pOworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXRO
b2lzZVN0cmVhbSh7W2tpbmRdOnRydWV9KTsKICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRU
cmFja3MoKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiB0cmFjay5zdG9wKCkpOwogICBwYzEuYWRk
VHJhY2sodHJhY2ssIHN0cmVhbSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLmh0bWwKaW5kZXggN2Y4YWM2NzNhNjBjNzM2
ODExMjJkZjUyNDNmNjA1NGI4MmYzMWZmZi4uNGJlMGUzYjk1ZWM0NWJkOTY5M2E0ZGEzOGIxNDZj
NThiMzc4MTBmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0UGFyYW1ldGVycy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMuaHRtbApAQCAtMzAsOSArMzAsNyBAQAogCiAgICAgICAg
IC0gcnRjcC5yZWR1Y2VkU2l6ZSBpcyBzZXQgdG8gdHJ1ZSBpZiB0aGUgcmVjZWl2ZXIgaXMgY3Vy
cmVudGx5IHByZXBhcmVkIHRvIHJlY2VpdmUKICAgICAgICAgICByZWR1Y2VkLXNpemUgUlRDUCBw
YWNrZXRzLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLiBydGNwLmNuYW1lIGlzIGxlZnQgdW5kZWZpbmVk
LgotCi0gICAgICAgIC0gdHJhbnNhY3Rpb25JZCBhbmQgZGVncmFkYXRpb25QcmVmZXJlbmNlIGFy
ZSBsZWZ0IHVuZGVmaW5lZC4KLSAgICovCisgICovCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTdGF0cy5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3RhdHMuaHR0cHMuaHRtbAppbmRleCA3Y2Q1OTgzOTM3
MDhiNTAxZTBiM2RiZDQ5ZDMxZWRhODIzMGRhZTg4Li4yMDQ0OGQ4YTZjMTBiMjAxNjhjNDg5MGFh
ZDJiMzc5NzUyMTliNmRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTdGF0cy5odHRwcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFJlY2VpdmVyLWdldFN0YXRzLmh0dHBzLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAg
Ly8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1zdGF0cy9hcmNoaXZlcy8yMDE3MDYxNC93
ZWJydGMtc3RhdHMuaHRtbAogCiAgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBh
cmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgotICAvLyAgIGRvU2ln
bmFsaW5nSGFuZHNoYWtlCisgIC8vICAgZXhjaGFuZ2VPZmZlckFuc3dlcgogCiAgIC8vIFRoZSBm
b2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIFJUQ1N0YXRzLWhlbHBlci5q
cwogICAvLyAgIHZhbGlkYXRlU3RhdHNSZXBvcnQKQEAgLTU3LDcgKzU3LDcgQEAKIAogICAgIGNv
bnN0IHsgcmVjZWl2ZXIgfSA9IGNhbGxlci5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKIAotICAg
IGF3YWl0IGRvU2lnbmFsaW5nSGFuZHNoYWtlKGNhbGxlciwgY2FsbGVlKTsKKyAgICBhd2FpdCBl
eGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKICAgICBjb25zdCBzdGF0c1JlcG9y
dCA9IGF3YWl0IHJlY2VpdmVyLmdldFN0YXRzKCk7CiAgICAgdmFsaWRhdGVTdGF0c1JlcG9ydChz
dGF0c1JlcG9ydCk7CiAgICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBv
cnQsIFsnaW5ib3VuZC1ydHAnXSk7CkBAIC03Myw3ICs3Myw3IEBACiAgICAgY29uc3QgW3RyYWNr
XSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgICBjYWxsZXIuYWRkVHJhY2sodHJhY2ssIHN0cmVh
bSk7CiAKLSAgICBhd2FpdCBkb1NpZ25hbGluZ0hhbmRzaGFrZShjYWxsZXIsIGNhbGxlZSk7Cisg
ICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7CiAgICAgY29uc3Qg
cmVjZWl2ZXIgPSBjYWxsZWUuZ2V0UmVjZWl2ZXJzKClbMF07CiAgICAgY29uc3Qgc3RhdHNSZXBv
cnQgPSBhd2FpdCByZWNlaXZlci5nZXRTdGF0cygpOwogICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQo
c3RhdHNSZXBvcnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3luY2hyb25pemF0aW9uU291
cmNlcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3Vy
Y2VzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBjOWIzZmRjZTMzZGI1OTRkNTA2ZDIzYTNkN2M5
NTJmMjQ4NGQzZmFjLi4zN2VhOGMxNTI0ZTZmZjFhZWZlYzNjNGJlOTRkMDkxMmM2NThiOTI5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMSwxMSArMSwxMyBAQAogCiBQQVNTIFthdWRpb10gZ2V0U3luY2hyb25p
emF0aW9uU291cmNlcygpIGV2ZW50dWFsbHkgcmV0dXJucyBhIG5vbi1lbXB0eSBsaXN0IAogUEFT
UyBbYXVkaW9dIFJUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS50aW1lc3RhbXAgaXMgYSBudW1i
ZXIgCitGQUlMIFthdWRpb10gUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLnJ0cFRpbWVzdGFt
cCBpcyBhIG51bWJlciBbMCwgMl4zMi0xXSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibnVtYmVy
IiBidXQgZ290ICJ1bmRlZmluZWQiCiBQQVNTIFthdWRpb10gZ2V0U3luY2hyb25pemF0aW9uU291
cmNlcygpIGRvZXMgbm90IGNvbnRhaW4gU1NSQ3Mgb2xkZXIgdGhhbiAxMCBzZWNvbmRzIAogRkFJ
TCBbYXVkaW9dIFJUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS50aW1lc3RhbXAgaXMgY29tcGFy
YWJsZSB0byBwZXJmb3JtYW5jZS50aW1lT3JpZ2luICsgcGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIFthdWRpb10gUlRDUnRwU3luY2hy
b25pemF0aW9uU291cmNlLnNvdXJjZSBpcyBhIG51bWJlciAKIFBBU1MgW3ZpZGVvXSBnZXRTeW5j
aHJvbml6YXRpb25Tb3VyY2VzKCkgZXZlbnR1YWxseSByZXR1cm5zIGEgbm9uLWVtcHR5IGxpc3Qg
CiBQQVNTIFt2aWRlb10gUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLnRpbWVzdGFtcCBpcyBh
IG51bWJlciAKK0ZBSUwgW3ZpZGVvXSBSVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UucnRwVGlt
ZXN0YW1wIGlzIGEgbnVtYmVyIFswLCAyXjMyLTFdIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJu
dW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5lZCIKIFBBU1MgW3ZpZGVvXSBnZXRTeW5jaHJvbml6YXRp
b25Tb3VyY2VzKCkgZG9lcyBub3QgY29udGFpbiBTU1JDcyBvbGRlciB0aGFuIDEwIHNlY29uZHMg
CiBGQUlMIFt2aWRlb10gUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLnRpbWVzdGFtcCBpcyBj
b21wYXJhYmxlIHRvIHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gKyBwZXJmb3JtYW5jZS5ub3coKSBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgW3ZpZGVvXSBSVENSdHBT
eW5jaHJvbml6YXRpb25Tb3VyY2Uuc291cmNlIGlzIGEgbnVtYmVyIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVj
ZWl2ZXItZ2V0U3luY2hyb25pemF0aW9uU291cmNlcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0
U3luY2hyb25pemF0aW9uU291cmNlcy5odHRwcy5odG1sCmluZGV4IDgyY2UzYmQ4NDY3YjZhMjll
NGI0MGExMDUxNTFiNTAzMTRiNWJmNDYuLjg0MzZhNDRlYmNkMjI3ZmE5MzRjZWJhNTQ4ODkxOGIx
MGQ5MmFjZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFN5bmNocm9uaXphdGlvblNvdXJjZXMu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzLmh0dHBz
Lmh0bWwKQEAgLTE1LDcgKzE1LDcgQEAgYXN5bmMgZnVuY3Rpb24gaW5pdGlhdGVTaW5nbGVUcmFj
a0NhbGxBbmRSZXR1cm5SZWNlaXZlcih0LCBraW5kKSB7CiAgIGNvbnN0IHBjMiA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAot
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7W2tpbmRdOnRydWV9KTsKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0o
e1traW5kXTp0cnVlfSk7CiAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gdHJhY2suc3RvcCgpKTsKICAgcGMxLmFkZFRyYWNrKHRyYWNr
LCBzdHJlYW0pOwpAQCAtNDEsNiArNDEsMTUgQEAgZm9yIChjb25zdCBraW5kIG9mIFsnYXVkaW8n
LCAndmlkZW8nXSkgewogICAgIGFzc2VydF90cnVlKHNzcmMudGltZXN0YW1wID49IHN0YXJ0VGlt
ZSk7CiAgIH0sICdbJyArIGtpbmQgKyAnXSBSVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UudGlt
ZXN0YW1wIGlzIGEgbnVtYmVyJyk7CiAKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAg
IGNvbnN0IHJlY2VpdmVyID0gYXdhaXQgaW5pdGlhdGVTaW5nbGVUcmFja0NhbGxBbmRSZXR1cm5S
ZWNlaXZlcih0LCBraW5kKTsKKyAgICBjb25zdCBbc3NyY10gPSBhd2FpdCBsaXN0ZW5Gb3JTU1JD
cyh0LCByZWNlaXZlcik7CisgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Ygc3NyYy5ydHBUaW1lc3Rh
bXAsICdudW1iZXInKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKHNzcmMucnRwVGlt
ZXN0YW1wLCAwKTsKKyAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKHNzcmMucnRwVGltZXN0YW1w
LCAweGZmZmZmZmZmKTsKKyAgfSwgJ1snICsga2luZCArICddIFJUQ1J0cFN5bmNocm9uaXphdGlv
blNvdXJjZS5ydHBUaW1lc3RhbXAgaXMgYSBudW1iZXIgJyArCisgICAgICdbMCwgMl4zMi0xXScp
OworCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCByZWNlaXZlciA9IGF3
YWl0IGluaXRpYXRlU2luZ2xlVHJhY2tDYWxsQW5kUmV0dXJuUmVjZWl2ZXIodCwga2luZCk7CiAg
ICAgLy8gV2FpdCBmb3IgcGFja2V0cyB0byBzdGFydCBmbG93aW5nLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2Vu
ZGVyLWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1nZXRTdGF0cy5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggNmYwMjE2YzFmZmU1Yjc4YzUxZWZkNWRhZDkxYjk4ZDllNTlhMTRm
MC4uMTk1NTY4NzA4MTkyOTg4NTcxZmEyNjdiODM5ZmRmYjgzM2EyZTFhZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
U2VuZGVyLWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZ2V0U3RhdHMu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIHNlbmRlci5nZXRTdGF0
cygpIHZpYSBhZGRUcmFuc2NlaXZlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWlu
aW5nIG91dGJvdW5kLXJ0cCBzdGF0cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5h
dWRpb0xldmVsIHRvIGJlIG51bWJlciBleHBlY3RlZCAibnVtYmVyIiBidXQgZ290ICJ1bmRlZmlu
ZWQiCi1GQUlMIHNlbmRlci5nZXRTdGF0cygpIHZpYSBhZGRUcmFjayBzaG91bGQgcmV0dXJuIHN0
YXRzIHJlcG9ydCBjb250YWluaW5nIG91dGJvdW5kLXJ0cCBzdGF0cyBhc3NlcnRfZXF1YWxzOiBF
eHBlY3QgZGljdGlvbmFyeS5hdWRpb0xldmVsIHRvIGJlIG51bWJlciBleHBlY3RlZCAibnVtYmVy
IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIHNlbmRlci5nZXRTdGF0cygpIHZpYSBhZGRUcmFu
c2NlaXZlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIG91dGJvdW5kLXJ0
cCBzdGF0cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS50b3RhbEF1ZGlvRW5lcmd5
IHRvIGJlIG51bWJlciBleHBlY3RlZCAibnVtYmVyIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlM
IHNlbmRlci5nZXRTdGF0cygpIHZpYSBhZGRUcmFjayBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9y
dCBjb250YWluaW5nIG91dGJvdW5kLXJ0cCBzdGF0cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGlj
dGlvbmFyeS50b3RhbEF1ZGlvRW5lcmd5IHRvIGJlIG51bWJlciBleHBlY3RlZCAibnVtYmVyIiBi
dXQgZ290ICJ1bmRlZmluZWQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1nZXRTdGF0cy5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwU2VuZGVyLWdldFN0YXRzLmh0dHBzLmh0bWwKaW5kZXggMWFmODI4NWY0YzMyNWYzOGIz
MjJkMjZhYTU4MmYzYmVkN2Y3MDU4NS4uNzBjNjMzMjMyMzI1YmM4MTFkYjZjYzBiY2E2OTQyYjVm
ZmJkN2FiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWdldFN0YXRzLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2Vu
ZGVyLWdldFN0YXRzLmh0dHBzLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgLy8gd2VicnRjLXN0
YXRzIDIwMTcxMTIyCiAKICAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBj
YWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6Ci0gIC8vICAgZG9TaWduYWxp
bmdIYW5kc2hha2UKKyAgLy8gICBleGNoYW5nZU9mZmVyQW5zd2VyCiAKICAgLy8gVGhlIGZvbGxv
d2luZyBoZWxwZXIgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gUlRDU3RhdHMtaGVscGVyLmpzCiAg
IC8vICAgdmFsaWRhdGVTdGF0c1JlcG9ydApAQCAtNTAsNyArNTAsNyBAQAogICAgIGNvbnN0IFt0
cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY29uc3QgeyBzZW5kZXIgfSA9IGNhbGxl
ci5hZGRUcmFuc2NlaXZlcih0cmFjayk7CiAKLSAgICBhd2FpdCBkb1NpZ25hbGluZ0hhbmRzaGFr
ZShjYWxsZXIsIGNhbGxlZSk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIs
IGNhbGxlZSk7CiAgICAgY29uc3Qgc3RhdHNSZXBvcnQgPSBhd2FpdCBzZW5kZXIuZ2V0U3RhdHMo
KTsKICAgICB2YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRzUmVwb3J0KTsKICAgICBhc3NlcnRfc3Rh
dHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0c1JlcG9ydCwgWydvdXRib3VuZC1ydHAnXSk7CkBAIC02
Niw3ICs2Niw3IEBACiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAg
ICBjb25zdCBzZW5kZXIgPSBjYWxsZXIuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CiAKLSAgICBh
d2FpdCBkb1NpZ25hbGluZ0hhbmRzaGFrZShjYWxsZXIsIGNhbGxlZSk7CisgICAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7CiAgICAgY29uc3Qgc3RhdHNSZXBvcnQg
PSBhd2FpdCBzZW5kZXIuZ2V0U3RhdHMoKTsKICAgICB2YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRz
UmVwb3J0KTsKICAgICBhc3NlcnRfc3RhdHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0c1JlcG9ydCwg
WydvdXRib3VuZC1ydHAnXSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGZjNjRiNTAxMTM1MDI5ODllNWYyYjVjM2U1MmY2YzhlZmRkNWYzZWMuLmMxYzNjMDIwOWQw
MzdlMDRmNjJmMTY1MmY1NDE1YjI0MTRiNzNjODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1yZXBsYWNl
VHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC04LDQgKzgsNSBAQCBQQVNTIENhbGxpbmcgcmVwbGFjZVRyYWNrKG51
bGwpIG9uIHNlbmRlciBub3Qgc2V0IHRvIHNlc3Npb24gZGVzY3JpcHRpb24gc2hvdWxkCiBQQVNT
IENhbGxpbmcgcmVwbGFjZVRyYWNrKG51bGwpIG9uIHNlbmRlciBzZXQgdG8gc2Vzc2lvbiBkZXNj
cmlwdGlvbiBzaG91bGQgcmVzb2x2ZSB3aXRoIHNlbmRlci50cmFjayBzZXQgdG8gbnVsbCAKIFBB
U1MgQ2FsbGluZyByZXBsYWNlVHJhY2sgb24gc2VuZGVyIHdpdGggc3RvcHBlZCB0cmFjayBhbmQg
YW5kIHNldCB0byBzZXNzaW9uIGRlc2NyaXB0aW9uIHNob3VsZCByZXNvbHZlIHdpdGggc2VuZGVy
LnRyYWNrIHNldCB0byBnaXZlbiB0cmFjayAKIFBBU1MgQ2FsbGluZyByZXBsYWNlVHJhY2sgb24g
c2VuZGVyIHdpdGggc2ltaWxhciB0cmFjayBhbmQgYW5kIHNldCB0byBzZXNzaW9uIGRlc2NyaXB0
aW9uIHNob3VsZCByZXNvbHZlIHdpdGggc2VuZGVyLnRyYWNrIHNldCB0byBuZXcgdHJhY2sgCitQ
QVNTIFJlcGxhY2VUcmFjayB0cmFuc21pdHMgdGhlIG5ldyB0cmFjayBub3QgdGhlIG9sZCB0cmFj
ayAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVy
LXJlcGxhY2VUcmFjay5odHRwcy5odG1sCmluZGV4IDUwMTg3MzE3ODBhYjY2MDQ1Y2M4NmQyN2Qw
MzE0MjY4NzIxNDM0ZjkuLmEzNzBiNmMwNTlhNTI0NzljZGI2MmE1MmFkZjFlNGFiNWE1ZjZiNzcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXIt
cmVwbGFjZVRyYWNrLmh0dHBzLmh0bWwKQEAgLTEsNSArMSw2IEBACiA8IWRvY3R5cGUgaHRtbD4K
IDxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ij4KIDx0aXRsZT5SVENSdHBTZW5kZXIucHJvdG90eXBlLnJlcGxhY2VUcmFjazwvdGl0bGU+CiA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CkBAIC0zOSw3
ICs0MCw3IEBACiAgICAgY29uc3QgeyBzZW5kZXIgfSA9IHRyYW5zY2VpdmVyOwogICAgIHBjLmNs
b3NlKCk7CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkU3RhdGVFcnJv
cicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRTdGF0ZUVycm9y
JywKICAgICAgIHNlbmRlci5yZXBsYWNlVHJhY2sodHJhY2spKTsKICAgfSwgJ0NhbGxpbmcgcmVw
bGFjZVRyYWNrIG9uIGNsb3NlZCBjb25uZWN0aW9uIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlk
U3RhdGVFcnJvcicpOwogCkBAIC01OSw3ICs2MCw3IEBACiAgICAgY29uc3QgdHJhbnNjZWl2ZXIg
PSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCB7IHNlbmRlciB9ID0gdHJh
bnNjZWl2ZXI7CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3Io
KSwKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwKICAgICAgIHNl
bmRlci5yZXBsYWNlVHJhY2sodHJhY2spKTsKICAgfSwgJ0NhbGxpbmcgcmVwbGFjZVRyYWNrIHdp
dGggdHJhY2sgb2YgZGlmZmVyZW50IGtpbmQgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcicp
OwogCkBAIC03OSw3ICs4MCw3IEBACiAgICAgY29uc3QgeyBzZW5kZXIgfSA9IHRyYW5zY2VpdmVy
OwogICAgIHRyYW5zY2VpdmVyLnN0b3AoKTsKIAotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMo
dCwgJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0
LCAnSW52YWxpZFN0YXRlRXJyb3InLAogICAgICAgc2VuZGVyLnJlcGxhY2VUcmFjayh0cmFjaykp
OwogICB9LCAnQ2FsbGluZyByZXBsYWNlVHJhY2sgb24gc3RvcHBlZCBzZW5kZXIgc2hvdWxkIHJl
amVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yJyk7CiAKQEAgLTI3Miw1ICsyNzMsMzUgQEAKICAg
ICAgICAgICAgICAgICB3aXRob3V0IG5lZ290aWF0aW5nLgogICAgICAgICAgICAgMy4gIFF1ZXVl
IGEgdGFzayB0aGF0IHJ1bnMgdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgICAgICAgMS4g
IElmIGNvbm5lY3Rpb24ncyBbW2lzQ2xvc2VkXV0gc2xvdCBpcyB0cnVlLCBhYm9ydCB0aGVzZSBz
dGVwcy4KLSAgICovCisgICovCisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qg
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgIHYuYXV0b3BsYXkgPSB0cnVl
OworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgY29uc3Qgc3RyZWFt
MSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRlbzoge3NpZ25hbDogMjB9fSk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gc3RyZWFtMS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNr
LnN0b3AoKSkpOworICBjb25zdCBbdHJhY2sxXSA9IHN0cmVhbTEuZ2V0VHJhY2tzKCk7CisgIGNv
bnN0IHN0cmVhbTIgPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHtzaWduYWw6IDI1MH19
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0yLmdldFRyYWNrcygpLmZvckVhY2godHJh
Y2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIGNvbnN0IFt0cmFjazJdID0gc3RyZWFtMi5nZXRUcmFj
a3MoKTsKKyAgY29uc3Qgc2VuZGVyID0gcGMxLmFkZFRyYWNrKHRyYWNrMSk7CisgIHBjMi5vbnRy
YWNrID0gKGUpID0+IHsKKyAgICB2LnNyY09iamVjdCA9IG5ldyBNZWRpYVN0cmVhbShbZS50cmFj
a10pOworICB9OworICBjb25zdCBtZXRhZGF0YVRvQmVMb2FkZWQgPSBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geworICAgIHYuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCAoKSA9
PiB7CisgICAgICByZXNvbHZlKCk7CisgICAgfSk7CisgIH0pOworICBleGNoYW5nZUljZUNhbmRp
ZGF0ZXMocGMxLCBwYzIpOworICBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXdh
aXQgbWV0YWRhdGFUb0JlTG9hZGVkOworICBhd2FpdCBkZXRlY3RTaWduYWwodCwgdiwgMjApOwor
ICBhd2FpdCBzZW5kZXIucmVwbGFjZVRyYWNrKHRyYWNrMik7CisgIGF3YWl0IGRldGVjdFNpZ25h
bCh0LCB2LCAyNTApOworfSwgJ1JlcGxhY2VUcmFjayB0cmFuc21pdHMgdGhlIG5ldyB0cmFjayBu
b3QgdGhlIG9sZCB0cmFjaycpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItc2V0UGFy
YW1ldGVycy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwU2VuZGVyLXNldFBhcmFtZXRlcnMuaHRtbAppbmRleCAxMjc4NzM3NDE0
YzQxOGEyYjE2MDRlYWUzMjU5MGMwOTk5ZTBkNjQ1Li4wMzVkMTI3ZTc0NDhmZTExZjM2M2M4OTM1
MWJjNGMwZWIzMjJlZjUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItc2V0UGFyYW1ldGVycy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFNlbmRlci1zZXRQYXJhbWV0ZXJzLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICBjb25z
dCBwYXJhbSA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7CiAgICAgdHJhbnNjZWl2ZXIuc3RvcCgp
OwogCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAor
ICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCiAg
ICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkpOwogICB9LCBgc2V0UGFyYW1ldGVycygp
IHdoZW4gdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0
YXRlRXJyb3JgKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXNldFN0cmVhbXMuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwU2VuZGVyLXNldFN0cmVhbXMuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc3MGI1NWFhMjRkMTM0ZDg3NmJmNTc5ZDYzOWUyYmYzOWY0ZGVmMzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBTZW5kZXItc2V0U3RyZWFtcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CisKK0ZBSUwgc2V0U3RyZWFtcyBjYXVzZXMgc3RyZWFtcyB0byBiZSByZXBvcnRlZCB2aWEgb250
cmFjayBvbiBjYWxsZWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBzZW5kZXIuc2V0U3RyZWFtcyBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdzZW5kZXIuc2V0U3RyZWFtcyhzdHJlYW0xLCBzdHJlYW0yKScsICdzZW5kZXIuc2V0
U3RyZWFtcycgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgc2V0U3RyZWFtcyBjYW4gYmUgdXNlZCB0byBy
ZWNvbnN0cnVjdCBhIHN0cmVhbSB3aXRoIGEgdHJhY2sgb24gdGhlIHJlbW90ZSBzaWRlIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogc2VuZGVyLnNldFN0cmVhbXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnc2VuZGVyLnNldFN0
cmVhbXMoc3RyZWFtKScsICdzZW5kZXIuc2V0U3RyZWFtcycgaXMgdW5kZWZpbmVkKSIKK0ZBSUwg
QWRkaW5nIHN0cmVhbXMgYW5kIGNoYW5naW5nIGRpcmVjdGlvbiBjYXVzZXMgbmV3IHN0cmVhbXMg
dG8gYmUgcmVwb3J0ZWQgdmlhIG9udHJhY2sgb24gY2FsbGVlIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdHJhbnNjZWl2ZXIu
c2VuZGVyLnNldFN0cmVhbXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndHJhbnNjZWl2ZXIuc2Vu
ZGVyLnNldFN0cmVhbXMoc3RyZWFtMSwgc3RyZWFtMiknLCAndHJhbnNjZWl2ZXIuc2VuZGVyLnNl
dFN0cmVhbXMnIGlzIHVuZGVmaW5lZCkiCitGQUlMIEFkZGluZyBzdHJlYW1zIHRvIGFuIGFjdGl2
ZSB0cmFuc2NlaXZlciBjYXVzZXMgbmV3IHN0cmVhbXMgdG8gYmUgcmVwb3J0ZWQgdmlhIG9udHJh
Y2sgb24gY2FsbGVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogdHJhbnNjZWl2ZXIuc2VuZGVyLnNldFN0cmVhbXMgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAndHJhbnNjZWl2ZXIuc2VuZGVyLnNldFN0cmVhbXMoc3RyZWFtMSwg
c3RyZWFtMiknLCAndHJhbnNjZWl2ZXIuc2VuZGVyLnNldFN0cmVhbXMnIGlzIHVuZGVmaW5lZCki
CitGQUlMIHNldFN0cmVhbXMoKSBmaXJlcyBJbnZhbGlkU3RhdGVFcnJvciBvbiBhIGNsb3NlZCBw
ZWVyIGNvbm5lY3Rpb24uIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gdHJhbnNj
ZWl2ZXIuc2VuZGVyLnNldFN0cmVhbXMoc3RyZWFtMSwgc3RyZWFtMikiIHRocmV3IG9iamVjdCAi
VHlwZUVycm9yOiB0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcyBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICd0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcyhzdHJlYW0xLCBzdHJlYW0yKScs
ICd0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcycgaXMgdW5kZWZpbmVkKSIgdGhhdCBpcyBu
b3QgYSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBl
cXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDExCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1zZXRT
dHJlYW1zLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItc2V0U3RyZWFtcy5odHRwcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ1YjQ3ZDA2YTZjOWMyOTU2ZjkzYWUwOTM3OWY2OGVjZmE1NjU1OTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBTZW5kZXItc2V0U3RyZWFtcy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTI4IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUnRwU2VuZGVy
LnByb3RvdHlwZS5zZXRTdHJlYW1zPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7CisgIGNvbnN0IGNhbGxl
ZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxl
ZS5jbG9zZSgpKTsKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlv
OiB0cnVlfSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVh
Y2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0
VHJhY2tzKCk7CisKKyAgY29uc3Qgc2VuZGVyID0gY2FsbGVyLmFkZFRyYWNrKHRyYWNrKTsKKyAg
Y29uc3Qgc3RyZWFtMSA9IG5ldyBNZWRpYVN0cmVhbSgpOworICBjb25zdCBzdHJlYW0yID0gbmV3
IE1lZGlhU3RyZWFtKCk7CisgIHNlbmRlci5zZXRTdHJlYW1zKHN0cmVhbTEsIHN0cmVhbTIpOwor
CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisgIGNhbGxlZS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IGNhbGxlZS5vbnRyYWNrID0gdC5zdGVwX2Z1bmMoZXZlbnQgPT57CisgICAgYXNzZXJ0X2Vx
dWFscyhldmVudC5zdHJlYW1zLmxlbmd0aCwgMik7CisgICAgY29uc3QgY2FsbGVlU3RyZWFtSWRz
ID0gZXZlbnQuc3RyZWFtcy5tYXAocyA9PiBzLmlkKTsKKyAgICBhc3NlcnRfaW5fYXJyYXkoc3Ry
ZWFtMS5pZCwgY2FsbGVlU3RyZWFtSWRzKTsKKyAgICBhc3NlcnRfaW5fYXJyYXkoc3RyZWFtMi5p
ZCwgY2FsbGVlU3RyZWFtSWRzKTsKKyAgICByZXNvbHZlKCk7CisgIH0pKTsKK30sICdzZXRTdHJl
YW1zIGNhdXNlcyBzdHJlYW1zIHRvIGJlIHJlcG9ydGVkIHZpYSBvbnRyYWNrIG9uIGNhbGxlZScp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlci5jbG9zZSgpKTsK
KyAgY29uc3QgY2FsbGVlID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lz
ZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0
VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgY29uc3QgW3RyYWNr
XSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKKworICBjb25zdCBzZW5kZXIgPSBjYWxsZXIuYWRkVHJh
Y2sodHJhY2spOworICBzZW5kZXIuc2V0U3RyZWFtcyhzdHJlYW0pOworCisgIGNvbnN0IG9mZmVy
ID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisgIGNhbGxlZS5zZXRSZW1vdGVEZXNjcmlw
dGlvbihvZmZlcik7CisgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGNhbGxlZS5vbnRy
YWNrID0gdC5zdGVwX2Z1bmMoZXZlbnQgPT57CisgICAgYXNzZXJ0X2VxdWFscyhldmVudC5zdHJl
YW1zLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uaWQsIGV2ZW50LnN0cmVh
bXNbMF0uaWQpOworICAgIGFzc2VydF9lcXVhbHModHJhY2suaWQsIGV2ZW50LnRyYWNrLmlkKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnN0cmVhbXNbMF0uZ2V0VHJhY2tzKClbMF0sIGV2ZW50
LnRyYWNrKTsKKyAgICByZXNvbHZlKCk7CisgIH0pKTsKK30sICdzZXRTdHJlYW1zIGNhbiBiZSB1
c2VkIHRvIHJlY29uc3RydWN0IGEgc3RyZWFtIHdpdGggYSB0cmFjayBvbiB0aGUgcmVtb3RlIHNp
ZGUnKTsKKworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IGNhbGxlciA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlci5jbG9z
ZSgpKTsKKyAgY29uc3QgY2FsbGVlID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworCisgIGNhbGxlZS5vbnRyYWNrID0gdC51
bnJlYWNoZWRfZnVuYygpOworICBjb25zdCB0cmFuc2NlaXZlciA9IGNhbGxlci5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nLCB7ZGlyZWN0aW9uOiAnaW5hY3RpdmUnfSk7CisgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXJBbnN3ZXIoY2FsbGVyLCBjYWxsZWUpOworCisgIGNvbnN0IHN0cmVhbTEgPSBuZXcgTWVk
aWFTdHJlYW0oKTsKKyAgY29uc3Qgc3RyZWFtMiA9IG5ldyBNZWRpYVN0cmVhbSgpOworICB0cmFu
c2NlaXZlci5kaXJlY3Rpb24gPSAnc2VuZHJlY3YnOworICB0cmFuc2NlaXZlci5zZW5kZXIuc2V0
U3RyZWFtcyhzdHJlYW0xLCBzdHJlYW0yKTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxl
ci5jcmVhdGVPZmZlcigpOworICBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwor
ICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBjYWxsZWUub250cmFjayA9IHQuc3RlcF9m
dW5jKGV2ZW50ID0+eworICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuc3RyZWFtcy5sZW5ndGgsIDIp
OworICAgIGNvbnN0IGNhbGxlZVN0cmVhbUlkcyA9IGV2ZW50LnN0cmVhbXMubWFwKHMgPT4gcy5p
ZCk7CisgICAgYXNzZXJ0X2luX2FycmF5KHN0cmVhbTEuaWQsIGNhbGxlZVN0cmVhbUlkcyk7Cisg
ICAgYXNzZXJ0X2luX2FycmF5KHN0cmVhbTIuaWQsIGNhbGxlZVN0cmVhbUlkcyk7CisgICAgYXNz
ZXJ0X2luX2FycmF5KGV2ZW50LnRyYWNrLCBldmVudC5zdHJlYW1zWzBdLmdldFRyYWNrcygpKTsK
KyAgICBhc3NlcnRfaW5fYXJyYXkoZXZlbnQudHJhY2ssIGV2ZW50LnN0cmVhbXNbMV0uZ2V0VHJh
Y2tzKCkpOworICAgIHJlc29sdmUoKTsKKyAgfSkpOworfSwgJ0FkZGluZyBzdHJlYW1zIGFuZCBj
aGFuZ2luZyBkaXJlY3Rpb24gY2F1c2VzIG5ldyBzdHJlYW1zIHRvIGJlIHJlcG9ydGVkIHZpYSBv
bnRyYWNrIG9uIGNhbGxlZScpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IGNhbGxlci5jbG9zZSgpKTsKKyAgY29uc3QgY2FsbGVlID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworCisgIGNvbnN0IHN0
cmVhbTEgPSBuZXcgTWVkaWFTdHJlYW0oKTsKKyAgY29uc3Qgc3RyZWFtMiA9IG5ldyBNZWRpYVN0
cmVhbSgpOworICBsZXQgY2FsbGVlVHJhY2sgPSBudWxsOworICBjYWxsZWUub250cmFjayA9IHQu
c3RlcF9mdW5jKGV2ZW50ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnN0cmVhbXMubGVu
Z3RoLCAwKTsKKyAgICBjYWxsZWVUcmFjayA9IGV2ZW50LnRyYWNrOworICB9KTsKKyAgY29uc3Qg
dHJhbnNjZWl2ZXIgPSBjYWxsZXIuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywge2RpcmVjdGlvbjog
J3NlbmRyZWN2J30pOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVl
KTsKKyAgYXNzZXJ0X3RydWUoY2FsbGVlVHJhY2sgaW5zdGFuY2VvZiBNZWRpYVN0cmVhbVRyYWNr
KTsKKworICB0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcyhzdHJlYW0xLCBzdHJlYW0yKTsK
KyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKyAgY2FsbGVlLnNl
dFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gY2FsbGVlLm9udHJhY2sgPSB0LnN0ZXBfZnVuYyhldmVudCA9PnsKKyAgICBhc3NlcnRfZXF1
YWxzKGV2ZW50LnN0cmVhbXMubGVuZ3RoLCAyKTsKKyAgICBjb25zdCBjYWxsZWVTdHJlYW1JZHMg
PSBldmVudC5zdHJlYW1zLm1hcChzID0+IHMuaWQpOworICAgIGFzc2VydF9pbl9hcnJheShzdHJl
YW0xLmlkLCBjYWxsZWVTdHJlYW1JZHMpOworICAgIGFzc2VydF9pbl9hcnJheShzdHJlYW0yLmlk
LCBjYWxsZWVTdHJlYW1JZHMpOworICAgIGFzc2VydF9pbl9hcnJheShldmVudC50cmFjaywgZXZl
bnQuc3RyZWFtc1swXS5nZXRUcmFja3MoKSk7CisgICAgYXNzZXJ0X2luX2FycmF5KGV2ZW50LnRy
YWNrLCBldmVudC5zdHJlYW1zWzFdLmdldFRyYWNrcygpKTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2
ZW50LnRyYWNrLCBjYWxsZWVUcmFjayk7CisgICAgcmVzb2x2ZSgpOworICB9KSk7Cit9LCAnQWRk
aW5nIHN0cmVhbXMgdG8gYW4gYWN0aXZlIHRyYW5zY2VpdmVyIGNhdXNlcyBuZXcgc3RyZWFtcyB0
byBiZSByZXBvcnRlZCB2aWEgb250cmFjayBvbiBjYWxsZWUnKTsKKwordGVzdCh0ID0+IHsKKyAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3Qgc3RyZWFtMSA9IG5l
dyBNZWRpYVN0cmVhbSgpOworICBjb25zdCBzdHJlYW0yID0gbmV3IE1lZGlhU3RyZWFtKCk7Cisg
IGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisKKyAgcGMu
Y2xvc2UoKTsKKyAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4g
dHJhbnNjZWl2ZXIuc2VuZGVyLnNldFN0cmVhbXMoc3RyZWFtMSwgc3RyZWFtMikpOworfSwgJ3Nl
dFN0cmVhbXMoKSBmaXJlcyBJbnZhbGlkU3RhdGVFcnJvciBvbiBhIGNsb3NlZCBwZWVyIGNvbm5l
Y3Rpb24uJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci10cmFuc3BvcnQuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwU2VuZGVyLXRyYW5zcG9ydC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
NmNlYzM5ODVkZWEyYTY5ZWM4NWI2MGRmYmQ2ZjhiNWM1NTA2N2MwZS4uMDViOTE0MGFiYThiM2E3
YTI0OGY1MmU0ODU3ZDVkOWNmOTBjZWU3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXRyYW5zcG9ydC5o
dHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXRyYW5zcG9ydC5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTIsNiArMiw5IEBACiBGQUlMIFJUQ1J0cFNlbmRlci50cmFuc3BvcnQgaXMgbnVsbCB3
aGVuIHVuY29ubmVjdGVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0
IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKIEZBSUwgUlRDUnRwU2VuZGVyL3JlY2VpdmVyLnRy
YW5zcG9ydCBoYXMgYSB2YWx1ZSB3aGVuIGNvbm5lY3RlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzZW5kZXIudHJhbnNwb3J0LmljZVRyYW5zcG9ydCcp
IgogRkFJTCBSVENSdHBTZW5kZXIvcmVjZWl2ZXIudHJhbnNwb3J0IGF0IHRoZSByaWdodCB0aW1l
LCB3aXRoIGJ1bmRsZSBwb2xpY3kgYmFsYW5jZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9i
amVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBSVENSdHBTZW5k
ZXIvcmVjZWl2ZXIvU0NUUCB0cmFuc3BvcnQgYXQgdGhlIHJpZ2h0IHRpbWUsIHdpdGggYnVuZGxl
IHBvbGljeSBiYWxhbmNlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1
dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCiBGQUlMIFJUQ1J0cFNlbmRlci9yZWNlaXZlci50
cmFuc3BvcnQgYXQgdGhlIHJpZ2h0IHRpbWUsIHdpdGggYnVuZGxlIHBvbGljeSBtYXgtYnVuZGxl
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVk
KSB1bmRlZmluZWQKK0ZBSUwgUlRDUnRwU2VuZGVyL3JlY2VpdmVyL1NDVFAgdHJhbnNwb3J0IGF0
IHRoZSByaWdodCB0aW1lLCB3aXRoIGJ1bmRsZSBwb2xpY3kgbWF4LWJ1bmRsZSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVk
CiBGQUlMIFJUQ1J0cFNlbmRlci9yZWNlaXZlci50cmFuc3BvcnQgYXQgdGhlIHJpZ2h0IHRpbWUs
IHdpdGggYnVuZGxlIHBvbGljeSBtYXgtY29tcGF0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChv
YmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwgUlRDUnRwU2Vu
ZGVyL3JlY2VpdmVyL1NDVFAgdHJhbnNwb3J0IGF0IHRoZSByaWdodCB0aW1lLCB3aXRoIGJ1bmRs
ZSBwb2xpY3kgbWF4LWNvbXBhdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxs
IGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci10cmFu
c3BvcnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci10cmFuc3BvcnQuaHR0cHMuaHRtbAppbmRleCBlNzQ0
OTVmZWM0OGU0MjBiYWU4Y2FlMWUxNDgxYjkwYjllMzhlYzhiLi5jZDQxOWViYzE4NmI3MjBjMmE1
Zjk2MTQ1MWVlYzcyM2FkMjI5ZmE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItdHJhbnNwb3J0Lmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwU2VuZGVyLXRyYW5zcG9ydC5odHRwcy5odG1sCkBAIC0xMyw3ICsxMyw3IEBA
CiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBjYWxsZXIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlci5jbG9zZSgp
KTsKLSAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lz
ZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5n
ZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwogICAgIGNvbnN0IFt0
cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY29uc3Qgc2VuZGVyID0gY2FsbGVyLmFk
ZFRyYWNrKHRyYWNrKTsKQEAgLTI0LDcgKzI0LDcgQEAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewogICAgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOwotICAgIGNvbnN0IHN0cmVhbSA9IGF3
YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOwor
ICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOwog
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sg
PT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3Mo
KTsKICAgICBjb25zdCBzZW5kZXIgPSBjYWxsZXIuYWRkVHJhY2sodHJhY2spOwpAQCAtNDUsNyAr
NDUsNyBAQAogICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICAgICAgY29uc3QgY2Fs
bGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xpY3k6IGJ1bmRsZV9wb2xpY3l9
KTsKICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOwotICAgICAgY29u
c3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoCisg
ICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSgKICAgICAgICAgICB7YXVk
aW86IHRydWUsIHZpZGVvOnRydWV9KTsKICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFt
LmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgICBjb25z
dCBbdHJhY2sxLCB0cmFjazJdID0gc3RyZWFtLmdldFRyYWNrcygpOwpAQCAtODYsNSArODYsNjcg
QEAKICAgICAgIGFzc2VydF9lcXVhbHMoY2FsbGVyX3RyYW5zY2VpdmVyMS5yZWNlaXZlci50cmFu
c3BvcnQsCiAgICAgICAgICAgICAgICAgICAgIGNhbGxlcl90cmFuc2NlaXZlcjIucmVjZWl2ZXIu
dHJhbnNwb3J0KTsKICAgICB9LCAnUlRDUnRwU2VuZGVyL3JlY2VpdmVyLnRyYW5zcG9ydCBhdCB0
aGUgcmlnaHQgdGltZSwgd2l0aCBidW5kbGUgcG9saWN5ICcgKyBidW5kbGVfcG9saWN5KTsKKwor
ICAgIC8vIERvIHRoZSBzYW1lIHRlc3QgYWdhaW4sIHdpdGggRGF0YUNoYW5uZWwgaW4gdGhlIG1p
eC4KKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICAgIGNvbnN0IGNhbGxlciA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiBidW5kbGVfcG9saWN5fSk7Cisg
ICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlci5jbG9zZSgpKTsKKyAgICAgIGNvbnN0IHN0
cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKAorICAgICAgICAgIHthdWRpbzogdHJ1ZSwgdmlk
ZW86dHJ1ZX0pOworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCku
Zm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICAgIGNvbnN0IFt0cmFjazEsIHRy
YWNrMl0gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgICBjb25zdCBzZW5kZXIxID0gY2FsbGVy
LmFkZFRyYWNrKHRyYWNrMSk7CisgICAgICBjb25zdCBzZW5kZXIyID0gY2FsbGVyLmFkZFRyYWNr
KHRyYWNrMik7CisgICAgICBjYWxsZXIuY3JlYXRlRGF0YUNoYW5uZWwoJ2RhdGFjaGFubmVsJyk7
CisgICAgICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworICAgICAgZXhjaGFuZ2VJY2VDYW5k
aWRhdGVzKGNhbGxlciwgY2FsbGVlKTsKKyAgICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgY2FsbGVy
LmNyZWF0ZU9mZmVyKCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNlbmRlcjEudHJhbnNwb3J0LCBu
dWxsKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2VuZGVyMi50cmFuc3BvcnQsIG51bGwpOworICAg
ICAgaWYgKGNhbGxlci5zY3RwKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoY2FsbGVyLnNjdHAu
dHJhbnNwb3J0LCBudWxsKTsKKyAgICAgIH0KKyAgICAgIGF3YWl0IGNhbGxlci5zZXRMb2NhbERl
c2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHNlbmRlcjEudHJhbnNw
b3J0LCBudWxsKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHNlbmRlcjIudHJhbnNwb3J0LCBu
dWxsKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGNhbGxlci5zY3RwLnRyYW5zcG9ydCwgbnVs
bCk7CisgICAgICBjb25zdCBbY2FsbGVyX3RyYW5zY2VpdmVyMSwgY2FsbGVyX3RyYW5zY2VpdmVy
Ml0gPSBjYWxsZXIuZ2V0VHJhbnNjZWl2ZXJzKCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNlbmRl
cjEudHJhbnNwb3J0LCBjYWxsZXJfdHJhbnNjZWl2ZXIxLnNlbmRlci50cmFuc3BvcnQpOworICAg
ICAgaWYgKGJ1bmRsZV9wb2xpY3kgPT0gJ21heC1idW5kbGUnKSB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoY2FsbGVyX3RyYW5zY2VpdmVyMS5zZW5kZXIudHJhbnNwb3J0LAorICAgICAgICAgICAg
ICAgICAgICAgIGNhbGxlcl90cmFuc2NlaXZlcjIuc2VuZGVyLnRyYW5zcG9ydCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoY2FsbGVyX3RyYW5zY2VpdmVyMS5zZW5kZXIudHJhbnNwb3J0LAorICAg
ICAgICAgICAgICAgICAgICAgIGNhbGxlci5zY3RwLnRyYW5zcG9ydCk7CisgICAgICB9IGVsc2Ug
eworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhjYWxsZXJfdHJhbnNjZWl2ZXIxLnNlbmRlci50
cmFuc3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxlcl90cmFuc2NlaXZlcjIu
c2VuZGVyLnRyYW5zcG9ydCk7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGNhbGxlcl90cmFu
c2NlaXZlcjEuc2VuZGVyLnRyYW5zcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICBjYWxsZXIu
c2N0cC50cmFuc3BvcnQpOworICAgICAgfQorICAgICAgYXdhaXQgY2FsbGVlLnNldFJlbW90ZURl
c2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgIGNvbnN0IFtjYWxsZWVfdHJhbnNjZWl2ZXIxLCBjYWxs
ZWVfdHJhbnNjZWl2ZXIyXSA9IGNhbGxlZS5nZXRUcmFuc2NlaXZlcnMoKTsKKyAgICAgIC8vIEFj
Y29yZGluZyB0byBzcGVjLCBzZXRSZW1vdGVEZXNjcmlwdGlvbiBvbmx5IHVwZGF0ZXMgdGhlIHRy
YW5zcG9ydHMKKyAgICAgIC8vIGlmIHRoZSByZW1vdGUgZGVzY3JpcHRpb24gaXMgYW4gYW5zd2Vy
LgorICAgICAgYXNzZXJ0X2VxdWFscyhjYWxsZWVfdHJhbnNjZWl2ZXIxLnJlY2VpdmVyLnRyYW5z
cG9ydCwgbnVsbCk7CisgICAgICBhc3NlcnRfZXF1YWxzKGNhbGxlZV90cmFuc2NlaXZlcjIucmVj
ZWl2ZXIudHJhbnNwb3J0LCBudWxsKTsKKyAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGNhbGxl
ZS5jcmVhdGVBbnN3ZXIoKTsKKyAgICAgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9u
KGFuc3dlcik7CisgICAgICBhc3NlcnRfbm90X2VxdWFscyhjYWxsZWVfdHJhbnNjZWl2ZXIxLnJl
Y2VpdmVyLnRyYW5zcG9ydCwgbnVsbCk7CisgICAgICBhc3NlcnRfbm90X2VxdWFscyhjYWxsZWVf
dHJhbnNjZWl2ZXIyLnJlY2VpdmVyLnRyYW5zcG9ydCwgbnVsbCk7CisgICAgICBhc3NlcnRfbm90
X2VxdWFscyhjYWxsZWUuc2N0cC50cmFuc3BvcnQsIG51bGwpOworICAgICAgLy8gQXQgdGhpcyBw
b2ludCwgYnVuZGxlIHNob3VsZCBoYXZlIGtpY2tlZCBpbi4KKyAgICAgIGFzc2VydF9lcXVhbHMo
Y2FsbGVlX3RyYW5zY2VpdmVyMS5yZWNlaXZlci50cmFuc3BvcnQsCisgICAgICAgICAgICAgICAg
ICAgIGNhbGxlZV90cmFuc2NlaXZlcjIucmVjZWl2ZXIudHJhbnNwb3J0KTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoY2FsbGVlX3RyYW5zY2VpdmVyMS5yZWNlaXZlci50cmFuc3BvcnQsCisgICAgICAg
ICAgICAgICAgICAgIGNhbGxlZS5zY3RwLnRyYW5zcG9ydCwKKyAgICAgICAgICAgICAgICAgICAg
J0NhbGxlZSBTQ1RQIHRyYW5zcG9ydCBkb2VzIG5vdCBtYXRjaDonKTsKKyAgICAgIGF3YWl0IGNh
bGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgICAgYXNzZXJ0X2VxdWFscyhj
YWxsZXJfdHJhbnNjZWl2ZXIxLnJlY2VpdmVyLnRyYW5zcG9ydCwKKyAgICAgICAgICAgICAgICAg
ICAgY2FsbGVyX3RyYW5zY2VpdmVyMi5yZWNlaXZlci50cmFuc3BvcnQpOworICAgICAgYXNzZXJ0
X2VxdWFscyhjYWxsZXJfdHJhbnNjZWl2ZXIxLnJlY2VpdmVyLnRyYW5zcG9ydCwKKyAgICAgICAg
ICAgICAgICAgICAgY2FsbGVyLnNjdHAudHJhbnNwb3J0LAorICAgICAgICAgICAgICAgICAgICAn
Q2FsbGVyIFNDVFAgdHJhbnNwb3J0IGRvZXMgbm90IG1hdGNoOicpOworICAgIH0sICdSVENSdHBT
ZW5kZXIvcmVjZWl2ZXIvU0NUUCB0cmFuc3BvcnQgYXQgdGhlIHJpZ2h0IHRpbWUsIHdpdGggYnVu
ZGxlIHBvbGljeSAnICsgYnVuZGxlX3BvbGljeSk7CiAgIH0KICA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFRyYW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5jZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNj
ZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50eHQKaW5kZXggNmYwOTkwZDliNmMz
MzZlNmFiMzE1Yjg4ZTZkYTFkMmQ2NDFiODNmOS4uNzNhMjUxZWVjODdlNDFmYzllYTQ3YWUxNjVi
MmE3MGM0OTQyNjQ3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNl
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBl
Y3RlZC50eHQKQEAgLTQsOCArNCwxMyBAQCBQQVNTIHNldENvZGVjUHJlZmVyZW5jZXMoKSBvbiB2
aWRlbyB0cmFuc2NlaXZlciB3aXRoIGNvZGVjcyByZXR1cm5lZCBmcm9tIFJUQ1J0cAogUEFTUyBz
ZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBib3RoIHNlbmRlciByZWNlaXZlciBjb2RlY3MgY29t
YmluZWQgc2hvdWxkIHN1Y2NlZWQgCiBQQVNTIHNldENvZGVjUHJlZmVyZW5jZXMoW10pIHNob3Vs
ZCBzdWNjZWVkIAogUEFTUyBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCByZW9yZGVyZWQgY29k
ZWNzIHNob3VsZCBzdWNjZWVkIAotRkFJTCBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgb24gYXVkaW8g
dHJhbnNjZWl2ZXIgd2l0aCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBnZXRDYXBhYmlsaXRpZXMoJ3Zp
ZGVvJykgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzOiB1bmRl
ZmluZWQgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdmdW5jLmNhbGwnKSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gKCkg
PT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjYXBhYmlsaXRpZXMuY29kZWNzKTog
cHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgZnVuY3Rpb24g
IigpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY2FwYWJpbGl0aWVzLmNvZGVj
cykiCi1GQUlMIHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIHVzZXIgZGVmaW5lZCBjb2RlYyBz
aG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF90aHJvd3M6IHVuZGVmaW5lZCB0
aHJldyBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ2Z1bmMuY2FsbCcpIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiAoKSA9PiB0cmFu
c2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcyk6IHByb3BlcnR5ICJjb2RlIiBpcyBl
cXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIGZ1bmN0aW9uICIoKSA9PiB0cmFuc2NlaXZlci5z
ZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykiCi1GQUlMIHNldENvZGVjUHJlZmVyZW5jZXMoKSB3
aXRoIHVzZXIgZGVmaW5lZCBjb2RlYyB0b2dldGhlciB3aXRoIGNvZGVjcyByZXR1cm5lZCBmcm9t
IGdldENhcGFiaWxpdGllcygpIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0
X3Rocm93czogdW5kZWZpbmVkIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnZnVuYy5jYWxsJykiIHRoYXQgaXMgbm90IGEgRE9N
RXhjZXB0aW9uICgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKTog
cHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgZnVuY3Rpb24g
IigpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSIKLUZBSUwgc2V0
Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWNzIHJldHVybmVkIGZyb20gZ2V0
Q2FwYWJpbGl0aWVzKCkgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhy
b3dzOiB1bmRlZmluZWQgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdmdW5jLmNhbGwnKSIgdGhhdCBpcyBub3QgYSBET01FeGNl
cHRpb24gKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpOiBwcm9w
ZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCBmdW5jdGlvbiAiKCkg
PT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpIgorUEFTUyBzZXRDb2Rl
Y1ByZWZlcmVuY2VzKCkgd2l0aCBvbmx5IG9uZSB2aWRlbyBjb2RlYyBzaG91bGQgc3VjY2VlZCAK
K0ZBSUwgc2V0Q29kZWNQcmVmZXJlbmNlcygpIG9uIGF1ZGlvIHRyYW5zY2VpdmVyIHdpdGggY29k
ZWNzIHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpIHNob3VsZCB0aHJvdyBJ
bnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9
PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNhcGFiaWxpdGllcy5jb2RlY3MpIiBk
aWQgbm90IHRocm93CitGQUlMIHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIHVzZXIgZGVmaW5l
ZCBjb2RlYyB3aXRoIGludmFsaWQgbWltZVR5cGUgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmlj
YXRpb25FcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IHRyYW5zY2VpdmVy
LnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSIgZGlkIG5vdCB0aHJvdworRkFJTCBzZXRDb2Rl
Y1ByZWZlcmVuY2VzKCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMgc2hvdWxkIHRocm93IEludmFs
aWRNb2RpZmljYXRpb25FcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IHRy
YW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSIgZGlkIG5vdCB0aHJvdworRkFJ
TCBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMgdG9nZXRoZXIg
d2l0aCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBnZXRDYXBhYmlsaXRpZXMoKSBzaG91bGQgdGhyb3cg
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkg
PT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpIiBkaWQgbm90IHRocm93
CitGQUlMIHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIG1vZGlmaWVkIGNvZGVjIGNsb2NrIHJh
dGUgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvciBhc3NlcnRfdGhyb3dzX2Rv
bTogZnVuY3Rpb24gIigpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNz
KSIgZGlkIG5vdCB0aHJvdworRkFJTCBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmll
ZCBjb2RlYyBjaGFubmVsIGNvdW50IHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2Rl
Y1ByZWZlcmVuY2VzKGNvZGVjcykiIGRpZCBub3QgdGhyb3cKK0ZBSUwgc2V0Q29kZWNQcmVmZXJl
bmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWMgcGFyYW1ldGVycyBzaG91bGQgdGhyb3cgSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gdHJh
bnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpIiBkaWQgbm90IHRocm93CitGQUlM
IHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIG1vZGlmaWVkIGNvZGVjcyByZXR1cm5lZCBmcm9t
IGdldENhcGFiaWxpdGllcygpIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Ig
YXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1By
ZWZlcmVuY2VzKGNvZGVjcykiIGRpZCBub3QgdGhyb3cKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2
ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJl
bmNlcy5odG1sCmluZGV4IGExZjc4NTRlMWEyZjE4MDM2MDQwZjg4Mjg4OWZmNjc1OGU5OTY4YzAu
LmY3OWM0M2IyOTE5NTQ1YzE1NzMwZDEwOWZiZjAzYWJiYzlhZmI0MTQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRy
YW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5jZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRD
b2RlY1ByZWZlcmVuY2VzLmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAKICAgICAgICAgICBSVENSdHBU
cmFuc2NlaXZlciBvbiB3aGljaCB0aGUgbWV0aG9kIGlzIGNhbGxlZC4gQWRkaXRpb25hbGx5LCB0
aGUKICAgICAgICAgICBSVENSdHBDb2RlY1BhcmFtZXRlcnMgZGljdGlvbmFyeSBtZW1iZXJzIGNh
bm5vdCBiZSBtb2RpZmllZC4gSWYKICAgICAgICAgICBjb2RlY3MgZG9lcyBub3QgZnVsZmlsbCB0
aGVzZSByZXF1aXJlbWVudHMsIHRoZSB1c2VyIGFnZW50IE1VU1QgdGhyb3cKLSAgICAgICAgICBh
biBJbnZhbGlkQWNjZXNzRXJyb3IuCisgICAgICAgICAgYW4gSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yLgogICAgKi8KIAogICB0ZXN0KCgpID0+IHsKQEAgLTc3LDEzICs3Nyw0NCBAQAogCiAgIH0s
IGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCByZW9yZGVyZWQgY29kZWNzIHNob3VsZCBzdWNj
ZWVkYCk7CiAKKyAgdGVzdCgoKSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRl
bycpOworICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRp
ZXMoJ3ZpZGVvJyk7CisgICAgY29uc3QgeyBjb2RlY3MgfSA9IGNhcGFiaWxpdGllczsKKyAgICAv
LyBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgbWFuZGF0b3J5IFZQOCBjb2RlYyBpcyBwcmVz
ZW50CisgICAgLy8gYW5kIGNhbiBiZSBzZXQuCisgICAgbGV0IHRyaWVkID0gZmFsc2U7CisgICAg
Y29kZWNzLmZvckVhY2goY29kZWMgPT4geworICAgICAgaWYgKGNvZGVjLm1pbWVUeXBlLnRvTG93
ZXJDYXNlKCkgPT09ICd2aWRlby92cDgnKSB7CisgICAgICAgIHRyYW5zY2VpdmVyLnNldENvZGVj
UHJlZmVyZW5jZXMoW2NvZGVjc1swXV0pOworICAgICAgICB0cmllZCA9IHRydWU7CisgICAgICB9
CisgICAgfSk7CisgICAgYXNzZXJ0X3RydWUodHJpZWQsICdWUDggdmlkZW8gY29kZWMgd2FzIGZv
dW5kIGFuZCB0cmllZCcpOworICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggb25seSBv
bmUgdmlkZW8gY29kZWMgc2hvdWxkIHN1Y2NlZWRgKTsKKwogICB0ZXN0KCgpID0+IHsKICAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVy
ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0g
UlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKTsKLSAgICBhc3NlcnRfdGhyb3dz
KCgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY2FwYWJpbGl0aWVzLmNvZGVj
cykpOworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAo
KSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNhcGFiaWxpdGllcy5jb2RlY3Mp
KTsKIAotICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIG9uIGF1ZGlvIHRyYW5zY2VpdmVyIHdp
dGggY29kZWNzIHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpIHNob3VsZCB0
aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3JgKTsKKyAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSBv
biBhdWRpbyB0cmFuc2NlaXZlciB3aXRoIGNvZGVjcyByZXR1cm5lZCBmcm9tIGdldENhcGFiaWxp
dGllcygndmlkZW8nKSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CisK
KyAgdGVzdCgoKSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAg
IGNvbnN0IGNvZGVjcyA9IFt7CisgICAgICBtaW1lVHlwZTogJ2RhdGEnLAorICAgICAgY2xvY2tS
YXRlOiAyMDAwLAorICAgICAgY2hhbm5lbHM6IDIsCisgICAgICBzZHBGbXRwTGluZTogJzAtMTUn
CisgICAgfV07CisKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpKTsKKwor
ICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggdXNlciBkZWZpbmVkIGNvZGVjIHdpdGgg
aW52YWxpZCBtaW1lVHlwZSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7
CiAKICAgdGVzdCgoKSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKQEAgLTkyLDEyICsxMjMsMTIgQEAKICAgICAgIG1pbWVUeXBlOiAnYXVkaW8vcGllcGlwZXIn
LAogICAgICAgY2xvY2tSYXRlOiAyMDAwLAogICAgICAgY2hhbm5lbHM6IDIsCi0gICAgICBzZHBG
bXRwTGluZTogJ2E9Zm10cDo5OCAwLTE1JworICAgICAgc2RwRm10cExpbmU6ICcwLTE1JwogICAg
IH1dOwogCi0gICAgYXNzZXJ0X3Rocm93cygoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZl
cmVuY2VzKGNvZGVjcykpOworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykp
OwogCi0gIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMg
c2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvcmApOworICB9LCBgc2V0Q29kZWNQcmVmZXJl
bmNlcygpIHdpdGggdXNlciBkZWZpbmVkIGNvZGVjIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3JgKTsKIAogICB0ZXN0KCgpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOwpAQCAtMTA5LDEyICsxNDAsNDUgQEAKICAgICAgICAgbWltZVR5cGU6
ICdhdWRpby9waWVwaXBlcicsCiAgICAgICAgIGNsb2NrUmF0ZTogMjAwMCwKICAgICAgICAgY2hh
bm5lbHM6IDIsCi0gICAgICAgIHNkcEZtdHBMaW5lOiAnYT1mbXRwOjk4IDAtMTUnCisgICAgICAg
IHNkcEZtdHBMaW5lOiAnMC0xNScKICAgICAgIH1dOwogCi0gICAgYXNzZXJ0X3Rocm93cygoKSA9
PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOworICAgIGFzc2VydF90
aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5z
ZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOworCisgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2Vz
KCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMgdG9nZXRoZXIgd2l0aCBjb2RlY3MgcmV0dXJuZWQg
ZnJvbSBnZXRDYXBhYmlsaXRpZXMoKSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yYCk7CisKKyAgdGVzdCgoKSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRp
bycpOworICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRp
ZXMoJ2F1ZGlvJyk7CisgICAgY29uc3QgY29kZWNzID0gW2NhcGFiaWxpdGllcy5jb2RlY3NbMF1d
OworICAgIGNvZGVjc1swXS5jbG9ja1JhdGUgPSBjb2RlY3NbMF0uY2xvY2tSYXRlIC8gMjsKKwor
ICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0
cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOworCisgIH0sIGBzZXRDb2Rl
Y1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBjbG9jayByYXRlIHNob3VsZCB0aHJv
dyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKKworICB0ZXN0KCgpID0+IHsKKyAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gUlRD
UnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKKyAgICBjb25zdCBjb2RlY3MgPSBb
Y2FwYWJpbGl0aWVzLmNvZGVjc1swXV07CisgICAgY29kZWNzWzBdLmNoYW5uZWxzID0gY29kZWNz
WzBdLmNoYW5uZWxzICsgMTE7CisKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2Rl
Y3MpKTsKKworICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWMg
Y2hhbm5lbCBjb3VudCBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CisK
KyAgdGVzdCgoKSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAg
IGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlv
Jyk7CisgICAgY29uc3QgY29kZWNzID0gW2NhcGFiaWxpdGllcy5jb2RlY3NbMF1dOworICAgIGNv
ZGVjc1swXS5zZHBGbXRwTGluZSA9ICJtb2RpZmllZHBhcmFtZXRlcj0xIjsKKworICAgIGFzc2Vy
dF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZl
ci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOwogCi0gIH0sIGBzZXRDb2RlY1ByZWZlcmVu
Y2VzKCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMgdG9nZXRoZXIgd2l0aCBjb2RlY3MgcmV0dXJu
ZWQgZnJvbSBnZXRDYXBhYmlsaXRpZXMoKSBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9y
YCk7CisgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBwYXJh
bWV0ZXJzIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAogICB0ZXN0
KCgpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwpAQCAtMTI5
LDggKzE5Myw4IEBACiAgICAgY29uc3QgeyBjaGFubmVscz0yIH0gPSBjb2RlYzsKICAgICBjb2Rl
Yy5jaGFubmVscyA9IGNoYW5uZWxzKzE7CiAKLSAgICBhc3NlcnRfdGhyb3dzKCgpID0+IHRyYW5z
Y2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSk7CisgICAgYXNzZXJ0X3Rocm93c19k
b20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVj
UHJlZmVyZW5jZXMoY29kZWNzKSk7CiAKLSAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRo
IG1vZGlmaWVkIGNvZGVjcyByZXR1cm5lZCBmcm9tIGdldENhcGFiaWxpdGllcygpIHNob3VsZCB0
aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3JgKTsKKyAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSB3
aXRoIG1vZGlmaWVkIGNvZGVjcyByZXR1cm5lZCBmcm9tIGdldENhcGFiaWxpdGllcygpIHNob3Vs
ZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAogIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IGQxODA3NjI5MzM0YWM5Nzg0YjQ5NTg2NzA5NTMyOTUxMzlhMmYy
NWEuLmY4Y2Y2Njc5OWYxMDY5YTgzM2JjMWIyMTQzZTBkMTMyYmEyY2Q3NWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFRyYW5zY2VpdmVyLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTI0LDkgKzI0LDkgQEAgUEFTUyBjaGVja1JlcGxhY2VUcmFja051bGxE
b2VzbnRQcmV2ZW50UGFpcmluZwogUEFTUyBjaGVja1JlbW92ZUFuZFJlYWRkIAogUEFTUyBjaGVj
a0FkZFRyYWNrRXhpc3RpbmdUcmFuc2NlaXZlclRoZW5SZW1vdmUgCiBGQUlMIGNoZWNrUmVtb3Zl
VHJhY2tOZWdvdGlhdGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBh
dGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKLVRJTUVPVVQgY2hlY2tNdXRlIFRl
c3QgdGltZWQgb3V0Ci1OT1RSVU4gY2hlY2tTdG9wIAotTk9UUlVOIGNoZWNrU3RvcEFmdGVyQ3Jl
YXRlT2ZmZXIgCitGQUlMIGNoZWNrTXV0ZSBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK0ZBSUwgY2hlY2tTdG9wIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJbe2N1cnJlbnRE
aXJlY3Rpb246bnVsbCxkaXJlY3Rpb246XCJzZW5kcmVjdlwiLHJlY2VpdmVyOnt0cmFjazp7a2lu
ZDpcImF1ZGlvXCIscmVhZHlTdGF0ZTpcImVuZGVkXCJ9fSxzZW5kZXI6e3RyYWNrOntraW5kOlwi
YXVkaW9cIn19LHN0b3BwZWQ6dHJ1ZX1dIiBidXQgZ290ICJbe2N1cnJlbnREaXJlY3Rpb246bnVs
bCxkaXJlY3Rpb246XCJzZW5kcmVjdlwiLHJlY2VpdmVyOnt0cmFjazp7a2luZDpcImF1ZGlvXCIs
cmVhZHlTdGF0ZTpcImVuZGVkXCJ9fSxzZW5kZXI6e3RyYWNrOm51bGx9LHN0b3BwZWQ6dHJ1ZX1d
IgorVElNRU9VVCBjaGVja1N0b3BBZnRlckNyZWF0ZU9mZmVyIFRlc3QgdGltZWQgb3V0CiBOT1RS
VU4gY2hlY2tTdG9wQWZ0ZXJTZXRMb2NhbE9mZmVyIAogTk9UUlVOIGNoZWNrU3RvcEFmdGVyU2V0
UmVtb3RlT2ZmZXIgCiBOT1RSVU4gY2hlY2tTdG9wQWZ0ZXJDcmVhdGVBbnN3ZXIgCkBAIC0zNiw0
ICszNiw3IEBAIE5PVFJVTiBjaGVja0xvY2FsUm9sbGJhY2sKIE5PVFJVTiBjaGVja1JvbGxiYWNr
QW5kU2V0UmVtb3RlT2ZmZXJXaXRoRGlmZmVyZW50VHlwZSAKIE5PVFJVTiBjaGVja1JlbW90ZVJv
bGxiYWNrIAogTk9UUlVOIGNoZWNrTXNlY3Rpb25SZXVzZSAKK05PVFJVTiBjaGVja1N0b3BBZnRl
ckNyZWF0ZU9mZmVyV2l0aFJldXNlZE1zZWN0aW9uIAorTk9UUlVOIGNoZWNrQWRkSWNlQ2FuZGlk
YXRlVG9TdG9wcGVkVHJhbnNjZWl2ZXIgCitOT1RSVU4gY2hlY2tCdW5kbGVUYWdSZWplY3RlZCAK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBz
Lmh0bWwKaW5kZXggYjVmM2M1NWVlNTgxMGYzMGVlODQzOWUwYjMzZGY4NGIzNzlkOTc1Yy4uNDg3
Nzc0OTgyMjk4Mzc2YjdjZTI3YTJjYmZhZWE3YWQzYzcxNmUyOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNj
ZWl2ZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy5odG1sCkBAIC0xLDUgKzEs
NiBAQAogPCFkb2N0eXBlIGh0bWw+CiA8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8dGl0bGU+UlRDUnRwVHJhbnNjZWl2ZXI8L3RpdGxl
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpAQCAt
Mzk5LDggKzQwMCw5IEBACiAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIo
KTsKICAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CiAgICAgLy8gUmVt
b3ZlIHRyYWNrLWlkIGZyb20gbXNpZAotICAgIG9mZmVyLnNkcCA9IG9mZmVyLnNkcC5yZXBsYWNl
KC8oYT1tc2lkOlteIFx0XSspLipcclxuL2csICIkMVxyXG4iKTsKLSAgICBhc3NlcnRfdHJ1ZShv
ZmZlci5zZHAuaW5jbHVkZXMoYGE9bXNpZDoke3N0cmVhbS5pZH1cclxuYCkpOworICAgIC8vIEZp
eGF0ZSBzdHJlYW0taWQgc28gdGhhdCBlcnJvciBtZXNzYWdlIGlzIGNvbnNpc3RlbnQuCisgICAg
b2ZmZXIuc2RwID0gb2ZmZXIuc2RwLnJlcGxhY2UoLyhhPW1zaWQ6W14gXHRdKykuKlxyXG4vZywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYT1tc2lkOmZha2Utc3RyZWFtLWlk
XHJcbiIpOwogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CiAgICAg
Y29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOwogICAgIGF3YWl0IHBjMS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwpAQCAtNDQ3LDcgKzQ0OSw3IEBACiAgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CiAKLSAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICBjb25zdCBzdHJlYW0gPSBh
d2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKICAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHN0b3BUcmFja3Moc3RyZWFtKSk7CiAgICAgY29uc3QgdHJhY2sgPSBzdHJlYW0uZ2V0QXVk
aW9UcmFja3MoKVswXTsKICAgICBwYzEuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CkBAIC00NTUs
NiArNDU3LDIwIEBACiAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsK
ICAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CiAgICAgYXdhaXQgcGMy
LnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKworICAgIGhhc1Byb3BzQW5kVW5pcXVlTWlk
cyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCksCisgICAgICBbCisgICAgICAgIHsKKyAgICAgICAgICBy
ZWNlaXZlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAorICAgICAgICAgIHNlbmRlcjoge3Ry
YWNrOiB7a2luZDogImF1ZGlvIn19LAorICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwK
KyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAorICAgICAgICAgIHN0b3BwZWQ6IGZh
bHNlCisgICAgICAgIH0KKyAgICAgIF0pOworCisgICAgY29uc3QgbGFzdE1pZCA9IHBjMS5nZXRU
cmFuc2NlaXZlcnMoKVswXS5taWQ7CisKICAgICBsZXQgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0
ZUFuc3dlcigpOwogICAgIC8vIFJlbW92ZSBtaWQgYXR0cgogICAgIGFuc3dlci5zZHAgPSBhbnN3
ZXIuc2RwLnJlcGxhY2UoImE9bWlkOiIsICJhPXVua25vd25hdHRyOiIpOwpAQCAtNDYyLDE5ICs0
NzgsMzEgQEAKICAgICBhbnN3ZXIuc2RwID0gYW5zd2VyLnNkcC5yZXBsYWNlKCJhPWdyb3VwOiIs
ICJhPXVua25vd25hdHRyOiIpOwogICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihh
bnN3ZXIpOwogCi0gICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMS5nZXRUcmFuc2NlaXZlcnMo
KSwKKyAgICBoYXNQcm9wcyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAg
IHsKICAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAg
ICAgIHNlbmRlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIGRpcmVjdGlv
bjogInNlbmRyZWN2IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2VuZG9ubHkiLAot
ICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCisgICAgICAgICAgc3RvcHBlZDogZmFsc2UsCisgICAg
ICAgICAgbWlkOiBsYXN0TWlkCiAgICAgICAgIH0KICAgICAgIF0pOwogCiAgICAgY29uc3QgcmVv
ZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOwogICAgIGF3YWl0IHBjMS5zZXRMb2NhbERl
c2NyaXB0aW9uKHJlb2ZmZXIpOworICAgIGhhc1Byb3BzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKSwK
KyAgICAgIFsKKyAgICAgICAgeworICAgICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5kOiAi
YXVkaW8ifX0sCisgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8ifX0sCisg
ICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rp
b246ICJzZW5kb25seSIsCisgICAgICAgICAgc3RvcHBlZDogZmFsc2UsCisgICAgICAgICAgbWlk
OiBsYXN0TWlkCisgICAgICAgIH0KKyAgICAgIF0pOwogICB9OwogCiAgIGNvbnN0IGNoZWNrQWRk
VHJhbnNjZWl2ZXJOb1RyYWNrRG9lc250UGFpciA9IGFzeW5jIHQgPT4gewpAQCAtOTkwLDYgKzEw
MTgsOSBAQAogICAgICAgXSk7CiAKICAgICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCks
IFt7Y3VycmVudERpcmVjdGlvbjogInNlbmRyZWN2In1dKTsKKworICAgIHBjMi5jbG9zZSgpOwor
ICAgIGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwgW3tjdXJyZW50RGlyZWN0aW9uOiBu
dWxsfV0pOwogICB9OwogCiAgIGNvbnN0IGNoZWNrU2VuZHJlY3ZXaXRoTm9TZW5kVHJhY2sgPSBh
c3luYyB0ID0+IHsKQEAgLTExMTYsMTAgKzExNDcsMTYgQEAKIAogICAgIGxldCBnb3RVbm11dGVB
dWRpbzIgPSBnb3RVbm11dGVFdmVudChwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ucmVjZWl2ZXIu
dHJhY2spOwogICAgIGxldCBnb3RVbm11dGVWaWRlbzIgPSBnb3RVbm11dGVFdmVudChwYzIuZ2V0
VHJhbnNjZWl2ZXJzKClbMV0ucmVjZWl2ZXIudHJhY2spOworICAgIC8vIEp1bXAgb3V0IGJlZm9y
ZSB3YWl0aW5nIGlmIGEgdHJhY2sgaXMgdW5tdXRlZCBiZWZvcmUgUlRQIHN0YXJ0cyBmbG93aW5n
LgorICAgIGFzc2VydF90cnVlKHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5yZWNlaXZlci50cmFj
ay5tdXRlZCk7CisgICAgYXNzZXJ0X3RydWUocGMxLmdldFRyYW5zY2VpdmVycygpWzFdLnJlY2Vp
dmVyLnRyYWNrLm11dGVkKTsKKyAgICBhc3NlcnRfdHJ1ZShwYzIuZ2V0VHJhbnNjZWl2ZXJzKClb
MF0ucmVjZWl2ZXIudHJhY2subXV0ZWQpOworICAgIGFzc2VydF90cnVlKHBjMi5nZXRUcmFuc2Nl
aXZlcnMoKVsxXS5yZWNlaXZlci50cmFjay5tdXRlZCk7CiAKICAgICBhd2FpdCBpY2VDb25uZWN0
ZWQocGMxKTsKICAgICBhd2FpdCBpY2VDb25uZWN0ZWQocGMyKTsKIAorCiAgICAgLy8gQ2hlY2sg
dGhhdCByZWNlaXZlIHRyYWNrcyBhcmUgdW5tdXRlZCB3aGVuIFJUUCBzdGFydHMgZmxvd2luZwog
ICAgIGF3YWl0IGdvdFVubXV0ZUF1ZGlvMTsKICAgICBhd2FpdCBnb3RVbm11dGVWaWRlbzE7CkBA
IC0xMjc3LDggKzEzMTQsMTAgQEAKICAgICBwYzEuY2xvc2UoKTsKICAgICBwYzIuY2xvc2UoKTsK
IAotICAgIC8vIFN0aWxsIHNob3VsZG4ndCB0aHJvdwotICAgIHN0b3BwZWRUcmFuc2NlaXZlci5z
dG9wKCk7CisgICAgLy8gU3BlYyBzYXlzIHRoZSBjbG9zZWQgY2hlY2sgY29tZXMgYmVmb3JlIHRo
ZSBzdG9wcGVkIGNoZWNrLCBzbyB0aGlzCisgICAgLy8gc2hvdWxkIHRocm93IG5vdy4KKyAgICBj
aGVja1Rocm93cygoKSA9PiBzdG9wcGVkVHJhbnNjZWl2ZXIuc3RvcCgpLAorICAgICAgICAgICAg
ICAgICJJbnZhbGlkU3RhdGVFcnJvciIsICJSVENSdHBUcmFuc2NlaXZlci5zdG9wKCkgd2l0aCBj
bG9zZWQgUEMiKTsKICAgfTsKIAogICBjb25zdCBjaGVja1N0b3BBZnRlckNyZWF0ZU9mZmVyID0g
YXN5bmMgdCA9PiB7CkBAIC0xMzIwLDEwICsxMzU5LDExIEBACiAgICAgICAgIH0KICAgICAgIF0p
OwogCisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWQocGMxKTsKKwogICAgIHRyaWNrbGUodCwg
cGMyLCBwYzEpOwogICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CiAK
LSAgICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZChwYzEpOwogICAgIGF3YWl0IGljZUNvbm5lY3Rl
ZChwYzEpOwogICAgIGF3YWl0IGljZUNvbm5lY3RlZChwYzIpOwogCkBAIC0xOTY2LDYgKzIwMDYs
MzAgQEAKICAgICAgIF0pOwogICB9OwogCisgIGNvbnN0IGNoZWNrQnVuZGxlVGFnUmVqZWN0ZWQg
PSBhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86
IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0b3BUcmFja3Moc3RyZWFtMSkpOwor
ICAgIGNvbnN0IHRyYWNrMSA9IHN0cmVhbTEuZ2V0QXVkaW9UcmFja3MoKVswXTsKKyAgICBjb25z
dCBzdHJlYW0yID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBzdG9wVHJhY2tzKHN0cmVhbTIpKTsKKyAgICBjb25zdCB0cmFjazIg
PSBzdHJlYW0yLmdldEF1ZGlvVHJhY2tzKClbMF07CisKKyAgICBwYzEuYWRkVHJhY2sodHJhY2sx
LCBzdHJlYW0xKTsKKyAgICBwYzEuYWRkVHJhY2sodHJhY2syLCBzdHJlYW0yKTsKKworICAgIGF3
YWl0IG9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKworICAgIHBjMi5nZXRUcmFuc2NlaXZlcnMoKVsw
XS5zdG9wKCk7CisKKyAgICBhd2FpdCBvZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgYXdhaXQg
b2ZmZXJBbnN3ZXIocGMyLCBwYzEpOworICB9OworCiAgIGNvbnN0IGNoZWNrTXNlY3Rpb25SZXVz
ZSA9IGFzeW5jIHQgPT4gewogICAgIC8vIFVzZSBtYXgtY29tcGF0IHRvIG1ha2UgaXQgZWFzaWVy
IHRvIGNoZWNrIGZvciBkaXNhYmxlZCBtLXNlY3Rpb25zCiAgICAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKHsgYnVuZGxlUG9saWN5OiAibWF4LWNvbXBhdCIgfSk7CkBAIC0yMTgy
LDYgKzIyNDYsNjggQEAKICAgICAgICAgICAgICAgICAgICJObyByZWplY3RlZCBtLWxpbmUsIGJl
Y2F1c2UgaXQgd2FzIHJldXNlZCIpOwogICB9OwogCisgIGNvbnN0IGNoZWNrU3RvcEFmdGVyQ3Jl
YXRlT2ZmZXJXaXRoUmV1c2VkTXNlY3Rpb24gPSBhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3
YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9KTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHN0b3BUcmFja3Moc3RyZWFtKSk7CisgICAgY29uc3QgYXVkaW8gPSBz
dHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXTsKKyAgICBjb25zdCB2aWRlbyA9IHN0cmVhbS5nZXRW
aWRlb1RyYWNrcygpWzBdOworCisgICAgcGMxLmFkZFRyYWNrKGF1ZGlvLCBzdHJlYW0pOworICAg
IHBjMS5hZGRUcmFjayh2aWRlbywgc3RyZWFtKTsKKworICAgIGF3YWl0IG9mZmVyQW5zd2VyKHBj
MSwgcGMyKTsKKyAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uc3RvcCgpOworICAgIGF3YWl0
IG9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKworICAgIC8vIFNlY29uZCAodmlkZW8pIG0tc2VjdGlv
biBoYXMgYmVlbiBuZWdvdGlhdGVkIGRpc2FibGVkLgorICAgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMx
LmNyZWF0ZU9mZmVyKCk7CisgICAgdHJhbnNjZWl2ZXIuc3RvcCgpOworICAgIGF3YWl0IHBjMS5z
ZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ob2ZmZXIpOworCisgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dl
cigpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgICAgYXdh
aXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisgIH07CisKKyAgY29uc3QgY2hl
Y2tBZGRJY2VDYW5kaWRhdGVUb1N0b3BwZWRUcmFuc2NlaXZlciA9IGFzeW5jIHQgPT4geworICAg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qg
c3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0p
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RvcFRyYWNrcyhzdHJlYW0pKTsKKyAgICBjb25z
dCBhdWRpbyA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOworICAgIGNvbnN0IHZpZGVvID0g
c3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisKKyAgICBwYzEuYWRkVHJhY2soYXVkaW8sIHN0
cmVhbSk7CisgICAgcGMxLmFkZFRyYWNrKHZpZGVvLCBzdHJlYW0pOworCisgICAgcGMyLmFkZFRy
YWNrKGF1ZGlvLCBzdHJlYW0pOworICAgIHBjMi5hZGRUcmFjayh2aWRlbywgc3RyZWFtKTsKKwor
ICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigp
KTsKKyAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uc3RvcCgpOworICAgIHBjMS5zZXRMb2Nh
bERlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7CisKKyAgICBjb25zdCBvZmZlciA9IGF3
YWl0IHBjMi5jcmVhdGVPZmZlcigpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9u
KG9mZmVyKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworCisg
ICAgYXdhaXQgcGMxLmFkZEljZUNhbmRpZGF0ZSgKKyAgICAgIHsKKyAgICAgICAgY2FuZGlkYXRl
OiAiY2FuZGlkYXRlOjAgMSBVRFAgMjEyMjI1MjU0MyAxOTIuMTY4LjEuMTEyIDY0MjYxIHR5cCBo
b3N0IiwKKyAgICAgICAgc2RwTWlkOiBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMV0ubWlkCisgICAg
ICB9KTsKKyAgfTsKKwogY29uc3QgdGVzdHMgPSBbCiAgIGNoZWNrQWRkVHJhbnNjZWl2ZXJOb1Ry
YWNrLAogICBjaGVja0FkZFRyYW5zY2VpdmVyV2l0aFRyYWNrLApAQCAtMjIxNyw3ICsyMzQzLDEw
IEBAIGNvbnN0IHRlc3RzID0gWwogICBjaGVja0xvY2FsUm9sbGJhY2ssCiAgIGNoZWNrUm9sbGJh
Y2tBbmRTZXRSZW1vdGVPZmZlcldpdGhEaWZmZXJlbnRUeXBlLAogICBjaGVja1JlbW90ZVJvbGxi
YWNrLAotICBjaGVja01zZWN0aW9uUmV1c2UKKyAgY2hlY2tNc2VjdGlvblJldXNlLAorICBjaGVj
a1N0b3BBZnRlckNyZWF0ZU9mZmVyV2l0aFJldXNlZE1zZWN0aW9uLAorICBjaGVja0FkZEljZUNh
bmRpZGF0ZVRvU3RvcHBlZFRyYW5zY2VpdmVyLAorICBjaGVja0J1bmRsZVRhZ1JlamVjdGVkCiBd
LmZvckVhY2godGVzdCA9PiBwcm9taXNlX3Rlc3QodGVzdCwgdGVzdC5uYW1lKSk7CiAKIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3Rw
VHJhbnNwb3J0LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCBkM2EyNzA3MDNkYjlkNjgw
MDMxOTNjOWNlNDI0NTcwODRiZmY0ZjJkLi4xMzdmYmMzYmMxY2Q3NTkxZTQ2MjY1ZGU3YWYyMTBi
MzNmMWY4OWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDYg
QEAKIAotRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHdpdGggYW5zd2VyIGNvbnRhaW5pbmcg
ZGF0YSBtZWRpYSBzaG91bGQgaW5pdGlhbGl6ZSBwYy5zY3RwIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgc2V0
TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggYW5zd2VyIGNvbnRhaW5pbmcgZGF0YSBtZWRpYSBzaG91
bGQgaW5pdGlhbGl6ZSBwYy5zY3RwIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG51
bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwgc2V0UmVtb3RlRGVzY3JpcHRp
b24oKSB3aXRoIGFuc3dlciBub3QgY29udGFpbmluZyBkYXRhIG1lZGlhIHNob3VsZCBub3QgaW5p
dGlhbGl6ZSBwYy5zY3RwIGFzc2VydF9lcXVhbHM6IFJUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBu
dWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQK
K0ZBSUwgc2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggYW5zd2VyIG5vdCBjb250YWluaW5nIGRh
dGEgbWVkaWEgc2hvdWxkIG5vdCBpbml0aWFsaXplIHBjLnNjdHAgYXNzZXJ0X2VxdWFsczogUlRD
U2N0cFRyYW5zcG9ydCBtdXN0IGJlIG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290
ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHdpdGgg
YW5zd2VyIGNvbnRhaW5pbmcgZGF0YSBtZWRpYSBzaG91bGQgaW5pdGlhbGl6ZSBwYy5zY3RwIGFz
c2VydF9lcXVhbHM6IFJUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBudWxsIGV4cGVjdGVkIChvYmpl
Y3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwgc2V0TG9jYWxEZXNj
cmlwdGlvbigpIHdpdGggYW5zd2VyIGNvbnRhaW5pbmcgZGF0YSBtZWRpYSBzaG91bGQgaW5pdGlh
bGl6ZSBwYy5zY3RwIGFzc2VydF9lcXVhbHM6IFJUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBudWxs
IGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1jb25z
dHJ1Y3Rvci5odG1sCmluZGV4IDdkM2RmMDUxZDg3NmU0OTBjOTI2NjM5NDk5YzEzYmEwZGNmOGQz
MGEuLjU4Yzg4M2Q1MzM3NzUyZjljZmY4NzI3MjZmNmQ5ODVhNjQ3MjI5Y2EgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Nj
dHBUcmFuc3BvcnQtY29uc3RydWN0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9y
Lmh0bWwKQEAgLTUsODUgKzUsMTIxIEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24t
aGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICAvLyBU
ZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgotICAvLyBodHRwczov
L3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCi0K
LSAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQ
ZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6Ci0gIC8vICAgZ2VuZXJhdGVEYXRhQ2hhbm5lbE9mZmVy
KCkKLSAgLy8gICBnZW5lcmF0ZUFuc3dlcigpCi0KLSAgLyoKLSAgICA2LjEuICBSVENQZWVyQ29u
bmVjdGlvbiBJbnRlcmZhY2UgRXh0ZW5zaW9ucwotICAgICAgcGFydGlhbCBpbnRlcmZhY2UgUlRD
UGVlckNvbm5lY3Rpb24gewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU2N0cFRyYW5z
cG9ydD8gc2N0cDsKLSAgICAgICAgLi4uCi0gICAgICB9OwotCi0gICAgICAxLjEuICBSVENTY3Rw
VHJhbnNwb3J0IEludGVyZmFjZQotICAgICAgICBpbnRlcmZhY2UgUlRDU2N0cFRyYW5zcG9ydCB7
Ci0gICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0R0bHNUcmFuc3BvcnQgdHJhbnNwb3J0
OwotICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nICAgIG1heE1lc3Nh
Z2VTaXplOwotICAgICAgICB9OwotCi0gICAgNC40LjEuMS4gIENvbnN0cnVjdG9yCi0gICAgICA4
LiAgTGV0IGNvbm5lY3Rpb24gaGF2ZSBhbiBbW3NjdHBUcmFuc3BvcnRdXSBpbnRlcm5hbCBzbG90
LCBpbml0aWFsaXplZCB0byBudWxsLgotCi0gICAgNC4zLjEuNi4gIFNldCB0aGUgUlRDU2Vzc2lv
blNlc3Npb25EZXNjcmlwdGlvbgotICAgICAgMi4yLjYuICBJZiBkZXNjcmlwdGlvbiBpcyBvZiB0
eXBlICJhbnN3ZXIiIG9yICJwcmFuc3dlciIsIHRoZW4gcnVuIHRoZQotICAgICAgICAgICAgICBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIDEuICBJZiBkZXNjcmlwdGlvbiBpbml0aWF0ZXMgdGhl
IGVzdGFibGlzaG1lbnQgb2YgYSBuZXcgU0NUUCBhc3NvY2lhdGlvbiwKLSAgICAgICAgICAgIGFz
IGRlZmluZWQgaW4gW1NDVFAtU0RQXSwgU2VjdGlvbnMgMTAuMyBhbmQgMTAuNCwgc2V0IHRoZSB2
YWx1ZSBvZgotICAgICAgICAgICAgY29ubmVjdGlvbidzIFtbU2N0cFRyYW5zcG9ydF1dIGludGVy
bmFsIHNsb3QgdG8gYSBuZXdseSBjcmVhdGVkCi0gICAgICAgICAgICBSVENTY3RwVHJhbnNwb3J0
LgotICAgKi8KLQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwot
ICAgIGFzc2VydF9lcXVhbHMocGMuc2N0cCwgbnVsbCk7Ci0gICAgcGMuY3JlYXRlRGF0YUNoYW5u
ZWwoJ3Rlc3QnKTsKLQotICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcigpCi0gICAgLnRoZW4ob2Zm
ZXIgPT4KLSAgICAgIHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpCi0gICAgICAudGhlbigo
KSA9PiBnZW5lcmF0ZUFuc3dlcihvZmZlcikpKQotICAgIC50aGVuKGFuc3dlciA9PiBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpKQotICAgIC50aGVuKCgpID0+IHsKLSAgICAgIGNvbnN0
IHsgc2N0cCB9ID0gcGM7Ci0gICAgICBhc3NlcnRfbm90X2VxdWFscyhzY3RwLCBudWxsKTsKLSAg
ICAgIGFzc2VydF90cnVlKHNjdHAgaW5zdGFuY2VvZiBSVENTY3RwVHJhbnNwb3J0LAotICAgICAg
ICAnRXhwZWN0IHBjLnNjdHAgdG8gYmUgaW5zdGFuY2Ugb2YgUlRDU2N0cFRyYW5zcG9ydCcpOwot
Ci0gICAgICBhc3NlcnRfdHJ1ZShzY3RwLnRyYW5zcG9ydCBpbnN0YW5jZW9mIFJUQ0R0bHNUcmFu
c3BvcnQsCi0gICAgICAgICdFeHBlY3Qgc2N0cC50cmFuc3BvcnQgdG8gYmUgaW5zdGFuY2Ugb2Yg
UlRDRHRsc1RyYW5zcG9ydCcpOwotCi0gICAgICBhc3NlcnRfdHJ1ZSh0eXBlb2Ygc2N0cC5tYXhN
ZXNzYWdlU2l6ZSwgJ251bWJlcicsCi0gICAgICAgICdFeHBlY3Qgc2N0cC5tYXhNZXNzYWdlU2l6
ZSB0byBiZSBhIG51bWJlcicpOwotICAgIH0pOwotICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24o
KSB3aXRoIGFuc3dlciBjb250YWluaW5nIGRhdGEgbWVkaWEgc2hvdWxkIGluaXRpYWxpemUgcGMu
c2N0cCcpOwotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLCBudWxsKTsKLQotICAgIHJldHVybiBnZW5lcmF0ZURh
dGFDaGFubmVsT2ZmZXIocGMpCi0gICAgLnRoZW4ob2ZmZXIgPT4gcGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ob2ZmZXIpKQotICAgIC50aGVuKCgpID0+IHBjLmNyZWF0ZUFuc3dlcigpKQotICAgIC50
aGVuKGFuc3dlciA9PiBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikpCi0gICAgLnRoZW4o
KCkgPT4gewotICAgICAgY29uc3QgeyBzY3RwIH0gPSBwYzsKLSAgICAgIGFzc2VydF9ub3RfZXF1
YWxzKHNjdHAsIG51bGwpOwotICAgICAgYXNzZXJ0X3RydWUoc2N0cCBpbnN0YW5jZW9mIFJUQ1Nj
dHBUcmFuc3BvcnQsCi0gICAgICAgICdFeHBlY3QgcGMuc2N0cCB0byBiZSBpbnN0YW5jZSBvZiBS
VENTY3RwVHJhbnNwb3J0Jyk7Ci0KLSAgICAgIGFzc2VydF90cnVlKHNjdHAudHJhbnNwb3J0IGlu
c3RhbmNlb2YgUlRDRHRsc1RyYW5zcG9ydCwKLSAgICAgICAgJ0V4cGVjdCBzY3RwLnRyYW5zcG9y
dCB0byBiZSBpbnN0YW5jZSBvZiBSVENEdGxzVHJhbnNwb3J0Jyk7Ci0KLSAgICAgIGFzc2VydF90
cnVlKHR5cGVvZiBzY3RwLm1heE1lc3NhZ2VTaXplLCAnbnVtYmVyJywKLSAgICAgICAgJ0V4cGVj
dCBzY3RwLm1heE1lc3NhZ2VTaXplIHRvIGJlIGEgbnVtYmVyJyk7Ci0gICAgfSk7Ci0gIH0sICdz
ZXRMb2NhbERlc2NyaXB0aW9uKCkgd2l0aCBhbnN3ZXIgY29udGFpbmluZyBkYXRhIG1lZGlhIHNo
b3VsZCBpbml0aWFsaXplIHBjLnNjdHAnKTsKKyd1c2Ugc3RyaWN0JzsKKworLy8gVGVzdCBpcyBi
YXNlZCBvbiB0aGUgZm9sbG93aW5nIHJldmlzaW9uOgorLy8gaHR0cHM6Ly9yYXdnaXQuY29tL3cz
Yy93ZWJydGMtcGMvMWNjNWJmYzNmZjE4NzQxMDMzZDgwNGM0YTcxZjc4OTEyNDJmYjViMy93ZWJy
dGMuaHRtbAorCisvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBm
cm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKKy8vICAgZ2VuZXJhdGVEYXRhQ2hhbm5l
bE9mZmVyKCkKKy8vICAgZ2VuZXJhdGVBbnN3ZXIoKQorCisvKgorICA2LjEuCisKKyAgICBwYXJ0
aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiB7CisgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgUlRDU2N0cFRyYW5zcG9ydD8gc2N0cDsKKyAgICAgIC4uLgorICAgIH07CisKKyAgNi4xLjEu
CisKKyAgICBpbnRlcmZhY2UgUlRDU2N0cFRyYW5zcG9ydCB7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBSVENEdGxzVHJhbnNwb3J0ICAgICAgdHJhbnNwb3J0OworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgUlRDU2N0cFRyYW5zcG9ydFN0YXRlIHN0YXRlOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSAgIG1heE1lc3NhZ2VTaXplOworICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyICAgICAgICAgIG9uc3RhdGVjaGFuZ2U7
CisgICAgfTsKKworICA0LjQuMS4xLiAgQ29uc3RydWN0b3IKKyAgICA5LiAgICAgIExldCBjb25u
ZWN0aW9uIGhhdmUgYW4gW1tTY3RwVHJhbnNwb3J0XV0gaW50ZXJuYWwgc2xvdCwgaW5pdGlhbGl6
ZWQgdG8gbnVsbC4KKworICA0LjQuMS42LiAgU2V0IHRoZSBSVENTZXNzaW9uU2Vzc2lvbkRlc2Ny
aXB0aW9uCisgICAgMi4yLjYuICBJZiBkZXNjcmlwdGlvbiBpcyBvZiB0eXBlICJhbnN3ZXIiIG9y
ICJwcmFuc3dlciIsIHRoZW4gcnVuIHRoZQorICAgICAgICAgICAgZm9sbG93aW5nIHN0ZXBzOgor
ICAgICAgMS4gICAgSWYgZGVzY3JpcHRpb24gaW5pdGlhdGVzIHRoZSBlc3RhYmxpc2htZW50IG9m
IGEgbmV3IFNDVFAgYXNzb2NpYXRpb24sIGFzIGRlZmluZWQgaW4KKyAgICAgICAgICAgIFtTQ1RQ
LVNEUF0sIFNlY3Rpb25zIDEwLjMgYW5kIDEwLjQsIGNyZWF0ZSBhbiBSVENTY3RwVHJhbnNwb3J0
IHdpdGggYW4gaW5pdGlhbCBzdGF0ZQorICAgICAgICAgICAgb2YgImNvbm5lY3RpbmciIGFuZCBh
c3NpZ24gdGhlIHJlc3VsdCB0byB0aGUgW1tTY3RwVHJhbnNwb3J0XV0gc2xvdC4KKyAqLworCitw
cm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisKKyAgYXNzZXJ0X2VxdWFscyhwYzEuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFu
c3BvcnQgbXVzdCBiZSBudWxsJyk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBnZW5lcmF0ZUF1
ZGlvUmVjZWl2ZU9ubHlPZmZlcihwYzEpOworICBhd2FpdCBQcm9taXNlLmFsbChbcGMxLnNldExv
Y2FsRGVzY3JpcHRpb24ob2ZmZXIpLCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpXSk7
CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMx
LnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgYXNzZXJ0X2VxdWFscyhwYzEuc2N0
cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCByZW1haW4gbnVsbCcpOworfSwgJ3NldFJl
bW90ZURlc2NyaXB0aW9uKCkgd2l0aCBhbnN3ZXIgbm90IGNvbnRhaW5pbmcgZGF0YSBtZWRpYSBz
aG91bGQgbm90IGluaXRpYWxpemUgcGMuc2N0cCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHQp
ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgYXNzZXJ0
X2VxdWFscyhwYzEuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBudWxsJyk7
CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBnZW5lcmF0ZUF1ZGlvUmVjZWl2ZU9ubHlPZmZlcihw
YzIpOworICBhd2FpdCBQcm9taXNlLmFsbChbcGMyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIp
LCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpXSk7CisgIGNvbnN0IGFuc3dlciA9IGF3
YWl0IHBjMS5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24o
YW5zd2VyKTsKKworICBhc3NlcnRfZXF1YWxzKHBjMS5zY3RwLCBudWxsLCAnUlRDU2N0cFRyYW5z
cG9ydCBtdXN0IHJlbWFpbiBudWxsJyk7Cit9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGgg
YW5zd2VyIG5vdCBjb250YWluaW5nIGRhdGEgbWVkaWEgc2hvdWxkIG5vdCBpbml0aWFsaXplIHBj
LnNjdHAnKTsKKworZnVuY3Rpb24gdmFsaWRhdGVTY3RwVHJhbnNwb3J0KHNjdHApIHsKKyAgYXNz
ZXJ0X25vdF9lcXVhbHMoc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBhdmFp
bGFibGUnKTsKKworICBhc3NlcnRfdHJ1ZShzY3RwIGluc3RhbmNlb2YgUlRDU2N0cFRyYW5zcG9y
dCwKKyAgICAnRXhwZWN0IHBjLnNjdHAgdG8gYmUgaW5zdGFuY2Ugb2YgUlRDU2N0cFRyYW5zcG9y
dCcpOworCisgIGFzc2VydF90cnVlKHNjdHAudHJhbnNwb3J0IGluc3RhbmNlb2YgUlRDRHRsc1Ry
YW5zcG9ydCwKKyAgICAnRXhwZWN0IHNjdHAudHJhbnNwb3J0IHRvIGJlIGluc3RhbmNlIG9mIFJU
Q0R0bHNUcmFuc3BvcnQnKTsKKworICBhc3NlcnRfZXF1YWxzKHNjdHAuc3RhdGUsICdjb25uZWN0
aW5nJywgJ1JUQ1NjdHBUcmFuc3BvcnQgc2hvdWxkIGJlIGluIHRoZSBjb25uZWN0aW5nIHN0YXRl
Jyk7CisKKyAgLy8gTm90ZTogWWVzLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgaXMgYWxzbyBh
ICdudW1iZXInCisgIGFzc2VydF90cnVlKHR5cGVvZiBzY3RwLm1heE1lc3NhZ2VTaXplID09PSAn
bnVtYmVyJywKKyAgICAnRXhwZWN0IHNjdHAubWF4TWVzc2FnZVNpemUgdG8gYmUgYSBudW1iZXIn
KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGFzc2VydF9lcXVhbHMocGMxLnNjdHAsIG51bGwsICdS
VENTY3RwVHJhbnNwb3J0IG11c3QgYmUgbnVsbCcpOworCisgIGNvbnN0IG9mZmVyID0gYXdhaXQg
Z2VuZXJhdGVEYXRhQ2hhbm5lbE9mZmVyKHBjMSk7CisgIGF3YWl0IFByb21pc2UuYWxsKFtwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlciksIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZl
cildKTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2Fp
dCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICB2YWxpZGF0ZVNjdHBUcmFu
c3BvcnQocGMxLnNjdHApOworfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKCkgd2l0aCBhbnN3ZXIg
Y29udGFpbmluZyBkYXRhIG1lZGlhIHNob3VsZCBpbml0aWFsaXplIHBjLnNjdHAnKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworCisgIGFzc2VydF9lcXVhbHMocGMxLnNjdHAsIG51bGwsICdSVENTY3RwVHJhbnNw
b3J0IG11c3QgYmUgbnVsbCcpOworCisgIGNvbnN0IG9mZmVyID0gYXdhaXQgZ2VuZXJhdGVEYXRh
Q2hhbm5lbE9mZmVyKHBjMik7CisgIGF3YWl0IFByb21pc2UuYWxsKFtwYzIuc2V0TG9jYWxEZXNj
cmlwdGlvbihvZmZlciksIHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcildKTsKKyAgY29u
c3QgYW5zd2VyID0gYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzEuc2V0TG9j
YWxEZXNjcmlwdGlvbihhbnN3ZXIpOworCisgIHZhbGlkYXRlU2N0cFRyYW5zcG9ydChwYzEuc2N0
cCk7Cit9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggYW5zd2VyIGNvbnRhaW5pbmcgZGF0
YSBtZWRpYSBzaG91bGQgaW5pdGlhbGl6ZSBwYy5zY3RwJyk7CisKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDU2N0cFRyYW5zcG9ydC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1ldmVudHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzMDZhY2FjYTkwZWM3ZDIyYTIyMTRiZDQ5MGVmZmI1
MGRiNGZhODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWV2ZW50cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw2IEBACisKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gVW5o
YW5kbGVkIHJlamVjdGlvbjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J3RyYW5zcG9ydC5zdGF0ZScpCisKK0ZBSUwgU2N0cFRyYW5zcG9ydCBvYmplY3RzIGFyZSBjcmVh
dGVkIGF0IGFwcHJvcHJpYXRlIHRpbWVzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmlu
ZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmplY3QpIG51bGwKK0ZBSUwgU2N0cFRyYW5zcG9ydCBy
ZWFjaGVzIGNvbm5lY3RlZCBhbmQgY2xvc2VkIHN0YXRlIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RyYW5zcG9ydC5zdGF0ZScpIgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENT
Y3RwVHJhbnNwb3J0LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1ldmVudHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41N2I2OTFhOWNkNjIwZmEzODM2ZDllNjQ1YzcxMmU0Y2JkZDQwOTQwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDU2N0cFRyYW5zcG9ydC1ldmVudHMuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDSWNlVHJhbnNwb3J0PC90
aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgcGMxLmNyZWF0ZURhdGFDaGFubmVs
KCcnKTsKKyAgYXNzZXJ0X2VxdWFscyhudWxsLCBwYzEuc2N0cCk7CisgIGFzc2VydF9lcXVhbHMo
bnVsbCwgcGMyLnNjdHApOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigp
OworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgIGFzc2VydF9ub3Rf
ZXF1YWxzKG51bGwsIHBjMS5zY3RwKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9u
KG9mZmVyKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMobnVsbCwgcGMyLnNjdHApOworICBjb25zdCBh
bnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERl
c2NyaXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3
ZXIpOworICAvLyBTaW5jZSB0aGlzIHRlc3QgZG9lcyBub3QgZXhjaGFuZ2UgY2FuZGlkYXRlcywg
c3RhdGUgcmVtYWlucyAiY29ubmVjdGluZyIuCisgIGFzc2VydF9lcXVhbHMocGMxLnNjdHAuc3Rh
dGUsICJjb25uZWN0aW5nIik7CisgIGFzc2VydF9lcXVhbHMocGMyLnNjdHAuc3RhdGUsICJjb25u
ZWN0aW5nIik7Cit9LCAnU2N0cFRyYW5zcG9ydCBvYmplY3RzIGFyZSBjcmVhdGVkIGF0IGFwcHJv
cHJpYXRlIHRpbWVzJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNs
b3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEs
IHBjMik7CisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnJyk7CisgIGNvbnN0IG9mZmVyID0gYXdh
aXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9m
ZmVyKTsKKyAgY29uc3QgcGMxQ29ubmVjdGVkV2FpdGVyID0gd2FpdEZvclN0YXRlKHBjMS5zY3Rw
LCAnY29ubmVjdGVkJyk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7
CisgIGNvbnN0IHBjMkNvbm5lY3RlZFdhaXRlciA9IHdhaXRGb3JTdGF0ZShwYzIuc2N0cCwgJ2Nv
bm5lY3RlZCcpOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7Cisg
IGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IHBjMS5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhd2FpdCBwYzFDb25uZWN0ZWRXYWl0ZXI7Cisg
IGF3YWl0IHBjMkNvbm5lY3RlZFdhaXRlcjsKKyAgY29uc3QgcGMxQ2xvc2VkV2FpdGVyID0gd2Fp
dEZvclN0YXRlKHBjMS5zY3RwLCAnY2xvc2VkJyk7CisgIGNvbnN0IHBjMkNsb3NlZFdhaXRlciA9
IHdhaXRGb3JTdGF0ZShwYzIuc2N0cCwgJ2Nsb3NlZCcpOworICBwYzEuY2xvc2UoKTsKKyAgYXdh
aXQgcGMxQ2xvc2VkV2FpdGVyOworICBhd2FpdCBwYzJDbG9zZWRXYWl0ZXI7Cit9LCAnU2N0cFRy
YW5zcG9ydCByZWFjaGVzIGNvbm5lY3RlZCBhbmQgY2xvc2VkIHN0YXRlJyk7CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1tYXhDaGFubmVscy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJh
bnNwb3J0LW1heENoYW5uZWxzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWFjZDI5ZDIzY2Q2
ZDIyZGI0NGY3NzRjMjdkNWI1ODE0NGNiMDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9y
dC1tYXhDaGFubmVscy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK0hhcm5lc3MgRXJy
b3IgKEZBSUwpLCBtZXNzYWdlID0gVW5oYW5kbGVkIHJlamVjdGlvbjogdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RyYW5zcG9ydC5zdGF0ZScpCisKK0ZBSUwgQW4gdW5j
b25uZWN0ZWQgcGVlcmNvbm5lY3Rpb24gbXVzdCBub3QgaGF2ZSBtYXhDaGFubmVscyBzZXQgYXNz
ZXJ0X2VxdWFsczogUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIG51bGwgZXhwZWN0ZWQgKG9iamVj
dCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBtYXhDaGFubmVscyBn
ZXRzIGluc3RhbnRpYXRlZCBhZnRlciBjb25uZWN0aW5nIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMS5zY3RwLm1heENoYW5uZWxzJykiCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1NjdHBUcmFuc3BvcnQtbWF4Q2hhbm5lbHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtbWF4Q2hhbm5l
bHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMTczZTExYzc0YTU2YzE1MWM3ODM4YmNiZTA0MDMwYzQ1MjU5
Y2NlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1tYXhDaGFubmVscy5odG1sCkBAIC0w
LDAgKzEsNDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRs
ZT5SVENTY3RwVHJhbnNwb3J0LnByb3RvdHlwZS5tYXhDaGFubmVsczwvdGl0bGU+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvI3J0Y3NjdHB0
cmFuc3BvcnQtaW50ZXJmYWNlIj4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHQp
ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAsIG51bGws
ICdSVENTY3RwVHJhbnNwb3J0IG11c3QgYmUgbnVsbCcpOworICBwYy5jcmVhdGVEYXRhQ2hhbm5l
bCgndGVzdCcpOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGF3
YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3QgYW5zd2VyID0gYXdh
aXQgcGMuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5z
d2VyKTsKKworICBhc3NlcnRfbm90X2VxdWFscyhwYy5zY3RwLCBudWxsLCAnUlRDU2N0cFRyYW5z
cG9ydCBtdXN0IGJlIGF2YWlsYWJsZScpOworICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAubWF4Q2hh
bm5lbHMsIG51bGwsICdtYXhDaGFubmVscyBtdXN0IG5vdCBiZSBzZXQnKTsKK30sICdBbiB1bmNv
bm5lY3RlZCBwZWVyY29ubmVjdGlvbiBtdXN0IG5vdCBoYXZlIG1heENoYW5uZWxzIHNldCcpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMi5jbG9zZSgpKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgcGMx
LmNyZWF0ZURhdGFDaGFubmVsKCcnKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRl
T2ZmZXIoKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25z
dCBwYzFDb25uZWN0ZWRXYWl0ZXIgPSB3YWl0Rm9yU3RhdGUocGMxLnNjdHAsICdjb25uZWN0ZWQn
KTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3QgcGMy
Q29ubmVjdGVkV2FpdGVyID0gd2FpdEZvclN0YXRlKHBjMi5zY3RwLCAnY29ubmVjdGVkJyk7Cisg
IGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMyLnNl
dExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0
aW9uKGFuc3dlcik7CisgIGFzc2VydF9lcXVhbHMobnVsbCwgcGMxLnNjdHAubWF4Q2hhbm5lbHMp
OworICBhc3NlcnRfZXF1YWxzKG51bGwsIHBjMi5zY3RwLm1heENoYW5uZWxzKTsKKyAgYXdhaXQg
cGMxQ29ubmVjdGVkV2FpdGVyOworICBhd2FpdCBwYzJDb25uZWN0ZWRXYWl0ZXI7CisgIGFzc2Vy
dF9ub3RfZXF1YWxzKG51bGwsIHBjMS5zY3RwLm1heENoYW5uZWxzKTsKKyAgYXNzZXJ0X25vdF9l
cXVhbHMobnVsbCwgcGMyLnNjdHAubWF4Q2hhbm5lbHMpOworICBhc3NlcnRfZXF1YWxzKHBjMS5z
Y3RwLm1heENoYW5uZWxzLCBwYzIuc2N0cC5tYXhDaGFubmVscyk7Cit9LCAnbWF4Q2hhbm5lbHMg
Z2V0cyBpbnN0YW50aWF0ZWQgYWZ0ZXIgY29ubmVjdGluZycpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENTY3RwVHJhbnNwb3J0LW1heE1lc3NhZ2VTaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQt
bWF4TWVzc2FnZVNpemUtZXhwZWN0ZWQudHh0CmluZGV4IDAwZTNkZTA5MjhhZWRjODQ0ZjY3MzNj
NGRkNmM0Njc3ZDdhMzU1NjguLjkzMDFhNGU2ODFjNjIyNDA1MmU3MTU5YTcxNGZkOTAyZTU0NjY5
NDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtbWF4TWVzc2FnZVNpemUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1NjdHBUcmFuc3BvcnQtbWF4TWVzc2FnZVNpemUtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBA
QAogCi1GQUlMIERldGVybWluZSB0aGUgbG9jYWwgc2lkZSBzZW5kIGxpbWl0YXRpb24gKGNhblNl
bmRTaXplKSBieSBvZmZlcmluZyBhIG1heC1tZXNzYWdlLXNpemUgb2YgMCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1G
QUlMIFJlbW90ZSBvZmZlciBTRFAgbWlzc2luZyBtYXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkg
dW5kZWZpbmVkCi1GQUlMIG1heC1tZXNzYWdlLXNpemUgd2l0aCBhIChub24temVybykgdmFsdWUg
cHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmpl
Y3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgUmVuZWdvdGlhdGUg
bWF4LW1lc3NhZ2Utc2l6ZSB3aXRoIGEgKG5vbi16ZXJvKSB2YWx1ZSBwcm92aWRlZCBieSB0aGUg
cmVtb3RlIHBlZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290
ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBtYXgtbWVzc2FnZS1zaXplIHdpdGggYSAobm9u
LXplcm8pIHZhbHVlIGxhcmdlciB0aGFuIGNhblNlbmRTaXplIHByb3ZpZGVkIGJ5IHRoZSByZW1v
dGUgcGVlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVu
ZGVmaW5lZCkgdW5kZWZpbmVkCitGQUlMIERldGVybWluZSB0aGUgbG9jYWwgc2lkZSBzZW5kIGxp
bWl0YXRpb24gKGNhblNlbmRTaXplKSBieSBvZmZlcmluZyBhIG1heC1tZXNzYWdlLXNpemUgb2Yg
MCBhc3NlcnRfZXF1YWxzOiBSVENTY3RwVHJhbnNwb3J0IG11c3QgYmUgbnVsbCBleHBlY3RlZCAo
b2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCitGQUlMIFJlbW90ZSBv
ZmZlciBTRFAgbWlzc2luZyBtYXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZSBhc3NlcnRfbm90X2Vx
dWFsczogY2FuU2VuZFNpemUgbmVlZHMgdG8gYmUgZGV0ZXJtaW5lZCBnb3QgZGlzYWxsb3dlZCB2
YWx1ZSBudWxsCitGQUlMIG1heC1tZXNzYWdlLXNpemUgd2l0aCBhIChub24temVybykgdmFsdWUg
cHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVyIGFzc2VydF9ub3RfZXF1YWxzOiBjYW5TZW5kU2l6
ZSBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIGdvdCBkaXNhbGxvd2VkIHZhbHVlIG51bGwKK0ZBSUwg
UmVuZWdvdGlhdGUgbWF4LW1lc3NhZ2Utc2l6ZSB3aXRoIHZhcmlvdXMgdmFsdWVzIHByb3ZpZGVk
IGJ5IHRoZSByZW1vdGUgcGVlciBhc3NlcnRfbm90X2VxdWFsczogY2FuU2VuZFNpemUgbmVlZHMg
dG8gYmUgZGV0ZXJtaW5lZCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSBudWxsCitGQUlMIG1heC1tZXNz
YWdlLXNpemUgd2l0aCBhIChub24temVybykgdmFsdWUgbGFyZ2VyIHRoYW4gY2FuU2VuZFNpemUg
cHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVyIGFzc2VydF9ub3RfZXF1YWxzOiBjYW5TZW5kU2l6
ZSBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIGdvdCBkaXNhbGxvd2VkIHZhbHVlIG51bGwKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDU2N0cFRyYW5zcG9ydC1tYXhNZXNzYWdlU2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1tYXhN
ZXNzYWdlU2l6ZS5odG1sCmluZGV4IDkxNjNhNjZhZjE1MWUzZTJmMTNhYjdjNGE0MGU1NmUzZjE2
MmM5N2YuLjk5NzY3NjExNTA5MTk3YTNkMTAzNzk1NzU1MWZlYTM5N2VjYWQyMWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1NjdHBUcmFuc3BvcnQtbWF4TWVzc2FnZVNpemUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LW1heE1l
c3NhZ2VTaXplLmh0bWwKQEAgLTksMTAgKzksMTMgQEAKICd1c2Ugc3RyaWN0JzsKIAogLy8gVGhp
cyB0ZXN0IGhhcyBhbiBhc3NlcnRfdW5yZWFjaGVkKCkgdGhhdCByZXF1aXJlcyB0aGF0IHRoZSB2
YXJpYWJsZQotLy8gY2FuU2VuZFNpemUgKGluaXRpYXRlZCBiZWxvdykgaXMgZ3JlYXRlciB0aGFu
IDIsIGlmIG5vbi16ZXJvLiBUaGUgcmVhc29uCi0vLyBpcyB0aGF0IHdlIG5lZWQgdHdvIG5vbi16
ZXJvIHZhbHVlcyB0aGF0IGFyZSBsZXNzIHRoYXQgdGhhdCB2YWx1ZSBmb3IKLS8vIHRlc3Rpbmcg
d2l0aCBwcmVkaWN0YWJsZSByZXN1bHRzLiBUaGlzIGlzIGEgYml0IHVuZm9ydHVuYXRlIGJ1dCBz
aG91bGRuJ3QKLS8vIGhhdmUgYW55IHByYWN0aWNhbCBpbXBhY3QuCisvLyBjYW5TZW5kU2l6ZSAo
aW5pdGlhdGVkIGJlbG93KSBtdXN0IGJlIDAgb3IgZ3JlYXRlciB0aGFuIDIuIFRoZSByZWFzb24K
Ky8vIGlzIHRoYXQgd2UgbmVlZCB0d28gbm9uLXplcm8gdmFsdWVzIGZvciB0ZXN0aW5nIHRoZSBm
b2xsb3dpbmcgdHdvIGNhc2VzOgorLy8KKy8vICogaWYgcmVtb3RlIE1NUyBgMWAgPCBjYW5TZW5k
U2l6ZSBpdCBzaG91bGQgcmVzdWx0IGluIGAxYC4KKy8vICogcmVuZWdvdGlhdGlvbiBvZiB0aGUg
YWJvdmUgY2FzZSB3aXRoIHJlbW90ZU1NUyBgMmAgc2hvdWxkIHJlc3VsdCBpbiBgMmAuCisvLwor
Ly8gVGhpcyBpcyBhIGJpdCB1bmZvcnR1bmF0ZSBidXQgc2hvdWxkbid0IGhhdmUgYW55IHByYWN0
aWNhbCBpbXBhY3QuCiAKIC8vIEhlbHBlciBjbGFzcyB0byByZWFkIFNEUCBhdHRyaWJ1dGVzIGFu
ZCBnZW5lcmF0ZSBTRFBzIHdpdGggbW9kaWZpZWQgYXR0cmlidXRlIHZhbHVlcwogY2xhc3MgU0RQ
QXR0cmlidXRlSGVscGVyIHsKQEAgLTM5LDE0OCArNDIsMTY1IEBAIGNsYXNzIFNEUEF0dHJpYnV0
ZUhlbHBlciB7CiB9CiAKIGNvbnN0IG1tc0F0dHJpYnV0ZUhlbHBlciA9IG5ldyBTRFBBdHRyaWJ1
dGVIZWxwZXIoJ21heC1tZXNzYWdlLXNpemUnLCAnXFxkKycpOwotbGV0IGNhblNlbmRTaXplOwot
Y29uc3QgcmVtb3RlVmFsdWUxID0gMTsKLWNvbnN0IHJlbW90ZVZhbHVlMiA9IDI7CitsZXQgY2Fu
U2VuZFNpemUgPSBudWxsOworY29uc3QgcmVtb3RlU2l6ZTEgPSAxOworY29uc3QgcmVtb3RlU2l6
ZTIgPSAyOwogCi1wcm9taXNlX3Rlc3QodCA9PiB7Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+
IHsKICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLCBudWxsKTsKLSAg
bGV0IG1heE1lc3NhZ2VTaXplOwotCi0gIHJldHVybiBnZW5lcmF0ZURhdGFDaGFubmVsT2ZmZXIo
cGMpCi0gIC50aGVuKChvZmZlcikgPT4gewotICAgIGFzc2VydF9ub3RfZXF1YWxzKG1tc0F0dHJp
YnV0ZUhlbHBlci5nZXRWYWx1ZShvZmZlci5zZHApLCBudWxsLAotICAgICAgJ1NEUCBzaG91bGQg
aGF2ZSBtYXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZScpOwotCi0gICAgb2ZmZXIgPSB7IHR5cGU6
ICdvZmZlcicsIHNkcDogbW1zQXR0cmlidXRlSGVscGVyLnNkcFdpdGhWYWx1ZShvZmZlci5zZHAs
IDApIH07Ci0gICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKLSAgfSkK
LSAgLnRoZW4oKCkgPT4gcGMuY3JlYXRlQW5zd2VyKCkpCi0gIC50aGVuKChhbnN3ZXIpID0+IHBj
LnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSkKLSAgLnRoZW4oKCkgPT4gewotICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHBjLnNjdHAsIG51bGwpOwotICAgIGNhblNlbmRTaXplID0gcGMuc2N0cC5t
YXhNZXNzYWdlU2l6ZSA9PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgPyAwIDogcGMuc2N0cC5t
YXhNZXNzYWdlU2l6ZTsKLSAgICBpZiAoY2FuU2VuZFNpemUgIT0gMCAmJiBjYW5TZW5kU2l6ZSA8
IHJlbW90ZVZhbHVlMikgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnVGhpcyB0ZXN0IG5lZWRz
IHR3byB2YWx1ZXMgdGhhdCBhcmUgbGVzcyB0aGFuIGNhblNlbmRTaXplICh1bmxlc3MgaXQgaXMg
emVybyknKTsKLSAgICB9Ci0gIH0pOworCisgIGFzc2VydF9lcXVhbHMocGMuc2N0cCwgbnVsbCwg
J1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBudWxsJyk7CisKKyAgbGV0IG9mZmVyID0gYXdhaXQg
Z2VuZXJhdGVEYXRhQ2hhbm5lbE9mZmVyKHBjKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMobW1zQXR0
cmlidXRlSGVscGVyLmdldFZhbHVlKG9mZmVyLnNkcCksIG51bGwsCisgICAgJ1NEUCBzaG91bGQg
aGF2ZSBtYXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZScpOworICBvZmZlciA9IHsgdHlwZTogJ29m
ZmVyJywgc2RwOiBtbXNBdHRyaWJ1dGVIZWxwZXIuc2RwV2l0aFZhbHVlKG9mZmVyLnNkcCwgMCkg
fTsKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3
ZXIgPSBhd2FpdCBwYy5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlw
dGlvbihhbnN3ZXIpOworCisgIGFzc2VydF9ub3RfZXF1YWxzKHBjLnNjdHAsIG51bGwsICdSVENT
Y3RwVHJhbnNwb3J0IG11c3QgYmUgYXZhaWxhYmxlJyk7CisgIGNhblNlbmRTaXplID0gcGMuc2N0
cC5tYXhNZXNzYWdlU2l6ZSA9PT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZID8gMCA6IHBjLnNj
dHAubWF4TWVzc2FnZVNpemU7CisgIGlmIChjYW5TZW5kU2l6ZSAhPT0gMCAmJiBjYW5TZW5kU2l6
ZSA8IHJlbW90ZVNpemUyKSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICdUaGlzIHRl
c3QgbmVlZHMgY2FuU2VuZFNpemUgdG8gYmUgMCBvciA+IDIgZm9yIGZ1cnRoZXIgImJlbG93IiBh
bmQgImFib3ZlIiB0ZXN0cycpOworICB9CiB9LCAnRGV0ZXJtaW5lIHRoZSBsb2NhbCBzaWRlIHNl
bmQgbGltaXRhdGlvbiAoY2FuU2VuZFNpemUpIGJ5IG9mZmVyaW5nIGEgbWF4LW1lc3NhZ2Utc2l6
ZSBvZiAwJyk7CiAKLXByb21pc2VfdGVzdCh0ID0+IHsKK3Byb21pc2VfdGVzdChhc3luYyAodCkg
PT4geworICBhc3NlcnRfbm90X2VxdWFscyhjYW5TZW5kU2l6ZSwgbnVsbCwgJ2NhblNlbmRTaXpl
IG5lZWRzIHRvIGJlIGRldGVybWluZWQnKTsKKwogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICBhc3NlcnRf
ZXF1YWxzKHBjLnNjdHAsIG51bGwpOwotCi0gIHJldHVybiBnZW5lcmF0ZURhdGFDaGFubmVsT2Zm
ZXIocGMpCi0gIC50aGVuKChvZmZlcikgPT4gewotICAgIGFzc2VydF9ub3RfZXF1YWxzKG1tc0F0
dHJpYnV0ZUhlbHBlci5nZXRWYWx1ZShvZmZlci5zZHApLCBudWxsLAotICAgICAgJ1NEUCBzaG91
bGQgaGF2ZSBtYXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZScpOwotCi0gICAgLy8gUmVtb3ZlIHRo
ZSBtYXgtbWVzc2FnZS1zaXplIFNEUCBhdHRyaWJ1dGUKLSAgICBvZmZlciA9IHsgdHlwZTogJ29m
ZmVyJywgc2RwOiBtbXNBdHRyaWJ1dGVIZWxwZXIuc2RwV2l0aG91dEF0dHJpYnV0ZShvZmZlci5z
ZHApIH07Ci0gICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKQotICB9KQot
ICAudGhlbigoKSA9PiBwYy5jcmVhdGVBbnN3ZXIoKSkKLSAgLnRoZW4oKGFuc3dlcikgPT4gcGMu
c2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpKQotICAudGhlbigoKSA9PiB7Ci0gICAgYXNzZXJ0
X25vdF9lcXVhbHMocGMuc2N0cCwgbnVsbCk7Ci0gICAgLy8gVGVzdCBvdXRjb21lIGRlcGVuZHMg
b24gY2FuU2VuZFNpemUgdmFsdWUKLSAgICBpZiAoY2FuU2VuZFNpemUpIHsKLSAgICAgIGFzc2Vy
dF9lcXVhbHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6ZSwgTWF0aC5taW4oNjU1MzYsIGNhblNlbmRT
aXplKSwKLSAgICAgICAgJ01pc3NpbmcgU0RQIGF0dHJpYnV0ZSBhbmQgYSBub24temVybyBjYW5T
ZW5kU2l6ZSBzaG91bGQgZ2l2ZSBhbiBtYXhNZXNzYWdlU2l6ZSBvZiBtaW4oNjU1MzYsIGNhblNl
bmRTaXplKScpOwotICAgIH0gZWxzZSB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAubWF4
TWVzc2FnZVNpemUsIDY1NTM2LAotICAgICAgICAnTWlzc2luZyBTRFAgYXR0cmlidXRlIGFuZCBh
IGNhblNlbmRTaXplIG9mIDAgc2hvdWxkIGdpdmUgYW4gbWF4TWVzc2FnZVNpemUgb2YgNjU1MzYn
KTsKLSAgICB9Ci0gIH0pOworCisgIGFzc2VydF9lcXVhbHMocGMuc2N0cCwgbnVsbCwgJ1JUQ1Nj
dHBUcmFuc3BvcnQgbXVzdCBiZSBudWxsJyk7CisKKyAgbGV0IG9mZmVyID0gYXdhaXQgZ2VuZXJh
dGVEYXRhQ2hhbm5lbE9mZmVyKHBjKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMobW1zQXR0cmlidXRl
SGVscGVyLmdldFZhbHVlKG9mZmVyLnNkcCksIG51bGwsCisgICAgJ1NEUCBzaG91bGQgaGF2ZSBt
YXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZScpOworCisgIC8vIFJlbW92ZSB0aGUgbWF4LW1lc3Nh
Z2Utc2l6ZSBTRFAgYXR0cmlidXRlCisgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1t
c0F0dHJpYnV0ZUhlbHBlci5zZHBXaXRob3V0QXR0cmlidXRlKG9mZmVyLnNkcCkgfTsKKyAgYXdh
aXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3ZXIgPSBhd2Fp
dCBwYy5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3
ZXIpOworCisgIGFzc2VydF9ub3RfZXF1YWxzKHBjLnNjdHAsIG51bGwsICdSVENTY3RwVHJhbnNw
b3J0IG11c3QgYmUgYXZhaWxhYmxlJyk7CisgIC8vIFRlc3Qgb3V0Y29tZSBkZXBlbmRzIG9uIGNh
blNlbmRTaXplIHZhbHVlCisgIGlmIChjYW5TZW5kU2l6ZSAhPT0gMCkgeworICAgIGFzc2VydF9l
cXVhbHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6ZSwgTWF0aC5taW4oNjU1MzYsIGNhblNlbmRTaXpl
KSwKKyAgICAgICdNaXNzaW5nIFNEUCBhdHRyaWJ1dGUgYW5kIGEgbm9uLXplcm8gY2FuU2VuZFNp
emUgc2hvdWxkIGdpdmUgYW4gbWF4TWVzc2FnZVNpemUgb2YgbWluKDY1NTM2LCBjYW5TZW5kU2l6
ZSknKTsKKyAgfSBlbHNlIHsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAubWF4TWVzc2FnZVNp
emUsIDY1NTM2LAorICAgICAgJ01pc3NpbmcgU0RQIGF0dHJpYnV0ZSBhbmQgYSBjYW5TZW5kU2l6
ZSBvZiAwIHNob3VsZCBnaXZlIGFuIG1heE1lc3NhZ2VTaXplIG9mIDY1NTM2Jyk7CisgIH0KIH0s
ICdSZW1vdGUgb2ZmZXIgU0RQIG1pc3NpbmcgbWF4LW1lc3NhZ2Utc2l6ZSBhdHRyaWJ1dGUnKTsK
IAotcHJvbWlzZV90ZXN0KHQgPT4geworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGFz
c2VydF9ub3RfZXF1YWxzKGNhblNlbmRTaXplLCBudWxsLCAnY2FuU2VuZFNpemUgbmVlZHMgdG8g
YmUgZGV0ZXJtaW5lZCcpOworCiAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gIGFzc2VydF9lcXVhbHMocGMu
c2N0cCwgbnVsbCk7Ci0KLSAgcmV0dXJuIGdlbmVyYXRlRGF0YUNoYW5uZWxPZmZlcihwYykKLSAg
LnRoZW4oKG9mZmVyKSA9PiB7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMobW1zQXR0cmlidXRlSGVs
cGVyLmdldFZhbHVlKG9mZmVyLnNkcCksIG51bGwsCi0gICAgICAnU0RQIHNob3VsZCBoYXZlIG1h
eC1tZXNzYWdlLXNpemUgYXR0cmlidXRlJyk7Ci0KLSAgICBvZmZlciA9IHsgdHlwZTogJ29mZmVy
Jywgc2RwOiBtbXNBdHRyaWJ1dGVIZWxwZXIuc2RwV2l0aFZhbHVlKG9mZmVyLnNkcCwgcmVtb3Rl
VmFsdWUxKSB9OwotICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7Ci0g
IH0pCi0gIC50aGVuKCgpID0+IHBjLmNyZWF0ZUFuc3dlcigpKQotICAudGhlbigoYW5zd2VyKSA9
PiBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikpCi0gIC50aGVuKCgpID0+IHsKLSAgICBh
c3NlcnRfbm90X2VxdWFscyhwYy5zY3RwLCBudWxsKTsKLSAgICBhc3NlcnRfZXF1YWxzKHBjLnNj
dHAubWF4TWVzc2FnZVNpemUsIHJlbW90ZVZhbHVlMSwKLSAgICAgICdtYXhNZXNzYWdlU2l6ZSBz
aG91bGQgYmUgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSByZW1vdGUgcGVlciAoYXMgbG9uZyBh
cyBpdCBpcyBsZXNzIHRoYW4gY2FuU2VuZFNpemUpJyk7Ci0gIH0pOworCisgIGFzc2VydF9lcXVh
bHMocGMuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBudWxsJyk7CisKKyAg
bGV0IG9mZmVyID0gYXdhaXQgZ2VuZXJhdGVEYXRhQ2hhbm5lbE9mZmVyKHBjKTsKKyAgYXNzZXJ0
X25vdF9lcXVhbHMobW1zQXR0cmlidXRlSGVscGVyLmdldFZhbHVlKG9mZmVyLnNkcCksIG51bGws
CisgICAgJ1NEUCBzaG91bGQgaGF2ZSBtYXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZScpOworCisg
IG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1tc0F0dHJpYnV0ZUhlbHBlci5zZHBXaXRo
VmFsdWUob2ZmZXIuc2RwLCByZW1vdGVTaXplMSkgfTsKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYy5jcmVhdGVBbnN3ZXIo
KTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworCisgIGFzc2VydF9u
b3RfZXF1YWxzKHBjLnNjdHAsIG51bGwsICdSVENTY3RwVHJhbnNwb3J0IG11c3QgYmUgYXZhaWxh
YmxlJyk7CisgIGFzc2VydF9lcXVhbHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6ZSwgcmVtb3RlU2l6
ZTEsCisgICAgJ21heE1lc3NhZ2VTaXplIHNob3VsZCBiZSB0aGUgdmFsdWUgcHJvdmlkZWQgYnkg
dGhlIHJlbW90ZSBwZWVyIChhcyBsb25nIGFzIGl0IGlzIGxlc3MgdGhhbiBjYW5TZW5kU2l6ZSkn
KTsKIH0sICdtYXgtbWVzc2FnZS1zaXplIHdpdGggYSAobm9uLXplcm8pIHZhbHVlIHByb3ZpZGVk
IGJ5IHRoZSByZW1vdGUgcGVlcicpOwogCi1wcm9taXNlX3Rlc3QodCA9PiB7Citwcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoY2FuU2VuZFNpemUsIG51bGws
ICdjYW5TZW5kU2l6ZSBuZWVkcyB0byBiZSBkZXRlcm1pbmVkJyk7CisKICAgY29uc3QgcGMgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKLSAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLCBudWxsKTsKLQotICByZXR1cm4gZ2VuZXJhdGVE
YXRhQ2hhbm5lbE9mZmVyKHBjKQotICAudGhlbigob2ZmZXIpID0+IHsKLSAgICBhc3NlcnRfbm90
X2VxdWFscyhtbXNBdHRyaWJ1dGVIZWxwZXIuZ2V0VmFsdWUob2ZmZXIuc2RwKSwgbnVsbCwKLSAg
ICAgICdTRFAgc2hvdWxkIGhhdmUgbWF4LW1lc3NhZ2Utc2l6ZSBhdHRyaWJ1dGUnKTsKLQotICAg
IG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1tc0F0dHJpYnV0ZUhlbHBlci5zZHBXaXRo
VmFsdWUob2ZmZXIuc2RwLCByZW1vdGVWYWx1ZTEpIH07Ci0gICAgcmV0dXJuIHBjLnNldFJlbW90
ZURlc2NyaXB0aW9uKG9mZmVyKQotICB9KQotICAudGhlbigoKSA9PiBwYy5jcmVhdGVBbnN3ZXIo
KSkKLSAgLnRoZW4oKGFuc3dlcikgPT4gcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpKQot
ICAudGhlbigoKSA9PiB7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMocGMuc2N0cCwgbnVsbCk7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLm1heE1lc3NhZ2VTaXplLCByZW1vdGVWYWx1ZTEsCi0g
ICAgICAnbWF4TWVzc2FnZVNpemUgc2hvdWxkIGJlIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUg
cmVtb3RlIHBlZXIgKGFzIGxvbmcgYXMgaXQgaXMgbGVzcyB0aGFuIGNhblNlbmRTaXplKScpOwot
ICB9KQotICAudGhlbigoKSA9PiBwYy5jcmVhdGVPZmZlcigpKSAvLyBTdGFydCBuZXcgTy9BIGV4
Y2hhbmdlIHRoYXQgdXBkYXRlcyBtYXgtbWVzc2FnZS1zaXplCi0gIC50aGVuKChvZmZlcikgPT4g
ewotICAgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1tc0F0dHJpYnV0ZUhlbHBlci5z
ZHBXaXRoVmFsdWUob2ZmZXIuc2RwLCByZW1vdGVWYWx1ZTIpfTsKLSAgICByZXR1cm4gcGMuc2V0
UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpCi0gIH0pCi0gIC50aGVuKCgpID0+IHBjLmNyZWF0ZUFu
c3dlcigpKQotICAudGhlbigoYW5zd2VyKSA9PiBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dl
cikpCi0gIC50aGVuKCgpID0+IHsKLSAgICBhc3NlcnRfbm90X2VxdWFscyhwYy5zY3RwLCBudWxs
KTsKLSAgICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAubWF4TWVzc2FnZVNpemUsIHJlbW90ZVZhbHVl
MiwKLSAgICAgICdtYXhNZXNzYWdlU2l6ZSBzaG91bGQgYmUgdGhlIG5ldyB2YWx1ZSBwcm92aWRl
ZCBieSB0aGUgcmVtb3RlIHBlZXIgKGFzIGxvbmcgYXMgaXQgaXMgbGVzcyB0aGFuIGNhblNlbmRT
aXplKScpOwotICB9KQotICA7Ci19LCAnUmVuZWdvdGlhdGUgbWF4LW1lc3NhZ2Utc2l6ZSB3aXRo
IGEgKG5vbi16ZXJvKSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcmVtb3RlIHBlZXInKTsKLQotcHJv
bWlzZV90ZXN0KHQgPT4geworCisgIGFzc2VydF9lcXVhbHMocGMuc2N0cCwgbnVsbCwgJ1JUQ1Nj
dHBUcmFuc3BvcnQgbXVzdCBiZSBudWxsJyk7CisKKyAgbGV0IG9mZmVyID0gYXdhaXQgZ2VuZXJh
dGVEYXRhQ2hhbm5lbE9mZmVyKHBjKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMobW1zQXR0cmlidXRl
SGVscGVyLmdldFZhbHVlKG9mZmVyLnNkcCksIG51bGwsCisgICAgJ1NEUCBzaG91bGQgaGF2ZSBt
YXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZScpOworCisgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXIn
LCBzZHA6IG1tc0F0dHJpYnV0ZUhlbHBlci5zZHBXaXRoVmFsdWUob2ZmZXIuc2RwLCByZW1vdGVT
aXplMSkgfTsKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBsZXQg
YW5zd2VyID0gYXdhaXQgcGMuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjLnNldExvY2FsRGVz
Y3JpcHRpb24oYW5zd2VyKTsKKworICBhc3NlcnRfbm90X2VxdWFscyhwYy5zY3RwLCBudWxsLCAn
UlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIGF2YWlsYWJsZScpOworICBhc3NlcnRfZXF1YWxzKHBj
LnNjdHAubWF4TWVzc2FnZVNpemUsIHJlbW90ZVNpemUxLAorICAgICdtYXhNZXNzYWdlU2l6ZSBz
aG91bGQgYmUgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSByZW1vdGUgcGVlciAoYXMgbG9uZyBh
cyBpdCBpcyBsZXNzIHRoYW4gY2FuU2VuZFNpemUpJyk7CisKKyAgLy8gU3RhcnQgbmV3IE8vQSBl
eGNoYW5nZSB0aGF0IHVwZGF0ZXMgbWF4LW1lc3NhZ2Utc2l6ZSB0byByZW1vdGVTaXplMgorICBv
ZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXIn
LCBzZHA6IG1tc0F0dHJpYnV0ZUhlbHBlci5zZHBXaXRoVmFsdWUob2ZmZXIuc2RwLCByZW1vdGVT
aXplMil9OworICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGFuc3dl
ciA9IGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0
aW9uKGFuc3dlcik7CisKKyAgYXNzZXJ0X25vdF9lcXVhbHMocGMuc2N0cCwgbnVsbCwgJ1JUQ1Nj
dHBUcmFuc3BvcnQgbXVzdCBiZSBhdmFpbGFibGUnKTsKKyAgYXNzZXJ0X2VxdWFscyhwYy5zY3Rw
Lm1heE1lc3NhZ2VTaXplLCByZW1vdGVTaXplMiwKKyAgICAnbWF4TWVzc2FnZVNpemUgc2hvdWxk
IGJlIHRoZSBuZXcgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVyIChhcyBsb25nIGFz
IGl0IGlzIGxlc3MgdGhhbiBjYW5TZW5kU2l6ZSknKTsKKworICAvLyBTdGFydCBuZXcgTy9BIGV4
Y2hhbmdlIHRoYXQgdXBkYXRlcyBtYXgtbWVzc2FnZS1zaXplIHRvIHplcm8KKyAgb2ZmZXIgPSBh
d2FpdCBwYy5jcmVhdGVPZmZlcigpOworICBvZmZlciA9IHsgdHlwZTogJ29mZmVyJywgc2RwOiBt
bXNBdHRyaWJ1dGVIZWxwZXIuc2RwV2l0aFZhbHVlKG9mZmVyLnNkcCwgMCl9OworICBhd2FpdCBw
Yy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0
ZUFuc3dlcigpOworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAg
YXNzZXJ0X25vdF9lcXVhbHMocGMuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBi
ZSBhdmFpbGFibGUnKTsKKyAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLm1heE1lc3NhZ2VTaXplLCBj
YW5TZW5kU2l6ZSwKKyAgICAnbWF4TWVzc2FnZVNpemUgc2hvdWxkIGJlIGNhblNlbmRTaXplJyk7
CisKKyAgLy8gU3RhcnQgbmV3IE8vQSBleGNoYW5nZSB0aGF0IHVwZGF0ZXMgbWF4LW1lc3NhZ2Ut
c2l6ZSB0byByZW1vdGVTaXplMSBhZ2FpbgorICBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVy
KCk7CisgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1tc0F0dHJpYnV0ZUhlbHBlci5z
ZHBXaXRoVmFsdWUob2ZmZXIuc2RwLCByZW1vdGVTaXplMSl9OworICBhd2FpdCBwYy5zZXRSZW1v
dGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigp
OworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgYXNzZXJ0X25v
dF9lcXVhbHMocGMuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBhdmFpbGFi
bGUnKTsKKyAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLm1heE1lc3NhZ2VTaXplLCByZW1vdGVTaXpl
MSwKKyAgICAnbWF4TWVzc2FnZVNpemUgc2hvdWxkIGJlIHRoZSBuZXcgdmFsdWUgcHJvdmlkZWQg
YnkgdGhlIHJlbW90ZSBwZWVyIChhcyBsb25nIGFzIGl0IGlzIGxlc3MgdGhhbiBjYW5TZW5kU2l6
ZSknKTsKK30sICdSZW5lZ290aWF0ZSBtYXgtbWVzc2FnZS1zaXplIHdpdGggdmFyaW91cyB2YWx1
ZXMgcHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVyJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyAo
dCkgPT4geworICBhc3NlcnRfbm90X2VxdWFscyhjYW5TZW5kU2l6ZSwgbnVsbCwgJ2NhblNlbmRT
aXplIG5lZWRzIHRvIGJlIGRldGVybWluZWQnKTsKKwogICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICBhc3Nl
cnRfZXF1YWxzKHBjLnNjdHAsIG51bGwpOwotICBjb25zdCBsYXJnZXJUaGFuQ2FuU2VuZFNpemUg
PSBjYW5TZW5kU2l6ZSArIDE7Ci0KLSAgcmV0dXJuIGdlbmVyYXRlRGF0YUNoYW5uZWxPZmZlcihw
YykKLSAgLnRoZW4oKG9mZmVyKSA9PiB7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMobW1zQXR0cmli
dXRlSGVscGVyLmdldFZhbHVlKG9mZmVyLnNkcCksIG51bGwsCi0gICAgICAnU0RQIHNob3VsZCBo
YXZlIG1heC1tZXNzYWdlLXNpemUgYXR0cmlidXRlJyk7Ci0KLSAgICBvZmZlciA9IHsgdHlwZTog
J29mZmVyJywgc2RwOiBtbXNBdHRyaWJ1dGVIZWxwZXIuc2RwV2l0aFZhbHVlKG9mZmVyLnNkcCwg
bGFyZ2VyVGhhbkNhblNlbmRTaXplKSB9OwotICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNjcmlw
dGlvbihvZmZlcikKLSAgfSkKLSAgLnRoZW4oKCkgPT4gcGMuY3JlYXRlQW5zd2VyKCkpCi0gIC50
aGVuKChhbnN3ZXIpID0+IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSkKLSAgLnRoZW4o
KCkgPT4gewotICAgIGFzc2VydF9ub3RfZXF1YWxzKHBjLnNjdHAsIG51bGwpOwotICAgIC8vIFRl
c3Qgb3V0Y29tZSBkZXBlbmRzIG9uIGNhblNlbmRTaXplIHZhbHVlCi0gICAgaWYgKGNhblNlbmRT
aXplKSB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAubWF4TWVzc2FnZVNpemUsIGNhblNl
bmRTaXplLAotICAgICAgICAnQSByZW1vdGUgdmFsdWUgbGFyZ2VyIHRoYW4gYSBub24temVybyBj
YW5TZW5kU2l6ZSBzaG91bGQgbGltaXQgbWF4TWVzc2FnZVNpemUgdG8gY2FuU2VuZFNpemUnKTsK
LSAgICB9IGVsc2UgewotICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLm1heE1lc3NhZ2VTaXpl
LCA2NTUzNiwKLSAgICAgICAgJ0EgY2FuU2VuZFNpemUgb2YgemVybyBzaG91bGQgbGV0IHRoZSBy
ZW1vdGUgdmFsdWUgc2V0IG1heE1lc3NhZ2VTaXplJyk7Ci0gICAgfQotICB9KTsKKworICBhc3Nl
cnRfZXF1YWxzKHBjLnNjdHAsIG51bGwsICdSVENTY3RwVHJhbnNwb3J0IG11c3QgYmUgbnVsbCcp
OworICBjb25zdCBsYXJnZXJUaGFuQ2FuU2VuZFNpemUgPSBjYW5TZW5kU2l6ZSA9PT0gMCA/IDAg
OiBjYW5TZW5kU2l6ZSArIDE7CisKKyAgbGV0IG9mZmVyID0gYXdhaXQgZ2VuZXJhdGVEYXRhQ2hh
bm5lbE9mZmVyKHBjKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMobW1zQXR0cmlidXRlSGVscGVyLmdl
dFZhbHVlKG9mZmVyLnNkcCksIG51bGwsCisgICAgJ1NEUCBzaG91bGQgaGF2ZSBtYXgtbWVzc2Fn
ZS1zaXplIGF0dHJpYnV0ZScpOworCisgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1t
c0F0dHJpYnV0ZUhlbHBlci5zZHBXaXRoVmFsdWUob2ZmZXIuc2RwLCBsYXJnZXJUaGFuQ2FuU2Vu
ZFNpemUpIH07CisgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29u
c3QgYW5zd2VyID0gYXdhaXQgcGMuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjLnNldExvY2Fs
RGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBhc3NlcnRfbm90X2VxdWFscyhwYy5zY3RwLCBudWxs
LCAnUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIGF2YWlsYWJsZScpOworICAvLyBUZXN0IG91dGNv
bWUgZGVwZW5kcyBvbiBjYW5TZW5kU2l6ZSB2YWx1ZQorICBpZiAoY2FuU2VuZFNpemUgIT09IDAp
IHsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAubWF4TWVzc2FnZVNpemUsIGNhblNlbmRTaXpl
LAorICAgICAgJ0EgcmVtb3RlIHZhbHVlIGxhcmdlciB0aGFuIGEgbm9uLXplcm8gY2FuU2VuZFNp
emUgc2hvdWxkIGxpbWl0IG1heE1lc3NhZ2VTaXplIHRvIGNhblNlbmRTaXplJyk7CisgIH0gZWxz
ZSB7CisgICAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLm1heE1lc3NhZ2VTaXplLCBOdW1iZXIuUE9T
SVRJVkVfSU5GSU5JVFksCisgICAgICAnQSByZW1vdGUgdmFsdWUgb2YgemVybyBhbmQgY2FuU2Vu
ZFNpemUgemVybyBzaG91bGQgcmVzdWx0IGluICJpbmZpbml0eSInKTsKKyAgfQogfSwgJ21heC1t
ZXNzYWdlLXNpemUgd2l0aCBhIChub24temVybykgdmFsdWUgbGFyZ2VyIHRoYW4gY2FuU2VuZFNp
emUgcHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVyJyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
U3RhdHMtaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDU3RhdHMtaGVscGVyLmpzCmluZGV4IGU5MWI0MGI2ODU0ZjFjYzZjNTlm
N2Q4MWJmMDZhNDBlNmRjMGQzMWYuLjgxYWJlMjQ1NmU5NGJiODRlNGQ1NmM5NzgxZGMzMDJhNTAy
NDkwZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanMKQEAgLTI1
LDcgKzI1LDggQEAKICAgICAgICJjYW5kaWRhdGUtcGFpciIsCiAgICAgICAibG9jYWwtY2FuZGlk
YXRlIiwKICAgICAgICJyZW1vdGUtY2FuZGlkYXRlIiwKLSAgICAgICJjZXJ0aWZpY2F0ZSIKKyAg
ICAgICJjZXJ0aWZpY2F0ZSIsCisgICAgICAiaWNlLXNlcnZlciIKICAgICB9OwogICovCiBjb25z
dCBzdGF0c1ZhbGlkYXRvclRhYmxlID0gewpAQCAtMzQsMTYgKzM1LDE5IEBAIGNvbnN0IHN0YXRz
VmFsaWRhdG9yVGFibGUgPSB7CiAgICdvdXRib3VuZC1ydHAnOiB2YWxpZGF0ZU91dGJvdW5kUnRw
U3RyZWFtU3RhdHMsCiAgICdyZW1vdGUtaW5ib3VuZC1ydHAnOiB2YWxpZGF0ZVJlbW90ZUluYm91
bmRSdHBTdHJlYW1TdGF0cywKICAgJ3JlbW90ZS1vdXRib3VuZC1ydHAnOiB2YWxpZGF0ZVJlbW90
ZU91dGJvdW5kUnRwU3RyZWFtU3RhdHMsCisgICdtZWRpYS1zb3VyY2UnOiB2YWxpZGF0ZU1lZGlh
U291cmNlU3RhdHMsCiAgICdjc3JjJzogdmFsaWRhdGVDb250cmlidXRpbmdTb3VyY2VTdGF0cywK
ICAgJ3BlZXItY29ubmVjdGlvbic6IHZhbGlkYXRlUGVlckNvbm5lY3Rpb25TdGF0cywKICAgJ2Rh
dGEtY2hhbm5lbCc6IHZhbGlkYXRlRGF0YUNoYW5uZWxTdGF0cywKLSAgJ3N0cmVhbSc6IHZhbGlk
YXRlTWVkaWFTdHJlYW1TdGF0cywKLSAgJ3RyYWNrJzogdmFsaWRhdGVNZWRpYVN0cmVhbVRyYWNr
U3RhdHMsCisgICd0cmFuc2NlaXZlcic6IHZhbGlkYXRlVHJhbnNjZWl2ZXJTdGF0cywKKyAgJ3Nl
bmRlcic6IHZhbGlkYXRlU2VuZGVyU3RhdHMsCisgICdyZWNlaXZlcic6IHZhbGlkYXRlUmVjZWl2
ZXJTdGF0cywKICAgJ3RyYW5zcG9ydCc6IHZhbGlkYXRlVHJhbnNwb3J0U3RhdHMsCiAgICdjYW5k
aWRhdGUtcGFpcic6IHZhbGlkYXRlSWNlQ2FuZGlkYXRlUGFpclN0YXRzLAogICAnbG9jYWwtY2Fu
ZGlkYXRlJzogdmFsaWRhdGVJY2VDYW5kaWRhdGVTdGF0cywKICAgJ3JlbW90ZS1jYW5kaWRhdGUn
OiB2YWxpZGF0ZUljZUNhbmRpZGF0ZVN0YXRzLAotICAnY2VydGlmaWNhdGUnOiB2YWxpZGF0ZUNl
cnRpZmljYXRlU3RhdHMKKyAgJ2NlcnRpZmljYXRlJzogdmFsaWRhdGVDZXJ0aWZpY2F0ZVN0YXRz
LAorICAnaWNlLXNlcnZlcic6IHZhbGlkYXRlSWNlU2VydmVyU3RhdHMKIH07CiAKIC8vIFZhbGlk
YXRlIHRoYXQgdGhlIHN0YXRzIG9iamVjdHMgaW4gYSBzdGF0cyByZXBvcnQKQEAgLTE0Myw1OCAr
MTQ3LDQ0IEBAIGZ1bmN0aW9uIHZhbGlkYXRlUnRjU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7
CiAKIC8qCiAgIFt3ZWJydGMtc3RhdHNdCi0gIDcuMS4gIFJUQ1JUUFN0cmVhbVN0YXRzIGRpY3Rp
b25hcnkKLSAgICBkaWN0aW9uYXJ5IFJUQ1JUUFN0cmVhbVN0YXRzIDogUlRDU3RhdHMgewotICAg
ICAgdW5zaWduZWQgbG9uZyAgICAgIHNzcmM7Ci0gICAgICBET01TdHJpbmcgICAgICAgICAgbWVk
aWFUeXBlOwotICAgICAgRE9NU3RyaW5nICAgICAgICAgIHRyYWNrSWQ7Ci0gICAgICBET01TdHJp
bmcgICAgICAgICAgdHJhbnNwb3J0SWQ7Ci0gICAgICBET01TdHJpbmcgICAgICAgICAgY29kZWNJ
ZDsKLSAgICAgIHVuc2lnbmVkIGxvbmcgICAgICBmaXJDb3VudDsKLSAgICAgIHVuc2lnbmVkIGxv
bmcgICAgICBwbGlDb3VudDsKLSAgICAgIHVuc2lnbmVkIGxvbmcgICAgICBuYWNrQ291bnQ7Ci0g
ICAgICB1bnNpZ25lZCBsb25nICAgICAgc2xpQ291bnQ7Ci0gICAgICB1bnNpZ25lZCBsb25nIGxv
bmcgcXBTdW07CisgIDcuMS4gIFJUQ1J0cFN0cmVhbVN0YXRzIGRpY3Rpb25hcnkKKyAgICBkaWN0
aW9uYXJ5IFJUQ1J0cFN0cmVhbVN0YXRzIDogUlRDU3RhdHMgeworICAgICAgdW5zaWduZWQgbG9u
ZyAgICAgICBzc3JjOworICAgICAgRE9NU3RyaW5nICAgICAgICAgICBraW5kOworICAgICAgRE9N
U3RyaW5nICAgICAgICAgICB0cmFuc3BvcnRJZDsKKyAgICAgIERPTVN0cmluZyAgICAgICAgICAg
Y29kZWNJZDsKICAgICB9OwogCi0gICAgbWVkaWFUeXBlIG9mIHR5cGUgRE9NU3RyaW5nCisgICAg
a2luZCBvZiB0eXBlIERPTVN0cmluZwogICAgICAgRWl0aGVyICJhdWRpbyIgb3IgInZpZGVvIi4K
IAogICBbd2VicnRjLXBjXQogICA4LjYuICBNYW5kYXRvcnkgVG8gSW1wbGVtZW50IFN0YXRzCi0g
ICAgLSBSVENSVFBTdHJlYW1TdGF0cywgd2l0aCBhdHRyaWJ1dGVzIHNzcmMsIG1lZGlhVHlwZSwg
dHJhY2tJZCwKLSAgICAgIHRyYW5zcG9ydElkLCBjb2RlY0lkLCBuYWNrQ291bnQKKyAgICAtIFJU
Q1J0cFN0cmVhbVN0YXRzLCB3aXRoIGF0dHJpYnV0ZXMgc3NyYywga2luZCwgdHJhbnNwb3J0SWQs
IGNvZGVjSWQKICAqLwogZnVuY3Rpb24gdmFsaWRhdGVSdHBTdHJlYW1TdGF0cyhzdGF0c1JlcG9y
dCwgc3RhdHMpIHsKICAgdmFsaWRhdGVSdGNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpOwogCiAg
IGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdzc3JjJyk7Ci0gIGFzc2VydF9zdHJp
bmdfZmllbGQoc3RhdHMsICdtZWRpYVR5cGUnKTsKLSAgYXNzZXJ0X2VudW1fZmllbGQoc3RhdHMs
ICdtZWRpYVR5cGUnLCBbJ2F1ZGlvJywgJ3ZpZGVvJ10pCisgIGFzc2VydF9zdHJpbmdfZmllbGQo
c3RhdHMsICdraW5kJyk7CisgIGFzc2VydF9lbnVtX2ZpZWxkKHN0YXRzLCAna2luZCcsIFsnYXVk
aW8nLCAndmlkZW8nXSkKIAotICB2YWxpZGF0ZUlkRmllbGQoc3RhdHNSZXBvcnQsIHN0YXRzLCAn
dHJhY2tJZCcsICd0cmFjaycpOwogICB2YWxpZGF0ZUlkRmllbGQoc3RhdHNSZXBvcnQsIHN0YXRz
LCAndHJhbnNwb3J0SWQnLCAndHJhbnNwb3J0Jyk7CiAgIHZhbGlkYXRlSWRGaWVsZChzdGF0c1Jl
cG9ydCwgc3RhdHMsICdjb2RlY0lkJywgJ2NvZGVjJyk7CiAKLSAgYXNzZXJ0X29wdGlvbmFsX3Vu
c2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZpckNvdW50Jyk7Ci0gIGFzc2VydF9vcHRpb25hbF91
bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdwbGlDb3VudCcpOwotICBhc3NlcnRfb3B0aW9uYWxf
dW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnbmFja0NvdW50Jyk7Ci0gIGFzc2VydF9vcHRpb25h
bF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdzbGlDb3VudCcpOwotICBhc3NlcnRfb3B0aW9u
YWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncXBTdW0nKTsKIH0KIAogLyoKICAgW3dlYnJ0
Yy1zdGF0c10KICAgNy4yLiAgUlRDQ29kZWNTdGF0cyBkaWN0aW9uYXJ5CiAgICAgZGljdGlvbmFy
eSBSVENDb2RlY1N0YXRzIDogUlRDU3RhdHMgewotICAgICAgdW5zaWduZWQgbG9uZyBwYXlsb2Fk
VHlwZTsKKyAgICAgIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgcGF5bG9hZFR5cGU7CiAgICAgICBS
VENDb2RlY1R5cGUgIGNvZGVjVHlwZTsKLSAgICAgIERPTVN0cmluZyAgICAgdHJhbnNwb3J0SWQ7
Ci0gICAgICBET01TdHJpbmcgICAgIG1pbWVUeXBlOworICAgICAgcmVxdWlyZWQgRE9NU3RyaW5n
ICAgICB0cmFuc3BvcnRJZDsKKyAgICAgIHJlcXVpcmVkIERPTVN0cmluZyAgICAgbWltZVR5cGU7
CiAgICAgICB1bnNpZ25lZCBsb25nIGNsb2NrUmF0ZTsKICAgICAgIHVuc2lnbmVkIGxvbmcgY2hh
bm5lbHM7CiAgICAgICBET01TdHJpbmcgICAgIHNkcEZtdHBMaW5lOwotICAgICAgRE9NU3RyaW5n
ICAgICBpbXBsZW1lbnRhdGlvbjsKICAgICB9OwogCiAgICAgZW51bSBSVENDb2RlY1R5cGUgewpA
QCAtMjA0LDcgKzE5NCw3IEBAIGZ1bmN0aW9uIHZhbGlkYXRlUnRwU3RyZWFtU3RhdHMoc3RhdHNS
ZXBvcnQsIHN0YXRzKSB7CiAKICAgW3dlYnJ0Yy1wY10KICAgOC42LiAgTWFuZGF0b3J5IFRvIElt
cGxlbWVudCBTdGF0cwotICAgIC0gUlRDQ29kZWNTdGF0cywgd2l0aCBhdHRyaWJ1dGVzIHBheWxv
YWRUeXBlLCBjb2RlYywgY2xvY2tSYXRlLCBjaGFubmVscywgc2RwRm10cExpbmUKKyAgICAtIFJU
Q0NvZGVjU3RhdHMsIHdpdGggYXR0cmlidXRlcyBwYXlsb2FkVHlwZSwgY29kZWNUeXBlLCBtaW1l
VHlwZSwgY2xvY2tSYXRlLCBjaGFubmVscywgc2RwRm10cExpbmUKICAqLwogCiBmdW5jdGlvbiB2
YWxpZGF0ZUNvZGVjU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CkBAIC0yMTUsNTQgKzIwNSw1
MiBAQCBmdW5jdGlvbiB2YWxpZGF0ZUNvZGVjU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CiAK
ICAgdmFsaWRhdGVPcHRpb25hbElkRmllbGQoc3RhdHNSZXBvcnQsIHN0YXRzLCAndHJhbnNwb3J0
SWQnLCAndHJhbnNwb3J0Jyk7CiAKLSAgYXNzZXJ0X29wdGlvbmFsX3N0cmluZ19maWVsZChzdGF0
cywgJ21pbWVUeXBlJyk7CisgIGFzc2VydF9zdHJpbmdfZmllbGQoc3RhdHMsICdtaW1lVHlwZScp
OwogICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY2xvY2tSYXRlJyk7Ci0gIGFz
c2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdjaGFubmVscycpOworICBh
c3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY2hhbm5lbHMnKTsKIAotICBhc3NlcnRf
b3B0aW9uYWxfc3RyaW5nX2ZpZWxkKHN0YXRzLCAnc2RwRm10cExpbmUnKTsKLSAgYXNzZXJ0X29w
dGlvbmFsX3N0cmluZ19maWVsZChzdGF0cywgJ2ltcGxlbWVudGF0aW9uJyk7CisgIGFzc2VydF9z
dHJpbmdfZmllbGQoc3RhdHMsICdzZHBGbXRwTGluZScpOwogfQogCiAvKgogICBbd2VicnRjLXN0
YXRzXQotICA3LjMuICBSVENSZWNlaXZlZFJUUFN0cmVhbVN0YXRzIGRpY3Rpb25hcnkKLSAgICBk
aWN0aW9uYXJ5IFJUQ1JlY2VpdmVkUlRQU3RyZWFtU3RhdHMgOiBSVENSVFBTdHJlYW1TdGF0cyB7
Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICBwYWNrZXRzUmVjZWl2ZWQ7Ci0gICAgICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyBieXRlc1JlY2VpdmVkOwotICAgICAgICBsb25nICAgICAgICAgICAg
ICAgcGFja2V0c0xvc3Q7Ci0gICAgICAgIGRvdWJsZSAgICAgICAgICAgICBqaXR0ZXI7Ci0gICAg
ICAgIGRvdWJsZSAgICAgICAgICAgICBmcmFjdGlvbkxvc3Q7Ci0gICAgICAgIHVuc2lnbmVkIGxv
bmcgICAgICBwYWNrZXRzRGlzY2FyZGVkOwotICAgICAgICB1bnNpZ25lZCBsb25nICAgICAgcGFj
a2V0c0ZhaWxlZERlY3J5cHRpb247Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICBwYWNrZXRz
UmVwYWlyZWQ7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICBidXJzdFBhY2tldHNMb3N0Owot
ICAgICAgICB1bnNpZ25lZCBsb25nICAgICAgYnVyc3RQYWNrZXRzRGlzY2FyZGVkOwotICAgICAg
ICB1bnNpZ25lZCBsb25nICAgICAgYnVyc3RMb3NzQ291bnQ7Ci0gICAgICAgIHVuc2lnbmVkIGxv
bmcgICAgICBidXJzdERpc2NhcmRDb3VudDsKLSAgICAgICAgZG91YmxlICAgICAgICAgICAgIGJ1
cnN0TG9zc1JhdGU7Ci0gICAgICAgIGRvdWJsZSAgICAgICAgICAgICBidXJzdERpc2NhcmRSYXRl
OwotICAgICAgICBkb3VibGUgICAgICAgICAgICAgZ2FwTG9zc1JhdGU7Ci0gICAgICAgIGRvdWJs
ZSAgICAgICAgICAgICBnYXBEaXNjYXJkUmF0ZTsKKyAgNy4zLiAgUlRDUmVjZWl2ZWRSdHBTdHJl
YW1TdGF0cyBkaWN0aW9uYXJ5CisgICAgZGljdGlvbmFyeSBSVENSZWNlaXZlZFJ0cFN0cmVhbVN0
YXRzIDogUlRDUnRwU3RyZWFtU3RhdHMgeworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgcGFj
a2V0c1JlY2VpdmVkOworICAgICAgbG9uZyBsb25nICAgICAgICAgICAgcGFja2V0c0xvc3Q7Cisg
ICAgICBkb3VibGUgICAgICAgICAgICAgICBqaXR0ZXI7CisgICAgICB1bnNpZ25lZCBsb25nIGxv
bmcgICBwYWNrZXRzRGlzY2FyZGVkOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgcGFja2V0
c1JlcGFpcmVkOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgYnVyc3RQYWNrZXRzTG9zdDsK
KyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIGJ1cnN0UGFja2V0c0Rpc2NhcmRlZDsKKyAgICAg
IHVuc2lnbmVkIGxvbmcgICAgICAgIGJ1cnN0TG9zc0NvdW50OworICAgICAgdW5zaWduZWQgbG9u
ZyAgICAgICAgYnVyc3REaXNjYXJkQ291bnQ7CisgICAgICBkb3VibGUgICAgICAgICAgICAgICBi
dXJzdExvc3NSYXRlOworICAgICAgZG91YmxlICAgICAgICAgICAgICAgYnVyc3REaXNjYXJkUmF0
ZTsKKyAgICAgIGRvdWJsZSAgICAgICAgICAgICAgIGdhcExvc3NSYXRlOworICAgICAgZG91Ymxl
ICAgICAgICAgICAgICAgZ2FwRGlzY2FyZFJhdGU7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAg
ICBmcmFtZXNEcm9wcGVkOworICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgcGFydGlhbEZyYW1l
c0xvc3Q7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBmdWxsRnJhbWVzTG9zdDsKICAgICB9
OwogCiAgICAgW3dlYnJ0Yy1wY10KICAgICA4LjYuICBNYW5kYXRvcnkgVG8gSW1wbGVtZW50IFN0
YXRzCi0gICAgICAtIFJUQ1JlY2VpdmVkUlRQU3RyZWFtU3RhdHMsIHdpdGggYWxsIHJlcXVpcmVk
IGF0dHJpYnV0ZXMgZnJvbSBpdHMKKyAgICAgIC0gUlRDUmVjZWl2ZWRSdHBTdHJlYW1TdGF0cywg
d2l0aCBhbGwgcmVxdWlyZWQgYXR0cmlidXRlcyBmcm9tIGl0cwogICAgICAgICBpbmhlcml0ZWQg
ZGljdGlvbmFyaWVzLCBhbmQgYWxzbyBhdHRyaWJ1dGVzIHBhY2tldHNSZWNlaXZlZCwKLSAgICAg
ICAgYnl0ZXNSZWNlaXZlZCwgcGFja2V0c0xvc3QsIGppdHRlciwgcGFja2V0c0Rpc2NhcmRlZAor
ICAgICAgICBwYWNrZXRzTG9zdCwgaml0dGVyLCBwYWNrZXRzRGlzY2FyZGVkLCBmcmFtZXNEcm9w
cGVkCiAgKi8KIGZ1bmN0aW9uIHZhbGlkYXRlUmVjZWl2ZWRSdHBTdHJlYW1TdGF0cyhzdGF0c1Jl
cG9ydCwgc3RhdHMpIHsKICAgdmFsaWRhdGVSdHBTdHJlYW1TdGF0cyhzdGF0c1JlcG9ydCwgc3Rh
dHMpOwogCiAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdwYWNrZXRzUmVjZWl2
ZWQnKTsKLSAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2J5dGVzUmVjZWl2ZWQn
KTsKICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhY2tldHNMb3N0Jyk7CiAK
ICAgYXNzZXJ0X251bWJlcl9maWVsZChzdGF0cywgJ2ppdHRlcicpOwotICBhc3NlcnRfb3B0aW9u
YWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnZnJhY3Rpb25Mb3N0Jyk7CiAKICAgYXNzZXJ0X3Vuc2ln
bmVkX2ludF9maWVsZChzdGF0cywgJ3BhY2tldHNEaXNjYXJkZWQnKTsKLSAgYXNzZXJ0X29wdGlv
bmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhY2tldHNGYWlsZWREZWNyeXB0aW9uJyk7
CisgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZXNEcm9wcGVkJyk7CisK
ICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhY2tldHNSZXBh
aXJlZCcpOwogICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnYnVy
c3RQYWNrZXRzTG9zdCcpOwogICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0
YXRzLCAnYnVyc3RQYWNrZXRzRGlzY2FyZGVkJyk7CkBAIC0yNzMsNDEgKzI2MSwxNDMgQEAgZnVu
Y3Rpb24gdmFsaWRhdGVSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykg
ewogICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnYnVyc3REaXNjYXJkUmF0
ZScpOwogICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnZ2FwTG9zc1JhdGUn
KTsKICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywgJ2dhcERpc2NhcmRSYXRl
Jyk7CisKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhcnRp
YWxGcmFtZXNMb3N0Jyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3Rh
dHMsICdmdWxsRnJhbWVzTG9zdCcpOwogfQogCiAvKgogICBbd2VicnRjLXN0YXRzXQotICA3LjQu
ICBSVENJbmJvdW5kUlRQU3RyZWFtU3RhdHMgZGljdGlvbmFyeQotICAgIGRpY3Rpb25hcnkgUlRD
SW5ib3VuZFJUUFN0cmVhbVN0YXRzIDogUlRDUmVjZWl2ZWRSVFBTdHJlYW1TdGF0cyB7Ci0gICAg
ICBET01TdHJpbmcgICAgICAgICAgIHJlbW90ZUlkOwotICAgICAgdW5zaWduZWQgbG9uZyAgICAg
ICBmcmFtZXNEZWNvZGVkOwotICAgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBsYXN0UGFja2V0UmVj
ZWl2ZWRUaW1lc3RhbXA7CisgIDcuNC4gIFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cyBkaWN0aW9u
YXJ5CisgICAgZGljdGlvbmFyeSBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHMgOiBSVENSZWNlaXZl
ZFJ0cFN0cmVhbVN0YXRzIHsKKyAgICAgIERPTVN0cmluZyAgICAgICAgICAgIHRyYWNrSWQ7Cisg
ICAgICBET01TdHJpbmcgICAgICAgICAgICByZWNlaXZlcklkOworICAgICAgRE9NU3RyaW5nICAg
ICAgICAgICAgcmVtb3RlSWQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBmcmFtZXNEZWNv
ZGVkOworICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAga2V5RnJhbWVzRGVjb2RlZDsKKyAgICAg
IHVuc2lnbmVkIGxvbmcgICAgICAgIGZyYW1lV2lkdGg7CisgICAgICB1bnNpZ25lZCBsb25nICAg
ICAgICBmcmFtZUhlaWdodDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIGZyYW1lQml0RGVw
dGg7CisgICAgICBkb3VibGUgICAgICAgICAgICAgICBmcmFtZXNQZXJTZWNvbmQ7CisgICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgICBxcFN1bTsKKyAgICAgIGRvdWJsZSAgICAgICAgICAgICAgIHRv
dGFsRGVjb2RlVGltZTsKKyAgICAgIGRvdWJsZSAgICAgICAgICAgICAgIHRvdGFsSW50ZXJGcmFt
ZURlbGF5OworICAgICAgZG91YmxlICAgICAgICAgICAgICAgdG90YWxTcXVhcmVkSW50ZXJGcmFt
ZURlbGF5OworICAgICAgYm9vbGVhbiAgICAgICAgICAgICAgdm9pY2VBY3Rpdml0eUZsYWc7Cisg
ICAgICBET01IaWdoUmVzVGltZVN0YW1wICBsYXN0UGFja2V0UmVjZWl2ZWRUaW1lc3RhbXA7Cisg
ICAgICBkb3VibGUgICAgICAgICAgICAgICBhdmVyYWdlUnRjcEludGVydmFsOworICAgICAgdW5z
aWduZWQgbG9uZyBsb25nICAgaGVhZGVyQnl0ZXNSZWNlaXZlZDsKKyAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyAgIGZlY1BhY2tldHNSZWNlaXZlZDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAg
IGZlY1BhY2tldHNEaXNjYXJkZWQ7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBieXRlc1Jl
Y2VpdmVkOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgcGFja2V0c0ZhaWxlZERlY3J5cHRp
b247CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBwYWNrZXRzRHVwbGljYXRlZDsKKyAgICAg
IHJlY29yZDxVU1ZTdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZz4gcGVyRHNjcFBhY2tldHNSZWNl
aXZlZDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIG5hY2tDb3VudDsKKyAgICAgIHVuc2ln
bmVkIGxvbmcgICAgICAgIGZpckNvdW50OworICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgcGxp
Q291bnQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBzbGlDb3VudDsKKyAgICAgIERPTUhp
Z2hSZXNUaW1lU3RhbXAgIGVzdGltYXRlZFBsYXlvdXRUaW1lc3RhbXA7CisgICAgICBkb3VibGUg
ICAgICAgIGppdHRlckJ1ZmZlckRlbGF5OworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgaml0
dGVyQnVmZmVyRW1pdHRlZENvdW50OworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgdG90YWxT
YW1wbGVzUmVjZWl2ZWQ7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBzYW1wbGVzRGVjb2Rl
ZFdpdGhTaWxrOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgc2FtcGxlc0RlY29kZWRXaXRo
Q2VsdDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIGNvbmNlYWxlZFNhbXBsZXM7CisgICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgICBzaWxlbnRDb25jZWFsZWRTYW1wbGVzOworICAgICAgdW5z
aWduZWQgbG9uZyBsb25nICAgY29uY2VhbG1lbnRFdmVudHM7CisgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgICBpbnNlcnRlZFNhbXBsZXNGb3JEZWNlbGVyYXRpb247CisgICAgICB1bnNpZ25lZCBs
b25nIGxvbmcgICByZW1vdmVkU2FtcGxlc0ZvckFjY2VsZXJhdGlvbjsKKyAgICAgIGRvdWJsZSAg
ICAgICAgICAgICAgIGF1ZGlvTGV2ZWw7CisgICAgICBkb3VibGUgICAgICAgICAgICAgICB0b3Rh
bEF1ZGlvRW5lcmd5OworICAgICAgZG91YmxlICAgICAgICAgICAgICAgdG90YWxTYW1wbGVzRHVy
YXRpb247CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBmcmFtZXNSZWNlaXZlZDsKKyAgICAg
IERPTVN0cmluZyAgICAgICAgICAgIGRlY29kZXJJbXBsZW1lbnRhdGlvbjsKICAgICB9OwogCiAg
IFt3ZWJydGMtcGNdCiAgIDguNi4gIE1hbmRhdG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKLSAgICAt
IFJUQ0luYm91bmRSVFBTdHJlYW1TdGF0cywgd2l0aCBhbGwgcmVxdWlyZWQgYXR0cmlidXRlcyBm
cm9tIGl0cyBpbmhlcml0ZWQKLSAgICAgIGRpY3Rpb25hcmllcywgYW5kIGFsc28gYXR0cmlidXRl
cyByZW1vdGVJZCwgZnJhbWVzRGVjb2RlZAorICAgIC0gUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRz
LCB3aXRoIGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzIGZyb20gaXRzIGluaGVyaXRlZAorICAgICAg
ZGljdGlvbmFyaWVzLCBhbmQgYWxzbyBhdHRyaWJ1dGVzIHJlY2VpdmVySWQsIHJlbW90ZUlkLCBm
cmFtZXNEZWNvZGVkLCBuYWNrQ291bnQsIGZyYW1lc1JlY2VpdmVkLCBieXRlc1JlY2VpdmVkLCB0
b3RhbEF1ZGlvRW5lcmd5LCB0b3RhbFNhbXBsZUR1cmF0aW9uCiAgKi8KIGZ1bmN0aW9uIHZhbGlk
YXRlSW5ib3VuZFJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogICB2YWxpZGF0
ZVJlY2VpdmVkUnRwU3RyZWFtU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKTsKLQorICB2YWxpZGF0
ZU9wdGlvbmFsSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICd0cmFja0lkJywgJ3RyYWNrJyk7
CisgIHZhbGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICdyZWNlaXZlcklkJywgJ3Jl
Y2VpdmVyJyk7CiAgIHZhbGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICdyZW1vdGVJ
ZCcsICdyZW1vdGUtb3V0Ym91bmQtcnRwJyk7CiAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQo
c3RhdHMsICdmcmFtZXNEZWNvZGVkJyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRf
ZmllbGQoc3RhdHMsICdrZXlGcmFtZXNEZWNvZGVkJyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNp
Z25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZVdpZHRoJyk7CisgIGFzc2VydF9vcHRpb25hbF91
bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZUhlaWdodCcpOworICBhc3NlcnRfb3B0aW9u
YWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZnJhbWVCaXREZXB0aCcpOworICBhc3NlcnRf
b3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnZnJhbWVzUGVyU2Vjb25kJyk7CisgIGFzc2Vy
dF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdxcFN1bScpOworICBhc3NlcnRf
b3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAndG90YWxEZWNvZGVUaW1lJyk7CisgIGFzc2Vy
dF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3RhdHMsICd0b3RhbEludGVyRnJhbWVEZWxheScpOwor
ICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAndG90YWxTcXVhcmVkSW50ZXJG
cmFtZURlbGF5Jyk7CisKKyAgYXNzZXJ0X29wdGlvbmFsX2Jvb2xlYW5fZmllbGQoc3RhdHMsICd2
b2ljZUFjdGl2aXR5RmxhZycpOworCiAgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3Rh
dHMsICdsYXN0UGFja2V0UmVjZWl2ZWRUaW1lU3RhbXAnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX251
bWJlcl9maWVsZChzdGF0cywgJ2F2ZXJhZ2VSdGNwSW50ZXJ2YWwnKTsKKworICBhc3NlcnRfb3B0
aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZmVjUGFja2V0c1JlY2VpdmVkJyk7Cisg
IGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmZWNQYWNrZXRzRGlz
Y2FyZGVkJyk7CisgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdieXRlc1JlY2Vp
dmVkJyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdwYWNr
ZXRzRmFpbGVkRGVjcnlwdGlvbicpOworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2Zp
ZWxkKHN0YXRzLCAncGFja2V0c0R1cGxpY2F0ZWQnKTsKKworICBhc3NlcnRfb3B0aW9uYWxfZGlj
dF9maWVsZChzdGF0cywgJ3BlckRzY3BQYWNrZXRzUmVjZWl2ZWQnKTsKKyAgaWYgKHN0YXRzWydw
ZXJEc2NwUGFja2V0c1JlY2VpdmVkJ10pIHsKKyAgICBPYmplY3Qua2V5cyhzdGF0c1sncGVyRHNj
cFBhY2tldHNSZWNlaXZlZCddKQorICAgICAgLmZvckVhY2goayA9PgorICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyh0eXBlb2YgaywgJ3N0cmluZycsICdFeHBlY3Qga2V5cyBvZiBwZXJEc2Nw
UGFja2V0c1JlY2VpdmVkIHRvIGJlIHN0cmluZ3MnKQorICAgICAgICAgICAgICApOworICAgIE9i
amVjdC52YWx1ZXMoc3RhdHNbJ3BlckRzY3BQYWNrZXRzUmVjZWl2ZWQnXSkKKyAgICAgIC5mb3JF
YWNoKHYgPT4KKyAgICAgICAgICAgICAgIGFzc2VydF90cnVlKE51bWJlci5pc0ludGVnZXIodikg
JiYgKHYgPj0gMCksICdFeHBlY3QgdmFsdWVzIG9mIHBlckRzY3BQYWNrZXRzUmVjZWl2ZWQgdG8g
YmUgc3RyaW5ncycpCisgICAgICAgICAgICAgICk7CisgIH0KKworICBhc3NlcnRfdW5zaWduZWRf
aW50X2ZpZWxkKHN0YXRzLCAnbmFja0NvdW50Jyk7CisKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2ln
bmVkX2ludF9maWVsZChzdGF0cywgJ2ZpckNvdW50Jyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNp
Z25lZF9pbnRfZmllbGQoc3RhdHMsICdwbGlDb3VudCcpOworICBhc3NlcnRfb3B0aW9uYWxfdW5z
aWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnc2xpQ291bnQnKTsKKworICBhc3NlcnRfb3B0aW9uYWxf
bnVtYmVyX2ZpZWxkKHN0YXRzLCAnZXN0aW1hdGVkUGxheW91dFRpbWVzdGFtcCcpOworICBhc3Nl
cnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnaml0dGVyQnVmZmVyRGVsYXknKTsKKyAg
YXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ppdHRlckJ1ZmZlckVt
aXR0ZWRDb3VudCcpOworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRz
LCAndG90YWxTYW1wbGVzUmVjZWl2ZWQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2lu
dF9maWVsZChzdGF0cywgJ3NhbXBsZXNEZWNvZGVkV2l0aFNpbGsnKTsKKyAgYXNzZXJ0X29wdGlv
bmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3NhbXBsZXNEZWNvZGVkV2l0aENlbHQnKTsK
KyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2NvbmNlYWxlZFNh
bXBsZXMnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3Np
bGVudENvbmNlYWxlZFNhbXBsZXMnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9m
aWVsZChzdGF0cywgJ2NvbmNlYWxtZW50RXZlbnRzJyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNp
Z25lZF9pbnRfZmllbGQoc3RhdHMsICdpbnNlcnRlZFNhbXBsZXNGb3JEZWNlbGVyYXRpb24nKTsK
KyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3JlbW92ZWRTYW1w
bGVzRm9yQWNjZWxlcmF0aW9uJyk7CisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3Rh
dHMsICdhdWRpb0xldmVsJyk7CisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3RhdHMs
ICd0b3RhbEF1ZGlvRW5lcmd5Jyk7CisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3Rh
dHMsICd0b3RhbFNhbXBsZXNEdXJhdGlvbicpOworICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxk
KHN0YXRzLCAnZnJhbWVzUmVjZWl2ZWQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3N0cmluZ19maWVs
ZChzdGF0cywgJ2RlY29kZXJJbXBsZW1lbnRhdGlvbicpOwogfQogCiAvKgogICBbd2VicnRjLXN0
YXRzXQotICA3LjUuICBSVENSZW1vdGVJbmJvdW5kUlRQU3RyZWFtU3RhdHMgZGljdGlvbmFyeQot
ICAgIGRpY3Rpb25hcnkgUlRDUmVtb3RlSW5ib3VuZFJUUFN0cmVhbVN0YXRzIDogUlRDUmVjZWl2
ZWRSVFBTdHJlYW1TdGF0cyB7Ci0gICAgICAgIERPTVN0cmluZyBsb2NhbElkOwotICAgICAgICBk
b3VibGUgICAgcm91bmRUcmlwVGltZTsKKyAgNy41LiAgUlRDUmVtb3RlSW5ib3VuZFJ0cFN0cmVh
bVN0YXRzIGRpY3Rpb25hcnkKKyAgICBkaWN0aW9uYXJ5IFJUQ1JlbW90ZUluYm91bmRSdHBTdHJl
YW1TdGF0cyA6IFJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMgeworICAgICAgRE9NU3RyaW5nICAg
ICAgICAgICAgbG9jYWxJZDsKKyAgICAgIGRvdWJsZSAgICAgICAgICAgICAgIHJvdW5kVHJpcFRp
bWU7CisgICAgICBkb3VibGUgICAgICAgICAgICAgICB0b3RhbFJvdW5kVHJpcFRpbWU7CisgICAg
ICBkb3VibGUgICAgICAgICAgICAgICBmcmFjdGlvbkxvc3Q7CisgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgICByZXBvcnRzUmVjZWl2ZWQ7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICByb3Vu
ZFRyaXBUaW1lTWVhc3VyZW1lbnRzOwogICAgIH07CiAKICAgW3dlYnJ0Yy1wY10KICAgOC42LiAg
TWFuZGF0b3J5IFRvIEltcGxlbWVudCBTdGF0cwotICAgIC0gUlRDUmVtb3RlSW5ib3VuZFJUUFN0
cmVhbVN0YXRzLCB3aXRoIGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzIGZyb20gaXRzCisgICAgLSBS
VENSZW1vdGVJbmJvdW5kUnRwU3RyZWFtU3RhdHMsIHdpdGggYWxsIHJlcXVpcmVkIGF0dHJpYnV0
ZXMgZnJvbSBpdHMKICAgICAgIGluaGVyaXRlZCBkaWN0aW9uYXJpZXMsIGFuZCBhbHNvIGF0dHJp
YnV0ZXMgbG9jYWxJZCwgcm91bmRUcmlwVGltZQogICovCiBmdW5jdGlvbiB2YWxpZGF0ZVJlbW90
ZUluYm91bmRSdHBTdHJlYW1TdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKQEAgLTMxNSw3NCAr
NDA1LDE3NCBAQCBmdW5jdGlvbiB2YWxpZGF0ZVJlbW90ZUluYm91bmRSdHBTdHJlYW1TdGF0cyhz
dGF0c1JlcG9ydCwgc3RhdHMpIHsKIAogICB2YWxpZGF0ZUlkRmllbGQoc3RhdHNSZXBvcnQsIHN0
YXRzLCAnbG9jYWxJZCcsICdvdXRib3VuZC1ydHAnKTsKICAgYXNzZXJ0X251bWJlcl9maWVsZChz
dGF0cywgJ3JvdW5kVHJpcFRpbWUnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChz
dGF0cywgJ3RvdGFsUm91bmRUcmlwVGltZScpOworICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2Zp
ZWxkKHN0YXRzLCAnZnJhY3Rpb25Mb3N0Jyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9p
bnRfZmllbGQoc3RhdHMsICdyZXBvcnRzUmVjZWl2ZWQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vu
c2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3JvdW5kVHJpcFRpbWVNZWFzdXJlbWVudHMnKTsKIH0K
IAogLyoKICAgW3dlYnJ0Yy1zdGF0c10KLSAgNy42LiAgUlRDU2VudFJUUFN0cmVhbVN0YXRzIGRp
Y3Rpb25hcnkKLSAgICBkaWN0aW9uYXJ5IFJUQ1NlbnRSVFBTdHJlYW1TdGF0cyA6IFJUQ1JUUFN0
cmVhbVN0YXRzIHsKKyAgNy42LiAgUlRDU2VudFJ0cFN0cmVhbVN0YXRzIGRpY3Rpb25hcnkKKyAg
ICBkaWN0aW9uYXJ5IFJUQ1NlbnRSdHBTdHJlYW1TdGF0cyA6IFJUQ1J0cFN0cmVhbVN0YXRzIHsK
ICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICBwYWNrZXRzU2VudDsKLSAgICAgIHVuc2lnbmVkIGxv
bmcgICAgICBwYWNrZXRzRGlzY2FyZGVkT25TZW5kOwogICAgICAgdW5zaWduZWQgbG9uZyBsb25n
IGJ5dGVzU2VudDsKLSAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc0Rpc2NhcmRlZE9uU2Vu
ZDsKICAgICB9OwogCiAgICAgW3dlYnJ0Yy1wY10KICAgICA4LjYuICBNYW5kYXRvcnkgVG8gSW1w
bGVtZW50IFN0YXRzCi0gICAgICAtIFJUQ1NlbnRSVFBTdHJlYW1TdGF0cywgd2l0aCBhbGwgcmVx
dWlyZWQgYXR0cmlidXRlcyBmcm9tIGl0cyBpbmhlcml0ZWQKKyAgICAgIC0gUlRDU2VudFJ0cFN0
cmVhbVN0YXRzLCB3aXRoIGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzIGZyb20gaXRzIGluaGVyaXRl
ZAogICAgICAgICBkaWN0aW9uYXJpZXMsIGFuZCBhbHNvIGF0dHJpYnV0ZXMgcGFja2V0c1NlbnQs
IGJ5dGVzU2VudAogICovCiBmdW5jdGlvbiB2YWxpZGF0ZVNlbnRSdHBTdHJlYW1TdGF0cyhzdGF0
c1JlcG9ydCwgc3RhdHMpIHsKICAgdmFsaWRhdGVSdHBTdHJlYW1TdGF0cyhzdGF0c1JlcG9ydCwg
c3RhdHMpOwogCiAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdwYWNrZXRzU2Vu
dCcpOwotICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncGFja2V0
c0Rpc2NhcmRlZE9uU2VuZCcpOwogICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAn
Ynl0ZXNTZW50Jyk7Ci0gIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMs
ICdieXRlc0Rpc2NhcmRlZE9uU2VuZCcpOwogfQogCiAvKgogICBbd2VicnRjLXN0YXRzXQotICA3
LjcuICBSVENPdXRib3VuZFJUUFN0cmVhbVN0YXRzIGRpY3Rpb25hcnkKLSAgICBkaWN0aW9uYXJ5
IFJUQ091dGJvdW5kUlRQU3RyZWFtU3RhdHMgOiBSVENTZW50UlRQU3RyZWFtU3RhdHMgewotICAg
ICAgRE9NU3RyaW5nICAgICAgICAgICByZW1vdGVJZDsKLSAgICAgIERPTUhpZ2hSZXNUaW1lU3Rh
bXAgbGFzdFBhY2tldFNlbnRUaW1lc3RhbXA7Ci0gICAgICBkb3VibGUgICAgICAgICAgICAgIHRh
cmdldEJpdHJhdGU7Ci0gICAgICB1bnNpZ25lZCBsb25nICAgICAgIGZyYW1lc0VuY29kZWQ7Ci0g
ICAgICBkb3VibGUgICAgICAgICAgICAgIHRvdGFsRW5jb2RlVGltZTsKLSAgICAgIGRvdWJsZSAg
ICAgICAgICAgICAgYXZlcmFnZVJUQ1BJbnRlcnZhbDsKKyAgNy43LiAgUlRDT3V0Ym91bmRSdHBT
dHJlYW1TdGF0cyBkaWN0aW9uYXJ5CisgICAgZGljdGlvbmFyeSBSVENPdXRib3VuZFJ0cFN0cmVh
bVN0YXRzIDogUlRDU2VudFJ0cFN0cmVhbVN0YXRzIHsKKyAgICAgIERPTVN0cmluZyAgICAgICAg
ICAgIG1lZGlhU291cmNlSWQ7CisgICAgICBET01TdHJpbmcgICAgICAgICAgICBzZW5kZXJJZDsK
KyAgICAgIERPTVN0cmluZyAgICAgICAgICAgIHJlbW90ZUlkOworICAgICAgRE9NU3RyaW5nICAg
ICAgICAgICAgcmlkOworICAgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCAgbGFzdFBhY2tldFNlbnRU
aW1lc3RhbXA7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBoZWFkZXJCeXRlc1NlbnQ7Cisg
ICAgICB1bnNpZ25lZCBsb25nICAgICAgICBwYWNrZXRzRGlzY2FyZGVkT25TZW5kOworICAgICAg
dW5zaWduZWQgbG9uZyBsb25nICAgYnl0ZXNEaXNjYXJkZWRPblNlbmQ7CisgICAgICB1bnNpZ25l
ZCBsb25nICAgICAgICBmZWNQYWNrZXRzU2VudDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAg
IHJldHJhbnNtaXR0ZWRQYWNrZXRzU2VudDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIHJl
dHJhbnNtaXR0ZWRCeXRlc1NlbnQ7CisgICAgICBkb3VibGUgICAgICAgICAgICAgICB0YXJnZXRC
aXRyYXRlOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgdG90YWxFbmNvZGVkQnl0ZXNUYXJn
ZXQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBmcmFtZVdpZHRoOworICAgICAgdW5zaWdu
ZWQgbG9uZyAgICAgICAgZnJhbWVIZWlnaHQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBm
cmFtZUJpdERlcHRoOworICAgICAgZG91YmxlICAgICAgICAgICAgICAgZnJhbWVzUGVyU2Vjb25k
OworICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgZnJhbWVzU2VudDsKKyAgICAgIHVuc2lnbmVk
IGxvbmcgICAgICAgIGh1Z2VGcmFtZXNTZW50OworICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAg
ZnJhbWVzRW5jb2RlZDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIGtleUZyYW1lc0VuY29k
ZWQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBmcmFtZXNEaXNjYXJkZWRPblNlbmQ7Cisg
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBxcFN1bTsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyAgIHRvdGFsU2FtcGxlc1NlbnQ7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBzYW1wbGVz
RW5jb2RlZFdpdGhTaWxrOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgc2FtcGxlc0VuY29k
ZWRXaXRoQ2VsdDsKKyAgICAgIGJvb2xlYW4gICAgICAgICAgICAgIHZvaWNlQWN0aXZpdHlGbGFn
OworICAgICAgZG91YmxlICAgICAgICAgICAgICAgdG90YWxFbmNvZGVUaW1lOworICAgICAgZG91
YmxlICAgICAgICAgICAgICAgdG90YWxQYWNrZXRTZW5kRGVsYXk7CisgICAgICBkb3VibGUgICAg
ICAgICAgICAgICBhdmVyYWdlUnRjcEludGVydmFsOworICAgICAgUlRDUXVhbGl0eUxpbWl0YXRp
b25SZWFzb24gICAgICAgICAgcXVhbGl0eUxpbWl0YXRpb25SZWFzb247CisgICAgICByZWNvcmQ8
RE9NU3RyaW5nLCBkb3VibGU+IHF1YWxpdHlMaW1pdGF0aW9uRHVyYXRpb25zOworICAgICAgdW5z
aWduZWQgbG9uZyAgICAgICAgcXVhbGl0eUxpbWl0YXRpb25SZXNvbHV0aW9uQ2hhbmdlczsKKyAg
ICAgIHJlY29yZDxVU1ZTdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZz4gcGVyRHNjcFBhY2tldHNT
ZW50OworICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgbmFja0NvdW50OworICAgICAgdW5zaWdu
ZWQgbG9uZyAgICAgICAgZmlyQ291bnQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBwbGlD
b3VudDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIHNsaUNvdW50OworICAgICAgRE9NU3Ry
aW5nICAgICAgICAgICAgZW5jb2RlckltcGxlbWVudGF0aW9uOworICAgIH07CisgICAgT2Jzb2xl
dGUgbWVtYmVyczoKKyAgICBwYXJ0aWFsIGRpY3Rpb25hcnkgUlRDT3V0Ym91bmRTdHJlYW1TdGF0
cyB7CisgICAgICBET01TdHJpbmcgICAgICAgICAgICB0cmFja0lkOwogICAgIH07Ci0KICAgICBb
d2VicnRjLXBjXQogICAgIDguNi4gIE1hbmRhdG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKLSAgICAg
IC0gUlRDT3V0Ym91bmRSVFBTdHJlYW1TdGF0cywgd2l0aCBhbGwgcmVxdWlyZWQgYXR0cmlidXRl
cyBmcm9tIGl0cwotICAgICAgICBpbmhlcml0ZWQgZGljdGlvbmFyaWVzLCBhbmQgYWxzbyBhdHRy
aWJ1dGVzIHJlbW90ZUlkLCBmcmFtZXNFbmNvZGVkCisgICAgICAtIFJUQ091dGJvdW5kUnRwU3Ry
ZWFtU3RhdHMsIHdpdGggYWxsIHJlcXVpcmVkIGF0dHJpYnV0ZXMgZnJvbSBpdHMKKyAgICAgICAg
aW5oZXJpdGVkIGRpY3Rpb25hcmllcywgYW5kIGFsc28gYXR0cmlidXRlcyBzZW5kZXJJZCwgcmVt
b3RlSWQsIGZyYW1lc0VuY29kZWQsIG5hY2tDb3VudCwgZnJhbWVzU2VudAogICovCiBmdW5jdGlv
biB2YWxpZGF0ZU91dGJvdW5kUnRwU3RyZWFtU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CiAg
IHZhbGlkYXRlU2VudFJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykKIAorICB2YWxp
ZGF0ZU9wdGlvbmFsSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICdtZWRpYVNvdXJjZUlkJywg
J21lZGlhLXNvdXJjZScpOworICB2YWxpZGF0ZUlkRmllbGQoc3RhdHNSZXBvcnQsIHN0YXRzLCAn
c2VuZGVySWQnLCAnc2VuZGVyJyk7CiAgIHZhbGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3Rh
dHMsICdyZW1vdGVJZCcsICdyZW1vdGUtaW5ib3VuZC1ydHAnKTsKIAorICBhc3NlcnRfb3B0aW9u
YWxfc3RyaW5nX2ZpZWxkKHN0YXRzLCAncmlkJyk7CisKICAgYXNzZXJ0X29wdGlvbmFsX251bWJl
cl9maWVsZChzdGF0cywgJ2xhc3RQYWNrZXRTZW50VGltZXN0YW1wJyk7CisgIGFzc2VydF9vcHRp
b25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdoZWFkZXJCeXRlc1NlbnQnKTsKKyAgYXNz
ZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhY2tldHNEaXNjYXJkZWRP
blNlbmQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2J5
dGVzRGlzY2FyZGVkT25TZW5kJyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmll
bGQoc3RhdHMsICdmZWNQYWNrZXRzU2VudCcpOworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRf
aW50X2ZpZWxkKHN0YXRzLCAncmV0cmFuc21pdHRlZFBhY2tldHNTZW50Jyk7CisgIGFzc2VydF9v
cHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdyZXRyYW5zbWl0dGVkQnl0ZXNTZW50
Jyk7CiAgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3RhdHMsICd0YXJnZXRCaXRyYXRl
Jyk7Ci0gIGlmIChzdGF0c1snbWVkaWFUeXBlJ10gPT0gJ3ZpZGVvJykgeworICBhc3NlcnRfb3B0
aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAndG90YWxFbmNvZGVkQnl0ZXNUYXJnZXQn
KTsKKyAgaWYgKHN0YXRzWydraW5kJ10gPT09ICd2aWRlbycpIHsKKyAgICBhc3NlcnRfb3B0aW9u
YWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZnJhbWVXaWR0aCcpOworICAgIGFzc2VydF9v
cHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZUhlaWdodCcpOworICAgIGFz
c2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZUJpdERlcHRoJyk7
CisgICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywgJ2ZyYW1lc1BlclNlY29u
ZCcpOworICAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZXNTZW50Jyk7
CisgICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2h1Z2VGcmFt
ZXNTZW50Jyk7CiAgICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZyYW1lc0Vu
Y29kZWQnKTsKKyAgICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAn
a2V5RnJhbWVzRW5jb2RlZCcpOworICAgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmll
bGQoc3RhdHMsICdmcmFtZXNEaXNjYXJkZWRPblNlbmQnKTsKKyAgICBhc3NlcnRfb3B0aW9uYWxf
dW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncXBTdW0nKTsKKyAgfSBlbHNlICAgaWYgKHN0YXRz
WydraW5kJ10gPT09ICdhdWRpbycpIHsKKyAgICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50
X2ZpZWxkKHN0YXRzLCAndG90YWxTYW1wbGVzU2VudCcpOworICAgIGFzc2VydF9vcHRpb25hbF91
bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdzYW1wbGVzRW5jb2RlZFdpdGhTaWxrJyk7CisgICAg
YXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3NhbXBsZXNFbmNvZGVk
V2l0aENlbHQnKTsKKyAgICBhc3NlcnRfb3B0aW9uYWxfYm9vbGVhbl9maWVsZChzdGF0cywgJ3Zv
aWNlQWN0aXZpdHlGbGFnJyk7CiAgIH0KICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChz
dGF0cywgJ3RvdGFsRW5jb2RlVGltZScpOworICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxk
KHN0YXRzLCAndG90YWxQYWNrZXRTZW5kRGVsYXknKTsKICAgYXNzZXJ0X29wdGlvbmFsX251bWJl
cl9maWVsZChzdGF0cywgJ2F2ZXJhZ2VSVENQSW50ZXJ2YWwnKTsKKworICBpZiAoc3RhdHNbJ2tp
bmQnXSA9PT0gJ3ZpZGVvJykgeworICAgIGFzc2VydF9vcHRpb25hbF9lbnVtX2ZpZWxkKHN0YXRz
LCAncXVhbGl0eUxpbWl0YXRpb25SZWFzb24nLCBbJ25vbmUnLCAnY3B1JywgJ2JhbmR3aWR0aCcs
ICdvdGhlciddKTsKKworICAgIGFzc2VydF9vcHRpb25hbF9kaWN0X2ZpZWxkKHN0YXRzLCAncXVh
bGl0eUxpbWl0YXRpb25EdXJhdGlvbnMnKTsKKyAgICBpZiAoc3RhdHNbJ3F1YWxpdHlMaW1pdGF0
aW9uRHVyYXRpb25zJ10pIHsKKyAgICAgIE9iamVjdC5rZXlzKHN0YXRzWydxdWFsaXR5TGltaXRh
dGlvbkR1cmF0aW9ucyddKQorICAgICAgICAuZm9yRWFjaChrID0+CisgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHModHlwZW9mIGssICdzdHJpbmcnLCAnRXhwZWN0IGtleXMgb2YgcXVhbGl0
eUxpbWl0YXRpb25EdXJhdGlvbnMgdG8gYmUgc3RyaW5ncycpCisgICAgICAgICAgICAgICAgKTsK
KyAgICAgIE9iamVjdC52YWx1ZXMoc3RhdHNbJ3F1YWxpdHlMaW1pdGF0aW9uRHVyYXRpb25zJ10p
CisgICAgICAgIC5mb3JFYWNoKHYgPT4KKyAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0
eXBlb2YgbnVtLCAnbnVtYmVyJywgJ0V4cGVjdCB2YWx1ZXMgb2YgcXVhbGl0eUxpbWl0YXRpb25E
dXJhdGlvbnMgdG8gYmUgbnVtYmVycycpCisgICAgICAgICAgICAgICAgKTsKKyAgICB9CisKKyAg
ICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncXVhbGl0eUxpbWl0
YXRpb25SZXNvbHV0aW9uQ2hhbmdlcycpOworICAgIH0KKyAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9m
aWVsZChzdGF0cywgJ25hY2tDb3VudCcpOworICBhc3NlcnRfb3B0aW9uYWxfZGljdF9maWVsZChz
dGF0cywgJ3BlckRzY3BQYWNrZXRzU2VudCcpOworICBpZiAoc3RhdHNbJ3BlckRzY3BQYWNrZXRz
U2VudCddKSB7CisgICAgT2JqZWN0LmtleXMoc3RhdHNbJ3BlckRzY3BQYWNrZXRzU2VudCddKQor
ICAgICAgLmZvckVhY2goayA9PgorICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Yg
aywgJ3N0cmluZycsICdFeHBlY3Qga2V5cyBvZiBwZXJEc2NwUGFja2V0c1NlbnQgdG8gYmUgc3Ry
aW5ncycpCisgICAgICAgICAgICAgICk7CisgICAgT2JqZWN0LnZhbHVlcyhzdGF0c1sncGVyRHNj
cFBhY2tldHNTZW50J10pCisgICAgICAuZm9yRWFjaCh2ID0+CisgICAgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShOdW1iZXIuaXNJbnRlZ2VyKHYpICYmICh2ID49IDApLCAnRXhwZWN0IHZhbHVlcyBv
ZiBwZXJEc2NwUGFja2V0c1NlbnQgdG8gYmUgc3RyaW5ncycpCisgICAgICAgICAgICAgICk7Cisg
IH0KKworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZmlyQ291
bnQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BsaUNv
dW50Jyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdzbGlD
b3VudCcpOworICBhc3NlcnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxkKHN0YXRzLCAnZW5jb2Rlcklt
cGxlbWVudGF0aW9uJyk7CisgIC8vIE9ic29sZXRlIHN0YXRzCisgIHZhbGlkYXRlT3B0aW9uYWxJ
ZEZpZWxkKHN0YXRzUmVwb3J0LCBzdGF0cywgJ3RyYWNrSWQnLCAndHJhY2snKTsKIH0KIAogLyoK
ICAgW3dlYnJ0Yy1zdGF0c10KLSAgNy44LiAgUlRDUmVtb3RlT3V0Ym91bmRSVFBTdHJlYW1TdGF0
cyBkaWN0aW9uYXJ5Ci0gICAgZGljdGlvbmFyeSBSVENSZW1vdGVPdXRib3VuZFJUUFN0cmVhbVN0
YXRzIDogUlRDU2VudFJUUFN0cmVhbVN0YXRzIHsKKyAgNy44LiAgUlRDUmVtb3RlT3V0Ym91bmRS
dHBTdHJlYW1TdGF0cyBkaWN0aW9uYXJ5CisgICAgZGljdGlvbmFyeSBSVENSZW1vdGVPdXRib3Vu
ZFJ0cFN0cmVhbVN0YXRzIDogUlRDU2VudFJ0cFN0cmVhbVN0YXRzIHsKICAgICAgIERPTVN0cmlu
ZyAgICAgICAgICAgbG9jYWxJZDsKICAgICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgcmVtb3RlVGlt
ZXN0YW1wOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICByZXBvcnRzU2VudDsKICAgICB9Owog
CiAgIFt3ZWJydGMtcGNdCiAgIDguNi4gIE1hbmRhdG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKLSAg
ICAtIFJUQ1JlbW90ZU91dGJvdW5kUlRQU3RyZWFtU3RhdHMsIHdpdGggYWxsIHJlcXVpcmVkIGF0
dHJpYnV0ZXMgZnJvbSBpdHMKKyAgICAtIFJUQ1JlbW90ZU91dGJvdW5kUnRwU3RyZWFtU3RhdHMs
IHdpdGggYWxsIHJlcXVpcmVkIGF0dHJpYnV0ZXMgZnJvbSBpdHMKICAgICAgIGluaGVyaXRlZCBk
aWN0aW9uYXJpZXMsIGFuZCBhbHNvIGF0dHJpYnV0ZXMgbG9jYWxJZCwgcmVtb3RlVGltZXN0YW1w
CiAgKi8KIGZ1bmN0aW9uIHZhbGlkYXRlUmVtb3RlT3V0Ym91bmRSdHBTdHJlYW1TdGF0cyhzdGF0
c1JlcG9ydCwgc3RhdHMpIHsKQEAgLTM5MCw2ICs1ODAsNTggQEAgZnVuY3Rpb24gdmFsaWRhdGVS
ZW1vdGVPdXRib3VuZFJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogCiAgIHZh
bGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICdsb2NhbElkJywgJ2luYm91bmQtcnRw
Jyk7CiAgIGFzc2VydF9udW1iZXJfZmllbGQoc3RhdHMsICdyZW1vdGVUaW1lU3RhbXAnKTsKKyAg
YXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3JlcG9ydHNTZW50Jyk7
Cit9CisKKy8qCisgIFt3ZWJydGMtc3RhdHNdCisgIDcuMTEgUlRDTWVkaWFTb3VyY2VTdGF0cyBk
aWN0aW9uYXJ5CisgIGRpY3Rpb25hcnkgUlRDTWVkaWFTb3VyY2VTdGF0cyA6IFJUQ1N0YXRzIHsK
KyAgICAgIERPTVN0cmluZyAgICAgICB0cmFja0lkZW50aWZpZXI7CisgICAgICBET01TdHJpbmcg
ICAgICAga2luZDsKKyAgfTsKKworICBkaWN0aW9uYXJ5IFJUQ0F1ZGlvU291cmNlU3RhdHMgOiBS
VENNZWRpYVNvdXJjZVN0YXRzIHsKKyAgICAgICBkb3VibGUgICAgICAgYXVkaW9MZXZlbDsKKyAg
ICAgICBkb3VibGUgICAgICAgdG90YWxBdWRpb0VuZXJneTsKKyAgICAgICBkb3VibGUgICAgICAg
dG90YWxTYW1wbGVzRHVyYXRpb247CisgICAgICAgZG91YmxlICAgICAgIGVjaG9SZXR1cm5Mb3Nz
OworICAgICAgIGRvdWJsZSAgICAgICBlY2hvUmV0dXJuTG9zc0VuaGFuY2VtZW50OworICB9Owor
CisgIGRpY3Rpb25hcnkgUlRDVmlkZW9Tb3VyY2VTdGF0cyA6IFJUQ01lZGlhU291cmNlU3RhdHMg
eworICAgICAgdW5zaWduZWQgbG9uZyAgIHdpZHRoOworICAgICAgdW5zaWduZWQgbG9uZyAgIGhl
aWdodDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICBiaXREZXB0aDsKKyAgICAgIHVuc2lnbmVkIGxv
bmcgICBmcmFtZXM7CisgICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJydGMt
c3RhdHMvaXNzdWVzLzU0MAorICAgICAgZG91YmxlICAgZnJhbWVzUGVyU2Vjb25kOworICB9Owor
CisgIFt3ZWJydGMtcGNdCisgIDguNi4gIE1hbmRhdG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKKyAg
UlRDTWVkaWFTb3VyY2VTdGF0cyB3aXRoIGF0dHJpYnV0ZXMgdHJhY2tJZGVudGlmaWVyLCBraW5k
CisgIFJUQ0F1ZGlvU291cmNlU3RhdHMsIHdpdGggYWxsIHJlcXVpcmVkIGF0dHJpYnV0ZXMgZnJv
bSBpdHMgaW5oZXJpdGVkIGRpY3Rpb25hcmllcyBhbmQgdG90YWxBdWRpb0VuZXJneSwgdG90YWxT
YW1wbGVzRHVyYXRpb24KKyAgUlRDVmlkZW9Tb3VyY2VTdGF0cywgd2l0aCBhbGwgcmVxdWlyZWQg
YXR0cmlidXRlcyBmcm9tIGl0cyBpbmhlcml0ZWQgZGljdGlvbmFyaWVzIGFuZCB3aWR0aCwgaGVp
Z2h0LCBmcmFtZXNQZXJTZWNvbmQKKyovCitmdW5jdGlvbiB2YWxpZGF0ZU1lZGlhU291cmNlU3Rh
dHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CisgIHZhbGlkYXRlUnRjU3RhdHMoc3RhdHNSZXBvcnQs
IHN0YXRzKTsKKyAgYXNzZXJ0X3N0cmluZ19maWVsZChzdGF0cywgJ3RyYWNrSWRlbnRpZmllcicp
OworICBhc3NlcnRfZW51bV9maWVsZChzdGF0cywgJ2tpbmQnLCBbJ2F1ZGlvJywgJ3ZpZGVvJ10p
OworCisgIGlmIChzdGF0cy5raW5kID09PSAnYXVkaW8nKSB7CisgICAgYXNzZXJ0X29wdGlvbmFs
X251bWJlcl9maWVsZChzdGF0cywgJ2F1ZGlvTGV2ZWwnKTsKKyAgICBhc3NlcnRfbnVtYmVyX2Zp
ZWxkKHN0YXRzLCAndG90YWxBdWRpb0VuZXJneScpOworICAgIGFzc2VydF9udW1iZXJfZmllbGQo
c3RhdHMsICd0b3RhbFNhbXBsZXNEdXJhdGlvbicpOworICAgIGFzc2VydF9vcHRpb25hbF9udW1i
ZXJfZmllbGQoc3RhdHMsICdlY2hvUmV0dXJuTG9zcycpOworICAgIGFzc2VydF9vcHRpb25hbF9u
dW1iZXJfZmllbGQoc3RhdHMsICdlY2hvUmV0dXJuTG9zc0VuaGFuY2VtZW50Jyk7CisgIH0gZWxz
ZSBpZiAoc3RhdHMua2luZCA9PT0gJ3ZpZGVvJykgeworICAgIGFzc2VydF91bnNpZ25lZF9pbnRf
ZmllbGQoc3RhdHMsICd3aWR0aCcpOworICAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3Rh
dHMsICdoZWlnaHQnKTsKKyAgICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0
YXRzLCAnYml0RHBldGgnKTsKKyAgICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxk
KHN0YXRzLCAnZnJhbWVzJyk7CisgICAgYXNzZXJ0X251bWJlcl9maWVsZChzdGF0cywgJ2ZyYW1l
c1BlclNlY29uZCcpOworICB9CiB9CiAKIC8qCkBAIC00MzUsMTQzICs2NzcsMTAyIEBAIGZ1bmN0
aW9uIHZhbGlkYXRlUGVlckNvbm5lY3Rpb25TdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAg
YXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2RhdGFDaGFubmVsc0Fj
Y2VwdGVkJyk7CiB9CiAKLS8qCi0gIFt3ZWJydGMtc3RhdHNdCi0gIDcuMTEuIFJUQ01lZGlhU3Ry
ZWFtU3RhdHMgZGljdGlvbmFyeQotICAgIGRpY3Rpb25hcnkgUlRDTWVkaWFTdHJlYW1TdGF0cyA6
IFJUQ1N0YXRzIHsKLSAgICAgIERPTVN0cmluZyAgICAgICAgICAgc3RyZWFtSWRlbnRpZmllcjsK
LSAgICAgIHNlcXVlbmNlPERPTVN0cmluZz4gdHJhY2tJZHM7Ci0gICAgfTsKLQotICBbd2VicnRj
LXBjXQotICA4LjYuICBNYW5kYXRvcnkgVG8gSW1wbGVtZW50IFN0YXRzCi0gICAgLSBSVENNZWRp
YVN0cmVhbVN0YXRzLCB3aXRoIGF0dHJpYnV0ZXMgc3RyZWFtSWRlbnRpZmVyLCB0cmFja0lkcwot
ICovCi1mdW5jdGlvbiB2YWxpZGF0ZU1lZGlhU3RyZWFtU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRz
KSB7CisvKiBbd2VicnRjLXN0YXRzXQorICA3LjE2IFJUQ1J0cFRyYW5zY2VpdmVyU3RhdHMgZGlj
dGlvbmFyeQorICBkaWN0aW9uYXJ5IFJUQ1J0cFRyYW5zY2VpdmVyU3RhdHMgeworICAgIERPTVN0
cmluZyBzZW5kZXJJZDsKKyAgICBET01TdHJpbmcgcmVjZWl2ZXJJZDsKKyAgICBET01TdHJpbmcg
bWlkOworICB9OworKi8KK2Z1bmN0aW9uIHZhbGlkYXRlVHJhbnNjZWl2ZXJTdGF0cyhzdGF0c1Jl
cG9ydCwgc3RhdHMpIHsKICAgdmFsaWRhdGVSdGNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpOwot
Ci0gIGFzc2VydF9zdHJpbmdfZmllbGQoc3RhdHMsICdzdHJlYW1JZGVudGlmaWVyJyk7Ci0gIGFz
c2VydF9hcnJheV9maWVsZChzdGF0cywgJ3RyYWNrSWRzJyk7Ci0KLSAgZm9yKGNvbnN0IHRyYWNr
SWQgb2Ygc3RhdHMudHJhY2tJZHMpIHsKLSAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB0cmFja0lk
LCAnc3RyaW5nJywKLSAgICAgICdFeHBlY3QgdHJhY2tJZCBlbGVtZW50cyB0byBiZSBzdHJpbmcn
KTsKLQotICAgIGFzc2VydF90cnVlKHN0YXRzUmVwb3J0Lmhhcyh0cmFja0lkKSwKLSAgICAgIGBF
eHBlY3Qgc3RhdHMgcmVwb3J0IHRvIGhhdmUgc3RhdHMgb2JqZWN0IHdpdGggaWQgJHt0cmFja0lk
fWApOwotCi0gICAgY29uc3QgdHJhY2tTdGF0cyA9IHN0YXRzUmVwb3J0LmdldCh0cmFja0lkKTsK
LSAgICBhc3NlcnRfZXF1YWxzKHRyYWNrU3RhdHMudHlwZSwgJ3RyYWNrJywKLSAgICAgIGBFeHBl
Y3QgdHJhY2sgc3RhdHMgb2JqZWN0IHRvIGhhdmUgdHlwZSAndHJhY2snYCk7Ci0gIH0KKyAgdmFs
aWRhdGVPcHRpb25hbElkRmllbGQoc3RhdHNSZXBvcnQsIHN0YXRzLCAnc2VuZGVySWQnLCAnc2Vu
ZGVyJyk7CisgIHZhbGlkYXRlT3B0aW9uYWxJZEZpZWxkKHN0YXRzUmVwb3J0LCBzdGF0cywgJ3Jl
Y2VpdmVySWQnLCAnc2VuZGVyJyk7CisgIGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQoc3Rh
dHMsICdtaWQnKTsKIH0KIAogLyoKICAgW3dlYnJ0Yy1zdGF0c10KLSAgNy4xMi4gUlRDTWVkaWFT
dHJlYW1UcmFja1N0YXRzIGRpY3Rpb25hcnkKLSAgICBkaWN0aW9uYXJ5IFJUQ01lZGlhU3RyZWFt
VHJhY2tTdGF0cyA6IFJUQ1N0YXRzIHsKKyAgZGljdGlvbmFyeSBSVENNZWRpYUhhbmRsZXJTdGF0
cyA6IFJUQ1N0YXRzIHsKICAgICAgIERPTVN0cmluZyAgICAgICAgICAgdHJhY2tJZGVudGlmaWVy
OwotICAgICAgYm9vbGVhbiAgICAgICAgICAgICByZW1vdGVTb3VyY2U7Ci0gICAgICBib29sZWFu
ICAgICAgICAgICAgIGVuZGVkOwotICAgICAgYm9vbGVhbiAgICAgICAgICAgICBkZXRhY2hlZDsK
KyAgICAgIGJvb2xlYW4gICAgICByZW1vdGVTb3VyY2U7CisgICAgICBib29sZWFuICAgICAgZW5k
ZWQ7CiAgICAgICBET01TdHJpbmcgICAgICAgICAgIGtpbmQ7Ci0gICAgICBET01IaWdoUmVzVGlt
ZVN0YW1wIGVzdGltYXRlZFBsYXlvdXRUaW1lc3RhbXA7Ci0gICAgICB1bnNpZ25lZCBsb25nICAg
ICAgIGZyYW1lV2lkdGg7Ci0gICAgICB1bnNpZ25lZCBsb25nICAgICAgIGZyYW1lSGVpZ2h0Owot
ICAgICAgZG91YmxlICAgICAgICAgICAgICBmcmFtZXNQZXJTZWNvbmQ7Ci0gICAgICB1bnNpZ25l
ZCBsb25nICAgICAgIGZyYW1lc0NhcHR1cmVkOwotICAgICAgdW5zaWduZWQgbG9uZyAgICAgICBm
cmFtZXNTZW50OwotICAgICAgdW5zaWduZWQgbG9uZyAgICAgICBrZXlGcmFtZXNTZW50OwotICAg
ICAgdW5zaWduZWQgbG9uZyAgICAgICBmcmFtZXNSZWNlaXZlZDsKLSAgICAgIHVuc2lnbmVkIGxv
bmcgICAgICAga2V5RnJhbWVzUmVjZWl2ZWQ7Ci0gICAgICB1bnNpZ25lZCBsb25nICAgICAgIGZy
YW1lc0RlY29kZWQ7Ci0gICAgICB1bnNpZ25lZCBsb25nICAgICAgIGZyYW1lc0Ryb3BwZWQ7Ci0g
ICAgICB1bnNpZ25lZCBsb25nICAgICAgIGZyYW1lc0NvcnJ1cHRlZDsKLSAgICAgIHVuc2lnbmVk
IGxvbmcgICAgICAgcGFydGlhbEZyYW1lc0xvc3Q7Ci0gICAgICB1bnNpZ25lZCBsb25nICAgICAg
IGZ1bGxGcmFtZXNMb3N0OwotICAgICAgZG91YmxlICAgICAgICAgICAgICBhdWRpb0xldmVsOwot
ICAgICAgZG91YmxlICAgICAgICAgICAgICB0b3RhbEF1ZGlvRW5lcmd5OwotICAgICAgYm9vbGVh
biAgICAgICAgICAgICB2b2ljZUFjdGl2aXR5RmxhZzsKLSAgICAgIGRvdWJsZSAgICAgICAgICAg
ICAgZWNob1JldHVybkxvc3M7Ci0gICAgICBkb3VibGUgICAgICAgICAgICAgIGVjaG9SZXR1cm5M
b3NzRW5oYW5jZW1lbnQ7Ci0gICAgICB1bnNpZ25lZCBsb25nIGxvbmcgIHRvdGFsU2FtcGxlc1Nl
bnQ7Ci0gICAgICB1bnNpZ25lZCBsb25nIGxvbmcgIHRvdGFsU2FtcGxlc1JlY2VpdmVkOwotICAg
ICAgZG91YmxlICAgICAgICAgICAgICB0b3RhbFNhbXBsZXNEdXJhdGlvbjsKLSAgICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyAgY29uY2VhbGVkU2FtcGxlczsKLSAgICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyAgY29uY2VhbG1lbnRFdmVudHM7Ci0gICAgICBkb3VibGUgICAgICAgICAgICAgIGppdHRlckJ1
ZmZlckRlbGF5OwogICAgICAgUlRDUHJpb3JpdHlUeXBlICAgICBwcmlvcml0eTsKLSAgICB9Owor
ICB9OworICBkaWN0aW9uYXJ5IFJUQ1ZpZGVvSGFuZGxlclN0YXRzIDogUlRDTWVkaWFIYW5kbGVy
U3RhdHMgeworICB9OworICBkaWN0aW9uYXJ5IFJUQ0F1ZGlvSGFuZGxlclN0YXRzIDogUlRDTWVk
aWFIYW5kbGVyU3RhdHMgeworICB9OworICBVc2VkIGZyb20gdmFsaWRhdGVTZW5kZXJTdGF0cyBh
bmQgdmFsaWRhdGVSZWNlaXZlclN0YXRzCisKKyAgW3dlYnJ0Yy1wcmlvcml0eV0KKyAgZW51bSBS
VENQcmlvcml0eVR5cGUgeworICAgICJ2ZXJ5LWxvdyIsCisgICAgImxvdyIsCisgICAgIm1lZGl1
bSIsCisgICAgImhpZ2giCisgIH07CiAKICAgW3dlYnJ0Yy1wY10KLSAgNC45LjEuICBSVENQcmlv
cml0eVR5cGUgRW51bQotICAgIGVudW0gUlRDUHJpb3JpdHlUeXBlIHsKLSAgICAgICJ2ZXJ5LWxv
dyIsCi0gICAgICAibG93IiwKLSAgICAgICJtZWRpdW0iLAotICAgICAgImhpZ2giCi0gICAgfTsK
KyAgTVRJOgorICBSVENNZWRpYUhhbmRsZXJTdGF0cyB3aXRoIGF0dHJpYnV0ZXMgdHJhY2tJZGVu
dGlmaWVyCisgIFJUQ0F1ZGlvSGFuZGxlclN0YXRzLCB3aXRoIGFsbCByZXF1aXJlZCBhdHRyaWJ1
dGVzIGZyb20gaXRzIGluaGVyaXRlZCBkaWN0aW9uYXJpZXMKKyAgUlRDVmlkZW9IYW5kbGVyU3Rh
dHMsIHdpdGggYWxsIHJlcXVpcmVkIGF0dHJpYnV0ZXMgZnJvbSBpdHMgaW5oZXJpdGVkIGRpY3Rp
b25hcmllcwogCi0gIDguNi4gIE1hbmRhdG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKLSAgICAtIFJU
Q01lZGlhU3RyZWFtVHJhY2tTdGF0cywgd2l0aCBhdHRyaWJ1dGVzIHRyYWNrSWRlbnRpZmllciwg
cmVtb3RlU291cmNlLAotICAgICAgZW5kZWQsIGRldGFjaGVkLCBmcmFtZVdpZHRoLCBmcmFtZUhl
aWdodCwgZnJhbWVzUGVyU2Vjb25kLCBmcmFtZXNTZW50LAotICAgICAgZnJhbWVzUmVjZWl2ZWQs
IGZyYW1lc0RlY29kZWQsIGZyYW1lc0Ryb3BwZWQsIGZyYW1lc0NvcnJ1cHRlZCwgYXVkaW9MZXZl
bAotICovCi0KLWZ1bmN0aW9uIHZhbGlkYXRlTWVkaWFTdHJlYW1UcmFja1N0YXRzKHN0YXRzUmVw
b3J0LCBzdGF0cykgeworKi8KK2Z1bmN0aW9uIHZhbGlkYXRlTWVkaWFIYW5kbGVyU3RhdHMoc3Rh
dHNSZXBvcnQsIHN0YXRzKSB7CiAgIHZhbGlkYXRlUnRjU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRz
KTsKLQogICBhc3NlcnRfc3RyaW5nX2ZpZWxkKHN0YXRzLCAndHJhY2tJZGVudGlmaWVyJyk7Ci0g
IGFzc2VydF9ib29sZWFuX2ZpZWxkKHN0YXRzLCAncmVtb3RlU291cmNlJyk7Ci0gIGFzc2VydF9i
b29sZWFuX2ZpZWxkKHN0YXRzLCAnZW5kZWQnKTsKLSAgYXNzZXJ0X2Jvb2xlYW5fZmllbGQoc3Rh
dHMsICdkZXRhY2hlZCcpOworICBhc3NlcnRfb3B0aW9uYWxfYm9vbGVhbl9maWVsZChzdGF0cywg
J3JlbW90ZVNvdXJjZScpOworICBhc3NlcnRfb3B0aW9uYWxfYm9vbGVhbl9maWVsZChzdGF0cywg
J2VuZGVkJyk7CisgIGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQoc3RhdHMsICdraW5kJyk7
CisgIGFzc2VydF9lbnVtX2ZpZWxkKHN0YXRzLCAncHJpb3JpdHknLCBbJ3ZlcnktbG93JywgJ2xv
dycsICdtZWRpdW0nLCAnaGlnaCddKTsKK30KIAotICBhc3NlcnRfb3B0aW9uYWxfZW51bV9maWVs
ZChzdGF0cywgJ2tpbmQnLCBbJ2F1ZGlvJywgJ3ZpZGVvJ10pOwotICBhc3NlcnRfb3B0aW9uYWxf
bnVtYmVyX2ZpZWxkKHN0YXRzLCAnZXN0aW1hdGVkUGxheW91dFRpbWVzdGFtcCcpOwotICBpZiAo
c3RhdHNbJ2tpbmQnXSA9PT0gJ3ZpZGVvJykgewotICAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmll
bGQoc3RhdHMsICdmcmFtZVdpZHRoJyk7Ci0gICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChz
dGF0cywgJ2ZyYW1lSGVpZ2h0Jyk7Ci0gICAgYXNzZXJ0X251bWJlcl9maWVsZChzdGF0cywgJ2Zy
YW1lc1BlclNlY29uZCcpOwotICAgIGlmIChzdGF0c1snZnJhbWVzU2VudCddKSB7Ci0gICAgICBh
c3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZnJhbWVzQ2FwdHVyZWQn
KTsKLSAgICAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZXNTZW50Jyk7
Ci0gICAgICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAna2V5RnJh
bWVzU2VudCcpOwotICAgIH0gZWxzZSB7Ci0gICAgICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxk
KHN0YXRzLCAnZnJhbWVzUmVjZWl2ZWQnKTsKLSAgICAgIGFzc2VydF9vcHRpb25hbF91bnNpZ25l
ZF9pbnRfZmllbGQoc3RhdHMsICdrZXlGcmFtZXNSZWNlaXZlZCcpOwotICAgICAgYXNzZXJ0X3Vu
c2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZyYW1lc0RlY29kZWQnKTsKLSAgICAgIGFzc2VydF91
bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZXNEcm9wcGVkJyk7Ci0gICAgICBhc3NlcnRf
dW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZnJhbWVzQ29ycnVwdGVkJyk7Ci0gICAgfQorLyoK
KyBbd2VicnRjLXN0YXRzXQorICBkaWN0aW9uYXJ5IFJUQ0F1ZGlvU2VuZGVyU3RhdHMgOiBSVENB
dWRpb0hhbmRsZXJTdGF0cyB7CisgICAgICBET01TdHJpbmcgICAgICAgICAgIG1lZGlhU291cmNl
SWQ7CisgIH07CisgIGRpY3Rpb25hcnkgUlRDVmlkZW9TZW5kZXJTdGF0cyA6IFJUQ1ZpZGVvSGFu
ZGxlclN0YXRzIHsKKyAgICAgIERPTVN0cmluZyAgICAgICAgICAgbWVkaWFTb3VyY2VJZDsKKyAg
fTsKIAotICAgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdwYXJ0
aWFsRnJhbWVzTG9zdCcpOwotICAgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQo
c3RhdHMsICdmdWxsRnJhbWVzTG9zdCcpOwotICB9IGVsc2UgewotICAgIGFzc2VydF9udW1iZXJf
ZmllbGQoc3RhdHMsICdhdWRpb0xldmVsJyk7Ci0gICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9m
aWVsZChzdGF0cywgJ3RvdGFsQXVkaW9FbmVyZ3knKTsKLSAgICBhc3NlcnRfb3B0aW9uYWxfYm9v
bGVhbl9maWVsZChzdGF0cywgJ3ZvaWNlQWN0aXZpdHlGbGFnJyk7Ci0gICAgYXNzZXJ0X29wdGlv
bmFsX251bWJlcl9maWVsZChzdGF0cywgJ2VjaG9SZXR1cm5Mb3NzJyk7Ci0gICAgYXNzZXJ0X29w
dGlvbmFsX251bWJlcl9maWVsZChzdGF0cywgJ2VjaG9SZXR1cm5Mb3NzRW5oYW5jZW1lbnQnKTsK
KyAgW3dlYnJ0Yy1wY10KKyAgTVRJOgorICBSVENWaWRlb1NlbmRlclN0YXRzLCB3aXRoIGFsbCBy
ZXF1aXJlZCBhdHRyaWJ1dGVzIGZyb20gaXRzIGluaGVyaXRlZCBkaWN0aW9uYXJpZXMKKyovCitm
dW5jdGlvbiB2YWxpZGF0ZVNlbmRlclN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgeworICB2YWxp
ZGF0ZU1lZGlhSGFuZGxlclN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cyk7CisgIHZhbGlkYXRlT3B0
aW9uYWxJZEZpZWxkKHN0YXRzUmVwb3J0LCBzdGF0cywgJ21lZGlhU291cmNlSWQnLCAnbWVkaWEt
c291cmNlJyk7Cit9CiAKLSAgICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0
YXRzLCAndG90YWxTYW1wbGVzU2VudCcpOwotICAgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9p
bnRfZmllbGQoc3RhdHMsICd0b3RhbFNhbXBsZXNSZWNlaXZlZCcpOwotICAgIGFzc2VydF9vcHRp
b25hbF9udW1iZXJfZmllbGQoc3RhdHMsICd0b3RhbFNhbXBsZXNEdXJhdGlvbicpOwotICAgIGFz
c2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdjb25jZWFsZWRTYW1wbGVz
Jyk7Ci0gICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2NvbmNl
YWxtZW50RXZlbnRzJyk7Ci0gICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywg
J2ppdHRlckJ1ZmZlckRlbGF5Jyk7Ci0gIH0KKy8qCisgW3dlYnJ0Yy1zdGF0c10KKyAgZGljdGlv
bmFyeSBSVENBdWRpb1JlY2VpdmVyU3RhdHMgOiBSVENBdWRpb0hhbmRsZXJTdGF0cyB7CisgIH07
CisgIGRpY3Rpb25hcnkgUlRDVmlkZW9SZWNlaXZlclN0YXRzIDogUlRDVmlkZW9IYW5kbGVyU3Rh
dHMgeworICB9OwogCi0gIGFzc2VydF9vcHRpb25hbF9lbnVtX2ZpZWxkKHN0YXRzLCAncHJpb3Jp
dHknLAotICAgIFsndmVyeS1sb3cnLCAnbG93JywgJ21lZGl1bScsICdoaWdoJ10pOworICBbd2Vi
cnRjLXBjXQorICBNVEk6CisgIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0cywgd2l0aCBhbGwgcmVxdWly
ZWQgYXR0cmlidXRlcyBmcm9tIGl0cyBpbmhlcml0ZWQgZGljdGlvbmFyaWVzCisqLworZnVuY3Rp
b24gdmFsaWRhdGVSZWNlaXZlclN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgeworICB2YWxpZGF0
ZU1lZGlhSGFuZGxlclN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cyk7CiB9CiAKKwogLyoKICAgW3dl
YnJ0Yy1zdGF0c10KICAgNy4xMy4gUlRDRGF0YUNoYW5uZWxTdGF0cyBkaWN0aW9uYXJ5CiAgICAg
ZGljdGlvbmFyeSBSVENEYXRhQ2hhbm5lbFN0YXRzIDogUlRDU3RhdHMgewogICAgICAgRE9NU3Ry
aW5nICAgICAgICAgICBsYWJlbDsKICAgICAgIERPTVN0cmluZyAgICAgICAgICAgcHJvdG9jb2w7
Ci0gICAgICBsb25nICAgICAgICAgICAgICAgIGRhdGFDaGFubmVsSWRlbnRpZmllcjsKKyAgICAg
IC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1zdGF0cy9pc3N1ZXMvNTQxCisg
ICAgICB1bnNpZ25lZCBzaG9ydCAgICAgIGRhdGFDaGFubmVsSWRlbnRpZmllcjsKICAgICAgIERP
TVN0cmluZyAgICAgICAgICAgdHJhbnNwb3J0SWQ7CiAgICAgICBSVENEYXRhQ2hhbm5lbFN0YXRl
IHN0YXRlOwogICAgICAgdW5zaWduZWQgbG9uZyAgICAgICBtZXNzYWdlc1NlbnQ7CkBAIC01OTAs
NyArNzkxLDcgQEAgZnVuY3Rpb24gdmFsaWRhdGVNZWRpYVN0cmVhbVRyYWNrU3RhdHMoc3RhdHNS
ZXBvcnQsIHN0YXRzKSB7CiAgICAgfTsKIAogICA4LjYuICBNYW5kYXRvcnkgVG8gSW1wbGVtZW50
IFN0YXRzCi0gICAgLSBSVENEYXRhQ2hhbm5lbFN0YXRzLCB3aXRoIGF0dHJpYnV0ZXMgbGFiZWws
IHByb3RvY29sLCBkYXRhY2hhbm5lbElkLCBzdGF0ZSwKKyAgICAtIFJUQ0RhdGFDaGFubmVsU3Rh
dHMsIHdpdGggYXR0cmlidXRlcyBsYWJlbCwgcHJvdG9jb2wsIGRhdGFjaGFubmVsSWRlbnRpZmll
ciwgc3RhdGUsCiAgICAgICBtZXNzYWdlc1NlbnQsIGJ5dGVzU2VudCwgbWVzc2FnZXNSZWNlaXZl
ZCwgYnl0ZXNSZWNlaXZlZAogICovCiBmdW5jdGlvbiB2YWxpZGF0ZURhdGFDaGFubmVsU3RhdHMo
c3RhdHNSZXBvcnQsIHN0YXRzKSB7CkBAIC01OTgsNyArNzk5LDcgQEAgZnVuY3Rpb24gdmFsaWRh
dGVEYXRhQ2hhbm5lbFN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogCiAgIGFzc2VydF9zdHJp
bmdfZmllbGQoc3RhdHMsICdsYWJlbCcpOwogICBhc3NlcnRfc3RyaW5nX2ZpZWxkKHN0YXRzLCAn
cHJvdG9jb2wnKTsKLSAgYXNzZXJ0X2ludF9maWVsZChzdGF0cywgJ2RhdGFDaGFubmVsSWRlbnRp
ZmllcicpOworICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZGF0YUNoYW5uZWxJ
ZGVudGlmaWVyJyk7CiAKICAgdmFsaWRhdGVPcHRpb25hbElkRmllbGQoc3RhdHNSZXBvcnQsIHN0
YXRzLCAndHJhbnNwb3J0SWQnLCAndHJhbnNwb3J0Jyk7CiAKQEAgLTYxNSw4ICs4MTYsOCBAQCBm
dW5jdGlvbiB2YWxpZGF0ZURhdGFDaGFubmVsU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CiAg
IFt3ZWJydGMtc3RhdHNdCiAgIDcuMTQuIFJUQ1RyYW5zcG9ydFN0YXRzIGRpY3Rpb25hcnkKICAg
ICBkaWN0aW9uYXJ5IFJUQ1RyYW5zcG9ydFN0YXRzIDogUlRDU3RhdHMgewotICAgICAgdW5zaWdu
ZWQgbG9uZyAgICAgICAgIHBhY2tldHNTZW50OwotICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAg
IHBhY2tldHNSZWNlaXZlZDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgICBwYWNrZXRzU2Vu
dDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgICBwYWNrZXRzUmVjZWl2ZWQ7CiAgICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgICAgYnl0ZXNTZW50OwogICAgICAgdW5zaWduZWQgbG9uZyBsb25n
ICAgIGJ5dGVzUmVjZWl2ZWQ7CiAgICAgICBET01TdHJpbmcgICAgICAgICAgICAgcnRjcFRyYW5z
cG9ydFN0YXRzSWQ7CkBAIC02MjUsNiArODI2LDExIEBAIGZ1bmN0aW9uIHZhbGlkYXRlRGF0YUNo
YW5uZWxTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgICAgIERPTVN0cmluZyAgICAgICAg
ICAgICBzZWxlY3RlZENhbmRpZGF0ZVBhaXJJZDsKICAgICAgIERPTVN0cmluZyAgICAgICAgICAg
ICBsb2NhbENlcnRpZmljYXRlSWQ7CiAgICAgICBET01TdHJpbmcgICAgICAgICAgICAgcmVtb3Rl
Q2VydGlmaWNhdGVJZDsKKyAgICAgIERPTVN0cmluZyAgICAgICAgICAgICB0bHNWZXJzaW9uOwor
ICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgIGR0bHNDaXBoZXI7CisgICAgICBET01TdHJpbmcg
ICAgICAgICAgICAgc3J0cENpcGhlcjsKKyAgICAgIERPTVN0cmluZyAgICAgICAgICAgICB0bHNH
cm91cDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICBzZWxlY3RlZENhbmRpZGF0ZVBhaXJD
aGFuZ2VzOwogICAgIH07CiAKICAgW3dlYnJ0Yy1wY10KQEAgLTYzOSwxMyArODQ1LDE0IEBAIGZ1
bmN0aW9uIHZhbGlkYXRlRGF0YUNoYW5uZWxTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKIAog
ICA1LjYuICBSVENJY2VSb2xlIEVudW0KICAgICBlbnVtIFJUQ0ljZVJvbGUgeworICAgICAgInVu
a25vd24iLAogICAgICAgImNvbnRyb2xsaW5nIiwKICAgICAgICJjb250cm9sbGVkIgogICAgIH07
CiAKICAgOC42LiAgTWFuZGF0b3J5IFRvIEltcGxlbWVudCBTdGF0cwogICAgIC0gUlRDVHJhbnNw
b3J0U3RhdHMsIHdpdGggYXR0cmlidXRlcyBieXRlc1NlbnQsIGJ5dGVzUmVjZWl2ZWQsCi0gICAg
ICBydGNwVHJhbnNwb3J0U3RhdHNJZCwgc2VsZWN0ZWRDYW5kaWRhdGVQYWlySWQsIGxvY2FsQ2Vy
dGlmaWNhdGVJZCwKKyAgICAgIHNlbGVjdGVkQ2FuZGlkYXRlUGFpcklkLCBsb2NhbENlcnRpZmlj
YXRlSWQsCiAgICAgICByZW1vdGVDZXJ0aWZpY2F0ZUlkCiAgKi8KIGZ1bmN0aW9uIHZhbGlkYXRl
VHJhbnNwb3J0U3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CkBAIC02NjAsNyArODY3LDcgQEAg
ZnVuY3Rpb24gdmFsaWRhdGVUcmFuc3BvcnRTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zcG9ydCcpOwogCiAgIGFzc2VydF9vcHRpb25h
bF9lbnVtX2ZpZWxkKHN0YXRzLCAnaWNlUm9sZScsCi0gICAgWydjb250cm9sbGluZycsICdjb250
cm9sbGVkJ10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Vua25vd24nLCAnY29u
dHJvbGxpbmcnLCAnY29udHJvbGxlZCddKTsKIAogICBhc3NlcnRfb3B0aW9uYWxfZW51bV9maWVs
ZChzdGF0cywgJ2R0bHNTdGF0ZScsCiAgICAgWyduZXcnLCAnY29ubmVjdGluZycsICdjb25uZWN0
ZWQnLCAnY2xvc2VkJywgJ2ZhaWxlZCddKTsKQEAgLTY2OCwzMyArODc1LDI1IEBAIGZ1bmN0aW9u
IHZhbGlkYXRlVHJhbnNwb3J0U3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CiAgIHZhbGlkYXRl
SWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICdzZWxlY3RlZENhbmRpZGF0ZVBhaXJJZCcsICdj
YW5kaWRhdGUtcGFpcicpOwogICB2YWxpZGF0ZUlkRmllbGQoc3RhdHNSZXBvcnQsIHN0YXRzLCAn
bG9jYWxDZXJ0aWZpY2F0ZUlkJywgJ2NlcnRpZmljYXRlJyk7CiAgIHZhbGlkYXRlSWRGaWVsZChz
dGF0c1JlcG9ydCwgc3RhdHMsICdyZW1vdGVDZXJ0aWZpY2F0ZUlkJywgJ2NlcnRpZmljYXRlJyk7
CisgIGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQoc3RhdHMsICd0bHNWZXJzaW9uJyk7Cisg
IGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQoc3RhdHMsICdkdGxzQ2lwaGVyJyk7CisgIGFz
c2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQoc3RhdHMsICdzcnRwQ2lwaGVyJyk7CisgIGFzc2Vy
dF9vcHRpb25hbF9zdHJpbmdfZmllbGQoc3RhdHMsICd0bHNHcm91cCcpOworICBhc3NlcnRfb3B0
aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnc2VsZWN0ZWRDYW5kaWRhdGVQYWlyQ2hh
bmdlcycpOwogfQogCiAvKgogICBbd2VicnRjLXN0YXRzXQogICA3LjE1LiBSVENJY2VDYW5kaWRh
dGVTdGF0cyBkaWN0aW9uYXJ5CiAgICAgZGljdGlvbmFyeSBSVENJY2VDYW5kaWRhdGVTdGF0cyA6
IFJUQ1N0YXRzIHsKLSAgICAgIERPTVN0cmluZyAgICAgICAgICAgdHJhbnNwb3J0SWQ7Ci0gICAg
ICBib29sZWFuICAgICAgICAgICAgIGlzUmVtb3RlOwotICAgICAgUlRDTmV0d29ya1R5cGUgICAg
ICBuZXR3b3JrVHlwZTsKLSAgICAgIERPTVN0cmluZyAgICAgICAgICAgaXA7CisgICAgICByZXF1
aXJlZCBET01TdHJpbmcgIHRyYW5zcG9ydElkOworICAgICAgRE9NU3RyaW5nPyAgICAgICAgICBh
ZGRyZXNzOwogICAgICAgbG9uZyAgICAgICAgICAgICAgICBwb3J0OwogICAgICAgRE9NU3RyaW5n
ICAgICAgICAgICBwcm90b2NvbDsKICAgICAgIFJUQ0ljZUNhbmRpZGF0ZVR5cGUgY2FuZGlkYXRl
VHlwZTsKICAgICAgIGxvbmcgICAgICAgICAgICAgICAgcHJpb3JpdHk7CiAgICAgICBET01TdHJp
bmcgICAgICAgICAgIHVybDsKICAgICAgIERPTVN0cmluZyAgICAgICAgICAgcmVsYXlQcm90b2Nv
bDsKLSAgICAgIGJvb2xlYW4gICAgICAgICAgICAgZGVsZXRlZCA9IGZhbHNlOwotICAgIH07Ci0K
LSAgICBlbnVtIFJUQ05ldHdvcmtUeXBlIHsKLSAgICAgICJibHVldG9vdGgiLAotICAgICAgImNl
bGx1bGFyIiwKLSAgICAgICJldGhlcm5ldCIsCi0gICAgICAid2lmaSIsCi0gICAgICAid2ltYXgi
LAotICAgICAgInZwbiIsCi0gICAgICAidW5rbm93biIKICAgICB9OwogCiAgIFt3ZWJydGMtcGNd
CkBAIC03MDcsMjkgKzkwNiwzMyBAQCBmdW5jdGlvbiB2YWxpZGF0ZVRyYW5zcG9ydFN0YXRzKHN0
YXRzUmVwb3J0LCBzdGF0cykgewogICAgIH07CiAKICAgOC42LiAgTWFuZGF0b3J5IFRvIEltcGxl
bWVudCBTdGF0cwotICAgIC0gUlRDSWNlQ2FuZGlkYXRlU3RhdHMsIHdpdGggYXR0cmlidXRlcyBp
cCwgcG9ydCwgcHJvdG9jb2wsIGNhbmRpZGF0ZVR5cGUsCi0gICAgICBwcmlvcml0eSwgdXJsCisg
ICAgLSBSVENJY2VDYW5kaWRhdGVTdGF0cywgd2l0aCBhdHRyaWJ1dGVzIGFkZHJlc3MsIHBvcnQs
IHByb3RvY29sLCBjYW5kaWRhdGVUeXBlLCB1cmwKICAqLwogZnVuY3Rpb24gdmFsaWRhdGVJY2VD
YW5kaWRhdGVTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgdmFsaWRhdGVSdGNTdGF0cyhz
dGF0c1JlcG9ydCwgc3RhdHMpOwogCi0gIHZhbGlkYXRlT3B0aW9uYWxJZEZpZWxkKHN0YXRzUmVw
b3J0LCBzdGF0cywgJ3RyYW5zcG9ydElkJywgJ3RyYW5zcG9ydCcpOwotICBhc3NlcnRfb3B0aW9u
YWxfYm9vbGVhbl9maWVsZChzdGF0cywgJ2lzUmVtb3RlJyk7Ci0KLSAgYXNzZXJ0X29wdGlvbmFs
X2VudW1fZmllbGQoc3RhdHMsICduZXR3b3JrVHlwZScsCi0gICAgWydibHVldG9vdGgnLCAnY2Vs
bHVsYXInLCAnZXRoZXJuZXQnLCAnd2lmaScsICd3aW1heCcsICd2cG4nLCAndW5rbm93biddKQot
Ci0gIGFzc2VydF9zdHJpbmdfZmllbGQoc3RhdHMsICdpcCcpOwotICBhc3NlcnRfaW50X2ZpZWxk
KHN0YXRzLCAncG9ydCcpOworICB2YWxpZGF0ZUlkRmllbGQoc3RhdHNSZXBvcnQsIHN0YXRzLCAn
dHJhbnNwb3J0SWQnLCAndHJhbnNwb3J0Jyk7CisgIC8vIFRoZSBhZGRyZXNzIGlzIG1hbmRhdG9y
eSB0byBpbXBsZW1lbnQsIGJ1dCBpcyBhbGxvd2VkIHRvIGJlIG51bGwKKyAgLy8gd2hlbiBoaWRk
ZW4gZm9yIHByaXZhY3kgcmVhc29ucy4KKyAgaWYgKHN0YXRzLmFkZHJlc3MgIT0gbnVsbCkgewor
ICAgIC8vIERlcGFydHVyZSBmcm9tIHN0cmljdCBzcGVjIHJlYWRpbmc6CisgICAgLy8gVGhpcyBm
aWVsZCBpcyBwb3B1bGF0ZWQgaW4gYSByYWN5IG1hbm5lciBpbiBDaHJvbWUuCisgICAgLy8gV2Ug
YWxsb3cgaXQgdG8gYmUgcHJlc2VudCBvciBub3QgcHJlc2VudCBmb3IgdGhlIHRpbWUgYmVpbmcu
CisgICAgLy8gVE9ETyhodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnLzEwOTI3MjEpOiBCZWNvbWUg
Y29uc2lzdGVudC4KKyAgICBhc3NlcnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxkKHN0YXRzLCAnYWRk
cmVzcycpOworICB9CisgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdwb3J0Jyk7
CiAgIGFzc2VydF9zdHJpbmdfZmllbGQoc3RhdHMsICdwcm90b2NvbCcpOwogCiAgIGFzc2VydF9l
bnVtX2ZpZWxkKHN0YXRzLCAnY2FuZGlkYXRlVHlwZScsCiAgICAgWydob3N0JywgJ3NyZmx4Jywg
J3ByZmx4JywgJ3JlbGF5J10pOwogCi0gIGFzc2VydF9pbnRfZmllbGQoc3RhdHMsICdwcmlvcml0
eScpOworICBhc3NlcnRfb3B0aW9uYWxfaW50X2ZpZWxkKHN0YXRzLCAncHJpb3JpdHknKTsKKyAg
Ly8gVGhlIHVybCBmaWVsZCBpcyBtYW5kYXRvcnkgZm9yIGxvY2FsIGNhbmRpZGF0ZXMgZ2F0aGVy
ZWQgZnJvbQorICAvLyBhIFNUVU4gb3IgVFVSTiBzZXJ2ZXIsIGFuZCBNVVNUIE5PVCBiZSBwcmVz
ZW50IG90aGVyd2lzZS4KKyAgLy8gVE9ETyhodGEpOiBJbXByb3ZlIGNoZWNraW5nLgogICBhc3Nl
cnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxkKHN0YXRzLCAndXJsJyk7CiAgIGFzc2VydF9vcHRpb25h
bF9zdHJpbmdfZmllbGQoc3RhdHMsICdyZWxheVByb3RvY29sJyk7Ci0gIGFzc2VydF9vcHRpb25h
bF9ib29sZWFuX2ZpZWxkKHN0YXRzLCAnZGVsZXRlZCcpOwogfQogCiAvKgpAQCAtNzQwLDcgKzk0
Myw2IEBAIGZ1bmN0aW9uIHZhbGlkYXRlSWNlQ2FuZGlkYXRlU3RhdHMoc3RhdHNSZXBvcnQsIHN0
YXRzKSB7CiAgICAgICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgICBsb2NhbENhbmRpZGF0
ZUlkOwogICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgICAgICAgICAgcmVtb3RlQ2FuZGlkYXRl
SWQ7CiAgICAgICBSVENTdGF0c0ljZUNhbmRpZGF0ZVBhaXJTdGF0ZSBzdGF0ZTsKLSAgICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyAgICAgICAgICAgIHByaW9yaXR5OwogICAgICAgYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgbm9taW5hdGVkOwogICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAg
ICAgICAgICAgcGFja2V0c1NlbnQ7CiAgICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICAgICAg
ICBwYWNrZXRzUmVjZWl2ZWQ7CkBAIC03NjQsNyArOTY2LDggQEAgZnVuY3Rpb24gdmFsaWRhdGVJ
Y2VDYW5kaWRhdGVTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyAgICAgICAgICAgIHJldHJhbnNtaXNzaW9uc1NlbnQ7CiAgICAgICB1bnNpZ25lZCBs
b25nIGxvbmcgICAgICAgICAgICBjb25zZW50UmVxdWVzdHNTZW50OwogICAgICAgRE9NSGlnaFJl
c1RpbWVTdGFtcCAgICAgICAgICAgY29uc2VudEV4cGlyZWRUaW1lc3RhbXA7Ci0gICAgfTsKKyAg
ICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICAgICAgICAgIHBhY2tldHNEaXNjYXJkZWRPblNlbmQ7
CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICBieXRlc0Rpc2NhcmRlZE9uU2Vu
ZDsgICAgfTsKIAogICAgIGVudW0gUlRDU3RhdHNJY2VDYW5kaWRhdGVQYWlyU3RhdGUgewogICAg
ICAgImZyb3plbiIsCkBAIC03NzcsNyArOTgwLDggQEAgZnVuY3Rpb24gdmFsaWRhdGVJY2VDYW5k
aWRhdGVTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgW3dlYnJ0Yy1wY10KICAgOC42LiAg
TWFuZGF0b3J5IFRvIEltcGxlbWVudCBTdGF0cwogICAgIC0gUlRDSWNlQ2FuZGlkYXRlUGFpclN0
YXRzLCB3aXRoIGF0dHJpYnV0ZXMgdHJhbnNwb3J0SWQsIGxvY2FsQ2FuZGlkYXRlSWQsCi0gICAg
ICByZW1vdGVDYW5kaWRhdGVJZCwgc3RhdGUsIHByaW9yaXR5LCBub21pbmF0ZWQsIGJ5dGVzU2Vu
dCwgYnl0ZXNSZWNlaXZlZCwgdG90YWxSb3VuZFRyaXBUaW1lLCBjdXJyZW50Um91bmRUcmlwVGlt
ZQorICAgICAgcmVtb3RlQ2FuZGlkYXRlSWQsIHN0YXRlLCBub21pbmF0ZWQsIGJ5dGVzU2VudCwg
Ynl0ZXNSZWNlaXZlZCwgdG90YWxSb3VuZFRyaXBUaW1lLCBjdXJyZW50Um91bmRUcmlwVGltZQor
ICAgLy8gbm90IGluY2x1ZGluZyBwcmlvcml0eSBwZXIgaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWJydGMtcGMvaXNzdWVzLzI0NTcKICAqLwogZnVuY3Rpb24gdmFsaWRhdGVJY2VDYW5kaWRhdGVQ
YWlyU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CiAgIHZhbGlkYXRlUnRjU3RhdHMoc3RhdHNS
ZXBvcnQsIHN0YXRzKTsKQEAgLTc4OSw3ICs5OTMsNiBAQCBmdW5jdGlvbiB2YWxpZGF0ZUljZUNh
bmRpZGF0ZVBhaXJTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgYXNzZXJ0X2VudW1fZmll
bGQoc3RhdHMsICdzdGF0ZScsCiAgICAgWydmcm96ZW4nLCAnd2FpdGluZycsICdpbi1wcm9ncmVz
cycsICdmYWlsZWQnLCAnc3VjY2VlZGVkJ10pOwogCi0gIGFzc2VydF91bnNpZ25lZF9pbnRfZmll
bGQoc3RhdHMsICdwcmlvcml0eScpOwogICBhc3NlcnRfYm9vbGVhbl9maWVsZChzdGF0cywgJ25v
bWluYXRlZCcpOwogICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAn
cGFja2V0c1NlbnQnKTsKICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0
cywgJ3BhY2tldHNSZWNlaXZlZCcpOwpAQCAtODE3LDYgKzEwMjAsOCBAQCBmdW5jdGlvbiB2YWxp
ZGF0ZUljZUNhbmRpZGF0ZVBhaXJTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgYXNzZXJ0
X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3JldHJhbnNtaXNzaW9uc1NlbnQn
KTsKICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2NvbnNlbnRS
ZXF1ZXN0c1NlbnQnKTsKICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywgJ2Nv
bnNlbnRFeHBpcmVkVGltZXN0YW1wJyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRf
ZmllbGQoc3RhdHMsICdwYWNrZXRzRGlzY2FyZGVkT25TZW5kJyk7CisgIGFzc2VydF9vcHRpb25h
bF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdieXRlc0Rpc2NhcmRlZE9uU2VuZCcpOwogfQog
CiAvKgpAQCAtODQyLDMgKzEwNDcsMjYgQEAgZnVuY3Rpb24gdmFsaWRhdGVDZXJ0aWZpY2F0ZVN0
YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogICBhc3NlcnRfc3RyaW5nX2ZpZWxkKHN0YXRzLCAn
YmFzZTY0Q2VydGlmaWNhdGUnKTsKICAgYXNzZXJ0X29wdGlvbmFsX3N0cmluZ19maWVsZChzdGF0
cywgJ2lzc3VlckNlcnRpZmljYXRlSWQnKTsKIH0KKworLyoKKyAgW3dlYnJ0Yy1zdGF0c10KKyAg
Ny4zMC4gUlRDSWNlU2VydmVyU3RhdHMgZGljdGlvbmFyeQorICBkaWN0aW9uYXJ5IFJUQ0ljZVNl
cnZlclN0YXRzIDogUlRDU3RhdHMgeworICAgICAgRE9NU3RyaW5nIHVybDsKKyAgICAgIGxvbmcg
cG9ydDsKKyAgICAgIERPTVN0cmluZyBwcm90b2NvbDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgdG90
YWxSZXF1ZXN0c1NlbnQ7CisgICAgICB1bnNpZ25lZCBsb25nIHRvdGFsUmVzcG9uc2VzUmVjZWl2
ZWQ7CisgICAgICBkb3VibGUgdG90YWxSb3VuZFRyaXBUaW1lOworICAgIH07CisqLworZnVuY3Rp
b24gdmFsaWRhdGVJY2VTZXJ2ZXJTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKKyAgdmFsaWRh
dGVSdGNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpOworCisgIGFzc2VydF9vcHRpb25hbF9zdHJp
bmdfZmllbGQoc3RhdHMsICd1cmwnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX2ludF9maWVsZChzdGF0
cywgJ3BvcnQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3N0cmluZ19maWVsZChzdGF0cywgJ3Byb3Rv
Y29sJyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICd0b3Rh
bFJlcXVlc3RzU2VudCcpOworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0
YXRzLCAndG90YWxSZXNwb25zZXNSZWNlaXZlZCcpOworICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVy
X2ZpZWxkKHN0YXRzLCAndG90YWxSb3VuZFRyaXBUaW1lJyk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENUcmFja0V2
ZW50LWNvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENUcmFja0V2ZW50LWNvbnN0cnVjdG9yLmh0bWwKaW5kZXggYTBj
MDMxZWFhNWEyNTcyOTYzOWQyNTk1ZjFhNTc0OGFlNTk5NTVjYi4uYzkxMDVlNjkzYWY2NjYxYzc0
YmE4Njg4NTg3MzJhMjlkMmI4NDA5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDVHJhY2tFdmVudC1jb25zdHJ1Y3Rvci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1RyYWNrRXZlbnQtY29uc3RydWN0b3IuaHRtbApAQCAtMTE3LDcgKzExNyw3IEBACiAg
ICAgY29uc3QgeyByZWNlaXZlciB9ID0gdHJhbnNjZWl2ZXI7CiAgICAgY29uc3QgeyB0cmFjayB9
ID0gcmVjZWl2ZXI7CiAKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4K
KyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KICAgICAgIG5ldyBSVENUcmFj
a0V2ZW50KCd0cmFjaycsIHsKICAgICAgICAgcmVjZWl2ZXIsIHRyYWNrCiAgICAgICB9KSk7CkBA
IC0xMjksNyArMTI5LDcgQEAKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2Vp
dmVyKCdhdWRpbycpOwogICAgIGNvbnN0IHsgcmVjZWl2ZXIgfSA9IHRyYW5zY2VpdmVyOwogCi0g
ICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBuZXcgUlRDVHJhY2tFdmVudCgndHJhY2snLCB7
CiAgICAgICAgIHJlY2VpdmVyLCB0cmFuc2NlaXZlcgogICAgICAgfSkpOwpAQCAtMTQyLDcgKzE0
Miw3IEBACiAgICAgY29uc3QgeyByZWNlaXZlciB9ID0gdHJhbnNjZWl2ZXI7CiAgICAgY29uc3Qg
eyB0cmFjayB9ID0gcmVjZWl2ZXI7CiAKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3Io
KSwgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KICAgICAgIG5l
dyBSVENUcmFja0V2ZW50KCd0cmFjaycsIHsKICAgICAgICAgdHJhY2ssIHRyYW5zY2VpdmVyCiAg
ICAgICB9KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENUcmFja0V2ZW50LWZpcmUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNrRXZlbnQtZmlyZS5o
dG1sCmluZGV4IDJlMjI2YzM1MTc0ZWMyMDMwNTUwY2JkMTc4ODczNzU3M2NhNDllZWIuLjk0MzVk
N2I2ZTU0ZGNiNDk2Yzk4NTMzZTBhYWU1MTE3YTgwNjc4NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNrRXZlbnQt
ZmlyZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1RyYWNrRXZlbnQtZmlyZS5odG1sCkBAIC0zNiw2ICszNiwyOCBAQCBhPXNz
cmM6MyBjbmFtZTo0CiBhPXNzcmM6MyBtc2lkOjEgMgogYDsKIAorY29uc3Qgc2RwMiA9IHNkcEJh
c2UgKyBgCithPXNzcmM6MyBjbmFtZTo0CithPXNzcmM6MyBtc2lkOjEgMgorYDsKKworY29uc3Qg
c2RwMyA9IHNkcEJhc2UgKyBgCithPW1zaWQ6MSAyCithPXNzcmM6MyBjbmFtZTo0CithPXNzcmM6
MyBtc2lkOjMgMgorYDsKKworY29uc3Qgc2RwNCA9IHNkcDEucmVwbGFjZSgnbXNpZC1zZW1hbnRp
YycsICd1bmtub3duYXR0cicpOworCitjb25zdCBzZHA1ID0gc2RwQmFzZSArIGAKK2E9bXNpZDot
CitgOworCitjb25zdCBzZHA2ID0gc2RwQmFzZSArIGAKK2E9bXNpZDoxIDIKK2E9bXNpZDoxIDIK
K2A7CisKIGFzeW5jIGZ1bmN0aW9uIGFwcGx5UmVtb3RlRGVzY3JpcHRpb25BbmRSZXR1cm5SZW1v
dGVUcmFja0FuZFN0cmVhbXMocGMsIHNkcCkKIHsKICAgICBjb25zdCB0ZXN0VHJhY2tQcm9taXNl
ID0gbmV3IFByb21pc2UocmVzb2x2ZSAgPT4gewpAQCAtNDUsNiArNjcsNzIgQEAgYXN5bmMgZnVu
Y3Rpb24gYXBwbHlSZW1vdGVEZXNjcmlwdGlvbkFuZFJldHVyblJlbW90ZVRyYWNrQW5kU3RyZWFt
cyhwYywgc2RwKQogICAgIHJldHVybiB0ZXN0VHJhY2tQcm9taXNlOwogfQogCitwcm9taXNlX3Rl
c3QoYXN5bmMgdGVzdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgY29uc3Qg
W3RyYWNrLCBzdHJlYW1zXSA9IGF3YWl0IGFwcGx5UmVtb3RlRGVzY3JpcHRpb25BbmRSZXR1cm5S
ZW1vdGVUcmFja0FuZFN0cmVhbXMocGMsIHNkcDApOworICAgIGFzc2VydF9lcXVhbHMoc3RyZWFt
cy5sZW5ndGgsIDEsICJ0cmFjayBldmVudCBoYXMgYSBzdHJlYW0iKTsKK30sICJXaGVuIGE9bXNp
ZCBpcyBhYnNlbnQsIHRoZSB0cmFjayBzaG91bGQgc3RpbGwgYmUgYXNzb2NpYXRlZCB3aXRoIGEg
c3RyZWFtIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ZXN0ID0+IHsKKyAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisKKyAgICBjb25zdCBbdHJhY2ssIHN0cmVhbXNdID0gYXdhaXQgYXBwbHlSZW1v
dGVEZXNjcmlwdGlvbkFuZFJldHVyblJlbW90ZVRyYWNrQW5kU3RyZWFtcyhwYywgc2RwMSk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhzdHJlYW1zLmxlbmd0aCwgMSwgInRyYWNrIGV2ZW50IGhhcyBhIHN0
cmVhbSIpOworICAgIGFzc2VydF9lcXVhbHMoc3RyZWFtc1swXS5pZCwgIjEiLCAibXNpZCBzaG91
bGQgbWF0Y2giKTsKK30sICJTb3VyY2UtbGV2ZWwgbXNpZCBzaG91bGQgYmUgaWdub3JlZCBpZiBt
ZWRpYS1sZXZlbCBtc2lkIGlzIHByZXNlbnQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHRlc3Qg
PT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdGVzdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGNvbnN0IFt0cmFjaywgc3RyZWFt
c10gPSBhd2FpdCBhcHBseVJlbW90ZURlc2NyaXB0aW9uQW5kUmV0dXJuUmVtb3RlVHJhY2tBbmRT
dHJlYW1zKHBjLCBzZHAyKTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbXMubGVuZ3RoLCAxLCAi
dHJhY2sgZXZlbnQgaGFzIGEgc3RyZWFtIik7CisgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW1zWzBd
LmlkLCAiMSIsICJtc2lkIHNob3VsZCBtYXRjaCIpOworfSwgIlNvdXJjZS1sZXZlbCBtc2lkIHNo
b3VsZCBiZSBwYXJzZWQgaWYgbWVkaWEtbGV2ZWwgbXNpZCBpcyBhYnNlbnQiKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHRlc3QgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGxl
dCB0cmFjazsKKyAgICBsZXQgc3RyZWFtczsKKyAgICB0cnkgeworICAgICAgW3RyYWNrLCBzdHJl
YW1zXSA9IGF3YWl0IGFwcGx5UmVtb3RlRGVzY3JpcHRpb25BbmRSZXR1cm5SZW1vdGVUcmFja0Fu
ZFN0cmVhbXMocGMsIHNkcDMpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW1zLmxlbmd0aCwgMSwgInRyYWNrIGV2ZW50IGhh
cyBhIHN0cmVhbSIpOworICAgIGFzc2VydF9lcXVhbHMoc3RyZWFtc1swXS5pZCwgIjEiLCAibXNp
ZCBzaG91bGQgbWF0Y2giKTsKK30sICJTb3VyY2UtbGV2ZWwgbXNpZCBzaG91bGQgYmUgaWdub3Jl
ZCwgb3IgYW4gZXJyb3Igc2hvdWxkIGJlIHRocm93biwgaWYgYSBkaWZmZXJlbnQgbWVkaWEtbGV2
ZWwgbXNpZCBpcyBwcmVzZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ZXN0ID0+IHsKKyAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHRlc3QuYWRkX2NsZWFu
dXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBjb25zdCBbdHJhY2ssIHN0cmVhbXNdID0gYXdh
aXQgYXBwbHlSZW1vdGVEZXNjcmlwdGlvbkFuZFJldHVyblJlbW90ZVRyYWNrQW5kU3RyZWFtcyhw
Yywgc2RwNCk7CisgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW1zLmxlbmd0aCwgMSwgInRyYWNrIGV2
ZW50IGhhcyBhIHN0cmVhbSIpOworICAgIGFzc2VydF9lcXVhbHMoc3RyZWFtc1swXS5pZCwgIjEi
LCAibXNpZCBzaG91bGQgbWF0Y2giKTsKK30sICJzdHJlYW0gaWRzIHNob3VsZCBiZSBmb3VuZCBl
dmVuIGlmIG1zaWQtc2VtYW50aWMgaXMgYWJzZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ZXN0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHRl
c3QuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBjb25zdCBbdHJhY2ssIHN0
cmVhbXNdID0gYXdhaXQgYXBwbHlSZW1vdGVEZXNjcmlwdGlvbkFuZFJldHVyblJlbW90ZVRyYWNr
QW5kU3RyZWFtcyhwYywgc2RwNSk7CisgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW1zLmxlbmd0aCwg
MCwgInRyYWNrIGV2ZW50IGhhcyBubyBzdHJlYW0iKTsKK30sICJhPW1zaWQ6LSBzaG91bGQgcmVz
dWx0IGluIGEgdHJhY2sgZXZlbnQgd2l0aCBubyBzdHJlYW1zIik7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ZXN0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBjb25zdCBbdHJh
Y2ssIHN0cmVhbXNdID0gYXdhaXQgYXBwbHlSZW1vdGVEZXNjcmlwdGlvbkFuZFJldHVyblJlbW90
ZVRyYWNrQW5kU3RyZWFtcyhwYywgc2RwNik7CisgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW1zLmxl
bmd0aCwgMSwgInRyYWNrIGV2ZW50IGhhcyBvbmUgc3RyZWFtIik7Cit9LCAiRHVwbGljYXRlIGE9
bXNpZCBzaG91bGQgcmVzdWx0IGluIGEgdHJhY2sgZXZlbnQgd2l0aCBvbmUgc3RyZWFtIik7CisK
IHByb21pc2VfdGVzdChhc3luYyB0ZXN0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwogICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwtZW1wdHlzdHJpbmcuaHRt
bAppbmRleCA2YWY0MzZhMWQxYmQ0ZmIwYzNiYjgwNjVmNDg0NzU1ODJjODdlMzNhLi40NTZiYWM3
MzY3ZTZmOTAzNGY4M2JiZWU2OTk4MzEzYjc4OWI4YzBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0
eXN0cmluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLmh0bWwKQEAgLTc2LDggKzc2LDEw
IEBAIGFuZCBlbnN1cmVzIHRoYXQgYW4gZW1wdHkgc3RyaW5nIHNlbnQgYnkgb25lIGlzIHJlY2Vp
dmVkIGJ5IHRoZSBzZWNvbmQuCiAKICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCkgewogICAgIGdGaXJz
dENvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRf
Y2xlYW51cCgoKSA9PiBnRmlyc3RDb25uZWN0aW9uLmNsb3NlKCkpOwogCiAgICAgZ1NlY29uZENv
bm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xl
YW51cCgoKSA9PiBnU2Vjb25kQ29ubmVjdGlvbi5jbG9zZSgpKTsKIAogICAgIGdGaXJzdENvbm5l
Y3Rpb24ub25pY2VjYW5kaWRhdGUgPSBleGNoYW5nZUljZShnU2Vjb25kQ29ubmVjdGlvbik7CiAg
ICAgZ1NlY29uZENvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBleGNoYW5nZUljZShnRmlyc3RD
b25uZWN0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL2dldHN0YXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sCmluZGV4IDk3OWU5OWMw
YjI3Y2MzOWFmM2YzYTA1MGRmMTZhNzBiOGYxMjIxZTguLjA5NTBhMzc0YzNjZDhhNDRjYmI4YmZm
YzI5OTFmYzZkYzk1NDE3YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2dldHN0YXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMuaHRtbApAQCAt
ODEsMTAgKzgxLDEyIEBAIFRoaXMgdGVzdCB1c2VzIGRhdGEgb25seSwgYW5kIHRodXMgZG9lcyBu
b3QgcmVxdWlyZSBmYWtlIG1lZGlhIGRldmljZXMuCiAgIC8vIFRoaXMgZnVuY3Rpb24gc3RhcnRz
IHRoZSB0ZXN0LgogICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgZ0ZpcnN0Q29ubmVjdGlv
biA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgp
ID0+IGdGaXJzdENvbm5lY3Rpb24uY2xvc2UoKSk7CiAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5vbmlj
ZWNhbmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9GaXJzdDsKICAgICBnRmlyc3RDb25uZWN0aW9u
Lm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gb25JY2VDb25uZWN0aW9uU3RhdGVDaGFuZ2U7
CiAKICAgICBnU2Vjb25kQ29ubmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsK
KyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdTZWNvbmRDb25uZWN0aW9uLmNsb3NlKCkpOwog
ICAgIGdTZWNvbmRDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0gb25JY2VDYW5kaWRhdGVUb1Nl
Y29uZDsKIAogICAgIC8vIFRoZSBjcmVhdGVEYXRhQ2hhbm5lbCBpcyBuZWNlc3NhcnkgYW5kIHN1
ZmZpY2llbnQgdG8gbWFrZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaGlzdG9yaWNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9oaXN0b3JpY2FsLWV4
cGVjdGVkLnR4dAppbmRleCBjOGM4OTg0NWI4OTk1MTRkOGU1OTYzZWM1NWYxMDIzMDYwYzNjMjQ2
Li41MzBiMWNkZDk1OWIyZTdjN2Q4M2VhNjQ4MWQwYjZjZWFkN2QxNmRhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9oaXN0b3Jp
Y2FsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDYgQEAK
IAogUEFTUyBSVENEYXRhQ2hhbm5lbCBtZW1iZXIgcmVsaWFibGUgc2hvdWxkIG5vdCBleGlzdCAK
K1BBU1MgUlRDRGF0YUNoYW5uZWwgbWVtYmVyIG1heFJldHJhbnNtaXRUaW1lIHNob3VsZCBub3Qg
ZXhpc3QgCiBQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIG1lbWJlciBhZGRTdHJlYW0gc2hvdWxkIG5v
dCBleGlzdCAKIFBBU1MgUlRDUGVlckNvbm5lY3Rpb24gbWVtYmVyIGNyZWF0ZURUTUZTZW5kZXIg
c2hvdWxkIG5vdCBleGlzdCAKIFBBU1MgUlRDUGVlckNvbm5lY3Rpb24gbWVtYmVyIGdldExvY2Fs
U3RyZWFtcyBzaG91bGQgbm90IGV4aXN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaGlzdG9yaWNhbC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaGlzdG9yaWNhbC5o
dG1sCmluZGV4IGZmYTI4YmU1YmNhMzA3ZTY2NjJiMmQzNzIwZjk3MzY3ZjhjNDdjZGUuLmFlN2Ey
OWRlYzBjMTg0ZDViYzUyZTJkYjE0YjkxOWJkZDZiNzAwYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2hpc3RvcmljYWwuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9oaXN0b3JpY2FsLmh0bWwKQEAgLTQsOSArNCwxNCBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPGRpdiBpZD0ibG9nIj48L2Rpdj4K
IDxzY3JpcHQ+Ci10ZXN0KGZ1bmN0aW9uKCkgewotICBhc3NlcnRfZmFsc2UoInJlbGlhYmxlIiBp
biBSVENEYXRhQ2hhbm5lbC5wcm90b3R5cGUpOwotfSwgIlJUQ0RhdGFDaGFubmVsIG1lbWJlciBy
ZWxpYWJsZSBzaG91bGQgbm90IGV4aXN0Iik7CitbCisgICdyZWxpYWJsZScsCisgICdtYXhSZXRy
YW5zbWl0VGltZScsCitdLmZvckVhY2goKG1lbWJlcikgPT4geworICB0ZXN0KCgpID0+IHsKKyAg
ICBhc3NlcnRfZmFsc2UobWVtYmVyIGluIFJUQ0RhdGFDaGFubmVsLnByb3RvdHlwZSk7CisgIH0s
IGBSVENEYXRhQ2hhbm5lbCBtZW1iZXIgJHttZW1iZXJ9IHNob3VsZCBub3QgZXhpc3RgKTsKK30p
OwogCiBbCiAgICJhZGRTdHJlYW0iLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDdkOWNmNWZm
NGQyYWY3NTcxN2I1MTk1MDExNTQ2MGE3NzQ0YzFkYTEuLjE5MzMzZjc1YWQyMjNkYjQzZTNlMjQ2
N2E5Y2EwOTg4MjdjOGZkODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBA
CiAKLUZBSUwgaWRsX3Rlc3Qgc2V0dXAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiUlRDRXJyb3IgaW5oZXJpdHMgRE9NRXhjZXB0aW9uLCBidXQg
RE9NRXhjZXB0aW9uIGlzIHVuZGVmaW5lZC4iCitQQVNTIGlkbF90ZXN0IHNldHVwIAogUEFTUyBp
ZGxfdGVzdCB2YWxpZGF0aW9uIAogUEFTUyBUZXN0IGRyaXZlciBmb3IgYXN5bmNJbml0Q2VydGlm
aWNhdGUgCiBGQUlMIFRlc3QgZHJpdmVyIGZvciBhc3luY0luaXRUcmFuc3BvcnRzIGFzc2VydF91
bnJlYWNoZWQ6IEZhaWxlZCB0byBydW4gYXN5bmNJbml0VHJhbnNwb3J0czogUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ1NjdHBUcmFuc3BvcnQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCkBAIC0xNiw0ICsxNiw0OTMgQEAgUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBSVENS
dHBTZW5kZXI6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkCiBQQVNTIFBhcnRpYWwgaW50ZXJm
YWNlIFJUQ1J0cFNlbmRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCiBQQVNTIFBhcnRpYWwg
aW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uWzRdOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5l
ZCAKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb25bNF06IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBSVENQZWVyQ29u
bmVjdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24g
aW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAK
K1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5
IAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVy
dHkgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZU9m
ZmVyKG9wdGlvbmFsIFJUQ09mZmVyT3B0aW9ucykgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZUFuc3dlcihvcHRpb25hbCBSVENBbnN3ZXJPcHRpb25z
KSAKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0TG9jYWxE
ZXNjcmlwdGlvbihvcHRpb25hbCBSVENMb2NhbFNlc3Npb25EZXNjcmlwdGlvbkluaXQpIGFzc2Vy
dF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdvdCAx
CitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGxvY2FsRGVzY3Jp
cHRpb24gCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGN1cnJl
bnRMb2NhbERlc2NyaXB0aW9uIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24g
aW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uSW5pdCkgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IHJlbW90ZURlc2NyaXB0aW9uIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24gCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiAKK0ZBSUwgUlRD
UGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gYWRkSWNlQ2FuZGlkYXRlKG9wdGlv
bmFsIFJUQ0ljZUNhbmRpZGF0ZUluaXQpIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9u
ZyAubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIHNpZ25hbGluZ1N0YXRlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlv
biBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpY2VHYXRoZXJpbmdTdGF0ZSAKK1BBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaWNlQ29ubmVjdGlvblN0YXRlIAorUEFTUyBS
VENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb25uZWN0aW9uU3RhdGUgCitG
QUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGNhblRyaWNrbGVJY2VD
YW5kaWRhdGVzIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBw
cm9wZXJ0eSAiY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHJlc3RhcnRJY2Uo
KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5n
IG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJyZXN0YXJ0SWNlIiBtaXNz
aW5nCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGdldENvbmZp
Z3VyYXRpb24oKSAKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24g
c2V0Q29uZmlndXJhdGlvbihvcHRpb25hbCBSVENDb25maWd1cmF0aW9uKSBhc3NlcnRfZXF1YWxz
OiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBleHBlY3RlZCAwIGJ1dCBnb3QgMQorUEFTUyBS
VENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbG9zZSgpIAorUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm5lZ290aWF0aW9ubmVlZGVkIAor
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmljZWNhbmRpZGF0
ZSAKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25pY2VjYW5k
aWRhdGVlcnJvciBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEg
cHJvcGVydHkgIm9uaWNlY2FuZGlkYXRlZXJyb3IiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQ
QVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc2lnbmFsaW5nc3Rh
dGVjaGFuZ2UgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9u
aWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdlIAorUEFTUyBSVENQZWVyQ29u
bmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmNvbm5lY3Rpb25zdGF0ZWNoYW5nZSAKK1BB
U1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gY3JlYXRlT2ZmZXIoUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFj
aywgb3B0aW9uYWwgUlRDT2ZmZXJPcHRpb25zKSAKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50
ZXJmYWNlOiBvcGVyYXRpb24gc2V0TG9jYWxEZXNjcmlwdGlvbihvcHRpb25hbCBSVENMb2NhbFNl
c3Npb25EZXNjcmlwdGlvbkluaXQsIFZvaWRGdW5jdGlvbiwgUlRDUGVlckNvbm5lY3Rpb25FcnJv
ckNhbGxiYWNrKSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBleHBl
Y3RlZCAwIGJ1dCBnb3QgMQorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBjcmVhdGVBbnN3ZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2ssIFJUQ1BlZXJD
b25uZWN0aW9uRXJyb3JDYWxsYmFjaykgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFj
ZTogb3BlcmF0aW9uIHNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbklu
aXQsIFZvaWRGdW5jdGlvbiwgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSAKK0ZBSUwg
UlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gYWRkSWNlQ2FuZGlkYXRlKFJU
Q0ljZUNhbmRpZGF0ZUluaXQsIFZvaWRGdW5jdGlvbiwgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNh
bGxiYWNrKSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0eSBoYXMgd3JvbmcgLmxlbmd0aCBleHBlY3Rl
ZCAwIGJ1dCBnb3QgMQorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlv
biBnZW5lcmF0ZUNlcnRpZmljYXRlKEFsZ29yaXRobUlkZW50aWZpZXIpIAorUEFTUyBSVENQZWVy
Q29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTZW5kZXJzKCkgCitQQVNTIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFJlY2VpdmVycygpIAorUEFTUyBS
VENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRUcmFuc2NlaXZlcnMoKSAK
K1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gYWRkVHJhY2soTWVk
aWFTdHJlYW1UcmFjaywgTWVkaWFTdHJlYW0uLi4pIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IG9wZXJhdGlvbiByZW1vdmVUcmFjayhSVENSdHBTZW5kZXIpIAorUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRUcmFuc2NlaXZlcigoTWVkaWFT
dHJlYW1UcmFjayBvciBET01TdHJpbmcpLCBvcHRpb25hbCBSVENSdHBUcmFuc2NlaXZlckluaXQp
IAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnRyYWNrIAor
RkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY3RwIGFzc2VydF90
cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAic2N0cCIgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBv
cGVyYXRpb24gY3JlYXRlRGF0YUNoYW5uZWwoVVNWU3RyaW5nLCBvcHRpb25hbCBSVENEYXRhQ2hh
bm5lbEluaXQpIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBv
bmRhdGFjaGFubmVsIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlv
biBnZXRTdGF0cyhvcHRpb25hbCBNZWRpYVN0cmVhbVRyYWNrPykgCitQQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCkgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSAKK1BB
U1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0ZU9mZmVyKG9wdGlvbmFsIFJUQ09mZmVyT3B0aW9u
cykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2U6IGNhbGxpbmcgY3JlYXRlT2ZmZXIob3B0aW9uYWwgUlRDT2ZmZXJPcHRpb25zKSBvbiBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3JlYXRlQW5zd2VyKG9wdGlvbmFsIFJU
Q0Fuc3dlck9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5l
Y3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGNyZWF0ZUFuc3dlcihvcHRpb25hbCBSVENBbnN3ZXJP
cHRpb25zKSBvbiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0TG9jYWxE
ZXNjcmlwdGlvbihvcHRpb25hbCBSVENMb2NhbFNlc3Npb25EZXNjcmlwdGlvbkluaXQpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxs
aW5nIHNldExvY2FsRGVzY3JpcHRpb24ob3B0aW9uYWwgUlRDTG9jYWxTZXNzaW9uRGVzY3JpcHRp
b25Jbml0KSBvbiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibG9jYWxEZXNj
cmlwdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJj
dXJyZW50TG9jYWxEZXNjcmlwdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNz
aW9uRGVzY3JpcHRpb25Jbml0KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJD
b25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBzZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNz
aW9uRGVzY3JpcHRpb25Jbml0KSBvbiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBSVENQZWVyQ29ubmVjdGlv
biBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicmVtb3RlRGVzY3JpcHRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVy
Q29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRJY2VDYW5kaWRh
dGUob3B0aW9uYWwgUlRDSWNlQ2FuZGlkYXRlSW5pdCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAor
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkSWNlQ2FuZGlkYXRl
KG9wdGlvbmFsIFJUQ0ljZUNhbmRpZGF0ZUluaXQpIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJzaWduYWxpbmdTdGF0ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJpY2VHYXRoZXJpbmdTdGF0ZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpY2VDb25uZWN0aW9uU3RhdGUiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29ubmVjdGlvblN0YXRlIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhblRyaWNrbGVJ
Y2VDYW5kaWRhdGVzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3Bl
cnR5ICJjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFp
bgorRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVzdGFydEljZSgpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJyZXN0YXJ0SWNlIiBub3QgZm91bmQgaW4g
cHJvdG90eXBlIGNoYWluCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRDb25maWd1cmF0aW9u
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0Q29u
ZmlndXJhdGlvbihvcHRpb25hbCBSVENDb25maWd1cmF0aW9uKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBzZXRDb25maWd1
cmF0aW9uKG9wdGlvbmFsIFJUQ0NvbmZpZ3VyYXRpb24pIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJU
Q1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJjbG9zZSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRD
UGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9ubmVnb3RpYXRpb25uZWVkZWQiIHdpdGggdGhlIHByb3BlciB0eXBl
IAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25pY2VjYW5kaWRhdGUiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25pY2VjYW5kaWRhdGVlcnJvciIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAib25pY2VjYW5kaWRh
dGVlcnJvciIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBSVENQZWVyQ29ubmVj
dGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAib25zaWduYWxpbmdzdGF0ZWNoYW5nZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJvbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmljZWdhdGhlcmluZ3N0YXRl
Y2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50
ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9u
Y29ubmVjdGlvbnN0YXRlY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImNyZWF0ZU9mZmVyKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLCBS
VENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2ssIG9wdGlvbmFsIFJUQ09mZmVyT3B0aW9ucyki
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IGNhbGxpbmcgY3JlYXRlT2ZmZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2ssIFJUQ1Bl
ZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaywgb3B0aW9uYWwgUlRDT2ZmZXJPcHRpb25zKSBvbiBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0TG9jYWxEZXNjcmlwdGlvbihv
cHRpb25hbCBSVENMb2NhbFNlc3Npb25EZXNjcmlwdGlvbkluaXQsIFZvaWRGdW5jdGlvbiwgUlRD
UGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBzZXRMb2NhbERlc2NyaXB0aW9u
KG9wdGlvbmFsIFJUQ0xvY2FsU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdCwgVm9pZEZ1bmN0aW9uLCBS
VENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2spIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJjcmVhdGVBbnN3ZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2ss
IFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaykiIHdpdGggdGhlIHByb3BlciB0eXBlIAor
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgY3JlYXRlQW5zd2VyKFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJh
Y2spIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRSZW1vdGVEZXNj
cmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb25Jbml0LCBWb2lkRnVuY3Rpb24sIFJUQ1BlZXJD
b25uZWN0aW9uRXJyb3JDYWxsYmFjaykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0UmVtb3RlRGVzY3JpcHRpb24oUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uSW5pdCwgVm9pZEZ1bmN0aW9uLCBSVENQZWVyQ29ubmVjdGlvbkVy
cm9yQ2FsbGJhY2spIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRJ
Y2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlSW5pdCwgVm9pZEZ1bmN0aW9uLCBSVENQZWVyQ29u
bmVjdGlvbkVycm9yQ2FsbGJhY2spIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5k
aWRhdGVJbml0LCBWb2lkRnVuY3Rpb24sIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaykg
b24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdlbmVyYXRlQ2VydGlmaWNh
dGUoQWxnb3JpdGhtSWRlbnRpZmllcikiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgZ2VuZXJhdGVDZXJ0aWZpY2F0ZShBbGdv
cml0aG1JZGVudGlmaWVyKSBvbiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Z2V0U2VuZGVycygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rp
b24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImdldFJlY2VpdmVycygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImdldFRyYW5zY2VpdmVycygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
UlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2ssIE1lZGlhU3RyZWFt
Li4uKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogY2FsbGluZyBhZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrLCBNZWRpYVN0cmVhbS4uLikg
b24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZVRyYWNrKFJUQ1J0
cFNlbmRlcikiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlVHJhY2soUlRDUnRwU2VuZGVyKSBvbiBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkVHJhbnNjZWl2ZXIoKE1lZGlhU3RyZWFtVHJh
Y2sgb3IgRE9NU3RyaW5nKSwgb3B0aW9uYWwgUlRDUnRwVHJhbnNjZWl2ZXJJbml0KSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGlu
ZyBhZGRUcmFuc2NlaXZlcigoTWVkaWFTdHJlYW1UcmFjayBvciBET01TdHJpbmcpLCBvcHRpb25h
bCBSVENSdHBUcmFuc2NlaXZlckluaXQpIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbnRyYWNrIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUlRDUGVlckNvbm5l
Y3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInNjdHAiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVy
dHkgInNjdHAiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgUlRDUGVlckNvbm5l
Y3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImNyZWF0ZURhdGFDaGFubmVsKFVTVlN0cmluZywgb3B0aW9uYWwgUlRDRGF0YUNoYW5u
ZWxJbml0KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogY2FsbGluZyBjcmVhdGVEYXRhQ2hhbm5lbChVU1ZTdHJpbmcsIG9wdGlvbmFsIFJU
Q0RhdGFDaGFubmVsSW5pdCkgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24g
aW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Im9uZGF0YWNoYW5uZWwiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVj
dGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiZ2V0U3RhdHMob3B0aW9uYWwgTWVkaWFTdHJlYW1UcmFjaz8pIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGdldFN0
YXRzKG9wdGlvbmFsIE1lZGlhU3RyZWFtVHJhY2s/KSBvbiBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBSVENT
ZXNzaW9uRGVzY3JpcHRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIAorUEFTUyBSVENTZXNzaW9uRGVzY3JpcHRpb24gaW50ZXJmYWNlIG9iamVj
dCBuYW1lIAorUEFTUyBSVENTZXNzaW9uRGVzY3JpcHRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNT
IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkg
CitQQVNTIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0eXBlIAor
UEFTUyBSVENTZXNzaW9uRGVzY3JpcHRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2RwIAorUEFT
UyBSVENTZXNzaW9uRGVzY3JpcHRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gdG9KU09OKCkgCitQ
QVNTIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5l
dyBSVENTZXNzaW9uRGVzY3JpcHRpb24oeyB0eXBlOiAnb2ZmZXInIH0pIAorUEFTUyBTdHJpbmdp
ZmljYXRpb24gb2YgbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7IHR5cGU6ICdvZmZlcicgfSkg
CitQQVNTIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENTZXNzaW9uRGVz
Y3JpcHRpb24oeyB0eXBlOiAnb2ZmZXInIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBpbnRlcmZh
Y2U6IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oeyB0eXBlOiAnb2ZmZXInIH0pIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAic2RwIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uIGludGVyZmFjZTogbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7IHR5cGU6
ICdvZmZlcicgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitQQVNTIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBpbnRlcmZhY2U6IGRlZmF1bHQg
dG9KU09OIG9wZXJhdGlvbiBvbiBuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHsgdHlwZTogJ29m
ZmVyJyB9KSAKK1BBU1MgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitGQUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRl
cmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1ZSBmb3IgUlRDSWNl
Q2FuZGlkYXRlLmxlbmd0aCBleHBlY3RlZCAwIGJ1dCBnb3QgMQorUEFTUyBSVENJY2VDYW5kaWRh
dGUgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
CitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkg
CitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkg
CitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjYW5kaWRhdGUgCitQ
QVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzZHBNaWQgCitQQVNTIFJU
Q0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzZHBNTGluZUluZGV4IAorRkFJTCBS
VENJY2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZm91bmRhdGlvbiBhc3NlcnRfdHJ1
ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImZvdW5kYXRpb24i
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBjb21wb25lbnQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11
c3QgaGF2ZSBhIHByb3BlcnR5ICJjb21wb25lbnQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwcmlvcml0eSBhc3NlcnRf
dHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInByaW9yaXR5
IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgYWRkcmVzcyBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVz
dCBoYXZlIGEgcHJvcGVydHkgImFkZHJlc3MiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlM
IFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwcm90b2NvbCBhc3NlcnRfdHJ1
ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInByb3RvY29sIiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgcG9ydCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZl
IGEgcHJvcGVydHkgInBvcnQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJUQ0ljZUNh
bmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0eXBlIGFzc2VydF90cnVlOiBUaGUgcHJvdG90
eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAidHlwZSIgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogYXR0cmlidXRlIHRjcFR5cGUg
YXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ0
Y3BUeXBlIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENJY2VDYW5kaWRhdGUgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgcmVsYXRlZEFkZHJlc3MgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5
cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJyZWxhdGVkQWRkcmVzcyIgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogYXR0cmlidXRl
IHJlbGF0ZWRQb3J0IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUg
YSBwcm9wZXJ0eSAicmVsYXRlZFBvcnQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJU
Q0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB1c2VybmFtZUZyYWdtZW50IGFzc2Vy
dF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAidXNlcm5h
bWVGcmFnbWVudCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgUlRDSWNlQ2FuZGlkYXRl
IGludGVyZmFjZTogb3BlcmF0aW9uIHRvSlNPTigpIAorUEFTUyBSVENJY2VDYW5kaWRhdGUgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgc2RwTWlkOiAx
IH0pIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1p
ZDogMSB9KSAKK1BBU1MgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogbmV3IFJUQ0ljZUNhbmRp
ZGF0ZSh7IHNkcE1pZDogMSB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmRpZGF0ZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IG5ldyBS
VENJY2VDYW5kaWRhdGUoeyBzZHBNaWQ6IDEgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZHBN
aWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNl
OiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgc2RwTWlkOiAxIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2RwTUxpbmVJbmRleCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFJUQ0ljZUNhbmRp
ZGF0ZSBpbnRlcmZhY2U6IG5ldyBSVENJY2VDYW5kaWRhdGUoeyBzZHBNaWQ6IDEgfSkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJmb3VuZGF0aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRf
aW5oZXJpdHM6IHByb3BlcnR5ICJmb3VuZGF0aW9uIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IG5ldyBSVENJY2VDYW5kaWRhdGUo
eyBzZHBNaWQ6IDEgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb21wb25lbnQiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNvbXBvbmVudCIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBu
ZXcgUlRDSWNlQ2FuZGlkYXRlKHsgc2RwTWlkOiAxIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cHJpb3JpdHkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
InByaW9yaXR5IiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFJUQ0ljZUNhbmRp
ZGF0ZSBpbnRlcmZhY2U6IG5ldyBSVENJY2VDYW5kaWRhdGUoeyBzZHBNaWQ6IDEgfSkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJhZGRyZXNzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5o
ZXJpdHM6IHByb3BlcnR5ICJhZGRyZXNzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitG
QUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IG5ldyBSVENJY2VDYW5kaWRhdGUoeyBzZHBN
aWQ6IDEgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwcm90b2NvbCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAicHJvdG9jb2wiIG5vdCBmb3VuZCBpbiBw
cm90b3R5cGUgY2hhaW4KK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogbmV3IFJUQ0lj
ZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBvcnQiIHdp
dGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInBvcnQiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTog
bmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InR5cGUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInR5
cGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGlu
dGVyZmFjZTogbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9KSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInRjcFR5cGUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgInRjcFR5cGUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgUlRD
SWNlQ2FuZGlkYXRlIGludGVyZmFjZTogbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbGF0ZWRBZGRyZXNzIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJyZWxhdGVkQWRkcmVzcyIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBuZXcg
UlRDSWNlQ2FuZGlkYXRlKHsgc2RwTWlkOiAxIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVs
YXRlZFBvcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
InJlbGF0ZWRQb3J0IiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFJUQ0ljZUNh
bmRpZGF0ZSBpbnRlcmZhY2U6IG5ldyBSVENJY2VDYW5kaWRhdGUoeyBzZHBNaWQ6IDEgfSkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJ1c2VybmFtZUZyYWdtZW50IiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJ1c2VybmFtZUZyYWdtZW50IiBub3QgZm91bmQg
aW4gcHJvdG90eXBlIGNoYWluCitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IG5ldyBS
VENJY2VDYW5kaWRhdGUoeyBzZHBNaWQ6IDEgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pT
T04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZh
Y2U6IHRvSlNPTiBvcGVyYXRpb24gb24gbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9
KSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBSVENQZWVyQ29ubmVjdGlv
bkljZUV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBSVENQZWVyQ29ubmVjdGlv
bkljZUV2ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb25J
Y2VFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZl
bnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAorUEFTUyBSVENQZWVyQ29ubmVj
dGlvbkljZUV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGNhbmRpZGF0ZSAKK1BBU1MgUlRDUGVl
ckNvbm5lY3Rpb25JY2VFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB1cmwgCitQQVNTIFJUQ1Bl
ZXJDb25uZWN0aW9uSWNlRXZlbnQgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUlRD
UGVlckNvbm5lY3Rpb25JY2VFdmVudCgnaWNlJykgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBu
ZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCgnaWNlJykgCitQQVNTIFJUQ1BlZXJDb25uZWN0
aW9uSWNlRXZlbnQgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCgnaWNl
JykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYW5kaWRhdGUiIHdpdGggdGhlIHByb3BlciB0eXBl
IAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50IGludGVyZmFjZTogbmV3IFJUQ1BlZXJD
b25uZWN0aW9uSWNlRXZlbnQoJ2ljZScpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXJsIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDUGVl
ckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDUGVlckNvbm5l
Y3Rpb25JY2VFcnJvckV2ZW50IiBtaXNzaW5nCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJy
b3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZl
bnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiIG1p
c3NpbmcKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IGludGVyZmFjZSBvYmpl
Y3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJS
VENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiIG1pc3NpbmcKK0ZBSUwgUlRDUGVlckNvbm5l
Y3Rpb25JY2VFcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIg
ZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIgbWlzc2lu
ZworRkFJTCBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3Ry
dWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJv
cGVydHkgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIgbWlzc2luZworRkFJTCBSVENQ
ZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ1Bl
ZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIgbWlzc2luZworRkFJTCBSVENQZWVyQ29ubmVjdGlv
bkljZUVycm9yRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWRkcmVzcyBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlv
bkljZUVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVy
cm9yRXZlbnQiIG1pc3NpbmcKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIHBvcnQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IiBleHBl
Y3RlZCBwcm9wZXJ0eSAiUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IiBtaXNzaW5nCitG
QUlMIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB1
cmwgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
UlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDUGVl
ckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IiBtaXNzaW5nCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9u
SWNlRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlcnJvckNvZGUgYXNzZXJ0X293bl9w
cm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDUGVlckNvbm5lY3Rp
b25JY2VFcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDUGVlckNvbm5lY3Rpb25JY2VF
cnJvckV2ZW50IiBtaXNzaW5nCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBlcnJvclRleHQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50
IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IiBtaXNz
aW5nCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBtdXN0IGJlIHByaW1hcnkg
aW50ZXJmYWNlIG9mIG5ldyBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQoJ2ljZS1lcnJv
cicsIHsgcG9ydDogMCwgZXJyb3JDb2RlOiA3MDEgfSk7IGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ1BlZXJDb25u
ZWN0aW9uSWNlRXJyb3JFdmVudCIKK0ZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBSVENQZWVy
Q29ubmVjdGlvbkljZUVycm9yRXZlbnQoJ2ljZS1lcnJvcicsIHsgcG9ydDogMCwgZXJyb3JDb2Rl
OiA3MDEgfSk7IGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIKK0ZB
SUwgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IGludGVyZmFjZTogbmV3IFJUQ1BlZXJD
b25uZWN0aW9uSWNlRXJyb3JFdmVudCgnaWNlLWVycm9yJywgeyBwb3J0OiAwLCBlcnJvckNvZGU6
IDcwMSB9KTsgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRyZXNzIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcg
b2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiCitGQUlMIFJU
Q1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVj
dGlvbkljZUVycm9yRXZlbnQoJ2ljZS1lcnJvcicsIHsgcG9ydDogMCwgZXJyb3JDb2RlOiA3MDEg
fSk7IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicG9ydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBl
eHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IgorRkFJTCBSVENQZWVyQ29u
bmVjdGlvbkljZUVycm9yRXZlbnQgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VF
cnJvckV2ZW50KCdpY2UtZXJyb3InLCB7IHBvcnQ6IDAsIGVycm9yQ29kZTogNzAxIH0pOyBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInVybCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFs
czogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBu
dWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
UlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IgorRkFJTCBSVENQZWVyQ29ubmVjdGlvbklj
ZUVycm9yRXZlbnQgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50
KCdpY2UtZXJyb3InLCB7IHBvcnQ6IDAsIGVycm9yQ29kZTogNzAxIH0pOyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImVycm9yQ29kZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczog
VW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxs
IGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUlRD
UGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IgorRkFJTCBSVENQZWVyQ29ubmVjdGlvbkljZUVy
cm9yRXZlbnQgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50KCdp
Y2UtZXJyb3InLCB7IHBvcnQ6IDAsIGVycm9yQ29kZTogNzAxIH0pOyBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImVycm9yVGV4dCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5l
eHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDUGVl
ckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IgorUEFTUyBSVENDZXJ0aWZpY2F0ZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBSVEND
ZXJ0aWZpY2F0ZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgUlRDQ2VydGlmaWNhdGUg
aW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBSVENDZXJ0aWZpY2F0ZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BB
U1MgUlRDQ2VydGlmaWNhdGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFT
UyBSVENDZXJ0aWZpY2F0ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitQQVNT
IFJUQ0NlcnRpZmljYXRlIGludGVyZmFjZTogYXR0cmlidXRlIGV4cGlyZXMgCitQQVNTIFJUQ0Nl
cnRpZmljYXRlIGludGVyZmFjZTogb3BlcmF0aW9uIGdldEZpbmdlcnByaW50cygpIAorUEFTUyBS
VENDZXJ0aWZpY2F0ZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIGlkbFRlc3RPYmplY3Rz
LmNlcnRpZmljYXRlIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgaWRsVGVzdE9iamVjdHMuY2Vy
dGlmaWNhdGUgCitQQVNTIFJUQ0NlcnRpZmljYXRlIGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMu
Y2VydGlmaWNhdGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJleHBpcmVzIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgUlRDQ2VydGlmaWNhdGUgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5j
ZXJ0aWZpY2F0ZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldEZpbmdlcnByaW50cygpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFJUQ1J0cFNlbmRlciBp
bnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFjZSBvYmpl
Y3QgbmFtZSAKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBSVENSdHBTZW5kZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBSVENSdHBTZW5kZXIgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAorUEFTUyBSVENSdHBTZW5kZXIgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgdHJhY2sgCitGQUlMIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSB0cmFuc3BvcnQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2
ZSBhIHByb3BlcnR5ICJ0cmFuc3BvcnQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFJU
Q1J0cFNlbmRlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRDYXBhYmlsaXRpZXMoRE9NU3RyaW5n
KSAKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFjZTogb3BlcmF0aW9uIHNldFBhcmFtZXRlcnMo
UlRDUnRwU2VuZFBhcmFtZXRlcnMpIAorUEFTUyBSVENSdHBTZW5kZXIgaW50ZXJmYWNlOiBvcGVy
YXRpb24gZ2V0UGFyYW1ldGVycygpIAorUEFTUyBSVENSdHBTZW5kZXIgaW50ZXJmYWNlOiBvcGVy
YXRpb24gcmVwbGFjZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2s/KSAKK0ZBSUwgUlRDUnRwU2VuZGVy
IGludGVyZmFjZTogb3BlcmF0aW9uIHNldFN0cmVhbXMoTWVkaWFTdHJlYW0uLi4pIGFzc2VydF9v
d25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRp
YyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInNldFN0cmVhbXMiIG1pc3NpbmcKK1BBU1Mg
UlRDUnRwU2VuZGVyIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFN0YXRzKCkgCitQQVNTIFJUQ1J0
cFNlbmRlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBkdG1mIAorUEFTUyBSVENSdHBTZW5kZXIgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFu
c2NlaXZlcignYXVkaW8nKS5zZW5kZXIgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5zZW5kZXIgCitQQVNTIFJU
Q1J0cFNlbmRlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2Vp
dmVyKCdhdWRpbycpLnNlbmRlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRyYWNrIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUlRDUnRwU2VuZGVyIGludGVyZmFjZTogbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykuc2VuZGVyIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAidHJhbnNwb3J0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6
IHByb3BlcnR5ICJ0cmFuc3BvcnQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1Mg
UlRDUnRwU2VuZGVyIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNj
ZWl2ZXIoJ2F1ZGlvJykuc2VuZGVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0Q2FwYWJpbGl0
aWVzKERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENSdHBTZW5kZXIg
aW50ZXJmYWNlOiBjYWxsaW5nIGdldENhcGFiaWxpdGllcyhET01TdHJpbmcpIG9uIG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnNlbmRlciB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBSVENSdHBTZW5kZXIgaW50
ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5z
ZW5kZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRQYXJhbWV0ZXJzKFJUQ1J0cFNlbmRQYXJh
bWV0ZXJzKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0cFNlbmRlciBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2V0UGFyYW1ldGVycyhSVENSdHBTZW5kUGFyYW1ldGVycykgb24gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykuc2VuZGVyIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1J0cFNlbmRlciBp
bnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycp
LnNlbmRlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldFBhcmFtZXRlcnMoKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnNlbmRlciBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInJlcGxhY2VUcmFjayhNZWRpYVN0cmVhbVRyYWNrPykiIHdpdGggdGhlIHByb3BlciB0
eXBlIAorUEFTUyBSVENSdHBTZW5kZXIgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VUcmFjayhN
ZWRpYVN0cmVhbVRyYWNrPykgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2
ZXIoJ2F1ZGlvJykuc2VuZGVyIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCitGQUlMIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnNlbmRlciBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InNldFN0cmVhbXMoTWVkaWFTdHJlYW0uLi4pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRf
aW5oZXJpdHM6IHByb3BlcnR5ICJzZXRTdHJlYW1zIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0U3RyZWFtcyhNZWRp
YVN0cmVhbS4uLikgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1
ZGlvJykuc2VuZGVyIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic2V0U3RyZWFtcyIgbm90IGZvdW5kIGluIHByb3Rv
dHlwZSBjaGFpbgorUEFTUyBSVENSdHBTZW5kZXIgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5zZW5kZXIgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJnZXRTdGF0cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwU2VuZGVy
IGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlv
Jykuc2VuZGVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZHRtZiIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIAorUEFTUyBSVENSdHBSZWNlaXZlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUg
CitQQVNTIFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBSVENSdHBSZWNlaXZlciBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFJUQ1J0cFJlY2VpdmVyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgdHJhY2sgCitGQUlMIFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogYXR0
cmlidXRlIHRyYW5zcG9ydCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBo
YXZlIGEgcHJvcGVydHkgInRyYW5zcG9ydCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
UlRDUnRwUmVjZWl2ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q2FwYWJpbGl0aWVzKERPTVN0
cmluZykgCitQQVNTIFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFBhcmFt
ZXRlcnMoKSAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q29u
dHJpYnV0aW5nU291cmNlcygpIAorUEFTUyBSVENSdHBSZWNlaXZlciBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCkgCitQQVNTIFJUQ1J0cFJlY2VpdmVyIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGdldFN0YXRzKCkgCitQQVNTIFJUQ1J0cFJlY2VpdmVyIG11c3Qg
YmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNj
ZWl2ZXIoJ2F1ZGlvJykucmVjZWl2ZXIgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5yZWNlaXZlciAKK1BBU1Mg
UlRDUnRwUmVjZWl2ZXIgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFu
c2NlaXZlcignYXVkaW8nKS5yZWNlaXZlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRyYWNrIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUlRDUnRwUmVjZWl2ZXIgaW50ZXJmYWNlOiBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5yZWNlaXZlciBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInRyYW5zcG9ydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2luaGVyaXRzOiBwcm9wZXJ0eSAidHJhbnNwb3J0IiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitQQVNTIFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykucmVjZWl2ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJnZXRDYXBhYmlsaXRpZXMoRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogY2FsbGluZyBnZXRDYXBhYmlsaXRpZXMoRE9NU3Ry
aW5nKSBvbiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5y
ZWNlaXZlciB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFT
UyBSVENSdHBSZWNlaXZlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRy
YW5zY2VpdmVyKCdhdWRpbycpLnJlY2VpdmVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0UGFy
YW1ldGVycygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIgaW50
ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5y
ZWNlaXZlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldENvbnRyaWJ1dGluZ1NvdXJjZXMoKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykucmVjZWl2ZXIgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBSVENSdHBSZWNlaXZlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnJlY2VpdmVyIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZ2V0U3RhdHMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0
cFRyYW5zY2VpdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoIAorUEFTUyBSVENSdHBUcmFuc2NlaXZlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNT
IFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBSVENSdHBUcmFuc2NlaXZlciBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWlkIAorUEFTUyBSVENSdHBUcmFuc2NlaXZlciBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBzZW5kZXIgCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTog
YXR0cmlidXRlIHJlY2VpdmVyIAorUEFTUyBSVENSdHBUcmFuc2NlaXZlciBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBkaXJlY3Rpb24gCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogYXR0
cmlidXRlIGN1cnJlbnREaXJlY3Rpb24gCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFj
ZTogb3BlcmF0aW9uIHN0b3AoKSAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgaW50ZXJmYWNlOiBv
cGVyYXRpb24gc2V0Q29kZWNQcmVmZXJlbmNlcyhzZXF1ZW5jZTxSVENSdHBDb2RlY0NhcGFiaWxp
dHk+KSAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBv
ZiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKSAKK1BBU1Mg
U3RyaW5naWZpY2F0aW9uIG9mIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVy
KCdhdWRpbycpIAorUEFTUyBSVENSdHBUcmFuc2NlaXZlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAibWlkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgaW50
ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNlbmRlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRk
VHJhbnNjZWl2ZXIoJ2F1ZGlvJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZWNlaXZlciIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJkaXJlY3Rpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENSdHBU
cmFuc2NlaXZlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2Vp
dmVyKCdhdWRpbycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3VycmVudERpcmVjdGlvbiIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzdG9wKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENSdHBUcmFu
c2NlaXZlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVy
KCdhdWRpbycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0Q29kZWNQcmVmZXJlbmNlcyhzZXF1
ZW5jZTxSVENSdHBDb2RlY0NhcGFiaWxpdHk+KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogY2FsbGluZyBzZXRDb2RlY1ByZWZlcmVuY2Vz
KHNlcXVlbmNlPFJUQ1J0cENvZGVjQ2FwYWJpbGl0eT4pIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCitGQUlMIFJUQ0R0bHNUcmFuc3BvcnQgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENEdGxzVHJhbnNwb3J0IiBleHBl
Y3RlZCBwcm9wZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIgbWlzc2luZworRkFJTCBSVENEdGxzVHJh
bnNwb3J0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQiIGV4cGVjdGVkIHBy
b3BlcnR5ICJSVENEdGxzVHJhbnNwb3J0IiBtaXNzaW5nCitGQUlMIFJUQ0R0bHNUcmFuc3BvcnQg
aW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQiIGV4cGVjdGVkIHByb3BlcnR5ICJS
VENEdGxzVHJhbnNwb3J0IiBtaXNzaW5nCitGQUlMIFJUQ0R0bHNUcmFuc3BvcnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRD
RHRsc1RyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQiIG1pc3Np
bmcKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVy
dHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
UlRDRHRsc1RyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQiIG1p
c3NpbmcKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJv
cGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiUlRDRHRsc1RyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQi
IG1pc3NpbmcKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpY2VU
cmFuc3BvcnQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3Bv
cnQiIG1pc3NpbmcKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBz
dGF0ZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJSVENEdGxzVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIg
bWlzc2luZworRkFJTCBSVENEdGxzVHJhbnNwb3J0IGludGVyZmFjZTogb3BlcmF0aW9uIGdldFJl
bW90ZUNlcnRpZmljYXRlcygpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENE
dGxzVHJhbnNwb3J0IiBtaXNzaW5nCitGQUlMIFJUQ0R0bHNUcmFuc3BvcnQgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgb25zdGF0ZWNoYW5nZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJSVENEdGxzVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAi
UlRDRHRsc1RyYW5zcG9ydCIgbWlzc2luZworRkFJTCBSVENEdGxzVHJhbnNwb3J0IGludGVyZmFj
ZTogYXR0cmlidXRlIG9uZXJyb3IgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJU
Q0R0bHNUcmFuc3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBtdXN0IGJlIHBy
aW1hcnkgaW50ZXJmYWNlIG9mIGlkbFRlc3RPYmplY3RzLmR0bHNUcmFuc3BvcnQgYXNzZXJ0X2Vx
dWFsczogd3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRl
ZmluZWQiCitGQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBpZGxUZXN0T2JqZWN0cy5kdGxzVHJhbnNw
b3J0IGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIg
YnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSVENEdGxzVHJhbnNwb3J0IGludGVyZmFjZTogaWRs
VGVzdE9iamVjdHMuZHRsc1RyYW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImljZVRyYW5z
cG9ydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9i
amVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJUQ0R0bHNU
cmFuc3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5kdGxzVHJhbnNwb3J0IG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAic3RhdGUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6
IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVk
IgorRkFJTCBSVENEdGxzVHJhbnNwb3J0IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuZHRsc1Ry
YW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldFJlbW90ZUNlcnRpZmljYXRlcygpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4
cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDRHRsc1RyYW5zcG9y
dCBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3RzLmR0bHNUcmFuc3BvcnQgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbnN0YXRlY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxz
OiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5l
ZCIKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3RzLmR0bHNU
cmFuc3BvcnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmVycm9yIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVkICJvYmplY3Qi
IGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczog
cHJvdG90eXBlIG9mIFJUQ0ljZVRyYW5zcG9ydCBpcyBub3QgRXZlbnRUYXJnZXQgZXhwZWN0ZWQg
ZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30i
IGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9Igor
UEFTUyBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIFJUQ0lj
ZVRyYW5zcG9ydCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBhc3NlcnRfZXF1YWxzOiBwcm90b3R5cGUgb2YgUlRDSWNlVHJhbnNwb3J0LnByb3Rv
dHlwZSBpcyBub3QgRXZlbnRUYXJnZXQucHJvdG90eXBlIGV4cGVjdGVkIG9iamVjdCAiW29iamVj
dCBFdmVudFRhcmdldF0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IE9iamVjdF0iCitQQVNTIFJU
Q0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFJU
Q0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitGQUlMIFJU
Q0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByb2xlIGFzc2VydF90cnVlOiBUaGUg
cHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAicm9sZSIgZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTogYXR0cmlidXRlIGNv
bXBvbmVudCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJv
cGVydHkgImNvbXBvbmVudCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgUlRDSWNlVHJh
bnNwb3J0IGludGVyZmFjZTogYXR0cmlidXRlIHN0YXRlIAorUEFTUyBSVENJY2VUcmFuc3BvcnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgZ2F0aGVyaW5nU3RhdGUgCitGQUlMIFJUQ0ljZVRyYW5zcG9y
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRMb2NhbENhbmRpZGF0ZXMoKSBhc3NlcnRfb3duX3By
b3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3Bl
cmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJnZXRMb2NhbENhbmRpZGF0ZXMiIG1pc3NpbmcKK0ZB
SUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTogb3BlcmF0aW9uIGdldFJlbW90ZUNhbmRpZGF0
ZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNz
aW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJnZXRSZW1vdGVDYW5k
aWRhdGVzIiBtaXNzaW5nCitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IG9wZXJhdGlv
biBnZXRTZWxlY3RlZENhbmRpZGF0ZVBhaXIoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVk
IHByb3BlcnR5ICJnZXRTZWxlY3RlZENhbmRpZGF0ZVBhaXIiIG1pc3NpbmcKK0ZBSUwgUlRDSWNl
VHJhbnNwb3J0IGludGVyZmFjZTogb3BlcmF0aW9uIGdldExvY2FsUGFyYW1ldGVycygpIGFzc2Vy
dF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0
YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldExvY2FsUGFyYW1ldGVycyIgbWlz
c2luZworRkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0UmVtb3Rl
UGFyYW1ldGVycygpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldFJl
bW90ZVBhcmFtZXRlcnMiIG1pc3NpbmcKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTog
YXR0cmlidXRlIG9uc3RhdGVjaGFuZ2UgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0
IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJvbnN0YXRlY2hhbmdlIiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorRkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25nYXRoZXJp
bmdzdGF0ZWNoYW5nZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZl
IGEgcHJvcGVydHkgIm9uZ2F0aGVyaW5nc3RhdGVjaGFuZ2UiIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNlbGVjdGVk
Y2FuZGlkYXRlcGFpcmNoYW5nZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVz
dCBoYXZlIGEgcHJvcGVydHkgIm9uc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdlIiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENJY2VUcmFuc3BvcnQgbXVzdCBiZSBwcmltYXJ5IGlu
dGVyZmFjZSBvZiBpZGxUZXN0T2JqZWN0cy5pY2VUcmFuc3BvcnQgYXNzZXJ0X2VxdWFsczogd3Jv
bmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitG
QUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBpZGxUZXN0T2JqZWN0cy5pY2VUcmFuc3BvcnQgYXNzZXJ0
X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1
bmRlZmluZWQiCitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3Rz
LmljZVRyYW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJvbGUiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVj
dCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBp
ZGxUZXN0T2JqZWN0cy5pY2VUcmFuc3BvcnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb21wb25l
bnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmpl
Y3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSVENJY2VUcmFu
c3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5pY2VUcmFuc3BvcnQgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzdGF0ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3Jv
bmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitG
QUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3RzLmljZVRyYW5zcG9y
dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdhdGhlcmluZ1N0YXRlIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVkICJvYmplY3Qi
IGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTogaWRs
VGVzdE9iamVjdHMuaWNlVHJhbnNwb3J0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0TG9jYWxD
YW5kaWRhdGVzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IHdyb25nIHR5
cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBS
VENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5pY2VUcmFuc3BvcnQgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJnZXRSZW1vdGVDYW5kaWRhdGVzKCkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVj
dCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBp
ZGxUZXN0T2JqZWN0cy5pY2VUcmFuc3BvcnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRTZWxl
Y3RlZENhbmRpZGF0ZVBhaXIoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczog
d3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQi
CitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3RzLmljZVRyYW5z
cG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldExvY2FsUGFyYW1ldGVycygpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVk
ICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVy
ZmFjZTogaWRsVGVzdE9iamVjdHMuaWNlVHJhbnNwb3J0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Z2V0UmVtb3RlUGFyYW1ldGVycygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxz
OiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5l
ZCIKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuaWNlVHJh
bnNwb3J0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zdGF0ZWNoYW5nZSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2Jq
ZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6
IGlkbFRlc3RPYmplY3RzLmljZVRyYW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uZ2F0
aGVyaW5nc3RhdGVjaGFuZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IHdy
b25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgor
RkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5pY2VUcmFuc3Bv
cnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNlbGVjdGVkY2FuZGlkYXRlcGFpcmNoYW5nZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVjdCBl
eHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitQQVNTIFJUQ1RyYWNrRXZlbnQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAK
K1BBU1MgUlRDVHJhY2tFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgUlRDVHJh
Y2tFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFJUQ1RyYWNrRXZlbnQgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgCitQQVNTIFJUQ1RyYWNrRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5
IAorUEFTUyBSVENUcmFja0V2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAK
K1BBU1MgUlRDVHJhY2tFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZWNlaXZlciAKK1BBU1Mg
UlRDVHJhY2tFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0cmFjayAKK1BBU1MgUlRDVHJhY2tF
dmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzdHJlYW1zIAorUEFTUyBSVENUcmFja0V2ZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIHRyYW5zY2VpdmVyIAorUEFTUyBSVENUcmFja0V2ZW50IG11c3Qg
YmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgaW5pdFRyYWNrRXZlbnQoKSAKK1BBU1MgU3RyaW5naWZp
Y2F0aW9uIG9mIGluaXRUcmFja0V2ZW50KCkgCitQQVNTIFJUQ1RyYWNrRXZlbnQgaW50ZXJmYWNl
OiBpbml0VHJhY2tFdmVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVjZWl2ZXIiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENUcmFja0V2ZW50IGludGVyZmFjZTogaW5pdFRyYWNr
RXZlbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRyYWNrIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKK1BBU1MgUlRDVHJhY2tFdmVudCBpbnRlcmZhY2U6IGluaXRUcmFja0V2ZW50KCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzdHJlYW1zIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRD
VHJhY2tFdmVudCBpbnRlcmZhY2U6IGluaXRUcmFja0V2ZW50KCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJ0cmFuc2NlaXZlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFJUQ1NjdHBUcmFu
c3BvcnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJSVENTY3RwVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIg
bWlzc2luZworRkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ1Nj
dHBUcmFuc3BvcnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0IiBtaXNzaW5n
CitGQUlMIFJUQ1NjdHBUcmFuc3BvcnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ1NjdHBUcmFuc3Bv
cnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0IiBtaXNzaW5nCitGQUlMIFJU
Q1NjdHBUcmFuc3BvcnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkg
IlJUQ1NjdHBUcmFuc3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlJUQ1NjdHBUcmFuc3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIgZXhwZWN0ZWQgcHJv
cGVydHkgIlJUQ1NjdHBUcmFuc3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSB0cmFuc3BvcnQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIgZXhwZWN0ZWQgcHJv
cGVydHkgIlJUQ1NjdHBUcmFuc3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBzdGF0ZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0
eSAiUlRDU2N0cFRyYW5zcG9ydCIgbWlzc2luZworRkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVy
ZmFjZTogYXR0cmlidXRlIG1heE1lc3NhZ2VTaXplIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ1NjdHBUcmFuc3BvcnQiIGV4cGVjdGVkIHBy
b3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0IiBtaXNzaW5nCitGQUlMIFJUQ1NjdHBUcmFuc3BvcnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWF4Q2hhbm5lbHMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIgZXhwZWN0ZWQg
cHJvcGVydHkgIlJUQ1NjdHBUcmFuc3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDU2N0cFRyYW5zcG9y
dCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnN0YXRlY2hhbmdlIGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ1NjdHBUcmFuc3BvcnQiIGV4cGVj
dGVkIHByb3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0IiBtaXNzaW5nCitGQUlMIFJUQ1NjdHBUcmFu
c3BvcnQgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBpZGxUZXN0T2JqZWN0cy5zY3RwVHJh
bnNwb3J0IGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVj
dCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgaWRsVGVzdE9i
amVjdHMuc2N0cFRyYW5zcG9ydCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4
cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDU2N0cFRyYW5zcG9y
dCBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3RzLnNjdHBUcmFuc3BvcnQgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ0cmFuc3BvcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IHdy
b25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgor
RkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuc2N0cFRyYW5z
cG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0YXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBn
b3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBpbnRlcmZhY2U6IGlkbFRlc3RP
YmplY3RzLnNjdHBUcmFuc3BvcnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXhNZXNzYWdlU2l6
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVj
dCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJUQ1NjdHBUcmFu
c3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5zY3RwVHJhbnNwb3J0IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAibWF4Q2hhbm5lbHMiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVh
bHM6IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZp
bmVkIgorRkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuc2N0
cFRyYW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uc3RhdGVjaGFuZ2UiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQg
Im9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBS
VENEYXRhQ2hhbm5lbCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgUlRDRGF0YUNoYW5u
ZWwgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAK
K1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAor
UEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitQ
QVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogYXR0cmlidXRlIGxhYmVsIAorUEFTUyBSVENE
YXRhQ2hhbm5lbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvcmRlcmVkIAorUEFTUyBSVENEYXRhQ2hh
bm5lbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtYXhQYWNrZXRMaWZlVGltZSAKK1BBU1MgUlRDRGF0
YUNoYW5uZWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWF4UmV0cmFuc21pdHMgCitQQVNTIFJUQ0Rh
dGFDaGFubmVsIGludGVyZmFjZTogYXR0cmlidXRlIHByb3RvY29sIAorUEFTUyBSVENEYXRhQ2hh
bm5lbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBuZWdvdGlhdGVkIAorUEFTUyBSVENEYXRhQ2hhbm5l
bCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZCAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgcmVhZHlTdGF0ZSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgYnVmZmVyZWRBbW91bnQgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTog
YXR0cmlidXRlIGJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkIAorUEFTUyBSVENEYXRhQ2hhbm5l
bCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm9wZW4gCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVy
ZmFjZTogYXR0cmlidXRlIG9uYnVmZmVyZWRhbW91bnRsb3cgCitQQVNTIFJUQ0RhdGFDaGFubmVs
IGludGVyZmFjZTogYXR0cmlidXRlIG9uZXJyb3IgCitGQUlMIFJUQ0RhdGFDaGFubmVsIGludGVy
ZmFjZTogYXR0cmlidXRlIG9uY2xvc2luZyBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmpl
Y3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIm9uY2xvc2luZyIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25jbG9zZSAKK1BB
U1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xvc2UoKSAKK1BBU1MgUlRD
RGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25tZXNzYWdlIAorUEFTUyBSVENEYXRh
Q2hhbm5lbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBiaW5hcnlUeXBlIAorUEFTUyBSVENEYXRhQ2hh
bm5lbCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZW5kKFVTVlN0cmluZykgCitQQVNTIFJUQ0RhdGFD
aGFubmVsIGludGVyZmFjZTogb3BlcmF0aW9uIHNlbmQoQmxvYikgCitQQVNTIFJUQ0RhdGFDaGFu
bmVsIGludGVyZmFjZTogb3BlcmF0aW9uIHNlbmQoQXJyYXlCdWZmZXIpIAorUEFTUyBSVENEYXRh
Q2hhbm5lbCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZW5kKEFycmF5QnVmZmVyVmlldykgCitQQVNT
IFJUQ0RhdGFDaGFubmVsIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIAorUEFTUyBTdHJpbmdpZmljYXRpb24g
b2YgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIAorUEFTUyBS
VENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURh
dGFDaGFubmVsKCcnKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxhYmVsIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvcmRl
cmVkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNl
OiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJtYXhQYWNrZXRMaWZlVGltZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3Jl
YXRlRGF0YUNoYW5uZWwoJycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibWF4UmV0cmFuc21pdHMi
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInByb3RvY29sIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDRGF0YUNo
YW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5l
bCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuZWdvdGlhdGVkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpZCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVhZHlTdGF0ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ0RhdGFDaGFu
bmVsIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwo
JycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYnVmZmVyZWRBbW91bnQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJ1ZmZl
cmVkQW1vdW50TG93VGhyZXNob2xkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDRGF0
YUNoYW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hh
bm5lbCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbm9wZW4iIHdpdGggdGhlIHByb3BlciB0
eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uYnVmZmVy
ZWRhbW91bnRsb3ciIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBp
bnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm9uZXJyb3IiIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJ
TCBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0
ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uY2xvc2luZyIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAib25jbG9zaW5nIiBub3Qg
Zm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTog
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAib25jbG9zZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ0RhdGFD
aGFubmVsIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5u
ZWwoJycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xvc2UoKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25tZXNzYWdl
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJiaW5hcnlUeXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDRGF0
YUNoYW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hh
bm5lbCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZW5kKFVTVlN0cmluZykiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Vu
ZChVU1ZTdHJpbmcpIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVs
KCcnKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBS
VENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURh
dGFDaGFubmVsKCcnKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNlbmQoQmxvYikiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IGNhbGxpbmcgc2Vu
ZChCbG9iKSBvbiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgUlRDRGF0
YUNoYW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hh
bm5lbCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZW5kKEFycmF5QnVmZmVyKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogY2FsbGluZyBz
ZW5kKEFycmF5QnVmZmVyKSBvbiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hh
bm5lbCgnJykgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BB
U1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVh
dGVEYXRhQ2hhbm5lbCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZW5kKEFycmF5QnVmZmVy
VmlldykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2VuZChBcnJheUJ1ZmZlclZpZXcpIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAorUEFTUyBSVENEYXRhQ2hhbm5lbEV2ZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFJUQ0RhdGFDaGFu
bmVsRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIFJUQ0RhdGFDaGFubmVsRXZl
bnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBSVENEYXRhQ2hhbm5lbEV2ZW50IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IAorUEFTUyBSVENEYXRhQ2hhbm5lbEV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBw
cm9wZXJ0eSAKK1BBU1MgUlRDRGF0YUNoYW5uZWxFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkgCitQQVNTIFJUQ0RhdGFDaGFubmVsRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgY2hhbm5lbCAKK1BBU1MgUlRDRGF0YUNoYW5uZWxFdmVudCBtdXN0IGJlIHByaW1hcnkgaW50
ZXJmYWNlIG9mIG5ldyBSVENEYXRhQ2hhbm5lbEV2ZW50KCdjaGFubmVsJywgeworICAgICAgICAg
IGNoYW5uZWw6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKQor
ICAgICAgICB9KSAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBSVENEYXRhQ2hhbm5lbEV2
ZW50KCdjaGFubmVsJywgeworICAgICAgICAgIGNoYW5uZWw6IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKQorICAgICAgICB9KSAKK1BBU1MgUlRDRGF0YUNoYW5u
ZWxFdmVudCBpbnRlcmZhY2U6IG5ldyBSVENEYXRhQ2hhbm5lbEV2ZW50KCdjaGFubmVsJywgewor
ICAgICAgICAgIGNoYW5uZWw6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFu
bmVsKCcnKQorICAgICAgICB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNoYW5uZWwiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENEVE1GU2VuZGVyIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFJUQ0RUTUZTZW5kZXIg
aW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIFJUQ0RUTUZTZW5kZXIgaW50ZXJmYWNlIG9i
amVjdCBuYW1lIAorUEFTUyBSVENEVE1GU2VuZGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBSVENEVE1GU2Vu
ZGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgUlRDRFRNRlNlbmRl
ciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitQQVNTIFJUQ0RUTUZTZW5kZXIg
aW50ZXJmYWNlOiBvcGVyYXRpb24gaW5zZXJ0RFRNRihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2ln
bmVkIGxvbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcpIAorUEFTUyBSVENEVE1GU2VuZGVyIGlu
dGVyZmFjZTogYXR0cmlidXRlIG9udG9uZWNoYW5nZSAKK1BBU1MgUlRDRFRNRlNlbmRlciBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBjYW5JbnNlcnREVE1GIAorUEFTUyBSVENEVE1GU2VuZGVyIGludGVy
ZmFjZTogYXR0cmlidXRlIHRvbmVCdWZmZXIgCitQQVNTIFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAK
K1BBU1MgUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BB
U1MgUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFJU
Q0RUTUZUb25lQ2hhbmdlRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFJUQ0RUTUZUb25lQ2hhbmdlRXZl
bnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBSVENEVE1GVG9uZUNo
YW5nZUV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUlRDRFRN
RlRvbmVDaGFuZ2VFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0b25lIAorUEFTUyBSVENTdGF0
c1JlcG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IAorUEFTUyBSVENTdGF0c1JlcG9ydCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BB
U1MgUlRDU3RhdHNSZXBvcnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBSVENTdGF0c1Jl
cG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCAKK1BBU1MgUlRDU3RhdHNSZXBvcnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IAorUEFTUyBSVENTdGF0c1JlcG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkgCitGQUlMIFJUQ0Vycm9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3IiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENF
cnJvciIgbWlzc2luZworRkFJTCBSVENFcnJvciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENFcnJv
ciIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0Vycm9yIiBtaXNzaW5nCitGQUlMIFJUQ0Vycm9yIGlu
dGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJSVENFcnJvciIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0Vycm9yIiBt
aXNzaW5nCitGQUlMIFJUQ0Vycm9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ0Vycm9yIiBleHBlY3RlZCBwcm9wZXJ0eSAi
UlRDRXJyb3IiIG1pc3NpbmcKK0ZBSUwgUlRDRXJyb3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3Ii
IHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlJUQ0Vycm9yIiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDRXJyb3IiIG1pc3NpbmcKK0ZB
SUwgUlRDRXJyb3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ0Vycm9yIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiUlRDRXJyb3IiIG1pc3NpbmcKK0ZBSUwgUlRDRXJyb3IgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgZXJyb3JEZXRhaWwgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3IiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENFcnJv
ciIgbWlzc2luZworRkFJTCBSVENFcnJvciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzZHBMaW5lTnVt
YmVyIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlJUQ0Vycm9yIiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDRXJyb3IiIG1pc3NpbmcKK0ZBSUwgUlRD
RXJyb3IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2N0cENhdXNlQ29kZSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENFcnJvciIgZXhwZWN0ZWQg
cHJvcGVydHkgIlJUQ0Vycm9yIiBtaXNzaW5nCitGQUlMIFJUQ0Vycm9yIGludGVyZmFjZTogYXR0
cmlidXRlIHJlY2VpdmVkQWxlcnQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3IiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENFcnJvciIg
bWlzc2luZworRkFJTCBSVENFcnJvciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzZW50QWxlcnQgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDRXJy
b3IiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENFcnJvciIgbWlzc2luZworRkFJTCBSVENFcnJvckV2
ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
UlRDRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0Vycm9yRXZlbnQiIG1pc3NpbmcK
K0ZBSUwgUlRDRXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENFcnJvckV2ZW50IiBl
eHBlY3RlZCBwcm9wZXJ0eSAiUlRDRXJyb3JFdmVudCIgbWlzc2luZworRkFJTCBSVENFcnJvckV2
ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENFcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAi
UlRDRXJyb3JFdmVudCIgbWlzc2luZworRkFJTCBSVENFcnJvckV2ZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ0Vycm9y
RXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENFcnJvckV2ZW50IiBtaXNzaW5nCitGQUlMIFJU
Q0Vycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ0Vycm9yRXZlbnQi
IGV4cGVjdGVkIHByb3BlcnR5ICJSVENFcnJvckV2ZW50IiBtaXNzaW5nCitGQUlMIFJUQ0Vycm9y
RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ0Vycm9yRXZlbnQiIGV4cGVj
dGVkIHByb3BlcnR5ICJSVENFcnJvckV2ZW50IiBtaXNzaW5nCitGQUlMIFJUQ0Vycm9yRXZlbnQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgZXJyb3IgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkg
IlJUQ0Vycm9yRXZlbnQiIG1pc3NpbmcKK0ZBSUwgUlRDRXJyb3JFdmVudCBtdXN0IGJlIHByaW1h
cnkgaW50ZXJmYWNlIG9mIG5ldyBSVENFcnJvckV2ZW50KCdlcnJvcicpIGFzc2VydF9lcXVhbHM6
IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVs
bCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFJU
Q0Vycm9yRXZlbnQiCitGQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUlRDRXJyb3JFdmVudCgn
ZXJyb3InKSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRp
bmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBSVENFcnJvckV2ZW50IgorRkFJTCBSVENFcnJvckV2ZW50IGlu
dGVyZmFjZTogbmV3IFJUQ0Vycm9yRXZlbnQoJ2Vycm9yJykgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJlcnJvciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBl
eGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2Jq
ZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDRXJyb3JFdmVudCIK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5q
cwppbmRleCA2ZTliN2U5YWZhMmExYTFlZjA0NDgzMDdiMmUzOWU3ZmJjN2EzNThmLi5hZTE4Y2M2
MzUzODMxYThjMTg5MjhmMWU2OGU2YTgwYWM0MDBiYjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGxoYXJuZXNzLmh0dHBz
LndpbmRvdy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwpAQCAtMSw2ICsxLDcgQEAKIC8v
IE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcwogLy8gTUVUQTogc2NyaXB0
PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcwogLy8gTUVUQTogc2NyaXB0PS4vUlRDUGVlckNvbm5l
Y3Rpb24taGVscGVyLmpzCisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKIAogJ3VzZSBzdHJpY3QnOwog
CkBAIC0xMDIsNyArMTAzLDcgQEAgZnVuY3Rpb24gYXN5bmNJbml0KCkgewogCiBpZGxfdGVzdCgK
ICAgWyd3ZWJydGMnXSwKLSAgWydtZWRpYWNhcHR1cmUtc3RyZWFtcycsICdkb20nXSwKKyAgWydX
ZWJJREwnLCAnbWVkaWFjYXB0dXJlLXN0cmVhbXMnLCAnZG9tJywgJ2h0bWwnXSwKICAgYXN5bmMg
aWRsQXJyYXkgPT4gewogICAgIGlkbEFycmF5LmFkZF9vYmplY3RzKHsKICAgICAgIFJUQ1BlZXJD
b25uZWN0aW9uOiBbYG5ldyBSVENQZWVyQ29ubmVjdGlvbigpYF0sCkBAIC0xMTQsNyArMTE1LDcg
QEAgaWRsX3Rlc3QoCiAgICAgICBSVENSdHBSZWNlaXZlcjogW2BuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5yZWNlaXZlcmBdLAogICAgICAgUlRDUGVlckNv
bm5lY3Rpb25JY2VFdmVudDogW2BuZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCgnaWNlJylg
XSwKICAgICAgIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudDogWwotICAgICAgICBgbmV3
IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCgnaWNlLWVycm9yJywgeyBlcnJvckNvZGU6
IDcwMSB9KTtgCisgICAgICAgIGBuZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50KCdp
Y2UtZXJyb3InLCB7IHBvcnQ6IDAsIGVycm9yQ29kZTogNzAxIH0pO2AKICAgICAgIF0sCiAgICAg
ICBSVENUcmFja0V2ZW50OiBbYGluaXRUcmFja0V2ZW50KClgXSwKICAgICAgIFJUQ0Vycm9yRXZl
bnQ6IFtgbmV3IFJUQ0Vycm9yRXZlbnQoJ2Vycm9yJylgXSwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9SRUFETUUu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
bGVnYWN5L1JFQURNRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFkYmY2YWExNzM5NDk3MThhOTBiZDU0Y2M5
NTM2MWUxYTg4MDFiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9SRUFETUUudHh0CkBAIC0wLDAgKzEs
MiBAQAorVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgZmlsZXMgdGhhdCB0ZXN0IGZvciBiZWhhdmlv
ciByZWxldmFudCB0byB3ZWJydGMsCitwYXJ0aWN1bGFybHkgZGVmaW5lZCBpbiBodHRwczovL3cz
Yy5naXRodWIuaW8vd2VicnRjLXBjLyNsZWdhY3ktaW50ZXJmYWNlLWV4dGVuc2lvbnMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L2xlZ2FjeS9SVENQZWVyQ29ubmVjdGlvbi1hZGRTdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5
L1JUQ1BlZXJDb25uZWN0aW9uLWFkZFN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWRmNDAyZmFkZGZkMGY1ODA4YTRlYWNkMDI1MTNmOTZjZTg4YWYyYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L2xlZ2FjeS9SVENQZWVyQ29ubmVjdGlvbi1hZGRTdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitGQUlMIExlZ2FjeSBhZGRTdHJlYW0oKTogTWVkaWEgc3RyZWFtIHN0
YXRzIHJlZmVyZW5jZXMgdHJhY2sgc3RhdHMgcGMuYWRkU3RyZWFtIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ3BjLmFkZFN0cmVhbShzdHJlYW0pJywgJ3BjLmFkZFN0cmVhbScgaXMgdW5kZWZpbmVk
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9sZWdhY3kvUlRDUGVlckNvbm5lY3Rpb24tYWRkU3RyZWFtLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdh
Y3kvUlRDUGVlckNvbm5lY3Rpb24tYWRkU3RyZWFtLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWEz
NWViYzUzYjhkN2NlMzg1N2Q0ODY5YTQ3NmUwZTk5YTkwNzhjOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2Fj
eS9SVENQZWVyQ29ubmVjdGlvbi1hZGRTdHJlYW0uaHR0cHMuaHRtbApAQCAtMCwwICsxLDc0IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBsZWdhY3kgYWRk
U3RyZWFtPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1N0YXRzLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vZGljdGlvbmFyeS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBh
cmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgorICAvLyAgIGdldFVz
ZXJNZWRpYVRyYWNrc0FuZFN0cmVhbXMKKworICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5j
dGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1N0YXRzLWhlbHBlci5qcworICAvLyAoZGVwZW5kcyBv
biBkaWN0aW9uYXJ5LWhlbHBlci5qcyk6CisgIC8vICAgdmFsaWRhdGVSdGNTdGF0cworCisgIC8v
IFRPRE8oaGJvcyk6IGFkZFN0cmVhbSgpIGlzIGxlZ2FjeSBBUEkgbm90IGluIHRoZSBzcGVjLiBC
YXNlZCBvbiBkaXNjdXNzaW9uCisgIC8vIHdoZXRoZXIgdG8gc3RhbmRhcmRpemUgaW4gbGVnYWN5
IHNlY3Rpb24sIGNvbnNpZGVyIHJlbW92aW5nIHRoaXMgdGVzdCBvcgorICAvLyBrZWVwaW5nIGl0
IHVudGlsIGFkZFRyYWNrKCkgaGFzIHdpZGUgc3VwcG9ydC4KKyAgLy8gaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93ZWJydGMtcGMvaXNzdWVzLzE3MDUKKyAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWJydGMtcGMvaXNzdWVzLzExMjUKKyAgYXN5bmNfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisgICAgbGV0IHRyYWNrOworICAgIGxldCBzdHJlYW07CisgICAgcmV0dXJuIGdl
dFVzZXJNZWRpYVRyYWNrc0FuZFN0cmVhbXMoMSkKKyAgICAudGhlbih0LnN0ZXBfZnVuYygoW3Ry
YWNrcywgc3RyZWFtc10pID0+IHsKKyAgICAgIHRyYWNrID0gdHJhY2tzWzBdOworICAgICAgc3Ry
ZWFtID0gc3RyZWFtc1swXTsKKyAgICAgIHN0cmVhbS5hZGRUcmFjayh0cmFjayk7CisgICAgICBw
Yy5hZGRTdHJlYW0oc3RyZWFtKTsKKyAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcigpOworICAg
IH0pKQorICAgIC50aGVuKHQuc3RlcF9mdW5jKG9mZmVyID0+IHsKKyAgICAgIHJldHVybiBwYy5z
ZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICB9KSkKKyAgICAudGhlbih0LnN0ZXBfZnVu
YygoKSA9PiB7CisgICAgICByZXR1cm4gcGMuZ2V0U3RhdHMoKTsKKyAgICB9KSkKKyAgICAudGhl
bih0LnN0ZXBfZnVuYyhyZXBvcnQgPT4geworICAgICAgbGV0IHRyYWNrU3RhdHMgPSBmaW5kU3Rh
dHNCeVR5cGVBbmRJZChyZXBvcnQsICd0cmFjaycsIHRyYWNrLmlkKTsKKyAgICAgIGxldCBzdHJl
YW1TdGF0cyA9IGZpbmRTdGF0c0J5VHlwZUFuZElkKHJlcG9ydCwgJ3N0cmVhbScsIHN0cmVhbS5p
ZCk7CisgICAgICBhc3NlcnRfdHJ1ZSh0cmFja1N0YXRzICE9IG51bGwgJiYgc3RyZWFtU3RhdHMg
IT0gbnVsbCwKKyAgICAgICAgICAgICAgICAgICdIYXMgc3RhdHMgZm9yIHRyYWNrIGFuZCBzdHJl
YW0nKTsKKyAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc3RyZWFtU3RhdHMudHJhY2tJZHMsIFsg
dHJhY2tTdGF0cy5pZCBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RyZWFtU3RhdHMu
dHJhY2tJZHMgPT0gWyB0cmFja1N0YXRzLmlkIF0nKTsKKyAgICAgIHZhbGlkYXRlUnRjU3RhdHMo
cmVwb3J0LCB0cmFja1N0YXRzKTsKKyAgICAgIHZhbGlkYXRlUnRjU3RhdHMocmVwb3J0LCBzdHJl
YW1TdGF0cyk7CisgICAgICB0LmRvbmUoKTsKKyAgICB9KSkKKyAgICAuY2F0Y2godC5zdGVwX2Z1
bmMocmVhc29uID0+IHsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQocmVhc29uKTsKKyAgICB9KSk7
CisgIH0sICdMZWdhY3kgYWRkU3RyZWFtKCk6IE1lZGlhIHN0cmVhbSBzdGF0cyByZWZlcmVuY2Vz
IHRyYWNrIHN0YXRzJyk7CisKKyAgZnVuY3Rpb24gZmluZFN0YXRzQnlUeXBlQW5kSWQocmVwb3J0
LCB0eXBlLCBpZGVudGlmaWVyKSB7CisgICAgcmV0dXJuIGZpbmRTdGF0cyhyZXBvcnQsIHN0YXRz
ID0+IHsKKyAgICAgIHJldHVybiBzdGF0cy50eXBlID09IHR5cGUgJiYgc3RhdHNbdHlwZSArICdJ
ZGVudGlmaWVyJ10gPT0gaWRlbnRpZmllcjsKKyAgICB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIGZp
bmRTdGF0cyhyZXBvcnQsIGZpbmRGdW5jKSB7CisgICAgZm9yIChsZXQgaXQgPSByZXBvcnQudmFs
dWVzKCksIG4gPSBpdC5uZXh0KCk7ICFuLmRvbmU7IG4gPSBpdC5uZXh0KCkpIHsKKyAgICAgIGlm
IChmaW5kRnVuYyhuLnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG4udmFsdWU7CisgICAgfQorICAg
IHJldHVybiBudWxsOworICB9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1BlZXJDb25u
ZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9SVENQZWVy
Q29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWFhYzgxMmMyMGIwY2FlOTIwNzJjNTg0Mzk2ZDkzNzQyYmZlN2YxNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL2xlZ2FjeS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitGQUlMIGNyZWF0ZU9mZmVyKCkgd2l0aCBv
ZmZlclRvUmVjZWl2ZUF1ZGlvIHNob3VsZCBhZGQgYXVkaW8gbGluZSB0byBhbGwgc3Vic2VxdWVu
dCBjcmVhdGVkIG9mZmVycyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgY3JlYXRlZCBvZmZlciB0byBo
YXZlIGF1ZGlvIGxpbmUgZXhwZWN0ZWQgMSBidXQgZ290IDAKK0ZBSUwgY3JlYXRlT2ZmZXIoKSB3
aXRoIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2hvdWxkIGFkZCB2aWRlbyBsaW5lIHRvIGFsbCBzdWJz
ZXF1ZW50IGNyZWF0ZWQgb2ZmZXJzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBjcmVhdGVkIG9mZmVy
IHRvIGhhdmUgdmlkZW8gbGluZSBleHBlY3RlZCAxIGJ1dCBnb3QgMAorRkFJTCBjcmVhdGVPZmZl
cigpIHdpdGggb2ZmZXJUb1JlY2VpdmVBdWRpbzp0cnVlLCB0aGVuIHdpdGggb2ZmZXJUb1JlY2Vp
dmVWaWRlbzp0cnVlLCBzaG91bGQgaGF2ZSByZXN1bHQgb2ZmZXIgd2l0aCBib3RoIGF1ZGlvIGFu
ZCB2aWRlbyBsaW5lIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBhdWRpbyBsaW5lIHRvIGJlIGZvdW5k
IGluIGNyZWF0ZWQgb2ZmZXIgZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgY3JlYXRlT2ZmZXIo
KSB3aXRoIG9mZmVyVG9SZWNlaXZlQXVkaW8gc2V0IHRvIGZhbHNlIHNob3VsZCBub3QgY3JlYXRl
IGEgdHJhbnNjZWl2ZXIgCitGQUlMIGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZlclRvUmVjZWl2ZUF1
ZGlvIHNob3VsZCBjcmVhdGUgYSAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVhbHM6
IEV4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMAor
RkFJTCBvZmZlclRvUmVjZWl2ZUF1ZGlvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5v
bi1zdG9wcGVkICJyZWN2b25seSIgdHJhbnNjZWl2ZXIgZXhpc3RzIGFzc2VydF9lcXVhbHM6IEV4
cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFT
UyBvZmZlclRvUmVjZWl2ZUF1ZGlvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5vbi1z
dG9wcGVkICJzZW5kcmVjdiIgdHJhbnNjZWl2ZXIgZXhpc3RzIAorRkFJTCBvZmZlclRvUmVjZWl2
ZUF1ZGlvIHNldCB0byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNyZWF0ZSBhICJzZW5kb25s
eSIgdHJhbnNjZWl2ZXIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUg
InNlbmRvbmx5IiBkaXJlY3Rpb24gZXhwZWN0ZWQgInNlbmRvbmx5IiBidXQgZ290ICJzZW5kcmVj
diIKK0ZBSUwgb2ZmZXJUb1JlY2VpdmVBdWRpbyBzZXQgdG8gZmFsc2Ugd2l0aCBhICJyZWN2b25s
eSIgdHJhbnNjZWl2ZXIgc2hvdWxkIGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJpbmFjdGl2ZSIg
YXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgImluYWN0aXZlIiBkaXJl
Y3Rpb24gZXhwZWN0ZWQgImluYWN0aXZlIiBidXQgZ290ICJyZWN2b25seSIKK0ZBSUwgc3Vic2Vx
dWVudCBvZmZlclRvUmVjZWl2ZUF1ZGlvIHNldCB0byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxk
IGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJzZW5kb25seSIgYXNzZXJ0X2VxdWFsczogRXhwZWN0
IHRyYW5zY2VpdmVyIHRvIGhhdmUgInNlbmRvbmx5IiBkaXJlY3Rpb24gZXhwZWN0ZWQgInNlbmRv
bmx5IiBidXQgZ290ICJzZW5kcmVjdiIKK1BBU1MgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9S
ZWNlaXZlVmlkZW8gc2V0IHRvIGZhbHNlIHNob3VsZCBub3QgY3JlYXRlIGEgdHJhbnNjZWl2ZXIg
CitGQUlMIGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZlclRvUmVjZWl2ZVZpZGVvIHNob3VsZCBjcmVh
dGUgYSAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBwYyB0byBo
YXZlIG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMAorRkFJTCBvZmZlclRvUmVj
ZWl2ZVZpZGVvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5vbi1zdG9wcGVkICJyZWN2
b25seSIgdHJhbnNjZWl2ZXIgZXhpc3RzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBwYyB0byBoYXZl
IG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBvZmZlclRvUmVjZWl2
ZVZpZGVvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5vbi1zdG9wcGVkICJzZW5kcmVj
diIgdHJhbnNjZWl2ZXIgZXhpc3RzIAorRkFJTCBvZmZlclRvUmVjZWl2ZVZpZGVvIHNldCB0byBm
YWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNyZWF0ZSBhICJzZW5kb25seSIgdHJhbnNjZWl2ZXIg
YXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInNlbmRvbmx5IiBkaXJl
Y3Rpb24gZXhwZWN0ZWQgInNlbmRvbmx5IiBidXQgZ290ICJzZW5kcmVjdiIKK0ZBSUwgb2ZmZXJU
b1JlY2VpdmVWaWRlbyBzZXQgdG8gZmFsc2Ugd2l0aCBhICJyZWN2b25seSIgdHJhbnNjZWl2ZXIg
c2hvdWxkIGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJpbmFjdGl2ZSIgYXNzZXJ0X2VxdWFsczog
RXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgImluYWN0aXZlIiBkaXJlY3Rpb24gZXhwZWN0ZWQg
ImluYWN0aXZlIiBidXQgZ290ICJyZWN2b25seSIKK0ZBSUwgc3Vic2VxdWVudCBvZmZlclRvUmVj
ZWl2ZVZpZGVvIHNldCB0byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNoYW5nZSB0aGUgZGly
ZWN0aW9uIHRvICJzZW5kb25seSIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVyIHRv
IGhhdmUgInNlbmRvbmx5IiBkaXJlY3Rpb24gZXhwZWN0ZWQgInNlbmRvbmx5IiBidXQgZ290ICJz
ZW5kcmVjdiIKK0ZBSUwgb2ZmZXJUb1JlY2VpdmVBdWRpbyBhbmQgVmlkZW8gc2hvdWxkIGNyZWF0
ZSB0d28gInJlY3Zvbmx5IiB0cmFuc2NlaXZlcnMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRv
IGhhdmUgdHdvIHRyYW5zY2VpdmVycyBleHBlY3RlZCAyIGJ1dCBnb3QgMAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdh
Y3kvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9S
VENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY3MTA0OThlNzVmMWJlNTg3YzY2ZDFkMGRmZTIxNWNiMTM2Y2M3NDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9sZWdhY3kvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUuaHRt
bApAQCAtMCwwICsxLDI3NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPlRlc3QgbGVnYWN5IG9mZmVyVG9SZWNlaXZlQXVkaW8vVmlkZW8gb3B0aW9uczwv
dGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJy
dGMtcGMvI2xlZ2FjeS1jb25maWd1cmF0aW9uLWV4dGVuc2lvbnMiPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1Bl
ZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmlj
dCc7CisKKyAgLyoKKyAgICogIDQuMy4zLjIgQ29uZmlndXJhdGlvbiBkYXRhIGV4dGVuc2lvbnMK
KyAgICogIHBhcnRpYWwgZGljdGlvbmFyeSBSVENPZmZlck9wdGlvbnMKKyAgICovCisKKyAgLyoK
KyAgICogIG9mZmVyVG9SZWNlaXZlQXVkaW8gb2YgdHlwZSBib29sZWFuCisgICAqICAgIFdoZW4g
dGhpcyBpcyBnaXZlbiBhIG5vbi1mYWxzZSB2YWx1ZSwgbm8gb3V0Z29pbmcgdHJhY2sgb2YgdHlw
ZQorICAgKiAgICAiYXVkaW8iIGlzIGF0dGFjaGVkIHRvIHRoZSBQZWVyQ29ubmVjdGlvbiwgYW5k
IHRoZSBleGlzdGluZworICAgKiAgICBsb2NhbERlc2NyaXB0aW9uIChpZiBhbnkpIGRvZXNuJ3Qg
Y29udGFpbiBhbnkgc2VuZHJlY3Ygb3IgcmVjdgorICAgKiAgICBhdWRpbyBtZWRpYSBzZWN0aW9u
cywgY3JlYXRlT2ZmZXIoKSB3aWxsIGJlaGF2ZSBhcyBpZgorICAgKiAgICBhZGRUcmFuc2NlaXZl
cigiYXVkaW8iKSBoYWQgYmVlbiBjYWxsZWQgb25jZSBwcmlvciB0byB0aGUgY3JlYXRlT2ZmZXIo
KSBjYWxsLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3Nl
KCkpOworCisgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKHsgb2ZmZXJUb1JlY2VpdmVBdWRpbzog
dHJ1ZSB9KQorICAgIC50aGVuKG9mZmVyMSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
QXVkaW9MaW5lKG9mZmVyMS5zZHApLCAxLAorICAgICAgICAnRXhwZWN0IGNyZWF0ZWQgb2ZmZXIg
dG8gaGF2ZSBhdWRpbyBsaW5lJyk7CisKKyAgICAgIC8vIFRoZSBmaXJzdCBjcmVhdGVPZmZlciBp
bXBsaWNpdGx5IGNhbGxzIGFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLAorICAgICAgLy8gc28gYWxs
IGZvbGxvd2luZyBvZmZlcnMgd2lsbCBhbHNvIGhhdmUgYXVkaW8gbWVkaWEgc2VjdGlvbgorICAg
ICAgLy8gaW4gdGhlaXIgU0RQLgorICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKHsgb2ZmZXJU
b1JlY2VpdmVBdWRpbzogZmFsc2UgfSkKKyAgICAgIC50aGVuKG9mZmVyMiA9PiB7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoY291bnRBdWRpb0xpbmUob2ZmZXIyLnNkcCksIDEsCisgICAgICAgICAg
J0V4cGVjdCBhdWRpbyBsaW5lIHRvIHJlbWFpbiBpbiBjcmVhdGVkIG9mZmVyJyk7CisgICAgICB9
KQorICAgIH0pOworICB9LCAnY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlQXVkaW8g
c2hvdWxkIGFkZCBhdWRpbyBsaW5lIHRvIGFsbCBzdWJzZXF1ZW50IGNyZWF0ZWQgb2ZmZXJzJyk7
CisKKyAgLyoKKyAgICogIG9mZmVyVG9SZWNlaXZlVmlkZW8gb2YgdHlwZSBib29sZWFuCisgICAq
ICAgIFdoZW4gdGhpcyBpcyBnaXZlbiBhIG5vbi1mYWxzZSB2YWx1ZSwgYW5kIG5vIG91dGdvaW5n
IHRyYWNrCisgICAqICAgIG9mIHR5cGUgInZpZGVvIiBpcyBhdHRhY2hlZCB0byB0aGUgUGVlckNv
bm5lY3Rpb24sIGFuZCB0aGUKKyAgICogICAgZXhpc3RpbmcgbG9jYWxEZXNjcmlwdGlvbiAoaWYg
YW55KSBkb2Vzbid0IGNvbnRhaW4gYW55IHNlbmRlY3YKKyAgICogICAgb3IgcmVjdiB2aWRlbyBt
ZWRpYSBzZWN0aW9ucywgY3JlYXRlT2ZmZXIoKSB3aWxsIGJlaGF2ZSBhcyBpZgorICAgKiAgICBh
ZGRUcmFuc2NlaXZlcigidmlkZW8iKSBoYWQgYmVlbiBjYWxsZWQgcHJpb3IgdG8gdGhlIGNyZWF0
ZU9mZmVyKCkgY2FsbC4KKyAgICovCisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKKworICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcih7IG9mZmVyVG9SZWNlaXZl
VmlkZW86IHRydWUgfSkKKyAgICAudGhlbihvZmZlcjEgPT4geworICAgICAgYXNzZXJ0X2VxdWFs
cyhjb3VudFZpZGVvTGluZShvZmZlcjEuc2RwKSwgMSwKKyAgICAgICdFeHBlY3QgY3JlYXRlZCBv
ZmZlciB0byBoYXZlIHZpZGVvIGxpbmUnKTsKKworICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVy
KHsgb2ZmZXJUb1JlY2VpdmVWaWRlbzogZmFsc2UgfSkKKyAgICAgIC50aGVuKG9mZmVyMiA9PiB7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnRWaWRlb0xpbmUob2ZmZXIyLnNkcCksIDEsCisg
ICAgICAgICAgJ0V4cGVjdCB2aWRlbyBsaW5lIHRvIHJlbWFpbiBpbiBjcmVhdGVkIG9mZmVyJyk7
CisgICAgICB9KQorICAgIH0pOworICB9LCAnY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNl
aXZlVmlkZW8gc2hvdWxkIGFkZCB2aWRlbyBsaW5lIHRvIGFsbCBzdWJzZXF1ZW50IGNyZWF0ZWQg
b2ZmZXJzJyk7CisKKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OworCisgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKHsKKyAgICAgIG9mZmVyVG9SZWNlaXZlQXVk
aW86IHRydWUsCisgICAgICBvZmZlclRvUmVjZWl2ZVZpZGVvOiBmYWxzZQorICAgIH0pLnRoZW4o
b2ZmZXIxID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoY291bnRBdWRpb0xpbmUob2ZmZXIxLnNk
cCksIDEsCisgICAgICAgICdFeHBlY3QgYXVkaW8gbGluZSB0byBiZSBmb3VuZCBpbiBjcmVhdGVk
IG9mZmVyJyk7CisKKyAgICAgIGFzc2VydF9lcXVhbHMoY291bnRWaWRlb0xpbmUob2ZmZXIxLnNk
cCksIDAsCisgICAgICAgICdFeHBlY3QgdmlkZW8gbGluZSB0byBub3QgYmUgZm91bmQgaW4gY3Jl
YXRlIG9mZmVyJyk7CisKKyAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcih7CisgICAgICAgIG9m
ZmVyVG9SZWNlaXZlQXVkaW86IGZhbHNlLAorICAgICAgICBvZmZlclRvUmVjZWl2ZVZpZGVvOiB0
cnVlCisgICAgICB9KS50aGVuKG9mZmVyMiA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoY291
bnRBdWRpb0xpbmUob2ZmZXIyLnNkcCksIDEsCisgICAgICAgICAgJ0V4cGVjdCBhdWRpbyBsaW5l
IHRvIHJlbWFpbiBpbiBjcmVhdGVkIG9mZmVyJyk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhj
b3VudFZpZGVvTGluZShvZmZlcjIuc2RwKSwgMSwKKyAgICAgICAgICAnRXhwZWN0IHZpZGVvIGxp
bmUgdG8gYmUgZm91bmQgaW4gY3JlYXRlIG9mZmVyJyk7CisgICAgICB9KQorICAgIH0pOworICB9
LCAnY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlQXVkaW86dHJ1ZSwgdGhlbiB3aXRo
IG9mZmVyVG9SZWNlaXZlVmlkZW86dHJ1ZSwgc2hvdWxkIGhhdmUgcmVzdWx0IG9mZmVyIHdpdGgg
Ym90aCBhdWRpbyBhbmQgdmlkZW8gbGluZScpOworCisKKyAgLy8gUnVuIHNvbWUgdGVzdHMgZm9y
IGJvdGggYXVkaW8gYW5kIHZpZGVvIGtpbmRzCisgIFsnYXVkaW8nLCAndmlkZW8nXS5mb3JFYWNo
KChraW5kKSA9PiB7CisgICAgY29uc3QgY2Fwc0tpbmQgPSBraW5kWzBdLnRvVXBwZXJDYXNlKCkg
KyBraW5kLnNsaWNlKDEpOworCisgICAgY29uc3Qgb2ZmZXJUb1JlY2VpdmVUcnVlID0ge307Cisg
ICAgb2ZmZXJUb1JlY2VpdmVUcnVlW2BvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9YF0gPSB0cnVl
OworCisgICAgY29uc3Qgb2ZmZXJUb1JlY2VpdmVGYWxzZSA9IHt9OworICAgIG9mZmVyVG9SZWNl
aXZlRmFsc2VbYG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH1gXSA9IGZhbHNlOworCisgICAgLy8g
U3RhcnQgdGVzdGluZworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOworICAgICAgY29uc3QgZHVtbXkgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnZm9vJyk7
IC8vIEp1c3QgdG8gaGF2ZSBzb21ldGhpbmcgdG8gb2ZmZXIKKworICAgICAgcmV0dXJuIHBjLmNy
ZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlRmFsc2UpCisgICAgICAudGhlbigoKSA9PiB7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwLAorICAgICAg
ICAgICdFeHBlY3QgcGMgdG8gaGF2ZSBubyB0cmFuc2NlaXZlcnMnKTsKKyAgICAgIH0pOworICAg
IH0sIGBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfSBzZXQgdG8g
ZmFsc2Ugc2hvdWxkIG5vdCBjcmVhdGUgYSB0cmFuc2NlaXZlcmApOworCisgICAgcHJvbWlzZV90
ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKwor
ICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgICAgcmV0dXJuIHBj
LmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlVHJ1ZSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAg
ICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicpOworCisgICAgICAgIGNv
bnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CisgICAgICAgIGFzc2Vy
dF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAncmVjdm9ubHknLAorICAgICAgICAgICdF
eHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAicmVjdm9ubHkiIGRpcmVjdGlvbicpOworICAgICAg
fSk7CisgICAgfSwgYGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9
IHNob3VsZCBjcmVhdGUgYSAicmVjdm9ubHkiIHRyYW5zY2VpdmVyYCk7CisKKyAgICBwcm9taXNl
X3Rlc3QodCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
CisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgICByZXR1cm4g
cGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVUcnVlKQorICAgICAgLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKKyAg
ICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAgICAgICAg
Y29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdyZWN2b25seScsCisgICAgICAgICAg
J0V4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJyZWN2b25seSIgZGlyZWN0aW9uJyk7CisgICAg
ICB9KQorICAgICAgLnRoZW4oKCkgPT4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVUcnVl
KSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFu
c2NlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBzdGlsbCBoYXZl
IG9ubHkgb25lIHRyYW5zY2VpdmVyJyk7CisgICAgICB9KQorICAgICAgOworICAgIH0sIGBvZmZl
clRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5vbi1z
dG9wcGVkICJyZWN2b25seSIgdHJhbnNjZWl2ZXIgZXhpc3RzYCk7CisKKyAgICBwcm9taXNlX3Rl
c3QodCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisg
ICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgICByZXR1cm4gZ2V0
VHJhY2tGcm9tVXNlck1lZGlhKGtpbmQpCisgICAgICAudGhlbigoW3RyYWNrLCBzdHJlYW1dKSA9
PiB7CisgICAgICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworICAgICAgICByZXR1cm4g
cGMuY3JlYXRlT2ZmZXIoKTsKKyAgICAgIH0pCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAg
IGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAorICAgICAgICAg
ICdFeHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXInKTsKKworICAgICAgICBjb25zdCB0
cmFuc2NlaXZlciA9IHBjLmdldFRyYW5zY2VpdmVycygpWzBdOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3NlbmRyZWN2JywKKyAgICAgICAgICAnRXhwZWN0
IHRyYW5zY2VpdmVyIHRvIGhhdmUgInNlbmRyZWN2IiBkaXJlY3Rpb24nKTsKKyAgICAgIH0pCisg
ICAgICAudGhlbigoKSA9PiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZVRydWUpKQorICAg
ICAgLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVy
cygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIHN0aWxsIGhhdmUgb25seSBv
bmUgdHJhbnNjZWl2ZXInKTsKKyAgICAgIH0pCisgICAgICA7CisgICAgfSwgYG9mZmVyVG9SZWNl
aXZlJHtjYXBzS2luZH0gb3B0aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3BwZWQg
InNlbmRyZWN2IiB0cmFuc2NlaXZlciBleGlzdHNgKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICAgIHJldHVybiBnZXRUcmFja0Zy
b21Vc2VyTWVkaWEoa2luZCkKKyAgICAgIC50aGVuKChbdHJhY2ssIHN0cmVhbV0pID0+IHsKKyAg
ICAgICAgcGMuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CisgICAgICAgIHJldHVybiBwYy5jcmVh
dGVPZmZlcihvZmZlclRvUmVjZWl2ZUZhbHNlKTsKKyAgICAgIH0pCisgICAgICAudGhlbigoKSA9
PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAx
LAorICAgICAgICAgICdFeHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXInKTsKKworICAg
ICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmdldFRyYW5zY2VpdmVycygpWzBdOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3NlbmRvbmx5JywKKyAgICAg
ICAgICAnRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInNlbmRvbmx5IiBkaXJlY3Rpb24nKTsK
KyAgICAgIH0pCisgICAgICA7CisgICAgfSwgYG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gc2V0
IHRvIGZhbHNlIHdpdGggYSB0cmFjayBzaG91bGQgY3JlYXRlIGEgInNlbmRvbmx5IiB0cmFuc2Nl
aXZlcmApOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKKworICAgICAgcGMuYWRkVHJhbnNjZWl2ZXIoa2luZCwge2RpcmVjdGlvbjogJ3JlY3Zv
bmx5J30pOworCisgICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVGYWxz
ZSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFu
c2NlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0
cmFuc2NlaXZlcicpOworCisgICAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNj
ZWl2ZXJzKClbMF07CisgICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9u
LCAnaW5hY3RpdmUnLAorICAgICAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAiaW5h
Y3RpdmUiIGRpcmVjdGlvbicpOworICAgICAgfSkKKyAgICAgIDsKKyAgICB9LCBgb2ZmZXJUb1Jl
Y2VpdmUke2NhcHNLaW5kfSBzZXQgdG8gZmFsc2Ugd2l0aCBhICJyZWN2b25seSIgdHJhbnNjZWl2
ZXIgc2hvdWxkIGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJpbmFjdGl2ZSJgKTsKKworICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMyLmNsb3NlKCkpOworCisgICAgICByZXR1cm4gZ2V0VHJhY2tGcm9tVXNlck1lZGlhKGtp
bmQpCisgICAgICAudGhlbigoW3RyYWNrLCBzdHJlYW1dKSA9PiB7CisgICAgICAgIHBjLmFkZFRy
YWNrKHRyYWNrLCBzdHJlYW0pOworICAgICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoKTsKKyAg
ICAgIH0pCisgICAgICAudGhlbigob2ZmZXIpID0+IHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2Zm
ZXIpKQorICAgICAgLnRoZW4oKCkgPT4gcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjLmxvY2Fs
RGVzY3JpcHRpb24pKQorICAgICAgLnRoZW4oKCkgPT4gcGMyLmNyZWF0ZUFuc3dlcigpKQorICAg
ICAgLnRoZW4oKGFuc3dlcikgPT4gcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSkKKyAg
ICAgIC50aGVuKCgpID0+IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0
aW9uKSkKKyAgICAgIC50aGVuKCgpID0+IHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlRmFs
c2UpKQorICAgICAgLnRoZW4oKG9mZmVyKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMu
Z2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMgdG8gaGF2
ZSBvbmUgdHJhbnNjZWl2ZXInKTsKKworICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmdl
dFRyYW5zY2VpdmVycygpWzBdOworICAgICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRp
cmVjdGlvbiwgJ3NlbmRvbmx5JywKKyAgICAgICAgICAnRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhh
dmUgInNlbmRvbmx5IiBkaXJlY3Rpb24nKTsKKyAgICAgIH0pCisgICAgICA7CisgICAgfSwgYHN1
YnNlcXVlbnQgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfSBzZXQgdG8gZmFsc2Ugd2l0aCBhIHRy
YWNrIHNob3VsZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byAic2VuZG9ubHkiYCk7CisgIH0pOwor
CisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIHJl
dHVybiBwYy5jcmVhdGVPZmZlcih7IG9mZmVyVG9SZWNlaXZlQXVkaW86IHRydWUsIG9mZmVyVG9S
ZWNlaXZlVmlkZW86IHRydWUgfSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1
YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMiwKKyAgICAgICAgJ0V4cGVjdCBwYyB0
byBoYXZlIHR3byB0cmFuc2NlaXZlcnMnKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRU
cmFuc2NlaXZlcnMoKVswXS5kaXJlY3Rpb24sICdyZWN2b25seScsCisgICAgICAgICdFeHBlY3Qg
Zmlyc3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAicmVjdm9ubHkiIGRpcmVjdGlvbicpOworICAgICAg
YXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKVsxXS5kaXJlY3Rpb24sICdyZWN2b25s
eScsCisgICAgICAgICdFeHBlY3Qgc2Vjb25kIHRyYW5zY2VpdmVyIHRvIGhhdmUgInJlY3Zvbmx5
IiBkaXJlY3Rpb24nKTsKKyAgICB9KTsKKyAgfSwgJ29mZmVyVG9SZWNlaXZlQXVkaW8gYW5kIFZp
ZGVvIHNob3VsZCBjcmVhdGUgdHdvICJyZWN2b25seSIgdHJhbnNjZWl2ZXJzJyk7CisKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1J0cFRyYW5zY2VpdmVyLXdpdGgtT2ZmZXJUb1JlY2VpdmUt
b3B0aW9ucy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvUlRDUnRwVHJhbnNjZWl2ZXItd2l0aC1PZmZl
clRvUmVjZWl2ZS1vcHRpb25zLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTA3YmU0
ZGE3M2VkYmRmYmUxZDVkNTY5YmViYWQxZjk0MzI5MDYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JU
Q1J0cFRyYW5zY2VpdmVyLXdpdGgtT2ZmZXJUb1JlY2VpdmUtb3B0aW9ucy5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgY2hlY2tBZGRUcmFuc2NlaXZlcldpdGhTdHJl
YW0gCitGQUlMIGNoZWNrQWRkVHJhbnNjZWl2ZXJXaXRoT2ZmZXJUb1JlY2VpdmVBdWRpbyBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiW3tjdXJyZW50RGlyZWN0aW9uOm51bGwsZGlyZWN0aW9uOlwi
cmVjdm9ubHlcIixtaWQ6bnVsbCxyZWNlaXZlcjp7dHJhY2s6e2tpbmQ6XCJhdWRpb1wifX0sc2Vu
ZGVyOnt0cmFjazpudWxsfSxzdG9wcGVkOmZhbHNlfV0iIGJ1dCBnb3QgIltdIgorRkFJTCBjaGVj
a0FkZFRyYW5zY2VpdmVyV2l0aE9mZmVyVG9SZWNlaXZlVmlkZW8gYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgIlt7Y3VycmVudERpcmVjdGlvbjpudWxsLGRpcmVjdGlvbjpcInJlY3Zvbmx5XCIsbWlk
Om51bGwscmVjZWl2ZXI6e3RyYWNrOntraW5kOlwidmlkZW9cIn19LHNlbmRlcjp7dHJhY2s6bnVs
bH0sc3RvcHBlZDpmYWxzZX1dIiBidXQgZ290ICJbXSIKK0ZBSUwgY2hlY2tBZGRUcmFuc2NlaXZl
cldpdGhPZmZlclRvUmVjZWl2ZUJvdGggYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlt7Y3VycmVu
dERpcmVjdGlvbjpudWxsLGRpcmVjdGlvbjpcInJlY3Zvbmx5XCIsbWlkOm51bGwscmVjZWl2ZXI6
e3RyYWNrOntraW5kOlwiYXVkaW9cIn19LHNlbmRlcjp7dHJhY2s6bnVsbH0sc3RvcHBlZDpmYWxz
ZX0se2N1cnJlbnREaXJlY3Rpb246bnVsbCxkaXJlY3Rpb246XCJyZWN2b25seVwiLG1pZDpudWxs
LHJlY2VpdmVyOnt0cmFjazp7a2luZDpcInZpZGVvXCJ9fSxzZW5kZXI6e3RyYWNrOm51bGx9LHN0
b3BwZWQ6ZmFsc2V9XSIgYnV0IGdvdCAiW10iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9SVENSdHBUcmFuc2Nl
aXZlci13aXRoLU9mZmVyVG9SZWNlaXZlLW9wdGlvbnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9SVENSdHBUcmFu
c2NlaXZlci13aXRoLU9mZmVyVG9SZWNlaXZlLW9wdGlvbnMuaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YWRkYjAwOTg3MzQzMjBlOTg0MDRlNzkxMWE5MjBiNmI4NWYyNzUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
bGVnYWN5L1JUQ1J0cFRyYW5zY2VpdmVyLXdpdGgtT2ZmZXJUb1JlY2VpdmUtb3B0aW9ucy5odHRw
cy5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
dXRmLTg+Cis8dGl0bGU+UlRDUnRwVHJhbnNjZWl2ZXIgd2l0aCBPZmZlclRvUmVjZWl2ZSBsZWdh
Y3kgb3B0aW9uczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBjb25zdCBzdG9wVHJh
Y2tzID0gKC4uLnN0cmVhbXMpID0+IHsKKyAgICBzdHJlYW1zLmZvckVhY2goc3RyZWFtID0+IHN0
cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICB9Owor
CisgIC8vIGNvbXBhcmFibGUoKSAtIHByb2R1Y2VzIGNvcHkgb2Ygb2JqZWN0IHRoYXQgaXMgSlNP
TiBjb21wYXJhYmxlLgorICAvLyBvID0gb3JpZ2luYWwgb2JqZWN0IChyZXF1aXJlZCkKKyAgLy8g
dCA9IHRlbXBsYXRlIG9mIHdoYXQgdG8gZXhhbWluZS4gVXNlZnVsIGlmIG8gaXMgbm9uLWVudW1l
cmFibGUgKG9wdGlvbmFsKQorCisgIGNvbnN0IGNvbXBhcmFibGUgPSAobywgdCA9IG8pID0+IHsK
KyAgICBpZiAodHlwZW9mIG8gIT0gJ29iamVjdCcgfHwgIW8pIHsKKyAgICAgIHJldHVybiBvOwor
ICAgIH0KKyAgICBpZiAoQXJyYXkuaXNBcnJheSh0KSAmJiBBcnJheS5pc0FycmF5KG8pKSB7Cisg
ICAgICByZXR1cm4gby5tYXAoKG4sIGkpID0+IGNvbXBhcmFibGUobiwgdFtpXSkpOworICAgIH0K
KyAgICByZXR1cm4gT2JqZWN0LmtleXModCkuc29ydCgpCisgICAgICAgIC5yZWR1Y2UoKHIsIGtl
eSkgPT4gKHJba2V5XSA9IGNvbXBhcmFibGUob1trZXldLCB0W2tleV0pLCByKSwge30pOworICB9
OworCisgIGNvbnN0IHN0cmlwS2V5UXVvdGVzID0gcyA9PiBzLnJlcGxhY2UoLyIoXHcrKSI6L2cs
ICIkMToiKTsKKworICBjb25zdCBoYXNQcm9wcyA9IChvYnNlcnZlZCwgZXhwZWN0ZWQpID0+IHsK
KyAgICBjb25zdCBvYnNlcnZhYmxlID0gY29tcGFyYWJsZShvYnNlcnZlZCwgZXhwZWN0ZWQpOwor
ICAgIGFzc2VydF9lcXVhbHMoc3RyaXBLZXlRdW90ZXMoSlNPTi5zdHJpbmdpZnkob2JzZXJ2YWJs
ZSkpLAorICAgICAgIHN0cmlwS2V5UXVvdGVzKEpTT04uc3RyaW5naWZ5KGNvbXBhcmFibGUoZXhw
ZWN0ZWQpKSkpOworICB9OworCisgIGNvbnN0IGNoZWNrQWRkVHJhbnNjZWl2ZXJXaXRoU3RyZWFt
ID0gYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgY29uc3QgYXVkaW9T
dHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86
IHRydWV9KTsKKyAgICBjb25zdCB2aWRlb1N0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gc3RvcFRyYWNrcyhhdWRpb1N0cmVhbSwgdmlkZW9TdHJlYW0pKTsKKworICAgIGNvbnN0IGF1
ZGlvID0gYXVkaW9TdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXTsKKyAgICBjb25zdCB2aWRlbyA9
IHZpZGVvU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisKKyAgICBwYy5hZGRUcmFuc2NlaXZl
cihhdWRpbywge3N0cmVhbXM6IFthdWRpb1N0cmVhbV19KTsKKyAgICBwYy5hZGRUcmFuc2NlaXZl
cih2aWRlbywge3N0cmVhbXM6IFt2aWRlb1N0cmVhbV19KTsKKworICAgIGhhc1Byb3BzKHBjLmdl
dFRyYW5zY2VpdmVycygpLAorICAgICAgWworICAgICAgICB7CisgICAgICAgICAgcmVjZWl2ZXI6
IHt0cmFjazoge2tpbmQ6ICJhdWRpbyJ9fSwKKyAgICAgICAgICBzZW5kZXI6IHt0cmFjazogYXVk
aW99LAorICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAgICBtaWQ6IG51
bGwsCisgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKKyAgICAgICAgICBzdG9wcGVk
OiBmYWxzZQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgcmVjZWl2ZXI6IHt0cmFj
azoge2tpbmQ6ICJ2aWRlbyJ9fSwKKyAgICAgICAgICBzZW5kZXI6IHt0cmFjazogdmlkZW99LAor
ICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAgICBtaWQ6IG51bGwsCisg
ICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKKyAgICAgICAgICBzdG9wcGVkOiBmYWxz
ZQorICAgICAgICB9CisgICAgICBdKTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3Jl
YXRlT2ZmZXIoKTsKKyAgICBhc3NlcnRfdHJ1ZShvZmZlci5zZHAuaW5jbHVkZXMoImE9bXNpZDoi
ICsgYXVkaW9TdHJlYW0uaWQpLAorICAgICAgIm9mZmVyIGNvbnRhaW5zIHRoZSBleHBlY3RlZCBh
dWRpbyBtc2lkIik7CisgICAgYXNzZXJ0X3RydWUob2ZmZXIuc2RwLmluY2x1ZGVzKCJhPW1zaWQ6
IiArIHZpZGVvU3RyZWFtLmlkKSwKKyAgICAgICJvZmZlciBjb250YWlucyB0aGUgZXhwZWN0ZWQg
dmlkZW8gbXNpZCIpOworICB9OworCisgIGNvbnN0IGNoZWNrQWRkVHJhbnNjZWl2ZXJXaXRoT2Zm
ZXJUb1JlY2VpdmUgPSBhc3luYyAodCwga2luZHMpID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CisKKyAgICBjb25zdCBwcm9wc1RvU2V0ID0ga2luZHMubWFwKGtpbmQgPT4geworICAgICAgaWYg
KGtpbmQgPT0gImF1ZGlvIikgeworICAgICAgICByZXR1cm4gIm9mZmVyVG9SZWNlaXZlQXVkaW8i
OworICAgICAgfSBlbHNlIGlmIChraW5kID09ICJ2aWRlbyIpIHsKKyAgICAgICAgcmV0dXJuICJv
ZmZlclRvUmVjZWl2ZVZpZGVvIjsKKyAgICAgIH0KKyAgICB9KTsKKworICAgIGNvbnN0IG9wdGlv
bnMgPSB7fTsKKworICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wc1RvU2V0KSB7CisgICAgICBv
cHRpb25zW3Byb3BdID0gdHJ1ZTsKKyAgICB9CisKKyAgICBsZXQgb2ZmZXIgPSBhd2FpdCBwYy5j
cmVhdGVPZmZlcihvcHRpb25zKTsKKworICAgIGNvbnN0IGV4cGVjdGVkID0gW107CisKKyAgICBp
ZiAob3B0aW9ucy5vZmZlclRvUmVjZWl2ZUF1ZGlvKSB7CisgICAgICBleHBlY3RlZC5wdXNoKAor
ICAgICAgICB7CisgICAgICAgICAgcmVjZWl2ZXI6IHt0cmFjazoge2tpbmQ6ICJhdWRpbyJ9fSwK
KyAgICAgICAgICBzZW5kZXI6IHt0cmFjazogbnVsbH0sCisgICAgICAgICAgZGlyZWN0aW9uOiAi
cmVjdm9ubHkiLAorICAgICAgICAgIG1pZDogbnVsbCwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiBudWxsLAorICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCisgICAgICAgIH0pOworICAgIH0K
KworICAgIGlmIChvcHRpb25zLm9mZmVyVG9SZWNlaXZlVmlkZW8pIHsKKyAgICAgIGV4cGVjdGVk
LnB1c2goCisgICAgICAgIHsKKyAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZp
ZGVvIn19LAorICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiBudWxsfSwKKyAgICAgICAgICBkaXJl
Y3Rpb246ICJyZWN2b25seSIsCisgICAgICAgICAgbWlkOiBudWxsLAorICAgICAgICAgIGN1cnJl
bnREaXJlY3Rpb246IG51bGwsCisgICAgICAgICAgc3RvcHBlZDogZmFsc2UKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgaGFzUHJvcHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCksIGV4cGVjdGVkKTsK
KworICAgIC8vIFRlc3Qgb2ZmZXJUb1JlY2VpdmU6IGZhbHNlCisgICAgZm9yIChjb25zdCBwcm9w
IG9mIHByb3BzVG9TZXQpIHsKKyAgICAgIG9wdGlvbnNbcHJvcF0gPSBmYWxzZTsKKyAgICB9CisK
KyAgICAvLyBDaGVjayB0aGF0IHNlbmRyZWN2IGdvZXMgdG8gc2VuZG9ubHkKKyAgICBmb3IgKGNv
bnN0IHRyYW5zY2VpdmVyIG9mIHBjLmdldFRyYW5zY2VpdmVycygpKSB7CisgICAgICB0cmFuc2Nl
aXZlci5kaXJlY3Rpb24gPSAic2VuZHJlY3YiOworICAgIH0KKworICAgIGZvciAoY29uc3QgdHJh
bnNjZWl2ZXJDaGVjayBvZiBleHBlY3RlZCkgeworICAgICAgdHJhbnNjZWl2ZXJDaGVjay5kaXJl
Y3Rpb24gPSAic2VuZG9ubHkiOworICAgIH0KKworICAgIG9mZmVyID0gYXdhaXQgcGMuY3JlYXRl
T2ZmZXIob3B0aW9ucyk7CisgICAgaGFzUHJvcHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCksIGV4cGVj
dGVkKTsKKworICAgIC8vIENoZWNrIHRoYXQgcmVjdm9ubHkgZ29lcyB0byBpbmFjdGl2ZQorICAg
IGZvciAoY29uc3QgdHJhbnNjZWl2ZXIgb2YgcGMuZ2V0VHJhbnNjZWl2ZXJzKCkpIHsKKyAgICAg
IHRyYW5zY2VpdmVyLmRpcmVjdGlvbiA9ICJyZWN2b25seSI7CisgICAgfQorCisgICAgZm9yIChj
b25zdCB0cmFuc2NlaXZlckNoZWNrIG9mIGV4cGVjdGVkKSB7CisgICAgICB0cmFuc2NlaXZlckNo
ZWNrLmRpcmVjdGlvbiA9ICJpbmFjdGl2ZSI7CisgICAgfQorCisgICAgb2ZmZXIgPSBhd2FpdCBw
Yy5jcmVhdGVPZmZlcihvcHRpb25zKTsKKyAgICBoYXNQcm9wcyhwYy5nZXRUcmFuc2NlaXZlcnMo
KSwgZXhwZWN0ZWQpOworICB9OworCitjb25zdCB0ZXN0cyA9IFsKKyAgY2hlY2tBZGRUcmFuc2Nl
aXZlcldpdGhTdHJlYW0sCisgIGZ1bmN0aW9uIGNoZWNrQWRkVHJhbnNjZWl2ZXJXaXRoT2ZmZXJU
b1JlY2VpdmVBdWRpbyh0KSB7CisgICAgcmV0dXJuIGNoZWNrQWRkVHJhbnNjZWl2ZXJXaXRoT2Zm
ZXJUb1JlY2VpdmUodCwgWyJhdWRpbyJdKTsKKyAgfSwKKyAgZnVuY3Rpb24gY2hlY2tBZGRUcmFu
c2NlaXZlcldpdGhPZmZlclRvUmVjZWl2ZVZpZGVvKHQpIHsKKyAgICByZXR1cm4gY2hlY2tBZGRU
cmFuc2NlaXZlcldpdGhPZmZlclRvUmVjZWl2ZSh0LCBbInZpZGVvIl0pOworICB9LAorICBmdW5j
dGlvbiBjaGVja0FkZFRyYW5zY2VpdmVyV2l0aE9mZmVyVG9SZWNlaXZlQm90aCh0KSB7CisgICAg
cmV0dXJuIGNoZWNrQWRkVHJhbnNjZWl2ZXJXaXRoT2ZmZXJUb1JlY2VpdmUodCwgWyJhdWRpbyIs
ICJ2aWRlbyJdKTsKKyAgfQorXS5mb3JFYWNoKHRlc3QgPT4gcHJvbWlzZV90ZXN0KHRlc3QsIHRl
c3QubmFtZSkpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9vbmFkZHN0cmVhbS5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9sZWdhY3kvb25hZGRzdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRhZGMwNmYxYTAyMGNiMzFjNGVkN2IzMDA2MTUwMjFmNDQ1OTExMjIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9s
ZWdhY3kvb25hZGRzdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitG
QUlMIENoZWNrIG9uYWRkc3RyZWFtIGFzc2VydF9lcXVhbHM6IFNob3VsZCBoYXZlIDEgYWRkc3Ry
ZWFtIGV2ZW50IGV4cGVjdGVkIDEgYnV0IGdvdCAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9vbmFkZHN0cmVh
bS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvbGVnYWN5L29uYWRkc3RyZWFtLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWFhMTZi
MzZhMjRlMWJjZTNjMjg2Y2M1YWVjMjQ5YTg5MWJmNzZmMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9v
bmFkZHN0cmVhbS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTUzIEBACis8IWRvY3R5cGUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+b25hZGRzdHJlYW0gdGVzdHM8L3RpdGxlPgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIGNvbnN0IHN0b3BUcmFja3MgPSAoLi4uc3RyZWFtcykg
PT4geworICAgIHN0cmVhbXMuZm9yRWFjaChzdHJlYW0gPT4gc3RyZWFtLmdldFRyYWNrcygpLmZv
ckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIH07CisKKyAgY29uc3QgY29sbGVjdEV2
ZW50cyA9ICh0YXJnZXQsIG5hbWUsIGNoZWNrKSA9PiB7CisgICAgY29uc3QgZXZlbnRzID0gW107
CisgICAgY29uc3QgaGFuZGxlciA9IGUgPT4geworICAgICAgY2hlY2soZSk7CisgICAgICBldmVu
dHMucHVzaChlKTsKKyAgICB9OworCisgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIobmFtZSwg
aGFuZGxlcik7CisKKyAgICBjb25zdCBmaW5pc2hDb2xsZWN0aW5nID0gKCkgPT4geworICAgICAg
dGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgaGFuZGxlcik7CisgICAgICByZXR1cm4g
ZXZlbnRzOworICAgIH07CisKKyAgICByZXR1cm4ge2ZpbmlzaDogZmluaXNoQ29sbGVjdGluZ307
CisgIH07CisKKyAgY29uc3QgY29sbGVjdEFkZFRyYWNrRXZlbnRzID0gc3RyZWFtID0+IHsKKyAg
ICBjb25zdCBjaGVja0V2ZW50ID0gZSA9PiB7CisgICAgICBhc3NlcnRfdHJ1ZShlLnRyYWNrIGlu
c3RhbmNlb2YgTWVkaWFTdHJlYW1UcmFjaywgIlRyYWNrIGlzIHNldCBvbiBldmVudCIpOworICAg
ICAgYXNzZXJ0X3RydWUoc3RyZWFtLmdldFRyYWNrcygpLmluY2x1ZGVzKGUudHJhY2spLAorICAg
ICAgICAidHJhY2sgaW4gYWRkdHJhY2sgZXZlbnQgaXMgaW4gdGhlIHN0cmVhbSIpOworICAgIH07
CisgICAgcmV0dXJuIGNvbGxlY3RFdmVudHMoc3RyZWFtLCAiYWRkdHJhY2siLCBjaGVja0V2ZW50
KTsKKyAgfTsKKworICBjb25zdCBjb2xsZWN0UmVtb3ZlVHJhY2tFdmVudHMgPSBzdHJlYW0gPT4g
eworICAgIGNvbnN0IGNoZWNrRXZlbnQgPSBlID0+IHsKKyAgICAgIGFzc2VydF90cnVlKGUudHJh
Y2sgaW5zdGFuY2VvZiBNZWRpYVN0cmVhbVRyYWNrLCAiVHJhY2sgaXMgc2V0IG9uIGV2ZW50Iik7
CisgICAgICBhc3NlcnRfdHJ1ZSghc3RyZWFtLmdldFRyYWNrcygpLmluY2x1ZGVzKGUudHJhY2sp
LAorICAgICAgICAidHJhY2sgaW4gcmVtb3ZldHJhY2sgZXZlbnQgaXMgbm90IGluIHRoZSBzdHJl
YW0iKTsKKyAgICB9OworICAgIHJldHVybiBjb2xsZWN0RXZlbnRzKHN0cmVhbSwgInJlbW92ZXRy
YWNrIiwgY2hlY2tFdmVudCk7CisgIH07CisKKyAgY29uc3QgY29sbGVjdFRyYWNrRXZlbnRzID0g
cGMgPT4geworICAgIGNvbnN0IGNoZWNrRXZlbnQgPSBlID0+IHsKKyAgICAgIGFzc2VydF90cnVl
KGUudHJhY2sgaW5zdGFuY2VvZiBNZWRpYVN0cmVhbVRyYWNrLCAiVHJhY2sgaXMgc2V0IG9uIGV2
ZW50Iik7CisgICAgICBhc3NlcnRfdHJ1ZShlLnJlY2VpdmVyIGluc3RhbmNlb2YgUlRDUnRwUmVj
ZWl2ZXIsICJSZWNlaXZlciBpcyBzZXQgb24gZXZlbnQiKTsKKyAgICAgIGFzc2VydF90cnVlKGUu
dHJhbnNjZWl2ZXIgaW5zdGFuY2VvZiBSVENSdHBUcmFuc2NlaXZlciwgIlRyYW5zY2VpdmVyIGlz
IHNldCBvbiBldmVudCIpOworICAgICAgYXNzZXJ0X3RydWUoQXJyYXkuaXNBcnJheShlLnN0cmVh
bXMpLCAiU3RyZWFtcyBpcyBzZXQgb24gZXZlbnQiKTsKKyAgICAgIGUuc3RyZWFtcy5mb3JFYWNo
KHN0cmVhbSA9PiB7CisgICAgICAgIGFzc2VydF90cnVlKHN0cmVhbS5nZXRUcmFja3MoKS5pbmNs
dWRlcyhlLnRyYWNrKSwKKyAgICAgICAgICAgIkVhY2ggc3RyZWFtIGluIGV2ZW50IGNvbnRhaW5z
IHRoZSB0cmFjayIpOworICAgICAgfSk7CisgICAgICBhc3NlcnRfZXF1YWxzKGUucmVjZWl2ZXIs
IGUudHJhbnNjZWl2ZXIucmVjZWl2ZXIsCisgICAgICAgICAgICAgICAgICAgICJSZWNlaXZlciBi
ZWxvbmdzIHRvIHRyYW5zY2VpdmVyIik7CisgICAgICBhc3NlcnRfZXF1YWxzKGUudHJhY2ssIGUu
cmVjZWl2ZXIudHJhY2ssCisgICAgICAgICAgICAgICAgICAgICJUcmFjayBiZWxvbmdzIHRvIHJl
Y2VpdmVyIik7CisgICAgfTsKKworICAgIHJldHVybiBjb2xsZWN0RXZlbnRzKHBjLCAidHJhY2si
LCBjaGVja0V2ZW50KTsKKyAgfTsKKworICAvLyBjb21wYXJhYmxlKCkgLSBwcm9kdWNlcyBjb3B5
IG9mIG9iamVjdCB0aGF0IGlzIEpTT04gY29tcGFyYWJsZS4KKyAgLy8gbyA9IG9yaWdpbmFsIG9i
amVjdCAocmVxdWlyZWQpCisgIC8vIHQgPSB0ZW1wbGF0ZSBvZiB3aGF0IHRvIGV4YW1pbmUuIFVz
ZWZ1bCBpZiBvIGlzIG5vbi1lbnVtZXJhYmxlIChvcHRpb25hbCkKKworICBjb25zdCBjb21wYXJh
YmxlID0gKG8sIHQgPSBvKSA9PiB7CisgICAgaWYgKHR5cGVvZiBvICE9ICdvYmplY3QnIHx8ICFv
KSB7CisgICAgICByZXR1cm4gbzsKKyAgICB9CisgICAgaWYgKEFycmF5LmlzQXJyYXkodCkgJiYg
QXJyYXkuaXNBcnJheShvKSkgeworICAgICAgcmV0dXJuIG8ubWFwKChuLCBpKSA9PiBjb21wYXJh
YmxlKG4sIHRbaV0pKTsKKyAgICB9CisgICAgcmV0dXJuIE9iamVjdC5rZXlzKHQpLnNvcnQoKQor
ICAgICAgICAucmVkdWNlKChyLCBrZXkpID0+IChyW2tleV0gPSBjb21wYXJhYmxlKG9ba2V5XSwg
dFtrZXldKSwgciksIHt9KTsKKyAgfTsKKworICBjb25zdCBzdHJpcEtleVF1b3RlcyA9IHMgPT4g
cy5yZXBsYWNlKC8iKFx3KykiOi9nLCAiJDE6Iik7CisKKyAgY29uc3QgaGFzUHJvcHMgPSAob2Jz
ZXJ2ZWQsIGV4cGVjdGVkKSA9PiB7CisgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IGNvbXBhcmFibGUo
b2JzZXJ2ZWQsIGV4cGVjdGVkKTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0cmlwS2V5UXVvdGVzKEpT
T04uc3RyaW5naWZ5KG9ic2VydmFibGUpKSwKKyAgICAgICBzdHJpcEtleVF1b3RlcyhKU09OLnN0
cmluZ2lmeShjb21wYXJhYmxlKGV4cGVjdGVkKSkpKTsKKyAgfTsKKworICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3Qgc3RyZWFtMSA9
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZSwg
dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0b3BUcmFja3Moc3RyZWFt
MSkpOworICAgIGNvbnN0IGF1ZGlvMSA9IHN0cmVhbTEuZ2V0QXVkaW9UcmFja3MoKVswXTsKKyAg
ICBwYzEuYWRkVHJhY2soYXVkaW8xLCBzdHJlYW0xKTsKKyAgICBjb25zdCB2aWRlbzEgPSBzdHJl
YW0xLmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgcGMxLmFkZFRyYWNrKHZpZGVvMSwgc3RyZWFt
MSk7CisKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBjb25zdCBzdHJlYW0yID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRlbzog
dHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RvcFRyYWNrcyhzdHJlYW0yKSk7Cisg
ICAgY29uc3QgYXVkaW8yID0gc3RyZWFtMi5nZXRBdWRpb1RyYWNrcygpWzBdOworICAgIHBjMi5h
ZGRUcmFjayhhdWRpbzIsIHN0cmVhbTIpOworICAgIGNvbnN0IHZpZGVvMiA9IHN0cmVhbTIuZ2V0
VmlkZW9UcmFja3MoKVswXTsKKyAgICBwYzIuYWRkVHJhY2sodmlkZW8yLCBzdHJlYW0yKTsKKwor
ICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisKKyAgICBsZXQgdHJh
Y2tFdmVudENvbGxlY3RvciA9IGNvbGxlY3RUcmFja0V2ZW50cyhwYzIpOworICAgIGxldCBhZGRz
dHJlYW1FdmVudENvbGxlY3RvciA9IGNvbGxlY3RFdmVudHMocGMyLCAiYWRkc3RyZWFtIiwgZSA9
PiB7CisgICAgICBoYXNQcm9wcyhlLCB7c3RyZWFtOiB7aWQ6IHN0cmVhbTEuaWR9fSk7CisgICAg
ICBhc3NlcnRfZXF1YWxzKGUuc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoLCAxLCAiT25l
IGF1ZGlvIHRyYWNrIik7CisgICAgICBhc3NlcnRfZXF1YWxzKGUuc3RyZWFtLmdldFZpZGVvVHJh
Y2tzKCkubGVuZ3RoLCAxLCAiT25lIHZpZGVvIHRyYWNrIik7CisgICAgfSk7CisKKyAgICBhd2Fp
dCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworCisgICAgbGV0IGFkZHN0cmVhbUV2
ZW50cyA9IGFkZHN0cmVhbUV2ZW50Q29sbGVjdG9yLmZpbmlzaCgpOworICAgIGFzc2VydF9lcXVh
bHMoYWRkc3RyZWFtRXZlbnRzLmxlbmd0aCwgMSwgIlNob3VsZCBoYXZlIDEgYWRkc3RyZWFtIGV2
ZW50Iik7CisKKyAgICBsZXQgdHJhY2tFdmVudHMgPSB0cmFja0V2ZW50Q29sbGVjdG9yLmZpbmlz
aCgpOworCisgICAgaGFzUHJvcHModHJhY2tFdmVudHMsCisgICAgICBbCisgICAgICAgIHtzdHJl
YW1zOiBbYWRkc3RyZWFtRXZlbnRzWzBdLnN0cmVhbV19LAorICAgICAgICB7c3RyZWFtczogW2Fk
ZHN0cmVhbUV2ZW50c1swXS5zdHJlYW1dfQorICAgICAgXSk7CisKKyAgICBhd2FpdCBwYzEuc2V0
TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNy
ZWF0ZUFuc3dlcigpOworCisgICAgdHJhY2tFdmVudENvbGxlY3RvciA9IGNvbGxlY3RUcmFja0V2
ZW50cyhwYzEpOworICAgIGFkZHN0cmVhbUV2ZW50Q29sbGVjdG9yID0gY29sbGVjdEV2ZW50cyhw
YzEsICJhZGRzdHJlYW0iLCBlID0+IHsKKyAgICAgIGhhc1Byb3BzKGUsIHtzdHJlYW06IHtpZDog
c3RyZWFtMi5pZH19KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoZS5zdHJlYW0uZ2V0QXVkaW9UcmFj
a3MoKS5sZW5ndGgsIDEsICJPbmUgYXVkaW8gdHJhY2siKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
ZS5zdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgsIDEsICJPbmUgdmlkZW8gdHJhY2siKTsK
KyAgICB9KTsKKworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwor
ICAgIGFkZHN0cmVhbUV2ZW50cyA9IGFkZHN0cmVhbUV2ZW50Q29sbGVjdG9yLmZpbmlzaCgpOwor
ICAgIGFzc2VydF9lcXVhbHMoYWRkc3RyZWFtRXZlbnRzLmxlbmd0aCwgMSwgIlNob3VsZCBoYXZl
IDEgYWRkc3RyZWFtIGV2ZW50Iik7CisKKyAgICB0cmFja0V2ZW50cyA9IHRyYWNrRXZlbnRDb2xs
ZWN0b3IuZmluaXNoKCk7CisKKyAgICBoYXNQcm9wcyh0cmFja0V2ZW50cywKKyAgICAgIFsKKyAg
ICAgICAge3N0cmVhbXM6IFthZGRzdHJlYW1FdmVudHNbMF0uc3RyZWFtXX0sCisgICAgICAgIHtz
dHJlYW1zOiBbYWRkc3RyZWFtRXZlbnRzWzBdLnN0cmVhbV19CisgICAgICBdKTsKKyAgfSwiQ2hl
Y2sgb25hZGRzdHJlYW0iKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVn
YWN5L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlYTJkMjhlYWQ1OWQ4Mjg4MmJiNDQ3YWM2
MTU0ZDZiYjk3ZTNkZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvdzNjLWltcG9ydC5sb2cKQEAgLTAs
MCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvbGVnYWN5L1JFQURNRS50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvUlRDUGVlckNvbm5lY3Rpb24tYWRk
U3RyZWFtLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9sZWdhY3kvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJU
b1JlY2VpdmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL2xlZ2FjeS9SVENSdHBUcmFuc2NlaXZlci13aXRoLU9mZmVyVG9SZWNlaXZlLW9w
dGlvbnMuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL2xlZ2FjeS9vbmFkZHN0cmVhbS5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRp
YS1jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9uby1tZWRpYS1jYWxsLmh0bWwKaW5kZXggMTA5MzNmYWU0YzM5NjE5OGFkZTA5MTg5
NGVhODUzOGQxYTE3NGVhZi4uYjFlYmEwOGQwYjQzM2M2MGM2MzMyMTk5Y2QzNTI5NDg0NzAyOGEw
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRtbApAQCAtMTQsNyAr
MTQsNyBAQAogICA8IS0tIFRoZXNlIGZpbGVzIGFyZSBpbiBwbGFjZSB3aGVuIGV4ZWN1dGluZyBv
biBXM0MuIC0tPgogICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CiAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Ii93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgdmFyIHRl
c3QgPSBhc3luY190ZXN0KCdDYW4gc2V0IHVwIGEgYmFzaWMgV2ViUlRDIGNhbGwgd2l0aCBubyBk
YXRhLicpOwogCkBAIC0xMTMsMTAgKzExMywxMiBAQAogICAvLyBUaGlzIGZ1bmN0aW9uIHN0YXJ0
cyB0aGUgdGVzdC4KICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCkgewogICAgIGdGaXJzdENvbm5lY3Rp
b24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgo
KSA9PiBnRmlyc3RDb25uZWN0aW9uLmNsb3NlKCkpOwogICAgIGdGaXJzdENvbm5lY3Rpb24ub25p
Y2VjYW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0ZVRvRmlyc3Q7CiAgICAgZ0ZpcnN0Q29ubmVjdGlv
bi5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9IG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdl
OwogCiAgICAgZ1NlY29uZENvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7
CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBnU2Vjb25kQ29ubmVjdGlvbi5jbG9zZSgpKTsK
ICAgICBnU2Vjb25kQ29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9T
ZWNvbmQ7CiAgICAgZ1NlY29uZENvbm5lY3Rpb24ub25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2Ug
PSBvbkljZUNvbm5lY3Rpb25TdGF0ZUNoYW5nZTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2FsbC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
bWlzZXMtY2FsbC5odG1sCmluZGV4IGNlYjZhYjI1OGNjYmFhZWJiMzliNjM3NDJhNDhhMzc5ZGIz
NWJjNDYuLjhiOWEyNzU1NDk3MzUzMWU4NTI4NDA2YTUyZDM4YjdjNTU5MzJmM2MgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b21pc2VzLWNhbGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwKQEAgLTY2LDEwICs2NiwxMiBAQCBU
aGlzIHRlc3QgdXNlcyBkYXRhIG9ubHksIGFuZCB0aHVzIGRvZXMgbm90IHJlcXVpcmUgZmFrZSBt
ZWRpYSBkZXZpY2VzLgogICAvLyBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyB0aGUgdGVzdC4KICAgdGVz
dC5zdGVwKGZ1bmN0aW9uKCkgewogICAgIGdGaXJzdENvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBnRmlyc3RDb25uZWN0
aW9uLmNsb3NlKCkpOwogICAgIGdGaXJzdENvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBvbklj
ZUNhbmRpZGF0ZVRvRmlyc3Q7CiAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5vbmljZWNvbm5lY3Rpb25z
dGF0ZWNoYW5nZSA9IG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlOwogCiAgICAgZ1NlY29uZENv
bm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xl
YW51cCgoKSA9PiBnU2Vjb25kQ29ubmVjdGlvbi5jbG9zZSgpKTsKICAgICBnU2Vjb25kQ29ubmVj
dGlvbi5vbmljZWNhbmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQ7CiAgICAgZ1NlY29u
ZENvbm5lY3Rpb24ub25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2UgPSBvbkljZUNvbm5lY3Rpb25T
dGF0ZUNoYW5nZTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvYnVuZGxlLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL2J1bmRsZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQxMGQ1YWY5M2VmNDkz
Nzc5NjZkMjE3YTk1OTJlNzhiNTI4MTExOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2J1bmRsZS5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgbm90IG5lZ290aWF0aW5n
IEJVTkRMRSBjcmVhdGVzIHR3byBzZXBhcmF0ZSBpY2UgYW5kIGR0bHMgdHJhbnNwb3J0cyBhc3Nl
cnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgdW5kZWZpbmVkCitGQUlMIGJ1bmRs
ZXMgb24gdGhlIGZpcnN0IHRyYW5zcG9ydCBhbmQgY2xvc2VzIHRoZSBzZWNvbmQgYXNzZXJ0X25v
dF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIHVuZGVmaW5lZAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9idW5kbGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2J1bmRsZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYx
ZDFmZjhhYzEwODI5N2RhZmUzMzM2OTRkZGQxMTk0ZmY1M2ZlMjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9idW5kbGUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDk0IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gQlVORExFPC90
aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBj
b25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBjYWxsZXIuY2xvc2UoKSk7CisgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKKyAgY29uc3Qg
c3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0p
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNr
ID0+IHRyYWNrLnN0b3AoKSkpOworICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9
PiBjYWxsZXIuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSkpOworCisgIGxldCBtZXRhZGF0YVRvQmVM
b2FkZWQ7CisgIGNhbGxlZS5vbnRyYWNrID0gKGUpID0+IHsKKyAgICBjb25zdCBzdHJlYW0gPSBl
LnN0cmVhbXNbMF07CisgICAgY29uc3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgdi5hdXRvcGxheSA9IHRydWU7CisgICAgdi5zcmNPYmplY3QgPSBzdHJlYW07Cisg
ICAgdi5pZCA9IHN0cmVhbS5pZAorICAgIG1ldGFkYXRhVG9CZUxvYWRlZCA9IG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7CisgICAgICB2LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRh
JywgKCkgPT4geworICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfTsK
KyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKGNhbGxlciwgY2FsbGVlKTsKKyAgY29uc3Qgb2ZmZXIg
PSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKyAgLy8gcmVtb3ZlIHRoZSBhPWdyb3VwOkJV
TkRMRSBmcm9tIHRoZSBTRFAgd2hlbiBzaWduYWxpbmcuCisgIGNvbnN0IHNkcCA9IG9mZmVyLnNk
cC5yZXBsYWNlKC9hPWdyb3VwOkJVTkRMRSAoLiopXHJcbi8sICcnKTsKKyAgYXdhaXQgY2FsbGVl
LnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHB9KTsKKyAgYXdhaXQgY2Fs
bGVyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworCisgIGNvbnN0IGFuc3dlciA9IGF3YWl0
IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2NyaXB0
aW9uKGFuc3dlcik7CisgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7
CisKKyAgYXdhaXQgbWV0YWRhdGFUb0JlTG9hZGVkOworICBjb25zdCBzZW5kZXJzID0gY2FsbGVy
LmdldFNlbmRlcnMoKTsKKyAgY29uc3QgZHRsc1RyYW5zcG9ydHMgPSBzZW5kZXJzLm1hcChzID0+
IHMudHJhbnNwb3J0KTsKKyAgYXNzZXJ0X2VxdWFscyhkdGxzVHJhbnNwb3J0cy5sZW5ndGgsIDIp
OworICBhc3NlcnRfbm90X2VxdWFscyhkdGxzVHJhbnNwb3J0c1swXSwgZHRsc1RyYW5zcG9ydHNb
MV0pOworCisgIGNvbnN0IGljZVRyYW5zcG9ydHMgPSBkdGxzVHJhbnNwb3J0cy5tYXAodCA9PiB0
LmljZVRyYW5zcG9ydCk7CisgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0cy5sZW5ndGgsIDIp
OworICBhc3NlcnRfbm90X2VxdWFscyhpY2VUcmFuc3BvcnRzWzBdLCBpY2VUcmFuc3BvcnRzWzFd
KTsKK30sICdub3QgbmVnb3RpYXRpbmcgQlVORExFIGNyZWF0ZXMgdHdvIHNlcGFyYXRlIGljZSBh
bmQgZHRscyB0cmFuc3BvcnRzJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gY2FsbGVyLmNsb3NlKCkpOworICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgIGNvbnN0IHN0
cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9KTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9
PiB0cmFjay5zdG9wKCkpKTsKKyAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4g
Y2FsbGVyLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pKTsKKworICBsZXQgbWV0YWRhdGFUb0JlTG9h
ZGVkOworICBjYWxsZWUub250cmFjayA9IChlKSA9PiB7CisgICAgY29uc3Qgc3RyZWFtID0gZS5z
dHJlYW1zWzBdOworICAgIGNvbnN0IHYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycp
OworICAgIHYuYXV0b3BsYXkgPSB0cnVlOworICAgIHYuc3JjT2JqZWN0ID0gc3RyZWFtOworICAg
IHYuaWQgPSBzdHJlYW0uaWQKKyAgICBtZXRhZGF0YVRvQmVMb2FkZWQgPSBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geworICAgICAgdi5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScs
ICgpID0+IHsKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH07Cisg
IGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhjYWxsZXIsIGNhbGxlZSk7CisgIGNvbnN0IG9mZmVyID0g
YXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IGNhbGxlZS5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcik7CisgIGF3YWl0IGNhbGxlci5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVy
KTsKKyAgY29uc3Qgc2Vjb25kVHJhbnNwb3J0ID0gY2FsbGVyLmdldFNlbmRlcnMoKVsxXS50cmFu
c3BvcnQ7IC8vIFNhdmUgYSByZWZlcmVuY2UgdG8gdGhpcyB0cmFuc3BvcnQuCisKKyAgY29uc3Qg
YW5zd2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBjYWxsZXIuc2V0
UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3Jp
cHRpb24oYW5zd2VyKTsKKworICBhd2FpdCBtZXRhZGF0YVRvQmVMb2FkZWQ7CisgIGNvbnN0IHNl
bmRlcnMgPSBjYWxsZXIuZ2V0U2VuZGVycygpOworICBjb25zdCBkdGxzVHJhbnNwb3J0cyA9IHNl
bmRlcnMubWFwKHMgPT4gcy50cmFuc3BvcnQpOworICBhc3NlcnRfZXF1YWxzKGR0bHNUcmFuc3Bv
cnRzLmxlbmd0aCwgMik7CisgIGFzc2VydF9lcXVhbHMoZHRsc1RyYW5zcG9ydHNbMF0sIGR0bHNU
cmFuc3BvcnRzWzFdKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoZHRsc1RyYW5zcG9ydHNbMV0sIHNl
Y29uZFRyYW5zcG9ydCk7CisgIGFzc2VydF9lcXVhbHMoc2Vjb25kVHJhbnNwb3J0LnN0YXRlLCAn
Y2xvc2VkJyk7Cit9LCAnYnVuZGxlcyBvbiB0aGUgZmlyc3QgdHJhbnNwb3J0IGFuZCBjbG9zZXMg
dGhlIHNlY29uZCcpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFu
Z2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xZWQ3OTUwYjc0ODg2YTdmZjExNDNhZmNjMDU5ZjJmMWZkNTll
ODIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworUEFTUyBUd28gd2F5IElDRSBleGNoYW5nZSB3b3Jr
cyAKK0ZBSUwgQWRkaW5nIG9ubHkgY2FsbGVyIC0+IGNhbGxlZSBjYW5kaWRhdGVzIGdpdmVzIGEg
Y29ubmVjdGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdwYzEuc2N0cC50cmFuc3BvcnQnKSIKK0ZBSUwgQWRkaW5nIG9ubHkgY2FsbGVlIC0+IGNhbGxl
ciBjYW5kaWRhdGVzIGdpdmVzIGEgY29ubmVjdGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdwYzIuc2N0cC50cmFuc3BvcnQnKSIKK0ZBSUwgQWRkaW5n
IGNhbGxlZSAtPiBjYWxsZXIgY2FuZGlkYXRlcyBmcm9tIGVuZC1vZi1jYW5kaWRhdGVzIGdpdmVz
IGEgY29ubmVjdGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdwYzIuc2N0cC50cmFuc3BvcnQnKSIKK0ZBSUwgRXhwbGljaXQgb2ZmZXIvYW5zd2VyIGV4
Y2hhbmdlIGdpdmVzIGEgY29ubmVjdGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdwYzEuc2N0cC50cmFuc3BvcnQnKSIKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
Y2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0
cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41MzJiYzRkMGQxM2Q3MjE3MGY5ZTUyMWNiZWRhN2QyZTY1NmUz
MTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0bWwK
QEAgLTAsMCArMSwyMDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRs
ZT5DYW5kaWRhdGUgZXhjaGFuZ2U8L3RpdGxlPgorPG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9
bG9uZz4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBpY2VHYXRoZXJpbmdDb21wbGV0
ZVdhaXRlcihwYykgeworICBjb25zdCB3YWl0ZXIgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eworICAgIGNvbnN0IGV2ZW50SGFuZGxlciA9ICgpID0+IHsKKyAgICAgIGlmIChwYy5pY2VHYXRo
ZXJpbmdTdGF0ZSA9PSAnY29tcGxldGUnKSB7CisgICAgICAgIHBjLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgZXZlbnRIYW5kbGVyLCBmYWxzZSk7CisgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgIH0KKyAgICB9OworICAgIGlmIChwYy5pY2VHYXRoZXJpbmdT
dGF0ZSA9PSAnY29tcGxldGUnKSB7CisgICAgICByZXNvbHZlKCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgIHBjLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgZXZlbnRI
YW5kbGVyLCBmYWxzZSk7CisgICAgfQorICB9KTsKKyAgcmV0dXJuIHdhaXRlcjsKK30KKworY2xh
c3MgU3RhdGVMb2dnZXIgeworICBjb25zdHJ1Y3Rvcihzb3VyY2UsIGV2ZW50bmFtZSwgZmllbGQp
IHsKKyAgICBzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihldmVudG5hbWUsIGV2ZW50ID0+IHsKKyAg
ICAgIHRoaXMuZXZlbnRzLnB1c2goc291cmNlW2ZpZWxkXSk7CisgICAgfSk7CisgICAgdGhpcy5l
dmVudHMgPSBbc291cmNlW2ZpZWxkXV07CisgIH0KK30KKworY2xhc3MgSWNlU3RhdGVMb2dnZXIg
ZXh0ZW5kcyBTdGF0ZUxvZ2dlciB7CisgIGNvbnN0cnVjdG9yKHNvdXJjZSkgeworICAgIHN1cGVy
KHNvdXJjZSwgJ2ljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZScsICdpY2VDb25uZWN0aW9uU3RhdGUn
KTsKKyAgfQorfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2RhdGFjaGFu
bmVsJyk7CisgIHBjMUljZVN0YXRlcyA9IG5ldyBJY2VTdGF0ZUxvZ2dlcihwYzEpOworICBwYzJJ
Y2VTdGF0ZXMgPSBuZXcgSWNlU3RhdGVMb2dnZXIocGMxKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRh
dGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7Cisg
IC8vIE5vdGUgLSBpdCdzIGJlZW4gY2xhaW1lZCB0aGF0IHRoaXMgc3RhdGUgc29tZXRpbWVzIGp1
bXBzIHN0cmFpZ2h0CisgIC8vIHRvICJjb21wbGV0ZWQiLiBJZiBzbywgdGhpcyB0ZXN0IHNob3Vs
ZCBiZSBmbGFreS4KKyAgYXdhaXQgd2FpdEZvckljZVN0YXRlQ2hhbmdlKHBjMSwgWydjb25uZWN0
ZWQnXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMocGMxSWNlU3RhdGVzLmV2ZW50cywgWyduZXcn
LCAnY2hlY2tpbmcnLCAnY29ubmVjdGVkJ10pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBjMklj
ZVN0YXRlcy5ldmVudHMsIFsnbmV3JywgJ2NoZWNraW5nJywgJ2Nvbm5lY3RlZCddKTsKK30sICdU
d28gd2F5IElDRSBleGNoYW5nZSB3b3JrcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzFJY2VTdGF0ZXMg
PSBuZXcgSWNlU3RhdGVMb2dnZXIocGMxKTsKKyAgcGMySWNlU3RhdGVzID0gbmV3IEljZVN0YXRl
TG9nZ2VyKHBjMSk7CisgIGxldCBjYW5kaWRhdGVzID0gW107CisgIHBjMS5jcmVhdGVEYXRhQ2hh
bm5lbCgnZGF0YWNoYW5uZWwnKTsKKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7CisgICAg
Y2FuZGlkYXRlcy5wdXNoKGUuY2FuZGlkYXRlKTsKKyAgfQorICAvLyBDYW5kaWRhdGVzIGZyb20g
UEMyIGFyZSBub3QgZGVsaXZlcmVkIHRvIHBjMSwgc28gcGMxIHdpbGwgdXNlCisgIC8vIHBlZXIt
cmVmbGV4aXZlIGNhbmRpZGF0ZXMuCisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBw
YzIpOworICBjb25zdCB3YWl0ZXIgPSBpY2VHYXRoZXJpbmdDb21wbGV0ZVdhaXRlcihwYzEpOwor
ICBhd2FpdCB3YWl0ZXI7CisgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHsK
KyAgICBpZiAoY2FuZGlkYXRlKSB7CisgICAgICBwYzIuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0
ZSk7CisgICAgfQorICB9CisgIGF3YWl0IFByb21pc2UuYWxsKFt3YWl0Rm9ySWNlU3RhdGVDaGFu
Z2UocGMxLCBbJ2Nvbm5lY3RlZCcsICdjb21wbGV0ZWQnXSksCisgICAgICAgICAgICAgICAgICAg
ICB3YWl0Rm9ySWNlU3RhdGVDaGFuZ2UocGMyLCBbJ2Nvbm5lY3RlZCcsICdjb21wbGV0ZWQnXSld
KTsKKyAgY29uc3QgY2FuZGlkYXRlX3BhaXIgPSBwYzEuc2N0cC50cmFuc3BvcnQuaWNlVHJhbnNw
b3J0LmdldFNlbGVjdGVkQ2FuZGlkYXRlUGFpcigpOworICBhc3NlcnRfZXF1YWxzKGNhbmRpZGF0
ZV9wYWlyLmxvY2FsLnR5cGUsICdob3N0Jyk7CisgIGFzc2VydF9lcXVhbHMoY2FuZGlkYXRlX3Bh
aXIucmVtb3RlLnR5cGUsICdwcmZseCcpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBjMUljZVN0
YXRlcy5ldmVudHMsIFsnbmV3JywgJ2NoZWNraW5nJywgJ2Nvbm5lY3RlZCddKTsKKyAgYXNzZXJ0
X2FycmF5X2VxdWFscyhwYzJJY2VTdGF0ZXMuZXZlbnRzLCBbJ25ldycsICdjaGVja2luZycsICdj
b25uZWN0ZWQnXSk7Cit9LCAnQWRkaW5nIG9ubHkgY2FsbGVyIC0+IGNhbGxlZSBjYW5kaWRhdGVz
IGdpdmVzIGEgY29ubmVjdGlvbicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzFJY2VTdGF0ZXMgPSBuZXcg
SWNlU3RhdGVMb2dnZXIocGMxKTsKKyAgcGMySWNlU3RhdGVzID0gbmV3IEljZVN0YXRlTG9nZ2Vy
KHBjMSk7CisgIGxldCBjYW5kaWRhdGVzID0gW107CisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgn
ZGF0YWNoYW5uZWwnKTsKKyAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7CisgICAgY2FuZGlk
YXRlcy5wdXNoKGUuY2FuZGlkYXRlKTsKKyAgfQorICAvLyBDYW5kaWRhdGVzIGZyb20gcGMxIGFy
ZSBub3QgZGVsaXZlcmVkIHRvIHBjMi4gIHNvIHBjMiB3aWxsIHVzZQorICAvLyBwZWVyLXJlZmxl
eGl2ZSBjYW5kaWRhdGVzLgorICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsK
KyAgY29uc3Qgd2FpdGVyID0gaWNlR2F0aGVyaW5nQ29tcGxldGVXYWl0ZXIocGMyKTsKKyAgYXdh
aXQgd2FpdGVyOworICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7CisgICAg
aWYgKGNhbmRpZGF0ZSkgeworICAgICAgcGMxLmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUpOwor
ICAgIH0KKyAgfQorICBhd2FpdCBQcm9taXNlLmFsbChbd2FpdEZvckljZVN0YXRlQ2hhbmdlKHBj
MSwgWydjb25uZWN0ZWQnLCAnY29tcGxldGVkJ10pLAorICAgICAgICAgICAgICAgICAgICAgd2Fp
dEZvckljZVN0YXRlQ2hhbmdlKHBjMiwgWydjb25uZWN0ZWQnLCAnY29tcGxldGVkJ10pXSk7Cisg
IGNvbnN0IGNhbmRpZGF0ZV9wYWlyID0gcGMyLnNjdHAudHJhbnNwb3J0LmljZVRyYW5zcG9ydC5n
ZXRTZWxlY3RlZENhbmRpZGF0ZVBhaXIoKTsKKyAgYXNzZXJ0X2VxdWFscyhjYW5kaWRhdGVfcGFp
ci5sb2NhbC50eXBlLCAnaG9zdCcpOworICBhc3NlcnRfZXF1YWxzKGNhbmRpZGF0ZV9wYWlyLnJl
bW90ZS50eXBlLCAncHJmbHgnKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhwYzFJY2VTdGF0ZXMu
ZXZlbnRzLCBbJ25ldycsICdjaGVja2luZycsICdjb25uZWN0ZWQnXSk7CisgIGFzc2VydF9hcnJh
eV9lcXVhbHMocGMySWNlU3RhdGVzLmV2ZW50cywgWyduZXcnLCAnY2hlY2tpbmcnLCAnY29ubmVj
dGVkJ10pOworfSwgJ0FkZGluZyBvbmx5IGNhbGxlZSAtPiBjYWxsZXIgY2FuZGlkYXRlcyBnaXZl
cyBhIGNvbm5lY3Rpb24nKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgcGMxSWNlU3RhdGVzID0gbmV3IEljZVN0
YXRlTG9nZ2VyKHBjMSk7CisgIHBjMkljZVN0YXRlcyA9IG5ldyBJY2VTdGF0ZUxvZ2dlcihwYzEp
OworICBsZXQgcGMyVG9QYzFDYW5kaWRhdGVzID0gW107CisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5l
bCgnZGF0YWNoYW5uZWwnKTsKKyAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7CisgICAgcGMy
VG9QYzFDYW5kaWRhdGVzLnB1c2goZS5jYW5kaWRhdGUpOworICAgIC8vIFRoaXMgcGFydGljdWxh
ciB0ZXN0IHZlcmlmaWVzIHRoYXQgY2FuZGlkYXRlcyB3b3JrCisgICAgLy8gcHJvcGVybHkgaWYg
YWRkZWQgZnJvbSB0aGUgcGMyIG9uaWNlY2FuZGlkYXRlIGV2ZW50LgorICAgIGlmICghZS5jYW5k
aWRhdGUpIHsKKyAgICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIHBjMlRvUGMxQ2FuZGlkYXRl
cykgeworICAgICAgICBpZiAoY2FuZGlkYXRlKSB7CisgICAgICAgICAgcGMxLmFkZEljZUNhbmRp
ZGF0ZShjYW5kaWRhdGUpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9CisgIC8vIENh
bmRpZGF0ZXMgZnJvbSB8cGMxfCBhcmUgbm90IGRlbGl2ZXJlZCB0byB8cGMyfC4gfHBjMnwgd2ls
bCB1c2UKKyAgLy8gcGVlci1yZWZsZXhpdmUgY2FuZGlkYXRlcy4KKyAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlcihwYzEsIHBjMik7CisgIGF3YWl0IFByb21pc2UuYWxsKFt3YWl0Rm9ySWNlU3Rh
dGVDaGFuZ2UocGMxLCBbJ2Nvbm5lY3RlZCcsICdjb21wbGV0ZWQnXSksCisgICAgICAgICAgICAg
ICAgICAgICB3YWl0Rm9ySWNlU3RhdGVDaGFuZ2UocGMyLCBbJ2Nvbm5lY3RlZCcsICdjb21wbGV0
ZWQnXSldKTsKKyAgY29uc3QgY2FuZGlkYXRlX3BhaXIgPSBwYzIuc2N0cC50cmFuc3BvcnQuaWNl
VHJhbnNwb3J0LmdldFNlbGVjdGVkQ2FuZGlkYXRlUGFpcigpOworICBhc3NlcnRfZXF1YWxzKGNh
bmRpZGF0ZV9wYWlyLmxvY2FsLnR5cGUsICdob3N0Jyk7CisgIGFzc2VydF9lcXVhbHMoY2FuZGlk
YXRlX3BhaXIucmVtb3RlLnR5cGUsICdwcmZseCcpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBj
MUljZVN0YXRlcy5ldmVudHMsIFsnbmV3JywgJ2NoZWNraW5nJywgJ2Nvbm5lY3RlZCddKTsKKyAg
YXNzZXJ0X2FycmF5X2VxdWFscyhwYzJJY2VTdGF0ZXMuZXZlbnRzLCBbJ25ldycsICdjaGVja2lu
ZycsICdjb25uZWN0ZWQnXSk7Cit9LCAnQWRkaW5nIGNhbGxlZSAtPiBjYWxsZXIgY2FuZGlkYXRl
cyBmcm9tIGVuZC1vZi1jYW5kaWRhdGVzIGdpdmVzIGEgY29ubmVjdGlvbicpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkp
OworICBwYzFJY2VTdGF0ZXMgPSBuZXcgSWNlU3RhdGVMb2dnZXIocGMxKTsKKyAgcGMySWNlU3Rh
dGVzID0gbmV3IEljZVN0YXRlTG9nZ2VyKHBjMSk7CisgIGxldCBwYzFUb1BjMkNhbmRpZGF0ZXMg
PSBbXTsKKyAgbGV0IHBjMlRvUGMxQ2FuZGlkYXRlcyA9IFtdOworICBwYzEuY3JlYXRlRGF0YUNo
YW5uZWwoJ2RhdGFjaGFubmVsJyk7CisgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGUgPT4geworICAg
IHBjMVRvUGMyQ2FuZGlkYXRlcy5wdXNoKGUuY2FuZGlkYXRlKTsKKyAgfQorICBwYzIub25pY2Vj
YW5kaWRhdGUgPSBlID0+IHsKKyAgICBwYzJUb1BjMUNhbmRpZGF0ZXMucHVzaChlLmNhbmRpZGF0
ZSk7CisgIH0KKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgYXdh
aXQgUHJvbWlzZS5hbGwoW3BjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKSwKKyAgICAgICAg
ICAgICAgICAgICAgIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcildKTsKKyAgY29uc3Qg
YW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBpY2VHYXRoZXJpbmdD
b21wbGV0ZVdhaXRlcihwYzEpOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3
ZXIpLnRoZW4oKCkgPT4geworICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIHBjMVRvUGMyQ2Fu
ZGlkYXRlcykgeworICAgICAgaWYgKGNhbmRpZGF0ZSkgeworICAgICAgICBwYzIuYWRkSWNlQ2Fu
ZGlkYXRlKGNhbmRpZGF0ZSk7CisgICAgICB9CisgICAgfQorICB9KTsKKyAgYXdhaXQgaWNlR2F0
aGVyaW5nQ29tcGxldGVXYWl0ZXIocGMyKTsKKyAgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcikudGhlbihhc3luYyAoKSA9PiB7CisgICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgcGMy
VG9QYzFDYW5kaWRhdGVzKSB7CisgICAgICBpZiAoY2FuZGlkYXRlKSB7CisgICAgICAgIGF3YWl0
IHBjMS5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKKyAgICAgIH0KKyAgICB9CisgIH0pOwor
ICBhd2FpdCBQcm9taXNlLmFsbChbd2FpdEZvckljZVN0YXRlQ2hhbmdlKHBjMSwgWydjb25uZWN0
ZWQnLCAnY29tcGxldGVkJ10pLAorICAgICAgICAgICAgICAgICAgICAgd2FpdEZvckljZVN0YXRl
Q2hhbmdlKHBjMiwgWydjb25uZWN0ZWQnLCAnY29tcGxldGVkJ10pXSk7CisgIGNvbnN0IGNhbmRp
ZGF0ZV9wYWlyID0KKyAgICAgICAgcGMxLnNjdHAudHJhbnNwb3J0LmljZVRyYW5zcG9ydC5nZXRT
ZWxlY3RlZENhbmRpZGF0ZVBhaXIoKTsKKyAgYXNzZXJ0X2VxdWFscyhjYW5kaWRhdGVfcGFpci5s
b2NhbC50eXBlLCAnaG9zdCcpOworICAvLyBXaGVuIHdlIHN1cHBseSByZW1vdGUgY2FuZGlkYXRl
cywgd2UgZXhwZWN0IGEganVtcCB0byB0aGUgJ2hvc3QnIGNhbmRpZGF0ZSwKKyAgLy8gYnV0IGl0
IG1pZ2h0IGFsc28gcmVtYWluIGFzICdwcmZseCcuCisgIGFzc2VydF90cnVlKGNhbmRpZGF0ZV9w
YWlyLnJlbW90ZS50eXBlID09ICdob3N0JyB8fAorICAgICAgICAgICAgICBjYW5kaWRhdGVfcGFp
ci5yZW1vdGUudHlwZSA9PSAncHJmbHgnKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhwYzFJY2VT
dGF0ZXMuZXZlbnRzLCBbJ25ldycsICdjaGVja2luZycsICdjb25uZWN0ZWQnXSk7CisgIGFzc2Vy
dF9hcnJheV9lcXVhbHMocGMySWNlU3RhdGVzLmV2ZW50cywgWyduZXcnLCAnY2hlY2tpbmcnLCAn
Y29ubmVjdGVkJ10pOworfSwgJ0V4cGxpY2l0IG9mZmVyL2Fuc3dlciBleGNoYW5nZSBnaXZlcyBh
IGNvbm5lY3Rpb24nKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY3J5cHRvLXN1aXRlLmh0
dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjA0YzA1ZWJhYzY3YmExMjJmNWQ0NDE5ZTQx
N2JmMjVkZjE1ZDEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY3J5cHRvLXN1aXRlLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK0ZBSUwgdGxzVmVyc2lvbiBpcyBhY2NlcHRh
YmxlIG9uIGRhdGEtb25seSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICdwYzEuc2N0cC50cmFuc3BvcnQnKSIKK0ZBSUwgdGxzVmVyc2lvbiBpcyBhY2NlcHRh
YmxlIG9uIHZpZGVvLW9ubHkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAndHJhbnNwb3J0LnN0YXRlJykiCitGQUlMIGR0bHNDaXBoZXIgaXMgYWNjZXB0YWJs
ZSBvbiBkYXRhLW9ubHkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAncGMxLnNjdHAudHJhbnNwb3J0JykiCitGQUlMIGR0bHNDaXBoZXIgaXMgYWNjZXB0YWJs
ZSBvbiB2aWRlby1vbmx5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ3RyYW5zcG9ydC5zdGF0ZScpIgorRkFJTCBzcnRwQ2lwaGVyIGlzIGFjY2VwdGFibGUg
b24gZGF0YS1vbmx5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ3BjMS5zY3RwLnRyYW5zcG9ydCcpIgorRkFJTCBzcnRwQ2lwaGVyIGlzIGFjY2VwdGFibGUg
b24gdmlkZW8tb25seSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICd0cmFuc3BvcnQuc3RhdGUnKSIKK0ZBSUwgdGxzR3JvdXAgaXMgYWNjZXB0YWJsZSBvbiBk
YXRhLW9ubHkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAn
cGMxLnNjdHAudHJhbnNwb3J0JykiCitGQUlMIHRsc0dyb3VwIGlzIGFjY2VwdGFibGUgb24gdmlk
ZW8tb25seSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0
cmFuc3BvcnQuc3RhdGUnKSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY3J5cHRvLXN1aXRlLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWI2MDU2MWExNDBk
MjIzOGYwZjBhMmQ3OWIwNzU5YzcxZDc1NDgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY3J5cHRv
LXN1aXRlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5jcmVh
dGVPZmZlcjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENTdGF0cy1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLy8gZHJhZnQtaWV0Zi1ydGN3ZWItc2VjdXJpdHkt
MjAgc2VjdGlvbiA2LjUKKy8vCisvLyBBbGwgSW1wbGVtZW50YXRpb25zIE1VU1Qgc3VwcG9ydCBE
VExTIDEuMiB3aXRoIHRoZQorLy8gVExTX0VDREhFX0VDRFNBX1dJVEhfQUVTXzEyOF9HQ01fU0hB
MjU2IGNpcGhlciBzdWl0ZSBhbmQgdGhlIFAtMjU2CisvLyBjdXJ2ZSBbRklQUzE4Nl0uCisvLyAg
IC4uLi4uLi4gIFRoZSBEVExTLVNSVFAgcHJvdGVjdGlvbiBwcm9maWxlCisvLyBTUlRQX0FFUzEy
OF9DTV9ITUFDX1NIQTFfODAgTVVTVCBiZSBzdXBwb3J0ZWQgZm9yIFNSVFAuCisvLyBJbXBsZW1l
bnRhdGlvbnMgTVVTVCBmYXZvciBjaXBoZXIgc3VpdGVzIHdoaWNoIHN1cHBvcnQgKFBlcmZlY3QK
Ky8vIEZvcndhcmQgU2VjcmVjeSkgUEZTIG92ZXIgbm9uLVBGUyBjaXBoZXIgc3VpdGVzIGFuZCBT
SE9VTEQgZmF2b3IgQUVBRAorLy8gb3ZlciBub24tQUVBRCBjaXBoZXIgc3VpdGVzLgorCitjb25z
dCBhY2NlcHRhYmxlVGxzVmVyc2lvbnMgPSBuZXcgU2V0KFsKKyAgJ0ZFRkQnLCAvLyBEVExTIDEu
MiAtIFJGQyA2NDM3IHNlY3Rpb24gNC4xCisgICcwMzA0JywgLy8gVExTIDEuMyAtIFJGQyA4NDQ2
IHNlY3Rpb24gNS4xCitdKTsKKworY29uc3QgYWNjZXB0YWJsZUR0bHNDaXBoZXJzdWl0ZXMgPSBu
ZXcgU2V0KFsKKyAgJ1RMU19FQ0RIRV9FQ0RTQV9XSVRIX0FFU18xMjhfR0NNX1NIQTI1NicsCitd
KTsKKworY29uc3QgYWNjZXB0YWJsZVNydHBDaXBoZXJzdWl0ZXMgPSBuZXcgU2V0KFsKKyAgJ1NS
VFBfQUVTMTI4X0NNX0hNQUNfU0hBMV84MCcsCisgICdBRVNfQ01fMTI4X0hNQUNfU0hBMV84MCcs
CitdKTsKKworY29uc3QgYWNjZXB0YWJsZVRsc0dyb3VwcyA9IG5ldyBTZXQoWworICAnUC0yNTYn
LAorXSk7CisKK2NvbnN0IGFjY2VwdGFibGVWYWx1ZXMgPSB7CisgICd0bHNWZXJzaW9uJzogYWNj
ZXB0YWJsZVRsc1ZlcnNpb25zLAorICAnZHRsc0NpcGhlcic6IGFjY2VwdGFibGVEdGxzQ2lwaGVy
c3VpdGVzLAorICAnc3J0cENpcGhlcic6IGFjY2VwdGFibGVTcnRwQ2lwaGVyc3VpdGVzLAorICAn
dGxzR3JvdXAnOiBhY2NlcHRhYmxlVGxzR3JvdXBzLAorfTsKKworZnVuY3Rpb24gdmVyaWZ5U3Rh
dChuYW1lLCB0cmFuc3BvcnRTdGF0cykgeworICBhc3NlcnRfdHJ1ZSh0eXBlb2YgdHJhbnNwb3J0
U3RhdHMgIT09ICd1bmRlZmluZWQnKTsKKyAgYXNzZXJ0X3RydWUobmFtZSBpbiB0cmFuc3BvcnRT
dGF0cywgJ1ZhbHVlIHByZXNlbnQ6Jyk7CisgIGFzc2VydF90cnVlKGFjY2VwdGFibGVWYWx1ZXNb
bmFtZV0uaGFzKHRyYW5zcG9ydFN0YXRzW25hbWVdKSk7Cit9CisKK2ZvciAoY29uc3QgbmFtZSBv
ZiBPYmplY3Qua2V5cyhhY2NlcHRhYmxlVmFsdWVzKSkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Cisg
ICAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdmb28nKTsKKyAgICBleGNoYW5nZUljZUNhbmRpZGF0
ZXMocGMxLCBwYzIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwor
ICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShwYzEuc2N0cC50cmFuc3BvcnQsICdjb25uZWN0ZWQnKTsK
KyAgICBjb25zdCBzdGF0c1JlcG9ydCA9IGF3YWl0IHBjMS5nZXRTdGF0cygpOworICAgIGNvbnN0
IHRyYW5zcG9ydFN0YXRzID0gZmluZFN0YXRzRnJvbVJlcG9ydChzdGF0c1JlcG9ydCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHMgPT4gc3RhdHMu
dHlwZSA9PT0gJ3RyYW5zcG9ydCcpCisgICAgdmVyaWZ5U3RhdChuYW1lLCB0cmFuc3BvcnRTdGF0
cyk7CisgIH0sIG5hbWUgKyAnIGlzIGFjY2VwdGFibGUgb24gZGF0YS1vbmx5Jyk7CisKKyAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOworICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMxLmFkZFRyYW5zY2VpdmVy
KCd2aWRlbycpOworCisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgICBh
d2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgICBhd2FpdCB3YWl0Rm9yU3Rh
dGUodHJhbnNjZWl2ZXIuc2VuZGVyLnRyYW5zcG9ydCwgJ2Nvbm5lY3RlZCcpOworICAgIGNvbnN0
IHN0YXRzUmVwb3J0ID0gYXdhaXQgcGMxLmdldFN0YXRzKCk7CisgICAgY29uc3QgdHJhbnNwb3J0
U3RhdHMgPSBmaW5kU3RhdHNGcm9tUmVwb3J0KHN0YXRzUmVwb3J0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0cyA9PiBzdGF0cy50eXBlID09PSAn
dHJhbnNwb3J0JykKKyAgICB2ZXJpZnlTdGF0KG5hbWUsIHRyYW5zcG9ydFN0YXRzKTsKKyAgfSwg
bmFtZSArICcgaXMgYWNjZXB0YWJsZSBvbiB2aWRlby1vbmx5Jyk7Cit9Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJpbnQtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNl
YmI3YWFjY2QyZmIwYTgzMWI5ZTMxOGNlMTIzMmQyNTViYzdlODcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9V
VCBDb25uZWN0aW9uIGZhaWxzIGlmIG9uZSBzaWRlIHByb3ZpZGVzIGEgd3JvbmcgRFRMUyBmaW5n
ZXJwcmludCBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLWZpbmdlcnByaW50
LXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJpbnQtdmFsaWRhdGlvbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBkZGM4NDg4YWU1NzIxM2M5YjU4MTA2MzM0MzdiY2EyN2U0ZWU5ZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24uaHRtbApAQCAtMCww
ICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+RFRMUyBm
aW5nZXJwcmludCB2YWxpZGF0aW9uPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlv
bi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCisvLyBU
ZXN0cyB0aGF0IGFuIGludmFsaWQgZmluZ2VycHJpbnQgbGVhZHMgdG8gYSBjb25uZWN0aW9uU3Rh
dGUgJ2ZhaWxlZCcuCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2RhdGFjaGFu
bmVsJyk7CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGNvbnN0IG9mZmVy
ID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbihvZmZlcik7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAg
Y29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzEuc2V0
UmVtb3RlRGVzY3JpcHRpb24obmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7CisgICAgdHlwZTog
YW5zd2VyLnR5cGUsCisgICAgc2RwOiBhbnN3ZXIuc2RwLnJlcGxhY2UoL2E9ZmluZ2VycHJpbnQ6
c2hhLTI1NiAuKi9nLAorICAgICAgJ2E9ZmluZ2VycHJpbnQ6c2hhLTI1NiAwMDowMDowMDowMDow
MDowMDowMDowMDowMDowMDowMDowMDowMDonICsKKyAgICAgICcwMDowMDowMDowMDowMDowMDow
MDowMDowMDowMDowMDowMDowMDowMDowMDowMDowMDowMDowMCcpLAorICB9KSk7CisgIGF3YWl0
IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgYXdhaXQgd2FpdEZvckNvbm5l
Y3Rpb25TdGF0ZUNoYW5nZShwYzEsIFsnZmFpbGVkJ10pOworICBhd2FpdCB3YWl0Rm9yQ29ubmVj
dGlvblN0YXRlQ2hhbmdlKHBjMiwgWydmYWlsZWQnXSk7Cit9LCAnQ29ubmVjdGlvbiBmYWlscyBp
ZiBvbmUgc2lkZSBwcm92aWRlcyBhIHdyb25nIERUTFMgZmluZ2VycHJpbnQnKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXN0YXRlLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL2ljZS1zdGF0ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNh
YjgzNmRlMmE0NjQyMmJiMWFmZTg3MDQzY2IwNzE0ZTI1NDBhMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL2ljZS1zdGF0ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1Mg
UEMgc2hvdWxkIGVudGVyIGNvbm5lY3RlZCAob3IgY29tcGxldGVkKSBzdGF0ZSB3aGVuIGNhbmRp
ZGF0ZXMgYXJlIHNlbnQgCitQQVNTIFBDIHNob3VsZCBnZW5lcmF0ZSBvZmZlciB3aXRoIGE9aWNl
LW9wdGlvbnM6dHJpY2tsZSAKK0ZBSUwgUEMgc2hvdWxkIGVudGVyIGRpc2Nvbm5lY3RlZCBzdGF0
ZSB3aGVuIGEgZmFpbGluZyBjYW5kaWRhdGUgaXMgc2VudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlVuZXhwZWN0ZWQgc3RhdGUgZW5jb3VudGVyZWQ6IGZh
aWxlZCIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXN0YXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2Utc3Rh
dGUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWNjZTU5NTA5Yjc5MmRkNWQ2MzU3MWJmZjA2NWQ5
MzE4NWNhMWZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXN0YXRlLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSwxMzAgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0
aW9uIEZhaWxlZCBTdGF0ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8vIFRlc3RzIGZv
ciBjb3JyZWN0IGJlaGF2aW9yIG9mIElDRSBzdGF0ZS4KKworLy8gU0RQIGNvcGllZCBmcm9tIEpT
RVAgRXhhbXBsZSA3LjEKKy8vIEl0IGNvbnRhaW5zIHR3byBtZWRpYSBzdHJlYW1zIHdpdGggZGlm
ZmVyZW50IHVmcmFncywgYW5kIGJ1bmRsZQorLy8gdHVybmVkIG9uLgorY29uc3Qga1NkcCA9IGB2
PTAKK289LSA0OTYyMzAzMzMzMTc5ODcxNzIyIDEgSU4gSVA0IDAuMC4wLjAKK3M9LQordD0wIDAK
K2E9aWNlLW9wdGlvbnM6dHJpY2tsZQorYT1ncm91cDpCVU5ETEUgYTEgdjEKK2E9Z3JvdXA6TFMg
YTEgdjEKK209YXVkaW8gMTAxMDAgVURQL1RMUy9SVFAvU0FWUEYgOTYgMCA4IDk3IDk4CitjPUlO
IElQNCAyMDMuMC4xMTMuMTAwCithPW1pZDphMQorYT1zZW5kcmVjdgorYT1ydHBtYXA6OTYgb3B1
cy80ODAwMC8yCithPXJ0cG1hcDowIFBDTVUvODAwMAorYT1ydHBtYXA6OCBQQ01BLzgwMDAKK2E9
cnRwbWFwOjk3IHRlbGVwaG9uZS1ldmVudC84MDAwCithPXJ0cG1hcDo5OCB0ZWxlcGhvbmUtZXZl
bnQvNDgwMDAKK2E9bWF4cHRpbWU6MTIwCithPWV4dG1hcDoxIHVybjppZXRmOnBhcmFtczpydHAt
aGRyZXh0OnNkZXM6bWlkCithPWV4dG1hcDoyIHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNz
cmMtYXVkaW8tbGV2ZWwKK2E9bXNpZDo0NzAxN2ZlZS1iNmMxLTQxNjItOTI5Yy1hMjUxMTAyNTI0
MDAgZjgzMDA2YzUtYTBmZi00ZTBhLTllZDktZDNlNjc0N2JlN2Q5CithPWljZS11ZnJhZzpFVEVu
CithPWljZS1wd2Q6T3RTSzBXcE50cFVqa1k0Kzg2anM3WlFsCithPWZpbmdlcnByaW50OnNoYS0y
NTYgMTk6RTI6MUM6M0I6NEI6OUY6ODE6RTY6Qjg6NUM6RjQ6QTU6QTg6RDg6NzM6MDQ6QkI6MDU6
MkY6NzA6OUY6MDQ6QTk6MEU6MDU6RTk6MjY6MzM6RTg6NzA6ODg6QTIKK2E9c2V0dXA6YWN0cGFz
cworYT1kdGxzLWlkOjEKK2E9cnRjcDoxMDEwMSBJTiBJUDQgMjAzLjAuMTEzLjEwMAorYT1ydGNw
LW11eAorYT1ydGNwLXJzaXplCittPXZpZGVvIDEwMTAyIFVEUC9UTFMvUlRQL1NBVlBGIDEwMCAx
MDEKK2M9SU4gSVA0IDIwMy4wLjExMy4xMDAKK2E9bWlkOnYxCithPXNlbmRyZWN2CithPXJ0cG1h
cDoxMDAgVlA4LzkwMDAwCithPXJ0cG1hcDoxMDEgcnR4LzkwMDAwCithPWZtdHA6MTAxIGFwdD0x
MDAKK2E9ZXh0bWFwOjEgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczptaWQKK2E9cnRj
cC1mYjoxMDAgY2NtIGZpcgorYT1ydGNwLWZiOjEwMCBuYWNrCithPXJ0Y3AtZmI6MTAwIG5hY2sg
cGxpCithPW1zaWQ6NDcwMTdmZWUtYjZjMS00MTYyLTkyOWMtYTI1MTEwMjUyNDAwIGYzMGJkYjRh
LTVkYjgtNDliNS1iY2RjLWUwYzlhMjMxNzJlMAorYT1pY2UtdWZyYWc6QkdLaworYT1pY2UtcHdk
Om1xeVdzQWp2dEt3VEdudmhQenRROW1JZgorYT1maW5nZXJwcmludDpzaGEtMjU2IDE5OkUyOjFD
OjNCOjRCOjlGOjgxOkU2OkI4OjVDOkY0OkE1OkE4OkQ4OjczOjA0OkJCOjA1OjJGOjcwOjlGOjA0
OkE5OjBFOjA1OkU5OjI2OjMzOkU4OjcwOjg4OkEyCithPXNldHVwOmFjdHBhc3MKK2E9ZHRscy1p
ZDoxCithPXJ0Y3A6MTAxMDMgSU4gSVA0IDIwMy4wLjExMy4xMDAKK2E9cnRjcC1tdXgKK2E9cnRj
cC1yc2l6ZQorYDsKKworLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHxw
Yy5pY2VDb25uZWN0aW9uU3RhdGV8IGlzIGluIG9uZSBvZiB0aGUKKy8vIHdhbnRlZCBzdGF0ZXMs
IGFuZCByZWplY3RzIGlmIGl0IGlzIGluIG9uZSBvZiB0aGUgdW53YW50ZWQgc3RhdGVzLgorLy8g
VGhpcyBpcyBhIHZhcmlhbnQgb2YgdGhlIGZ1bmN0aW9uIGluIFJUQ1BlZXJDb25uZWN0aW9uLWhl
bHBlci5qcy4KK2Z1bmN0aW9uIHdhaXRGb3JJY2VTdGF0ZUNoYW5nZShwYywgd2FudGVkU3RhdGVz
LCB1bndhbnRlZFN0YXRlcz1bXSkgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4geworICAgIGlmICh3YW50ZWRTdGF0ZXMuaW5jbHVkZXMocGMuaWNlQ29ubmVjdGlv
blN0YXRlKSkgeworICAgICAgcmVzb2x2ZSgpOworICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBp
ZiAodW53YW50ZWRTdGF0ZXMuaW5jbHVkZXMocGMuaWNlQ29ubmVjdGlvblN0YXRlKSkgeworICAg
ICAgcmVqZWN0KCdVbmV4cGVjdGVkIHN0YXRlIGVuY291bnRlcmVkOiAnICsgcGMuaWNlQ29ubmVj
dGlvblN0YXRlKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgcGMuYWRkRXZlbnRMaXN0ZW5l
cignaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgaWYgKHdhbnRlZFN0
YXRlcy5pbmNsdWRlcyhwYy5pY2VDb25uZWN0aW9uU3RhdGUpKSB7CisgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgIH0gZWxzZSBpZiAodW53YW50ZWRTdGF0ZXMuaW5jbHVkZXMocGMuaWNlQ29ubmVj
dGlvblN0YXRlKSkgeworICAgICAgICByZWplY3QoJ1VuZXhwZWN0ZWQgc3RhdGUgZW5jb3VudGVy
ZWQ6ICcgKyBwYy5pY2VDb25uZWN0aW9uU3RhdGUpOworICAgICAgfQorICAgIH0pOworICB9KTsK
K30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMi5jbG9zZSgpKTsKKyAgbGV0IFt0cmFjaywgc3RyZWFtc10gPSBhd2FpdCBnZXRUcmFja0Zy
b21Vc2VyTWVkaWEoJ3ZpZGVvJyk7CisgIGNvbnN0IHNlbmRlciA9IHBjMS5hZGRUcmFjayh0cmFj
ayk7CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhd2FpdCB3YWl0Rm9ySWNlU3RhdGVDaGFuZ2UocGMx
LCBbJ2Nvbm5lY3RlZCcsICdjb21wbGV0ZWQnXSk7Cit9LCAnUEMgc2hvdWxkIGVudGVyIGNvbm5l
Y3RlZCAob3IgY29tcGxldGVkKSBzdGF0ZSB3aGVuIGNhbmRpZGF0ZXMgYXJlIHNlbnQnKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGxldCBbdHJh
Y2ssIHN0cmVhbXNdID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCd2aWRlbycpOworICBj
b25zdCBzZW5kZXIgPSBwYzEuYWRkVHJhY2sodHJhY2spOworICBjb25zdCBvZmZlciA9IGF3YWl0
IHBjMS5jcmVhdGVPZmZlcigpOworICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9mZmVyLnNk
cC5zZWFyY2goJ2E9aWNlLW9wdGlvbnM6dHJpY2tsZScpLCAwKTsKK30sICdQQyBzaG91bGQgZ2Vu
ZXJhdGUgb2ZmZXIgd2l0aCBhPWljZS1vcHRpb25zOnRyaWNrbGUnKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVE
ZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwOiBrU2RwfSk7CisgIGNvbnN0IGFuc3dlciA9
IGF3YWl0IHBjMS5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChhbnN3ZXIuc2RwLnNlYXJj
aCgnYT1pY2Utb3B0aW9uczp0cmlja2xlJyksIDApOworICAvLyBXaGVuIHdlIHVzZSB0cmlja2xl
IElDRSwgYW5kIGRvbid0IHNpZ25hbCBlbmQtb2YtY2FuaWRkYXRlcywgd2UKKyAgLy8gZXhwZWN0
IGZhaWx1cmUgdG8gcmVzdWx0IGluICdkaXNjb25uZWN0ZWQnIHN0YXRlIHJhdGhlciB0aGFuICdm
YWlsZWQnLgorICBjb25zdCBzdGF0ZVdhaXRlciA9IHdhaXRGb3JJY2VTdGF0ZUNoYW5nZShwYzEs
IFsnZGlzY29ubmVjdGVkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsnZmFpbGVkJ10pOworICAvLyBBZGQgYSBib2d1cyBjYW5kaWRhdGUuIFRoZSBjYW5k
aWRhdGUgaXMgZHJhd24gZnJvbSB0aGUKKyAgLy8gSUFOQSAidGVzdC1uZXQtMyIgcG9vbCAoUkZD
NTczNyksIHNvIGlzIGd1YXJhbnRlZWQgbm90IHRvIHJlc3BvbmQuCisgIGNvbnN0IGNhbmRpZGF0
ZVN0cjEgPQorICAgICAgJ2NhbmRpZGF0ZToxIDEgdWRwIDIxMTM5Mjk0NzEgMjAzLjAuMTEzLjEw
MCAxMDEwMCB0eXAgaG9zdCc7CisgIGF3YWl0IHBjMS5hZGRJY2VDYW5kaWRhdGUoe2NhbmRpZGF0
ZTogY2FuZGlkYXRlU3RyMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2RwTWlkOiAn
YTEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VybmFtZUZyYWdtZW50OiAnRVRF
bid9KTsKKyAgYXdhaXQgc3RhdGVXYWl0ZXI7Cit9LCAnUEMgc2hvdWxkIGVudGVyIGRpc2Nvbm5l
Y3RlZCBzdGF0ZSB3aGVuIGEgZmFpbGluZyBjYW5kaWRhdGUgaXMgc2VudCcpOworCis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL2ljZS11ZnJhZ3B3ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2UtdWZy
YWdwd2QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGNlMzRjNWZmZjAzNDc4ZjM1ZDlkNzkw
YTAxMmM4MWRiMGJiNDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2UtdWZyYWdwd2QtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIHNldFJlbW90ZURlc2NyaXB0aW9uIHdpdGgg
YSBpY2UtdWZyYWcgY29udGFpbmluZyBhIG5vbi1pY2UtY2hhciBmYWlscyAKK1BBU1Mgc2V0UmVt
b3RlRGVzY3JpcHRpb24gd2l0aCBhIGljZS1wd2QgY29udGFpbmluZyBhIG5vbi1pY2UtY2hhciBm
YWlscyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXVmcmFncHdkLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2UtdWZyYWdw
d2QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZDE1MTI4NGNiYjcwNTkyZDcxYzY3ZGRmZDg5YzIzMGU3Mzdh
MjFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXVmcmFncHdkLmh0bWwKQEAgLTAsMCArMSw1
NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gRmFpbGVk
IFN0YXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLy8gVGVzdHMgZm9yIHZhbGlkYXRp
bmcgaWNlLXVmcmFnIGFuZCBpY2UtcHdkIHN5bnRheCBkZWZpbmVkIGluCisvLyBodHRwczovL3Rv
b2xzLmlldGYub3JnL2h0bWwvcmZjNTI0NSNzZWN0aW9uLTE1LjQKKy8vIEFscGhhbnVtZXJpYywg
JysnIGFuZCAnLycgYXJlIGFsbG93ZWQuCisKK2NvbnN0IHByZWFtYmxlID0gYHY9MAorbz0tIDAg
MyBJTiBJUDQgMTI3LjAuMC4xCitzPS0KK3Q9MCAwCithPWZpbmdlcnByaW50OnNoYS0yNTYgQTc6
MjQ6NzI6Q0E6NkU6MDI6NTU6Mzk6QkE6NjY6REY6NkU6Q0M6NEM6RDg6QjA6MUE6QkY6MUE6NTY6
NjU6N0Q6RjQ6MDM6QUQ6N0U6Nzc6NDM6MkE6Mjk6RUM6OTMKK209dmlkZW8gMSBSVFAvU0FWUEYg
MTAwCitjPUlOIElQNCAwLjAuMC4wCithPXJ0Y3AtbXV4CithPXNlbmRvbmx5CithPW1pZDp2aWRl
bworYT1ydHBtYXA6MTAwIFZQOC8zMAorYT1zZXR1cDphY3RwYXNzCitgOworY29uc3QgdmFsaWRf
dWZyYWcgPSAnYT1pY2UtdWZyYWc6RVRFblxyXG4nOworY29uc3QgdmFsaWRfcHdkID0gJ2E9aWNl
LXB3ZDpPdFNLMFdwTnRwVWprWTQrODZqczdaL2xcclxuJzsKK2NvbnN0IG5vdF9pY2VfY2hhciA9
ICckJzsgLy8gQSBzbm93bWFuIGVtb2ppIHdvdWxkIGJlIGNvb2wgYnV0IGlzIG5vdCBpbnRlcm9w
ZXJhYmxlLgorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisK
KyAgY29uc3Qgc2RwID0gcHJlYW1ibGUgKworICAgIHZhbGlkX3VmcmFnLnJlcGxhY2UoJ0VURW4n
LCAnRScgKyBub3RfaWNlX2NoYXIgKyAnRW4nKSArCisgICAgdmFsaWRfcHdkOworCisgIHJldHVy
biBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLAorICAgIHBjLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHB9KSk7Cit9LCAnc2V0UmVtb3Rl
RGVzY3JpcHRpb24gd2l0aCBhIGljZS11ZnJhZyBjb250YWluaW5nIGEgbm9uLWljZS1jaGFyIGZh
aWxzJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKwor
ICBjb25zdCBzZHAgPSBwcmVhbWJsZSArCisgICAgdmFsaWRfdWZyYWcgKworICAgIHZhbGlkX3B3
ZC5yZXBsYWNlKCdLMFdwJywgJ0snICsgbm90X2ljZV9jaGFyICsgJ1dwJyk7CisKKyAgcmV0dXJu
IHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsCisgICAgcGMuc2V0
UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcH0pKTsKK30sICdzZXRSZW1vdGVE
ZXNjcmlwdGlvbiB3aXRoIGEgaWNlLXB3ZCBjb250YWluaW5nIGEgbm9uLWljZS1jaGFyIGZhaWxz
Jyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2pzZXAtaW5pdGlhbC1vZmZlci5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvanNlcC1pbml0aWFsLW9mZmVyLmh0dHBzLmh0bWwKaW5kZXggODhiZGZjZmMyODY3
MzM1Y2E1M2MzMGY1NjM3YjM4YjNkMTJjNjRjYS4uNTA1MjdmODhkZmU4ZjNmMDI1Y2ZmZmFlOTFi
MzQ3ZmRjMjUyN2ExZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvanNlcC1pbml0aWFsLW9mZmVyLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvanNlcC1pbml0aWFsLW9mZmVyLmh0dHBzLmh0bWwKQEAgLTE2LDE5ICsxNiwy
NSBAQAogICAgIC8vIFRoZSBmaXJzdCAzIGxpbmVzIGFyZSBkaWN0YXRlZCBieSBKU0VQLgogICAg
IGFzc2VydF9lcXVhbHMob2ZmZXJfbGluZXNbMF0sICJ2PTAiKTsKICAgICBhc3NlcnRfZXF1YWxz
KG9mZmVyX2xpbmVzWzFdLnNsaWNlKDAsIDIpLCAibz0iKTsKLSAgICAvLyBKU0VQIHNheXMgdGhh
dCB0aGUgYWRkcmVzcyBwYXJ0IFNIT1VMRCBiZSBhIG1lYW5pbmdsZXNzIGFkZHJlc3MKLSAgICAv
LyAic3VjaCBhcyIgSU4gSVA0IDEyNy4wLjAuMS4gV2UgZG8gc3RyaWN0IG1hdGNoaW5nIGhlcmUg
aW4gb3JkZXIKLSAgICAvLyB0byBkZXRlY3QgaWYgYW55b25lIGV2ZXIgdXNlcyBzb21ldGhpbmcg
ZGlmZmVyZW50LgotICAgIGFzc2VydF9yZWdleHBfbWF0Y2gob2ZmZXJfbGluZXNbMV0sIC9ebz0t
IFxkKyBcZCsgSU4gSVA0IDEyNy4wLjAuMSQvKTsKLSAgICBjb25zdCBmaWVsZHMgPSBSZWdFeHAo
L15vPS0gKFxkKykgKFxkKykvKS5leGVjKG9mZmVyX2xpbmVzWzFdKTsKKworICAgIGFzc2VydF9y
ZWdleHBfbWF0Y2gob2ZmZXJfbGluZXNbMV0sIC9ebz1cUysgXGQrIFxkKyBJTiBJUDQgXFMrJC8p
OworICAgIGNvbnN0IGZpZWxkcyA9IFJlZ0V4cCgvXm89XFMrIChcZCspIChcZCspIElOIElQNCAo
XFMrKS8pLmV4ZWMob2ZmZXJfbGluZXNbMV0pOwogICAgIC8vIFBlciBSRkMgMzI2NCwgdGhlIHNl
c3MtaWQgc2hvdWxkIGJlIHJlcHJlc2VudGFibGUgaW4gYW4gdWludDY0CiAgICAgLy8gTm90ZTog
SlNFUCAtMjQgaGFzIHRoaXMgd3JvbmcgLSBzZWUgYnVnOgogICAgIC8vIGh0dHBzOi8vZ2l0aHVi
LmNvbS9ydGN3ZWItd2cvanNlcC9pc3N1ZXMvODU1CiAgICAgYXNzZXJ0X2xlc3NfdGhhbihOdW1i
ZXIoZmllbGRzWzFdKSwgMioqNjQpOwogICAgIC8vIFBlciBSRkMgMzI2NCwgdGhlIHZlcnNpb24g
c2hvdWxkIGJlIGxlc3MgdGhhbiAyXjYyIHRvIGF2b2lkIG92ZXJmbG93CiAgICAgYXNzZXJ0X2xl
c3NfdGhhbihOdW1iZXIoZmllbGRzWzJdKSwgMioqNjIpOwotICAgIC8vIE5vdGU6IHVzaW5nIC0g
aW4gcz0tIGlzIGEgU0hPVUxEIGluIEpTRVAsIG5vdCBhIE1VU1QuCi0gICAgYXNzZXJ0X2VxdWFs
cyhvZmZlcl9saW5lc1syXSwgInM9LSIpOworICAgIC8vIEpTRVAgc2F5cyB0aGF0IHRoZSBhZGRy
ZXNzIHBhcnQgU0hPVUxEIGJlIGEgbWVhbmluZ2xlc3MgYWRkcmVzcworICAgIC8vICJzdWNoIGFz
IiBJTiBJUDQgMC4wLjAuMC4gVGhpcyBpcyB0byBwcmV2ZW50IHVuaW50ZW50aW9uYWwgZGlzY2xv
c3VyZQorICAgIC8vIG9mIElQIGFkZHJlc3Nlcywgc28gdGhpcyBpcyBpbXBvcnRhbnQgZW5vdWdo
IHRvIHZlcmlmeS4gUmlnaHQgbm93IHdlCisgICAgLy8gYWxsb3cgMTI3LjAuMC4xIGFuZCAwLjAu
MC4wLCBidXQgdGhlcmUgYXJlIG90aGVyIHRoaW5ncyB3ZSBjb3VsZCBhbGxvdy4KKyAgICAvLyBN
YXliZSAwLjAuMC4wLzgsIDEyNy4wLjAuMC84LCAxOTIuMC4yLjAvMjQsIDE5OC41MS4xMDAuMC8y
NCwgMjAzLjAuMTEzLjAvMjQ/CisgICAgLy8gKFNlZSBSRkMgMzMzMCwgUkZDIDU3MzcpCisgICAg
YXNzZXJ0X3RydWUoZmllbGRzWzNdID09ICIwLjAuMC4wIiB8fCBmaWVsZHNbM10gPT0gIjEyNy4w
LjAuMSIsCisgICAgICBmaWVsZHNbM10gKyAiIG11c3QgYmUgYSBtZWFuaW5nbGVzcyBJUFY0IGFk
ZHJlc3MiKQorCisgICAgYXNzZXJ0X3JlZ2V4cF9tYXRjaChvZmZlcl9saW5lc1syXSwgL15zPVxT
KyQvKTsKICAgICAvLyBBZnRlciB0aGlzLCB0aGUgb3JkZXIgaXMgbm90IGRpY3RhdGVkIGJ5IEpT
RVAuCiAgICAgLy8gVE9ETzogQ2hlY2sgbGluZXMgc3Vic2VxdWVudCB0byB0aGUgcz0gbGluZS4K
ICAgfSwgJ09mZmVyIGNvbmZvcm1zIHRvIGJhc2ljIFNEUCByZXF1aXJlbWVudHMnKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL21zaWQtcGFyc2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL21zaWQtcGFyc2UuaHRtbAppbmRleCBlMGQz
ZWI3NmEzYTk4NDk3ZTFiY2ZlZDM2ZDJjZTBlNmQ0Y2IwZTc1Li45NjMwOTE5YjgwODYxYjY1NTli
YmY5MDMzOTc4OGM4MjZmNTgxNDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9tc2lkLXBhcnNlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvbXNpZC1wYXJzZS5odG1sCkBAIC0xNCwxMCArMTQsMTIgQEAgYT1maW5nZXJwcmludDpz
aGEtMjU2IEE3OjI0OjcyOkNBOjZFOjAyOjU1OjM5OkJBOjY2OkRGOjZFOkNDOjRDOkQ4OkIwOjFB
OkJGOjFBOjUKIGE9aWNlLXVmcmFnOjZISEhkenplSWhrRTBDS2oKIGE9aWNlLXB3ZDpYWURHVnBm
dmtsUUlFblo2WW55THNBZXcKIG09dmlkZW8gMSBSVFAvU0FWUEYgMTAwCitjPUlOIElQNCAwLjAu
MC4wCiBhPXJ0Y3AtbXV4CiBhPXNlbmRvbmx5CiBhPW1pZDp2aWRlbwogYT1ydHBtYXA6MTAwIFZQ
OC8zMAorYT1zZXR1cDphY3RwYXNzCiBgOwogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NjdHAtZm9ybWF0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3NjdHAtZm9ybWF0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NzViZjlmMDhmN2FjZGRiNjNjMmNlNzNhM2MyMmExYTJjNzhiODY0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvc2N0cC1mb3JtYXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEdl
bmVyYXRlZCBEYXRhY2hhbm5lbCBTRFAgdXNlcyBjb3JyZWN0IFNDVFAgb2ZmZXIgc3ludGF4IAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9zY3RwLWZvcm1hdC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2N0cC1mb3JtYXQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMDdlNTFkNGMzYWFhYWE4YmM3NDlmYjA2NzYwY2Q3ZGEyNmZkMGQ1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvc2N0cC1mb3JtYXQuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlcmNvbm5lY3Rp
b24gU0RQIFNDVFAgZm9ybWF0IHRlc3Q8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0
aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
Y2FsbGVlLmNsb3NlKCkpOworICBjYWxsZXIuY3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5uZWwnKTsK
KyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKyAgY29uc3QgW3By
ZWFtYmxlLCBtZWRpYV9zZWN0aW9uLCBwb3N0YW1ibGVdID0gb2ZmZXIuc2RwLnNwbGl0KCdcclxu
bT0nKTsKKyAgYXNzZXJ0X3RydWUodHlwZW9mKHBvc3RhbWJsZSkgPT09ICd1bmRlZmluZWQnKTsK
KyAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZWRpYV9zZWN0aW9uLnNlYXJjaCgKKyAgICAvXmFwcGxp
Y2F0aW9uIFxkKyBVRFBcL0RUTFNcL1NDVFAgd2VicnRjLWRhdGFjaGFubmVsXHJcbi8pLCAtMSk7
CisgIGFzc2VydF9ncmVhdGVyX3RoYW4obWVkaWFfc2VjdGlvbi5zZWFyY2goL1xyXG5hPXNjdHAt
cG9ydDpcZCtcclxuLyksIC0xKTsKKyAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZWRpYV9zZWN0aW9u
LnNlYXJjaCgvXHJcbmE9bWlkOi8pLCAtMSk7Cit9LCAnR2VuZXJhdGVkIERhdGFjaGFubmVsIFNE
UCB1c2VzIGNvcnJlY3QgU0NUUCBvZmZlciBzeW50YXgnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9zaW11bGNhc3QtYW5zd2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1hbnN3
ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNDY5MmQ4M2FlNmM3MGFjMTYzN2Q5ZWRkYjRm
MWNhZDRmNDA5MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zaW11bGNhc3QtYW5zd2VyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBjcmVhdGVBbnN3ZXIoKSB3aXRoIG11bHRp
cGxlIHNlbmQgZW5jb2RpbmdzIHNob3VsZCBjcmVhdGUgc2ltdWxjYXN0IGFuc3dlciAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvc2ltdWxjYXN0LWFuc3dlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2ltdWxjYXN0LWFuc3dlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg3YjE4YTEzMGJiZWIwMTQ2MWI5NGVlNjc4NmYxN2E4OTA4NWRkZTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zaW11bGNhc3QtYW5zd2VyLmh0bWwKQEAgLTAsMCArMSw2
MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1Bl
ZXJDb25uZWN0aW9uIFNpbXVsY2FzdCBBbnN3ZXI8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsK
KworLy8gVGVzdHMgZm9yIHRoZSBjb25zdHJ1Y3Rpb24gb2YgYW5zd2VycyB3aXRoIHNpbXVsY2Fz
dCBhY2NvcmRpbmcgdG86CisvLyBkcmFmdC1pZXRmLW1tdXNpYy1zZHAtc2ltdWxjYXN0LTEzCisv
LyBkcmFmdC1pZXRmLW1tdXNpYy1yaWQtMTUKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKyAgY29uc3QgZXhwZWN0ZWRfcmlkcyA9IFsnZm9vJywgJ2JhcicsICdi
YXonXTsKKworICBjb25zdCBvZmZlcl9zZHAgPSBgdj0wCitvPS0gMzg0MDIzMjQ2MjQ3MTU4Mzgy
NyAyIElOIElQNCAxMjcuMC4wLjEKK3M9LQordD0wIDAKK2E9Z3JvdXA6QlVORExFIDAKK2E9bXNp
ZC1zZW1hbnRpYzogV01TCittPXZpZGVvIDkgVURQL1RMUy9SVFAvU0FWUEYgOTYKK2M9SU4gSVA0
IDAuMC4wLjAKK2E9cnRjcDo5IElOIElQNCAwLjAuMC4wCithPWljZS11ZnJhZzpMaTYrCithPWlj
ZS1wd2Q6M0MwNUNUWkJSUVZtR0NBcTdoVmFzSGxUCithPWljZS1vcHRpb25zOnRyaWNrbGUKK2E9
ZmluZ2VycHJpbnQ6c2hhLTI1NiA1QjpEMzo4RTo2NjowRTo3RDpEMzpGMzo4RTpFNjo4MDoyODox
OTpGQzo1NTpBRDo1ODo1RDpCOTozRDpBODpERTo0NTo0QTpFNzo4NzowMjpGODozQzowQjozQjpC
MworYT1zZXR1cDphY3RwYXNzCithPW1pZDowCithPWV4dG1hcDo0IHVybjppZXRmOnBhcmFtczpy
dHAtaGRyZXh0OnNkZXM6cnRwLXN0cmVhbS1pZAorYT1yZWN2b25seQorYT1ydGNwLW11eAorYT1y
dHBtYXA6OTYgVlA4LzkwMDAwCithPXJ0Y3AtZmI6OTYgZ29vZy1yZW1iCithPXJ0Y3AtZmI6OTYg
dHJhbnNwb3J0LWNjCithPXJ0Y3AtZmI6OTYgY2NtIGZpcgorYT1yaWQ6Zm9vIHJlY3YKK2E9cmlk
OmJhciByZWN2CithPXJpZDpiYXogcmVjdgorYT1zaW11bGNhc3Q6cmVjdiBmb287YmFyO2Jhegor
YDsKKworICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2Rw
OiBvZmZlcl9zZHB9KTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMo
KVswXTsKKyAgLy8gVGhlIGNyZWF0ZWQgdHJhbnNjZWl2ZXIgc2hvdWxkIGJlIGluICJyZWN2b25s
eSIgc3RhdGUuIEFsbG93IGl0IHRvIHNlbmQuCisgIHRyYW5zY2VpdmVyLmRpcmVjdGlvbiA9ICJz
ZW5kb25seSI7CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpOworICBs
ZXQgYW5zd2VyX2xpbmVzID0gYW5zd2VyLnNkcC5zcGxpdCgnXHJcbicpOworICAvLyBDaGVjayBm
b3IgYSBSSUQgbGluZSBmb3IgZWFjaCBsYXllci4KKyAgZm9yIChjb25zdCByaWQgb2YgZXhwZWN0
ZWRfcmlkcykgeworICAgIGxldCByZXN1bHQgPSBhbnN3ZXJfbGluZXMuZmluZChsaW5lID0+IGxp
bmUuc3RhcnRzV2l0aChgYT1yaWQ6JHtyaWR9YCkpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKHJl
c3VsdCwgdW5kZWZpbmVkLCBgUklEIGF0dHJpYnV0ZSBmb3IgJyR7cmlkfScgbWlzc2luZy5gKTsK
KyAgfQorCisgIC8vIENoZWNrIGZvciBzaW11bGNhc3QgYXR0cmlidXRlIHdpdGggc2VuZCBkaXJl
Y3Rpb24gYW5kIGFsbCBSSURzLgorICBsZXQgcmVzdWx0ID0gYW5zd2VyX2xpbmVzLmZpbmQoCisg
ICAgICBsaW5lID0+IGxpbmUuc3RhcnRzV2l0aChgYT1zaW11bGNhc3Q6c2VuZCAke2V4cGVjdGVk
X3JpZHMuam9pbignOycpfWApKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMocmVzdWx0LCB1bmRlZmlu
ZWQsICJDb3VsZCBub3QgZmluZCBzaW11bGNhc3QgYXR0cmlidXRlLiIpOworfSwgJ2NyZWF0ZUFu
c3dlcigpIHdpdGggbXVsdGlwbGUgc2VuZCBlbmNvZGluZ3Mgc2hvdWxkIGNyZWF0ZSBzaW11bGNh
c3QgYW5zd2VyJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGUyZDgy
ZTJiOTBlZGI4MmFhMmQ3YWI5OTQ0MWUzZTVlMDlmYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
c3BsaXQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENvbm5lY3Qg
YXVkaW8gYW5kIHZpZGVvIHRvIHR3byBpbmRlcGVuZGVudCBQZWVyQ29ubmVjdGlvbnMgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjEwMjc3MWUyM2E1MzY4NDhmMDAyNDkxNjZlY2UxMDIxNzc2NmEzODAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBC
VU5ETEU8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3dlYnJ0Yy90aGlyZF9wYXJ0eS9zZHAvc2RwLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IGNhbGxlci5jbG9zZSgpKTsKKyAgY29uc3QgY2FsbGVlQXVkaW8gPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWVBdWRpby5jbG9z
ZSgpKTsKKyAgY29uc3QgY2FsbGVlVmlkZW8gID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlVmlkZW8uY2xvc2UoKSk7CisKKyAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+
IHRyYWNrLnN0b3AoKSkpOworICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiBj
YWxsZXIuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSkpOworCisgIGxldCBtZXRhZGF0YVRvQmVMb2Fk
ZWQ7CisgIGNhbGxlZVZpZGVvLm9udHJhY2sgPSAoZSkgPT4geworICAgIGNvbnN0IHN0cmVhbSA9
IGUuc3RyZWFtc1swXTsKKyAgICBjb25zdCB2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlk
ZW8nKTsKKyAgICB2LmF1dG9wbGF5ID0gdHJ1ZTsKKyAgICB2LnNyY09iamVjdCA9IHN0cmVhbTsK
KyAgICB2LmlkID0gc3RyZWFtLmlkCisgICAgbWV0YWRhdGFUb0JlTG9hZGVkID0gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsKKyAgICAgIHYuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRh
dGEnLCAoKSA9PiB7CisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9
OworCisgIGNhbGxlci5hZGRFdmVudExpc3RlbmVyKCdpY2VjYW5kaWRhdGUnLCAoZSkgPT4gewor
ICAgIC8vIHJvdXRlIGRlcGVuZGluZyBvbiBzZHBNbGluZUluZGV4CisgICAgaWYgKGUuY2FuZGlk
YXRlKSB7CisgICAgICBjb25zdCB0YXJnZXQgPSBlLmNhbmRpZGF0ZS5zZHBNTGluZUluZGV4ID09
PSAwID8gY2FsbGVlQXVkaW8gOiBjYWxsZWVWaWRlbzsKKyAgICAgIHRhcmdldC5hZGRJY2VDYW5k
aWRhdGUoe3NkcE1pZDogZS5jYW5kaWRhdGUuc2RwTWlkLCBjYW5kaWRhdGU6IGUuY2FuZGlkYXRl
LmNhbmRpZGF0ZX0pOworICAgIH0KKyAgfSk7CisgIGNhbGxlZUF1ZGlvLmFkZEV2ZW50TGlzdGVu
ZXIoJ2ljZWNhbmRpZGF0ZScsIChlKSA9PiB7CisgICAgaWYgKGUuY2FuZGlkYXRlKSB7CisgICAg
ICBjYWxsZXIuYWRkSWNlQ2FuZGlkYXRlKHtzZHBNaWQ6IGUuY2FuZGlkYXRlLnNkcE1pZCwgY2Fu
ZGlkYXRlOiBlLmNhbmRpZGF0ZS5jYW5kaWRhdGV9KTsKKyAgICB9CisgIH0pOworICBjYWxsZWVW
aWRlby5hZGRFdmVudExpc3RlbmVyKCdpY2VjYW5kaWRhdGUnLCAoZSkgPT4geworICAgIGlmIChl
LmNhbmRpZGF0ZSkgeworICAgICAgY2FsbGVyLmFkZEljZUNhbmRpZGF0ZSh7c2RwTWlkOiBlLmNh
bmRpZGF0ZS5zZHBNaWQsIGNhbmRpZGF0ZTogZS5jYW5kaWRhdGUuY2FuZGlkYXRlfSk7CisgICAg
fQorICB9KTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOwor
ICBjb25zdCBzZWN0aW9ucyA9IFNEUFV0aWxzLnNwbGl0U2VjdGlvbnMob2ZmZXIuc2RwKTsKKyAg
Ly8gcmVtb3ZlIHRoZSBhPWdyb3VwOkJVTkRMRSBmcm9tIHRoZSBTRFAgd2hlbiBzaWduYWxpbmcu
CisgIGNvbnN0IGJ1bmRsZSA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KHNlY3Rpb25zWzBdLCAnYT1n
cm91cDpCVU5ETEUnKVswXTsKKyAgc2VjdGlvbnNbMF0gPSBzZWN0aW9uc1swXS5yZXBsYWNlKGJ1
bmRsZSArICdcclxuJywgJycpOworCisgIGNvbnN0IGF1ZGlvU2RwID0gc2VjdGlvbnNbMF0gKyBz
ZWN0aW9uc1sxXTsKKyAgY29uc3QgdmlkZW9TZHAgPSBzZWN0aW9uc1swXSArIHNlY3Rpb25zWzJd
OworCisgIGF3YWl0IGNhbGxlZUF1ZGlvLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2Zm
ZXInLCBzZHA6IGF1ZGlvU2RwfSk7CisgIGF3YWl0IGNhbGxlZVZpZGVvLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHA6IHZpZGVvU2RwfSk7CisgIGF3YWl0IGNhbGxlci5z
ZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKworICBjb25zdCBhbnN3ZXJBdWRpbyA9IGF3YWl0
IGNhbGxlZUF1ZGlvLmNyZWF0ZUFuc3dlcigpOworICBjb25zdCBhbnN3ZXJWaWRlbyA9IGF3YWl0
IGNhbGxlZVZpZGVvLmNyZWF0ZUFuc3dlcigpOworICBjb25zdCBhdWRpb1NlY3Rpb25zID0gU0RQ
VXRpbHMuc3BsaXRTZWN0aW9ucyhhbnN3ZXJBdWRpby5zZHApOworICBjb25zdCB2aWRlb1NlY3Rp
b25zID0gU0RQVXRpbHMuc3BsaXRTZWN0aW9ucyhhbnN3ZXJWaWRlby5zZHApOworICBjb25zdCBz
ZHAgPSBhdWRpb1NlY3Rpb25zWzBdICsgYXVkaW9TZWN0aW9uc1sxXSArIHZpZGVvU2VjdGlvbnNb
MV07CisgIGF3YWl0IGNhbGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ2Fuc3dlcics
IHNkcH0pOworICBhd2FpdCBjYWxsZWVBdWRpby5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlckF1
ZGlvKTsKKyAgYXdhaXQgY2FsbGVlVmlkZW8uc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXJWaWRl
byk7CisKKyAgYXdhaXQgbWV0YWRhdGFUb0JlTG9hZGVkOworICBhc3NlcnRfZXF1YWxzKGNhbGxl
ZUF1ZGlvLmNvbm5lY3Rpb25TdGF0ZSwgJ2Nvbm5lY3RlZCcpOworICBhc3NlcnRfZXF1YWxzKGNh
bGxlZVZpZGVvLmNvbm5lY3Rpb25TdGF0ZSwgJ2Nvbm5lY3RlZCcpOworfSwgJ0Nvbm5lY3QgYXVk
aW8gYW5kIHZpZGVvIHRvIHR3byBpbmRlcGVuZGVudCBQZWVyQ29ubmVjdGlvbnMnKTsKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvdmlkZW8tY29kZWNzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92aWRlby1j
b2RlY3MuaHR0cHMuaHRtbAppbmRleCBlNzI4ZWZmYmViOTRkZTg2NWRmOWY4ODYwY2Q0NWM4ZGUx
ZjYwMWMxLi5hNDkwNWFlNDQxYTkxMjc5Nzc4OGQ2ZDBiMDY1YTZjODYxZDcwOGI4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC92aWRlby1jb2RlY3MuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92aWRlby1jb2RlY3MuaHR0
cHMuaHRtbApAQCAtNTAsNyArNTAsNyBAQCBhc3luYyBmdW5jdGlvbiBuZWdvdGlhdGVQYXJhbWV0
ZXJzKCkgewogICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgbGV0IFt0
cmFjaywgc3RyZWFtc10gPSBhd2FpdCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ3ZpZGVvJyk7CiAg
IGNvbnN0IHNlbmRlciA9IHBjMS5hZGRUcmFjayh0cmFjayk7Ci0gIGF3YWl0IGRvU2lnbmFsaW5n
SGFuZHNoYWtlKHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBj
Mik7CiAgIHJldHVybiBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3czYy1pbXBvcnQubG9nCmluZGV4IGIzMjQyNjcxNzRmMGYy
MDcxZTg4OTY4NTI0Y2RhMTFjMjFiYzVlMzguLmY5NGQ3OWE1NDdlNmM1ZGMwZDM1ZmFhMjY1NzU5
NTk2ZWYwYWU2OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3czYy1p
bXBvcnQubG9nCkBAIC0xNSw4ICsxNSwxNyBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qg
b2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvUkVBRE1FLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2J1bmRsZS5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2Fu
ZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL2R0bHMtZmluZ2VycHJpbnQtdmFsaWRhdGlvbi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXN0YXRlLmh0dHBz
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9pY2UtdWZyYWdwd2QuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2pzZXAtaW5pdGlhbC1vZmZlci5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvbWlzc2luZy1maWVsZHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL21zaWQtcGFyc2UuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L3NjdHAtZm9ybWF0Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zaW11bGNhc3QtYW5zd2VyLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zaW11bGNh
c3Qtb2ZmZXIuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92aWRlby1jb2RlY3MuaHR0
cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcmVjZWl2ZXItdHJhY2stbGl2ZS5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9yZWNlaXZl
ci10cmFjay1saXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWE2YmNiOWQzZGUy
ZjU4ZWM2NjUwNzA1NDgzNjQxYzI4M2Y0MzI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcmVjZWl2ZXItdHJhY2st
bGl2ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKKworUEFTUyBTZXR1cCBh
dWRpbyBjYWxsIAorRkFJTCBJbmFjdGl2YXRlIHRoZSBhdWRpbyB0cmFuc2NlaXZlciBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAibGl2ZSIgYnV0IGdvdCAiZW5kZWQiCitGQUlMIFJlYWN0aXZhdGUg
dGhlIGF1ZGlvIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJsaXZlIiBidXQg
Z290ICJlbmRlZCIKK1BBU1MgQ2xlYW4tdXAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3JlY2VpdmVyLXRyYWNrLWxpdmUu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3JlY2VpdmVyLXRyYWNrLWxpdmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDQxNzI0
ZmI1OTAxNTA2NTc1OWEwNzJhMmUxNmM4MjU4YTU2ZjJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcmVjZWl2ZXIt
dHJhY2stbGl2ZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJl
bW90ZSB0cmFja3Mgc2hvdWxkIG5vdCBnZXQgZW5kZWQgZXhjZXB0IGZvciBzdG9wL2Nsb3NlPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvIGlkPSJ2aWRlbyIgY29udHJvbHMg
YXV0b3BsYXkgcGxheXNpbmxpbmU+PC92aWRlbz4KKyAgICA8c2NyaXB0PgorICAgIGxldCBwYzEs
IHBjMjsKKyAgICBsZXQgbG9jYWxUcmFjaywgcmVtb3RlVHJhY2s7CisgICAgcHJvbWlzZV90ZXN0
KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgICAgIGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CisgICAgICAg
IGxvY2FsVHJhY2sgPSBsb2NhbFN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOworCisgICAgICAg
IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAgICBwYzEuYWRkVHJhY2sobG9j
YWxUcmFjaywgbG9jYWxTdHJlYW0pOworICAgICAgICBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKworICAgICAgICBsZXQgdHJhY2tQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7CisgICAgICAgICAgICBwYzIub250cmFjayA9IGUgPT4gcmVzb2x2ZShlLnRyYWNrKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAg
ICAgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisKKyAgICAgICAgcmVt
b3RlVHJhY2sgPSBhd2FpdCB0cmFja1Byb21pc2U7CisgICAgICAgIHZpZGVvLnNyY09iamVjdCA9
IG5ldyBNZWRpYVN0cmVhbShbcmVtb3RlVHJhY2tdKTsKKyAgICAgICAgYXdhaXQgdmlkZW8ucGxh
eSgpOworICAgIH0sICJTZXR1cCBhdWRpbyBjYWxsIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKKyAgICAgICAgcGMxLmdldFRyYW5zY2VpdmVycygpWzBdLmRpcmVjdGlv
biA9ICJpbmFjdGl2ZSI7CisKKyAgICAgICAgbGV0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9m
ZmVyKCk7CisgICAgICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKwor
ICAgICAgICAvLyBMZXQncyByZW1vdmUgc3NyYyBsaW5lcworICAgICAgICBsZXQgc2RwTGluZXMg
PSBvZmZlci5zZHAuc3BsaXQoIlxyXG4iKTsKKyAgICAgICAgb2ZmZXIuc2RwID0gc2RwTGluZXMu
ZmlsdGVyKGxpbmUgPT4gbGluZSAmJiAhbGluZS5zdGFydHNXaXRoKCJhPXNzcmMiKSkuam9pbigi
XHJcbiIpICsgIlxyXG4iOworCisgICAgICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihvZmZlcik7CisgICAgICAgIGxldCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7
CisgICAgICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgICAgICAg
IGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworCisgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVtb3RlVHJhY2sucmVhZHlTdGF0ZSwgImxpdmUiKTsKKyAgICB9LCAiSW5hY3Rp
dmF0ZSB0aGUgYXVkaW8gdHJhbnNjZWl2ZXIiKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgICAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uZGlyZWN0aW9uID0g
InNlbmRvbmx5IjsKKworICAgICAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMy
KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZVRyYWNrLnJlYWR5U3RhdGUsICJsaXZl
Iik7CisgICAgfSwgIlJlYWN0aXZhdGUgdGhlIGF1ZGlvIHRyYW5zY2VpdmVyIik7CisKKyAgICBw
cm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAgcGMxLmNsb3NlKCk7CisgICAg
ICAgIHBjMi5jbG9zZSgpOworICAgICAgICBsb2NhbFRyYWNrLnN0b3AoKTsKKyAgICB9LCAiQ2xl
YW4tdXAiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJj
b25uZWN0aW9uL2NhblRyaWNrbGVJY2VDYW5kaWRhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0
aW9uL2NhblRyaWNrbGVJY2VDYW5kaWRhdGVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjJiNzU5ZjMwYTIyNWNmYzQ5NGNhMjJhYjE2ZmM4OGY2ZDdkZTkxOC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlv
bi9jYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw1ICswLDAgQEAKLQotRkFJTCBjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyBwcm9wZXJ0eSBpcyBu
dWxsIHByaW9yIHRvIHNldFJlbW90ZURlc2NyaXB0aW9uIGFzc2VydF9lcXVhbHM6IGNhblRyaWNr
bGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5IGlzIG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBi
dXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBjYW5Ucmlja2xlSWNlQ2FuZGlkYXRl
cyBwcm9wZXJ0eSBpcyB0cnVlIGFmdGVyIHNldFJlbW90ZURlc2NyaXB0aW9uIHdpdGggYT1pY2Ut
b3B0aW9uczp0cmlja2xlIGFzc2VydF90cnVlOiBjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyBwcm9w
ZXJ0eSBpcyB0cnVlIGFmdGVyIHNldFJlbW90ZURlc2NyaXB0aW9uIGV4cGVjdGVkIHRydWUgZ290
IHVuZGVmaW5lZAotRkFJTCBjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyBwcm9wZXJ0eSBpcyBmYWxz
ZSBhZnRlciBzZXRSZW1vdGVEZXNjcmlwdGlvbiB3aXRob3V0IGE9aWNlLW9wdGlvbnM6dHJpY2ts
ZSBhc3NlcnRfZmFsc2U6IGNhblRyaWNrbGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5IGlzIGZhbHNl
IGFmdGVyIHNldFJlbW90ZURlc2NyaXB0aW9uIGV4cGVjdGVkIGZhbHNlIGdvdCB1bmRlZmluZWQK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3Bl
ZXJjb25uZWN0aW9uL2NhblRyaWNrbGVJY2VDYW5kaWRhdGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGFiNTU5MDAwNWQyNmZhNzkxZDA3ZjEwYjQ3Y2IyNmZhNDQxNTY0NjQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rp
b24vY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICsw
LDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgotICA8
dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMgdGVzdHM8L3Rp
dGxlPgotPC9oZWFkPgotPGJvZHk+Ci0gIDwhLS0gIFRoZXNlIGZpbGVzIGFyZSBpbiBwbGFjZSB3
aGVuIGV4ZWN1dGluZyBvbiBXM0MuICAtLT4KLSAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLSAgLy8gdGVzdHMgc3VwcG9ydCBmb3IgUlRDUGVlckNvbm5lY3Rpb24uY2FuVHJpY2tsZUlj
ZUNhbmRpZGF0ZXM6Ci0gIC8vIGh0dHA6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jZG9tLXJ0
Y3BlZXJjb25uZWN0aW9uLWNhbnRyaWNrbGVpY2VjYW5kaWRhdGVzCi0gIGNvbnN0IHNkcCA9ICd2
PTBcclxuJyArCi0gICAgICAnbz0tIDE2Njg1NTE3NjUxNDUyMTk2NCAyIElOIElQNCAxMjcuMC4w
LjFcclxuJyArCi0gICAgICAncz0tXHJcbicgKwotICAgICAgJ3Q9MCAwXHJcbicgKwotICAgICAg
J2E9aWNlLW9wdGlvbnM6dHJpY2tsZVxyXG4nICsKLSAgICAgICdtPWF1ZGlvIDkgVURQL1RMUy9S
VFAvU0FWUEYgMTExXHJcbicgKwotICAgICAgJ2M9SU4gSVA0IDAuMC4wLjBcclxuJyArCi0gICAg
ICAnYT1ydGNwOjkgSU4gSVA0IDAuMC4wLjBcclxuJyArCi0gICAgICAnYT1pY2UtdWZyYWc6c29t
ZXVmcmFnXHJcbicgKwotICAgICAgJ2E9aWNlLXB3ZDpzb21lbG9uZ3B3ZHdpdGhlbm91Z2hyYW5k
b21uZXNzXHJcbicgKwotICAgICAgJ2E9ZmluZ2VycHJpbnQ6c2hhLTI1NiA4Qzo3MTpCMzo4RDpB
NTozODpGRDo4RjpBNDoyRTpBMjo2NTo2Qzo4Njo1MjpCQzpFMDo2RTo5NDpGMjo5Rjo3Qzo0RDpC
NTpERjpBRjpBQTo2Rjo0NDo5MDo4RDpGNFxyXG4nICsKLSAgICAgICdhPXNldHVwOmFjdHBhc3Nc
clxuJyArCi0gICAgICAnYT1ydGNwLW11eFxyXG4nICsKLSAgICAgICdhPW1pZDptaWQxXHJcbicg
KwotICAgICAgJ2E9c2VuZG9ubHlcclxuJyArCi0gICAgICAnYT1tc2lkOnN0cmVhbTEgdHJhY2sx
XHJcbicgKwotICAgICAgJ2E9c3NyYzoxMDAxIGNuYW1lOnNvbWVcclxuJyArCi0gICAgICAnYT1y
dHBtYXA6MTExIG9wdXMvNDgwMDAvMlxyXG4nOwotCi0gIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAg
dmFyIHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhwYy5j
YW5Ucmlja2xlSWNlQ2FuZGlkYXRlcywgbnVsbCwgJ2NhblRyaWNrbGVJY2VDYW5kaWRhdGVzIHBy
b3BlcnR5IGlzIG51bGwnKTsKLSAgfSwgJ2NhblRyaWNrbGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5
IGlzIG51bGwgcHJpb3IgdG8gc2V0UmVtb3RlRGVzY3JpcHRpb24nKTsKLQotICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0K
LSAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24obmV3IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbih7dHlwZTogJ29mZmVyJywgc2RwOiBzZHB9KSkKLSAgICAudGhlbihmdW5jdGlvbigpIHsK
LSAgICAgIGFzc2VydF90cnVlKHBjLmNhblRyaWNrbGVJY2VDYW5kaWRhdGVzLCAnY2FuVHJpY2ts
ZUljZUNhbmRpZGF0ZXMgcHJvcGVydHkgaXMgdHJ1ZSBhZnRlciBzZXRSZW1vdGVEZXNjcmlwdGlv
bicpOwotICAgIH0pCi0gIH0sICdjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyBwcm9wZXJ0eSBpcyB0
cnVlIGFmdGVyIHNldFJlbW90ZURlc2NyaXB0aW9uIHdpdGggYT1pY2Utb3B0aW9uczp0cmlja2xl
Jyk7Ci0KLSAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgewotICAgIHZhciBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOwotCi0gICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG5l
dyBSVENTZXNzaW9uRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcDogc2RwLnJlcGxhY2Uo
J2E9aWNlLW9wdGlvbnM6dHJpY2tsZVxyXG4nLCAnJyl9KSkKLSAgICAudGhlbihmdW5jdGlvbigp
IHsKLSAgICAgIGFzc2VydF9mYWxzZShwYy5jYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcywgJ2NhblRy
aWNrbGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5IGlzIGZhbHNlIGFmdGVyIHNldFJlbW90ZURlc2Ny
aXB0aW9uJyk7Ci0gICAgfSkKLSAgfSwgJ2NhblRyaWNrbGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5
IGlzIGZhbHNlIGFmdGVyIHNldFJlbW90ZURlc2NyaXB0aW9uIHdpdGhvdXQgYT1pY2Utb3B0aW9u
czp0cmlja2xlJyk7Ci08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVl
cmNvbm5lY3Rpb24vaWNlR2F0aGVyaW5nU3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24v
aWNlR2F0aGVyaW5nU3RhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjMzQyYmVkMTBmZDNjN2Q0NDFmMTI1MjQzZjRjN2MwOTI1NWVjMjNmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL2ljZUdhdGhl
cmluZ1N0YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi1I
YXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElNRU9VVCBUZXN0cyB0
aGF0IHRoZSBJQ0UgZ2F0aGVyaW5nIHN0YXRlIGVuZHMgdXAgYXMgImNvbXBsZXRlZCIgYWZ0ZXIg
YXBwbHlpbmcgYSBsb2NhbCBvZmZlci4gVGVzdCB0aW1lZCBvdXQKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNv
bm5lY3Rpb24vaWNlR2F0aGVyaW5nU3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL2ljZUdhdGhlcmlu
Z1N0YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlNzJiMDRlMjE1MzVm
YWE4YzM1NGNhZjhjNzU5NzIwYjdkNGE0MzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vaWNlR2F0aGVyaW5nU3RhdGUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLSAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiPgotICA8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gSUNFR2F0aGVyaW5n
U3RhdGUgdGVzdHM8L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci0gIDwhLS0gIFRoZXNlIGZpbGVz
IGFyZSBpbiBwbGFjZSB3aGVuIGV4ZWN1dGluZyBvbiBXM0MuICAtLT4KLSAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgdmFy
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOwotCi0gICAgcGMub25pY2VnYXRoZXJp
bmdzdGF0ZWNoYW5nZSA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICBp
ZiAocGMuaWNlR2F0aGVyaW5nU3RhdGUgPT09ICdjb21wbGV0ZScpIHsKLSAgICAgICAgdGVzdC5k
b25lKCk7Ci0gICAgICB9Ci0gICAgfSk7Ci0gICAgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNl
aXZlQXVkaW86IDF9KQotICAgIC50aGVuKG9mZmVyID0+IHBjLnNldExvY2FsRGVzY3JpcHRpb24o
b2ZmZXIpKQotICAgIC5jYXRjaCh0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Ci0gICAgICBh
c3NlcnRfdW5yZWFjaGVkKCdFcnJvciAnICsgZS5uYW1lICsgJzogJyArIGUubWVzc2FnZSk7Ci0g
ICAgfSkpOwotICB9LCAnVGVzdHMgdGhhdCB0aGUgSUNFIGdhdGhlcmluZyBzdGF0ZSBlbmRzIHVw
IGFzICJjb21wbGV0ZWQiIGFmdGVyIGFwcGx5aW5nIGEgbG9jYWwgb2ZmZXIuJyk7Ci08L3Njcmlw
dD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vcnRjY29uZmln
dXJhdGlvbi1pY2VjYW5kaWRhdGVwb29sc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9y
dGNjb25maWd1cmF0aW9uLWljZWNhbmRpZGF0ZXBvb2xzaXplLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDY3MzljMjdjYTc4MDY0NTMyZTgxNmM0NmJiZWY0MmVj
NjljZThhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVy
Y29ubmVjdGlvbi9ydGNjb25maWd1cmF0aW9uLWljZWNhbmRpZGF0ZXBvb2xzaXplLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotCi1QQVNTIFNldHRpbmcgaWNlQ2Fu
ZGlkYXRlUG9vbFNpemUgdG8gYSB2YWxpZCB2YWx1ZTogMTAgCi1QQVNTIFNldHRpbmcgaWNlQ2Fu
ZGlkYXRlUG9vbFNpemUgdG8gYSB2YWxpZCB2YWx1ZTogMCAKLVBBU1MgU2V0dGluZyBpY2VDYW5k
aWRhdGVQb29sU2l6ZSB0byBhIHZhbGlkIHZhbHVlOiBudWxsIAotUEFTUyBTZXR0aW5nIGljZUNh
bmRpZGF0ZVBvb2xTaXplIHRvIGEgdmFsaWQgdmFsdWU6IHVuZGVmaW5lZCAKLVBBU1MgU2V0dGlu
ZyBpY2VDYW5kaWRhdGVQb29sU2l6ZSB0byBhbiBpbnZhbGlkIHZhbHVlOiAtMSAKLVBBU1MgU2V0
dGluZyBpY2VDYW5kaWRhdGVQb29sU2l6ZSB0byBhbiBpbnZhbGlkIHZhbHVlOiAxMDAwIAotUEFT
UyBTZXR0aW5nIGljZUNhbmRpZGF0ZVBvb2xTaXplIHRvIGFuIGludmFsaWQgdmFsdWU6IHN0cmlu
ZyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vcnRjY29uZmlndXJhdGlvbi1pY2VjYW5kaWRh
dGVwb29sc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vcnRjY29uZmlndXJhdGlvbi1pY2VjYW5kaWRh
dGVwb29sc2l6ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDA4NjYxNzRm
MTY3Mjk4OGIyMzQwNjFhOTIyZGFlOGU3ZWU3ODlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y2NvbmZpZ3VyYXRpb24taWNlY2Fu
ZGlkYXRlcG9vbHNpemUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTwhZG9j
dHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5UaGlzIHRlc3QgY2hlY2tzIHRoYXQg
UlRDQ29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSBpcyBzZXQ8L3RpdGxlPgotPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdFZhbGlkUG9vbFNpemUoc2l6ZSwgZXhwZWN0
ZWRTaXplKQotewotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbih7aWNlQ2FuZGlkYXRlUG9vbFNpemU6IHNpemV9KQotICAgICAgICBh
c3NlcnRfZXF1YWxzKHBjLmdldENvbmZpZ3VyYXRpb24oKS5pY2VDYW5kaWRhdGVQb29sU2l6ZSwg
ZXhwZWN0ZWRTaXplICE9PSB1bmRlZmluZWQgPyBleHBlY3RlZFNpemUgOiBzaXplKQotICAgIH0s
ICJTZXR0aW5nIGljZUNhbmRpZGF0ZVBvb2xTaXplIHRvIGEgdmFsaWQgdmFsdWU6ICIgKyBzaXpl
KQotfQotCi1mdW5jdGlvbiB0ZXN0SW52YWxpZFBvb2xTaXplKHNpemUpCi17Ci0gICAgdGVzdChm
dW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+
IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7aWNlQ2FuZGlkYXRlUG9vbFNpemU6IHNpemV9KSkKLSAg
ICB9LCAiU2V0dGluZyBpY2VDYW5kaWRhdGVQb29sU2l6ZSB0byBhbiBpbnZhbGlkIHZhbHVlOiAi
ICsgc2l6ZSkKLX0KLQotdGVzdFZhbGlkUG9vbFNpemUoMTApCi10ZXN0VmFsaWRQb29sU2l6ZSgw
KQotdGVzdFZhbGlkUG9vbFNpemUobnVsbCwgMCkKLXRlc3RWYWxpZFBvb2xTaXplKHVuZGVmaW5l
ZCwgMCkKLQotdGVzdEludmFsaWRQb29sU2l6ZSgtMSkKLXRlc3RJbnZhbGlkUG9vbFNpemUoMTAw
MCkKLXRlc3RJbnZhbGlkUG9vbFNpemUoInN0cmluZyIpCi08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWNvbnN0cnVj
dG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWNvbnN0cnVj
dG9yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRlMTVjZjIx
NzU4ZTY2ZTEyYjFkZWQwYjUyNjU4MjdmYjIzN2Q2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9ydGNwZWVyY29ubmVjdGlvbi1jb25z
dHJ1Y3Rvci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi0KLVBB
U1MgUlRDUGVlckNvbm5lY3Rpb24ubGVuZ3RoIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpIAotUEFTUyBuZXcgUlRDUGVlckNv
bm5lY3Rpb24odW5kZWZpbmVkKSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHt9KSAKLVBB
U1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogbnVsbCB9KSAKLVBBU1MgbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogdW5kZWZpbmVkIH0pIAotUEFTUyBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbXSB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKHsgaWNlU2VydmVyczogW3t9XSB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKHsgaWNlU2VydmVyczogW251bGxdIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
eyBpY2VTZXJ2ZXJzOiBbdW5kZWZpbmVkXSB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KHsgaWNlU2VydmVyczogW3sgdXJsczogInN0dW46c3R1bjEuZXhhbXBsZS5uZXQiIH1dIH0pIAot
UEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbXSB9XSB9
KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogW3sgdXJsczogWyJz
dHVuOnN0dW4xLmV4YW1wbGUubmV0Il0gfV0gfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlv
bih7IGljZVNlcnZlcnM6IFt7IHVybHM6IFsic3R1bjpzdHVuMS5leGFtcGxlLm5ldCIsICJzdHVu
OnN0dW4yLmV4YW1wbGUubmV0Il0gfV0gfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7
IGljZVNlcnZlcnM6IFt7IHVybHM6ICJ0dXJuczp0dXJuLmV4YW1wbGUub3JnIiwgdXNlcm5hbWU6
ICJ1c2VyIiwgY3JlZGVudGlhbDogImNyZWQiIH1dIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAidHVybjp0dXJuLmV4YW1wbGUubmV0IiwgdXNl
cm5hbWU6ICJ1c2VyIiwgY3JlZGVudGlhbDogImNyZWQiIH1dIH0pIAotRkFJTCBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAidHVybnM6dHVybi5leGFtcGxlLm9y
ZyIsIHVzZXJuYW1lOiAiIiwgY3JlZGVudGlhbDogIiIgfV0gfSkgQmFkIENvbmZpZ3VyYXRpb24g
UGFyYW1ldGVycwotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1
cmxzOiAidHVybjp0dXJuLmV4YW1wbGUubmV0IiwgdXNlcm5hbWU6ICIiLCBjcmVkZW50aWFsOiAi
IiB9XSB9KSBCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzCi1QQVNTIG5ldyBSVENQZWVyQ29u
bmVjdGlvbih7IGljZVNlcnZlcnM6IFt7IHVybHM6IFsidHVybnM6dHVybi5leGFtcGxlLm9yZyIs
ICJ0dXJuOnR1cm4uZXhhbXBsZS5uZXQiXSwgdXNlcm5hbWU6ICJ1c2VyIiwgY3JlZGVudGlhbDog
ImNyZWQiIH1dIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBb
eyB1cmxzOiAic3R1bjpzdHVuMS5leGFtcGxlLm5ldCIsIGNyZWRlbnRpYWxUeXBlOiAicGFzc3dv
cmQiIH1dIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1
cmxzOiAic3R1bjpzdHVuMS5leGFtcGxlLm5ldCIsIGNyZWRlbnRpYWxUeXBlOiAidG9rZW4iIH1d
IH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAi
dHVybjp0dXJuLmV4YW1wbGUubmV0IiB9XSB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KHsgaWNlU2VydmVyczogW3sgdXJsczogInR1cm46dHVybi5leGFtcGxlLm5ldCIsIHVzZXJuYW1l
OiAidXNlciIgfV0gfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6
IFt7IHVybHM6ICJ0dXJuOnR1cm4uZXhhbXBsZS5uZXQiLCBjcmVkZW50aWFsOiAiY3JlZCIgfV0g
fSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJ0
dXJuczp0dXJuLmV4YW1wbGUub3JnIiB9XSB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KHsgaWNlU2VydmVyczogW3sgdXJsczogInR1cm5zOnR1cm4uZXhhbXBsZS5vcmciLCB1c2VybmFt
ZTogInVzZXIiIH1dIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJz
OiBbeyB1cmxzOiAidHVybnM6dHVybi5leGFtcGxlLm9yZyIsIGNyZWRlbnRpYWw6ICJjcmVkIiB9
XSB9KSAKLUZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogW3sgdXJsczog
InJlbGF0aXZlLXVybCIgfV0gfSkgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKLSAgICAgICAgZXZhbChleHByKTsKLSAgICAgIH0iIHRocmV3IG9iamVjdCAiTm90U3VwcG9y
dGVkRXJyb3I6IElDRSBzZXJ2ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgdGhhdCBpcyBub3Qg
YSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byA5
LCBleHBlY3RlZCAxMgotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBb
eyB1cmxzOiAiaHR0cDovL2V4YW1wbGUuY29tIiB9XSB9KSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewotICAgICAgICBldmFsKGV4cHIpOwotICAgICAgfSIgdGhyZXcgb2Jq
ZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVk
IiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUi
IGlzIGVxdWFsIHRvIDksIGV4cGVjdGVkIDEyCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7
IGljZVNlcnZlcnM6IFt7IHVybHM6IFtdLCBjcmVkZW50aWFsVHlwZTogInBhc3N3b3JkIiB9XSB9
KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogW3sgdXJsczogW10s
IGNyZWRlbnRpYWxUeXBlOiAidG9rZW4iIH1dIH0pIAotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oeyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbXSwgY3JlZGVudGlhbFR5cGU6ICJpbnZhbGlkIiB9
XSB9KSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgICAgICBldmFs
KGV4cHIpOwotICAgICAgfSIgZGlkIG5vdCB0aHJvdwotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oeyBpY2VTZXJ2ZXJzOiBbeyB1cmw6ICJzdHVuOnN0dW4xLmV4YW1wbGUubmV0IiB9XSB9KSAK
LVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlVHJhbnNwb3J0UG9saWN5OiBudWxsIH0p
IAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VUcmFuc3BvcnRQb2xpY3k6IHVuZGVm
aW5lZCB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlVHJhbnNwb3J0UG9saWN5
OiAicmVsYXkiIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VUcmFuc3BvcnRQ
b2xpY3k6ICJhbGwiIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VUcmFuc3Bv
cnRQb2xpY3k6ICJpbnZhbGlkIiB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNl
VHJhbnNwb3J0UG9saWN5OiAibm9uZSIgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7
IGljZVRyYW5zcG9ydHM6ICJpbnZhbGlkIiB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KHsgaWNlVHJhbnNwb3J0czogIm5vbmUiIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
eyBidW5kbGVQb2xpY3k6IG51bGwgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGJ1
bmRsZVBvbGljeTogdW5kZWZpbmVkIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBi
dW5kbGVQb2xpY3k6ICJiYWxhbmNlZCIgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7
IGJ1bmRsZVBvbGljeTogIm1heC1jb21wYXQiIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oeyBidW5kbGVQb2xpY3k6ICJtYXgtYnVuZGxlIiB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKHsgYnVuZGxlUG9saWN5OiAiaW52YWxpZCIgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29u
bmVjdGlvbih7IHJ0Y3BNdXhQb2xpY3k6IG51bGwgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVj
dGlvbih7IHJ0Y3BNdXhQb2xpY3k6IHVuZGVmaW5lZCB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKHsgcnRjcE11eFBvbGljeTogIm5lZ290aWF0ZSIgfSkgCi1QQVNTIG5ldyBSVENQZWVy
Q29ubmVjdGlvbih7IHJ0Y3BNdXhQb2xpY3k6ICJyZXF1aXJlIiB9KSAKLVBBU1MgbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKHsgcnRjcE11eFBvbGljeTogImludmFsaWQiIH0pIAotRkFJTCBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oeyBwZWVySWRlbnRpdHk6IHRvU3RyaW5nVGhyb3dzIH0pIGFzc2VydF90
aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGV2YWwoZXhwcik7Ci0gICAg
ICB9IiBkaWQgbm90IHRocm93Ci1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGNlcnRpZmlj
YXRlczogbnVsbCB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgY2VydGlmaWNhdGVz
OiB1bmRlZmluZWQgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGNlcnRpZmljYXRl
czogW10gfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGNlcnRpZmljYXRlczogW251
bGxdIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBjZXJ0aWZpY2F0ZXM6IFt1bmRl
ZmluZWRdIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VDYW5kaWRhdGVQb29s
U2l6ZTogdG9OdW1iZXJUaHJvd3MgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGNl
cnRpZmljYXRlczogW2NlcnRpZmljYXRlXSB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KHsgY2VydGlmaWNhdGVzOiBbZXhwaXJlZENlcnRpZmljYXRlXSB9KSAKLVBBU1MgbG9jYWxEZXNj
cmlwdGlvbiBpbml0aWFsIHZhbHVlIAotUEFTUyBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbiBpbml0
aWFsIHZhbHVlIAotUEFTUyBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBpbml0aWFsIHZhbHVlIAot
UEFTUyByZW1vdGVEZXNjcmlwdGlvbiBpbml0aWFsIHZhbHVlIAotUEFTUyBjdXJyZW50UmVtb3Rl
RGVzY3JpcHRpb24gaW5pdGlhbCB2YWx1ZSAKLVBBU1MgcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9u
IGluaXRpYWwgdmFsdWUgCi1QQVNTIHNpZ25hbGluZ1N0YXRlIGluaXRpYWwgdmFsdWUgCi1QQVNT
IGljZUdhdGhlcmluZ1N0YXRlIGluaXRpYWwgdmFsdWUgCi1QQVNTIGljZUNvbm5lY3Rpb25TdGF0
ZSBpbml0aWFsIHZhbHVlIAotUEFTUyBjb25uZWN0aW9uU3RhdGUgaW5pdGlhbCB2YWx1ZSAKLUZB
SUwgY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMgaW5pdGlhbCB2YWx1ZSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWNvbnN0cnVjdG9yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNw
ZWVyY29ubmVjdGlvbi9ydGNwZWVyY29ubmVjdGlvbi1jb25zdHJ1Y3Rvci5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTM1MmFjODRmMzNkNWU2YTU0NmMzNThkNmE2NDA3OTAx
OGQ5YjliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJj
b25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWNvbnN0cnVjdG9yLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxNTYgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04
PgotPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIGNvbnN0cnVjdG9yPC90aXRsZT4KLTxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdD4KLXRlc3QoZnVu
Y3Rpb24oKSB7Ci0gIGFzc2VydF9lcXVhbHMoUlRDUGVlckNvbm5lY3Rpb24ubGVuZ3RoLCAwKTsK
LX0sICdSVENQZWVyQ29ubmVjdGlvbi5sZW5ndGgnKTsKLQotLy8gVGhlc2UgYXJlIHVzZWQgZm9y
IHN0cmluZyBhbmQgbnVtYmVyIGRpY3Rpb25hcnkgbWVtYmVycyB0byBzZWUgaWYgdGhleSBhcmUK
LS8vIGJlaW5nIGFjY2Vzc2VkIGF0IGFsbC4KLWNvbnN0IHRvU3RyaW5nVGhyb3dzID0geyB0b1N0
cmluZzogZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcjsgfSB9OwotY29uc3QgdG9OdW1iZXJU
aHJvd3MgPSBTeW1ib2woKTsKLQotLy8gVGVzdCB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGNv
bnN0cnVjdG9yLiBUaGUga2V5IGlzIHRoZSBhcmd1bWVudCBpdHNlbGYsCi0vLyBhbmQgdGhlIHZh
bHVlIGlzIHRoZSBmaXJzdCBhcmd1bWVudCBmb3IgYXNzZXJ0X3Rocm93cywgb3IgZmFsc2UgaWYg
bm8KLS8vIGV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duLgotY29uc3QgdGVzdEFyZ3MgPSB7Ci0g
IC8vIE5vIGFyZ3VtZW50IG9yIGVxdWl2YWxlbnQuCi0gICcnOiBmYWxzZSwKLSAgJ251bGwnOiBm
YWxzZSwKLSAgJ3VuZGVmaW5lZCc6IGZhbHNlLAotICAne30nOiBmYWxzZSwKLQotICAvLyBpY2VT
ZXJ2ZXJzCi0gICd7IGljZVNlcnZlcnM6IG51bGwgfSc6IG5ldyBUeXBlRXJyb3IsCi0gICd7IGlj
ZVNlcnZlcnM6IHVuZGVmaW5lZCB9JzogZmFsc2UsCi0gICd7IGljZVNlcnZlcnM6IFtdIH0nOiBm
YWxzZSwKLSAgJ3sgaWNlU2VydmVyczogW3t9XSB9JzogbmV3IFR5cGVFcnJvciwKLSAgJ3sgaWNl
U2VydmVyczogW251bGxdIH0nOiBuZXcgVHlwZUVycm9yLAotICAneyBpY2VTZXJ2ZXJzOiBbdW5k
ZWZpbmVkXSB9JzogbmV3IFR5cGVFcnJvciwKLSAgJ3sgaWNlU2VydmVyczogW3sgdXJsczogInN0
dW46c3R1bjEuZXhhbXBsZS5uZXQiIH1dIH0nOiBmYWxzZSwKLSAgJ3sgaWNlU2VydmVyczogW3sg
dXJsczogW10gfV0gfSc6IGZhbHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbInN0dW46
c3R1bjEuZXhhbXBsZS5uZXQiXSB9XSB9JzogZmFsc2UsCi0gICd7IGljZVNlcnZlcnM6IFt7IHVy
bHM6IFsic3R1bjpzdHVuMS5leGFtcGxlLm5ldCIsICJzdHVuOnN0dW4yLmV4YW1wbGUubmV0Il0g
fV0gfSc6IGZhbHNlLAotICAvLyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgcmVxdWlyZWQgZm9yIHR1
cm46IGFuZCB0dXJuczoKLSAgJ3sgaWNlU2VydmVyczogW3sgdXJsczogInR1cm5zOnR1cm4uZXhh
bXBsZS5vcmciLCB1c2VybmFtZTogInVzZXIiLCBjcmVkZW50aWFsOiAiY3JlZCIgfV0gfSc6IGZh
bHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAidHVybjp0dXJuLmV4YW1wbGUubmV0Iiwg
dXNlcm5hbWU6ICJ1c2VyIiwgY3JlZGVudGlhbDogImNyZWQiIH1dIH0nOiBmYWxzZSwKLSAgJ3sg
aWNlU2VydmVyczogW3sgdXJsczogInR1cm5zOnR1cm4uZXhhbXBsZS5vcmciLCB1c2VybmFtZTog
IiIsIGNyZWRlbnRpYWw6ICIiIH1dIH0nOiBmYWxzZSwKLSAgJ3sgaWNlU2VydmVyczogW3sgdXJs
czogInR1cm46dHVybi5leGFtcGxlLm5ldCIsIHVzZXJuYW1lOiAiIiwgY3JlZGVudGlhbDogIiIg
fV0gfSc6IGZhbHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbInR1cm5zOnR1cm4uZXhh
bXBsZS5vcmciLCAidHVybjp0dXJuLmV4YW1wbGUubmV0Il0sIHVzZXJuYW1lOiAidXNlciIsIGNy
ZWRlbnRpYWw6ICJjcmVkIiB9XSB9JzogZmFsc2UsCi0gICd7IGljZVNlcnZlcnM6IFt7IHVybHM6
ICJzdHVuOnN0dW4xLmV4YW1wbGUubmV0IiwgY3JlZGVudGlhbFR5cGU6ICJwYXNzd29yZCIgfV0g
fSc6IGZhbHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAic3R1bjpzdHVuMS5leGFtcGxl
Lm5ldCIsIGNyZWRlbnRpYWxUeXBlOiAidG9rZW4iIH1dIH0nOiBmYWxzZSwKLSAgJ3sgaWNlU2Vy
dmVyczogW3sgdXJsczogInR1cm46dHVybi5leGFtcGxlLm5ldCIgfV0gfSc6ICdJbnZhbGlkQWNj
ZXNzRXJyb3InLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAidHVybjp0dXJuLmV4YW1wbGUu
bmV0IiwgdXNlcm5hbWU6ICJ1c2VyIiB9XSB9JzogJ0ludmFsaWRBY2Nlc3NFcnJvcicsCi0gICd7
IGljZVNlcnZlcnM6IFt7IHVybHM6ICJ0dXJuOnR1cm4uZXhhbXBsZS5uZXQiLCBjcmVkZW50aWFs
OiAiY3JlZCIgfV0gfSc6ICdJbnZhbGlkQWNjZXNzRXJyb3InLAotICAneyBpY2VTZXJ2ZXJzOiBb
eyB1cmxzOiAidHVybnM6dHVybi5leGFtcGxlLm9yZyIgfV0gfSc6ICdJbnZhbGlkQWNjZXNzRXJy
b3InLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAidHVybnM6dHVybi5leGFtcGxlLm9yZyIs
IHVzZXJuYW1lOiAidXNlciIgfV0gfSc6ICdJbnZhbGlkQWNjZXNzRXJyb3InLAotICAneyBpY2VT
ZXJ2ZXJzOiBbeyB1cmxzOiAidHVybnM6dHVybi5leGFtcGxlLm9yZyIsIGNyZWRlbnRpYWw6ICJj
cmVkIiB9XSB9JzogJ0ludmFsaWRBY2Nlc3NFcnJvcicsCi0gICd7IGljZVNlcnZlcnM6IFt7IHVy
bHM6ICJyZWxhdGl2ZS11cmwiIH1dIH0nOiAnU3ludGF4RXJyb3InLAotICAneyBpY2VTZXJ2ZXJz
OiBbeyB1cmxzOiAiaHR0cDovL2V4YW1wbGUuY29tIiB9XSB9JzogJ1N5bnRheEVycm9yJywKLSAg
Ly8gY3JlZGVudGlhbFR5cGUKLSAgJ3sgaWNlU2VydmVyczogW3sgdXJsczogW10gfV0gfSc6IGZh
bHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbXSwgY3JlZGVudGlhbFR5cGU6ICJwYXNz
d29yZCIgfV0gfSc6IGZhbHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbXSwgY3JlZGVu
dGlhbFR5cGU6ICJ0b2tlbiIgfV0gfSc6IGZhbHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxz
OiBbXSwgY3JlZGVudGlhbFR5cGU6ICJpbnZhbGlkIiB9XSB9JzogbmV3IFR5cGVFcnJvciwKLSAg
Ly8gQmxpbmsgYW5kIEdlY2tvIGZhbGwgYmFjayB0byB1cmwsIGJ1dCBpdCdzIG5vdCBpbiB0aGUg
c3BlYy4KLSAgJ3sgaWNlU2VydmVyczogW3sgdXJsOiAic3R1bjpzdHVuMS5leGFtcGxlLm5ldCIg
fV0gfSc6IG5ldyBUeXBlRXJyb3IsCi0KLSAgLy8gaWNlVHJhbnNwb3J0UG9saWN5Ci0gICd7IGlj
ZVRyYW5zcG9ydFBvbGljeTogbnVsbCB9JzogbmV3IFR5cGVFcnJvciwKLSAgJ3sgaWNlVHJhbnNw
b3J0UG9saWN5OiB1bmRlZmluZWQgfSc6IGZhbHNlLAotICAneyBpY2VUcmFuc3BvcnRQb2xpY3k6
ICJyZWxheSIgfSc6IGZhbHNlLAotICAneyBpY2VUcmFuc3BvcnRQb2xpY3k6ICJhbGwiIH0nOiBm
YWxzZSwKLSAgJ3sgaWNlVHJhbnNwb3J0UG9saWN5OiAiaW52YWxpZCIgfSc6IG5ldyBUeXBlRXJy
b3IsCi0gIC8vICJub25lIiBpcyBpbiBCbGluayBhbmQgR2Vja28ncyBJREwsIGJ1dCBub3QgaW4g
dGhlIHNwZWMuCi0gICd7IGljZVRyYW5zcG9ydFBvbGljeTogIm5vbmUiIH0nOiBuZXcgVHlwZUVy
cm9yLAotICAvLyBpY2VUcmFuc3BvcnRQb2xpY3kgaXMgY2FsbGVkIGljZVRyYW5zcG9ydHMgaW4g
QmxpbmsuCi0gICd7IGljZVRyYW5zcG9ydHM6ICJpbnZhbGlkIiB9JzogZmFsc2UsCi0gICd7IGlj
ZVRyYW5zcG9ydHM6ICJub25lIiB9JzogZmFsc2UsCi0KLSAgLy8gYnVuZGxlUG9saWN5Ci0gICd7
IGJ1bmRsZVBvbGljeTogbnVsbCB9JzogbmV3IFR5cGVFcnJvciwKLSAgJ3sgYnVuZGxlUG9saWN5
OiB1bmRlZmluZWQgfSc6IGZhbHNlLAotICAneyBidW5kbGVQb2xpY3k6ICJiYWxhbmNlZCIgfSc6
IGZhbHNlLAotICAneyBidW5kbGVQb2xpY3k6ICJtYXgtY29tcGF0IiB9JzogZmFsc2UsCi0gICd7
IGJ1bmRsZVBvbGljeTogIm1heC1idW5kbGUiIH0nOiBmYWxzZSwKLSAgJ3sgYnVuZGxlUG9saWN5
OiAiaW52YWxpZCIgfSc6IG5ldyBUeXBlRXJyb3IsCi0KLSAgLy8gcnRjcE11eFBvbGljeQotICAn
eyBydGNwTXV4UG9saWN5OiBudWxsIH0nOiBuZXcgVHlwZUVycm9yLAotICAneyBydGNwTXV4UG9s
aWN5OiB1bmRlZmluZWQgfSc6IGZhbHNlLAotICAneyBydGNwTXV4UG9saWN5OiAibmVnb3RpYXRl
IiB9JzogZmFsc2UsCi0gICd7IHJ0Y3BNdXhQb2xpY3k6ICJyZXF1aXJlIiB9JzogZmFsc2UsCi0g
ICd7IHJ0Y3BNdXhQb2xpY3k6ICJpbnZhbGlkIiB9JzogbmV3IFR5cGVFcnJvciwKLQotICAvLyBw
ZWVySWRlbnRpdHkKLSAgJ3sgcGVlcklkZW50aXR5OiB0b1N0cmluZ1Rocm93cyB9JzogbmV3IEVy
cm9yLAotCi0gIC8vIGNlcnRpZmljYXRlcwotICAneyBjZXJ0aWZpY2F0ZXM6IG51bGwgfSc6IG5l
dyBUeXBlRXJyb3IsCi0gICd7IGNlcnRpZmljYXRlczogdW5kZWZpbmVkIH0nOiBmYWxzZSwKLSAg
J3sgY2VydGlmaWNhdGVzOiBbXSB9JzogZmFsc2UsCi0gICd7IGNlcnRpZmljYXRlczogW251bGxd
IH0nOiBuZXcgVHlwZUVycm9yLAotICAneyBjZXJ0aWZpY2F0ZXM6IFt1bmRlZmluZWRdIH0nOiBu
ZXcgVHlwZUVycm9yLAotCi0gIC8vIGljZUNhbmRpZGF0ZVBvb2xTaXplCi0gICd7IGljZUNhbmRp
ZGF0ZVBvb2xTaXplOiB0b051bWJlclRocm93cyB9JzogbmV3IFR5cGVFcnJvciwKLX0KLQotZm9y
IChjb25zdCBhcmcgaW4gdGVzdEFyZ3MpIHsKLSAgY29uc3QgZXhwciA9ICduZXcgUlRDUGVlckNv
bm5lY3Rpb24oJyArIGFyZyArICcpJzsKLSAgdGVzdChmdW5jdGlvbigpIHsKLSAgICBjb25zdCB0
aHJvd3MgPSB0ZXN0QXJnc1thcmddOwotICAgIGlmICh0aHJvd3MpIHsKLSAgICAgIGFzc2VydF90
aHJvd3ModGhyb3dzLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZXZhbChleHByKTsKLSAgICAgIH0p
OwotICAgIH0gZWxzZSB7Ci0gICAgICBldmFsKGV4cHIpOwotICAgIH0KLSAgfSwgZXhwcik7Ci19
Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbigpIHsKLSAgcmV0dXJuIFJUQ1BlZXJDb25uZWN0aW9u
LmdlbmVyYXRlQ2VydGlmaWNhdGUoeyBuYW1lOiAiRUNEU0EiLCBuYW1lZEN1cnZlOiAiUC0yNTYi
IH0pCi0gICAgICAudGhlbihjZXJ0aWZpY2F0ZSA9PiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBj
ZXJ0aWZpY2F0ZXM6IFtjZXJ0aWZpY2F0ZV0gfSkpOwotfSwgJ25ldyBSVENQZWVyQ29ubmVjdGlv
bih7IGNlcnRpZmljYXRlczogW2NlcnRpZmljYXRlXSB9KScpOwotCi1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24oKSB7Ci0gIHJldHVybiBSVENQZWVyQ29ubmVjdGlvbi5nZW5lcmF0ZUNlcnRpZmljYXRl
KHsgbmFtZTogIkVDRFNBIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiwgZXhwaXJlczogMCB9KQotICAg
ICAgLnRoZW4oY2VydGlmaWNhdGUgPT4gewotICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFs
KGNlcnRpZmljYXRlLmV4cGlyZXMsIERhdGUubm93KCkpOwotICAgICAgICBhc3NlcnRfdGhyb3dz
KCdJbnZhbGlkQWNjZXNzRXJyb3InLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oeyBjZXJ0aWZpY2F0ZXM6IFtjZXJ0aWZpY2F0ZV0gfSk7Ci0gICAgICAgIH0p
OwotICAgICAgfSk7Ci19LCAnbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgY2VydGlmaWNhdGVzOiBb
ZXhwaXJlZENlcnRpZmljYXRlXSB9KScpOwotCi0vLyBUaGUgaW5pdGlhbCB2YWx1ZXMgb2YgYXR0
cmlidXRlcyBvZiBSVENQZWVyQ29ubmVjdGlvbi4KLWNvbnN0IGluaXRpYWxTdGF0ZSA9IHsKLSAg
J2xvY2FsRGVzY3JpcHRpb24nOiBudWxsLAotICAnY3VycmVudExvY2FsRGVzY3JpcHRpb24nOiBu
dWxsLAotICAncGVuZGluZ0xvY2FsRGVzY3JpcHRpb24nOiBudWxsLAotICAncmVtb3RlRGVzY3Jp
cHRpb24nOiBudWxsLAotICAnY3VycmVudFJlbW90ZURlc2NyaXB0aW9uJzogbnVsbCwKLSAgJ3Bl
bmRpbmdSZW1vdGVEZXNjcmlwdGlvbic6IG51bGwsCi0gICdzaWduYWxpbmdTdGF0ZSc6ICdzdGFi
bGUnLAotICAnaWNlR2F0aGVyaW5nU3RhdGUnOiAnbmV3JywKLSAgJ2ljZUNvbm5lY3Rpb25TdGF0
ZSc6ICduZXcnLAotICAnY29ubmVjdGlvblN0YXRlJzogJ25ldycsCi0gICdjYW5Ucmlja2xlSWNl
Q2FuZGlkYXRlcyc6IG51bGwsCi0gIC8vIFRPRE86IGRlZmF1bHRJY2VTZXJ2ZXJzCi19OwotCi1m
b3IgKGNvbnN0IGF0dHIgaW4gaW5pdGlhbFN0YXRlKSB7Ci0gIHRlc3QoZnVuY3Rpb24oKSB7Ci0g
ICAgLy8gVXNlIG9uZSBSVENQZWVyQ29ubmVjdGlvbiBpbnN0YW5jZSBmb3IgYWxsIGluaXRpYWwg
dmFsdWUgdGVzdHMuCi0gICAgaWYgKCF3aW5kb3cucGMpIHsKLSAgICAgIHdpbmRvdy5wYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbjsKLSAgICB9Ci0gICAgYXNzZXJ0X2VxdWFscyhwY1thdHRyXSwg
aW5pdGlhbFN0YXRlW2F0dHJdKTsKLSAgfSwgYXR0ciArICcgaW5pdGlhbCB2YWx1ZScpOwotfQot
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9ydGNwZWVyY29ubmVjdGlvbi1pZGwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vcnRjcGVlcmNvbm5lY3Rpb24taWRsLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDc3OWQ5NDA4YThkNmE2YjgwZmE4
ZGY1ZmU3NmMxMTdhMWEzNDJkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9ydGNwZWVyY29ubmVjdGlvbi1pZGwtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLURlc2NyaXB0aW9uCi0KLVRoaXMgdGVz
dCB2ZXJpZmllcyB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2UuCi0KLQotUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbjogb3Jp
Z2luYWwgaW50ZXJmYWNlIGRlZmluZWQgCi1QQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJUQ1BlZXJD
b25uZWN0aW9uWzJdOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1MgUGFydGlhbCBp
bnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb25bM106IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVk
IAotUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbls0XTogb3JpZ2luYWwg
aW50ZXJmYWNlIGRlZmluZWQgCi1QQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0
aW9uWzVdOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgUlRDUGVlckNvbm5lY3Rpb25bNl06IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAotUEFT
UyBQYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbls3XTogb3JpZ2luYWwgaW50ZXJm
YWNlIGRlZmluZWQgCi1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZSBvYmplY3QgbGVuZ3RoIAotUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUg
Ci1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAotUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
ICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCi1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1
bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLVBBU1MgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1QQVNTIFJUQ1BlZXJDb25uZWN0
aW9uIGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHBy
b3BlcnR5IAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjcmVh
dGVPZmZlcihSVENPZmZlck9wdGlvbnMpIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBjcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucykgCi1QQVNTIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHNldExvY2FsRGVzY3JpcHRpb24oUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uKSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgbG9jYWxEZXNjcmlwdGlvbiAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgY3VycmVudExvY2FsRGVzY3JpcHRpb24gCi1QQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHBlbmRpbmdMb2NhbERlc2NyaXB0aW9uIAotUEFT
UyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRSZW1vdGVEZXNjcmlw
dGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24pIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSByZW1vdGVEZXNjcmlwdGlvbiAKLVBBU1MgUlRDUGVlckNvbm5lY3Rp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIAotUEFTUyBS
VENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwZW5kaW5nUmVtb3RlRGVzY3Jp
cHRpb24gCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGFkZElj
ZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUpIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBzaWduYWxpbmdTdGF0ZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24g
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgaWNlR2F0aGVyaW5nU3RhdGUgCi1QQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGljZUNvbm5lY3Rpb25TdGF0ZSAKLUZBSUwgUlRD
UGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2FuVHJpY2tsZUljZUNhbmRpZGF0
ZXMgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5
ICJjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLVBBU1Mg
UlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q29uZmlndXJhdGlvbigp
IAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRDb25maWd1
cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24pIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBjbG9zZSgpIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBvbm5lZ290aWF0aW9ubmVlZGVkIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmljZWNhbmRpZGF0ZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zaWduYWxpbmdzdGF0ZWNoYW5nZSAKLVBBU1MgUlRD
UGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25pY2Vjb25uZWN0aW9uc3RhdGVj
aGFuZ2UgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uaWNl
Z2F0aGVyaW5nc3RhdGVjaGFuZ2UgCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTog
b3BlcmF0aW9uIGNyZWF0ZU9mZmVyKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLCBSVENQ
ZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2ssIFJUQ09mZmVyT3B0aW9ucykgYXNzZXJ0X3Rocm93
czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cgVHlwZUVy
cm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBmbi5hcHBseShvYmosIGFy
Z3MpOwotICAgICAgICB9IiBkaWQgbm90IHRocm93Ci1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogb3BlcmF0aW9uIHNldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uLCBWb2lkRnVuY3Rpb24sIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaykgYXNzZXJ0
X3Rocm93czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cg
VHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBmbi5hcHBseShv
YmosIGFyZ3MpOwotICAgICAgICB9IiBkaWQgbm90IHRocm93Ci1GQUlMIFJUQ1BlZXJDb25uZWN0
aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZUFuc3dlcihSVENTZXNzaW9uRGVzY3JpcHRp
b25DYWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSBhc3NlcnRfdGhyb3dz
OiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJy
b3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJn
cyk7Ci0gICAgICAgIH0iIGRpZCBub3QgdGhyb3cKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50
ZXJmYWNlOiBvcGVyYXRpb24gc2V0UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uLCBWb2lkRnVuY3Rpb24sIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaykgYXNzZXJ0
X3Rocm93czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cg
VHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBmbi5hcHBseShv
YmosIGFyZ3MpOwotICAgICAgICB9IiBkaWQgbm90IHRocm93Ci1GQUlMIFJUQ1BlZXJDb25uZWN0
aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUs
IFZvaWRGdW5jdGlvbiwgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSBhc3NlcnRfdGhy
b3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBl
RXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwg
YXJncyk7Ci0gICAgICAgIH0iIGRpZCBub3QgdGhyb3cKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24g
aW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3RhdHMoTWVkaWFTdHJlYW1UcmFjaywgUlRDU3RhdHND
YWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSBhc3NlcnRfdGhyb3dzOiBj
YWxsaW5nIG9wZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3Ig
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7
Ci0gICAgICAgIH0iIGRpZCBub3QgdGhyb3cKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBvcGVyYXRpb24gZ2VuZXJhdGVDZXJ0aWZpY2F0ZShBbGdvcml0aG1JZGVudGlmaWVyKSAK
LVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U2VuZGVycygp
IAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRSZWNlaXZl
cnMoKSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gYWRkVHJh
Y2soTWVkaWFTdHJlYW1UcmFjaywgTWVkaWFTdHJlYW0pIAotUEFTUyBSVENQZWVyQ29ubmVjdGlv
biBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZW1vdmVUcmFjayhSVENSdHBTZW5kZXIpIAotUEFTUyBS
VENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnRyYWNrIAotUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjcmVhdGVEYXRhQ2hhbm5lbChET01T
dHJpbmcsIFJUQ0RhdGFDaGFubmVsSW5pdCkgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogYXR0cmlidXRlIG9uZGF0YWNoYW5uZWwgCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIGR0bWYgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0
IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJkdG1mIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFT
UyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTdGF0cyhNZWRpYVN0
cmVhbVRyYWNrKSAKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24g
c2V0SWRlbnRpdHlQcm92aWRlcihET01TdHJpbmcsIERPTVN0cmluZywgRE9NU3RyaW5nKSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1z
dGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRJZGVudGl0eVByb3ZpZGVyIiBt
aXNzaW5nCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGdldElk
ZW50aXR5QXNzZXJ0aW9uKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAi
Z2V0SWRlbnRpdHlBc3NlcnRpb24iIG1pc3NpbmcKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgcGVlcklkZW50aXR5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBl
IG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAicGVlcklkZW50aXR5IiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBp
ZHBMb2dpblVybCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEg
cHJvcGVydHkgImlkcExvZ2luVXJsIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIHBjIAotUEFTUyBTdHJp
bmdpZmljYXRpb24gb2YgcGMgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxs
aW5nIGNyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucykgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0ZUFuc3dlcihSVENBbnN3ZXJPcHRp
b25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogY2FsbGluZyBjcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucykgb24gcGMgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgUlRDUGVlckNvbm5l
Y3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldExvY2FsRGVzY3Jp
cHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNT
IFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBzZXRMb2NhbERlc2NyaXB0aW9u
KFJUQ1Nlc3Npb25EZXNjcmlwdGlvbikgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImxvY2FsRGVzY3JpcHRpb24iIHdpdGggdGhlIHByb3BlciB0
eXBlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiY3VycmVudExvY2FsRGVzY3JpcHRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAot
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicGVuZGluZ0xvY2FsRGVzY3JpcHRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBS
VENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0
UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBzZXRSZW1v
dGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24pIG9uIHBjIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdGVEZXNjcmlwdGlvbiIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24iIHdpdGggdGhl
IHByb3BlciB0eXBlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGFk
ZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUpIG9uIHBjIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFj
ZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzaWduYWxpbmdTdGF0ZSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgVW5yZWNvZ25pemVkIHR5cGUgUlRDU2lnbmFsaW5nU3RhdGUKLUZBSUwgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImljZUdhdGhl
cmluZ1N0YXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBVbnJlY29nbml6ZWQgdHlwZSBSVENJY2VH
YXRoZXJpbmdTdGF0ZQotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiaWNlQ29ubmVjdGlvblN0YXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBVbnJlY29nbml6ZWQgdHlwZSBSVENJY2VDb25uZWN0aW9uU3RhdGUKLUZBSUwgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhblRyaWNrbGVJ
Y2VDYW5kaWRhdGVzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3Bl
cnR5ICJjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFp
bgotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiZ2V0Q29uZmlndXJhdGlvbigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgUlRD
UGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldENv
bmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbikiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFT
UyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0Q29uZmlndXJhdGlvbihS
VENDb25maWd1cmF0aW9uKSBvbiBwYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiY2xvc2UoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1GQUlMIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbm5lZ290
aWF0aW9ubmVlZGVkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBVbnJlY29nbml6ZWQgdHlwZSBFdmVu
dEhhbmRsZXIKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm9uaWNlY2FuZGlkYXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBVbnJlY29n
bml6ZWQgdHlwZSBFdmVudEhhbmRsZXIKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNl
OiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UiIHdpdGgg
dGhlIHByb3BlciB0eXBlIFVucmVjb2duaXplZCB0eXBlIEV2ZW50SGFuZGxlcgotRkFJTCBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25pY2Vj
b25uZWN0aW9uc3RhdGVjaGFuZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlIFVucmVjb2duaXplZCB0
eXBlIEV2ZW50SGFuZGxlcgotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25pY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgVW5yZWNvZ25pemVkIHR5cGUgRXZlbnRIYW5kbGVyCi1QQVNTIFJUQ1BlZXJD
b25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGVPZmZl
cihSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNh
bGxiYWNrLCBSVENPZmZlck9wdGlvbnMpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgUlRD
UGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGNyZWF0ZU9mZmVyKFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkNhbGxiYWNrLCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2ssIFJUQ09m
ZmVyT3B0aW9ucykgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLCBWb2lk
RnVuY3Rpb24sIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaykiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0TG9j
YWxEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24sIFZvaWRGdW5jdGlvbiwgUlRDUGVl
ckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSBvbiBwYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBmbi5hcHBseShvYmosIGFyZ3Mp
OwotICAgICAgICB9IiBkaWQgbm90IHRocm93Ci1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVhdGVBbnN3ZXIoUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaykiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxp
bmcgY3JlYXRlQW5zd2VyKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLCBSVENQZWVyQ29u
bmVjdGlvbkVycm9yQ2FsbGJhY2spIG9uIHBjIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJzZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3Jp
cHRpb24sIFZvaWRGdW5jdGlvbiwgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2Fs
bGluZyBzZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24sIFZvaWRGdW5j
dGlvbiwgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSBvbiBwYyB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBmbi5hcHBs
eShvYmosIGFyZ3MpOwotICAgICAgICB9IiBkaWQgbm90IHRocm93Ci1QQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRJY2VDYW5kaWRh
dGUoUlRDSWNlQ2FuZGlkYXRlLCBWb2lkRnVuY3Rpb24sIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JD
YWxsYmFjaykiIHdpdGggdGhlIHByb3BlciB0eXBlIAotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IGNhbGxpbmcgYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSwgVm9pZEZ1
bmN0aW9uLCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2spIG9uIHBjIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGZuLmFw
cGx5KG9iaiwgYXJncyk7Ci0gICAgICAgIH0iIGRpZCBub3QgdGhyb3cKLVBBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldFN0YXRzKE1l
ZGlhU3RyZWFtVHJhY2ssIFJUQ1N0YXRzQ2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JD
YWxsYmFjaykiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IGNhbGxpbmcgZ2V0U3RhdHMoTWVkaWFTdHJlYW1UcmFjaywgUlRDU3RhdHNDYWxs
YmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSBvbiBwYyB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2VuZXJhdGVDZXJ0aWZpY2F0ZShB
bGdvcml0aG1JZGVudGlmaWVyKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJD
b25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBnZW5lcmF0ZUNlcnRpZmljYXRlKEFsZ29yaXRo
bUlkZW50aWZpZXIpIG9uIHBjIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJnZXRTZW5kZXJzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0UmVj
ZWl2ZXJzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkVHJhY2soTWVkaWFTdHJlYW1U
cmFjaywgTWVkaWFTdHJlYW0pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2ssIE1l
ZGlhU3RyZWFtKSBvbiBwYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicmVtb3ZlVHJhY2soUlRDUnRwU2VuZGVyKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
Ci1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVUcmFjayhS
VENSdHBTZW5kZXIpIG9uIHBjIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvbnRyYWNrIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBVbnJlY29nbml6ZWQgdHlw
ZSBFdmVudEhhbmRsZXIKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImNyZWF0ZURhdGFDaGFubmVsKERPTVN0cmluZywgUlRDRGF0YUNo
YW5uZWxJbml0KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9u
IGludGVyZmFjZTogY2FsbGluZyBjcmVhdGVEYXRhQ2hhbm5lbChET01TdHJpbmcsIFJUQ0RhdGFD
aGFubmVsSW5pdCkgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9uZGF0YWNoYW5uZWwiIHdpdGggdGhlIHByb3BlciB0eXBlIFVucmVjb2duaXpl
ZCB0eXBlIEV2ZW50SGFuZGxlcgotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBj
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZHRtZiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2luaGVyaXRzOiBwcm9wZXJ0eSAiZHRtZiIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgot
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiZ2V0U3RhdHMoTWVkaWFTdHJlYW1UcmFjaykiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFT
UyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0U3RhdHMoTWVkaWFTdHJl
YW1UcmFjaykgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInNldElkZW50aXR5UHJvdmlkZXIoRE9NU3RyaW5nLCBET01TdHJpbmcsIERPTVN0cmlu
ZykiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInNldElk
ZW50aXR5UHJvdmlkZXIiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIHNldElkZW50aXR5UHJvdmlkZXIoRE9NU3Ry
aW5nLCBET01TdHJpbmcsIERPTVN0cmluZykgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJzZXRJZGVudGl0
eVByb3ZpZGVyIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlMIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRJZGVudGl0eUFz
c2VydGlvbigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5
ICJnZXRJZGVudGl0eUFzc2VydGlvbiIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJ
TCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cGVlcklkZW50aXR5IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3Bl
cnR5ICJwZWVySWRlbnRpdHkiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgUlRD
UGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlkcExv
Z2luVXJsIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJp
ZHBMb2dpblVybCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVy
Y29ubmVjdGlvbi9ydGNwZWVyY29ubmVjdGlvbi1pZGwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y3Bl
ZXJjb25uZWN0aW9uLWlkbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjM0
YzU0ZDgzY2IyNjkzYjU2MGM3OGFkMDFlODRjMzFhM2EyYjY2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9u
LWlkbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLTwhZG9jdHlwZSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+SURMIGNoZWNr
IG9mIFJUQ1BlZXJDb25uZWN0aW9uPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SGFyYWxkIEFsdmVzdHJhbmQiIGhyZWY9Im1haWx0bzpodGFAZ29vZ2xlLmNvbSIvPgotPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvI3J0Y3BlZXJj
b25uZWN0aW9uLWludGVyZmFjZSI+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGgxIGNsYXNzPSJpbnN0
cnVjdGlvbnMiPkRlc2NyaXB0aW9uPC9oMT4KLTxwIGNsYXNzPSJpbnN0cnVjdGlvbnMiPlRoaXMg
dGVzdCB2ZXJpZmllcyB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2UuPC9wPgotPGRpdiBpZD0nbG9nJz48L2Rpdj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy9XZWJJRExQ
YXJzZXIuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL2lkbGhhcm5lc3MuanM+
PC9zY3JpcHQ+Ci0KLTwhLS0gIFRoZSBJREwgaXMgY29waWVkIGZyb20gdGhlIDIyIFNlcHRlbWJl
ciAyMDE1IGVkaXRvcnMnIGRyYWZ0LiAgLS0+Ci08c2NyaXB0IHR5cGU9InRleHQvcGxhaW4iPgot
aW50ZXJmYWNlIEV2ZW50VGFyZ2V0IHsKLSAgICAvLyBPbmx5IGEgZHVtbXkgZGVmaW5pdGlvbiBp
cyBuZWVkZWQgaGVyZS4KLX07Ci1bIENvbnN0cnVjdG9yIChvcHRpb25hbCBSVENDb25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24pXQotaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIDogRXZlbnRU
YXJnZXQgIHsKLSAgICBQcm9taXNlPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gY3JlYXRlT2ZmZXIg
KG9wdGlvbmFsIFJUQ09mZmVyT3B0aW9ucyBvcHRpb25zKTsKLSAgICBQcm9taXNlPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbj4gY3JlYXRlQW5zd2VyIChvcHRpb25hbCBSVENBbnN3ZXJPcHRpb25zIG9w
dGlvbnMpOwotICAgIFByb21pc2U8dm9pZD4gICAgICAgICAgICAgICAgICBzZXRMb2NhbERlc2Ny
aXB0aW9uIChSVENTZXNzaW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pOwotICAgIHJlYWRvbmx5
ICAgIGF0dHJpYnV0ZSBSVENTZXNzaW9uRGVzY3JpcHRpb24/IGxvY2FsRGVzY3JpcHRpb247Ci0g
ICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj8gY3VycmVudExv
Y2FsRGVzY3JpcHRpb247Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbj8gcGVuZGluZ0xvY2FsRGVzY3JpcHRpb247Ci0gICAgUHJvbWlzZTx2b2lkPiAgICAg
ICAgICAgICAgICAgIHNldFJlbW90ZURlc2NyaXB0aW9uIChSVENTZXNzaW9uRGVzY3JpcHRpb24g
ZGVzY3JpcHRpb24pOwotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBSVENTZXNzaW9uRGVzY3Jp
cHRpb24/IHJlbW90ZURlc2NyaXB0aW9uOwotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBSVENT
ZXNzaW9uRGVzY3JpcHRpb24/IGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbjsKLSAgICByZWFkb25s
eSAgICBhdHRyaWJ1dGUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uPyBwZW5kaW5nUmVtb3RlRGVzY3Jp
cHRpb247Ci0gICAgUHJvbWlzZTx2b2lkPiAgICAgICAgICAgICAgICAgIGFkZEljZUNhbmRpZGF0
ZSAoUlRDSWNlQ2FuZGlkYXRlIGNhbmRpZGF0ZSk7Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRl
IFJUQ1NpZ25hbGluZ1N0YXRlICAgICAgc2lnbmFsaW5nU3RhdGU7Ci0gICAgcmVhZG9ubHkgICAg
YXR0cmlidXRlIFJUQ0ljZUdhdGhlcmluZ1N0YXRlICAgaWNlR2F0aGVyaW5nU3RhdGU7Ci0gICAg
cmVhZG9ubHkgICAgYXR0cmlidXRlIFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSAgaWNlQ29ubmVjdGlv
blN0YXRlOwotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBib29sZWFuPyAgICAgICAgICAgICAg
IGNhblRyaWNrbGVJY2VDYW5kaWRhdGVzOwotICAgIFJUQ0NvbmZpZ3VyYXRpb24gICAgICAgICAg
ICAgICBnZXRDb25maWd1cmF0aW9uICgpOwotICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXRDb25maWd1cmF0aW9uIChSVENDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pOwot
ICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSAoKTsKLSAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyICAgICAgICAgICBvbm5lZ290aWF0aW9ubmVlZGVk
OwotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgICAgIG9uaWNl
Y2FuZGlkYXRlOwotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAg
ICAgIG9uc2lnbmFsaW5nc3RhdGVjaGFuZ2U7Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciAgICAgICAgICAgb25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2U7Ci0gICAgICAg
ICAgICAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICAgICAgb25pY2VnYXRoZXJpbmdz
dGF0ZWNoYW5nZTsKLX07Ci0KLXBhcnRpYWwgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIHsK
LSAgICB2b2lkIGNyZWF0ZU9mZmVyIChSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayBzdWNj
ZXNzQ2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjayBmYWlsdXJlQ2FsbGJh
Y2ssIG9wdGlvbmFsIFJUQ09mZmVyT3B0aW9ucyBvcHRpb25zKTsKLSAgICB2b2lkIHNldExvY2Fs
RGVzY3JpcHRpb24gKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgVm9pZEZ1bmN0
aW9uIHN1Y2Nlc3NDYWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrIGZhaWx1
cmVDYWxsYmFjayk7Ci0gICAgdm9pZCBjcmVhdGVBbnN3ZXIgKFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNr
IGZhaWx1cmVDYWxsYmFjayk7Ci0gICAgdm9pZCBzZXRSZW1vdGVEZXNjcmlwdGlvbiAoUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBWb2lkRnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNr
LCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICB2
b2lkIGFkZEljZUNhbmRpZGF0ZSAoUlRDSWNlQ2FuZGlkYXRlIGNhbmRpZGF0ZSwgVm9pZEZ1bmN0
aW9uIHN1Y2Nlc3NDYWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrIGZhaWx1
cmVDYWxsYmFjayk7Ci0gICAgdm9pZCBnZXRTdGF0cyAoTWVkaWFTdHJlYW1UcmFjaz8gc2VsZWN0
b3IsIFJUQ1N0YXRzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBSVENQZWVyQ29ubmVjdGlvbkVy
cm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKTsKLX07Ci0KLXBhcnRpYWwgaW50ZXJmYWNlIFJU
Q1BlZXJDb25uZWN0aW9uIHsKLSAgICBzdGF0aWMgUHJvbWlzZTxSVENDZXJ0aWZpY2F0ZT4gZ2Vu
ZXJhdGVDZXJ0aWZpY2F0ZSAoQWxnb3JpdGhtSWRlbnRpZmllciBrZXlnZW5BbGdvcml0aG0pOwot
fTsKLQotcGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gewotICAgIHNlcXVlbmNl
PFJUQ1J0cFNlbmRlcj4gICBnZXRTZW5kZXJzICgpOwotICAgIHNlcXVlbmNlPFJUQ1J0cFJlY2Vp
dmVyPiBnZXRSZWNlaXZlcnMgKCk7Ci0gICAgUlRDUnRwU2VuZGVyICAgICAgICAgICAgIGFkZFRy
YWNrIChNZWRpYVN0cmVhbVRyYWNrIHRyYWNrLCBNZWRpYVN0cmVhbS4uLiBzdHJlYW1zKTsKLSAg
ICB2b2lkICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlVHJhY2sgKFJUQ1J0cFNlbmRlciBzZW5k
ZXIpOwotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb250cmFjazsKLX07
Ci0KLXBhcnRpYWwgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIHsKLSAgICBSVENEYXRhQ2hh
bm5lbCBjcmVhdGVEYXRhQ2hhbm5lbCAoW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nXSBET01TdHJp
bmcgbGFiZWwsIG9wdGlvbmFsIFJUQ0RhdGFDaGFubmVsSW5pdCBkYXRhQ2hhbm5lbERpY3QpOwot
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25kYXRhY2hhbm5lbDsKLX07
Ci0KLXBhcnRpYWwgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIHsKLSAgICByZWFkb25seSAg
ICBhdHRyaWJ1dGUgUlRDRFRNRlNlbmRlcj8gZHRtZjsKLX07Ci0KLXBhcnRpYWwgaW50ZXJmYWNl
IFJUQ1BlZXJDb25uZWN0aW9uIHsKLSAgICBQcm9taXNlPFJUQ1N0YXRzUmVwb3J0PiBnZXRTdGF0
cyAob3B0aW9uYWwgTWVkaWFTdHJlYW1UcmFjaz8gc2VsZWN0b3IpOwotfTsKLQotcGFydGlhbCBp
bnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gewotICAgIHZvaWQgICAgICAgICAgICAgICBzZXRJ
ZGVudGl0eVByb3ZpZGVyIChET01TdHJpbmcgcHJvdmlkZXIsIG9wdGlvbmFsIERPTVN0cmluZyBw
cm90b2NvbCwgb3B0aW9uYWwgRE9NU3RyaW5nIHVzZXJuYW1lSGludCk7Ci0gICAgUHJvbWlzZTxE
T01TdHJpbmc+IGdldElkZW50aXR5QXNzZXJ0aW9uICgpOwotICAgIHJlYWRvbmx5ICAgIGF0dHJp
YnV0ZSBQcm9taXNlPFJUQ0lkZW50aXR5QXNzZXJ0aW9uPiBwZWVySWRlbnRpdHk7Ci0gICAgcmVh
ZG9ubHkgICAgYXR0cmlidXRlIERPTVN0cmluZz8gICAgICAgICAgICAgICAgICAgIGlkcExvZ2lu
VXJsOwotfTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0PgotKGZ1bmN0aW9uKCkgewotICB2YXIgaWRs
X2FycmF5ID0gbmV3IElkbEFycmF5KCk7Ci0gIFtdLmZvckVhY2guY2FsbChkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCJzY3JpcHRbdHlwZT10ZXh0XFwvcGxhaW5dIiksCi0gICAgICAgICAgICAg
ICAgICBmdW5jdGlvbihub2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlkbF9hcnJheS5hZGRf
aWRscyhub2RlLnRleHRDb250ZW50KTsKLSAgICAgICAgICAgICAgICAgIH0pOwotICB3aW5kb3cu
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7Ci0gIGlkbF9hcnJheS5hZGRfb2JqZWN0
cyh7IlJUQ1BlZXJDb25uZWN0aW9uIjogWyJwYyJdfSk7Ci0gIGlkbF9hcnJheS50ZXN0KCk7Ci0g
IGRvbmUoKTsKLX0pKCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3Bl
ZXJjb25uZWN0aW9uL3NldFJlbW90ZURlc2NyaXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9zZXRS
ZW1vdGVEZXNjcmlwdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTkz
ZDk4ZDdkZWEyM2NjYzVmMDQ1OGVjY2QxZmI1M2JjNjEwNzBjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3NldFJlbW90ZURlc2NyaXB0
aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci0gIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KLSAgPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9u
IHNldFJlbW90ZURlc2NyaXB0aW9uIHRlc3RzPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotICA8
IS0tICBUaGVzZSBmaWxlcyBhcmUgaW4gcGxhY2Ugd2hlbiBleGVjdXRpbmcgb24gVzNDLiAgLS0+
Ci0gIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gIC8vIHRlc3RzIHRoYXQgb25hZGRz
dHJlYW0gaXMgY2FsbGVkIGFuZCBwYXJzZXMgdGhlIG1zaWQgaW5mb3JtYXRpb24gZnJvbSB0aGUg
U0RQIGFuZCBjcmVhdGVzCi0gIC8vIHRoZSBzdHJlYW1zIGFuZCB0cmFja3Mgd2l0aCBtYXRjaGlu
ZyBpZGVudGlmaWVycy4KLSAgLy8gVE9ETzogb25hZGRzdHJlYW0gaXMgbm8gbG9uZ2VyIHBhcnQg
b2YgdGhlIHNwZWMgYnV0IGlzIG1vcmUgd2lkZWx5IGltcGxlbWVudGVkIHRoYW4gb250cmFjawot
ICAvLyAgICAgICBhcyBvZiBGZWIuIDIwMTcuIFRoaXMgdGVzdCBzaG91bGQgYmUgZGVwcmVjYXRl
ZCBvbmNlIG9udHJhY2sgaXMgbW9yZSB3aWRlbHkgaW1wbGVtZW50ZWQuCi0gIGFzeW5jX3Rlc3Qo
ZnVuY3Rpb24odGVzdCkgewotICAgIGNvbnN0IHNkcCA9ICd2PTBcclxuJyArCi0gICAgICAgICdv
PS0gMTY2ODU1MTc2NTE0NTIxOTY0IDIgSU4gSVA0IDEyNy4wLjAuMVxyXG4nICsKLSAgICAgICAg
J3M9LVxyXG4nICsKLSAgICAgICAgJ3Q9MCAwXHJcbicgKwotICAgICAgICAnYT1tc2lkLXNlbWFu
dGljOldNUyAqXHJcbicgKwotICAgICAgICAnbT1hdWRpbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDEx
MVxyXG4nICsKLSAgICAgICAgJ2M9SU4gSVA0IDAuMC4wLjBcclxuJyArCi0gICAgICAgICdhPXJ0
Y3A6OSBJTiBJUDQgMC4wLjAuMFxyXG4nICsKLSAgICAgICAgJ2E9aWNlLXVmcmFnOnNvbWV1ZnJh
Z1xyXG4nICsKLSAgICAgICAgJ2E9aWNlLXB3ZDpzb21lbG9uZ3B3ZHdpdGhlbm91Z2hyYW5kb21u
ZXNzXHJcbicgKwotICAgICAgICAnYT1maW5nZXJwcmludDpzaGEtMjU2IDhDOjcxOkIzOjhEOkE1
OjM4OkZEOjhGOkE0OjJFOkEyOjY1OjZDOjg2OjUyOkJDOkUwOjZFOjk0OkYyOjlGOjdDOjREOkI1
OkRGOkFGOkFBOjZGOjQ0OjkwOjhEOkY0XHJcbicgKwotICAgICAgICAnYT1zZXR1cDphY3RwYXNz
XHJcbicgKwotICAgICAgICAnYT1ydGNwLW11eFxyXG4nICsKLSAgICAgICAgJ2E9bWlkOm1pZDFc
clxuJyArCi0gICAgICAgICdhPXNlbmRvbmx5XHJcbicgKwotICAgICAgICAnYT1ydHBtYXA6MTEx
IG9wdXMvNDgwMDAvMlxyXG4nICsKLSAgICAgICAgJ2E9bXNpZDpzdHJlYW0xIHRyYWNrMVxyXG4n
ICsKLSAgICAgICAgJ2E9c3NyYzoxMDAxIGNuYW1lOnNvbWVcclxuJzsKLQotICAgIHZhciBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKLQotICAgIHBjLm9uYWRkc3RyZWFtID0gdGVz
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQu
c3RyZWFtLmdldFRyYWNrcygpLmxlbmd0aCwgMSwgJ3RoZSBzdHJlYW0gY29udGFpbnMgb25lIHRy
YWNrJyk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnN0cmVhbS5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCwgMSwgJ3RoZSBzdHJlYW0gY29udGFpbnMgb25lIGF1ZGlvIHRyYWNrJyk7Ci0gICAg
ICBhc3NlcnRfZXF1YWxzKGV2ZW50LnN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCwgMCwg
J3RoZSBzdHJlYW0gY29udGFpbnMgbm8gdmlkZW8gdHJhY2tzJyk7Ci0KLSAgICAgIGFzc2VydF9l
cXVhbHMoZXZlbnQuc3RyZWFtLmlkLCAnc3RyZWFtMScsICd0aGUgc3RyZWFtIG5hbWUgaXMgcGFy
c2VkIGZyb20gdGhlIE1TSUQgbGluZScpOwotICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5zdHJl
YW0uZ2V0VHJhY2tzKClbMF0uaWQsICd0cmFjazEnLCAndGhlIHRyYWNrIG5hbWUgaXMgcGFyc2Vk
IGZyb20gdGhlIE1TSUQgbGluZScpOwotICAgICAgdGVzdC5kb25lKCk7Ci0gICAgfSk7Ci0KLSAg
ICBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt0eXBl
OiAnb2ZmZXInLCBzZHA6IHNkcH0pKQotICAgIC5jYXRjaCh0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCdFcnJvciAnICsgZS5uYW1lICsgJzogJyAr
IGUubWVzc2FnZSk7Ci0gICAgfSkpOwotICB9LCAnVHJpZ2dlcnMgb25hZGRzdHJlYW0gd2hlbiBj
YWxsZWQgd2l0aCBhIHJlbW90ZSBkZXNjcmlwdGlvbiBhbmQgdGhlIE1TSUQgaXMgcGFyc2VkLicp
OwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9u
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDcxYjk3ZTFjMmIyNzJjZGIzNmEwNDMxZmMxNDY5Yzk5YWM5NmUx
ZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5l
Y3Rpb24vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9y
dGNwZWVyY29ubmVjdGlvbi9jYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcy5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rp
b24vaWNlR2F0aGVyaW5nU3RhdGUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y2NvbmZpZ3VyYXRpb24t
aWNlY2FuZGlkYXRlcG9vbHNpemUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9u
LWNvbnN0cnVjdG9yLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9ydGNwZWVyY29ubmVjdGlvbi1pZGwuaHRt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0
Y3BlZXJjb25uZWN0aW9uL3NldFJlbW90ZURlc2NyaXB0aW9uLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXBsZWNh
bGwtbm8tc3NyY3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3NpbXBsZWNhbGwtbm8tc3NyY3MuaHR0cHMuaHRtbAppbmRleCBk
NzlmNmFmM2Q2OWFjYTBmYzY1M2EzZTgyMWVhYjQwMTllZWRhMTk4Li41MTYwNDUxZjAxMmU2NDJk
ZDU2OTdlMDM0YTE5YTdmODg5NTQyMWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvc2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5odG1sCkBAIC0zMiw2ICszMiw3IEBACiAK
ICAgZnVuY3Rpb24gZ2V0Tm9pc2VTdHJlYW1Pa0NhbGxiYWNrKGxvY2FsU3RyZWFtKSB7CiAgICAg
Z0ZpcnN0Q29ubmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKKyAgICB0ZXN0
LmFkZF9jbGVhbnVwKCgpID0+IGdGaXJzdENvbm5lY3Rpb24uY2xvc2UoKSk7CiAgICAgZ0ZpcnN0
Q29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9GaXJzdDsKICAgICBs
b2NhbFN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKSB7CiAgICAgICBn
Rmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CkBAIC00NSwxMCAr
NDYsOSBAQAogICB2YXIgb25PZmZlckNyZWF0ZWQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihv
ZmZlcikgewogICAgIGdGaXJzdENvbm5lY3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7
CiAKLSAgICAvLyByZW1vdmUgYWxsIGE9c3NyYzogbGluZXMsIHRoZSBtc2lkLXNlbWFudGljIGxp
bmUgYW5kIGFueSBhPW1zaWQ6LgorICAgIC8vIHJlbW92ZSBhbGwgYT1zc3JjOiBsaW5lcyBhbmQg
dGhlIChvYnNvbGV0ZSkgbXNpZC1zZW1hbnRpYyBsaW5lLgogICAgIHZhciBzZHAgPSBvZmZlci5z
ZHAucmVwbGFjZSgvXmE9c3NyYzouKiRcclxuL2dtLCAnJykKLSAgICAgIC5yZXBsYWNlKC9eYT1t
c2lkLXNlbWFudGljLiokXHJcbi9nbSwgJycpCi0gICAgICAucmVwbGFjZSgvXmE9bXNpZDouKiRc
clxuL2dtLCAnJyk7CisgICAgICAucmVwbGFjZSgvXmE9bXNpZC1zZW1hbnRpYy4qJFxyXG4vZ20s
ICcnKTsKIAogICAgIC8vIFRoaXMgd291bGQgbm9ybWFsbHkgZ28gYWNyb3NzIHRoZSBhcHBsaWNh
dGlvbidzIHNpZ25hbGluZyBzb2x1dGlvbi4KICAgICAvLyBJbiBvdXIgY2FzZSwgdGhlICJzaWdu
YWxpbmciIGlzIHRvIGNhbGwgdGhpcyBmdW5jdGlvbi4KQEAgLTU3LDYgKzU3LDcgQEAKIAogICBm
dW5jdGlvbiByZWNlaXZlQ2FsbChvZmZlclNkcCkgewogICAgIGdTZWNvbmRDb25uZWN0aW9uID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4g
Z1NlY29uZENvbm5lY3Rpb24uY2xvc2UoKSk7CiAgICAgZ1NlY29uZENvbm5lY3Rpb24ub25pY2Vj
YW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0ZVRvU2Vjb25kOwogICAgIGdTZWNvbmRDb25uZWN0aW9u
Lm9udHJhY2sgPSBvblJlbW90ZVRyYWNrOwogCkBAIC0xMDEsOSArMTAyLDkgQEAKIAogICB2YXIg
b25SZW1vdGVUcmFjayA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgdmFy
IHZpZGVvVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlbW90ZS12aWV3Jyk7Ci0gICAg
aWYgKCF2aWRlb1RhZy5zcmNPYmplY3QpCi0gICAgICB2aWRlb1RhZy5zcmNPYmplY3QgPSBuZXcg
TWVkaWFTdHJlYW0oKTsKLSAgICB2aWRlb1RhZy5zcmNPYmplY3QuYWRkVHJhY2soZXZlbnQudHJh
Y2spOworICAgIGlmICghdmlkZW9UYWcuc3JjT2JqZWN0KSB7CisgICAgICB2aWRlb1RhZy5zcmNP
YmplY3QgPSBldmVudC5zdHJlYW1zWzBdOworICAgIH0KICAgfSk7CiAKICAgLy8gUmV0dXJucyBh
IHN1aXRhYmxlIGVycm9yIGNhbGxiYWNrLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxl
Y2FsbC5odHRwcy5odG1sCmluZGV4IDI5MTQzN2E1MjY1ODJkMTNkYjZlMDRmYTM5YzE1MmNlOWVk
NTg1OWEuLmZmZTA0M2I2YTIzN2ZhZTFhNGY3MGUyY2ZhYzQ5NWEyYTYxMzJjMjggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Np
bXBsZWNhbGwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwKQEAgLTMyLDYgKzMyLDcg
QEAKIAogICBmdW5jdGlvbiBnZXROb2lzZVN0cmVhbU9rQ2FsbGJhY2sobG9jYWxTdHJlYW0pIHsK
ICAgICBnRmlyc3RDb25uZWN0aW9uID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOworICAg
IHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gZ0ZpcnN0Q29ubmVjdGlvbi5jbG9zZSgpKTsKICAgICBn
Rmlyc3RDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0gb25JY2VDYW5kaWRhdGVUb0ZpcnN0Owog
ICAgIGxvY2FsU3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2goZnVuY3Rpb24odHJhY2spIHsKICAg
ICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKQEAgLTUy
LDYgKzUzLDcgQEAKIAogICBmdW5jdGlvbiByZWNlaXZlQ2FsbChvZmZlclNkcCkgewogICAgIGdT
ZWNvbmRDb25uZWN0aW9uID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOworICAgIHRlc3Qu
YWRkX2NsZWFudXAoKCkgPT4gZ1NlY29uZENvbm5lY3Rpb24uY2xvc2UoKSk7CiAgICAgZ1NlY29u
ZENvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0ZVRvU2Vjb25kOwogICAg
IGdTZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSBvblJlbW90ZVRyYWNrOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvYmFzaWMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZThlY2ViZTliNjNjNGQ5YzI4NjllNDM5NDk4ZTY4OTAwNWY1MjAy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJ
TUVPVVQgQmFzaWMgc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXllcnMgVGVz
dCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFz
aWMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDVmM2I1MmY1ZjY2OGNhMmRkZDUyMThjNWM5ZjYw
Yjg4NDU1NWRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwKQEAgLTAs
MCArMSwyMCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxl
PlJUQ1BlZXJDb25uZWN0aW9uIFNpbXVsY2FzdCBUZXN0czwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPSIuLi90aGlyZF9wYXJ0eS9zZHAv
c2RwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzaW11bGNhc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCByaWRzID0gWzAsIDEsIDJdOwor
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICByZXR1cm4gbmVnb3Rp
YXRlU2ltdWxjYXN0QW5kV2FpdEZvclZpZGVvKHQsIHJpZHMsIHBjMSwgcGMyKTsKK30sICdCYXNp
YyBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0aHJlZSBzcGF0aWFsIGxheWVycycpOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9zaW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0
YXRzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzI5YTMyM2JjYjA1MmM4YzJhYmQ0
MDI3YTE3YjRkZDJlYTY4NDJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCks
IG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgU2ltdWxjYXN0IGdldFN0YXRzIHJlc3VsdHMgVGVz
dCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qv
Z2V0U3RhdHMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzljZWVhODQxMTM0NzJkZDFjZDgxZDZk
MWE0OGU5MGEyYzI0ODRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSwzMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIFNpbXVsY2FzdCBUZXN0cyAtIGdldFN0YXRzPC90
aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHNjcmlwdCBzcmM9
Ii4uL3RoaXJkX3BhcnR5L3NkcC9zZHAuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNpbXVs
Y2FzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkp
OworCisgIGF3YWl0IG5lZ290aWF0ZVNpbXVsY2FzdEFuZFdhaXRGb3JWaWRlbyh0LCByaWRzLCBw
YzEsIHBjMik7CisKKyAgY29uc3Qgb3V0Ym91bmRTdGF0cyA9IFtdOworICBjb25zdCBzZW5kZXJT
dGF0cyA9IGF3YWl0IHBjMS5nZXRTZW5kZXJzKClbMF0uZ2V0U3RhdHMoKTsKKyAgc2VuZGVyU3Rh
dHMuZm9yRWFjaChzdGF0ID0+IHsKKyAgICBpZiAoc3RhdC50eXBlID09PSAnb3V0Ym91bmQtcnRw
JykgeworICAgICAgb3V0Ym91bmRTdGF0cy5wdXNoKHN0YXQpOworICAgIH0KKyAgfSk7CisgIGFz
c2VydF9lcXVhbHMob3V0Ym91bmRTdGF0cy5sZW5ndGgsIDMsICJnZXRTdGF0cyByZXN1bHQgc2hv
dWxkIGNvbnRhaW4gdGhyZWUgbGF5ZXJzIik7CisgIGNvbnN0IHN0YXRzUmlkcyA9IG91dGJvdW5k
U3RhdHMubWFwKHN0YXQgPT4gcGFyc2VJbnQoc3RhdC5yaWQsIDEwKSk7CisgIGFzc2VydF9hcnJh
eV9lcXVhbHMocmlkcywgc3RhdHNSaWRzLnNvcnQoKSwgImdldFN0YXRzIHJlc3VsdCBzaG91bGQg
bWF0Y2ggdGhlIHJpZHMgcHJvdmlkZWQiKTsKK30sICdTaW11bGNhc3QgZ2V0U3RhdHMgcmVzdWx0
cycpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvaDI2NC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTEwZWI3MjgwNjc3NDcx
Yzk2NTczYTlhM2Y3OTlhNzc2ZDZkNmViZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgSDI2NCBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0
aHJlZSBzcGF0aWFsIGxheWVycyBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2
NC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWUxOGJjZDUx
Y2YwMjliNGY5NTI4MTY0ZTZiOTAzMDZmMjEwNTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gy
NjQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gU2ltdWxjYXN0IFRlc3RzPC90
aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHNjcmlwdCBzcmM9
Ii4uL3RoaXJkX3BhcnR5L3NkcC9zZHAuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNpbXVs
Y2FzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGFzc2Vy
dF9pbXBsZW1lbnRzKCdnZXRDYXBhYmlsaXRpZXMnIGluIFJUQ1J0cFNlbmRlciwgJ1JUQ1J0cFNl
bmRlci5nZXRDYXBhYmlsaXRpZXMgbm90IHN1cHBvcnRlZCcpOworICBhc3NlcnRfaW1wbGVtZW50
cyhSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpLmNvZGVjcy5maW5kKGMgPT4g
Yy5taW1lVHlwZSA9PT0gJ3ZpZGVvL0gyNjQnKSwgJ0gyNjQgbm90IHN1cHBvcnRlZCcpOworCisg
IGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworCisgIHJldHVybiBuZWdvdGlhdGVTaW11bGNhc3RBbmRXYWl0Rm9yVmlkZW8odCwg
cmlkcywgcGMxLCBwYzIsIHttaW1lVHlwZTogJ3ZpZGVvL0gyNjQnfSk7Cit9LCAnSDI2NCBzaW11
bGNhc3Qgc2V0dXAgd2l0aCB0aHJlZSBzcGF0aWFsIGxheWVycycpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0
L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTE1
ODg1Yzk5M2ExMWY0YTAwMDM2ZjMyN2YxNTJlNzMyYzFlNGQxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxj
YXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQg
U2ltdWxjYXN0IHNldFBhcmFtZXRlcnMgYWN0aXZlPWZhbHNlIHN0b3BzIHNlbmRpbmcgZnJhbWVz
IFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjc1NGM2M2ZmZTlkNDc0YTBlYTg0YjQwM2NkN2I1ZWQ3YmFhZTFhMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTEg
QEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVy
Q29ubmVjdGlvbiBTaW11bGNhc3QgVGVzdHMgLSBzZXRQYXJhbWV0ZXJzL2FjdGl2ZTwvdGl0bGU+
Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPSIuLi90
aGlyZF9wYXJ0eS9zZHAvc2RwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzaW11bGNhc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gcXVlcnlSZWNlaXZlclN0YXRzKHBjKSB7
CisgIGNvbnN0IGluYm91bmRTdGF0cyA9IFtdOworICBhd2FpdCBQcm9taXNlLmFsbChwYy5nZXRS
ZWNlaXZlcnMoKS5tYXAoYXN5bmMgcmVjZWl2ZXIgPT4geworICAgIGNvbnN0IHJlY2VpdmVyU3Rh
dHMgPSBhd2FpdCByZWNlaXZlci5nZXRTdGF0cygpOworICAgIHJlY2VpdmVyU3RhdHMuZm9yRWFj
aChzdGF0ID0+IHsKKyAgICAgIGlmIChzdGF0LnR5cGUgPT09ICdpbmJvdW5kLXJ0cCcpIHsKKyAg
ICAgICAgaW5ib3VuZFN0YXRzLnB1c2goc3RhdCk7CisgICAgICB9CisgICAgfSk7CisgIH0pKTsK
KyAgcmV0dXJuIGluYm91bmRTdGF0cy5tYXAocyA9PiBzLmZyYW1lc0RlY29kZWQpOworfQorCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGF3YWl0IG5lZ290aWF0ZVNp
bXVsY2FzdEFuZFdhaXRGb3JWaWRlbyh0LCByaWRzLCBwYzEsIHBjMik7CisKKyAgLy8gRGVhY3Rp
dmF0ZSBhbGwgc2VuZGVycy4KKyAgY29uc3QgcGFyYW1ldGVycyA9IHBjMS5nZXRTZW5kZXJzKClb
MF0uZ2V0UGFyYW1ldGVycygpOworICBwYXJhbWV0ZXJzLmVuY29kaW5ncy5mb3JFYWNoKGUgPT4g
eworICAgIGUuYWN0aXZlID0gZmFsc2U7CisgIH0pOworICBhd2FpdCBwYzEuZ2V0U2VuZGVycygp
WzBdLnNldFBhcmFtZXRlcnMocGFyYW1ldGVycyk7CisKKyAgLy8gQXNzZXJ0IChhbG1vc3QpIG5v
IG5ldyBmcmFtZXMgYXJlIHJlY2VpdmVkLgorICAvLyBXaXRob3V0IGFueSBhY3Rpb24gd2Ugd291
bGQgZXhwZWN0IHRvIGhhdmUgcmVjZWl2ZWQgYXJvdW5kIDMwZnBzLgorICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDEwMCkpOyAvLyBXYWl0IGEg
Yml0LgorICBjb25zdCBpbml0aWFsU3RhdHMgPSBhd2FpdCBxdWVyeVJlY2VpdmVyU3RhdHMocGMy
KTsKKyAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZl
LCAxMDAwKSk7IC8vIFdhaXQgbW9yZS4KKyAgY29uc3Qgc3Vic2VxdWVudFN0YXRzID0gYXdhaXQg
cXVlcnlSZWNlaXZlclN0YXRzKHBjMik7CisKKyAgc3Vic2VxdWVudFN0YXRzLmZvckVhY2goKGZy
YW1lc0RlY29kZWQsIGlkeCkgPT4geworICAgIGFzc2VydF9lcXVhbHMoZnJhbWVzRGVjb2RlZCwg
aW5pdGlhbFN0YXRzW2lkeF0pOworICB9KTsKK30sICdTaW11bGNhc3Qgc2V0UGFyYW1ldGVycyBh
Y3RpdmU9ZmFsc2Ugc3RvcHMgc2VuZGluZyBmcmFtZXMnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2lt
dWxjYXN0L3NpbXVsY2FzdC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zaW11bGNhc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE4ZWJm
NjNhYmY3YjIxMzIxODU2MWIwYWUwMGZmOGJhNTdiODAwZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2Fz
dC9zaW11bGNhc3QuanMKQEAgLTAsMCArMSwxMjEgQEAKKyd1c2Ugc3RyaWN0JzsKKy8qIEhlbHBl
ciBmdW5jdGlvbnMgdG8gbXVuZ2UgU0RQIGFuZCBzcGxpdCB0aGUgc2VuZGluZyB0cmFjayBpbnRv
CisgKiBzZXBhcmF0ZSB0cmFja3Mgb24gdGhlIHJlY2VpdmluZyBlbmQuIFRoaXMgY2FuIGJlIGRv
bmUgaW4gYSBudW1iZXIKKyAqIG9mIHdheXMsIHRoZSBvbmUgdXNlZCBoZXJlIHVzZXMgdGhlIGZh
Y3QgdGhhdCB0aGUgTUlEIGFuZCBSSUQgaGVhZGVyCisgKiBleHRlbnNpb25zIHdoaWNoIGFyZSB1
c2VkIGZvciBwYWNrZXQgcm91dGluZyBzaGFyZSB0aGUgc2FtZSB3aXJlCisgKiBmb3JtYXQuIFRo
ZSByZWNlaXZlciBpbnRlcnByZXRzIHRoZSByaWRzIGZyb20gdGhlIHNlbmRlciBhcyBtaWRzCisg
KiB3aGljaCBhbGxvd3MgcmVjZWl2aW5nIHRoZSBkaWZmZXJlbnQgc3BhdGlhbCByZXNvbHV0aW9u
cyBvbiBzZXBhcmF0ZQorICogbS1saW5lcyBhbmQgdHJhY2tzLgorICovCitjb25zdCBleHRlbnNp
b25zVG9GaWx0ZXIgPSBbCisgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZCcs
CisgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJ0cC1zdHJlYW0taWQnLAorICAn
dXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczpyZXBhaXJlZC1ydHAtc3RyZWFtLWlkJywK
K107CisKK2Z1bmN0aW9uIHN3YXBSaWRBbmRNaWRFeHRlbnNpb25zSW5TaW11bGNhc3RPZmZlcihv
ZmZlciwgcmlkcykgeworICBjb25zdCBzZWN0aW9ucyA9IFNEUFV0aWxzLnNwbGl0U2VjdGlvbnMo
b2ZmZXIuc2RwKTsKKyAgY29uc3QgZHRscyA9IFNEUFV0aWxzLmdldER0bHNQYXJhbWV0ZXJzKHNl
Y3Rpb25zWzFdLCBzZWN0aW9uc1swXSk7CisgIGNvbnN0IGljZSA9IFNEUFV0aWxzLmdldEljZVBh
cmFtZXRlcnMoc2VjdGlvbnNbMV0sIHNlY3Rpb25zWzBdKTsKKyAgY29uc3QgcnRwUGFyYW1ldGVy
cyA9IFNEUFV0aWxzLnBhcnNlUnRwUGFyYW1ldGVycyhzZWN0aW9uc1sxXSk7CisKKyAgLy8gVGhl
IGdpc3Qgb2YgdGhpcyBoYWNrIGlzIHRoYXQgcmlkIGFuZCBtaWQgaGF2ZSB0aGUgc2FtZSB3aXJl
IGZvcm1hdC4KKyAgY29uc3QgcmlkID0gcnRwUGFyYW1ldGVycy5oZWFkZXJFeHRlbnNpb25zLmZp
bmQoZXh0ID0+IGV4dC51cmkgPT09ICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJ0
cC1zdHJlYW0taWQnKTsKKyAgcnRwUGFyYW1ldGVycy5oZWFkZXJFeHRlbnNpb25zID0gcnRwUGFy
YW1ldGVycy5oZWFkZXJFeHRlbnNpb25zLmZpbHRlcihleHQgPT4geworICAgIHJldHVybiAhZXh0
ZW5zaW9uc1RvRmlsdGVyLmluY2x1ZGVzKGV4dC51cmkpOworICB9KTsKKyAgLy8gVGhpcyB0ZWxs
cyB0aGUgb3RoZXIgc2lkZSB0aGF0IHRoZSBSSUQgcGFja2V0cyBhcmUgYWN0dWFsbHkgbWlkcy4K
KyAgcnRwUGFyYW1ldGVycy5oZWFkZXJFeHRlbnNpb25zLnB1c2goe2lkOiByaWQuaWQsIHVyaTog
J3VybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkJywgZGlyZWN0aW9uOiAnc2VuZHJl
Y3YnfSk7CisKKyAgLy8gRmlsdGVyIHJ0eCBhcyB3ZSBoYXZlIG5vIHdheSB0byAocmUpaW50ZXJw
cmV0IHJyaWQuCisgIC8vIE5vdCBkb2luZyB0aGlzIG1ha2VzIHByb2JpbmcgdXNlIFJUWCwgaXQn
cyBub3QgdW5kZXJzdG9vZCBhbmQgcmFtcC11cCBpcyBzbG93ZXIuCisgIHJ0cFBhcmFtZXRlcnMu
Y29kZWNzID0gcnRwUGFyYW1ldGVycy5jb2RlY3MuZmlsdGVyKGMgPT4gYy5uYW1lLnRvVXBwZXJD
YXNlKCkgIT09ICdSVFgnKTsKKworICBsZXQgc2RwID0gU0RQVXRpbHMud3JpdGVTZXNzaW9uQm9p
bGVycGxhdGUoKSArCisgICAgU0RQVXRpbHMud3JpdGVEdGxzUGFyYW1ldGVycyhkdGxzLCAnYWN0
cGFzcycpICsKKyAgICBTRFBVdGlscy53cml0ZUljZVBhcmFtZXRlcnMoaWNlKSArCisgICAgJ2E9
Z3JvdXA6QlVORExFICcgKyByaWRzLmpvaW4oJyAnKSArICdcclxuJzsKKyAgY29uc3QgYmFzZVJ0
cERlc2NyaXB0aW9uID0gU0RQVXRpbHMud3JpdGVSdHBEZXNjcmlwdGlvbigndmlkZW8nLCBydHBQ
YXJhbWV0ZXJzKTsKKyAgcmlkcy5mb3JFYWNoKHJpZCA9PiB7CisgICAgc2RwICs9IGJhc2VSdHBE
ZXNjcmlwdGlvbiArCisgICAgICAgICdhPW1pZDonICsgcmlkICsgJ1xyXG4nICsKKyAgICAgICAg
J2E9bXNpZDpyaWQtJyArIHJpZCArICcgcmlkLScgKyByaWQgKyAnXHJcbic7CisgIH0pOworICBy
ZXR1cm4gc2RwOworfQorCitmdW5jdGlvbiBzd2FwUmlkQW5kTWlkRXh0ZW5zaW9uc0luU2ltdWxj
YXN0QW5zd2VyKGFuc3dlciwgbG9jYWxEZXNjcmlwdGlvbiwgcmlkcykgeworICBjb25zdCBzZWN0
aW9ucyA9IFNEUFV0aWxzLnNwbGl0U2VjdGlvbnMoYW5zd2VyLnNkcCk7CisgIGNvbnN0IGR0bHMg
PSBTRFBVdGlscy5nZXREdGxzUGFyYW1ldGVycyhzZWN0aW9uc1sxXSwgc2VjdGlvbnNbMF0pOwor
ICBjb25zdCBpY2UgPSBTRFBVdGlscy5nZXRJY2VQYXJhbWV0ZXJzKHNlY3Rpb25zWzFdLCBzZWN0
aW9uc1swXSk7CisgIGNvbnN0IHJ0cFBhcmFtZXRlcnMgPSBTRFBVdGlscy5wYXJzZVJ0cFBhcmFt
ZXRlcnMoc2VjdGlvbnNbMV0pOworCisgIHJ0cFBhcmFtZXRlcnMuaGVhZGVyRXh0ZW5zaW9ucyA9
IHJ0cFBhcmFtZXRlcnMuaGVhZGVyRXh0ZW5zaW9ucy5maWx0ZXIoZXh0ID0+IHsKKyAgICByZXR1
cm4gIWV4dGVuc2lvbnNUb0ZpbHRlci5pbmNsdWRlcyhleHQudXJpKTsKKyAgfSk7CisgIGNvbnN0
IGxvY2FsTWlkID0gU0RQVXRpbHMuZ2V0TWlkKFNEUFV0aWxzLnNwbGl0U2VjdGlvbnMobG9jYWxE
ZXNjcmlwdGlvbi5zZHApWzFdKTsKKyAgbGV0IHNkcCA9IFNEUFV0aWxzLndyaXRlU2Vzc2lvbkJv
aWxlcnBsYXRlKCkgKworICAgIFNEUFV0aWxzLndyaXRlRHRsc1BhcmFtZXRlcnMoZHRscywgJ2Fj
dGl2ZScpICsKKyAgICBTRFBVdGlscy53cml0ZUljZVBhcmFtZXRlcnMoaWNlKSArCisgICAgJ2E9
Z3JvdXA6QlVORExFICcgKyBsb2NhbE1pZCArICdcclxuJzsKKyAgc2RwICs9IFNEUFV0aWxzLndy
aXRlUnRwRGVzY3JpcHRpb24oJ3ZpZGVvJywgcnRwUGFyYW1ldGVycyk7CisgIHNkcCArPSAnYT1t
aWQ6JyArIGxvY2FsTWlkICsgJ1xyXG4nOworCisgIHJpZHMuZm9yRWFjaChyaWQgPT4geworICAg
IHNkcCArPSAnYT1yaWQ6JyArIHJpZCArICcgcmVjdlxyXG4nOworICB9KTsKKyAgc2RwICs9ICdh
PXNpbXVsY2FzdDpyZWN2ICcgKyByaWRzLmpvaW4oJzsnKSArICdcclxuJzsKKworICAvLyBSZS1h
ZGQgaGVhZGVyZXh0ZW5zaW9ucyB3ZSBmaWx0ZXJlZC4KKyAgY29uc3QgaGVhZGVyRXh0ZW5zaW9u
cyA9IFNEUFV0aWxzLnBhcnNlUnRwUGFyYW1ldGVycyhTRFBVdGlscy5zcGxpdFNlY3Rpb25zKGxv
Y2FsRGVzY3JpcHRpb24uc2RwKVsxXSkuaGVhZGVyRXh0ZW5zaW9uczsKKyAgaGVhZGVyRXh0ZW5z
aW9ucy5mb3JFYWNoKGV4dCA9PiB7CisgICAgaWYgKGV4dGVuc2lvbnNUb0ZpbHRlci5pbmNsdWRl
cyhleHQudXJpKSkgeworICAgICAgc2RwICs9ICdhPWV4dG1hcDonICsgZXh0LmlkICsgJyAnICsg
ZXh0LnVyaSArICdcclxuJzsKKyAgICB9CisgIH0pOworICByZXR1cm4gc2RwOworfQorCithc3lu
YyBmdW5jdGlvbiBuZWdvdGlhdGVTaW11bGNhc3RBbmRXYWl0Rm9yVmlkZW8odCwgcmlkcywgcGMx
LCBwYzIsIGNvZGVjKSB7CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisKKyAg
Y29uc3QgbWV0YWRhdGFUb0JlTG9hZGVkID0gW107CisgIHBjMi5vbnRyYWNrID0gKGUpID0+IHsK
KyAgICBjb25zdCBzdHJlYW0gPSBlLnN0cmVhbXNbMF07CisgICAgY29uc3QgdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgdi5hdXRvcGxheSA9IHRydWU7CisgICAgdi5z
cmNPYmplY3QgPSBzdHJlYW07CisgICAgdi5pZCA9IHN0cmVhbS5pZAorICAgIG1ldGFkYXRhVG9C
ZUxvYWRlZC5wdXNoKG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIHYuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCAoKSA9PiB7CisgICAgICAgICAgICByZXNvbHZl
KCk7CisgICAgICAgIH0pOworICAgIH0pKTsKKyAgfTsKKworICAvLyBVc2UgZ2V0VXNlck1lZGlh
IGFzIGdldE5vaXNlU3RyZWFtIGRvZXMgbm90IGhhdmUgZW5vdWdoIGVudHJvcHkgdG8gcmFtcC11
cC4KKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe3ZpZGVvOiB7d2lkdGg6IDEyODAsIGhlaWdodDogNzIwfX0pOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3Ao
KSkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRUcmFuc2NlaXZlcihzdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKVswXSwgeworICAgIHN0cmVhbXM6IFtzdHJlYW1dLAorICAgIHNlbmRFbmNv
ZGluZ3M6IHJpZHMubWFwKHJpZCA9PiAoe3JpZH0pKSwKKyAgfSk7CisgIGlmIChjb2RlYykgewor
ICAgIHByZWZlckNvZGVjKHRyYW5zY2VpdmVyLCBjb2RlYy5taW1lVHlwZSwgY29kZWMuc2RwRm10
cExpbmUpOworICB9CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsK
KyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpLAorICBhd2FpdCBwYzIuc2V0
UmVtb3RlRGVzY3JpcHRpb24oeworICAgIHR5cGU6ICdvZmZlcicsCisgICAgc2RwOiBzd2FwUmlk
QW5kTWlkRXh0ZW5zaW9uc0luU2ltdWxjYXN0T2ZmZXIob2ZmZXIsIHJpZHMpLAorICB9KTsKKyAg
Y29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzIuc2V0
TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24oeworICAgIHR5cGU6ICdhbnN3ZXInLAorICAgIHNkcDogc3dhcFJpZEFuZE1pZEV4dGVuc2lv
bnNJblNpbXVsY2FzdEFuc3dlcihhbnN3ZXIsIHBjMS5sb2NhbERlc2NyaXB0aW9uLCByaWRzKSwK
KyAgfSk7CisgIGFzc2VydF9lcXVhbHMobWV0YWRhdGFUb0JlTG9hZGVkLmxlbmd0aCwgcmlkcy5s
ZW5ndGgpOworICByZXR1cm4gUHJvbWlzZS5hbGwobWV0YWRhdGFUb0JlTG9hZGVkKTsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3NpbXVsY2FzdC92cDguaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTkwMjM3NzExZWVmYzhmYzg5NjcyZWE1Y2FhMDFiMjE5MDc4
NjJiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKwor
VElNRU9VVCBWUDggc2ltdWxjYXN0IHNldHVwIHdpdGggdGhyZWUgc3BhdGlhbCBsYXllcnMgVGVz
dCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNTY3ZTYxYzIxZDFiNjhlNTQ5ZmM4YjA0NWI0OGVhOWIw
N2VjYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwy
MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1Bl
ZXJDb25uZWN0aW9uIFNpbXVsY2FzdCBUZXN0czwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPSIuLi90aGlyZF9wYXJ0eS9zZHAvc2RwLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzaW11bGNhc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBhc3NlcnRfaW1wbGVtZW50cygnZ2V0Q2FwYWJpbGl0
aWVzJyBpbiBSVENSdHBTZW5kZXIsICdSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzIG5vdCBz
dXBwb3J0ZWQnKTsKKyAgYXNzZXJ0X2ltcGxlbWVudHMoUlRDUnRwU2VuZGVyLmdldENhcGFiaWxp
dGllcygndmlkZW8nKS5jb2RlY3MuZmluZChjID0+IGMubWltZVR5cGUgPT09ICd2aWRlby9WUDgn
KSwgJ1ZQOCBub3Qgc3VwcG9ydGVkJyk7CisKKyAgY29uc3QgcmlkcyA9IFswLCAxLCAyXTsKKyAg
Y29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgcmV0dXJuIG5lZ290aWF0
ZVNpbXVsY2FzdEFuZFdhaXRGb3JWaWRlbyh0LCByaWRzLCBwYzEsIHBjMiwge21pbWVUeXBlOiAn
dmlkZW8vVlA4J30pOworfSwgJ1ZQOCBzaW11bGNhc3Qgc2V0dXAgd2l0aCB0aHJlZSBzcGF0aWFs
IGxheWVycycpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNh
c3QvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk1MDMzMjBhZWU5YTBhN2NlYTgxMDZmNDE0
NzcyMmI0ZmEzNmQ4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC93M2MtaW1wb3J0LmxvZwpAQCAt
MCwwICsxLDIyIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1Ro
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9nZXRTdGF0
cy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFj
dGl2ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NpbXVsY2FzdC5qcworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvdGhpcmRfcGFydHkvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdGhpcmRfcGFydHkvUkVBRE1FLm1kCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU2YTIyOTVkZDEwM2RiNzY4MzZkMTdmYTUxM2Y1NmQwOTg5MWM1ODYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90
aGlyZF9wYXJ0eS9SRUFETUUubWQKQEAgLTAsMCArMSw1IEBACisjIyBzZHAKK1RoaXJkLXBhcnR5
IFNEUCBtb2R1bGUgZnJvbQorICBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zZHAKK3dp
dGhvdXQgdGVzdHMgb3IgZGVwZW5kZW5jaWVzLiBTZWUgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB2
ZXJzaW9uCithbmQgY29tbWl0IGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGlyZF9wYXJ0eS9zZHAvTElD
RU5TRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3RoaXJkX3BhcnR5L3NkcC9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5NTAyZWMwYTFkODc0MDk1YzIw
MTdiNWQ4MGI5ZDJmZjhkZWNmMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGlyZF9wYXJ0eS9zZHAvTElDRU5T
RQpAQCAtMCwwICsxLDE5IEBACitDb3B5cmlnaHQgKGMpIDIwMTcgUGhpbGlwcCBIYW5ja2UKKwor
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2Fy
ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg
c3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBw
ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQg
aW4gYWxsCitjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgor
CitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU
TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUK
K0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RQorU09GVFdBUkUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGlyZF9wYXJ0eS9zZHAvc2RwLmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdGhpcmRfcGFydHkvc2RwL3Nk
cC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMmEyODcwNjExNWJjNWQzNTE5ZjJjYjA3MTc5Njc3ODNjZTUyZmFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvdGhpcmRfcGFydHkvc2RwL3NkcC5qcwpAQCAtMCwwICsxLDgyNSBAQAor
LyogZXNsaW50LWVudiBub2RlICovCisndXNlIHN0cmljdCc7CisKKy8vIFNEUCBoZWxwZXJzLgor
dmFyIFNEUFV0aWxzID0ge307CisKKy8vIEdlbmVyYXRlIGFuIGFscGhhbnVtZXJpYyBpZGVudGlm
aWVyIGZvciBjbmFtZSBvciBtaWRzLgorLy8gVE9ETzogdXNlIFVVSURzIGluc3RlYWQ/IGh0dHBz
Oi8vZ2lzdC5naXRodWIuY29tL2plZC85ODI4ODMKK1NEUFV0aWxzLmdlbmVyYXRlSWRlbnRpZmll
ciA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vi
c3RyKDIsIDEwKTsKK307CisKKy8vIFRoZSBSVENQIENOQU1FIHVzZWQgYnkgYWxsIHBlZXJjb25u
ZWN0aW9ucyBmcm9tIHRoZSBzYW1lIEpTLgorU0RQVXRpbHMubG9jYWxDTmFtZSA9IFNEUFV0aWxz
LmdlbmVyYXRlSWRlbnRpZmllcigpOworCisvLyBTcGxpdHMgU0RQIGludG8gbGluZXMsIGRlYWxp
bmcgd2l0aCBib3RoIENSTEYgYW5kIExGLgorU0RQVXRpbHMuc3BsaXRMaW5lcyA9IGZ1bmN0aW9u
KGJsb2IpIHsKKyAgcmV0dXJuIGJsb2IudHJpbSgpLnNwbGl0KCdcbicpLm1hcChmdW5jdGlvbihs
aW5lKSB7CisgICAgcmV0dXJuIGxpbmUudHJpbSgpOworICB9KTsKK307CisvLyBTcGxpdHMgU0RQ
IGludG8gc2Vzc2lvbnBhcnQgYW5kIG1lZGlhc2VjdGlvbnMuIEVuc3VyZXMgQ1JMRi4KK1NEUFV0
aWxzLnNwbGl0U2VjdGlvbnMgPSBmdW5jdGlvbihibG9iKSB7CisgIHZhciBwYXJ0cyA9IGJsb2Iu
c3BsaXQoJ1xubT0nKTsKKyAgcmV0dXJuIHBhcnRzLm1hcChmdW5jdGlvbihwYXJ0LCBpbmRleCkg
eworICAgIHJldHVybiAoaW5kZXggPiAwID8gJ209JyArIHBhcnQgOiBwYXJ0KS50cmltKCkgKyAn
XHJcbic7CisgIH0pOworfTsKKworLy8gcmV0dXJucyB0aGUgc2Vzc2lvbiBkZXNjcmlwdGlvbi4K
K1NEUFV0aWxzLmdldERlc2NyaXB0aW9uID0gZnVuY3Rpb24oYmxvYikgeworICB2YXIgc2VjdGlv
bnMgPSBTRFBVdGlscy5zcGxpdFNlY3Rpb25zKGJsb2IpOworICByZXR1cm4gc2VjdGlvbnMgJiYg
c2VjdGlvbnNbMF07Cit9OworCisvLyByZXR1cm5zIHRoZSBpbmRpdmlkdWFsIG1lZGlhIHNlY3Rp
b25zLgorU0RQVXRpbHMuZ2V0TWVkaWFTZWN0aW9ucyA9IGZ1bmN0aW9uKGJsb2IpIHsKKyAgdmFy
IHNlY3Rpb25zID0gU0RQVXRpbHMuc3BsaXRTZWN0aW9ucyhibG9iKTsKKyAgc2VjdGlvbnMuc2hp
ZnQoKTsKKyAgcmV0dXJuIHNlY3Rpb25zOworfTsKKworLy8gUmV0dXJucyBsaW5lcyB0aGF0IHN0
YXJ0IHdpdGggYSBjZXJ0YWluIHByZWZpeC4KK1NEUFV0aWxzLm1hdGNoUHJlZml4ID0gZnVuY3Rp
b24oYmxvYiwgcHJlZml4KSB7CisgIHJldHVybiBTRFBVdGlscy5zcGxpdExpbmVzKGJsb2IpLmZp
bHRlcihmdW5jdGlvbihsaW5lKSB7CisgICAgcmV0dXJuIGxpbmUuaW5kZXhPZihwcmVmaXgpID09
PSAwOworICB9KTsKK307CisKKy8vIFBhcnNlcyBhbiBJQ0UgY2FuZGlkYXRlIGxpbmUuIFNhbXBs
ZSBpbnB1dDoKKy8vIGNhbmRpZGF0ZTo3MDI3ODYzNTAgMiB1ZHAgNDE4MTk5MDIgOC44LjguOCA2
MDc2OSB0eXAgcmVsYXkgcmFkZHIgOC44LjguOAorLy8gcnBvcnQgNTU5OTYiCitTRFBVdGlscy5w
YXJzZUNhbmRpZGF0ZSA9IGZ1bmN0aW9uKGxpbmUpIHsKKyAgdmFyIHBhcnRzOworICAvLyBQYXJz
ZSBib3RoIHZhcmlhbnRzLgorICBpZiAobGluZS5pbmRleE9mKCdhPWNhbmRpZGF0ZTonKSA9PT0g
MCkgeworICAgIHBhcnRzID0gbGluZS5zdWJzdHJpbmcoMTIpLnNwbGl0KCcgJyk7CisgIH0gZWxz
ZSB7CisgICAgcGFydHMgPSBsaW5lLnN1YnN0cmluZygxMCkuc3BsaXQoJyAnKTsKKyAgfQorCisg
IHZhciBjYW5kaWRhdGUgPSB7CisgICAgZm91bmRhdGlvbjogcGFydHNbMF0sCisgICAgY29tcG9u
ZW50OiBwYXJzZUludChwYXJ0c1sxXSwgMTApLAorICAgIHByb3RvY29sOiBwYXJ0c1syXS50b0xv
d2VyQ2FzZSgpLAorICAgIHByaW9yaXR5OiBwYXJzZUludChwYXJ0c1szXSwgMTApLAorICAgIGlw
OiBwYXJ0c1s0XSwKKyAgICBhZGRyZXNzOiBwYXJ0c1s0XSwgLy8gYWRkcmVzcyBpcyBhbiBhbGlh
cyBmb3IgaXAuCisgICAgcG9ydDogcGFyc2VJbnQocGFydHNbNV0sIDEwKSwKKyAgICAvLyBza2lw
IHBhcnRzWzZdID09ICd0eXAnCisgICAgdHlwZTogcGFydHNbN10KKyAgfTsKKworICBmb3IgKHZh
ciBpID0gODsgaSA8IHBhcnRzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgc3dpdGNoIChwYXJ0c1tp
XSkgeworICAgICAgY2FzZSAncmFkZHInOgorICAgICAgICBjYW5kaWRhdGUucmVsYXRlZEFkZHJl
c3MgPSBwYXJ0c1tpICsgMV07CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAncnBvcnQnOgor
ICAgICAgICBjYW5kaWRhdGUucmVsYXRlZFBvcnQgPSBwYXJzZUludChwYXJ0c1tpICsgMV0sIDEw
KTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICd0Y3B0eXBlJzoKKyAgICAgICAgY2FuZGlk
YXRlLnRjcFR5cGUgPSBwYXJ0c1tpICsgMV07CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAn
dWZyYWcnOgorICAgICAgICBjYW5kaWRhdGUudWZyYWcgPSBwYXJ0c1tpICsgMV07IC8vIGZvciBi
YWNrd2FyZCBjb21wYWJpbGl0eS4KKyAgICAgICAgY2FuZGlkYXRlLnVzZXJuYW1lRnJhZ21lbnQg
PSBwYXJ0c1tpICsgMV07CisgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDogLy8gZXh0ZW5z
aW9uIGhhbmRsaW5nLCBpbiBwYXJ0aWN1bGFyIHVmcmFnCisgICAgICAgIGNhbmRpZGF0ZVtwYXJ0
c1tpXV0gPSBwYXJ0c1tpICsgMV07CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgfQorICByZXR1
cm4gY2FuZGlkYXRlOworfTsKKworLy8gVHJhbnNsYXRlcyBhIGNhbmRpZGF0ZSBvYmplY3QgaW50
byBTRFAgY2FuZGlkYXRlIGF0dHJpYnV0ZS4KK1NEUFV0aWxzLndyaXRlQ2FuZGlkYXRlID0gZnVu
Y3Rpb24oY2FuZGlkYXRlKSB7CisgIHZhciBzZHAgPSBbXTsKKyAgc2RwLnB1c2goY2FuZGlkYXRl
LmZvdW5kYXRpb24pOworICBzZHAucHVzaChjYW5kaWRhdGUuY29tcG9uZW50KTsKKyAgc2RwLnB1
c2goY2FuZGlkYXRlLnByb3RvY29sLnRvVXBwZXJDYXNlKCkpOworICBzZHAucHVzaChjYW5kaWRh
dGUucHJpb3JpdHkpOworICBzZHAucHVzaChjYW5kaWRhdGUuYWRkcmVzcyB8fCBjYW5kaWRhdGUu
aXApOworICBzZHAucHVzaChjYW5kaWRhdGUucG9ydCk7CisKKyAgdmFyIHR5cGUgPSBjYW5kaWRh
dGUudHlwZTsKKyAgc2RwLnB1c2goJ3R5cCcpOworICBzZHAucHVzaCh0eXBlKTsKKyAgaWYgKHR5
cGUgIT09ICdob3N0JyAmJiBjYW5kaWRhdGUucmVsYXRlZEFkZHJlc3MgJiYKKyAgICAgIGNhbmRp
ZGF0ZS5yZWxhdGVkUG9ydCkgeworICAgIHNkcC5wdXNoKCdyYWRkcicpOworICAgIHNkcC5wdXNo
KGNhbmRpZGF0ZS5yZWxhdGVkQWRkcmVzcyk7CisgICAgc2RwLnB1c2goJ3Jwb3J0Jyk7CisgICAg
c2RwLnB1c2goY2FuZGlkYXRlLnJlbGF0ZWRQb3J0KTsKKyAgfQorICBpZiAoY2FuZGlkYXRlLnRj
cFR5cGUgJiYgY2FuZGlkYXRlLnByb3RvY29sLnRvTG93ZXJDYXNlKCkgPT09ICd0Y3AnKSB7Cisg
ICAgc2RwLnB1c2goJ3RjcHR5cGUnKTsKKyAgICBzZHAucHVzaChjYW5kaWRhdGUudGNwVHlwZSk7
CisgIH0KKyAgaWYgKGNhbmRpZGF0ZS51c2VybmFtZUZyYWdtZW50IHx8IGNhbmRpZGF0ZS51ZnJh
ZykgeworICAgIHNkcC5wdXNoKCd1ZnJhZycpOworICAgIHNkcC5wdXNoKGNhbmRpZGF0ZS51c2Vy
bmFtZUZyYWdtZW50IHx8IGNhbmRpZGF0ZS51ZnJhZyk7CisgIH0KKyAgcmV0dXJuICdjYW5kaWRh
dGU6JyArIHNkcC5qb2luKCcgJyk7Cit9OworCisvLyBQYXJzZXMgYW4gaWNlLW9wdGlvbnMgbGlu
ZSwgcmV0dXJucyBhbiBhcnJheSBvZiBvcHRpb24gdGFncy4KKy8vIGE9aWNlLW9wdGlvbnM6Zm9v
IGJhcgorU0RQVXRpbHMucGFyc2VJY2VPcHRpb25zID0gZnVuY3Rpb24obGluZSkgeworICByZXR1
cm4gbGluZS5zdWJzdHIoMTQpLnNwbGl0KCcgJyk7Cit9OworCisvLyBQYXJzZXMgYW4gcnRwbWFw
IGxpbmUsIHJldHVybnMgUlRDUnRwQ29kZGVjUGFyYW1ldGVycy4gU2FtcGxlIGlucHV0OgorLy8g
YT1ydHBtYXA6MTExIG9wdXMvNDgwMDAvMgorU0RQVXRpbHMucGFyc2VSdHBNYXAgPSBmdW5jdGlv
bihsaW5lKSB7CisgIHZhciBwYXJ0cyA9IGxpbmUuc3Vic3RyKDkpLnNwbGl0KCcgJyk7CisgIHZh
ciBwYXJzZWQgPSB7CisgICAgcGF5bG9hZFR5cGU6IHBhcnNlSW50KHBhcnRzLnNoaWZ0KCksIDEw
KSAvLyB3YXM6IGlkCisgIH07CisKKyAgcGFydHMgPSBwYXJ0c1swXS5zcGxpdCgnLycpOworCisg
IHBhcnNlZC5uYW1lID0gcGFydHNbMF07CisgIHBhcnNlZC5jbG9ja1JhdGUgPSBwYXJzZUludChw
YXJ0c1sxXSwgMTApOyAvLyB3YXM6IGNsb2NrcmF0ZQorICBwYXJzZWQuY2hhbm5lbHMgPSBwYXJ0
cy5sZW5ndGggPT09IDMgPyBwYXJzZUludChwYXJ0c1syXSwgMTApIDogMTsKKyAgLy8gbGVnYWN5
IGFsaWFzLCBnb3QgcmVuYW1lZCBiYWNrIHRvIGNoYW5uZWxzIGluIE9SVEMuCisgIHBhcnNlZC5u
dW1DaGFubmVscyA9IHBhcnNlZC5jaGFubmVsczsKKyAgcmV0dXJuIHBhcnNlZDsKK307CisKKy8v
IEdlbmVyYXRlIGFuIGE9cnRwbWFwIGxpbmUgZnJvbSBSVENSdHBDb2RlY0NhcGFiaWxpdHkgb3IK
Ky8vIFJUQ1J0cENvZGVjUGFyYW1ldGVycy4KK1NEUFV0aWxzLndyaXRlUnRwTWFwID0gZnVuY3Rp
b24oY29kZWMpIHsKKyAgdmFyIHB0ID0gY29kZWMucGF5bG9hZFR5cGU7CisgIGlmIChjb2RlYy5w
cmVmZXJyZWRQYXlsb2FkVHlwZSAhPT0gdW5kZWZpbmVkKSB7CisgICAgcHQgPSBjb2RlYy5wcmVm
ZXJyZWRQYXlsb2FkVHlwZTsKKyAgfQorICB2YXIgY2hhbm5lbHMgPSBjb2RlYy5jaGFubmVscyB8
fCBjb2RlYy5udW1DaGFubmVscyB8fCAxOworICByZXR1cm4gJ2E9cnRwbWFwOicgKyBwdCArICcg
JyArIGNvZGVjLm5hbWUgKyAnLycgKyBjb2RlYy5jbG9ja1JhdGUgKworICAgICAgKGNoYW5uZWxz
ICE9PSAxID8gJy8nICsgY2hhbm5lbHMgOiAnJykgKyAnXHJcbic7Cit9OworCisvLyBQYXJzZXMg
YW4gYT1leHRtYXAgbGluZSAoaGVhZGVyZXh0ZW5zaW9uIGZyb20gUkZDIDUyODUpLiBTYW1wbGUg
aW5wdXQ6CisvLyBhPWV4dG1hcDoyIHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnRvZmZzZXQK
Ky8vIGE9ZXh0bWFwOjIvc2VuZG9ubHkgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6dG9mZnNl
dAorU0RQVXRpbHMucGFyc2VFeHRtYXAgPSBmdW5jdGlvbihsaW5lKSB7CisgIHZhciBwYXJ0cyA9
IGxpbmUuc3Vic3RyKDkpLnNwbGl0KCcgJyk7CisgIHJldHVybiB7CisgICAgaWQ6IHBhcnNlSW50
KHBhcnRzWzBdLCAxMCksCisgICAgZGlyZWN0aW9uOiBwYXJ0c1swXS5pbmRleE9mKCcvJykgPiAw
ID8gcGFydHNbMF0uc3BsaXQoJy8nKVsxXSA6ICdzZW5kcmVjdicsCisgICAgdXJpOiBwYXJ0c1sx
XQorICB9OworfTsKKworLy8gR2VuZXJhdGVzIGE9ZXh0bWFwIGxpbmUgZnJvbSBSVENSdHBIZWFk
ZXJFeHRlbnNpb25QYXJhbWV0ZXJzIG9yCisvLyBSVENSdHBIZWFkZXJFeHRlbnNpb24uCitTRFBV
dGlscy53cml0ZUV4dG1hcCA9IGZ1bmN0aW9uKGhlYWRlckV4dGVuc2lvbikgeworICByZXR1cm4g
J2E9ZXh0bWFwOicgKyAoaGVhZGVyRXh0ZW5zaW9uLmlkIHx8IGhlYWRlckV4dGVuc2lvbi5wcmVm
ZXJyZWRJZCkgKworICAgICAgKGhlYWRlckV4dGVuc2lvbi5kaXJlY3Rpb24gJiYgaGVhZGVyRXh0
ZW5zaW9uLmRpcmVjdGlvbiAhPT0gJ3NlbmRyZWN2JworICAgICAgICA/ICcvJyArIGhlYWRlckV4
dGVuc2lvbi5kaXJlY3Rpb24KKyAgICAgICAgOiAnJykgKworICAgICAgJyAnICsgaGVhZGVyRXh0
ZW5zaW9uLnVyaSArICdcclxuJzsKK307CisKKy8vIFBhcnNlcyBhbiBmdG1wIGxpbmUsIHJldHVy
bnMgZGljdGlvbmFyeS4gU2FtcGxlIGlucHV0OgorLy8gYT1mbXRwOjk2IHZicj1vbjtjbmc9b24K
Ky8vIEFsc28gZGVhbHMgd2l0aCB2YnI9b247IGNuZz1vbgorU0RQVXRpbHMucGFyc2VGbXRwID0g
ZnVuY3Rpb24obGluZSkgeworICB2YXIgcGFyc2VkID0ge307CisgIHZhciBrdjsKKyAgdmFyIHBh
cnRzID0gbGluZS5zdWJzdHIobGluZS5pbmRleE9mKCcgJykgKyAxKS5zcGxpdCgnOycpOworICBm
b3IgKHZhciBqID0gMDsgaiA8IHBhcnRzLmxlbmd0aDsgaisrKSB7CisgICAga3YgPSBwYXJ0c1tq
XS50cmltKCkuc3BsaXQoJz0nKTsKKyAgICBwYXJzZWRba3ZbMF0udHJpbSgpXSA9IGt2WzFdOwor
ICB9CisgIHJldHVybiBwYXJzZWQ7Cit9OworCisvLyBHZW5lcmF0ZXMgYW4gYT1mdG1wIGxpbmUg
ZnJvbSBSVENSdHBDb2RlY0NhcGFiaWxpdHkgb3IgUlRDUnRwQ29kZWNQYXJhbWV0ZXJzLgorU0RQ
VXRpbHMud3JpdGVGbXRwID0gZnVuY3Rpb24oY29kZWMpIHsKKyAgdmFyIGxpbmUgPSAnJzsKKyAg
dmFyIHB0ID0gY29kZWMucGF5bG9hZFR5cGU7CisgIGlmIChjb2RlYy5wcmVmZXJyZWRQYXlsb2Fk
VHlwZSAhPT0gdW5kZWZpbmVkKSB7CisgICAgcHQgPSBjb2RlYy5wcmVmZXJyZWRQYXlsb2FkVHlw
ZTsKKyAgfQorICBpZiAoY29kZWMucGFyYW1ldGVycyAmJiBPYmplY3Qua2V5cyhjb2RlYy5wYXJh
bWV0ZXJzKS5sZW5ndGgpIHsKKyAgICB2YXIgcGFyYW1zID0gW107CisgICAgT2JqZWN0LmtleXMo
Y29kZWMucGFyYW1ldGVycykuZm9yRWFjaChmdW5jdGlvbihwYXJhbSkgeworICAgICAgaWYgKGNv
ZGVjLnBhcmFtZXRlcnNbcGFyYW1dKSB7CisgICAgICAgIHBhcmFtcy5wdXNoKHBhcmFtICsgJz0n
ICsgY29kZWMucGFyYW1ldGVyc1twYXJhbV0pOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgcGFy
YW1zLnB1c2gocGFyYW0pOworICAgICAgfQorICAgIH0pOworICAgIGxpbmUgKz0gJ2E9Zm10cDon
ICsgcHQgKyAnICcgKyBwYXJhbXMuam9pbignOycpICsgJ1xyXG4nOworICB9CisgIHJldHVybiBs
aW5lOworfTsKKworLy8gUGFyc2VzIGFuIHJ0Y3AtZmIgbGluZSwgcmV0dXJucyBSVENQUnRjcEZl
ZWRiYWNrIG9iamVjdC4gU2FtcGxlIGlucHV0OgorLy8gYT1ydGNwLWZiOjk4IG5hY2sgcnBzaQor
U0RQVXRpbHMucGFyc2VSdGNwRmIgPSBmdW5jdGlvbihsaW5lKSB7CisgIHZhciBwYXJ0cyA9IGxp
bmUuc3Vic3RyKGxpbmUuaW5kZXhPZignICcpICsgMSkuc3BsaXQoJyAnKTsKKyAgcmV0dXJuIHsK
KyAgICB0eXBlOiBwYXJ0cy5zaGlmdCgpLAorICAgIHBhcmFtZXRlcjogcGFydHMuam9pbignICcp
CisgIH07Cit9OworLy8gR2VuZXJhdGUgYT1ydGNwLWZiIGxpbmVzIGZyb20gUlRDUnRwQ29kZWND
YXBhYmlsaXR5IG9yIFJUQ1J0cENvZGVjUGFyYW1ldGVycy4KK1NEUFV0aWxzLndyaXRlUnRjcEZi
ID0gZnVuY3Rpb24oY29kZWMpIHsKKyAgdmFyIGxpbmVzID0gJyc7CisgIHZhciBwdCA9IGNvZGVj
LnBheWxvYWRUeXBlOworICBpZiAoY29kZWMucHJlZmVycmVkUGF5bG9hZFR5cGUgIT09IHVuZGVm
aW5lZCkgeworICAgIHB0ID0gY29kZWMucHJlZmVycmVkUGF5bG9hZFR5cGU7CisgIH0KKyAgaWYg
KGNvZGVjLnJ0Y3BGZWVkYmFjayAmJiBjb2RlYy5ydGNwRmVlZGJhY2subGVuZ3RoKSB7CisgICAg
Ly8gRklYTUU6IHNwZWNpYWwgaGFuZGxpbmcgZm9yIHRyci1pbnQ/CisgICAgY29kZWMucnRjcEZl
ZWRiYWNrLmZvckVhY2goZnVuY3Rpb24oZmIpIHsKKyAgICAgIGxpbmVzICs9ICdhPXJ0Y3AtZmI6
JyArIHB0ICsgJyAnICsgZmIudHlwZSArCisgICAgICAoZmIucGFyYW1ldGVyICYmIGZiLnBhcmFt
ZXRlci5sZW5ndGggPyAnICcgKyBmYi5wYXJhbWV0ZXIgOiAnJykgKworICAgICAgICAgICdcclxu
JzsKKyAgICB9KTsKKyAgfQorICByZXR1cm4gbGluZXM7Cit9OworCisvLyBQYXJzZXMgYW4gUkZD
IDU1NzYgc3NyYyBtZWRpYSBhdHRyaWJ1dGUuIFNhbXBsZSBpbnB1dDoKKy8vIGE9c3NyYzozNzM1
OTI4NTU5IGNuYW1lOnNvbWV0aGluZworU0RQVXRpbHMucGFyc2VTc3JjTWVkaWEgPSBmdW5jdGlv
bihsaW5lKSB7CisgIHZhciBzcCA9IGxpbmUuaW5kZXhPZignICcpOworICB2YXIgcGFydHMgPSB7
CisgICAgc3NyYzogcGFyc2VJbnQobGluZS5zdWJzdHIoNywgc3AgLSA3KSwgMTApCisgIH07Cisg
IHZhciBjb2xvbiA9IGxpbmUuaW5kZXhPZignOicsIHNwKTsKKyAgaWYgKGNvbG9uID4gLTEpIHsK
KyAgICBwYXJ0cy5hdHRyaWJ1dGUgPSBsaW5lLnN1YnN0cihzcCArIDEsIGNvbG9uIC0gc3AgLSAx
KTsKKyAgICBwYXJ0cy52YWx1ZSA9IGxpbmUuc3Vic3RyKGNvbG9uICsgMSk7CisgIH0gZWxzZSB7
CisgICAgcGFydHMuYXR0cmlidXRlID0gbGluZS5zdWJzdHIoc3AgKyAxKTsKKyAgfQorICByZXR1
cm4gcGFydHM7Cit9OworCitTRFBVdGlscy5wYXJzZVNzcmNHcm91cCA9IGZ1bmN0aW9uKGxpbmUp
IHsKKyAgdmFyIHBhcnRzID0gbGluZS5zdWJzdHIoMTMpLnNwbGl0KCcgJyk7CisgIHJldHVybiB7
CisgICAgc2VtYW50aWNzOiBwYXJ0cy5zaGlmdCgpLAorICAgIHNzcmNzOiBwYXJ0cy5tYXAoZnVu
Y3Rpb24oc3NyYykgeworICAgICAgcmV0dXJuIHBhcnNlSW50KHNzcmMsIDEwKTsKKyAgICB9KQor
ICB9OworfTsKKworLy8gRXh0cmFjdHMgdGhlIE1JRCAoUkZDIDU4ODgpIGZyb20gYSBtZWRpYSBz
ZWN0aW9uLgorLy8gcmV0dXJucyB0aGUgTUlEIG9yIHVuZGVmaW5lZCBpZiBubyBtaWQgbGluZSB3
YXMgZm91bmQuCitTRFBVdGlscy5nZXRNaWQgPSBmdW5jdGlvbihtZWRpYVNlY3Rpb24pIHsKKyAg
dmFyIG1pZCA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlvbiwgJ2E9bWlkOicpWzBd
OworICBpZiAobWlkKSB7CisgICAgcmV0dXJuIG1pZC5zdWJzdHIoNik7CisgIH0KK307CisKK1NE
UFV0aWxzLnBhcnNlRmluZ2VycHJpbnQgPSBmdW5jdGlvbihsaW5lKSB7CisgIHZhciBwYXJ0cyA9
IGxpbmUuc3Vic3RyKDE0KS5zcGxpdCgnICcpOworICByZXR1cm4geworICAgIGFsZ29yaXRobTog
cGFydHNbMF0udG9Mb3dlckNhc2UoKSwgLy8gYWxnb3JpdGhtIGlzIGNhc2Utc2Vuc2l0aXZlIGlu
IEVkZ2UuCisgICAgdmFsdWU6IHBhcnRzWzFdCisgIH07Cit9OworCisvLyBFeHRyYWN0cyBEVExT
IHBhcmFtZXRlcnMgZnJvbSBTRFAgbWVkaWEgc2VjdGlvbiBvciBzZXNzaW9ucGFydC4KKy8vIEZJ
WE1FOiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciBmdW5jdGlvbnMgdGhpcyBzaG91bGQgb25s
eQorLy8gICBnZXQgdGhlIGZpbmdlcnByaW50IGxpbmUgYXMgaW5wdXQuIFNlZSBhbHNvIGdldElj
ZVBhcmFtZXRlcnMuCitTRFBVdGlscy5nZXREdGxzUGFyYW1ldGVycyA9IGZ1bmN0aW9uKG1lZGlh
U2VjdGlvbiwgc2Vzc2lvbnBhcnQpIHsKKyAgdmFyIGxpbmVzID0gU0RQVXRpbHMubWF0Y2hQcmVm
aXgobWVkaWFTZWN0aW9uICsgc2Vzc2lvbnBhcnQsCisgICAgJ2E9ZmluZ2VycHJpbnQ6Jyk7Cisg
IC8vIE5vdGU6IGE9c2V0dXAgbGluZSBpcyBpZ25vcmVkIHNpbmNlIHdlIHVzZSB0aGUgJ2F1dG8n
IHJvbGUuCisgIC8vIE5vdGUyOiAnYWxnb3JpdGhtJyBpcyBub3QgY2FzZSBzZW5zaXRpdmUgZXhj
ZXB0IGluIEVkZ2UuCisgIHJldHVybiB7CisgICAgcm9sZTogJ2F1dG8nLAorICAgIGZpbmdlcnBy
aW50czogbGluZXMubWFwKFNEUFV0aWxzLnBhcnNlRmluZ2VycHJpbnQpCisgIH07Cit9OworCisv
LyBTZXJpYWxpemVzIERUTFMgcGFyYW1ldGVycyB0byBTRFAuCitTRFBVdGlscy53cml0ZUR0bHNQ
YXJhbWV0ZXJzID0gZnVuY3Rpb24ocGFyYW1zLCBzZXR1cFR5cGUpIHsKKyAgdmFyIHNkcCA9ICdh
PXNldHVwOicgKyBzZXR1cFR5cGUgKyAnXHJcbic7CisgIHBhcmFtcy5maW5nZXJwcmludHMuZm9y
RWFjaChmdW5jdGlvbihmcCkgeworICAgIHNkcCArPSAnYT1maW5nZXJwcmludDonICsgZnAuYWxn
b3JpdGhtICsgJyAnICsgZnAudmFsdWUgKyAnXHJcbic7CisgIH0pOworICByZXR1cm4gc2RwOwor
fTsKKworLy8gUGFyc2VzIGE9Y3J5cHRvIGxpbmVzIGludG8KKy8vICAgaHR0cHM6Ly9yYXdnaXQu
Y29tL2Fib2JhL2VkZ2VydGMvbWFzdGVyL21zb3J0Yy1yczQuaHRtbCNkaWN0aW9uYXJ5LXJ0Y3Ny
dHBzZGVzcGFyYW1ldGVycy1tZW1iZXJzCitTRFBVdGlscy5wYXJzZUNyeXB0b0xpbmUgPSBmdW5j
dGlvbihsaW5lKSB7CisgIHZhciBwYXJ0cyA9IGxpbmUuc3Vic3RyKDkpLnNwbGl0KCcgJyk7Cisg
IHJldHVybiB7CisgICAgdGFnOiBwYXJzZUludChwYXJ0c1swXSwgMTApLAorICAgIGNyeXB0b1N1
aXRlOiBwYXJ0c1sxXSwKKyAgICBrZXlQYXJhbXM6IHBhcnRzWzJdLAorICAgIHNlc3Npb25QYXJh
bXM6IHBhcnRzLnNsaWNlKDMpLAorICB9OworfTsKKworU0RQVXRpbHMud3JpdGVDcnlwdG9MaW5l
ID0gZnVuY3Rpb24ocGFyYW1ldGVycykgeworICByZXR1cm4gJ2E9Y3J5cHRvOicgKyBwYXJhbWV0
ZXJzLnRhZyArICcgJyArCisgICAgcGFyYW1ldGVycy5jcnlwdG9TdWl0ZSArICcgJyArCisgICAg
KHR5cGVvZiBwYXJhbWV0ZXJzLmtleVBhcmFtcyA9PT0gJ29iamVjdCcKKyAgICAgID8gU0RQVXRp
bHMud3JpdGVDcnlwdG9LZXlQYXJhbXMocGFyYW1ldGVycy5rZXlQYXJhbXMpCisgICAgICA6IHBh
cmFtZXRlcnMua2V5UGFyYW1zKSArCisgICAgKHBhcmFtZXRlcnMuc2Vzc2lvblBhcmFtcyA/ICcg
JyArIHBhcmFtZXRlcnMuc2Vzc2lvblBhcmFtcy5qb2luKCcgJykgOiAnJykgKworICAgICdcclxu
JzsKK307CisKKy8vIFBhcnNlcyB0aGUgY3J5cHRvIGtleSBwYXJhbWV0ZXJzIGludG8KKy8vICAg
aHR0cHM6Ly9yYXdnaXQuY29tL2Fib2JhL2VkZ2VydGMvbWFzdGVyL21zb3J0Yy1yczQuaHRtbCNy
dGNzcnRwa2V5cGFyYW0qCitTRFBVdGlscy5wYXJzZUNyeXB0b0tleVBhcmFtcyA9IGZ1bmN0aW9u
KGtleVBhcmFtcykgeworICBpZiAoa2V5UGFyYW1zLmluZGV4T2YoJ2lubGluZTonKSAhPT0gMCkg
eworICAgIHJldHVybiBudWxsOworICB9CisgIHZhciBwYXJ0cyA9IGtleVBhcmFtcy5zdWJzdHIo
Nykuc3BsaXQoJ3wnKTsKKyAgcmV0dXJuIHsKKyAgICBrZXlNZXRob2Q6ICdpbmxpbmUnLAorICAg
IGtleVNhbHQ6IHBhcnRzWzBdLAorICAgIGxpZmVUaW1lOiBwYXJ0c1sxXSwKKyAgICBta2lWYWx1
ZTogcGFydHNbMl0gPyBwYXJ0c1syXS5zcGxpdCgnOicpWzBdIDogdW5kZWZpbmVkLAorICAgIG1r
aUxlbmd0aDogcGFydHNbMl0gPyBwYXJ0c1syXS5zcGxpdCgnOicpWzFdIDogdW5kZWZpbmVkLAor
ICB9OworfTsKKworU0RQVXRpbHMud3JpdGVDcnlwdG9LZXlQYXJhbXMgPSBmdW5jdGlvbihrZXlQ
YXJhbXMpIHsKKyAgcmV0dXJuIGtleVBhcmFtcy5rZXlNZXRob2QgKyAnOicKKyAgICArIGtleVBh
cmFtcy5rZXlTYWx0ICsKKyAgICAoa2V5UGFyYW1zLmxpZmVUaW1lID8gJ3wnICsga2V5UGFyYW1z
LmxpZmVUaW1lIDogJycpICsKKyAgICAoa2V5UGFyYW1zLm1raVZhbHVlICYmIGtleVBhcmFtcy5t
a2lMZW5ndGgKKyAgICAgID8gJ3wnICsga2V5UGFyYW1zLm1raVZhbHVlICsgJzonICsga2V5UGFy
YW1zLm1raUxlbmd0aAorICAgICAgOiAnJyk7Cit9OworCisvLyBFeHRyYWN0cyBhbGwgU0RFUyBw
YXJhbXRlcnMuCitTRFBVdGlscy5nZXRDcnlwdG9QYXJhbWV0ZXJzID0gZnVuY3Rpb24obWVkaWFT
ZWN0aW9uLCBzZXNzaW9ucGFydCkgeworICB2YXIgbGluZXMgPSBTRFBVdGlscy5tYXRjaFByZWZp
eChtZWRpYVNlY3Rpb24gKyBzZXNzaW9ucGFydCwKKyAgICAnYT1jcnlwdG86Jyk7CisgIHJldHVy
biBsaW5lcy5tYXAoU0RQVXRpbHMucGFyc2VDcnlwdG9MaW5lKTsKK307CisKKy8vIFBhcnNlcyBJ
Q0UgaW5mb3JtYXRpb24gZnJvbSBTRFAgbWVkaWEgc2VjdGlvbiBvciBzZXNzaW9ucGFydC4KKy8v
IEZJWE1FOiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciBmdW5jdGlvbnMgdGhpcyBzaG91bGQg
b25seQorLy8gICBnZXQgdGhlIGljZS11ZnJhZyBhbmQgaWNlLXB3ZCBsaW5lcyBhcyBpbnB1dC4K
K1NEUFV0aWxzLmdldEljZVBhcmFtZXRlcnMgPSBmdW5jdGlvbihtZWRpYVNlY3Rpb24sIHNlc3Np
b25wYXJ0KSB7CisgIHZhciB1ZnJhZyA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlv
biArIHNlc3Npb25wYXJ0LAorICAgICdhPWljZS11ZnJhZzonKVswXTsKKyAgdmFyIHB3ZCA9IFNE
UFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlvbiArIHNlc3Npb25wYXJ0LAorICAgICdhPWlj
ZS1wd2Q6JylbMF07CisgIGlmICghKHVmcmFnICYmIHB3ZCkpIHsKKyAgICByZXR1cm4gbnVsbDsK
KyAgfQorICByZXR1cm4geworICAgIHVzZXJuYW1lRnJhZ21lbnQ6IHVmcmFnLnN1YnN0cigxMiks
CisgICAgcGFzc3dvcmQ6IHB3ZC5zdWJzdHIoMTApLAorICB9OworfTsKKworLy8gU2VyaWFsaXpl
cyBJQ0UgcGFyYW1ldGVycyB0byBTRFAuCitTRFBVdGlscy53cml0ZUljZVBhcmFtZXRlcnMgPSBm
dW5jdGlvbihwYXJhbXMpIHsKKyAgcmV0dXJuICdhPWljZS11ZnJhZzonICsgcGFyYW1zLnVzZXJu
YW1lRnJhZ21lbnQgKyAnXHJcbicgKworICAgICAgJ2E9aWNlLXB3ZDonICsgcGFyYW1zLnBhc3N3
b3JkICsgJ1xyXG4nOworfTsKKworLy8gUGFyc2VzIHRoZSBTRFAgbWVkaWEgc2VjdGlvbiBhbmQg
cmV0dXJucyBSVENSdHBQYXJhbWV0ZXJzLgorU0RQVXRpbHMucGFyc2VSdHBQYXJhbWV0ZXJzID0g
ZnVuY3Rpb24obWVkaWFTZWN0aW9uKSB7CisgIHZhciBkZXNjcmlwdGlvbiA9IHsKKyAgICBjb2Rl
Y3M6IFtdLAorICAgIGhlYWRlckV4dGVuc2lvbnM6IFtdLAorICAgIGZlY01lY2hhbmlzbXM6IFtd
LAorICAgIHJ0Y3A6IFtdCisgIH07CisgIHZhciBsaW5lcyA9IFNEUFV0aWxzLnNwbGl0TGluZXMo
bWVkaWFTZWN0aW9uKTsKKyAgdmFyIG1saW5lID0gbGluZXNbMF0uc3BsaXQoJyAnKTsKKyAgZm9y
ICh2YXIgaSA9IDM7IGkgPCBtbGluZS5sZW5ndGg7IGkrKykgeyAvLyBmaW5kIGFsbCBjb2RlY3Mg
ZnJvbSBtbGluZVszLi5dCisgICAgdmFyIHB0ID0gbWxpbmVbaV07CisgICAgdmFyIHJ0cG1hcGxp
bmUgPSBTRFBVdGlscy5tYXRjaFByZWZpeCgKKyAgICAgIG1lZGlhU2VjdGlvbiwgJ2E9cnRwbWFw
OicgKyBwdCArICcgJylbMF07CisgICAgaWYgKHJ0cG1hcGxpbmUpIHsKKyAgICAgIHZhciBjb2Rl
YyA9IFNEUFV0aWxzLnBhcnNlUnRwTWFwKHJ0cG1hcGxpbmUpOworICAgICAgdmFyIGZtdHBzID0g
U0RQVXRpbHMubWF0Y2hQcmVmaXgoCisgICAgICAgIG1lZGlhU2VjdGlvbiwgJ2E9Zm10cDonICsg
cHQgKyAnICcpOworICAgICAgLy8gT25seSB0aGUgZmlyc3QgYT1mbXRwOjxwdD4gaXMgY29uc2lk
ZXJlZC4KKyAgICAgIGNvZGVjLnBhcmFtZXRlcnMgPSBmbXRwcy5sZW5ndGggPyBTRFBVdGlscy5w
YXJzZUZtdHAoZm10cHNbMF0pIDoge307CisgICAgICBjb2RlYy5ydGNwRmVlZGJhY2sgPSBTRFBV
dGlscy5tYXRjaFByZWZpeCgKKyAgICAgICAgbWVkaWFTZWN0aW9uLCAnYT1ydGNwLWZiOicgKyBw
dCArICcgJykKKyAgICAgICAgLm1hcChTRFBVdGlscy5wYXJzZVJ0Y3BGYik7CisgICAgICBkZXNj
cmlwdGlvbi5jb2RlY3MucHVzaChjb2RlYyk7CisgICAgICAvLyBwYXJzZSBGRUMgbWVjaGFuaXNt
cyBmcm9tIHJ0cG1hcCBsaW5lcy4KKyAgICAgIHN3aXRjaCAoY29kZWMubmFtZS50b1VwcGVyQ2Fz
ZSgpKSB7CisgICAgICAgIGNhc2UgJ1JFRCc6CisgICAgICAgIGNhc2UgJ1VMUEZFQyc6CisgICAg
ICAgICAgZGVzY3JpcHRpb24uZmVjTWVjaGFuaXNtcy5wdXNoKGNvZGVjLm5hbWUudG9VcHBlckNh
c2UoKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6IC8vIG9ubHkgUkVEIGFu
ZCBVTFBGRUMgYXJlIHJlY29nbml6ZWQgYXMgRkVDIG1lY2hhbmlzbXMuCisgICAgICAgICAgYnJl
YWs7CisgICAgICB9CisgICAgfQorICB9CisgIFNEUFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2Vj
dGlvbiwgJ2E9ZXh0bWFwOicpLmZvckVhY2goZnVuY3Rpb24obGluZSkgeworICAgIGRlc2NyaXB0
aW9uLmhlYWRlckV4dGVuc2lvbnMucHVzaChTRFBVdGlscy5wYXJzZUV4dG1hcChsaW5lKSk7Cisg
IH0pOworICAvLyBGSVhNRTogcGFyc2UgcnRjcC4KKyAgcmV0dXJuIGRlc2NyaXB0aW9uOworfTsK
KworLy8gR2VuZXJhdGVzIHBhcnRzIG9mIHRoZSBTRFAgbWVkaWEgc2VjdGlvbiBkZXNjcmliaW5n
IHRoZSBjYXBhYmlsaXRpZXMgLworLy8gcGFyYW1ldGVycy4KK1NEUFV0aWxzLndyaXRlUnRwRGVz
Y3JpcHRpb24gPSBmdW5jdGlvbihraW5kLCBjYXBzKSB7CisgIHZhciBzZHAgPSAnJzsKKworICAv
LyBCdWlsZCB0aGUgbWxpbmUuCisgIHNkcCArPSAnbT0nICsga2luZCArICcgJzsKKyAgc2RwICs9
IGNhcHMuY29kZWNzLmxlbmd0aCA+IDAgPyAnOScgOiAnMCc7IC8vIHJlamVjdCBpZiBubyBjb2Rl
Y3MuCisgIHNkcCArPSAnIFVEUC9UTFMvUlRQL1NBVlBGICc7CisgIHNkcCArPSBjYXBzLmNvZGVj
cy5tYXAoZnVuY3Rpb24oY29kZWMpIHsKKyAgICBpZiAoY29kZWMucHJlZmVycmVkUGF5bG9hZFR5
cGUgIT09IHVuZGVmaW5lZCkgeworICAgICAgcmV0dXJuIGNvZGVjLnByZWZlcnJlZFBheWxvYWRU
eXBlOworICAgIH0KKyAgICByZXR1cm4gY29kZWMucGF5bG9hZFR5cGU7CisgIH0pLmpvaW4oJyAn
KSArICdcclxuJzsKKworICBzZHAgKz0gJ2M9SU4gSVA0IDAuMC4wLjBcclxuJzsKKyAgc2RwICs9
ICdhPXJ0Y3A6OSBJTiBJUDQgMC4wLjAuMFxyXG4nOworCisgIC8vIEFkZCBhPXJ0cG1hcCBsaW5l
cyBmb3IgZWFjaCBjb2RlYy4gQWxzbyBmbXRwIGFuZCBydGNwLWZiLgorICBjYXBzLmNvZGVjcy5m
b3JFYWNoKGZ1bmN0aW9uKGNvZGVjKSB7CisgICAgc2RwICs9IFNEUFV0aWxzLndyaXRlUnRwTWFw
KGNvZGVjKTsKKyAgICBzZHAgKz0gU0RQVXRpbHMud3JpdGVGbXRwKGNvZGVjKTsKKyAgICBzZHAg
Kz0gU0RQVXRpbHMud3JpdGVSdGNwRmIoY29kZWMpOworICB9KTsKKyAgdmFyIG1heHB0aW1lID0g
MDsKKyAgY2Fwcy5jb2RlY3MuZm9yRWFjaChmdW5jdGlvbihjb2RlYykgeworICAgIGlmIChjb2Rl
Yy5tYXhwdGltZSA+IG1heHB0aW1lKSB7CisgICAgICBtYXhwdGltZSA9IGNvZGVjLm1heHB0aW1l
OworICAgIH0KKyAgfSk7CisgIGlmIChtYXhwdGltZSA+IDApIHsKKyAgICBzZHAgKz0gJ2E9bWF4
cHRpbWU6JyArIG1heHB0aW1lICsgJ1xyXG4nOworICB9CisgIHNkcCArPSAnYT1ydGNwLW11eFxy
XG4nOworCisgIGlmIChjYXBzLmhlYWRlckV4dGVuc2lvbnMpIHsKKyAgICBjYXBzLmhlYWRlckV4
dGVuc2lvbnMuZm9yRWFjaChmdW5jdGlvbihleHRlbnNpb24pIHsKKyAgICAgIHNkcCArPSBTRFBV
dGlscy53cml0ZUV4dG1hcChleHRlbnNpb24pOworICAgIH0pOworICB9CisgIC8vIEZJWE1FOiB3
cml0ZSBmZWNNZWNoYW5pc21zLgorICByZXR1cm4gc2RwOworfTsKKworLy8gUGFyc2VzIHRoZSBT
RFAgbWVkaWEgc2VjdGlvbiBhbmQgcmV0dXJucyBhbiBhcnJheSBvZgorLy8gUlRDUnRwRW5jb2Rp
bmdQYXJhbWV0ZXJzLgorU0RQVXRpbHMucGFyc2VSdHBFbmNvZGluZ1BhcmFtZXRlcnMgPSBmdW5j
dGlvbihtZWRpYVNlY3Rpb24pIHsKKyAgdmFyIGVuY29kaW5nUGFyYW1ldGVycyA9IFtdOworICB2
YXIgZGVzY3JpcHRpb24gPSBTRFBVdGlscy5wYXJzZVJ0cFBhcmFtZXRlcnMobWVkaWFTZWN0aW9u
KTsKKyAgdmFyIGhhc1JlZCA9IGRlc2NyaXB0aW9uLmZlY01lY2hhbmlzbXMuaW5kZXhPZignUkVE
JykgIT09IC0xOworICB2YXIgaGFzVWxwZmVjID0gZGVzY3JpcHRpb24uZmVjTWVjaGFuaXNtcy5p
bmRleE9mKCdVTFBGRUMnKSAhPT0gLTE7CisKKyAgLy8gZmlsdGVyIGE9c3NyYzouLi4gY25hbWU6
LCBpZ25vcmUgUGxhbkItbXNpZAorICB2YXIgc3NyY3MgPSBTRFBVdGlscy5tYXRjaFByZWZpeCht
ZWRpYVNlY3Rpb24sICdhPXNzcmM6JykKKyAgICAubWFwKGZ1bmN0aW9uKGxpbmUpIHsKKyAgICAg
IHJldHVybiBTRFBVdGlscy5wYXJzZVNzcmNNZWRpYShsaW5lKTsKKyAgICB9KQorICAgIC5maWx0
ZXIoZnVuY3Rpb24ocGFydHMpIHsKKyAgICAgIHJldHVybiBwYXJ0cy5hdHRyaWJ1dGUgPT09ICdj
bmFtZSc7CisgICAgfSk7CisgIHZhciBwcmltYXJ5U3NyYyA9IHNzcmNzLmxlbmd0aCA+IDAgJiYg
c3NyY3NbMF0uc3NyYzsKKyAgdmFyIHNlY29uZGFyeVNzcmM7CisKKyAgdmFyIGZsb3dzID0gU0RQ
VXRpbHMubWF0Y2hQcmVmaXgobWVkaWFTZWN0aW9uLCAnYT1zc3JjLWdyb3VwOkZJRCcpCisgICAg
Lm1hcChmdW5jdGlvbihsaW5lKSB7CisgICAgICB2YXIgcGFydHMgPSBsaW5lLnN1YnN0cigxNyku
c3BsaXQoJyAnKTsKKyAgICAgIHJldHVybiBwYXJ0cy5tYXAoZnVuY3Rpb24ocGFydCkgeworICAg
ICAgICByZXR1cm4gcGFyc2VJbnQocGFydCwgMTApOworICAgICAgfSk7CisgICAgfSk7CisgIGlm
IChmbG93cy5sZW5ndGggPiAwICYmIGZsb3dzWzBdLmxlbmd0aCA+IDEgJiYgZmxvd3NbMF1bMF0g
PT09IHByaW1hcnlTc3JjKSB7CisgICAgc2Vjb25kYXJ5U3NyYyA9IGZsb3dzWzBdWzFdOworICB9
CisKKyAgZGVzY3JpcHRpb24uY29kZWNzLmZvckVhY2goZnVuY3Rpb24oY29kZWMpIHsKKyAgICBp
ZiAoY29kZWMubmFtZS50b1VwcGVyQ2FzZSgpID09PSAnUlRYJyAmJiBjb2RlYy5wYXJhbWV0ZXJz
LmFwdCkgeworICAgICAgdmFyIGVuY1BhcmFtID0geworICAgICAgICBzc3JjOiBwcmltYXJ5U3Ny
YywKKyAgICAgICAgY29kZWNQYXlsb2FkVHlwZTogcGFyc2VJbnQoY29kZWMucGFyYW1ldGVycy5h
cHQsIDEwKQorICAgICAgfTsKKyAgICAgIGlmIChwcmltYXJ5U3NyYyAmJiBzZWNvbmRhcnlTc3Jj
KSB7CisgICAgICAgIGVuY1BhcmFtLnJ0eCA9IHtzc3JjOiBzZWNvbmRhcnlTc3JjfTsKKyAgICAg
IH0KKyAgICAgIGVuY29kaW5nUGFyYW1ldGVycy5wdXNoKGVuY1BhcmFtKTsKKyAgICAgIGlmICho
YXNSZWQpIHsKKyAgICAgICAgZW5jUGFyYW0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGVu
Y1BhcmFtKSk7CisgICAgICAgIGVuY1BhcmFtLmZlYyA9IHsKKyAgICAgICAgICBzc3JjOiBwcmlt
YXJ5U3NyYywKKyAgICAgICAgICBtZWNoYW5pc206IGhhc1VscGZlYyA/ICdyZWQrdWxwZmVjJyA6
ICdyZWQnCisgICAgICAgIH07CisgICAgICAgIGVuY29kaW5nUGFyYW1ldGVycy5wdXNoKGVuY1Bh
cmFtKTsKKyAgICAgIH0KKyAgICB9CisgIH0pOworICBpZiAoZW5jb2RpbmdQYXJhbWV0ZXJzLmxl
bmd0aCA9PT0gMCAmJiBwcmltYXJ5U3NyYykgeworICAgIGVuY29kaW5nUGFyYW1ldGVycy5wdXNo
KHsKKyAgICAgIHNzcmM6IHByaW1hcnlTc3JjCisgICAgfSk7CisgIH0KKworICAvLyB3ZSBzdXBw
b3J0IGJvdGggYj1BUyBhbmQgYj1USUFTIGJ1dCBpbnRlcnByZXQgQVMgYXMgVElBUy4KKyAgdmFy
IGJhbmR3aWR0aCA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlvbiwgJ2I9Jyk7Cisg
IGlmIChiYW5kd2lkdGgubGVuZ3RoKSB7CisgICAgaWYgKGJhbmR3aWR0aFswXS5pbmRleE9mKCdi
PVRJQVM6JykgPT09IDApIHsKKyAgICAgIGJhbmR3aWR0aCA9IHBhcnNlSW50KGJhbmR3aWR0aFsw
XS5zdWJzdHIoNyksIDEwKTsKKyAgICB9IGVsc2UgaWYgKGJhbmR3aWR0aFswXS5pbmRleE9mKCdi
PUFTOicpID09PSAwKSB7CisgICAgICAvLyB1c2UgZm9ybXVsYSBmcm9tIEpTRVAgdG8gY29udmVy
dCBiPUFTIHRvIFRJQVMgdmFsdWUuCisgICAgICBiYW5kd2lkdGggPSBwYXJzZUludChiYW5kd2lk
dGhbMF0uc3Vic3RyKDUpLCAxMCkgKiAxMDAwICogMC45NQorICAgICAgICAgIC0gKDUwICogNDAg
KiA4KTsKKyAgICB9IGVsc2UgeworICAgICAgYmFuZHdpZHRoID0gdW5kZWZpbmVkOworICAgIH0K
KyAgICBlbmNvZGluZ1BhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbihwYXJhbXMpIHsKKyAgICAg
IHBhcmFtcy5tYXhCaXRyYXRlID0gYmFuZHdpZHRoOworICAgIH0pOworICB9CisgIHJldHVybiBl
bmNvZGluZ1BhcmFtZXRlcnM7Cit9OworCisvLyBwYXJzZXMgaHR0cDovL2RyYWZ0Lm9ydGMub3Jn
LyNydGNydGNwcGFyYW1ldGVycyoKK1NEUFV0aWxzLnBhcnNlUnRjcFBhcmFtZXRlcnMgPSBmdW5j
dGlvbihtZWRpYVNlY3Rpb24pIHsKKyAgdmFyIHJ0Y3BQYXJhbWV0ZXJzID0ge307CisKKyAgLy8g
R2V0cyB0aGUgZmlyc3QgU1NSQy4gTm90ZSB0aGEgd2l0aCBSVFggdGhlcmUgbWlnaHQgYmUgbXVs
dGlwbGUKKyAgLy8gU1NSQ3MuCisgIHZhciByZW1vdGVTc3JjID0gU0RQVXRpbHMubWF0Y2hQcmVm
aXgobWVkaWFTZWN0aW9uLCAnYT1zc3JjOicpCisgICAgLm1hcChmdW5jdGlvbihsaW5lKSB7Cisg
ICAgICByZXR1cm4gU0RQVXRpbHMucGFyc2VTc3JjTWVkaWEobGluZSk7CisgICAgfSkKKyAgICAu
ZmlsdGVyKGZ1bmN0aW9uKG9iaikgeworICAgICAgcmV0dXJuIG9iai5hdHRyaWJ1dGUgPT09ICdj
bmFtZSc7CisgICAgfSlbMF07CisgIGlmIChyZW1vdGVTc3JjKSB7CisgICAgcnRjcFBhcmFtZXRl
cnMuY25hbWUgPSByZW1vdGVTc3JjLnZhbHVlOworICAgIHJ0Y3BQYXJhbWV0ZXJzLnNzcmMgPSBy
ZW1vdGVTc3JjLnNzcmM7CisgIH0KKworICAvLyBFZGdlIHVzZXMgdGhlIGNvbXBvdW5kIGF0dHJp
YnV0ZSBpbnN0ZWFkIG9mIHJlZHVjZWRTaXplCisgIC8vIGNvbXBvdW5kIGlzICFyZWR1Y2VkU2l6
ZQorICB2YXIgcnNpemUgPSBTRFBVdGlscy5tYXRjaFByZWZpeChtZWRpYVNlY3Rpb24sICdhPXJ0
Y3AtcnNpemUnKTsKKyAgcnRjcFBhcmFtZXRlcnMucmVkdWNlZFNpemUgPSByc2l6ZS5sZW5ndGgg
PiAwOworICBydGNwUGFyYW1ldGVycy5jb21wb3VuZCA9IHJzaXplLmxlbmd0aCA9PT0gMDsKKwor
ICAvLyBwYXJzZXMgdGhlIHJ0Y3AtbXV4IGF0dHLRlmJ1dGUuCisgIC8vIE5vdGUgdGhhdCBFZGdl
IGRvZXMgbm90IHN1cHBvcnQgdW5tdXhlZCBSVENQLgorICB2YXIgbXV4ID0gU0RQVXRpbHMubWF0
Y2hQcmVmaXgobWVkaWFTZWN0aW9uLCAnYT1ydGNwLW11eCcpOworICBydGNwUGFyYW1ldGVycy5t
dXggPSBtdXgubGVuZ3RoID4gMDsKKworICByZXR1cm4gcnRjcFBhcmFtZXRlcnM7Cit9OworCisv
LyBwYXJzZXMgZWl0aGVyIGE9bXNpZDogb3IgYT1zc3JjOi4uLiBtc2lkIGxpbmVzIGFuZCByZXR1
cm5zCisvLyB0aGUgaWQgb2YgdGhlIE1lZGlhU3RyZWFtIGFuZCBNZWRpYVN0cmVhbVRyYWNrLgor
U0RQVXRpbHMucGFyc2VNc2lkID0gZnVuY3Rpb24obWVkaWFTZWN0aW9uKSB7CisgIHZhciBwYXJ0
czsKKyAgdmFyIHNwZWMgPSBTRFBVdGlscy5tYXRjaFByZWZpeChtZWRpYVNlY3Rpb24sICdhPW1z
aWQ6Jyk7CisgIGlmIChzcGVjLmxlbmd0aCA9PT0gMSkgeworICAgIHBhcnRzID0gc3BlY1swXS5z
dWJzdHIoNykuc3BsaXQoJyAnKTsKKyAgICByZXR1cm4ge3N0cmVhbTogcGFydHNbMF0sIHRyYWNr
OiBwYXJ0c1sxXX07CisgIH0KKyAgdmFyIHBsYW5CID0gU0RQVXRpbHMubWF0Y2hQcmVmaXgobWVk
aWFTZWN0aW9uLCAnYT1zc3JjOicpCisgICAgLm1hcChmdW5jdGlvbihsaW5lKSB7CisgICAgICBy
ZXR1cm4gU0RQVXRpbHMucGFyc2VTc3JjTWVkaWEobGluZSk7CisgICAgfSkKKyAgICAuZmlsdGVy
KGZ1bmN0aW9uKG1zaWRQYXJ0cykgeworICAgICAgcmV0dXJuIG1zaWRQYXJ0cy5hdHRyaWJ1dGUg
PT09ICdtc2lkJzsKKyAgICB9KTsKKyAgaWYgKHBsYW5CLmxlbmd0aCA+IDApIHsKKyAgICBwYXJ0
cyA9IHBsYW5CWzBdLnZhbHVlLnNwbGl0KCcgJyk7CisgICAgcmV0dXJuIHtzdHJlYW06IHBhcnRz
WzBdLCB0cmFjazogcGFydHNbMV19OworICB9Cit9OworCisvLyBTQ1RQCisvLyBwYXJzZXMgZHJh
ZnQtaWV0Zi1tbXVzaWMtc2N0cC1zZHAtMjYgZmlyc3QgYW5kIGZhbGxzIGJhY2sKKy8vIHRvIGRy
YWZ0LWlldGYtbW11c2ljLXNjdHAtc2RwLTA1CitTRFBVdGlscy5wYXJzZVNjdHBEZXNjcmlwdGlv
biA9IGZ1bmN0aW9uKG1lZGlhU2VjdGlvbikgeworICB2YXIgbWxpbmUgPSBTRFBVdGlscy5wYXJz
ZU1MaW5lKG1lZGlhU2VjdGlvbik7CisgIHZhciBtYXhTaXplTGluZSA9IFNEUFV0aWxzLm1hdGNo
UHJlZml4KG1lZGlhU2VjdGlvbiwgJ2E9bWF4LW1lc3NhZ2Utc2l6ZTonKTsKKyAgdmFyIG1heE1l
c3NhZ2VTaXplOworICBpZiAobWF4U2l6ZUxpbmUubGVuZ3RoID4gMCkgeworICAgIG1heE1lc3Nh
Z2VTaXplID0gcGFyc2VJbnQobWF4U2l6ZUxpbmVbMF0uc3Vic3RyKDE5KSwgMTApOworICB9Cisg
IGlmIChpc05hTihtYXhNZXNzYWdlU2l6ZSkpIHsKKyAgICBtYXhNZXNzYWdlU2l6ZSA9IDY1NTM2
OworICB9CisgIHZhciBzY3RwUG9ydCA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlv
biwgJ2E9c2N0cC1wb3J0OicpOworICBpZiAoc2N0cFBvcnQubGVuZ3RoID4gMCkgeworICAgIHJl
dHVybiB7CisgICAgICBwb3J0OiBwYXJzZUludChzY3RwUG9ydFswXS5zdWJzdHIoMTIpLCAxMCks
CisgICAgICBwcm90b2NvbDogbWxpbmUuZm10LAorICAgICAgbWF4TWVzc2FnZVNpemU6IG1heE1l
c3NhZ2VTaXplCisgICAgfTsKKyAgfQorICB2YXIgc2N0cE1hcExpbmVzID0gU0RQVXRpbHMubWF0
Y2hQcmVmaXgobWVkaWFTZWN0aW9uLCAnYT1zY3RwbWFwOicpOworICBpZiAoc2N0cE1hcExpbmVz
Lmxlbmd0aCA+IDApIHsKKyAgICB2YXIgcGFydHMgPSBTRFBVdGlscy5tYXRjaFByZWZpeChtZWRp
YVNlY3Rpb24sICdhPXNjdHBtYXA6JylbMF0KKyAgICAgIC5zdWJzdHIoMTApCisgICAgICAuc3Bs
aXQoJyAnKTsKKyAgICByZXR1cm4geworICAgICAgcG9ydDogcGFyc2VJbnQocGFydHNbMF0sIDEw
KSwKKyAgICAgIHByb3RvY29sOiBwYXJ0c1sxXSwKKyAgICAgIG1heE1lc3NhZ2VTaXplOiBtYXhN
ZXNzYWdlU2l6ZQorICAgIH07CisgIH0KK307CisKKy8vIFNDVFAKKy8vIG91dHB1dHMgdGhlIGRy
YWZ0LWlldGYtbW11c2ljLXNjdHAtc2RwLTI2IHZlcnNpb24gdGhhdCBhbGwgYnJvd3NlcnMKKy8v
IHN1cHBvcnQgYnkgbm93IHJlY2VpdmluZyBpbiB0aGlzIGZvcm1hdCwgdW5sZXNzIHdlIG9yaWdp
bmFsbHkgcGFyc2VkCisvLyBhcyB0aGUgZHJhZnQtaWV0Zi1tbXVzaWMtc2N0cC1zZHAtMDUgZm9y
bWF0IChpbmRpY2F0ZWQgYnkgdGhlIG0tbGluZQorLy8gcHJvdG9jb2wgb2YgRFRMUy9TQ1RQIC0t
IHdpdGhvdXQgVURQLyBvciBUQ1AvKQorU0RQVXRpbHMud3JpdGVTY3RwRGVzY3JpcHRpb24gPSBm
dW5jdGlvbihtZWRpYSwgc2N0cCkgeworICB2YXIgb3V0cHV0ID0gW107CisgIGlmIChtZWRpYS5w
cm90b2NvbCAhPT0gJ0RUTFMvU0NUUCcpIHsKKyAgICBvdXRwdXQgPSBbCisgICAgICAnbT0nICsg
bWVkaWEua2luZCArICcgOSAnICsgbWVkaWEucHJvdG9jb2wgKyAnICcgKyBzY3RwLnByb3RvY29s
ICsgJ1xyXG4nLAorICAgICAgJ2M9SU4gSVA0IDAuMC4wLjBcclxuJywKKyAgICAgICdhPXNjdHAt
cG9ydDonICsgc2N0cC5wb3J0ICsgJ1xyXG4nCisgICAgXTsKKyAgfSBlbHNlIHsKKyAgICBvdXRw
dXQgPSBbCisgICAgICAnbT0nICsgbWVkaWEua2luZCArICcgOSAnICsgbWVkaWEucHJvdG9jb2wg
KyAnICcgKyBzY3RwLnBvcnQgKyAnXHJcbicsCisgICAgICAnYz1JTiBJUDQgMC4wLjAuMFxyXG4n
LAorICAgICAgJ2E9c2N0cG1hcDonICsgc2N0cC5wb3J0ICsgJyAnICsgc2N0cC5wcm90b2NvbCAr
ICcgNjU1MzVcclxuJworICAgIF07CisgIH0KKyAgaWYgKHNjdHAubWF4TWVzc2FnZVNpemUgIT09
IHVuZGVmaW5lZCkgeworICAgIG91dHB1dC5wdXNoKCdhPW1heC1tZXNzYWdlLXNpemU6JyArIHNj
dHAubWF4TWVzc2FnZVNpemUgKyAnXHJcbicpOworICB9CisgIHJldHVybiBvdXRwdXQuam9pbign
Jyk7Cit9OworCisvLyBHZW5lcmF0ZSBhIHNlc3Npb24gSUQgZm9yIFNEUC4KKy8vIGh0dHBzOi8v
dG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLXJ0Y3dlYi1qc2VwLTIwI3NlY3Rpb24tNS4y
LjEKKy8vIHJlY29tbWVuZHMgdXNpbmcgYSBjcnlwdG9ncmFwaGljYWxseSByYW5kb20gK3ZlIDY0
LWJpdCB2YWx1ZQorLy8gYnV0IHJpZ2h0IG5vdyB0aGlzIHNob3VsZCBiZSBhY2NlcHRhYmxlIGFu
ZCB3aXRoaW4gdGhlIHJpZ2h0IHJhbmdlCitTRFBVdGlscy5nZW5lcmF0ZVNlc3Npb25JZCA9IGZ1
bmN0aW9uKCkgeworICByZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygpLnN1YnN0cigyLCAy
MSk7Cit9OworCisvLyBXcml0ZSBib2lsZGVyIHBsYXRlIGZvciBzdGFydCBvZiBTRFAKKy8vIHNl
c3NJZCBhcmd1bWVudCBpcyBvcHRpb25hbCAtIGlmIG5vdCBzdXBwbGllZCBpdCB3aWxsCisvLyBi
ZSBnZW5lcmF0ZWQgcmFuZG9tbHkKKy8vIHNlc3NWZXJzaW9uIGlzIG9wdGlvbmFsIGFuZCBkZWZh
dWx0cyB0byAyCisvLyBzZXNzVXNlciBpcyBvcHRpb25hbCBhbmQgZGVmYXVsdHMgdG8gJ3RoaXNp
c2FkYXB0ZXJvcnRjJworU0RQVXRpbHMud3JpdGVTZXNzaW9uQm9pbGVycGxhdGUgPSBmdW5jdGlv
bihzZXNzSWQsIHNlc3NWZXIsIHNlc3NVc2VyKSB7CisgIHZhciBzZXNzaW9uSWQ7CisgIHZhciB2
ZXJzaW9uID0gc2Vzc1ZlciAhPT0gdW5kZWZpbmVkID8gc2Vzc1ZlciA6IDI7CisgIGlmIChzZXNz
SWQpIHsKKyAgICBzZXNzaW9uSWQgPSBzZXNzSWQ7CisgIH0gZWxzZSB7CisgICAgc2Vzc2lvbklk
ID0gU0RQVXRpbHMuZ2VuZXJhdGVTZXNzaW9uSWQoKTsKKyAgfQorICB2YXIgdXNlciA9IHNlc3NV
c2VyIHx8ICd0aGlzaXNhZGFwdGVyb3J0Yyc7CisgIC8vIEZJWE1FOiBzZXNzLWlkIHNob3VsZCBi
ZSBhbiBOVFAgdGltZXN0YW1wLgorICByZXR1cm4gJ3Y9MFxyXG4nICsKKyAgICAgICdvPScgKyB1
c2VyICsgJyAnICsgc2Vzc2lvbklkICsgJyAnICsgdmVyc2lvbiArCisgICAgICAgICcgSU4gSVA0
IDEyNy4wLjAuMVxyXG4nICsKKyAgICAgICdzPS1cclxuJyArCisgICAgICAndD0wIDBcclxuJzsK
K307CisKK1NEUFV0aWxzLndyaXRlTWVkaWFTZWN0aW9uID0gZnVuY3Rpb24odHJhbnNjZWl2ZXIs
IGNhcHMsIHR5cGUsIHN0cmVhbSkgeworICB2YXIgc2RwID0gU0RQVXRpbHMud3JpdGVSdHBEZXNj
cmlwdGlvbih0cmFuc2NlaXZlci5raW5kLCBjYXBzKTsKKworICAvLyBNYXAgSUNFIHBhcmFtZXRl
cnMgKHVmcmFnLCBwd2QpIHRvIFNEUC4KKyAgc2RwICs9IFNEUFV0aWxzLndyaXRlSWNlUGFyYW1l
dGVycygKKyAgICB0cmFuc2NlaXZlci5pY2VHYXRoZXJlci5nZXRMb2NhbFBhcmFtZXRlcnMoKSk7
CisKKyAgLy8gTWFwIERUTFMgcGFyYW1ldGVycyB0byBTRFAuCisgIHNkcCArPSBTRFBVdGlscy53
cml0ZUR0bHNQYXJhbWV0ZXJzKAorICAgIHRyYW5zY2VpdmVyLmR0bHNUcmFuc3BvcnQuZ2V0TG9j
YWxQYXJhbWV0ZXJzKCksCisgICAgdHlwZSA9PT0gJ29mZmVyJyA/ICdhY3RwYXNzJyA6ICdhY3Rp
dmUnKTsKKworICBzZHAgKz0gJ2E9bWlkOicgKyB0cmFuc2NlaXZlci5taWQgKyAnXHJcbic7CisK
KyAgaWYgKHRyYW5zY2VpdmVyLmRpcmVjdGlvbikgeworICAgIHNkcCArPSAnYT0nICsgdHJhbnNj
ZWl2ZXIuZGlyZWN0aW9uICsgJ1xyXG4nOworICB9IGVsc2UgaWYgKHRyYW5zY2VpdmVyLnJ0cFNl
bmRlciAmJiB0cmFuc2NlaXZlci5ydHBSZWNlaXZlcikgeworICAgIHNkcCArPSAnYT1zZW5kcmVj
dlxyXG4nOworICB9IGVsc2UgaWYgKHRyYW5zY2VpdmVyLnJ0cFNlbmRlcikgeworICAgIHNkcCAr
PSAnYT1zZW5kb25seVxyXG4nOworICB9IGVsc2UgaWYgKHRyYW5zY2VpdmVyLnJ0cFJlY2VpdmVy
KSB7CisgICAgc2RwICs9ICdhPXJlY3Zvbmx5XHJcbic7CisgIH0gZWxzZSB7CisgICAgc2RwICs9
ICdhPWluYWN0aXZlXHJcbic7CisgIH0KKworICBpZiAodHJhbnNjZWl2ZXIucnRwU2VuZGVyKSB7
CisgICAgLy8gc3BlYy4KKyAgICB2YXIgbXNpZCA9ICdtc2lkOicgKyBzdHJlYW0uaWQgKyAnICcg
KworICAgICAgICB0cmFuc2NlaXZlci5ydHBTZW5kZXIudHJhY2suaWQgKyAnXHJcbic7CisgICAg
c2RwICs9ICdhPScgKyBtc2lkOworCisgICAgLy8gZm9yIENocm9tZS4KKyAgICBzZHAgKz0gJ2E9
c3NyYzonICsgdHJhbnNjZWl2ZXIuc2VuZEVuY29kaW5nUGFyYW1ldGVyc1swXS5zc3JjICsKKyAg
ICAgICAgJyAnICsgbXNpZDsKKyAgICBpZiAodHJhbnNjZWl2ZXIuc2VuZEVuY29kaW5nUGFyYW1l
dGVyc1swXS5ydHgpIHsKKyAgICAgIHNkcCArPSAnYT1zc3JjOicgKyB0cmFuc2NlaXZlci5zZW5k
RW5jb2RpbmdQYXJhbWV0ZXJzWzBdLnJ0eC5zc3JjICsKKyAgICAgICAgICAnICcgKyBtc2lkOwor
ICAgICAgc2RwICs9ICdhPXNzcmMtZ3JvdXA6RklEICcgKworICAgICAgICAgIHRyYW5zY2VpdmVy
LnNlbmRFbmNvZGluZ1BhcmFtZXRlcnNbMF0uc3NyYyArICcgJyArCisgICAgICAgICAgdHJhbnNj
ZWl2ZXIuc2VuZEVuY29kaW5nUGFyYW1ldGVyc1swXS5ydHguc3NyYyArCisgICAgICAgICAgJ1xy
XG4nOworICAgIH0KKyAgfQorICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgd3JpdHRlbiBieSB3
cml0ZVJ0cERlc2NyaXB0aW9uLgorICBzZHAgKz0gJ2E9c3NyYzonICsgdHJhbnNjZWl2ZXIuc2Vu
ZEVuY29kaW5nUGFyYW1ldGVyc1swXS5zc3JjICsKKyAgICAgICcgY25hbWU6JyArIFNEUFV0aWxz
LmxvY2FsQ05hbWUgKyAnXHJcbic7CisgIGlmICh0cmFuc2NlaXZlci5ydHBTZW5kZXIgJiYgdHJh
bnNjZWl2ZXIuc2VuZEVuY29kaW5nUGFyYW1ldGVyc1swXS5ydHgpIHsKKyAgICBzZHAgKz0gJ2E9
c3NyYzonICsgdHJhbnNjZWl2ZXIuc2VuZEVuY29kaW5nUGFyYW1ldGVyc1swXS5ydHguc3NyYyAr
CisgICAgICAgICcgY25hbWU6JyArIFNEUFV0aWxzLmxvY2FsQ05hbWUgKyAnXHJcbic7CisgIH0K
KyAgcmV0dXJuIHNkcDsKK307CisKKy8vIEdldHMgdGhlIGRpcmVjdGlvbiBmcm9tIHRoZSBtZWRp
YVNlY3Rpb24gb3IgdGhlIHNlc3Npb25wYXJ0LgorU0RQVXRpbHMuZ2V0RGlyZWN0aW9uID0gZnVu
Y3Rpb24obWVkaWFTZWN0aW9uLCBzZXNzaW9ucGFydCkgeworICAvLyBMb29rIGZvciBzZW5kcmVj
diwgc2VuZG9ubHksIHJlY3Zvbmx5LCBpbmFjdGl2ZSwgZGVmYXVsdCB0byBzZW5kcmVjdi4KKyAg
dmFyIGxpbmVzID0gU0RQVXRpbHMuc3BsaXRMaW5lcyhtZWRpYVNlY3Rpb24pOworICBmb3IgKHZh
ciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgc3dpdGNoIChsaW5lc1tpXSkg
eworICAgICAgY2FzZSAnYT1zZW5kcmVjdic6CisgICAgICBjYXNlICdhPXNlbmRvbmx5JzoKKyAg
ICAgIGNhc2UgJ2E9cmVjdm9ubHknOgorICAgICAgY2FzZSAnYT1pbmFjdGl2ZSc6CisgICAgICAg
IHJldHVybiBsaW5lc1tpXS5zdWJzdHIoMik7CisgICAgICBkZWZhdWx0OgorICAgICAgICAvLyBG
SVhNRTogV2hhdCBzaG91bGQgaGFwcGVuIGhlcmU/CisgICAgfQorICB9CisgIGlmIChzZXNzaW9u
cGFydCkgeworICAgIHJldHVybiBTRFBVdGlscy5nZXREaXJlY3Rpb24oc2Vzc2lvbnBhcnQpOwor
ICB9CisgIHJldHVybiAnc2VuZHJlY3YnOworfTsKKworU0RQVXRpbHMuZ2V0S2luZCA9IGZ1bmN0
aW9uKG1lZGlhU2VjdGlvbikgeworICB2YXIgbGluZXMgPSBTRFBVdGlscy5zcGxpdExpbmVzKG1l
ZGlhU2VjdGlvbik7CisgIHZhciBtbGluZSA9IGxpbmVzWzBdLnNwbGl0KCcgJyk7CisgIHJldHVy
biBtbGluZVswXS5zdWJzdHIoMik7Cit9OworCitTRFBVdGlscy5pc1JlamVjdGVkID0gZnVuY3Rp
b24obWVkaWFTZWN0aW9uKSB7CisgIHJldHVybiBtZWRpYVNlY3Rpb24uc3BsaXQoJyAnLCAyKVsx
XSA9PT0gJzAnOworfTsKKworU0RQVXRpbHMucGFyc2VNTGluZSA9IGZ1bmN0aW9uKG1lZGlhU2Vj
dGlvbikgeworICB2YXIgbGluZXMgPSBTRFBVdGlscy5zcGxpdExpbmVzKG1lZGlhU2VjdGlvbik7
CisgIHZhciBwYXJ0cyA9IGxpbmVzWzBdLnN1YnN0cigyKS5zcGxpdCgnICcpOworICByZXR1cm4g
eworICAgIGtpbmQ6IHBhcnRzWzBdLAorICAgIHBvcnQ6IHBhcnNlSW50KHBhcnRzWzFdLCAxMCks
CisgICAgcHJvdG9jb2w6IHBhcnRzWzJdLAorICAgIGZtdDogcGFydHMuc2xpY2UoMykuam9pbign
ICcpCisgIH07Cit9OworCitTRFBVdGlscy5wYXJzZU9MaW5lID0gZnVuY3Rpb24obWVkaWFTZWN0
aW9uKSB7CisgIHZhciBsaW5lID0gU0RQVXRpbHMubWF0Y2hQcmVmaXgobWVkaWFTZWN0aW9uLCAn
bz0nKVswXTsKKyAgdmFyIHBhcnRzID0gbGluZS5zdWJzdHIoMikuc3BsaXQoJyAnKTsKKyAgcmV0
dXJuIHsKKyAgICB1c2VybmFtZTogcGFydHNbMF0sCisgICAgc2Vzc2lvbklkOiBwYXJ0c1sxXSwK
KyAgICBzZXNzaW9uVmVyc2lvbjogcGFyc2VJbnQocGFydHNbMl0sIDEwKSwKKyAgICBuZXRUeXBl
OiBwYXJ0c1szXSwKKyAgICBhZGRyZXNzVHlwZTogcGFydHNbNF0sCisgICAgYWRkcmVzczogcGFy
dHNbNV0KKyAgfTsKK307CisKKy8vIGEgdmVyeSBuYWl2ZSBpbnRlcnByZXRhdGlvbiBvZiBhIHZh
bGlkIFNEUC4KK1NEUFV0aWxzLmlzVmFsaWRTRFAgPSBmdW5jdGlvbihibG9iKSB7CisgIGlmICh0
eXBlb2YgYmxvYiAhPT0gJ3N0cmluZycgfHwgYmxvYi5sZW5ndGggPT09IDApIHsKKyAgICByZXR1
cm4gZmFsc2U7CisgIH0KKyAgdmFyIGxpbmVzID0gU0RQVXRpbHMuc3BsaXRMaW5lcyhibG9iKTsK
KyAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykgeworICAgIGlmIChsaW5l
c1tpXS5sZW5ndGggPCAyIHx8IGxpbmVzW2ldLmNoYXJBdCgxKSAhPT0gJz0nKSB7CisgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8vIFRPRE86IGNoZWNrIHRoZSBtb2RpZmllciBhIGJp
dCBtb3JlLgorICB9CisgIHJldHVybiB0cnVlOworfTsKKworLy8gRXhwb3NlIHB1YmxpYyBtZXRo
b2RzLgoraWYgKHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKSB7CisgIG1vZHVsZS5leHBvcnRz
ID0gU0RQVXRpbHM7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGlyZF9wYXJ0eS9zZHAvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGlyZF9w
YXJ0eS9zZHAvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTMyNGVmOWE5YjM4MzIxNGRlMmYy
Mzk3YWZjYWY1OGVkZTA2YTFjOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3RoaXJkX3BhcnR5L3NkcC93M2MtaW1w
b3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
KworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGlyZF9wYXJ0eS9zZHAvTElDRU5TRQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3RoaXJkX3Bh
cnR5L3NkcC9zZHAuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3RoaXJkX3BhcnR5L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdGhpcmRfcGFydHkv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE3ODdhMTdkNGY4NTZkODcxNDhkYmRkNWY0YjRj
MzFjNjU5ZjY2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3RoaXJkX3BhcnR5L3czYy1pbXBvcnQubG9nCkBAIC0w
LDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3RoaXJkX3BhcnR5L1JFQURNRS5tZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93
M2MtaW1wb3J0LmxvZwppbmRleCBhN2YzYzg2ZDlkZjBlYTcxMzY0ZjYxNWMxODE4MTBhNDkwMjI3
NWRkLi5hMzk3ZDhlNzZjMjc3ZTRmYzY3YmYyNmQwNzk2YzQ5Y2JmNmEzYmEyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2Mt
aW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZwpAQCAtMTUsNiArMTUsNyBAQCBOb25lCiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvTUVUQS55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SRUFETUUubWQKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDZXJ0aWZpY2F0ZS1wb3N0TWVzc2Fn
ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDQ2VydGlmaWNhdGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24tYnVuZGxlUG9saWN5Lmh0bWwKQEAg
LTI4LDcgKzI5LDkgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNoYW5nZS1sb25n
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNoYW5nZS5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwt
YnVmZmVyZWRBbW91bnQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pZC5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtc2VuZC1ibG9iLW9yZGVyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbEV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNl
cnRpZmljYXRlcy5odG1sCkBAIC00MCwxMSArNDMsMTIgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFu
c3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWFkZC10cmFjay1uby1kZWFkbG9jay5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2Fu
ZGlkYXRlLXRpbWluZy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJh
bnNjZWl2ZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhblRyaWNrbGVJY2VDYW5kaWRhdGVz
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNv
bm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29uc3RydWN0b3IuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNyZWF0ZUFuc3dlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNo
YW5uZWwuaHRtbApAQCAtNTQsMTcgKzU4LDI1IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tZ2V0U3RhdHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFRyYW5zY2VpdmVycy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24taGVscGVyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRl
LWRpc2Nvbm5lY3RlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRl
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRhdGFj
aGFubmVsLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmljZWNhbmRpZGF0ZWVycm9yLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNp
Z25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb250cmFjay5odHRw
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tb3BlcmF0aW9ucy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
cGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNr
LW11dGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW92ZVRyYWNrLmh0dHBzLmh0bWwKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1yZXN0YXJ0SWNlLW9ubmVnb3RpYXRpb25uZWVkZWQuaHR0cHMuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldERlc2NyaXB0
aW9uLXRyYW5zY2VpdmVyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLWFu
c3dlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1vZmZlci5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wYXJhbWV0ZXJsZXNzLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXJvbGxiYWNrLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRM
b2NhbERlc2NyaXB0aW9uLmh0bWwKQEAgLTc0LDE0ICs4NiwxNSBAQCBMaXN0IG9mIGZpbGVzOgog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXByYW5zd2VyLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1yZXBsYWNlVHJhY2suaHR0cHMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXJvbGxiYWNrLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1z
ZXRSZW1vdGVEZXNjcmlwdGlvbi1zaW11bGNhc3QuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNl
dFJlbW90ZURlc2NyaXB0aW9uLXRyYWNrcy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVt
b3RlRGVzY3JpcHRpb24uaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYWNrLXN0YXRzLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi10cmFuc2NlaXZlcnMuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXZpZGVv
RGV0ZWN0b3JUZXN0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LWNvbnN0cnVjdG9yLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBDYXBhYmlsaXRpZXMtaGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1jb2RlY3MuaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFt
ZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWVuY29kaW5ncy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwUGFyYW1ldGVycy1oZWFkZXJFeHRlbnNpb25zLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlbHBl
ci5qcwpAQCAtOTYsMTIgKzEwOSwxNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1nZXRTdGF0
cy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXNl
dFBhcmFtZXRlcnMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1zZXRTdHJlYW1zLmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXIt
dHJhbnNwb3J0Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLWRp
cmVjdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJh
bnNjZWl2ZXItc3RvcC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQt
Y29uc3RydWN0b3IuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtZXZlbnRzLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LW1h
eENoYW5uZWxzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LW1heE1lc3NhZ2VTaXplLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxw
ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENUcmFja0V2ZW50LWNvbnN0cnVjdG9yLmh0bWwKQEAgLTExMyw1ICsxMzAsNiBAQCBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2Fs
bC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcmVjZWl2ZXItdHJhY2stbGl2ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
c2ltcGxlY2FsbC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDE0M2FhZmQwMjYyODljMDBhNzgzY2I0NDBmNTUxN2M2ODRiZjZiMDQuLjMz
MGI5ODY1NDdlNDdjMjA3ZGQ5YTQ4Yjc3ZWY2YWQ5NDg1NzRiYmMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yODQxLDcgKzI4NDEsNiBAQCBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtcGFyYW1ldGVyLmh0bWwgWyBG
YWlsdXJlIF0KICMgPHJkYXI6Ly9wcm9ibGVtLzM0MDUxNzQ1PgogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlv
bi5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9nZXRzdGF0cy5odG1sIFsgRmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9ydGNwZWVyY29ubmVjdGlvbi1pZGwuaHRtbCBb
IEZhaWx1cmUgXQogCiAjIDxyZGFyOi8vcHJvYmxlbS8zNDIwOTAzOD4KIHdlYmdsLzEuMC4zL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2xvZy9sb2dfMDAxX3RvXzAwOC5odG1sIFsgU2tpcCBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy90ZXN0
cy1vcHRpb25zLmpzb24KaW5kZXggMDhmNTdhYjg4Mjg3YzhiZGZmODFhMzlhNTc3YzEwMDEzZDJl
Y2JhMy4uNjM3ZDkxNGEwOTkwY2I1OGU1MTYyOGYxNmIzZWU3YmY3ZTQ2ZjkzOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL3Rlc3Rz
LW9wdGlvbnMuanNvbgpAQCAtMjcyNiwyMSArMjcyNiw5MCBAQAogICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNoYW5nZS1sb25n
Lmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLmh0
dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJ1ZmZlcmVkQW1vdW50Lmh0
bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwiOiBbCisgICAgICAg
ICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwK
ICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVj
dGlvblN0YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93Igog
ICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwiOiBbCisgICAgICAgICJzbG93Igor
ICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1kaXNjb25uZWN0ZWQuaHR0cHMuaHRtbCI6
IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBz
Lmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0
cy5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5l
Z290aWF0aW9uLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJl
bW90ZS10cmFjay1tdXRlLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisg
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXRyYWNrcy5odHRwcy5odG1sIjogWworICAgICAgICAi
c2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0cy5odHRwcy5odG1sIjogWwogICAgICAgICAi
c2xvdyIKICAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFuc2NlaXZlcnMuaHR0cHMuaHRtbCI6IFsKICAgICAgICAg
InNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbCI6IFsKKyAgICAgICAg
InNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3luY2hyb25pemF0aW9uU291cmNlcy5odHRwcy5odG1sIjog
WwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLmh0dHBzLmh0bWwiOiBbCisg
ICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFNlbmRlci10cmFuc3BvcnQuaHR0cHMuaHRtbCI6IFsKICAgICAgICAg
InNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAg
XSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JU
Q1BlZXJDb25uZWN0aW9uLWFkZFN0cmVhbS5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIK
KyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisg
ICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvaWNlLXN0YXRlLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2ljZS11ZnJh
Z3B3ZC5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbCI6IFsK
KyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJz
bG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisg
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQ
YXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAor
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4
Lmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9iaW5hcnkvMDAyLmh0bWwiOiBbCiAgICAg
ICAgICJzbG93IgogICAgIF0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403924</attachid>
            <date>2020-07-09 15:38:43 -0700</date>
            <delta_ts>2020-07-09 16:04:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214151-20200709153842.patch</filename>
            <type>text/plain</type>
            <size>990603</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTMzNjlkOWQ2MjU1NjI4MWY3MTFh
MmNmNGIzY2ZhYjhjMjk4YzVmYy4uY2ExNjkzMjliMzU2NmFkOWMwODYwNWEzYzAyZTYzMDc3ZmYy
MTA1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA3LTA5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMgZnJvbSB1cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE0MTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICAqIHRlc3RzLW9wdGlvbnMuanNvbjoKKwogMjAyMC0wNy0wOSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVz
dHMvdXJsIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGY1
ZWM2OGQyOWUxNDgwYmZiYzg5NDIyNmNmNjRlOTNmYTc3OGM3NzguLmIxYjMzZDQ1MDIzMTRmOWMz
NjU1MzZhYjc0MmMwZWY3MWYwYzZmODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMgZnJvbSB1cHN0
cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0
MTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBS
ZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0YyBmcm9tIHVwc3RyZWFtIGNlZjkzYjU4ZTdj
ZjMxZjFkNDcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLyo6IFVwZGF0
ZWQuCisKIDIwMjAtMDctMDkgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVwZGF0ZSBjc3Mvc2VsZWN0b3JzIFdQVCB0ZXN0cyBmb3IgOmlzIGFuZCA6d2hlcmUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDY4MGQ2MWFkOTU1ZjA4ZmE1ZTQ5ZTljNjRiZDU5YjhhMDQw
NjRiOWUuLmQyNTgzM2M1NDA1ZGIwMjM0Mzk5MDJmYWJhNjYwODgzYmZlMDIyODYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTg2MCw3ICsxODYwLDYgQEAgd2VicnRjL2gyNjUuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCiB3ZWJydGMvc2ltdWxjYXN0LWgyNjQuaHRtbCBbIFNsb3cgXQogCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJv
bml6YXRpb25Tb3VyY2VzLmh0dHBzLmh0bWwgWyBTbG93IF0KLXdlYmtpdC5vcmcvYi8xNzEwOTQg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24v
cnRjcGVlcmNvbm5lY3Rpb24taWRsLmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRp
b24tb2ZmZXIuaHRtbCBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1hbnN3ZXIuaHRt
bCBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCkBA
IC0xODY5LDEyICsxODY4LDE3IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURl
c2NyaXB0aW9uLXRyYWNrcy5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0ZS5o
dHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEYXRhQ2hhbm5lbC1idWZmZXJlZEFtb3VudC5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENUcmFja0V2ZW50LWZpcmUuaHRtbCBbIFNr
aXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5l
Y3Rpb24vaWNlR2F0aGVyaW5nU3RhdGUuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbCBbIFNraXAgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0
YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLmh0bWwgWyBTa2lwIF0KLQotIyBVc2VzIGxlZ2FjeSBX
ZWJSVEMgQVBJLgotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVl
cmNvbm5lY3Rpb24vc2V0UmVtb3RlRGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5
LWdldFN0YXRzLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uaWNlY2FuZGlkYXRlZXJyb3IuaHR0cHMu
aHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
VHJhY2tFdmVudC1maXJlLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJpbnQtdmFsaWRhdGlvbi5odG1sIFsg
U2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qv
YmFzaWMuaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWwg
WyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2Fz
dC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWwgWyBTa2lw
IF0KIAogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jbG9zZWQtc3RhdGUuaHRt
bCBbIFNraXAgXQogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2Vjb25uZWN0
aW9uc3RhdGVjaGFuZ2UtZXZlbnQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS91c3ZzdHJpbmctcmVm
bGVjdGlvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL3VzdnN0cmluZy1yZWZsZWN0aW9uLmh0dHBzLWV4cGVj
dGVkLnR4dAppbmRleCBjODViOWMxYzE2M2QxMGUwNDZhNmUyZjJkNTNjMDZlYzhjZmY5NjQ4Li41
NWRmNmJiMzc3ZTMwNTAyNjI4OThjMTNmMDA1ZjRlZjVjZmIyN2ZhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL3VzdnN0cmlu
Zy1yZWZsZWN0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL3VzdnN0cmluZy1yZWZsZWN0aW9uLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMTksNSArMTksNSBAQCBQQVNTIHNlbmRCZWFjb24gVVJMOiB1
bnBhaXJlZCBzdXJyb2dhdGUgY29kZXBvaW50IHNob3VsZCBub3QgbWFrZSBhbnkgZXhjZXB0aW9u
cwogRkFJTCBSZWdpc3RlclByb3RvY29sSGFuZGxlciBVUkw6IHVucGFpcmVkIHN1cnJvZ2F0ZSBj
b2RlcG9pbnQgc2hvdWxkIG5vdCBtYWtlIGFueSBleGNlcHRpb25zLiB3aW5kb3cubmF2aWdhdG9y
LnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3dpbmRvdy5u
YXZpZ2F0b3IucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoJ3dlYitteXByb3RvY29sJywgImN1c3Rv
bS1zY2hlbWVcdUQ4MDAvdXJsPSVzIiwgInRpdGxlIiknLCAnd2luZG93Lm5hdmlnYXRvci5yZWdp
c3RlclByb3RvY29sSGFuZGxlcicgaXMgdW5kZWZpbmVkKQogRkFJTCBVbnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyIFVSTDogdW5wYWlyZWQgc3Vycm9nYXRlIGNvZGVwb2ludCBzaG91bGQgbm90IG1h
a2UgYW55IGV4Y2VwdGlvbnMuIHdpbmRvdy5uYXZpZ2F0b3IudW5yZWdpc3RlclByb3RvY29sSGFu
ZGxlciBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd3aW5kb3cubmF2aWdhdG9yLnVucmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIoJ3dlYitteXByb3RvY29sJywgImN1c3RvbS1zY2hlbWVcdUQ4MDAvdXJs
PSVzIiknLCAnd2luZG93Lm5hdmlnYXRvci51bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyJyBpcyB1
bmRlZmluZWQpCiBQQVNTIERvY3VtZW50IFVSTHM6IHVucGFpcmVkIHN1cnJvZ2F0ZSBjb2RlcG9p
bnQgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggVStGRkZEIAotRkFJTCBSVENEYXRhQ2hhbm5lbC5z
ZW5kOiB1bnBhaXJlZCBzdXJyb2dhdGUgY29kZXBvaW50IHNob3VsZCBiZSByZXBsYWNlZCB3aXRo
IFUrRkZGRC4gcGMxLmNyZWF0ZURhdGFDaGFubmVsIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3Bj
MS5jcmVhdGVEYXRhQ2hhbm5lbCgnJyknLCAncGMxLmNyZWF0ZURhdGFDaGFubmVsJyBpcyB1bmRl
ZmluZWQpCitGQUlMIFJUQ0RhdGFDaGFubmVsLnNlbmQ6IHVucGFpcmVkIHN1cnJvZ2F0ZSBjb2Rl
cG9pbnQgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggVStGRkZELiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdvcHRpb25zLm5lZ290aWF0ZWQnKSIKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0NzdlNGYzNzVmZGMwOGQ3MDRlZTlkOWM1
NmQ4OGEwZTU4NTAyY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SRUFETUUubWQKQEAgLTAsMCArMSwxMiBAQAor
IyBXZWJSVEMKKworVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgdGhlIFdlYlJUQyB0ZXN0IHN1aXRl
LgorCisjIyBBY2tub3dsZWRnZW1lbnRzCisKK1NvbWUgZGF0YSBjaGFubmVsIHRlc3RzIGFyZSBi
YXNlZCBvbiB0aGUgW2RhdGEgY2hhbm5lbCBjb25mb3JtYW5jZSB0ZXN0CitzdWl0ZV1bbnBsYWIt
d2VicnRjLWRjLXBsYXlncm91bmRdIG9mIHRoZSBOZXR3b3JrIFByb2dyYW1taW5nIExhYiBvZiB0
aGUgTcO8bnN0ZXIKK1VuaXZlcnNpdHkgb2YgQXBwbGllZCBTY2llbmNlcy4gV2Ugd291bGQgbGlr
ZSB0byB0aGFuayBQZXRlciBUaXR6LCBGZWxpeCBXZWlucmFuayBhbmQgVGltbworVsO2bGtlciBm
b3IgYWdyZWVpbmcgdG8gY29udHJpYnV0ZSB0aGVpciB0ZXN0IGNhc2VzIHRvIHRoaXMgcmVwb3Np
dG9yeS4KKworW25wbGFiLXdlYnJ0Yy1kYy1wbGF5Z3JvdW5kXTogaHR0cHM6Ly9naXRodWIuY29t
L25wbGFiL1dlYlJUQy1EYXRhLUNoYW5uZWwtUGxheWdyb3VuZC90cmVlL21hc3Rlci9jb25mb3Jt
YW5jZS10ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ2VydGlmaWNhdGUtcG9zdE1lc3NhZ2UuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NlcnRpZmlj
YXRlLXBvc3RNZXNzYWdlLmh0bWwKaW5kZXggNTg4NWY5ZmIxYmJjM2U5N2U1OTE2ZDA3ZTNkZjcw
NjMxNmMxNzBlOC4uNmNjYTI0MDA1NzY2OGY5MGVjZDg5NmExNWQ3NmQxN2NmZGM3ZDAzNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDQ2VydGlmaWNhdGUtcG9zdE1lc3NhZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDZXJ0aWZpY2F0ZS1wb3N0TWVz
c2FnZS5odG1sCkBAIC00Miw5ICs0MiwxMCBAQAogICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnRX
aW5kb3cucG9zdE1lc3NhZ2UoY2VydGlmaWNhdGUsICIqIik7CiAgICAgICAgICAgICBsZXQgY2Vy
dGlmaWNhdGUyID0gYXdhaXQgcHJvbWlzZTsKIAotICAgICAgICAgICAgbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKHtjZXJ0aWZpY2F0ZXM6IFtjZXJ0aWZpY2F0ZV19KTsKLQotICAgICAgICAgICAgbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKHtjZXJ0aWZpY2F0ZXM6IFtjZXJ0aWZpY2F0ZTJdfSk7CisgICAg
ICAgICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2NlcnRpZmljYXRlczog
W2NlcnRpZmljYXRlXX0pOworICAgICAgICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisgICAgICAgICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2Nl
cnRpZmljYXRlczogW2NlcnRpZmljYXRlMl19KTsKKyAgICAgICAgICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOwogCiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNlcnRpZmlj
YXRlLmV4cGlyZXMsIGNlcnRpZmljYXRlMi5leHBpcmVzKTsKICAgICAgICAgICAgIGZvciAobGV0
IGZpbmdlcnByaW50IG9mIGNlcnRpZmljYXRlMi5nZXRGaW5nZXJwcmludHMoKSkKQEAgLTcwLDcg
KzcxLDcgQEAKICAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UobnVsbCwg
IioiKTsKICAgICAgICAgbGV0IGNlcnRpZmljYXRlMiA9IGF3YWl0IHByb21pc2U7CiAKLSAgICAg
ICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZEFjY2Vzc0Vycm9yIiwgKCkgPT4geyBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oe2NlcnRpZmljYXRlczogW2NlcnRpZmljYXRlMl19KSB9KTsKKyAgICAgICAg
YXNzZXJ0X3Rocm93c19kb20oIkludmFsaWRBY2Nlc3NFcnJvciIsICgpID0+IHsgbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKHtjZXJ0aWZpY2F0ZXM6IFtjZXJ0aWZpY2F0ZTJdfSkgfSk7CiAgICAgICAg
IGlmcmFtZS5yZW1vdmUoKTsKICAgICB9LCAiQ2hlY2sgY3Jvc3Mtb3JpZ2luIGNyZWF0ZWQgUlRD
Q2VydGlmaWNhdGUiKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ2VydGlmaWNhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NlcnRp
ZmljYXRlLmh0bWwKaW5kZXggYTMzYmE5YWU1ZjJiMjAxZTY2M2M1YWE3MGQxOTg0ZjA2ODdjNjEz
YS4uNmI3NjI2YzkyZTc1YzA2ZGJhODYwNjU1OGFiZTAwM2Q4ZDk5NGZkMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ2Vy
dGlmaWNhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENDZXJ0aWZpY2F0ZS5odG1sCkBAIC0xMDAsNyArMTAwLDcgQEAKICAg
ICAgIGV4cGlyZXM6IDAKICAgICB9KS50aGVuKGNlcnQgPT4gewogICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbl9lcXVhbChjZXJ0LmV4cGlyZXMsIERhdGUubm93KCkpOwotICAgICAgYXNzZXJ0X3Rocm93
cygnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkgPT4KKyAgICAgIGFzc2VydF90aHJvd3NfZG9tKCdJ
bnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgogICAgICAgICBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
eyBjZXJ0aWZpY2F0ZXM6IFtjZXJ0XSB9KSk7CiAgICAgfSk7CiAgIH0sICdDb25zdHJ1Y3Rpbmcg
UlRDUGVlckNvbm5lY3Rpb24gd2l0aCBleHBpcmVkIGNlcnRpZmljYXRlIHNob3VsZCByZWplY3Qg
d2l0aCBJbnZhbGlkQWNjZXNzRXJyb3InKTsKQEAgLTEyNiwxMiArMTI2LDEyIEBACiAgICAgICAg
IGNlcnRpZmljYXRlczogW2NlcnQxXQogICAgICAgfSk7CiAKLSAgICAgIGFzc2VydF90aHJvd3Mo
J0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+CisgICAgICBhc3NlcnRfdGhyb3dzX2Rv
bSgnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4KICAgICAgICAgcGMuc2V0Q29uZmln
dXJhdGlvbih7CiAgICAgICAgICAgY2VydGlmaWNhdGVzOiBbY2VydDJdCiAgICAgICAgIH0pKTsK
IAotICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4K
KyAgICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9
PgogICAgICAgICBwYy5zZXRDb25maWd1cmF0aW9uKHsKICAgICAgICAgICBjZXJ0aWZpY2F0ZXM6
IFtjZXJ0MSwgY2VydDJdCiAgICAgICAgIH0pKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24tYnVu
ZGxlUG9saWN5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWJ1bmRsZVBvbGljeS5odG1sCmluZGV4IDZiNjRj
ZjhkZGQ1M2FkNmI1NDVkZmQ1MTZlZTQ1N2RmZDUwYTI5MTMuLmU4MjVkN2I0MDIzNzUxZmU2YWVm
ZDQ5NTdmZGMwOGQ4MWM2MDg5OTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24tYnVuZGxlUG9saWN5
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1idW5kbGVQb2xpY3kuaHRtbApAQCAtODgsMTIgKzg4LDEy
IEBACiAgIH0sIGBzZXRDb25maWd1cmF0aW9uKHsgYnVuZGxlUG9saWN5OiAnbWF4LWJ1bmRsZScg
fSkgd2l0aCBpbml0aWFsIGJ1bmRsZVBvbGljeSBtYXgtYnVuZGxlIHNob3VsZCBzdWNjZWVkYCk7
CiAKICAgdGVzdCgoKSA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgp
ID0+CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oeyBidW5kbGVQb2xpY3k6IG51bGwgfSkpOwogICB9LCBgbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKHsgYnVuZGxlUG9saWN5OiBudWxsIH0pIHNob3VsZCB0aHJvdyBUeXBlRXJy
b3JgKTsKIAogICB0ZXN0KCgpID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3Io
KSwgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KICAgICAgIG5l
dyBSVENQZWVyQ29ubmVjdGlvbih7IGJ1bmRsZVBvbGljeTogJ2ludmFsaWQnIH0pKTsKICAgfSwg
YG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGJ1bmRsZVBvbGljeTogJ2ludmFsaWQnIH0pIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3JgKTsKIApAQCAtMTA3LDcgKzEwNyw3IEBACiAgICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBidW5kbGVQb2xpY3k6ICdtYXgtYnVuZGxlJyB9KTsK
ICAgICBhc3NlcnRfaWRsX2F0dHJpYnV0ZShwYywgJ3NldENvbmZpZ3VyYXRpb24nKTsKIAotICAg
IGFzc2VydF90aHJvd3MoJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+CisgICAgYXNz
ZXJ0X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+CiAgICAgICBw
Yy5zZXRDb25maWd1cmF0aW9uKHsgYnVuZGxlUG9saWN5OiAnbWF4LWNvbXBhdCcgfSkpOwogICB9
LCBgc2V0Q29uZmlndXJhdGlvbih7IGJ1bmRsZVBvbGljeTogJ21heC1jb21wYXQnIH0pIHdpdGgg
aW5pdGlhbCBidW5kbGVQb2xpY3kgbWF4LWJ1bmRsZSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yYCk7CiAKQEAgLTExNiw3ICsxMTYsNyBAQAogICAgIGFzc2VydF9pZGxfYXR0
cmlidXRlKHBjLCAnc2V0Q29uZmlndXJhdGlvbicpOwogCiAgICAgLy8gdGhlIGRlZmF1bHQgdmFs
dWUgZm9yIGJ1bmRsZVBvbGljeSBpcyBiYWxhbmNlZAotICAgIGFzc2VydF90aHJvd3MoJ0ludmFs
aWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFs
aWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+CiAgICAgICBwYy5zZXRDb25maWd1cmF0aW9uKHt9
KSk7CiAgIH0sIGBzZXRDb25maWd1cmF0aW9uKHt9KSB3aXRoIGluaXRpYWwgYnVuZGxlUG9saWN5
IG1heC1idW5kbGUgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZUNhbmRpZGF0ZVBvb2xTaXplLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0
aW9uLWljZUNhbmRpZGF0ZVBvb2xTaXplLmh0bWwKaW5kZXggMmU2ODU5ZDI1OTYxNjMzNzU1NTBi
MWRjOTI5ZjEyNjg5NGUwMjg5OC4uNDk1YjA0M2UxMmRmM2M5ZWI1ZWNiMzJmZDQwYjdlNzEwMGUy
ZTc1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VDYW5kaWRhdGVQb29sU2l6ZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0NvbmZpZ3VyYXRpb24taWNlQ2FuZGlkYXRlUG9vbFNpemUuaHRtbApAQCAtNDcsNyArNDcsNyBA
QCB0ZXN0KCgpID0+IHsKIH0sICJJbml0aWFsaXplIGEgbmV3IFJUQ1BlZXJDb25uZWN0aW9uIHdp
dGggaWNlQ2FuZGlkYXRlUG9vbFNpemU6IDI1NSIpOwogCiB0ZXN0KCgpID0+IHsKLSAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBl
RXJyb3IsICgpID0+IHsKICAgICBuZXcgUlRDUGVlckNvbm5lY3Rpb24oewogICAgICAgaWNlQ2Fu
ZGlkYXRlUG9vbFNpemU6IC0xCiAgICAgfSk7CkBAIC01NSw3ICs1NSw3IEBAIHRlc3QoKCkgPT4g
ewogfSwgIkluaXRpYWxpemUgYSBuZXcgUlRDUGVlckNvbm5lY3Rpb24gd2l0aCBpY2VDYW5kaWRh
dGVQb29sU2l6ZTogLTEgKE91dCBPZiBSYW5nZSkiKTsKIAogdGVzdCgoKSA9PiB7Ci0gIGFzc2Vy
dF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMoVHlw
ZUVycm9yLCAoKSA9PiB7CiAgICAgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsKICAgICAgIGljZUNh
bmRpZGF0ZVBvb2xTaXplOiAyNTYKICAgICB9KTsKQEAgLTg5LDcgKzg5LDcgQEAgdGVzdCgoKSA9
PiB7CiAKIC8qCiBUaGUgZm9sbG93aW5nIHRlc3RzIGluY2x1ZGUgYW4gZXhwbGljaXQgYXNzZXJ0
aW9uIGZvciB0aGUgZXhpc3RlbmNlIG9mIGEKLXNldENvbmZpZ3VyYXRpb24gZnVuY3Rpb24gdG8g
cHJldmVudCB0aGUgYXNzZXJ0X3Rocm93cyBmcm9tIGNhdGNoaW5nIHRoZQorc2V0Q29uZmlndXJh
dGlvbiBmdW5jdGlvbiB0byBwcmV2ZW50IHRoZSBhc3NlcnRfdGhyb3dzX2pzIGZyb20gY2F0Y2hp
bmcgdGhlCiBUeXBlRXJyb3Igb2JqZWN0IHRoYXQgd2lsbCBiZSB0aHJvd24gd2hlbiBhdHRlbXB0
aW5nIHRvIGNhbGwgdGhlCiBub24tZXhpc3RlbnQgc2V0Q29uZmlndXJhdGlvbiBtZXRob2QgKGlu
IGNhc2VzIHdoZXJlIGl0IGhhcyBub3QgeWV0CiBiZWVuIGltcGxlbWVudGVkKS4gV2l0aG91dCB0
aGlzIGNoZWNrLCB0aGVzZSB0ZXN0cyB3aWxsIHBhc3MgaW5jb3JyZWN0bHkuCkBAIC05OCw3ICs5
OCw3IEBAIGJlZW4gaW1wbGVtZW50ZWQpLiBXaXRob3V0IHRoaXMgY2hlY2ssIHRoZXNlIHRlc3Rz
IHdpbGwgcGFzcyBpbmNvcnJlY3RseS4KIHRlc3QoKCkgPT4gewogICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOwogICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBwYy5zZXRDb25maWd1
cmF0aW9uLCAiZnVuY3Rpb24iLCAiUlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLnNldENvbmZp
Z3VyYXRpb24gaXMgbm90IGltcGxlbWVudGVkIik7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLCAoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiB7CiAg
ICAgcGMuc2V0Q29uZmlndXJhdGlvbih7CiAgICAgICBpY2VDYW5kaWRhdGVQb29sU2l6ZTogLTEK
ICAgICB9KTsKQEAgLTEwOCw3ICsxMDgsNyBAQCB0ZXN0KCgpID0+IHsKIHRlc3QoKCkgPT4gewog
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICBhc3NlcnRfZXF1YWxzKHR5
cGVvZiBwYy5zZXRDb25maWd1cmF0aW9uLCAiZnVuY3Rpb24iLCAiUlRDUGVlckNvbm5lY3Rpb24u
cHJvdG90eXBlLnNldENvbmZpZ3VyYXRpb24gaXMgbm90IGltcGxlbWVudGVkIik7Ci0gIGFzc2Vy
dF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7CisgIGFzc2VydF90aHJvd3NfanMoVHlw
ZUVycm9yLCAoKSA9PiB7CiAgICAgcGMuc2V0Q29uZmlndXJhdGlvbih7CiAgICAgICBpY2VDYW5k
aWRhdGVQb29sU2l6ZTogMjU2CiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNl
cnZlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dApp
bmRleCBhNDg1MjJmNzk5ZGY3NWZlN2U2Y2Q5YjZhZTE0NWRlNjkxZGRjMmY0Li4zOThhN2I1MDA5
YWRhNTdlZGZjNjdlZTNjMTM2NTM5ZjRkYTNiNmI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWlj
ZVNlcnZlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3Rl
ZC50eHQKQEAgLTQyLDg1ICs0Miw4NSBAQCBQQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25m
aWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIgYW5kIG9ubHkgdXNlcm5hbWUgc2hvdWxkCiBQQVNTIHNl
dENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyIGFuZCBvbmx5IHVzZXJu
YW1lIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgCiBQQVNTIG5ldyBSVENQZWVyQ29u
bmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIgYW5kIG9ubHkgY3JlZGVudGlhbCBz
aG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIAogUEFTUyBzZXRDb25maWd1cmF0aW9uKGNv
bmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciBhbmQgb25seSBjcmVkZW50aWFsIHNob3VsZCB0aHJv
dyBJbnZhbGlkQWNjZXNzRXJyb3IgCi1GQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcp
IC0gd2l0aCAiIiB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3M6IGZ1
bmN0aW9uICIoKSA9PgorRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGgg
IiIgdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rp
b24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAn
JwotICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IElDRSBzZXJ2
ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgKCJOb3RTdXBwb3J0ZWRFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiU3ludGF4RXJyb3IiICgiU3ludGF4RXJyb3IiKQotRkFJTCBzZXRDb25maWd1cmF0
aW9uKGNvbmZpZykgLSB3aXRoICIiIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0
X3Rocm93czogZnVuY3Rpb24gIigpID0+CisgICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJOb3RT
dXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFs
IHRvIDksIGV4cGVjdGVkIDEyCitGQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGgg
IiIgdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rp
b24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAn
JwotICAgICAgfV0gfSkiIHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IElDRSBzZXJ2
ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgKCJOb3RTdXBwb3J0ZWRFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiU3ludGF4RXJyb3IiICgiU3ludGF4RXJyb3IiKQotRkFJTCBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oY29uZmlnKSAtIHdpdGggWyJzdHVuOnN0dW4xLmV4YW1wbGUubmV0IiwgIiJdIHVy
bCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+
CisgICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZl
ciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDksIGV4cGVjdGVkIDEyCitGQUlM
IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBbInN0dW46c3R1bjEuZXhhbXBs
ZS5uZXQiLCAiIl0gdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2Rv
bTogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAg
ICB1cmxzOiBbJ3N0dW46c3R1bjEuZXhhbXBsZS5uZXQnLCAnJ10KLSAgICAgIH1dIH0pIiB0aHJl
dyBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBw
b3J0ZWQiICgiTm90U3VwcG9ydGVkRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlN5bnRheEVycm9y
IiAoIlN5bnRheEVycm9yIikKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCBb
InN0dW46c3R1bjEuZXhhbXBsZS5uZXQiLCAiIl0gdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJv
ciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KKyAgICAgIH1dIH0pIiB0aHJldyBvYmpl
Y3QgIk5vdFN1cHBvcnRlZEVycm9yOiBJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQi
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFN5bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIg
aXMgZXF1YWwgdG8gOSwgZXhwZWN0ZWQgMTIKK0ZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcp
IC0gd2l0aCBbInN0dW46c3R1bjEuZXhhbXBsZS5uZXQiLCAiIl0gdXJsIHNob3VsZCB0aHJvdyBT
eW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtl
UGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiBbJ3N0dW46c3R1bjEuZXhhbXBsZS5u
ZXQnLCAnJ10KLSAgICAgIH1dIH0pIiB0aHJldyBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBJ
Q0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiICgiTm90U3VwcG9ydGVkRXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlN5bnRheEVycm9yIiAoIlN5bnRheEVycm9yIikKLUZBSUwgbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHJlbGF0aXZlIHVybCBzaG91bGQgdGhyb3cg
U3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+CisgICAgICB9XSB9KSIg
dGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZlciBwcm90b2NvbCBub3Qg
c3VwcG9ydGVkIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50YXhFcnJvcjogcHJvcGVy
dHkgImNvZGUiIGlzIGVxdWFsIHRvIDksIGV4cGVjdGVkIDEyCitGQUlMIG5ldyBSVENQZWVyQ29u
bmVjdGlvbihjb25maWcpIC0gd2l0aCByZWxhdGl2ZSB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVy
cm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQYyh7IGlj
ZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICdyZWxhdGl2ZS11cmwnCi0gICAgICB9XSB9KSIg
dGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZlciBwcm90b2NvbCBub3Qg
c3VwcG9ydGVkIiAoIk5vdFN1cHBvcnRlZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJTeW50YXhF
cnJvciIgKCJTeW50YXhFcnJvciIpCi1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdp
dGggcmVsYXRpdmUgdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzOiBm
dW5jdGlvbiAiKCkgPT4KKyAgICAgIH1dIH0pIiB0aHJldyBvYmplY3QgIk5vdFN1cHBvcnRlZEVy
cm9yOiBJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiIHRoYXQgaXMgbm90IGEgRE9N
RXhjZXB0aW9uIFN5bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gOSwgZXhw
ZWN0ZWQgMTIKK0ZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCByZWxhdGl2ZSB1
cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAi
KCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICdyZWxh
dGl2ZS11cmwnCi0gICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjog
SUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiAoIk5vdFN1cHBvcnRlZEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJTeW50YXhFcnJvciIgKCJTeW50YXhFcnJvciIpCi1GQUlMIG5ldyBS
VENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBodHRwIHVybCBzaG91bGQgdGhyb3cgU3lu
dGF4RXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+CisgICAgICB9XSB9KSIgdGhy
ZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3Vw
cG9ydGVkIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkg
ImNvZGUiIGlzIGVxdWFsIHRvIDksIGV4cGVjdGVkIDEyCitGQUlMIG5ldyBSVENQZWVyQ29ubmVj
dGlvbihjb25maWcpIC0gd2l0aCBodHRwIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNz
ZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVy
czogW3sKICAgICAgICAgdXJsczogJ2h0dHA6Ly9leGFtcGxlLmNvbScKLSAgICAgIH1dIH0pIiB0
aHJldyBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBz
dXBwb3J0ZWQiICgiTm90U3VwcG9ydGVkRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlN5bnRheEVy
cm9yIiAoIlN5bnRheEVycm9yIikKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0
aCBodHRwIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93czogZnVuY3Rp
b24gIigpID0+CisgICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjog
SUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDksIGV4cGVjdGVk
IDEyCitGQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggaHR0cCB1cmwgc2hvdWxk
IHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAg
ICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICdodHRwOi8vZXhhbXBs
ZS5jb20nCi0gICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNF
IHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiAoIk5vdFN1cHBvcnRlZEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJTeW50YXhFcnJvciIgKCJTeW50YXhFcnJvciIpCi1GQUlMIG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBpbnZhbGlkIHR1cm4gdXJsIHNob3VsZCB0aHJv
dyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KKyAgICAgIH1dIH0p
IiB0aHJldyBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBJQ0Ugc2VydmVyIHByb3RvY29sIG5v
dCBzdXBwb3J0ZWQiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFN5bnRheEVycm9yOiBwcm9w
ZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gOSwgZXhwZWN0ZWQgMTIKK0ZBSUwgbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIGludmFsaWQgdHVybiB1cmwgc2hvdWxkIHRocm93IFN5
bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQ
Yyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICd0dXJuOi8vZXhhbXBsZS5vcmcvZm9v
P3g9eScKLSAgICAgIH1dIH0pIiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogVFVS
Ti9UVVJOUyBzZXJ2ZXIgcmVxdWlyZXMgYm90aCB1c2VybmFtZSBhbmQgY3JlZGVudGlhbCIgKCJJ
bnZhbGlkQWNjZXNzRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlN5bnRheEVycm9yIiAoIlN5bnRh
eEVycm9yIikKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCBpbnZhbGlkIHR1
cm4gdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAi
KCkgPT4KKyAgICAgIH1dIH0pIiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogVFVS
Ti9UVVJOUyBzZXJ2ZXIgcmVxdWlyZXMgYm90aCB1c2VybmFtZSBhbmQgY3JlZGVudGlhbCIgdGhh
dCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBl
cXVhbCB0byAxNSwgZXhwZWN0ZWQgMTIKK0ZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0g
d2l0aCBpbnZhbGlkIHR1cm4gdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhy
b3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewog
ICAgICAgICB1cmxzOiAndHVybjovL2V4YW1wbGUub3JnL2Zvbz94PXknCi0gICAgICB9XSB9KSIg
dGhyZXcgb2JqZWN0ICJJbnZhbGlkQWNjZXNzRXJyb3I6IFRVUk4vVFVSTlMgc2VydmVyIHJlcXVp
cmVzIGJvdGggdXNlcm5hbWUgYW5kIGNyZWRlbnRpYWwiICgiSW52YWxpZEFjY2Vzc0Vycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJTeW50YXhFcnJvciIgKCJTeW50YXhFcnJvciIpCi1GQUlMIG5ldyBS
VENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBpbnZhbGlkIHN0dW4gdXJsIHNob3VsZCB0
aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KKyAgICAgIH1d
IH0pIiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogVFVSTi9UVVJOUyBzZXJ2ZXIg
cmVxdWlyZXMgYm90aCB1c2VybmFtZSBhbmQgY3JlZGVudGlhbCIgdGhhdCBpcyBub3QgYSBET01F
eGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAxNSwgZXhw
ZWN0ZWQgMTIKK0ZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIGludmFs
aWQgc3R1biB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBm
dW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVy
bHM6ICdzdHVuOi8vZXhhbXBsZS5vcmcvZm9vP3g9eScKLSAgICAgIH1dIH0pIiB0aHJldyBvYmpl
Y3QgIkludmFsaWRBY2Nlc3NFcnJvcjogQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyIgKCJJ
bnZhbGlkQWNjZXNzRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlN5bnRheEVycm9yIiAoIlN5bnRh
eEVycm9yIikKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCBpbnZhbGlkIHN0
dW4gdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAi
KCkgPT4KKyAgICAgIH1dIH0pIiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogQmFk
IENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3lu
dGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAxNSwgZXhwZWN0ZWQgMTIKK0ZB
SUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCBpbnZhbGlkIHN0dW4gdXJsIHNob3Vs
ZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAg
ICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAnc3R1bjovL2V4YW1w
bGUub3JnL2Zvbz94PXknCi0gICAgICB9XSB9KSIgdGhyZXcgb2JqZWN0ICJJbnZhbGlkQWNjZXNz
RXJyb3I6IEJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiICgiSW52YWxpZEFjY2Vzc0Vycm9y
IikgZXhwZWN0ZWQgb2JqZWN0ICJTeW50YXhFcnJvciIgKCJTeW50YXhFcnJvciIpCi1GQUlMIG5l
dyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBlbXB0eSB1cmxzIHNob3VsZCB0aHJv
dyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KKyAgICAgIH1dIH0p
IiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogQmFkIENvbmZpZ3VyYXRpb24gUGFy
YW1ldGVycyIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5
ICJjb2RlIiBpcyBlcXVhbCB0byAxNSwgZXhwZWN0ZWQgMTIKK0ZBSUwgbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKGNvbmZpZykgLSB3aXRoIGVtcHR5IHVybHMgc2hvdWxkIHRocm93IFN5bnRheEVycm9y
IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNl
cnZlcnM6IFt7CiAgICAgICAgIHVybHM6IFtdCiAgICAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdwot
RkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIGVtcHR5IHVybHMgc2hvdWxkIHRo
cm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PgorRkFJTCBzZXRD
b25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIGVtcHR5IHVybHMgc2hvdWxkIHRocm93IFN5bnRh
eEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQYyh7
IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6IFtdCiAgICAgICB9XSB9KSIgZGlkIG5vdCB0
aHJvdwotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggaW52YWxpZCBj
cmVkZW50aWFsVHlwZSBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IGZ1bmN0
aW9uICIoKSA9PgorRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggaW52
YWxpZCBjcmVkZW50aWFsVHlwZSBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3Nf
anM6IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAg
ICAgdXJsczogW10sCiAgICAgICAgIGNyZWRlbnRpYWxUeXBlOiAnaW52YWxpZCcKICAgICAgIH1d
IH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGgg
aW52YWxpZCBjcmVkZW50aWFsVHlwZSBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IGZ1bmN0aW9uICIoKSA9PgorRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRo
IGludmFsaWQgY3JlZGVudGlhbFR5cGUgc2hvdWxkIHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAg
ICAgICAgIHVybHM6IFtdLAogICAgICAgICBjcmVkZW50aWFsVHlwZTogJ2ludmFsaWQnCiAgICAg
ICB9XSB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmln
KSAtIHdpdGggY3JlZGVudGlhbFR5cGUgdG9rZW4gc2hvdWxkIHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KK0ZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNv
bmZpZykgLSB3aXRoIGNyZWRlbnRpYWxUeXBlIHRva2VuIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2
ZXJzOiBbewogICAgICAgICB1cmxzOiBbXSwKICAgICAgICAgY3JlZGVudGlhbFR5cGU6ICd0b2tl
bicKICAgICAgIH1dIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29u
ZmlnKSAtIHdpdGggY3JlZGVudGlhbFR5cGUgdG9rZW4gc2hvdWxkIHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4KK0ZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25m
aWcpIC0gd2l0aCBjcmVkZW50aWFsVHlwZSB0b2tlbiBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVy
czogW3sKICAgICAgICAgdXJsczogW10sCiAgICAgICAgIGNyZWRlbnRpYWxUeXBlOiAndG9rZW4n
CiAgICAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdwogUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
Y29uZmlnKSAtIHdpdGggdXJsIGZpZWxkIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIHNl
dENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggdXJsIGZpZWxkIHNob3VsZCB0aHJvdyBUeXBl
RXJyb3IgCi1GQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBz
ZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgUlRDT2F1dGhDcmVkZW50aWFsIGNy
ZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzOiBm
dW5jdGlvbiAiKCkgPT4KK0ZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRo
IHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQsIGFuZCBSVENPYXV0aENyZWRl
bnRpYWwgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF90
aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7
CiAgICAgICAgIHVybHM6ICd0dXJuczp0dXJuLmV4YW1wbGUub3JnJywKICAgICAgICAgY3JlZGVu
dGlhbFR5cGU6ICdwYXNzd29yZCcsCkBAIC0xMzAsNyArMTMwLDcgQEAgRkFJTCBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBw
YXNzd29yZCwKICAgICAgICAgICBhY2Nlc3NUb2tlbjogJycKICAgICAgICAgfQogICAgICAgfV0g
fSkiIGRpZCBub3QgdGhyb3cKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCB0
dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgUlRDT2F1dGhDcmVkZW50
aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhy
b3dzOiBmdW5jdGlvbiAiKCkgPT4KK0ZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0
aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgUlRDT2F1dGhDcmVk
ZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRf
dGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBb
ewogICAgICAgICB1cmxzOiAndHVybnM6dHVybi5leGFtcGxlLm9yZycsCiAgICAgICAgIGNyZWRl
bnRpYWxUeXBlOiAncGFzc3dvcmQnLApAQCAtMTQwLDE0ICsxNDAsMTQgQEAgRkFJTCBzZXRDb25m
aWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFz
c3dvcmQsIGFuZAogICAgICAgICAgIGFjY2Vzc1Rva2VuOiAnJwogICAgICAgICB9CiAgICAgICB9
XSB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAt
IHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVk
ZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93czogZnVu
Y3Rpb24gIigpID0+CitGQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0
dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwg
c2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rp
b24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAn
dHVybnM6dHVybi5leGFtcGxlLm9yZycsCiAgICAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1dGgn
LAogICAgICAgICB1c2VybmFtZTogJ3VzZXInLAogICAgICAgICBjcmVkZW50aWFsOiAnY3JlZCcK
ICAgICAgIH1dIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmln
KSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBj
cmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93czog
ZnVuY3Rpb24gIigpID0+CitGQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggdHVy
bnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNo
b3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9u
ICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogJ3R1
cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAogICAgICAgICBjcmVkZW50aWFsVHlwZTogJ29hdXRoJywK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VT
ZXJ2ZXJzLmh0bWwKaW5kZXggM2Y1YzM2N2QzYWQ5ODE4NjQ2MTg2NGI2YjBiZGVjZWUzYTA3MzE5
ZS4uMmVmOTliZjU5YzhjYzExMjczZTk5Mzg4YjE0NDRiZjI1MDY3Y2IyMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29u
ZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLmh0
bWwKQEAgLTU4LDcgKzU4LDcgQEAKICAgfSwgJ3t9IHNob3VsZCBzdWNjZWVkJyk7CiAKICAgY29u
ZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwg
KCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KICAgICAgIG1ha2VQ
Yyh7IGljZVNlcnZlcnM6IG51bGwgfSkpOwogICB9LCAneyBpY2VTZXJ2ZXJzOiBudWxsIH0gc2hv
dWxkIHRocm93IFR5cGVFcnJvcicpOwogCkBAIC03MywxNyArNzMsMTcgQEAKICAgfSwgJ3sgaWNl
U2VydmVyczogW10gfSBzaG91bGQgc3VjY2VlZCcpOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9
PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBb
bnVsbF0gfSkpOwogICB9LCAneyBpY2VTZXJ2ZXJzOiBbbnVsbF0gfSBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yJyk7CiAKICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dz
KG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwg
KCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt1bmRlZmluZWRdIH0pKTsKICAgfSwg
J3sgaWNlU2VydmVyczogW3VuZGVmaW5lZF0gfSBzaG91bGQgdGhyb3cgVHlwZUVycm9yJyk7CiAK
ICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJy
b3IoKSwgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KICAgICAg
IG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7fV0gfSkpOwogICB9LCAneyBpY2VTZXJ2ZXJzOiBbe31d
IH0gc2hvdWxkIHRocm93IFR5cGVFcnJvcicpOwogCkBAIC0yMTksMTQgKzIxOSwxNCBAQAogICAg
ICAgICAgICAgc2VydmVyLmNyZWRlbnRpYWwgYXJlIG9taXR0ZWQsIHRoZW4gdGhyb3cgYW4gSW52
YWxpZEFjY2Vzc0Vycm9yLgogICAgKi8KICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBh
c3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgorICAgIGFzc2VydF90aHJv
d3NfZG9tKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2Vy
dmVyczogW3sKICAgICAgICAgdXJsczogJ3R1cm46dHVybi5leGFtcGxlLm5ldCcKICAgICAgIH1d
IH0pKTsKICAgfSwgJ3dpdGggdHVybiBzZXJ2ZXIgYW5kIG5vIGNyZWRlbnRpYWxzIHNob3VsZCB0
aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3InKTsKIAogICBjb25maWdfdGVzdChtYWtlUGMgPT4gewot
ICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgpID0+CisgICAgYXNzZXJ0
X3Rocm93c19kb20oJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgpID0+CiAgICAgICBtYWtlUGMoeyBp
Y2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAndHVybjp0dXJuLmV4YW1wbGUubmV0JywKICAg
ICAgICAgdXNlcm5hbWU6ICd1c2VyJwpAQCAtMjM0LDcgKzIzNCw3IEBACiAgIH0sICd3aXRoIHR1
cm4gc2VydmVyIGFuZCBvbmx5IHVzZXJuYW1lIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJy
b3InKTsKIAogICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MoJ0lu
dmFsaWRBY2Nlc3NFcnJvcicsICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRB
Y2Nlc3NFcnJvcicsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAg
ICB1cmxzOiAndHVybjp0dXJuLmV4YW1wbGUubmV0JywKICAgICAgICAgY3JlZGVudGlhbDogJ2Ny
ZWQnCkBAIC0yNDIsMTQgKzI0MiwxNCBAQAogICB9LCAnd2l0aCB0dXJuIHNlcnZlciBhbmQgb25s
eSBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3InKTsKIAogICBjb25m
aWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRBY2Nlc3NFcnJv
cicsICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgp
ID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAndHVybnM6
dHVybi5leGFtcGxlLm5ldCcKICAgICAgIH1dIH0pKTsKICAgfSwgJ3dpdGggdHVybnMgc2VydmVy
IGFuZCBubyBjcmVkZW50aWFscyBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CiAK
ICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNj
ZXNzRXJyb3InLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkQWNjZXNzRXJy
b3InLCAoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczog
J3R1cm5zOnR1cm4uZXhhbXBsZS5uZXQnLAogICAgICAgICB1c2VybmFtZTogJ3VzZXInCkBAIC0y
NTcsNyArMjU3LDcgQEAKICAgfSwgJ3dpdGggdHVybnMgc2VydmVyIGFuZCBvbmx5IHVzZXJuYW1l
IHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3InKTsKIAogICBjb25maWdfdGVzdChtYWtl
UGMgPT4gewotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgpID0+Cisg
ICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgpID0+CiAgICAgICBt
YWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAndHVybnM6dHVybi5leGFtcGxl
Lm5ldCcsCiAgICAgICAgIGNyZWRlbnRpYWw6ICdjcmVkJwpAQCAtMjg1LDU2ICsyODUsNTYgQEAK
ICAgICAgIHRyYW5zcG9ydC1leHQgPSAxKnVucmVzZXJ2ZWQKICAgICovCiAgIGNvbmZpZ190ZXN0
KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgU3ludGF4RXJyb3IoKSwgKCkgPT4K
KyAgICBhc3NlcnRfdGhyb3dzX2RvbSgiU3ludGF4RXJyb3IiLCAoKSA9PgogICAgICAgbWFrZVBj
KHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogJycKICAgICAgIH1dIH0pKTsKICAgfSwg
J3dpdGggIiIgdXJsIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvcicpOwogCiAgIGNvbmZpZ190ZXN0
KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgU3ludGF4RXJyb3IoKSwgKCkgPT4K
KyAgICBhc3NlcnRfdGhyb3dzX2RvbSgiU3ludGF4RXJyb3IiLCAoKSA9PgogICAgICAgbWFrZVBj
KHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogWydzdHVuOnN0dW4xLmV4YW1wbGUubmV0
JywgJyddCiAgICAgICB9XSB9KSk7CiAgIH0sICd3aXRoIFsic3R1bjpzdHVuMS5leGFtcGxlLm5l
dCIsICIiXSB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yJyk7CiAKICAgY29uZmlnX3Rlc3Qo
bWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBTeW50YXhFcnJvcigpLCAoKSA9Pgor
ICAgIGFzc2VydF90aHJvd3NfZG9tKCJTeW50YXhFcnJvciIsICgpID0+CiAgICAgICBtYWtlUGMo
eyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAncmVsYXRpdmUtdXJsJwogICAgICAgfV0g
fSkpOwogICB9LCAnd2l0aCByZWxhdGl2ZSB1cmwgc2hvdWxkIHRocm93IFN5bnRheEVycm9yJyk7
CiAKICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBTeW50
YXhFcnJvcigpLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3NfZG9tKCJTeW50YXhFcnJvciIsICgp
ID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAnaHR0cDov
L2V4YW1wbGUuY29tJwogICAgICAgfV0gfSkpOwogICB9LCAnd2l0aCBodHRwIHVybCBzaG91bGQg
dGhyb3cgU3ludGF4RXJyb3InKTsKIAogICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFz
c2VydF90aHJvd3MobmV3IFN5bnRheEVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19k
b20oIlN5bnRheEVycm9yIiwgKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAg
ICAgICAgIHVybHM6ICd0dXJuOi8vZXhhbXBsZS5vcmcvZm9vP3g9eScKICAgICAgIH1dIH0pKTsK
ICAgfSwgJ3dpdGggaW52YWxpZCB0dXJuIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3InKTsK
IAogICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFN5bnRh
eEVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwgKCkg
PT4KICAgICAgIG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICdzdHVuOi8v
ZXhhbXBsZS5vcmcvZm9vP3g9eScKICAgICAgIH1dIH0pKTsKICAgfSwgJ3dpdGggaW52YWxpZCBz
dHVuIHVybCBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3InKTsKIAogICBjb25maWdfdGVzdChtYWtl
UGMgPT4gewotICAgIGFzc2VydF90aHJvd3MobmV3IFN5bnRheEVycm9yKCksICgpID0+CisgICAg
YXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwgKCkgPT4KICAgICAgIG1ha2VQYyh7IGlj
ZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6IFtdCiAgICAgICB9XSB9KSk7CiAgIH0sIGB3aXRo
IGVtcHR5IHVybHMgc2hvdWxkIHRocm93IFN5bnRheEVycm9yYCk7CiAKICAgY29uZmlnX3Rlc3Qo
bWFrZVBjID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4KKyAg
ICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVNl
cnZlcnM6IFt7CiAgICAgICAgIHVybHM6IFtdLAogICAgICAgICBjcmVkZW50aWFsVHlwZTogJ2lu
dmFsaWQnCkBAIC0zNDMsNyArMzQzLDcgQEAKIAogICAvLyB0b2tlbiBjcmVkZW50aWFsVHlwZSB3
YXMgcmVtb3ZlZCBmcm9tIHRoZSBzcGVjIHNpbmNlIDIwMTcwNTA4CiAgIGNvbmZpZ190ZXN0KG1h
a2VQYyA9PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAg
YXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2
ZXJzOiBbewogICAgICAgICB1cmxzOiBbXSwKICAgICAgICAgY3JlZGVudGlhbFR5cGU6ICd0b2tl
bicKQEAgLTM1Miw3ICszNTIsNyBAQAogCiAgIC8vIEJsaW5rIGFuZCBHZWNrbyBmYWxsIGJhY2sg
dG8gdXJsLCBidXQgaXQncyBub3QgaW4gdGhlIHNwZWMuCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9
PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBb
ewogICAgICAgICB1cmw6ICdzdHVuOnN0dW4xLmV4YW1wbGUubmV0JwogICAgICAgfV0gfSkpOwpA
QCAtMzY1LDcgKzM2NSw3IEBACiAgICAgICAgICAgICBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAg
ICAqLwogICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGFzc2VydF90aHJvd3MoJ0ludmFs
aWRBY2Nlc3NFcnJvcicsICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRBY2Nl
c3NFcnJvcicsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1
cmxzOiAndHVybnM6dHVybi5leGFtcGxlLm9yZycsCiAgICAgICAgIGNyZWRlbnRpYWxUeXBlOiAn
cGFzc3dvcmQnLApAQCAtMzg0LDcgKzM4NCw3IEBACiAgICAgICAgICAgICBJbnZhbGlkQWNjZXNz
RXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgKi8KICAgY29uZmlnX3Rlc3QobWFrZVBj
ID0+IHsKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgorICAg
IGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PgogICAgICAgbWFr
ZVBjKHsgaWNlU2VydmVyczogW3sKICAgICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5v
cmcnLAogICAgICAgICBjcmVkZW50aWFsVHlwZTogJ29hdXRoJywKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3Vy
YXRpb24taWNlVHJhbnNwb3J0UG9saWN5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVRyYW5zcG9ydFBv
bGljeS5odG1sCmluZGV4IDc0ZThiNGIyYWU3YzJiZmNkZjQ3NDkxNTM5NGExYjVmMjdmOTIzNGMu
LjI1ZDQ1MTFmNDhlMzJlZjk1NjhlNzUwZTc0YWJlMmRmNWM1MWU1OTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZp
Z3VyYXRpb24taWNlVHJhbnNwb3J0UG9saWN5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VUcmFu
c3BvcnRQb2xpY3kuaHRtbApAQCAtODUsMTggKzg1LDE4IEBACiAgIH0sIGBzZXRDb25maWd1cmF0
aW9uKHt9KSB3aXRoIGluaXRpYWwgaWNlVHJhbnNwb3J0UG9saWN5IHJlbGF5IHNob3VsZCBzZXQg
bmV3IHZhbHVlIHRvIGFsbGApOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNz
ZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19qcyhU
eXBlRXJyb3IsICgpID0+CiAgICAgICBtYWtlUGMoeyBpY2VUcmFuc3BvcnRQb2xpY3k6ICdpbnZh
bGlkJyB9KSk7CiAgIH0sIGB3aXRoIGludmFsaWQgaWNlVHJhbnNwb3J0UG9saWN5IHNob3VsZCB0
aHJvdyBUeXBlRXJyb3JgKTsKIAogICAvLyAibm9uZSIgaXMgaW4gQmxpbmsgYW5kIEdlY2tvJ3Mg
SURMLCBidXQgbm90IGluIHRoZSBzcGVjLgogICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3Nf
anMoVHlwZUVycm9yLCAoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlVHJhbnNwb3J0UG9saWN5OiAn
bm9uZScgfSkpOwogICB9LCBgd2l0aCBub25lIGljZVRyYW5zcG9ydFBvbGljeSBzaG91bGQgdGhy
b3cgVHlwZUVycm9yYCk7CiAKICAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgKCkgPT4KICAgICAgIG1ha2VQYyh7IGljZVRyYW5zcG9ydFBvbGljeTogbnVsbCB9KSk7
CiAgIH0sIGB3aXRoIG51bGwgaWNlVHJhbnNwb3J0UG9saWN5IHNob3VsZCB0aHJvdyBUeXBlRXJy
b3JgKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1ydGNwTXV4UG9saWN5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1
cmF0aW9uLXJ0Y3BNdXhQb2xpY3kuaHRtbAppbmRleCA3ZDBjODFmNWVhYmZkZGQ1ZmJlNjZhMmVh
YjYwZWJiNmZjZWMzM2Y1Li40OGU3NzJmYjUxOTAyYzQ5NDQ2ZGY3NDQ5YzcxMTljNzhkNmRiNjIz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLXJ0Y3BNdXhQb2xpY3kuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0
aW9uLXJ0Y3BNdXhQb2xpY3kuaHRtbApAQCAtNzEsMTIgKzcxLDEyIEBACiAgIH0sIGBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oeyBydGNwTXV4UG9saWN5OiAnbmVnb3RpYXRlJyB9KSBtYXkgc3VjY2Vl
ZCBvciB0aHJvdyBOb3RTdXBwb3J0ZWRFcnJvcmApOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9
PiB7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBtYWtlUGMoeyBydGNwTXV4UG9saWN5
OiBudWxsIH0pKTsKICAgfSwgYHdpdGggeyBydGNwTXV4UG9saWN5OiBudWxsIH0gc2hvdWxkIHRo
cm93IFR5cGVFcnJvcmApOwogCiAgIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBl
RXJyb3IsICgpID0+CiAgICAgICBtYWtlUGMoeyBydGNwTXV4UG9saWN5OiAnaW52YWxpZCcgfSkp
OwogICB9LCBgd2l0aCB7IHJ0Y3BNdXhQb2xpY3k6ICdpbnZhbGlkJyB9IHNob3VsZCB0aHJvdyBU
eXBlRXJyb3JgKTsKIApAQCAtODksNyArODksNyBAQAogICB0ZXN0KCgpID0+IHsKICAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IHJ0Y3BNdXhQb2xpY3k6ICdyZXF1aXJlJyB9
KTsKICAgICBhc3NlcnRfaWRsX2F0dHJpYnV0ZShwYywgJ3NldENvbmZpZ3VyYXRpb24nKTsKLSAg
ICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PgorICAgIGFz
c2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PgogICAgICAg
cGMuc2V0Q29uZmlndXJhdGlvbih7IHJ0Y3BNdXhQb2xpY3k6ICduZWdvdGlhdGUnIH0pKTsKIAog
ICB9LCBgc2V0Q29uZmlndXJhdGlvbih7IHJ0Y3BNdXhQb2xpY3k6ICduZWdvdGlhdGUnIH0pIHdp
dGggaW5pdGlhbCBydGNwTXV4UG9saWN5IHJlcXVpcmUgc2hvdWxkIHRocm93IEludmFsaWRNb2Rp
ZmljYXRpb25FcnJvcmApOwpAQCAtMTA5LDcgKzEwOSw3IEBACiAgICAgfQogCiAgICAgYXNzZXJ0
X2lkbF9hdHRyaWJ1dGUocGMsICdzZXRDb25maWd1cmF0aW9uJyk7Ci0gICAgYXNzZXJ0X3Rocm93
cygnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2Rv
bSgnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4KICAgICAgIHBjLnNldENvbmZpZ3Vy
YXRpb24oeyBydGNwTXV4UG9saWN5OiAncmVxdWlyZScgfSkpOwogCiAgIH0sIGBzZXRDb25maWd1
cmF0aW9uKHsgcnRjcE11eFBvbGljeTogJ3JlcXVpcmUnIH0pIHdpdGggaW5pdGlhbCBydGNwTXV4
UG9saWN5IG5lZ290aWF0ZSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7
CkBAIC0xMzAsNyArMTMwLDcgQEAKIAogICAgIGFzc2VydF9pZGxfYXR0cmlidXRlKHBjLCAnc2V0
Q29uZmlndXJhdGlvbicpOwogICAgIC8vIGRlZmF1bHQgdmFsdWUgZm9yIHJ0Y3BNdXhQb2xpY3kg
aXMgcmVxdWlyZQotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcics
ICgpID0+CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcics
ICgpID0+CiAgICAgICBwYy5zZXRDb25maWd1cmF0aW9uKHt9KSk7CiAKICAgfSwgYHNldENvbmZp
Z3VyYXRpb24oe30pIHdpdGggaW5pdGlhbCBydGNwTXV4UG9saWN5IG5lZ290aWF0ZSBzaG91bGQg
dGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CkBAIC0xNjYsNyArMTY2LDcgQEAKICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7cnRjcE11eFBvbGljeTogJ3JlcXVp
cmUnfSk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKIAotICAgIHJldHVy
biBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsIHBjLnNldFJlbW90ZURl
c2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHB9KSk7CisgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0c19kb20odCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsIHBjLnNldFJlbW90ZURlc2NyaXB0aW9u
KHt0eXBlOiAnb2ZmZXInLCBzZHB9KSk7CiAgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbiB0aHJv
d3MgSW52YWxpZEFjY2Vzc0Vycm9yIHdoZW4gY2FsbGVkIHdpdGggYW4gb2ZmZXIgd2l0aG91dCBy
dGNwLW11eCBhbmQgcnRjcE11eFBvbGljeSBpcyBzZXQgdG8gcmVxdWlyZScpOwogCiAgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKQEAgLTE5MSw2ICsxOTEsNiBAQAogCiAgICAgY29uc3Qgb2Zm
ZXIgPSBhd2FpdCBnZW5lcmF0ZUF1ZGlvUmVjZWl2ZU9ubHlPZmZlcihwYyk7CiAgICAgYXdhaXQg
cGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7Ci0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0
cyh0LCAnSW52YWxpZEFjY2Vzc0Vycm9yJywgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6
ICdhbnN3ZXInLCBzZHB9KSk7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0lu
dmFsaWRBY2Nlc3NFcnJvcicsIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnYW5zd2Vy
Jywgc2RwfSkpOwogICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24gdGhyb3dzIEludmFsaWRBY2Nl
c3NFcnJvciB3aGVuIGNhbGxlZCB3aXRoIGFuIGFuc3dlciB3aXRob3V0IHJ0Y3AtbXV4IGFuZCBy
dGNwTXV4UG9saWN5IGlzIHNldCB0byByZXF1aXJlJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RU
TUZTZW5kZXItaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1oZWxwZXIuanMKaW5kZXggZDkxZDhhNTQzNDAw
NDFiNjRlNDBlNWE3N2Y5YWMwYzc3OGJmMDBlNy4uNDMxNmMzODA0YTI4ZjQ0ZDFmODZhZjk3Yzg2
ZTQ3ODU3MGIyNDM3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1oZWxwZXIuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRl
ci1oZWxwZXIuanMKQEAgLTgsNyArOCw3IEBACiAKIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1
bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgogLy8g
ICBnZXRUcmFja0Zyb21Vc2VyTWVkaWEKLS8vICAgZG9TaWduYWxpbmdIYW5kc2hha2UKKy8vICAg
ZXhjaGFuZ2VPZmZlckFuc3dlcgogCiAvLyBDcmVhdGUgYSBSVENEVE1GU2VuZGVyIHVzaW5nIGdl
dFVzZXJNZWRpYSgpCiAvLyBDb25uZWN0IHRoZSBQZWVyQ29ubmVjdGlvbiB0byBhbm90aGVyIFBD
IGFuZCB3YWl0IHVudGlsIGl0IGlzCkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUR0
bWZTZW5kZXIocGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSkgewogICAgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYywg
J290aGVyUGMnLCB7IHZhbHVlOiBwYzIgfSk7CiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBj
LCBwYzIpOwotICAgIHJldHVybiBkb1NpZ25hbGluZ0hhbmRzaGFrZShwYywgcGMyKTsKKyAgICBy
ZXR1cm4gZXhjaGFuZ2VPZmZlckFuc3dlcihwYywgcGMyKTsKICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgaWYgKCEoJ2Nhbkluc2VydERUTUYnIGluIGR0bWZTZW5kZXIpKSB7CiAgICAgICByZXR1cm4g
UHJvbWlzZS5yZXNvbHZlKCk7CkBAIC03OCwxOCArNzgsMjQgQEAgZnVuY3Rpb24gY3JlYXRlRHRt
ZlNlbmRlcihwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpKSB7CiAgICAgICBUZXN0IGRlc2Ny
aXB0aW9uLgogICovCiBmdW5jdGlvbiB0ZXN0X3RvbmVfY2hhbmdlX2V2ZW50cyh0ZXN0RnVuYywg
dG9uZUNoYW5nZXMsIGRlc2MpIHsKLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGxldCBkb25l
LCBmYWlsOwotICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7Ci0gICAgICAgIGRvbmUgPSByZXNvbHZlOwotICAgICAgICBmYWlsID0gcmVqZWN0Owot
ICAgIH0pOwotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIC8vIENv
bnZlcnQgdG8gY3VtdWxhdGl2ZSB0aW1lCisgIGxldCBjdW11bGF0aXZlVGltZSA9IDA7CisgIGNv
bnN0IGN1bXVsYXRpdmVUb25lQ2hhbmdlcyA9IHRvbmVDaGFuZ2VzLm1hcChjID0+IHsKKyAgICBj
dW11bGF0aXZlVGltZSArPSBjWzJdOworICAgIHJldHVybiBbY1swXSwgY1sxXSwgY3VtdWxhdGl2
ZVRpbWVdOworICB9KTsKKworICAvLyBXYWl0IGZvciBzYW1lIGR1cmF0aW9uIGFzIGxhc3QgZXhw
ZWN0ZWQgZHVyYXRpb24gKyAxMDBtcworICAvLyBiZWZvcmUgcGFzc2luZyB0ZXN0IGluIGNhc2Ug
dGhlcmUgYXJlIG5ldyB0b25lIGV2ZW50cyBmaXJlZCwKKyAgLy8gaW4gd2hpY2ggY2FzZSB0aGUg
dGVzdCBzaG91bGQgZmFpbC4KKyAgY29uc3QgbGFzdFdhaXQgPSB0b25lQ2hhbmdlcy5wb3AoKVsy
XSArIDEwMDsKIAotICAgIGNyZWF0ZUR0bWZTZW5kZXIocGMpCi0gICAgLnRoZW4oZHRtZlNlbmRl
ciA9PiB7Ci0gICAgICBsZXQgbGFzdEV2ZW50VGltZSA9IERhdGUubm93KCk7CisgIHByb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIGNvbnN0IGR0bWZTZW5kZXIgPSBhd2FpdCBjcmVhdGVEdG1mU2VuZGVyKHBjKTsKKyAg
ICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7CiAKKyAgICBjb25zdCBhbGxFdmVudHNSZWNlaXZl
ZCA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewogICAgICAgY29uc3Qgb25Ub25lQ2hhbmdlID0g
dC5zdGVwX2Z1bmMoZXYgPT4gewogICAgICAgICBhc3NlcnRfdHJ1ZShldiBpbnN0YW5jZW9mIFJU
Q0RUTUZUb25lQ2hhbmdlRXZlbnQsCiAgICAgICAgICAgJ0V4cGVjdCB0b25lIGNoYW5nZSBldmVu
dCBvYmplY3QgdG8gYmUgYW4gUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCcpOwpAQCAtOTgsMTIgKzEw
NCwxMiBAQCBmdW5jdGlvbiB0ZXN0X3RvbmVfY2hhbmdlX2V2ZW50cyh0ZXN0RnVuYywgdG9uZUNo
YW5nZXMsIGRlc2MpIHsKICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdG9uZSwgJ3N0cmlu
ZycsCiAgICAgICAgICAgJ0V4cGVjdCBldmVudC50b25lIHRvIGJlIHRoZSB0b25lIHN0cmluZycp
OwogCi0gICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4odG9uZUNoYW5nZXMubGVuZ3RoLCAwLAor
ICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGN1bXVsYXRpdmVUb25lQ2hhbmdlcy5sZW5ndGgs
IDAsCiAgICAgICAgICAgJ01vcmUgdG9uZWNoYW5nZSBldmVudCBpcyBmaXJlZCB0aGFuIGV4cGVj
dGVkJyk7CiAKICAgICAgICAgY29uc3QgWwotICAgICAgICAgIGV4cGVjdGVkVG9uZSwgZXhwZWN0
ZWRUb25lQnVmZmVyLCBleHBlY3RlZER1cmF0aW9uCi0gICAgICAgIF0gPSB0b25lQ2hhbmdlcy5z
aGlmdCgpOworICAgICAgICAgIGV4cGVjdGVkVG9uZSwgZXhwZWN0ZWRUb25lQnVmZmVyLCBleHBl
Y3RlZFRpbWUKKyAgICAgICAgXSA9IGN1bXVsYXRpdmVUb25lQ2hhbmdlcy5zaGlmdCgpOwogCiAg
ICAgICAgIGFzc2VydF9lcXVhbHModG9uZSwgZXhwZWN0ZWRUb25lLAogICAgICAgICAgIGBFeHBl
Y3QgY3VycmVudCBldmVudC50b25lIHRvIGJlICR7ZXhwZWN0ZWRUb25lfWApOwpAQCAtMTExLDM4
ICsxMTcsMjQgQEAgZnVuY3Rpb24gdGVzdF90b25lX2NoYW5nZV9ldmVudHModGVzdEZ1bmMsIHRv
bmVDaGFuZ2VzLCBkZXNjKSB7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoZHRtZlNlbmRlci50b25l
QnVmZmVyLCBleHBlY3RlZFRvbmVCdWZmZXIsCiAgICAgICAgICAgYEV4cGVjdCBkdG1mU2VuZGVy
LnRvbmVCdWZmZXIgdG8gYmUgdXBkYXRlZCB0byAke2V4cGVjdGVkVG9uZUJ1ZmZlcn1gKTsKIAot
ICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpOwotICAgICAgICBjb25zdCBkdXJhdGlvbiA9
IG5vdyAtIGxhc3RFdmVudFRpbWU7Ci0KLSAgICAgICAgLy8gV2UgY2hlY2sgdGhhdCB0aGUgZGVs
YXkgaXMgYXQgbGVhc3QgdGhlIGV4cGVjdGVkIG9uZSwgYnV0Ci0gICAgICAgIC8vIHN5c3RlbSBs
b2FkIG1heSBjYXVzZSByYW5kb20gZGVsYXksIHNvIHdlIGRvIG5vdCBwdXQgYW55Ci0gICAgICAg
IC8vIHJlYWxpc3RpYyB1cHBlciBib3VuZCBvbiB0aGUgdGltaW5nIG9mIHRoZSBldmVudC4KLSAg
ICAgICAgYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlKGR1cmF0aW9uLCBleHBlY3RlZER1cmF0aW9u
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWREdXJhdGlvbiArIDQw
MDAsCi0gICAgICAgICAgYEV4cGVjdCB0b25lY2hhbmdlIGV2ZW50IGZvciAiJHt0b25lfSIgdG8g
YmUgZmlyZWQgYXBwcm94aW1hdGVseSBhZnRlciAke2V4cGVjdGVkRHVyYXRpb259IG1pbGxpc2Vj
b25kc2ApOwotCi0gICAgICAgIGxhc3RFdmVudFRpbWUgPSBub3c7Ci0KLSAgICAgICAgaWYgKHRv
bmVDaGFuZ2VzLmxlbmd0aCA9PT0gMCkgewotICAgICAgICAgIC8vIFdhaXQgZm9yIHNhbWUgZHVy
YXRpb24gYXMgbGFzdCBleHBlY3RlZCBkdXJhdGlvbiArIDEwMG1zCi0gICAgICAgICAgLy8gYmVm
b3JlIHBhc3NpbmcgdGVzdCBpbiBjYXNlIHRoZXJlIGFyZSBuZXcgdG9uZSBldmVudHMgZmlyZWQs
Ci0gICAgICAgICAgLy8gaW4gd2hpY2ggY2FzZSB0aGUgdGVzdCBzaG91bGQgZmFpbC4KLSAgICAg
ICAgICB0LnN0ZXBfdGltZW91dCgKLSAgICAgICAgICAgIHQuc3RlcF9mdW5jKCgpID0+IHsKLSAg
ICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgICBwYy5jbG9zZSgpOwotICAgICAgICAg
ICAgICBwYy5vdGhlclBjLmNsb3NlKCk7Ci0gICAgICAgICAgICB9KSwgZXhwZWN0ZWREdXJhdGlv
biArIDEwMCk7CisgICAgICAgIC8vIFdlIGNoZWNrIHRoYXQgdGhlIGN1bXVsYXRpdmUgZGVsYXkg
aXMgYXQgbGVhc3QgdGhlIGV4cGVjdGVkIG9uZSwgYnV0CisgICAgICAgIC8vIHN5c3RlbSBsb2Fk
IG1heSBjYXVzZSByYW5kb20gZGVsYXlzLCBzbyB3ZSBkbyBub3QgcHV0IGFueQorICAgICAgICAv
LyByZWFsaXN0aWMgdXBwZXIgYm91bmQgb24gdGhlIHRpbWluZyBvZiB0aGUgZXZlbnRzLgorICAg
ICAgICBhc3NlcnRfYmV0d2Vlbl9pbmNsdXNpdmUoRGF0ZS5ub3coKSAtIHN0YXJ0LCBleHBlY3Rl
ZFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZFRpbWUgKyA0
MDAwLAorICAgICAgICAgIGBFeHBlY3QgdG9uZWNoYW5nZSBldmVudCBmb3IgIiR7dG9uZX0iIHRv
IGJlIGZpcmVkIGFwcHJveGltYXRlbHkgYWZ0ZXIgJHtleHBlY3RlZFRpbWV9IG1pbGxpc2Vjb25k
c2ApOworICAgICAgICBpZiAoY3VtdWxhdGl2ZVRvbmVDaGFuZ2VzLmxlbmd0aCA9PT0gMCkgewor
ICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgfQogICAgICAgfSk7CiAKICAgICAgIGR0bWZT
ZW5kZXIuYWRkRXZlbnRMaXN0ZW5lcigndG9uZWNoYW5nZScsIG9uVG9uZUNoYW5nZSk7Ci0gICAg
ICB0ZXN0RnVuYyh0LCBkdG1mU2VuZGVyLCBwYyk7Ci0gICAgfSkKLSAgICAuY2F0Y2godC5zdGVw
X2Z1bmMoZXJyID0+IHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoYFVuZXhwZWN0ZWQgcHJvbWlz
ZSByZWplY3Rpb246ICR7ZXJyfWApOwotICAgIH0pKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKKyAg
ICB9KTsKKworICAgIHRlc3RGdW5jKHQsIGR0bWZTZW5kZXIsIHBjKTsKKyAgICBhd2FpdCBhbGxF
dmVudHNSZWNlaXZlZDsKKyAgICBjb25zdCB3YWl0ID0gbXMgPT4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCBtcykpOworICAgIGF3YWl0IHdhaXQobGFzdFdh
aXQpOwogICB9LCBkZXNjKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1pbnNlcnREVE1GLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENEVE1GU2VuZGVyLWluc2VydERUTUYuaHR0cHMuaHRtbAppbmRleCA4YWMxNDRiYWI5
Mjg2ZmJhYTU2MDI3MmFlOWMxY2E3OTY1MDkwNTMyLi43MWNmZTcwMTcxZjdmZjRhZWRkZDAxNDgz
ZmNlNmVkYmYyOWU1OWI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLWluc2VydERUTUYuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEVE1GU2VuZGVyLWluc2VydERUTUYuaHR0cHMuaHRtbApAQCAtNTMsMTcgKzUzLDE1IEBA
CiAgICAgICBBbGwgb3RoZXIgY2hhcmFjdGVycyAoYW5kIG9ubHkgdGhvc2Ugb3RoZXIgY2hhcmFj
dGVycykgTVVTVCBiZSBjb25zaWRlcmVkCiAgICAgICB1bnJlY29nbml6ZWQuCiAgICAqLwotICBw
cm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUR0bWZTZW5kZXIoKQotICAudGhl
bihkdG1mU2VuZGVyID0+IHsKLSAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignJyk7Ci0gICAg
ICBkdG1mU2VuZGVyLmluc2VydERUTUYoJzAxMjM0NTY4OScpOwotICAgICAgZHRtZlNlbmRlci5p
bnNlcnREVE1GKCdBQkNEJyk7Ci0gICAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJ2FiY2QnKTsK
LSAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignIyonKTsKLSAgICAgIGR0bWZTZW5kZXIuaW5z
ZXJ0RFRNRignLCcpOwotICAgICAgZHRtZlNlbmRlci5pbnNlcnREVE1GKCcwMTIzNDU2Nzg5QUJD
RGFiY2QjKiwnKTsKLSAgICB9KTsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNv
bnN0IGR0bWZTZW5kZXIgPSBhd2FpdCBjcmVhdGVEdG1mU2VuZGVyKCk7CisgICAgZHRtZlNlbmRl
ci5pbnNlcnREVE1GKCcnKTsKKyAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJzAxMjM0NTY4OScp
OworICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignQUJDRCcpOworICAgIGR0bWZTZW5kZXIuaW5z
ZXJ0RFRNRignYWJjZCcpOworICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignIyonKTsKKyAgICBk
dG1mU2VuZGVyLmluc2VydERUTUYoJywnKTsKKyAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJzAx
MjM0NTY3ODlBQkNEYWJjZCMqLCcpOwogICB9LCAnaW5zZXJ0RFRNRigpIHNob3VsZCBzdWNjZWVk
IGlmIHRvbmVzIGNvbnRhaW5zIHZhbGlkIERUTUYgY2hhcmFjdGVycycpOwogCiAKQEAgLTcyLDIx
ICs3MCwxOSBAQAogICAgICAgNi4gIElmIHRvbmVzIGNvbnRhaW5zIGFueSB1bnJlY29nbml6ZWQg
Y2hhcmFjdGVycywgdGhyb3cgYW4KICAgICAgICAgICBJbnZhbGlkQ2hhcmFjdGVyRXJyb3IuCiAg
ICAqLwotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUR0bWZTZW5kZXIo
KQotICAgIC50aGVuKGR0bWZTZW5kZXIgPT4gewotICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxp
ZENoYXJhY3RlckVycm9yJywgKCkgPT4KLSAgICAgICAgLy8gJ0YnIGlzIGludmFsaWQKLSAgICAg
ICAgZHRtZlNlbmRlci5pbnNlcnREVE1GKCcxMjNGRkFCQycpKTsKLQotICAgICAgYXNzZXJ0X3Ro
cm93cygnSW52YWxpZENoYXJhY3RlckVycm9yJywgKCkgPT4KLSAgICAgICAgLy8gJ0UnIGlzIGlu
dmFsaWQKLSAgICAgICAgZHRtZlNlbmRlci5pbnNlcnREVE1GKCdFJykpOwotCi0gICAgICBhc3Nl
cnRfdGhyb3dzKCdJbnZhbGlkQ2hhcmFjdGVyRXJyb3InLCAoKSA9PgotICAgICAgICAvLyAnICcg
aXMgaW52YWxpZAotICAgICAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJyMgKicpKTsKLSAgICB9
KTsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGR0bWZTZW5kZXIgPSBh
d2FpdCBjcmVhdGVEdG1mU2VuZGVyKCk7CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRD
aGFyYWN0ZXJFcnJvcicsICgpID0+CisgICAgICAvLyAnRicgaXMgaW52YWxpZAorICAgICAgZHRt
ZlNlbmRlci5pbnNlcnREVE1GKCcxMjNGRkFCQycpKTsKKworICAgIGFzc2VydF90aHJvd3NfZG9t
KCdJbnZhbGlkQ2hhcmFjdGVyRXJyb3InLCAoKSA9PgorICAgICAgLy8gJ0UnIGlzIGludmFsaWQK
KyAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignRScpKTsKKworICAgIGFzc2VydF90aHJvd3Nf
ZG9tKCdJbnZhbGlkQ2hhcmFjdGVyRXJyb3InLCAoKSA9PgorICAgICAgLy8gJyAnIGlzIGludmFs
aWQKKyAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignIyAqJykpOwogICB9LCAnaW5zZXJ0RFRN
RigpIHNob3VsZCB0aHJvdyBJbnZhbGlkQ2hhcmFjdGVyRXJyb3IgaWYgdG9uZXMgY29udGFpbnMg
aW52YWxpZCBEVE1GIGNoYXJhY3RlcnMnKTsKIAogICAvKgpAQCAtOTksNyArOTUsNyBAQAogICAg
IGNvbnN0IGR0bWZTZW5kZXIgPSB0cmFuc2NlaXZlci5zZW5kZXIuZHRtZjsKIAogICAgIHRyYW5z
Y2VpdmVyLnN0b3AoKTsKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgp
ID0+IGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignJykpOworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJ
bnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGR0bWZTZW5kZXIuaW5zZXJ0RFRNRignJykpOwogCiAg
IH0sICdpbnNlcnREVE1GKCkgc2hvdWxkIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGlmIHRyYW5z
Y2VpdmVyIGlzIHN0b3BwZWQnKTsKIApAQCAtMTE5LDcgKzExNSw3IEBACiAgICAgY29uc3Qgb2Zm
ZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKICAgICBhd2FpdCBjYWxsZXIuc2V0TG9j
YWxEZXNjcmlwdGlvbihvZmZlcik7CiAgICAgYXdhaXQgY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0
aW9uKG9mZmVyKTsKLSAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2Fp
dCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwogICAg
IGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY2FsbGVlLmFkZFRyYWNr
KHRyYWNrLCBzdHJlYW0pOwpAQCAtMTI3LDcgKzEyMyw3IEBACiAgICAgYXdhaXQgY2FsbGVlLnNl
dExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKICAgICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYW5zd2VyKTsKICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnRE
aXJlY3Rpb24sICdyZWN2b25seScpOwotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVy
cm9yJywgKCkgPT4gZHRtZlNlbmRlci5pbnNlcnREVE1GKCcnKSk7CisgICAgYXNzZXJ0X3Rocm93
c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gZHRtZlNlbmRlci5pbnNlcnREVE1GKCcn
KSk7CiAgIH0sICdpbnNlcnREVE1GKCkgc2hvdWxkIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGlm
IHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24gaXMgcmVjdm9ubHknKTsKIAogICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CkBAIC0xNDIsNyArMTM4LDcgQEAKICAgICBjb25zdCBhbnN3ZXIg
PSBhd2FpdCBnZW5lcmF0ZUFuc3dlcihvZmZlcik7CiAgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYW5zd2VyKTsKICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnRE
aXJlY3Rpb24sICdpbmFjdGl2ZScpOwotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVy
cm9yJywgKCkgPT4gZHRtZlNlbmRlci5pbnNlcnREVE1GKCcnKSk7CisgICAgYXNzZXJ0X3Rocm93
c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gZHRtZlNlbmRlci5pbnNlcnREVE1GKCcn
KSk7CiAgIH0sICdpbnNlcnREVE1GKCkgc2hvdWxkIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGlm
IHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24gaXMgaW5hY3RpdmUnKTsKIAogICAvKgpAQCAt
MTUyLDM3ICsxNDgsMjkgQEAKIAogICAgICAgNy4gIFNldCB0aGUgb2JqZWN0J3MgdG9uZUJ1ZmZl
ciBhdHRyaWJ1dGUgdG8gdG9uZXMuCiAgICAqLwotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZUR0bWZTZW5kZXIoKQotICAgIC50aGVuKGR0bWZTZW5kZXIgPT4gewotICAg
ICAgZHRtZlNlbmRlci5pbnNlcnREVE1GKCcxMjMnKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoZHRt
ZlNlbmRlci50b25lQnVmZmVyLCAnMTIzJyk7Ci0KLSAgICAgIGR0bWZTZW5kZXIuaW5zZXJ0RFRN
RignQUJDJyk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGR0bWZTZW5kZXIudG9uZUJ1ZmZlciwgJ0FC
QycpOwotCi0gICAgICBkdG1mU2VuZGVyLmluc2VydERUTUYoJ2JjZCcpOwotICAgICAgYXNzZXJ0
X2VxdWFscyhkdG1mU2VuZGVyLnRvbmVCdWZmZXIsICdCQ0QnKTsKLSAgICB9KTsKKyAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGR0bWZTZW5kZXIgPSBhd2FpdCBjcmVhdGVE
dG1mU2VuZGVyKCk7CisgICAgZHRtZlNlbmRlci5pbnNlcnREVE1GKCcxMjMnKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGR0bWZTZW5kZXIudG9uZUJ1ZmZlciwgJzEyMycpOworCisgICAgZHRtZlNlbmRl
ci5pbnNlcnREVE1GKCdBQkMnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGR0bWZTZW5kZXIudG9uZUJ1
ZmZlciwgJ0FCQycpOworCisgICAgZHRtZlNlbmRlci5pbnNlcnREVE1GKCdiY2QnKTsKKyAgICBh
c3NlcnRfZXF1YWxzKGR0bWZTZW5kZXIudG9uZUJ1ZmZlciwgJ0JDRCcpOwogICB9LCAnaW5zZXJ0
RFRNRigpIHNob3VsZCBzZXQgdG9uZUJ1ZmZlciB0byBwcm92aWRlZCB0b25lcyBub3JtYWxpemVk
LCB3aXRoIG9sZCB0b25lcyBvdmVycmlkZGVuJyk7CiAKLSAgcHJvbWlzZV90ZXN0KHQgPT4gewot
ICAgIGxldCBkdG1mU2VuZGVyOwotICAgIGxldCBzZW5kZXI7Ci0gICAgbGV0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7Ci0gICAgcmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKQot
ICAgICAgLnRoZW4oKFt0cmFjaywgbWVkaWFTdHJlYW1dKSA9PiB7Ci0gICAgICAgIHNlbmRlciA9
IHBjLmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7Ci0gICAgICAgIHJldHVybiBwYy5jcmVh
dGVPZmZlcigpOwotICAgICAgfSkudGhlbihvZmZlciA9PiB7Ci0gICAgICAgIHBjLnNldExvY2Fs
RGVzY3JpcHRpb24ob2ZmZXIpOwotICAgICAgICBkdG1mU2VuZGVyID0gc2VuZGVyLmR0bWY7Ci0g
ICAgICAgIHBjLnJlbW92ZVRyYWNrKHNlbmRlcik7Ci0gICAgICAgIHBjLmNsb3NlKCk7Ci0gICAg
ICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4KKyAgICBjb25zdCBb
dHJhY2ssIG1lZGlhU3RyZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8n
KTsKKyAgICBjb25zdCBzZW5kZXIgPSBwYy5hZGRUcmFjayh0cmFjaywgbWVkaWFTdHJlYW0pOwor
ICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKSk7
CisgICAgY29uc3QgZHRtZlNlbmRlciA9IHNlbmRlci5kdG1mOworICAgIHBjLnJlbW92ZVRyYWNr
KHNlbmRlcik7CisgICAgcGMuY2xvc2UoKTsKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxp
ZFN0YXRlRXJyb3InLCAoKSA9PgogICAgICAgICAgICAgICAgICAgICAgIGR0bWZTZW5kZXIuaW5z
ZXJ0RFRNRignMTIzJykpOwotICAgICAgfSk7CiAgIH0sICdpbnNlcnREVE1GKCkgYWZ0ZXIgcmVt
b3ZlIGFuZCBjbG9zZSBzaG91bGQgcmVqZWN0Jyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRN
RlNlbmRlci1vbnRvbmVjaGFuZ2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVj
aGFuZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDBkMjRjNTU0NDIxMDE5N2Y4ODgyODI1MTI0
ZjlhNjNkYTI3NjI2ODYuLjliOTYxZTQ1MmM3YzUwNDE1YjQxMjQ1MmUxNzIwYjlkZmQ1NzZhN2Ig
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
VE1GU2VuZGVyLW9udG9uZWNoYW5nZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTksNyArOSw4IEBA
IFBBU1MgaW5zZXJ0RFRNRigpIHdpdGggdHJhbnNjZWl2ZXIgc3RvcHBlZCBpbiB0aGUgbWlkZGxl
IHNob3VsZCBzdG9wIGZ1dHVyZSB0b25lCiBQQVNTIENhbGxpbmcgaW5zZXJ0RFRNRigpIGluIHRo
ZSBtaWRkbGUgb2YgdG9uZWNoYW5nZSBldmVudHMgc2hvdWxkIGNhdXNlIGZ1dHVyZSB0b25lY2hh
bmdlcyB0byBiZSB1cGRhdGVkIHRvIG5ldyB0b25lcyAKIFBBU1MgQ2FsbGluZyBpbnNlcnREVE1G
KCkgbXVsdGlwbGUgdGltZXMgaW4gdGhlIG1pZGRsZSBvZiB0b25lY2hhbmdlIGV2ZW50cyBzaG91
bGQgY2F1c2UgZnV0dXJlIHRvbmVjaGFuZ2VzIHRvIGJlIHVwZGF0ZWQgdGhlIGxhc3QgcHJvdmlk
ZWQgdG9uZXMgCiBQQVNTIENhbGxpbmcgaW5zZXJ0RFRNRignJykgaW4gdGhlIG1pZGRsZSBvZiB0
b25lY2hhbmdlIGV2ZW50cyBzaG91bGQgc3RvcCBmdXR1cmUgdG9uZWNoYW5nZSBldmVudHMgZnJv
bSBmaXJpbmcgCi1GQUlMIFNldHRpbmcgdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiB0byBy
ZWN2b25seSBpbiB0aGUgbWlkZGxlIG9mIHRvbmVjaGFuZ2UgZXZlbnRzIHNob3VsZCBzdG9wIGZ1
dHVyZSB0b25lY2hhbmdlIGV2ZW50cyBmcm9tIGZpcmluZyBDYW5ub3QgaW5zZXJ0IERUTUYKK1BB
U1MgU2V0dGluZyB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIHRvIHJlY3Zvbmx5IGluIHRo
ZSBtaWRkbGUgb2YgdG9uZWNoYW5nZSBldmVudHMgc2hvdWxkIHN0b3AgZnV0dXJlIHRvbmVjaGFu
Z2UgZXZlbnRzIGZyb20gZmlyaW5nIAogUEFTUyBUb25lIGNoYW5nZSBldmVudCBjb25zdHJ1Y3Rv
ciB3b3JrcyAKIFBBU1MgVG9uZSBjaGFuZ2UgZXZlbnQgd2l0aCB1bmV4cGVjdGVkIG5hbWUgc2hv
dWxkIG5vdCBjcmFzaCAKK1BBU1MgVG9uZSBjaGFuZ2UgZXZlbnQgaW5pdCBvcHRpb25hbCBwYXJh
bWV0ZXJzIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNoYW5nZS5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRN
RlNlbmRlci1vbnRvbmVjaGFuZ2UuaHR0cHMuaHRtbAppbmRleCA0OWUyM2FiZTJmNGFhNjMxZTM5
ZWI2NmRkMGI2MTlkMjhlN2RlMWE3Li4wOGRkNmFkYTMyNzQ5N2VlY2I3MzI3ODFiZDEyNmQwZGZj
ZjU0NDM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNoYW5nZS5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RU
TUZTZW5kZXItb250b25lY2hhbmdlLmh0dHBzLmh0bWwKQEAgLTEsNiArMSw3IEBACiA8IWRvY3R5
cGUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9dXRmLTg+CiA8dGl0bGU+UlRDRFRNRlNlbmRlci5wcm90
b3R5cGUub250b25lY2hhbmdlPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9
ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+CkBA
IC0yMjAsMTEgKzIyMSwxNiBAQAogICAgIDcuMi4gIGluc2VydERUTUYKICAgICAgIDExLjIuICBJ
ZiB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIGlzIHJlY3Zvbmx5IG9yIGluYWN0aXZlLCBh
Ym9ydCB0aGVzZSBzdGVwcy4KICAgICovCi0gIGFzeW5jX3Rlc3QodCA9PiB7CisgIHByb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgY29uc3QgdHJhbnNj
ZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7IGRpcmVjdGlvbjogJ3NlbmRyZWN2
JyB9KTsKLSAgICBjb25zdCBkdG1mU2VuZGVyID0gdHJhbnNjZWl2ZXIuc2VuZGVyLmR0bWY7Cisg
ICAgY29uc3QgZHRtZlNlbmRlciA9IGF3YWl0IGNyZWF0ZUR0bWZTZW5kZXIocGMpOworICAgIGNv
bnN0IHBjMiA9IHBjLm90aGVyUGM7CisgICAgYXNzZXJ0X3RydWUocGMyIGluc3RhbmNlb2YgUlRD
UGVlckNvbm5lY3Rpb24sCisgICAgICAnRXhwZWN0IHBjMiB0byBiZSBhIFJUQ1BlZXJDb25uZWN0
aW9uJyk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgICAgY29uc3Qg
dHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICBhc3NlcnRfZXF1YWxz
KHRyYW5zY2VpdmVyLnNlbmRlci5kdG1mLCBkdG1mU2VuZGVyKTsKIAogICAgIC8vIFNpbmNlIHNl
dFJlbW90ZURlc2NyaXB0aW9uIGhhcHBlbnMgaW4gcGFyYWxsZWwgd2l0aCB0b25lY2hhbmdlIGV2
ZW50LAogICAgIC8vIFdlIHVzZSBhIGZsYWcgYW5kIGFsbG93IHRvbmVjaGFuZ2UgZXZlbnRzIHRv
IGJlIGZpcmVkIGFzIGxvbmcgYXMKQEAgLTIzNCw0MiArMjQwLDM1IEBACiAgICAgLy8gV2Ugb25s
eSBkbyBiYXNpYyB0b25lIHZlcmlmaWNhdGlvbiBhbmQgbm90IGNoZWNrIHRpbWluZyBoZXJlCiAg
ICAgbGV0IGV4cGVjdGVkVG9uZXMgPSBbJ0EnLCAnQicsICdDJywgJ0QnLCAnJ107CiAKLSAgICBj
b25zdCBvblRvbmVDaGFuZ2UgPSB0LnN0ZXBfZnVuYyhldiA9PiB7Ci0gICAgICBhc3NlcnRfZmFs
c2UocmVtb3RlRGVzY3JpcHRpb25Jc1NldCwKLSAgICAgICAgJ0V4cGVjdCBubyB0b25lY2hhbmdl
IGV2ZW50IHRvIGJlIGZpcmVkIGFmdGVyIGN1cnJlbnREaXJlY3Rpb24gaXMgY2hhbmdlZCB0byBy
ZWN2b25seScpOwotCi0gICAgICBjb25zdCB7IHRvbmUgfSA9IGV2OwotICAgICAgY29uc3QgZXhw
ZWN0ZWRUb25lID0gZXhwZWN0ZWRUb25lcy5zaGlmdCgpOwotICAgICAgYXNzZXJ0X2VxdWFscyh0
b25lLCBleHBlY3RlZFRvbmUsCi0gICAgICAgIGBFeHBlY3QgZmlyZWQgZXZlbnQudG9uZSB0byBi
ZSAke2V4cGVjdGVkVG9uZX1gKTsKLQotICAgICAgLy8gT25seSBjaGFuZ2UgdHJhbnNjZWl2ZXIu
Y3VycmVudERpcmVjdGlvbiBhZnRlciB0aGUgZmlyc3QKLSAgICAgIC8vIHRvbmVjaGFuZ2UgZXZl
bnQsIHRvIG1ha2Ugc3VyZSB0aGF0IHRvbmVjaGFuZ2UgaXMgdHJpZ2dlcmVkCi0gICAgICAvLyB0
aGVuIHN0b3BwZWQKLSAgICAgIGlmKHRvbmUgPT09ICdBJykgewotICAgICAgICB0cmFuc2NlaXZl
ci5kaXJlY3Rpb24gPSAncmVjdm9ubHknOwotCi0gICAgICAgIHBjLmNyZWF0ZU9mZmVyKCkKLSAg
ICAgICAgLnRoZW4ob2ZmZXIgPT4KLSAgICAgICAgICBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9m
ZmVyKQotICAgICAgICAgIC50aGVuKCgpID0+IGdlbmVyYXRlQW5zd2VyKG9mZmVyKSkpCi0gICAg
ICAgIC50aGVuKGFuc3dlciA9PiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpKQotICAg
ICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5j
dXJyZW50RGlyZWN0aW9uLCAncmVjdm9ubHknKTsKLSAgICAgICAgICByZW1vdGVEZXNjcmlwdGlv
bklzU2V0ID0gdHJ1ZTsKLQotICAgICAgICAgIC8vIFBhc3MgdGhlIHRlc3QgaWYgbm8gZnVydGhl
ciB0b25lY2hhbmdlIGV2ZW50IGlzCi0gICAgICAgICAgLy8gZmlyZWQgaW4gdGhlIG5leHQgMzAw
bXMKLSAgICAgICAgICB0LnN0ZXBfdGltZW91dCh0LnN0ZXBfZnVuY19kb25lKCksIDMwMCk7Ci0g
ICAgICAgIH0pCi0gICAgICAgIC5jYXRjaCh0LnN0ZXBfZnVuYyhlcnIgPT4gewotICAgICAgICAg
IGFzc2VydF91bnJlYWNoZWQoYFVuZXhwZWN0ZWQgcHJvbWlzZSByZWplY3Rpb246ICR7ZXJyfWAp
OwotICAgICAgICB9KSk7Ci0gICAgICB9CisgICAgY29uc3QgZmlyc3RUb25lID0gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7CisgICAgICBjb25zdCBvblRvbmVDaGFuZ2UgPSB0LnN0ZXBfZnVuYyhl
diA9PiB7CisgICAgICAgIGFzc2VydF9mYWxzZShyZW1vdGVEZXNjcmlwdGlvbklzU2V0LAorICAg
ICAgICAgICdFeHBlY3Qgbm8gdG9uZWNoYW5nZSBldmVudCB0byBiZSBmaXJlZCBhZnRlciBjdXJy
ZW50RGlyZWN0aW9uIGlzIGNoYW5nZWQgdG8gcmVjdm9ubHknKTsKKworICAgICAgICBjb25zdCB7
IHRvbmUgfSA9IGV2OworICAgICAgICBjb25zdCBleHBlY3RlZFRvbmUgPSBleHBlY3RlZFRvbmVz
LnNoaWZ0KCk7CisgICAgICAgIGFzc2VydF9lcXVhbHModG9uZSwgZXhwZWN0ZWRUb25lLAorICAg
ICAgICAgIGBFeHBlY3QgZmlyZWQgZXZlbnQudG9uZSB0byBiZSAke2V4cGVjdGVkVG9uZX1gKTsK
KworICAgICAgICBpZih0b25lID09PSAnQScpIHsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgIH0KKyAgICAgIH0pOworICAgICAgZHRtZlNlbmRlci5hZGRFdmVudExpc3RlbmVyKCd0b25l
Y2hhbmdlJywgb25Ub25lQ2hhbmdlKTsKICAgICB9KTsKIAotICAgIGR0bWZTZW5kZXIuYWRkRXZl
bnRMaXN0ZW5lcigndG9uZWNoYW5nZScsIG9uVG9uZUNoYW5nZSk7CiAgICAgZHRtZlNlbmRlci5p
bnNlcnREVE1GKCdBQkNEJywgMTAwLCA3MCk7CisgICAgYXdhaXQgZmlyc3RUb25lOworCisgICAg
Ly8gT25seSBjaGFuZ2UgdHJhbnNjZWl2ZXIuZGlyZWN0aW9uIGFmdGVyIHRoZSBmaXJzdAorICAg
IC8vIHRvbmVjaGFuZ2UgZXZlbnQsIHRvIG1ha2Ugc3VyZSB0aGF0IHRvbmVjaGFuZ2UgaXMgdHJp
Z2dlcmVkCisgICAgLy8gdGhlbiBzdG9wcGVkCisgICAgdHJhbnNjZWl2ZXIuZGlyZWN0aW9uID0g
J3JlY3Zvbmx5JzsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjLCBwYzIpOworICAg
IGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgJ2luYWN0aXZlJyk7
CisgICAgcmVtb3RlRGVzY3JpcHRpb25Jc1NldCA9IHRydWU7CisKKyAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDMwMCkpOwogICB9LCBgU2V0
dGluZyB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIHRvIHJlY3Zvbmx5IGluIHRoZSBtaWRk
bGUgb2YgdG9uZWNoYW5nZSBldmVudHMgc2hvdWxkIHN0b3AgZnV0dXJlIHRvbmVjaGFuZ2UgZXZl
bnRzIGZyb20gZmlyaW5nYCk7CiAKICAgLyogU2VjdGlvbiA3LjMgLSBUb25lIGNoYW5nZSBldmVu
dCAqLwpAQCAtMjgzLDQgKzI4MiwxMyBAQAogICAgIGxldCBldiA9IG5ldyBSVENEVE1GVG9uZUNo
YW5nZUV2ZW50KCd3b3JuZ25hbWUnLCB7fSk7CiAgIH0sICdUb25lIGNoYW5nZSBldmVudCB3aXRo
IHVuZXhwZWN0ZWQgbmFtZSBzaG91bGQgbm90IGNyYXNoJyk7CiAKKyAgdGVzdCh0ID0+IHsKKyAg
ICBjb25zdCBldjEgPSBuZXcgUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCgndG9uZWNoYW5nZScsIHt9
KTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2MS50b25lLCAnJyk7CisKKyAgICBhc3NlcnRfZXF1YWxz
KFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQuY29uc3RydWN0b3IubGVuZ3RoLCAxKTsKKyAgICBjb25z
dCBldjIgPSBuZXcgUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCgndG9uZWNoYW5nZScpOworICAgIGFz
c2VydF9lcXVhbHMoZXYyLnRvbmUsICcnKTsKKyAgfSwgJ1RvbmUgY2hhbmdlIGV2ZW50IGluaXQg
b3B0aW9uYWwgcGFyYW1ldGVycycpOworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVs
LWJ1ZmZlcmVkQW1vdW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1idWZmZXJlZEFtb3VudC5odG1sCmluZGV4
IGY0YTcxMDRhNGU1ZjMzMGI3YWIyZGI5NWI3MmJjNjA5ZWViMzNlOWYuLmY2NjM5NDExNjJkOTNl
NTExYjFhNWQ2YmUwMWVkNzlmZTI4YzliYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJ1ZmZlcmVk
QW1vdW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQuaHRtbApAQCAtMSw2NCAr
MSw3OSBAQAogPCFkb2N0eXBlIGh0bWw+CiA8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8dGl0bGU+UlRDRGF0YUNoYW5uZWwucHJvdG90
eXBlLmJ1ZmZlcmVkQW1vdW50PC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxw
ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOworJ3VzZSBzdHJpY3Qn
OwogCi0gIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6Ci0g
IC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2Vi
cnRjLmh0bWwKKy8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyByZXZpc2lvbjoKKy8v
IGh0dHBzOi8vcmF3Z2l0LmNvbS93M2Mvd2VicnRjLXBjLzFjYzViZmMzZmYxODc0MTAzM2Q4MDRj
NGE3MWY3ODkxMjQyZmI1YjMvd2VicnRjLmh0bWwKIAotICAvLyBUaGUgZm9sbG93aW5nIGhlbHBl
ciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoK
LSAgLy8gIGNyZWF0ZURhdGFDaGFubmVsUGFpcgotICAvLyAgYXdhaXRNZXNzYWdlCi0gIC8vICBi
bG9iVG9BcnJheUJ1ZmZlcgotICAvLyAgYXNzZXJ0X2VxdWFsc19hcnJheV9idWZmZXIKKy8vIFRo
ZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5l
Y3Rpb24taGVscGVyLmpzOgorLy8gIGNyZWF0ZURhdGFDaGFubmVsUGFpcgorLy8gIGF3YWl0TWVz
c2FnZQogCi0gIC8qCi0gICAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKLSAgICAgIGludGVyZmFjZSBS
VENEYXRhQ2hhbm5lbCA6IEV2ZW50VGFyZ2V0IHsKLSAgICAgICAgLi4uCi0gICAgICAgIHJlYWRv
bmx5ICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICAgICBidWZmZXJlZEFtb3VudDsKLSAgICAg
ICAgdm9pZCBzZW5kKFVTVlN0cmluZyBkYXRhKTsKLSAgICAgICAgdm9pZCBzZW5kKEJsb2IgZGF0
YSk7Ci0gICAgICAgIHZvaWQgc2VuZChBcnJheUJ1ZmZlciBkYXRhKTsKLSAgICAgICAgdm9pZCBz
ZW5kKEFycmF5QnVmZmVyVmlldyBkYXRhKTsKLSAgICAgIH07Ci0KLSAgICAgIGJ1ZmZlcmVkQW1v
dW50Ci0gICAgICAgIFRoZSBidWZmZXJlZEFtb3VudCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4gdGhl
IG51bWJlciBvZiBieXRlcyBvZiBhcHBsaWNhdGlvbgotICAgICAgICBkYXRhIChVVEYtOCB0ZXh0
IGFuZCBiaW5hcnkgZGF0YSkgdGhhdCBoYXZlIGJlZW4gcXVldWVkIHVzaW5nIHNlbmQoKSBidXQg
dGhhdCwKLSAgICAgICAgYXMgb2YgdGhlIGxhc3QgdGltZSB0aGUgZXZlbnQgbG9vcCBzdGFydGVk
IGV4ZWN1dGluZyBhIHRhc2ssIGhhZCBub3QgeWV0IGJlZW4KLSAgICAgICAgdHJhbnNtaXR0ZWQg
dG8gdGhlIG5ldHdvcmsuIChUaGlzIHRodXMgaW5jbHVkZXMgYW55IHRleHQgc2VudCBkdXJpbmcg
dGhlCi0gICAgICAgIGV4ZWN1dGlvbiBvZiB0aGUgY3VycmVudCB0YXNrLCByZWdhcmRsZXNzIG9m
IHdoZXRoZXIgdGhlIHVzZXIgYWdlbnQgaXMgYWJsZQotICAgICAgICB0byB0cmFuc21pdCB0ZXh0
IGFzeW5jaHJvbm91c2x5IHdpdGggc2NyaXB0IGV4ZWN1dGlvbi4pIFRoaXMgZG9lcyBub3QgaW5j
bHVkZQotICAgICAgICBmcmFtaW5nIG92ZXJoZWFkIGluY3VycmVkIGJ5IHRoZSBwcm90b2NvbCwg
b3IgYnVmZmVyaW5nIGRvbmUgYnkgdGhlIG9wZXJhdGluZwotICAgICAgICBzeXN0ZW0gb3IgbmV0
d29yayBoYXJkd2FyZS4gSWYgdGhlIGNoYW5uZWwgaXMgY2xvc2VkLCB0aGlzIGF0dHJpYnV0ZSdz
IHZhbHVlCi0gICAgICAgIHdpbGwgb25seSBpbmNyZWFzZSB3aXRoIGVhY2ggY2FsbCB0byB0aGUg
c2VuZCgpIG1ldGhvZCAodGhlIGF0dHJpYnV0ZSBkb2VzIG5vdAotICAgICAgICByZXNldCB0byB6
ZXJvIG9uY2UgdGhlIGNoYW5uZWwgY2xvc2VzKS4KLQotCi0gICAgW1dlYk1lc3NhZ2luZ10KLSAg
ICBpbnRlcmZhY2UgTWVzc2FnZUV2ZW50IDogRXZlbnQgewotICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGFueSBkYXRhOworLyoKKyAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKKyAgICBpbnRlcmZhY2Ug
UlRDRGF0YUNoYW5uZWwgOiBFdmVudFRhcmdldCB7CiAgICAgICAuLi4KKyAgICAgIHJlYWRvbmx5
ICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICAgICBidWZmZXJlZEFtb3VudDsKKyAgICAgIHZv
aWQgc2VuZChVU1ZTdHJpbmcgZGF0YSk7CisgICAgICB2b2lkIHNlbmQoQmxvYiBkYXRhKTsKKyAg
ICAgIHZvaWQgc2VuZChBcnJheUJ1ZmZlciBkYXRhKTsKKyAgICAgIHZvaWQgc2VuZChBcnJheUJ1
ZmZlclZpZXcgZGF0YSk7CiAgICAgfTsKLSAgICovCiAKLSAgLy8gU2ltcGxlIEFTQ0lJIGVuY29k
ZWQgc3RyaW5nCi0gIGNvbnN0IGhlbGxvU3RyaW5nID0gJ2hlbGxvJzsKLSAgLy8gQVNDSUkgZW5j
b2RlZCBidWZmZXIgcmVwcmVzZW50YXRpb24gb2YgdGhlIHN0cmluZwotICBjb25zdCBoZWxsb0J1
ZmZlciA9IFVpbnQ4QXJyYXkub2YoMHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2Zik7Ci0gIGNv
bnN0IGhlbGxvQmxvYiA9IG5ldyBCbG9iKFtoZWxsb0J1ZmZlcl0pOworICAgIGJ1ZmZlcmVkQW1v
dW50CisgICAgICBUaGUgYnVmZmVyZWRBbW91bnQgYXR0cmlidXRlIG11c3QgcmV0dXJuIHRoZSBu
dW1iZXIgb2YgYnl0ZXMgb2YgYXBwbGljYXRpb24KKyAgICAgIGRhdGEgKFVURi04IHRleHQgYW5k
IGJpbmFyeSBkYXRhKSB0aGF0IGhhdmUgYmVlbiBxdWV1ZWQgdXNpbmcgc2VuZCgpIGJ1dCB0aGF0
LAorICAgICAgYXMgb2YgdGhlIGxhc3QgdGltZSB0aGUgZXZlbnQgbG9vcCBzdGFydGVkIGV4ZWN1
dGluZyBhIHRhc2ssIGhhZCBub3QgeWV0IGJlZW4KKyAgICAgIHRyYW5zbWl0dGVkIHRvIHRoZSBu
ZXR3b3JrLiAoVGhpcyB0aHVzIGluY2x1ZGVzIGFueSB0ZXh0IHNlbnQgZHVyaW5nIHRoZQorICAg
ICAgZXhlY3V0aW9uIG9mIHRoZSBjdXJyZW50IHRhc2ssIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0
aGUgdXNlciBhZ2VudCBpcyBhYmxlCisgICAgICB0byB0cmFuc21pdCB0ZXh0IGFzeW5jaHJvbm91
c2x5IHdpdGggc2NyaXB0IGV4ZWN1dGlvbi4pIFRoaXMgZG9lcyBub3QgaW5jbHVkZQorICAgICAg
ZnJhbWluZyBvdmVyaGVhZCBpbmN1cnJlZCBieSB0aGUgcHJvdG9jb2wsIG9yIGJ1ZmZlcmluZyBk
b25lIGJ5IHRoZSBvcGVyYXRpbmcKKyAgICAgIHN5c3RlbSBvciBuZXR3b3JrIGhhcmR3YXJlLiBU
aGUgdmFsdWUgb2YgdGhlIFtbQnVmZmVyZWRBbW91bnRdXSBzbG90IHdpbGwgb25seQorICAgICAg
aW5jcmVhc2Ugd2l0aCBlYWNoIGNhbGwgdG8gdGhlIHNlbmQoKSBtZXRob2QgYXMgbG9uZyBhcyB0
aGUgW1tSZWFkeVN0YXRlXV0gc2xvdAorICAgICAgaXMgb3BlbjsgaG93ZXZlciwgdGhlIHNsb3Qg
ZG9lcyBub3QgcmVzZXQgdG8gemVybyBvbmNlIHRoZSBjaGFubmVsIGNsb3Nlcy4gV2hlbgorICAg
ICAgdGhlIHVuZGVybHlpbmcgZGF0YSB0cmFuc3BvcnQgc2VuZHMgZGF0YSBmcm9tIGl0cyBxdWV1
ZSwgdGhlIHVzZXIgYWdlbnQgTVVTVAorICAgICAgcXVldWUgYSB0YXNrIHRoYXQgcmVkdWNlcyBb
W0J1ZmZlcmVkQW1vdW50XV0gd2l0aCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2FzCisgICAg
ICBzZW50LgorCisKKyAgW1dlYk1lc3NhZ2luZ10KKyAgaW50ZXJmYWNlIE1lc3NhZ2VFdmVudCA6
IEV2ZW50IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYW55IGRhdGE7CisgICAgLi4uCisgIH07
CisgKi8KKworLy8gU2ltcGxlIEFTQ0lJIGVuY29kZWQgc3RyaW5nCitjb25zdCBoZWxsb1N0cmlu
ZyA9ICdoZWxsbyc7CisvLyBBU0NJSSBlbmNvZGVkIGJ1ZmZlciByZXByZXNlbnRhdGlvbiBvZiB0
aGUgc3RyaW5nCitjb25zdCBoZWxsb0J1ZmZlciA9IFVpbnQ4QXJyYXkub2YoMHg2OCwgMHg2NSwg
MHg2YywgMHg2YywgMHg2Zik7Citjb25zdCBoZWxsb0Jsb2IgPSBuZXcgQmxvYihbaGVsbG9CdWZm
ZXJdKTsKKworLy8gVW5pY29kZSBzdHJpbmcgd2l0aCBtdWx0aXBsZSBjb2RlIHVuaXRzCitjb25z
dCB1bmljb2RlU3RyaW5nID0gJ+S4lueVjOS9oOWlvSc7CisvLyBVVEYtOCBlbmNvZGVkIGJ1ZmZl
ciByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RyaW5nCitjb25zdCB1bmljb2RlQnVmZmVyID0gVWlu
dDhBcnJheS5vZigKKyAgMHhlNCwgMHhiOCwgMHg5NiwgMHhlNywgMHg5NSwgMHg4YywKKyAgMHhl
NCwgMHhiZCwgMHhhMCwgMHhlNSwgMHhhNSwgMHhiZCk7CisKK2ZvciAoY29uc3Qgb3B0aW9ucyBv
ZiBbe30sIHtuZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CisgIGNvbnN0IG1vZGUgPSBgJHtv
cHRpb25zLm5lZ290aWF0ZWQ/ICJuZWdvdGlhdGVkICIgOiAiIn1kYXRhY2hhbm5lbGA7CisKKyAg
LyoKKyAgICBFbnN1cmUgLmJ1ZmZlcmVkQW1vdW50IGlzIDAgaW5pdGlhbGx5IGZvciBib3RoIHNp
ZGVzLgorICAgKi8KKyAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgY29uc3QgW2Rj
MSwgZGMyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKTsKIAotICAv
LyBVbmljb2RlIHN0cmluZyB3aXRoIG11bHRpcGxlIGNvZGUgdW5pdHMKLSAgY29uc3QgdW5pY29k
ZVN0cmluZyA9ICfkuJbnlYzkvaDlpb0nOwotICAvLyBVVEYtOCBlbmNvZGVkIGJ1ZmZlciByZXBy
ZXNlbnRhdGlvbiBvZiB0aGUgc3RyaW5nCi0gIGNvbnN0IHVuaWNvZGVCdWZmZXIgPSBVaW50OEFy
cmF5Lm9mKAotICAgIDB4ZTQsIDB4YjgsIDB4OTYsIDB4ZTcsIDB4OTUsIDB4OGMsCi0gICAgMHhl
NCwgMHhiZCwgMHhhMCwgMHhlNSwgMHhhNSwgMHhiZCk7CisgICAgYXNzZXJ0X2VxdWFscyhkYzEu
YnVmZmVyZWRBbW91bnQsIDAsICdFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gYmUgMCcpOworICAg
IGFzc2VydF9lcXVhbHMoZGMyLmJ1ZmZlcmVkQW1vdW50LCAwLCAnRXhwZWN0IGJ1ZmZlcmVkQW1v
dW50IHRvIGJlIDAnKTsKKyAgfSwgYCR7bW9kZX0gYnVmZmVyZWRBbW91bnQgaW5pdGlhbCB2YWx1
ZSBzaG91bGQgYmUgMCBmb3IgYm90aCBwZWVyc2ApOwogCiAgIC8qCiAgICAgNi4yLiAgc2VuZCgp
CkBAIC02OCwyMCArODMsMTggQEAKICAgICAgICAgICAgIExldCBkYXRhIGJlIHRoZSBvYmplY3Qg
YW5kIGluY3JlYXNlIHRoZSBidWZmZXJlZEFtb3VudCBhdHRyaWJ1dGUKICAgICAgICAgICAgIGJ5
IHRoZSBudW1iZXIgb2YgYnl0ZXMgbmVlZGVkIHRvIGV4cHJlc3MgZGF0YSBhcyBVVEYtOC4KICAg
ICovCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gY3JlYXRlRGF0YUNoYW5uZWxQ
YWlyKCkKLSAgICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsKLSAgICAgIGNoYW5u
ZWwxLnNlbmQodW5pY29kZVN0cmluZyk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1
ZmZlcmVkQW1vdW50LCB1bmljb2RlQnVmZmVyLmJ5dGVMZW5ndGgsCi0gICAgICAgICdFeHBlY3Qg
YnVmZmVyZWRBbW91bnQgdG8gYmUgdGhlIGJ5dGUgbGVuZ3RoIG9mIHRoZSB1bmljb2RlIHN0cmlu
ZycpOwotCi0gICAgICByZXR1cm4gYXdhaXRNZXNzYWdlKGNoYW5uZWwyKQotICAgICAgLnRoZW4o
bWVzc2FnZSA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoY2hhbm5lbDEuYnVmZmVyZWRBbW91
bnQsIDAsCi0gICAgICAgICAgJ0V4cGVjdCBzZW5kZXIgYnVmZmVyZWRBbW91bnQgdG8gYmUgcmVk
dWNlZCBhZnRlciBtZXNzYWdlIGlzIHNlbnQnKTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9LCAn
YnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIGVuY29kZWQg
dW5pY29kZSBzdHJpbmcgc2VudCcpOworICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAg
ICBjb25zdCBbZGMxLCBkYzJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlv
bnMpOworCisgICAgZGMxLnNlbmQodW5pY29kZVN0cmluZyk7CisgICAgYXNzZXJ0X2VxdWFscyhk
YzEuYnVmZmVyZWRBbW91bnQsIHVuaWNvZGVCdWZmZXIuYnl0ZUxlbmd0aCwKKyAgICAgICdFeHBl
Y3QgYnVmZmVyZWRBbW91bnQgdG8gYmUgdGhlIGJ5dGUgbGVuZ3RoIG9mIHRoZSB1bmljb2RlIHN0
cmluZycpOworCisgICAgYXdhaXQgYXdhaXRNZXNzYWdlKGRjMik7CisgICAgYXNzZXJ0X2VxdWFs
cyhkYzEuYnVmZmVyZWRBbW91bnQsIDAsCisgICAgICAnRXhwZWN0IHNlbmRlciBidWZmZXJlZEFt
b3VudCB0byBiZSByZWR1Y2VkIGFmdGVyIG1lc3NhZ2UgaXMgc2VudCcpOworICB9LCBgJHttb2Rl
fSBidWZmZXJlZEFtb3VudCBzaG91bGQgaW5jcmVhc2UgdG8gYnl0ZSBsZW5ndGggb2YgZW5jb2Rl
ZGAgKworICAgICBgdW5pY29kZSBzdHJpbmcgc2VudGApOwogCiAgIC8qCiAgICAgNi4yLiBzZW5k
KCkKQEAgLTkxLDIwICsxMDQsMTcgQEAKICAgICAgICAgICAgIG9iamVjdCBhbmQgaW5jcmVhc2Ug
dGhlIGJ1ZmZlcmVkQW1vdW50IGF0dHJpYnV0ZSBieSB0aGUgbGVuZ3RoIG9mIHRoZQogICAgICAg
ICAgICAgQXJyYXlCdWZmZXIgaW4gYnl0ZXMuCiAgICAqLwotICBwcm9taXNlX3Rlc3QodCA9PiB7
Ci0gICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcigpCi0gICAgLnRoZW4oKFtjaGFubmVs
MSwgY2hhbm5lbDJdKSA9PiB7Ci0gICAgICBjaGFubmVsMS5zZW5kKGhlbGxvQnVmZmVyLmJ1ZmZl
cik7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50LCBoZWxsb0J1
ZmZlci5ieXRlTGVuZ3RoLAotICAgICAgICAnRXhwZWN0IGJ1ZmZlcmVkQW1vdW50IHRvIGluY3Jl
YXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIHNlbnQgYnVmZmVyJyk7Ci0KLSAgICAgIHJldHVybiBhd2Fp
dE1lc3NhZ2UoY2hhbm5lbDIpCi0gICAgICAudGhlbihtZXNzYWdlQnVmZmVyID0+IHsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjaGFubmVsMS5idWZmZXJlZEFtb3VudCwgMCwKLSAgICAgICAgICAn
RXhwZWN0IHNlbmRlciBidWZmZXJlZEFtb3VudCB0byBiZSByZWR1Y2VkIGFmdGVyIG1lc3NhZ2Ug
aXMgc2VudCcpOwotICAgICAgfSk7Ci0gICAgfSk7Ci0gIH0sICdidWZmZXJlZEFtb3VudCBzaG91
bGQgaW5jcmVhc2UgdG8gYnl0ZSBsZW5ndGggb2YgYnVmZmVyIHNlbnQnKTsKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgY29uc3QgW2RjMSwgZGMyXSA9IGF3YWl0IGNyZWF0ZURh
dGFDaGFubmVsUGFpcih0LCBvcHRpb25zKTsKKworICAgIGRjMS5zZW5kKGhlbGxvQnVmZmVyLmJ1
ZmZlcik7CisgICAgYXNzZXJ0X2VxdWFscyhkYzEuYnVmZmVyZWRBbW91bnQsIGhlbGxvQnVmZmVy
LmJ5dGVMZW5ndGgsCisgICAgICAnRXhwZWN0IGJ1ZmZlcmVkQW1vdW50IHRvIGluY3JlYXNlIHRv
IGJ5dGUgbGVuZ3RoIG9mIHNlbnQgYnVmZmVyJyk7CisKKyAgICBhd2FpdCBhd2FpdE1lc3NhZ2Uo
ZGMyKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMS5idWZmZXJlZEFtb3VudCwgMCwKKyAgICAgICdF
eHBlY3Qgc2VuZGVyIGJ1ZmZlcmVkQW1vdW50IHRvIGJlIHJlZHVjZWQgYWZ0ZXIgbWVzc2FnZSBp
cyBzZW50Jyk7CisgIH0sIGAke21vZGV9IGJ1ZmZlcmVkQW1vdW50IHNob3VsZCBpbmNyZWFzZSB0
byBieXRlIGxlbmd0aCBvZiBidWZmZXIgc2VudGApOwogCiAgIC8qCiAgICAgNi4yLiBzZW5kKCkK
QEAgLTExMyw4NyArMTIzLDEwMiBAQAogICAgICAgICAgICAgTGV0IGRhdGEgYmUgdGhlIHJhdyBk
YXRhIHJlcHJlc2VudGVkIGJ5IHRoZSBCbG9iIG9iamVjdCBhbmQgaW5jcmVhc2UKICAgICAgICAg
ICAgIHRoZSBidWZmZXJlZEFtb3VudCBhdHRyaWJ1dGUgYnkgdGhlIHNpemUgb2YgZGF0YSwgaW4g
Ynl0ZXMuCiAgICAqLwotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIGNyZWF0ZURh
dGFDaGFubmVsUGFpcigpCi0gICAgLnRoZW4oKFtjaGFubmVsMSwgY2hhbm5lbDJdKSA9PiB7Ci0g
ICAgICBjaGFubmVsMS5zZW5kKGhlbGxvQmxvYik7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGNoYW5u
ZWwxLmJ1ZmZlcmVkQW1vdW50LCBoZWxsb0Jsb2Iuc2l6ZSwKLSAgICAgICAgJ0V4cGVjdCBidWZm
ZXJlZEFtb3VudCB0byBpbmNyZWFzZSB0byBzaXplIG9mIHNlbnQgYmxvYicpOwotCi0gICAgICBy
ZXR1cm4gYXdhaXRNZXNzYWdlKGNoYW5uZWwyKQotICAgICAgLnRoZW4obWVzc2FnZUJ1ZmZlciA9
PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoY2hhbm5lbDEuYnVmZmVyZWRBbW91bnQsIDAsCi0g
ICAgICAgICAgJ0V4cGVjdCBzZW5kZXIgYnVmZmVyZWRBbW91bnQgdG8gYmUgcmVkdWNlZCBhZnRl
ciBtZXNzYWdlIGlzIHNlbnQnKTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9LCAnYnVmZmVyZWRB
bW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIHNpemUgb2YgYmxvYiBzZW50Jyk7CisgIHByb21pc2Vf
dGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IFtkYzEsIGRjMl0gPSBhd2FpdCBjcmVhdGVE
YXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucyk7CisKKyAgICBkYzEuc2VuZChoZWxsb0Jsb2IpOwor
ICAgIGFzc2VydF9lcXVhbHMoZGMxLmJ1ZmZlcmVkQW1vdW50LCBoZWxsb0Jsb2Iuc2l6ZSwKKyAg
ICAgICdFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gaW5jcmVhc2UgdG8gc2l6ZSBvZiBzZW50IGJs
b2InKTsKKworICAgIGF3YWl0IGF3YWl0TWVzc2FnZShkYzIpOworICAgIGFzc2VydF9lcXVhbHMo
ZGMxLmJ1ZmZlcmVkQW1vdW50LCAwLAorICAgICAgJ0V4cGVjdCBzZW5kZXIgYnVmZmVyZWRBbW91
bnQgdG8gYmUgcmVkdWNlZCBhZnRlciBtZXNzYWdlIGlzIHNlbnQnKTsKKyAgfSwgYCR7bW9kZX0g
YnVmZmVyZWRBbW91bnQgc2hvdWxkIGluY3JlYXNlIHRvIHNpemUgb2YgYmxvYiBzZW50YCk7CiAK
ICAgLy8gVGVzdCBzZW5kaW5nIDMgbWVzc2FnZXM6IGhlbGxvQnVmZmVyLCB1bmljb2RlU3RyaW5n
LCBoZWxsb0Jsb2IKLSAgYXN5bmNfdGVzdCh0ID0+IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jICh0
KSA9PiB7CisgICAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKICAgICBsZXQgbWVz
c2FnZUNvdW50ID0gMDsKIAotICAgIGNyZWF0ZURhdGFDaGFubmVsUGFpcigpCi0gICAgLnRoZW4o
KFtjaGFubmVsMSwgY2hhbm5lbDJdKSA9PiB7Ci0gICAgICBjb25zdCBvbk1lc3NhZ2UgPSB0LnN0
ZXBfZnVuYyhldmVudCA9PiB7Ci0gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gZXZlbnQ7Ci0gICAg
ICAgIG1lc3NhZ2VDb3VudCsrOworICAgIGNvbnN0IFtkYzEsIGRjMl0gPSBhd2FpdCBjcmVhdGVE
YXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucyk7CisgICAgZGMyLm9ubWVzc2FnZSA9IHQuc3RlcF9m
dW5jKCgpID0+IHsKKyAgICAgIGlmICgrK21lc3NhZ2VDb3VudCA9PT0gMykgeworICAgICAgICBh
c3NlcnRfZXF1YWxzKGRjMS5idWZmZXJlZEFtb3VudCwgMCwKKyAgICAgICAgICAnRXhwZWN0IHNl
bmRlciBidWZmZXJlZEFtb3VudCB0byBiZSByZWR1Y2VkIGFmdGVyIG1lc3NhZ2UgaXMgc2VudCcp
OworICAgICAgICByZXNvbHZlci5yZXNvbHZlKCk7CisgICAgICB9CisgICAgfSk7CisKKyAgICBk
YzEuc2VuZChoZWxsb0J1ZmZlcik7CisgICAgYXNzZXJ0X2VxdWFscyhkYzEuYnVmZmVyZWRBbW91
bnQsIGhlbGxvU3RyaW5nLmxlbmd0aCwKKyAgICAgICdFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8g
YmUgdGhlIHRvdGFsIGxlbmd0aCBvZiBhbGwgbWVzc2FnZXMgcXVldWVkIHRvIHNlbmQnKTsKKwor
ICAgIGRjMS5zZW5kKHVuaWNvZGVTdHJpbmcpOworICAgIGFzc2VydF9lcXVhbHMoZGMxLmJ1ZmZl
cmVkQW1vdW50LAorICAgICAgaGVsbG9TdHJpbmcubGVuZ3RoICsgdW5pY29kZUJ1ZmZlci5ieXRl
TGVuZ3RoLAorICAgICAgJ0V4cGVjdCBidWZmZXJlZEFtb3VudCB0byBiZSB0aGUgdG90YWwgbGVu
Z3RoIG9mIGFsbCBtZXNzYWdlcyBxdWV1ZWQgdG8gc2VuZCcpOwogCi0gICAgICAgIGlmKG1lc3Nh
Z2VDb3VudCA9PT0gMykgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoY2hhbm5lbDEuYnVmZmVy
ZWRBbW91bnQsIDAsCi0gICAgICAgICAgICAnRXhwZWN0IHNlbmRlciBidWZmZXJlZEFtb3VudCB0
byBiZSByZWR1Y2VkIGFmdGVyIG1lc3NhZ2UgaXMgc2VudCcpOworICAgIGRjMS5zZW5kKGhlbGxv
QmxvYik7CisgICAgYXNzZXJ0X2VxdWFscyhkYzEuYnVmZmVyZWRBbW91bnQsCisgICAgICBoZWxs
b1N0cmluZy5sZW5ndGgqMiArIHVuaWNvZGVCdWZmZXIuYnl0ZUxlbmd0aCwKKyAgICAgICdFeHBl
Y3QgYnVmZmVyZWRBbW91bnQgdG8gYmUgdGhlIHRvdGFsIGxlbmd0aCBvZiBhbGwgbWVzc2FnZXMg
cXVldWVkIHRvIHNlbmQnKTsKIAotICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICB9Ci0gICAg
ICB9KTsKKyAgICBhd2FpdCByZXNvbHZlcjsKKyAgfSwgYCR7bW9kZX0gYnVmZmVyZWRBbW91bnQg
c2hvdWxkIGluY3JlYXNlIGJ5IGJ5dGUgbGVuZ3RoIGZvciBlYWNoIG1lc3NhZ2Ugc2VudGApOwog
Ci0gICAgICBjaGFubmVsMi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNzYWdlKTsK
KyAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgY29uc3QgW2RjMV0gPSBhd2FpdCBj
cmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucyk7CiAKLSAgICAgIGNoYW5uZWwxLnNlbmQo
aGVsbG9CdWZmZXIpOwotICAgICAgYXNzZXJ0X2VxdWFscyhjaGFubmVsMS5idWZmZXJlZEFtb3Vu
dCwgaGVsbG9TdHJpbmcubGVuZ3RoLAotICAgICAgICAnRXhwZWN0IGJ1ZmZlcmVkQW1vdW50IHRv
IGJlIHRoZSB0b3RhbCBsZW5ndGggb2YgYWxsIG1lc3NhZ2VzIHF1ZXVlZCB0byBzZW5kJyk7Cisg
ICAgZGMxLnNlbmQoaGVsbG9CdWZmZXIuYnVmZmVyKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMS5i
dWZmZXJlZEFtb3VudCwgaGVsbG9CdWZmZXIuYnl0ZUxlbmd0aCwKKyAgICAgICdFeHBlY3QgYnVm
ZmVyZWRBbW91bnQgdG8gaW5jcmVhc2UgdG8gYnl0ZSBsZW5ndGggb2Ygc2VudCBidWZmZXInKTsK
IAotICAgICAgY2hhbm5lbDEuc2VuZCh1bmljb2RlU3RyaW5nKTsKLSAgICAgIGFzc2VydF9lcXVh
bHMoY2hhbm5lbDEuYnVmZmVyZWRBbW91bnQsCi0gICAgICAgIGhlbGxvU3RyaW5nLmxlbmd0aCAr
IHVuaWNvZGVCdWZmZXIuYnl0ZUxlbmd0aCwKLSAgICAgICAgJ0V4cGVjdCBidWZmZXJlZEFtb3Vu
dCB0byBiZSB0aGUgdG90YWwgbGVuZ3RoIG9mIGFsbCBtZXNzYWdlcyBxdWV1ZWQgdG8gc2VuZCcp
OworICAgIGRjMS5jbG9zZSgpOworICAgIGFzc2VydF9lcXVhbHMoZGMxLmJ1ZmZlcmVkQW1vdW50
LCBoZWxsb0J1ZmZlci5ieXRlTGVuZ3RoLAorICAgICAgJ0V4cGVjdCBidWZmZXJlZEFtb3VudCB0
byBub3QgZGVjcmVhc2UgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2luZyB0aGUgY2hhbm5lbCcpOwor
ICB9LCBgJHttb2RlfSBidWZmZXJlZEFtb3VudCBzaG91bGQgbm90IGRlY3JlYXNlIGltbWVkaWF0
ZWx5IGFmdGVyIGluaXRpYXRpbmcgY2xvc3VyZWApOwogCi0gICAgICBjaGFubmVsMS5zZW5kKGhl
bGxvQmxvYik7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50LAot
ICAgICAgICBoZWxsb1N0cmluZy5sZW5ndGgqMiArIHVuaWNvZGVCdWZmZXIuYnl0ZUxlbmd0aCwK
LSAgICAgICAgJ0V4cGVjdCBidWZmZXJlZEFtb3VudCB0byBiZSB0aGUgdG90YWwgbGVuZ3RoIG9m
IGFsbCBtZXNzYWdlcyBxdWV1ZWQgdG8gc2VuZCcpOworICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQp
ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBbZGMxXSA9IGF3YWl0IGNy
ZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zLCBwYzEpOwogCi0gICAgfSkuY2F0Y2godC5z
dGVwX2Z1bmMoZXJyID0+Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKGBVbmV4cGVjdGVkIHByb21p
c2UgcmVqZWN0aW9uOiAke2Vycn1gKSkpOwotICB9LCAnYnVmZmVyZWRBbW91bnQgc2hvdWxkIGlu
Y3JlYXNlIGJ5IGJ5dGUgbGVuZ3RoIGZvciBlYWNoIG1lc3NhZ2Ugc2VudCcpOworICAgIGRjMS5z
ZW5kKGhlbGxvQnVmZmVyLmJ1ZmZlcik7CisgICAgYXNzZXJ0X2VxdWFscyhkYzEuYnVmZmVyZWRB
bW91bnQsIGhlbGxvQnVmZmVyLmJ5dGVMZW5ndGgsCisgICAgICAnRXhwZWN0IGJ1ZmZlcmVkQW1v
dW50IHRvIGluY3JlYXNlIHRvIGJ5dGUgbGVuZ3RoIG9mIHNlbnQgYnVmZmVyJyk7CisKKyAgICBw
YzEuY2xvc2UoKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMS5idWZmZXJlZEFtb3VudCwgaGVsbG9C
dWZmZXIuYnl0ZUxlbmd0aCwKKyAgICAgICdFeHBlY3QgYnVmZmVyZWRBbW91bnQgdG8gbm90IGRl
Y3JlYXNlIGFmdGVyIGNsb3NpbmcgdGhlIHBlZXIgY29ubmVjdGlvbicpOworICB9LCBgJHttb2Rl
fSBidWZmZXJlZEFtb3VudCBzaG91bGQgbm90IGRlY3JlYXNlIGFmdGVyIGNsb3NpbmcgdGhlIHBl
ZXIgY29ubmVjdGlvbmApOwogCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBjb25z
dCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcigpOwor
ICAgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQ
YWlyKHQsIG9wdGlvbnMpOwogICAgIGNoYW5uZWwxLmFkZEV2ZW50TGlzdGVuZXIoJ2J1ZmZlcmVk
YW1vdW50bG93JywgdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7CiAgICAgICBhc3NlcnRfdHJ1ZShj
aGFubmVsMS5idWZmZXJlZEFtb3VudCA8PSBjaGFubmVsMS5idWZmZXJlZEFtb3VudExvd1RocmVz
aG9sZCk7CiAgICAgfSkpOwogICAgIGNvbnN0IGV2ZW50V2F0Y2hlciA9IG5ldyBFdmVudFdhdGNo
ZXIodCwgY2hhbm5lbDEsIFsnYnVmZmVyZWRhbW91bnRsb3cnXSk7CiAgICAgY2hhbm5lbDEuc2Vu
ZChoZWxsb1N0cmluZyk7CiAgICAgYXdhaXQgZXZlbnRXYXRjaGVyLndhaXRfZm9yKFsnYnVmZmVy
ZWRhbW91bnRsb3cnXSk7Ci0gIH0sICdEYXRhIGNoYW5uZWwgYnVmZmVyZWRhbW91bnRsb3cgZXZl
bnQgZmlyZXMgYWZ0ZXIgc2VuZCgpIGlzIGNvbXBsZXRlJyk7CisgIH0sIGAke21vZGV9IGJ1ZmZl
cmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIHNlbmQoKSBpcyBjb21wbGV0ZWApOwogCiAg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwy
XSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcigpOworICAgIGNvbnN0IFtjaGFubmVsMSwg
Y2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMpOwogICAg
IGNoYW5uZWwxLnNlbmQoaGVsbG9TdHJpbmcpOwogICAgIGFzc2VydF9lcXVhbHMoY2hhbm5lbDEu
YnVmZmVyZWRBbW91bnQsIGhlbGxvU3RyaW5nLmxlbmd0aCk7CiAgICAgYXdhaXQgYXdhaXRNZXNz
YWdlKGNoYW5uZWwyKTsKICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50
LCAwKTsKLSAgfSwgJ0RhdGEgY2hhbm5lbCBidWZmZXJlZGFtb3VudCBpcyBkYXRhLmxlbmd0aCBv
biBzZW5kKGRhdGEpJyk7CisgIH0sIGAke21vZGV9IGJ1ZmZlcmVkYW1vdW50IGlzIGRhdGEubGVu
Z3RoIG9uIHNlbmQoZGF0YSlgKTsKIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAg
Y29uc3QgW2NoYW5uZWwxLCBjaGFubmVsMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIo
KTsKKyAgICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFu
bmVsUGFpcih0LCBvcHRpb25zKTsKICAgICBjaGFubmVsMS5zZW5kKGhlbGxvU3RyaW5nKTsKICAg
ICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50LCBoZWxsb1N0cmluZy5sZW5n
dGgpOwogICAgIGFzc2VydF9lcXVhbHMoY2hhbm5lbDEuYnVmZmVyZWRBbW91bnQsIGhlbGxvU3Ry
aW5nLmxlbmd0aCk7Ci0gIH0sICdEYXRhIGNoYW5uZWwgYnVmZmVyZWRhbW91bnQgcmV0dXJucyB0
aGUgc2FtZSBhbW91bnQgaWYgbm8gbW9yZSBkYXRhIGlzJyArCi0gICAgICcgc2VudCBvbiB0aGUg
Y2hhbm5lbCcpOworICB9LCBgJHttb2RlfSBidWZmZXJlZGFtb3VudCByZXR1cm5zIHRoZSBzYW1l
IGFtb3VudCBpZiBubyBtb3JlIGRhdGEgaXNgKTsKIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7Ci0gICAgY29uc3QgW2NoYW5uZWwxLCBjaGFubmVsMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hh
bm5lbFBhaXIoKTsKKyAgICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9IGF3YWl0IGNyZWF0
ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKTsKICAgICBsZXQgZXZlbnRGaXJlQ291bnQgPSAw
OwogICAgIGNoYW5uZWwxLmFkZEV2ZW50TGlzdGVuZXIoJ2J1ZmZlcmVkYW1vdW50bG93JywgdC5z
dGVwX2Z1bmMoKCkgPT4gewogICAgICAgYXNzZXJ0X3RydWUoY2hhbm5lbDEuYnVmZmVyZWRBbW91
bnQgPD0gY2hhbm5lbDEuYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQpOwpAQCAtMjA1LDExICsy
MzAsMTEgQEAKICAgICBjaGFubmVsMS5zZW5kKGhlbGxvU3RyaW5nKTsKICAgICBhc3NlcnRfZXF1
YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1vdW50LCAyICogaGVsbG9TdHJpbmcubGVuZ3RoKTsKICAg
ICBhd2FpdCBldmVudFdhdGNoZXIud2FpdF9mb3IoWydidWZmZXJlZGFtb3VudGxvdyddKTsKLSAg
fSwgJ0RhdGEgY2hhbm5lbCBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBvbmx5IG9uY2Ug
YWZ0ZXIgbXVsdGlwbGUnICsKLSAgICAnIGNvbnNlY3V0aXZlIHNlbmQoKSBjYWxscycpOworICB9
LCBgJHttb2RlfSBidWZmZXJlZGFtb3VudGxvdyBldmVudCBmaXJlcyBvbmx5IG9uY2UgYWZ0ZXIg
bXVsdGlwbGVgICsKKyAgICAgYCBjb25zZWN1dGl2ZSBzZW5kKCkgY2FsbHNgKTsKIAogICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgY29uc3QgW2NoYW5uZWwxLCBjaGFubmVsMl0gPSBh
d2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIoKTsKKyAgICBjb25zdCBbY2hhbm5lbDEsIGNoYW5u
ZWwyXSA9IGF3YWl0IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKTsKICAgICBjb25z
dCBldmVudFdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGNoYW5uZWwxLCBbJ2J1ZmZlcmVk
YW1vdW50bG93J10pOwogICAgIGNoYW5uZWwxLnNlbmQoaGVsbG9TdHJpbmcpOwogICAgIGFzc2Vy
dF9lcXVhbHMoY2hhbm5lbDEuYnVmZmVyZWRBbW91bnQsIGhlbGxvU3RyaW5nLmxlbmd0aCk7CkBA
IC0yMTksNiArMjQ0LDYgQEAKICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLmJ1ZmZlcmVkQW1v
dW50LCBoZWxsb1N0cmluZy5sZW5ndGgpOwogICAgIGF3YWl0IGV2ZW50V2F0Y2hlci53YWl0X2Zv
cihbJ2J1ZmZlcmVkYW1vdW50bG93J10pOwogICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgYXdhaXRN
ZXNzYWdlKGNoYW5uZWwyKSwgaGVsbG9TdHJpbmcpOwotICB9LCAnRGF0YSBjaGFubmVsIGJ1ZmZl
cmVkYW1vdW50bG93IGV2ZW50IGZpcmVzIGFmdGVyIGVhY2ggc2VudCBtZXNzYWdlJyk7Ci0KKyAg
fSwgYCR7bW9kZX0gYnVmZmVyZWRhbW91bnRsb3cgZXZlbnQgZmlyZXMgYWZ0ZXIgZWFjaCBzZW50
IG1lc3NhZ2VgKTsKK30KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjMzk0
OWM5NWRiNDBhZGQ4MDE5YTM0MGMwM2JkNmQ5ZWEwZmE4ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbC1jbG9zZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitIYXJuZXNzIEVy
cm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworRkFJTCBDbG9zZSBkYXRhY2hhbm5lbCBj
YXVzZXMgb25jbG9zaW5nIGFuZCBvbmNsb3NlIHRvIGJlIGNhbGxlZCBhc3NlcnRfdHJ1ZTogQ2xv
c2luZyBldmVudCB3YXMgc2VlbiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBDbG9zZSBk
YXRhY2hhbm5lbCBjYXVzZXMgY2xvc2luZyBhbmQgY2xvc2UgZXZlbnQgdG8gYmUgY2FsbGVkIGFz
c2VydF90cnVlOiBDbG9zaW5nIGV2ZW50IHdhcyBzZWVuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitGQUlMIENsb3NlIHBlZXJjb25uZWN0aW9uIGNhdXNlcyBjbG9zZSBldmVudCBhbmQgZXJyb3Ig
dG8gYmUgY2FsbGVkIG9uIGRhdGFjaGFubmVsIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMg
ZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbImVycm9yIiwgImNsb3NlIl0gbGVuZ3RoIDIsIGdvdCBb
ImNsb3NlIl0gbGVuZ3RoIDEKK1RJTUVPVVQgQ2xvc2UgcGVlcmNvbm5lY3Rpb24gYWZ0ZXIgZGF0
YWNoYW5uZWwgY2xvc2UgY2F1c2VzIG5vIGV2ZW50cyBUZXN0IHRpbWVkIG91dAorTk9UUlVOIENs
b3NlIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgY2F1c2VzIG9uY2xvc2luZyBhbmQgb25jbG9zZSB0
byBiZSBjYWxsZWQgCitOT1RSVU4gQ2xvc2UgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBjYXVzZXMg
Y2xvc2luZyBhbmQgY2xvc2UgZXZlbnQgdG8gYmUgY2FsbGVkIAorTk9UUlVOIENsb3NlIHBlZXJj
b25uZWN0aW9uIGNhdXNlcyBjbG9zZSBldmVudCBhbmQgZXJyb3IgdG8gYmUgY2FsbGVkIG9uIG5l
Z290aWF0ZWQgZGF0YWNoYW5uZWwgCitOT1RSVU4gQ2xvc2UgcGVlcmNvbm5lY3Rpb24gYWZ0ZXIg
bmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBjbG9zZSBjYXVzZXMgbm8gZXZlbnRzIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbC1jbG9zZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jZDRhY2UyYTgzNmJlMmM5ZjE4ZGVjYTQ4YzhjMDFmNWUxY2RmZjFkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbApAQCAtMCwwICsxLDEwNCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0i
bG9uZyI+Cis8dGl0bGU+UlRDRGF0YUNoYW5uZWwucHJvdG90eXBlLmNsb3NlPC90aXRsZT4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1
c2Ugc3RyaWN0JzsKKworZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290aWF0ZWQ6IHRy
dWUsIGlkOiAwfV0pIHsKKyAgY29uc3QgbW9kZSA9IGAke29wdGlvbnMubmVnb3RpYXRlZD8gIm5l
Z290aWF0ZWQgIiA6ICIifWRhdGFjaGFubmVsYDsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgICAgY29uc3QgW2NoYW5uZWwxLCBjaGFubmVsMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hh
bm5lbFBhaXIodCwgb3B0aW9ucyk7CisgICAgY29uc3QgaGF2ZUNsb3NlZCA9IG5ldyBQcm9taXNl
KHIgPT4gY2hhbm5lbDIub25jbG9zZSA9IHIpOworICAgIGxldCBjbG9zaW5nU2VlbiA9IGZhbHNl
OworICAgIGNoYW5uZWwxLm9uY2xvc2luZyA9IHQudW5yZWFjaGVkX2Z1bmMoKTsKKyAgICBjaGFu
bmVsMi5vbmNsb3NpbmcgPSAoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwyLnJl
YWR5U3RhdGUsICdjbG9zaW5nJyk7CisgICAgICBjbG9zaW5nU2VlbiA9IHRydWU7CisgICAgfTsK
KyAgICBjaGFubmVsMi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHQudW5yZWFjaGVkX2Z1bmMo
KSk7CisgICAgY2hhbm5lbDEuY2xvc2UoKTsKKyAgICBhd2FpdCBoYXZlQ2xvc2VkOworICAgIGFz
c2VydF9lcXVhbHMoY2hhbm5lbDIucmVhZHlTdGF0ZSwgJ2Nsb3NlZCcpOworICAgIGFzc2VydF90
cnVlKGNsb3NpbmdTZWVuLCAnQ2xvc2luZyBldmVudCB3YXMgc2VlbicpOworICB9LCBgQ2xvc2Ug
JHttb2RlfSBjYXVzZXMgb25jbG9zaW5nIGFuZCBvbmNsb3NlIHRvIGJlIGNhbGxlZGApOworCisg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICAvLyBUaGlzIGlzIHRoZSBzYW1lIHRlc3Qg
YXMgYWJvdmUsIGJ1dCB1c2luZyBhZGRFdmVudExpc3RlbmVyCisgICAgLy8gcmF0aGVyIHRoYW4g
dGhlICJvbmNsb3NlIiBhdHRyaWJ1dGUuCisgICAgY29uc3QgW2NoYW5uZWwxLCBjaGFubmVsMl0g
PSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucyk7CisgICAgY29uc3QgaGF2
ZUNsb3NlZCA9IG5ldyBQcm9taXNlKHIgPT4gY2hhbm5lbDIuYWRkRXZlbnRMaXN0ZW5lcignY2xv
c2UnLCByKSk7CisgICAgbGV0IGNsb3NpbmdTZWVuID0gZmFsc2U7CisgICAgY2hhbm5lbDEuYWRk
RXZlbnRMaXN0ZW5lcignY2xvc2luZycsIHQudW5yZWFjaGVkX2Z1bmMoKSk7CisgICAgY2hhbm5l
bDIuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2luZycsICgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVh
bHMoY2hhbm5lbDIucmVhZHlTdGF0ZSwgJ2Nsb3NpbmcnKTsKKyAgICAgIGNsb3NpbmdTZWVuID0g
dHJ1ZTsKKyAgICB9KTsKKyAgICBjaGFubmVsMi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHQu
dW5yZWFjaGVkX2Z1bmMoKSk7CisgICAgY2hhbm5lbDEuY2xvc2UoKTsKKyAgICBhd2FpdCBoYXZl
Q2xvc2VkOworICAgIGFzc2VydF9lcXVhbHMoY2hhbm5lbDIucmVhZHlTdGF0ZSwgJ2Nsb3NlZCcp
OworICAgIGFzc2VydF90cnVlKGNsb3NpbmdTZWVuLCAnQ2xvc2luZyBldmVudCB3YXMgc2Vlbicp
OworICB9LCBgQ2xvc2UgJHttb2RlfSBjYXVzZXMgY2xvc2luZyBhbmQgY2xvc2UgZXZlbnQgdG8g
YmUgY2FsbGVkYCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOworICAgIGNvbnN0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRl
RGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMsIHBjMSk7CisgICAgY29uc3QgZXZlbnRzID0gW107
CisgICAgbGV0IGVycm9yID0gbnVsbDsKKyAgICBjaGFubmVsMi5hZGRFdmVudExpc3RlbmVyKCdl
cnJvcicsIHQuc3RlcF9mdW5jKGV2ZW50ID0+IHsKKyAgICAgIGV2ZW50cy5wdXNoKCdlcnJvcicp
OworICAgICAgYXNzZXJ0X3RydWUoZXZlbnQgaW5zdGFuY2VvZiBSVENFcnJvckV2ZW50KTsKKyAg
ICAgIGVycm9yID0gZXZlbnQuZXJyb3I7CisgICAgfSkpOworICAgIGNvbnN0IGhhdmVDbG9zZWQg
PSBuZXcgUHJvbWlzZShyID0+IGNoYW5uZWwyLmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgKCkg
PT4geworICAgICAgZXZlbnRzLnB1c2goJ2Nsb3NlJyk7CisgICAgICByKCk7CisgICAgfSkpOwor
ICAgIHBjMS5jbG9zZSgpOworICAgIGF3YWl0IGhhdmVDbG9zZWQ7CisgICAgLy8gRXJyb3Igc2hv
dWxkIGZpcmUgYmVmb3JlIGNsb3NlLgorICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnRzLCBb
J2Vycm9yJywgJ2Nsb3NlJ10pOworICAgIGFzc2VydF90cnVlKGVycm9yIGluc3RhbmNlb2YgUlRD
RXJyb3IpOworICAgIGFzc2VydF9lcXVhbHMoZXJyb3IubmFtZSwgJ09wZXJhdGlvbkVycm9yJyk7
CisgICAgYXNzZXJ0X2VxdWFscyhlcnJvci5lcnJvckRldGFpbCwgJ3NjdHAtZmFpbHVyZScpOwor
ICAgIC8vIENsb3NpbmcgYSBwZWVyY29ubmVjdGlvbiBjYXVzZXMgYSBEVExTIGNsb3NlLCBidXQg
dGhpcyBldmVudCBoYXMKKyAgICAvLyBubyBjb3JyZXNwb25kaW5nIFNDVFAgY2F1c2UgY29kZS4K
KyAgICBhc3NlcnRfZXF1YWxzKGVycm9yLnNjdHBDYXVzZUNvZGUsIG51bGwpOworICB9LCBgQ2xv
c2UgcGVlcmNvbm5lY3Rpb24gY2F1c2VzIGNsb3NlIGV2ZW50IGFuZCBlcnJvciB0byBiZSBjYWxs
ZWQgb24gJHttb2RlfWApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBsZXQg
cGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzEuY2xvc2UoKSk7CisgICAgbGV0IFtjaGFubmVsMSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRl
RGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMsIHBjMSk7CisgICAgLy8gVGhlIGV4cGVjdGVkIHNl
cXVlbmNlIG9mIGV2ZW50cyB3aGVuIGNsb3NpbmcgYSBEQyBpcyB0aGF0CisgICAgLy8gY2hhbm5l
bDEgZ29lcyB0byBjbG9zaW5nLCBjaGFubmVsMiBmaXJlcyBvbmNsb3NlLCBhbmQgd2hlbgorICAg
IC8vIHRoZSBjbG9zZSBpcyBjb25maXJtZWQsIGNoYW5uZWwxIGZpcmVzIG9uY2xvc2UuCisgICAg
Ly8gQWZ0ZXIgdGhhdCwgbm8gbW9yZSBldmVudHMgc2hvdWxkIGZpcmUuCisgICAgY2hhbm5lbDEu
b25lcnJvciA9IHQudW5yZWFjaGVkX2Z1bmMoKTsKKyAgICBsZXQgY2xvc2UySGFuZGxlciA9IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgY2hhbm5lbDIub25jbG9zZSA9IGV2ZW50ID0+
IHsKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfTsKKyAgICB9KTsKKyAgICBsZXQgY2xvc2Ux
SGFuZGxlciA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgY2hhbm5lbDEub25jbG9z
ZSA9IGV2ZW50ID0+IHsKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfTsKKyAgICB9KTsKKyAg
ICBjaGFubmVsMS5jbG9zZSgpOworICAgIGF3YWl0IGNsb3NlMkhhbmRsZXI7CisgICAgYXdhaXQg
Y2xvc2UxSGFuZGxlcjsKKyAgICBjaGFubmVsMS5vbmNsb3NlID0gdC51bnJlYWNoZWRfZnVuYygp
OworICAgIGNoYW5uZWwyLm9uY2xvc2UgPSB0LnVucmVhY2hlZF9mdW5jKCk7CisgICAgY2hhbm5l
bDIub25lcnJvciA9IHQudW5yZWFjaGVkX2Z1bmMoKTsKKyAgICBwYzEuY2xvc2UoKTsKKyAgICBh
d2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDEwKSk7
CisgIH0sIGBDbG9zZSBwZWVyY29ubmVjdGlvbiBhZnRlciAke21vZGV9IGNsb3NlIGNhdXNlcyBu
byBldmVudHNgKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDRGF0YUNoYW5uZWwtaWQtZXhwZWN0ZWQudHh0CmluZGV4IDJkNDZlMzM1ZmZkZjQ3MmE1
NjJlMzFkNTU2MDU0ZThlZTFhNzEwYWYuLjk3NzZkYzhkOTZjNWU3OTMzMjY2N2U2ODA3ZTM4YmVj
ODAyMTYwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWlkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbC1pZC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw2IEBACiAKLUZBSUwgRFRMUyBjbGllbnQg
dXNlcyBvZGQgZGF0YSBjaGFubmVsIElEcyBhc3NlcnRfZXF1YWxzOiBpZCBleHBlY3RlZCAxIGJ1
dCBnb3QgMAotRkFJTCBEVExTIHNlcnZlciB1c2VzIGV2ZW4gZGF0YSBjaGFubmVsIElEcyBhc3Nl
cnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgbnVsbAorRkFJTCBEVExTIGNsaWVu
dCB1c2VzIG9kZCBkYXRhIGNoYW5uZWwgSURzIGFzc2VydF9lcXVhbHM6IENoYW5uZWwgY3JlYXRl
ZCBieSB0aGUgRFRMUyBzZXJ2ZXIgcm9sZSBtdXN0IGJlIG9kZCAod2FzIG51bGwpIGV4cGVjdGVk
IDEgYnV0IGdvdCAwCitGQUlMIERUTFMgc2VydmVyIHVzZXMgZXZlbiBkYXRhIGNoYW5uZWwgSURz
IGFzc2VydF90cnVlOiBDaGFubmVsIElEIG51bGwgc2hvdWxkIGJlIHVuaXF1ZSBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorRkFJTCBJbi1iYW5kIG5lZ290aWF0aW9uIHdpdGggYSBzcGVjaWZpYyBJ
RCBzaG91bGQgbm90IHdvcmsgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBi
dXQgZ290IChudW1iZXIpIDQyCitGQUlMIE9kZC9ldmVuIHJvbGUgc2hvdWxkIG5vdCBiZSB2aW9s
YXRlZCB3aGVuIG1peGluZyB3aXRoIG5lZ290aWF0ZWQgY2hhbm5lbHMgYXNzZXJ0X2VxdWFsczog
Q2hhbm5lbCBjcmVhdGVkIGJ5IHRoZSBEVExTIHNlcnZlciByb2xlIG11c3QgYmUgb2RkICh3YXMg
bnVsbCkgZXhwZWN0ZWQgMSBidXQgZ290IDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtaWQuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0RhdGFDaGFubmVsLWlkLmh0bWwKaW5kZXggMThmNzBkOGNlOTY5ZDJmNGY1MzZlNjkwOGFlOTI3
NGMzYWIyOGZlZi4uMTBkYzVlYWNiOWNjZjJhODc4ZDI5ZThiMTNlYjA4MjI3MTczMWU2NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDRGF0YUNoYW5uZWwtaWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1pZC5odG1sCkBAIC0zLDYw
ICszLDM0MyBAQAogPHRpdGxlPlJUQ0RhdGFDaGFubmVsIGlkIGF0dHJpYnV0ZTwvdGl0bGU+CiA8
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICd1c2Ug
c3RyaWN0JzsKIAotLy8gVGhpcyBhbmQgdGhlIHRlc3QgYmVsb3cgdmVyaWZ5IHRoYXQgYWZ0ZXIg
YSBkZXNjcmlwdGlvbiBpcyBzZXQgdGhhdAotLy8gbmVnb3RpYXRlcyB0aGUgRFRMUyByb2xlIHVz
ZWQgYnkgU0NUUCwgZGF0YSBjaGFubmVscyB3aXRoIHVuc2V0IElEcwotLy8gaGF2ZSBJRHMgc2V0
IGFjY29yZGluZyB0byB0aGUgcnVsZXMgaW4gcnRjd2ViLWRhdGEtY2hhbm5lbC4KLXByb21pc2Vf
dGVzdCh0ZXN0ID0+IHsKKy8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyByZXZpc2lv
bjoKKy8vIGh0dHBzOi8vcmF3Z2l0LmNvbS93M2Mvd2VicnRjLXBjLzFjYzViZmMzZmYxODc0MTAz
M2Q4MDRjNGE3MWY3ODkxMjQyZmI1YjMvd2VicnRjLmh0bWwKKworLy8gVGhpcyBpcyB0aGUgbWF4
aW11bSBudW1iZXIgb2Ygc3RyZWFtcywgTk9UIHRoZSBtYXhpbXVtIHN0cmVhbSBJRCAod2hpY2gg
aXMgNjU1MzQpCisvLyBTZWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRm
LXJ0Y3dlYi1kYXRhLWNoYW5uZWwtMTMjc2VjdGlvbi02LjIKK2NvbnN0IG5TdHJlYW1zID0gNjU1
MzU7CisKKy8qCisgIDYuMS4KKyAgICAyMS4gSWYgdGhlIFtbRGF0YUNoYW5uZWxJZF1dIHNsb3Qg
aXMgbnVsbCAoZHVlIHRvIG5vIElEIGJlaW5nIHBhc3NlZCBpbnRvCisgICAgICAgIGNyZWF0ZURh
dGFDaGFubmVsLCBvciBbW05lZ290aWF0ZWRdXSBiZWluZyBmYWxzZSksIGFuZCB0aGUgRFRMUyBy
b2xlIG9mIHRoZSBTQ1RQCisgICAgICAgIHRyYW5zcG9ydCBoYXMgYWxyZWFkeSBiZWVuIG5lZ290
aWF0ZWQsIHRoZW4gaW5pdGlhbGl6ZSBbW0RhdGFDaGFubmVsSWRdXSB0byBhIHZhbHVlCisgICAg
ICAgIGdlbmVyYXRlZCBieSB0aGUgdXNlciBhZ2VudCwgYWNjb3JkaW5nIHRvIFtSVENXRUItREFU
QS1QUk9UT0NPTF0gWy4uLl0KKyAqLworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uOwotICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+
IHBjLmNsb3NlKCkpOwotICBjb25zdCBjaGFubmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycp
OwotICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoKQotICAudGhlbihvZmZlciA9PiBwYy5zZXRMb2Nh
bERlc2NyaXB0aW9uKG9mZmVyKSkKLSAgLnRoZW4oKCkgPT4gewotICAgIC8vIFR1cm4gb3VyIG93
biBvZmZlciBTRFAgaW50byB2YWxpZCBhbnN3ZXIgU0RQIGJ5IHNldHRpbmcgdGhlIERUTFMgcm9s
ZSB0bwotICAgIC8vICJhY3RpdmUiLgotICAgIGNvbnN0IGFuc3dlciA9IHsKLSAgICAgIHR5cGU6
ICJhbnN3ZXIiLAotICAgICAgc2RwOiBwYy5sb2NhbERlc2NyaXB0aW9uLnNkcC5yZXBsYWNlKCJh
Y3RwYXNzIiwgImFjdGl2ZSIpCi0gICAgfTsKLSAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oYW5zd2VyKTsKLSAgfSkKLSAgLnRoZW4oKCkgPT4gewotICAgIC8vIFNpbmNlIHRoZSBy
ZW1vdGUgZGVzY3JpcHRpb24gaGFkIGFuICJhY3RpdmUiIERUTFMgcm9sZSwgd2UncmUgdGhlIHNl
cnZlcgotICAgIC8vIGFuZCBzaG91bGQgdXNlIG9kZCBkYXRhIGNoYW5uZWwgSURzLCBhY2NvcmRp
bmcgdG8gcnRjd2ViLWRhdGEtY2hhbm5lbC4KLSAgICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwuaWQg
JSAyLCAxLCAnaWQnKTsKLSAgICBjb25zdCBhbm90aGVyX2NoYW5uZWwgPSBwYy5jcmVhdGVEYXRh
Q2hhbm5lbCgnYW5vdGhlcicpOwotICAgIGFzc2VydF9lcXVhbHMoYW5vdGhlcl9jaGFubmVsLmlk
ICUgMiwgMSwgJ2lkJyk7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMoY2hhbm5lbC5pZCwgYW5vdGhl
cl9jaGFubmVsLmlkKTsKLSAgfSkKLX0sICJEVExTIGNsaWVudCB1c2VzIG9kZCBkYXRhIGNoYW5u
ZWwgSURzIik7Ci0KLXByb21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKworICBjb25zdCBkYzEgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJyk7
CisgIGNvbnN0IGlkcyA9IG5ldyBVbmlxdWVTZXQoKTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0
IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIp
OworICAvLyBUdXJuIG91ciBvd24gb2ZmZXIgU0RQIGludG8gdmFsaWQgYW5zd2VyIFNEUCBieSBz
ZXR0aW5nIHRoZSBEVExTIHJvbGUgdG8KKyAgLy8gImFjdGl2ZSIuCisgIGNvbnN0IGFuc3dlciA9
IHsKKyAgICB0eXBlOiAnYW5zd2VyJywKKyAgICBzZHA6IHBjLmxvY2FsRGVzY3JpcHRpb24uc2Rw
LnJlcGxhY2UoJ2FjdHBhc3MnLCAnYWN0aXZlJykKKyAgfTsKKyAgYXdhaXQgcGMuc2V0UmVtb3Rl
RGVzY3JpcHRpb24oYW5zd2VyKTsKKworICAvLyBTaW5jZSB0aGUgcmVtb3RlIGRlc2NyaXB0aW9u
IGhhZCBhbiAnYWN0aXZlJyBEVExTIHJvbGUsIHdlJ3JlIHRoZSBzZXJ2ZXIKKyAgLy8gYW5kIHNo
b3VsZCB1c2Ugb2RkIGRhdGEgY2hhbm5lbCBJRHMsIGFjY29yZGluZyB0byBydGN3ZWItZGF0YS1j
aGFubmVsLgorICBhc3NlcnRfZXF1YWxzKGRjMS5pZCAlIDIsIDEsCisgICAgYENoYW5uZWwgY3Jl
YXRlZCBieSB0aGUgRFRMUyBzZXJ2ZXIgcm9sZSBtdXN0IGJlIG9kZCAod2FzICR7ZGMxLmlkfSlg
KTsKKyAgY29uc3QgZGMyID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2Fub3RoZXInKTsKKyAgYXNz
ZXJ0X2VxdWFscyhkYzIuaWQgJSAyLCAxLAorICAgIGBDaGFubmVsIGNyZWF0ZWQgYnkgdGhlIERU
TFMgc2VydmVyIHJvbGUgbXVzdCBiZSBvZGQgKHdhcyAke2RjMi5pZH0pYCk7CisKKyAgLy8gRW5z
dXJlIElEcyBhcmUgdW5pcXVlCisgIGlkcy5hZGQoZGMxLmlkLCBgQ2hhbm5lbCBJRCAke2RjMS5p
ZH0gc2hvdWxkIGJlIHVuaXF1ZWApOworICBpZHMuYWRkKGRjMi5pZCwgYENoYW5uZWwgSUQgJHtk
YzIuaWR9IHNob3VsZCBiZSB1bmlxdWVgKTsKK30sICdEVExTIGNsaWVudCB1c2VzIG9kZCBkYXRh
IGNoYW5uZWwgSURzJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbjsKLSAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5j
bG9zZSgpKTsKLSAgY29uc3QgY2hhbm5lbCA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnKTsKLSAg
cmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCkKLSAgLnRoZW4ob2ZmZXIgPT4gcGMuc2V0TG9jYWxEZXNj
cmlwdGlvbihvZmZlcikpCi0gIC50aGVuKCgpID0+IHsKLSAgICAvLyBUdXJuIG91ciBvd24gb2Zm
ZXIgU0RQIGludG8gdmFsaWQgYW5zd2VyIFNEUCBieSBzZXR0aW5nIHRoZSBEVExTIHJvbGUgdG8K
LSAgICAvLyAicGFzc2l2ZSIuCi0gICAgY29uc3QgYW5zd2VyID0gewotICAgICAgdHlwZTogImFu
c3dlciIsCi0gICAgICBzZHA6IHBjLmxvY2FsRGVzY3JpcHRpb24uc2RwLnJlcGxhY2UoImFjdHBh
c3MiLCAicGFzc2l2ZSIpCi0gICAgfTsKLSAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYW5zd2VyKTsKLSAgfSkKLSAgLnRoZW4oKCkgPT4gewotICAgIC8vIFNpbmNlIHRoZSByZW1v
dGUgZGVzY3JpcHRpb24gaGFkIGEgInBhc3NpdmUiIERUTFMgcm9sZSwgd2UncmUgdGhlIGNsaWVu
dAotICAgIC8vIGFuZCBzaG91bGQgdXNlIGV2ZW4gZGF0YSBjaGFubmVsIElEcywgYWNjb3JkaW5n
IHRvIHJ0Y3dlYi1kYXRhLWNoYW5uZWwuCi0gICAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLmlkICUg
MiwgMCwgJ2lkJyk7Ci0gICAgY29uc3QgYW5vdGhlcl9jaGFubmVsID0gcGMuY3JlYXRlRGF0YUNo
YW5uZWwoJ2Fub3RoZXInKTsKLSAgICBhc3NlcnRfZXF1YWxzKGFub3RoZXJfY2hhbm5lbC5pZCAl
IDIsIDAsICdpZCcpOwotICAgIGFzc2VydF9ub3RfZXF1YWxzKGNoYW5uZWwuaWQsIGFub3RoZXJf
Y2hhbm5lbC5pZCk7Ci0gIH0pCi19LCAiRFRMUyBzZXJ2ZXIgdXNlcyBldmVuIGRhdGEgY2hhbm5l
bCBJRHMiKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBjb25zdCBk
YzEgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJyk7CisgIGNvbnN0IGlkcyA9IG5ldyBVbmlxdWVT
ZXQoKTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0
IHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICAvLyBUdXJuIG91ciBvd24gb2ZmZXIg
U0RQIGludG8gdmFsaWQgYW5zd2VyIFNEUCBieSBzZXR0aW5nIHRoZSBEVExTIHJvbGUgdG8KKyAg
Ly8gJ3Bhc3NpdmUnLgorICBjb25zdCBhbnN3ZXIgPSB7CisgICAgdHlwZTogJ2Fuc3dlcicsCisg
ICAgc2RwOiBwYy5sb2NhbERlc2NyaXB0aW9uLnNkcC5yZXBsYWNlKCdhY3RwYXNzJywgJ3Bhc3Np
dmUnKQorICB9OworICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworCisg
IC8vIFNpbmNlIHRoZSByZW1vdGUgZGVzY3JpcHRpb24gaGFkIGEgJ3Bhc3NpdmUnIERUTFMgcm9s
ZSwgd2UncmUgdGhlIGNsaWVudAorICAvLyBhbmQgc2hvdWxkIHVzZSBldmVuIGRhdGEgY2hhbm5l
bCBJRHMsIGFjY29yZGluZyB0byBydGN3ZWItZGF0YS1jaGFubmVsLgorICBhc3NlcnRfZXF1YWxz
KGRjMS5pZCAlIDIsIDAsCisgICAgYENoYW5uZWwgY3JlYXRlZCBieSB0aGUgRFRMUyBjbGllbnQg
cm9sZSBtdXN0IGJlIGV2ZW4gKHdhcyAke2RjMS5pZH0pYCk7CisgIGNvbnN0IGRjMiA9IHBjLmNy
ZWF0ZURhdGFDaGFubmVsKCdhbm90aGVyJyk7CisgIGFzc2VydF9lcXVhbHMoZGMyLmlkICUgMiwg
MCwKKyAgICBgQ2hhbm5lbCBjcmVhdGVkIGJ5IHRoZSBEVExTIGNsaWVudCByb2xlIG11c3QgYmUg
ZXZlbiAod2FzICR7ZGMxLmlkfSlgKTsKKworICAvLyBFbnN1cmUgSURzIGFyZSB1bmlxdWUKKyAg
aWRzLmFkZChkYzEuaWQsIGBDaGFubmVsIElEICR7ZGMxLmlkfSBzaG91bGQgYmUgdW5pcXVlYCk7
CisgIGlkcy5hZGQoZGMyLmlkLCBgQ2hhbm5lbCBJRCAke2RjMi5pZH0gc2hvdWxkIGJlIHVuaXF1
ZWApOworfSwgJ0RUTFMgc2VydmVyIHVzZXMgZXZlbiBkYXRhIGNoYW5uZWwgSURzJyk7CisKKy8q
CisgIENoZWNrcyB0aGF0IHRoZSBpZCBpcyBpZ25vcmVkIGlmICJuZWdvdGlhdGVkIiBpcyBmYWxz
ZS4KKyAgU2VlIHNlY3Rpb24gNi4xLCBjcmVhdGVEYXRhQ2hhbm5lbCBzdGVwIDEzLgorICovCitw
cm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisKKyAgY29uc3QgZGMxID0gcGMxLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7Cisg
ICAgbmVnb3RpYXRlZDogZmFsc2UsCisgICAgaWQ6IDQyCisgIH0pOworICBkYzEub25vcGVuID0g
dC5zdGVwX2Z1bmMoKCkgPT4geworICAgIGRjMS5zZW5kKCc6KCcpOworICB9KTsKKworICBjb25z
dCBkYzIgPSBwYzIuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsKKyAgICBuZWdvdGlhdGVkOiBmYWxz
ZSwKKyAgICBpZDogNDIKKyAgfSk7CisgIC8vIElEIHNob3VsZCBiZSBudWxsIHByaW9yIHRvIG5l
Z290aWF0aW9uLgorICBhc3NlcnRfZXF1YWxzKGRjMS5pZCwgbnVsbCk7CisgIGFzc2VydF9lcXVh
bHMoZGMyLmlkLCBudWxsKTsKKworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOwor
ICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgLy8gV2Ugc2hvdWxkIG5v
dyBoYXZlIDIgZGF0YWNoYW5uZWxzIHdpdGggZGlmZmVyZW50IElEcy4KKyAgLy8gQXQgbGVhc3Qg
b25lIG9mIHRoZSBkYXRhY2hhbm5lbHMgc2hvdWxkIG5vdCBiZSA0Mi4KKyAgLy8gSWYgb25lIGhh
cyB0aGUgdmFsdWUgNDIsIGl0J3MgYW4gYWNjaWRlbnQ7IGlmIGJvdGggaGF2ZSwKKyAgLy8gdGhl
eSBhcmUgdGhlIHNhbWUgZGF0YWNoYW5uZWwsIGFuZCBpdCdzIGEgYnVnLgorICBhc3NlcnRfZmFs
c2UoZGMxLmlkID09IDQyICYmIGRjMi5pZCA9PSA0Mik7Cit9LCAnSW4tYmFuZCBuZWdvdGlhdGlv
biB3aXRoIGEgc3BlY2lmaWMgSUQgc2hvdWxkIG5vdCB3b3JrJyk7CisKKy8qCisgIENoZWNrIGlm
IHRoZSBpbXBsZW1lbnRhdGlvbiBzdGlsbCBmb2xsb3dzIHRoZSBvZGQvZXZlbiByb2xlIGNvcnJl
Y3RseSBpZiB3ZSBhbm5veSBpdCB3aXRoCisgIG5lZ290aWF0ZWQgY2hhbm5lbHMgbm90IGZvbGxv
d2luZyB0aGF0IHJ1bGUuCisKKyAgTm90ZTogVGhpcyB0ZXN0IGFzc3VtZXMgdGhhdCB0aGUgaW1w
bGVtZW50YXRpb24gY2FuIGhhbmRsZSBhIG1pbmltdW0gb2YgNDAgZGF0YSBjaGFubmVscy4KKyAq
LworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIC8vIFRha2VzIHRoZSBEVExTIHNlcnZl
ciByb2xlCisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAvLyBUYWtl
cyB0aGUgRFRMUyBjbGllbnQgcm9sZQorICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBj
Mik7CisgIGNvbnN0IGRjcyA9IFtdOworICBjb25zdCBuZWdvdGlhdGVkRGNzID0gW107CisgIGNv
bnN0IGlkcyA9IG5ldyBVbmlxdWVTZXQoKTsKKworICAvLyBDcmVhdGUgMTAgRENFUC1uZWdvdGlh
dGVkIGNoYW5uZWxzIHdpdGggcGMxCisgIC8vIE5vdGU6IFRoZXNlIHNob3VsZCBub3QgaGF2ZSBh
bnkgYXNzb2NpYXRlZCB2YWxpZCBJRCBhdCB0aGlzIHBvaW50CisgIGZvciAobGV0IGkgPSAwOyBp
IDwgMTA7ICsraSkgeworICAgIGNvbnN0IGRjID0gcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdiZWZv
cmUtY29ubmVjdGlvbicpOworICAgIGFzc2VydF9lcXVhbHMoZGMuaWQsIG51bGwsICdDaGFubmVs
IGlkIG11c3QgYmUgbnVsbCBiZWZvcmUgRFRMUyByb2xlIGhhcyBiZWVuIGRldGVybWluZWQnKTsK
KyAgICBkY3MucHVzaChkYyk7CisgIH0KKworICAvLyBDcmVhdGUgMTAgbmVnb3RpYXRlZCBjaGFu
bmVscyB3aXRoIHBjMSB2aW9sYXRpbmcgdGhlIG9kZC9ldmVuIHJ1bGUKKyAgZm9yIChsZXQgaWQg
PSAwOyBpZCA8IDIwOyBpZCArPSAyKSB7CisgICAgY29uc3QgZGMgPSBwYzEuY3JlYXRlRGF0YUNo
YW5uZWwoYG5lZ290aWF0ZWQtbm90LW9kZC0ke2lkfS1iZWZvcmUtY29ubmVjdGlvbmAsIHsKKyAg
ICAgIG5lZ290aWF0ZWQ6IHRydWUsCisgICAgICBpZDogaWQsCisgICAgfSk7CisgICAgYXNzZXJ0
X2VxdWFscyhkYy5pZCwgaWQsICdDaGFubmVsIGlkIG11c3QgYmUgc2V0IGJlZm9yZSBEVExTIHJv
bGUgaGFzIGJlZW4gZGV0ZXJtaW5lZCB3aGVuIG5lZ290aWF0ZWQgaXMgdHJ1ZScpOworICAgIG5l
Z290aWF0ZWREY3MucHVzaChbZGMsIGlkXSk7CisgICAgaWRzLmFkZChkYy5pZCwgYENoYW5uZWwg
SUQgJHtkYy5pZH0gc2hvdWxkIGJlIHVuaXF1ZWApOworICB9CisKKyAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlcihwYzEsIHBjMiwgeworICAgIG9mZmVyOiAob2ZmZXIpID0+IHsKKyAgICAgIC8v
IEVuc3VyZSBwYzEgdGFrZXMgdGhlIHNlcnZlciByb2xlCisgICAgICBhc3NlcnRfdHJ1ZShvZmZl
ci5zZHAuaW5jbHVkZXMoJ2FjdHBhc3MnKSB8fCBvZmZlci5zZHAuaW5jbHVkZXMoJ3Bhc3NpdmUn
KSwKKyAgICAgICAgJ3BjMSBtdXN0IHRha2UgdGhlIERUTFMgc2VydmVyIHJvbGUnKTsKKyAgICAg
IHJldHVybiBvZmZlcjsKKyAgICB9LAorICAgIGFuc3dlcjogKGFuc3dlcikgPT4geworICAgICAg
Ly8gRW5zdXJlIHBjMiB0YWtlcyB0aGUgY2xpZW50IHJvbGUKKyAgICAgIC8vIE5vdGU6IEl0IHZl
cnkgbGlrZWx5IHdpbGwgY2hvb3NlICdhY3RpdmUnIGl0c2VsZgorICAgICAgYW5zd2VyLnNkcCA9
IGFuc3dlci5zZHAucmVwbGFjZSgnYWN0cGFzcycsICdhY3RpdmUnKTsKKyAgICAgIGFzc2VydF90
cnVlKGFuc3dlci5zZHAuaW5jbHVkZXMoJ2FjdGl2ZScpLCAncGMyIG11c3QgdGFrZSB0aGUgRFRM
UyBjbGllbnQgcm9sZScpOworICAgICAgcmV0dXJuIGFuc3dlcjsKKyAgICB9LAorICB9KTsKKwor
ICBmb3IgKGNvbnN0IGRjIG9mIGRjcykgeworICAgIGFzc2VydF9lcXVhbHMoZGMuaWQgJSAyLCAx
LAorICAgICAgYENoYW5uZWwgY3JlYXRlZCBieSB0aGUgRFRMUyBzZXJ2ZXIgcm9sZSBtdXN0IGJl
IG9kZCAod2FzICR7ZGMuaWR9KWApOworICAgIGlkcy5hZGQoZGMuaWQsIGBDaGFubmVsIElEICR7
ZGMuaWR9IHNob3VsZCBiZSB1bmlxdWVgKTsKKyAgfQorCisgIC8vIENyZWF0ZSAxMCBjaGFubmVs
cyB3aXRoIHBjMQorICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICBjb25zdCBk
YyA9IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnYWZ0ZXItY29ubmVjdGlvbicpOworICAgIGFzc2Vy
dF9lcXVhbHMoZGMuaWQgJSAyLCAxLAorICAgICAgYENoYW5uZWwgY3JlYXRlZCBieSB0aGUgRFRM
UyBzZXJ2ZXIgcm9sZSBtdXN0IGJlIG9kZCAod2FzICR7ZGMuaWR9KWApOworICAgIGRjcy5wdXNo
KGRjKTsKKyAgICBpZHMuYWRkKGRjLmlkLCBgQ2hhbm5lbCBJRCAke2RjLmlkfSBzaG91bGQgYmUg
dW5pcXVlYCk7CisgIH0KKworICAvLyBDcmVhdGUgMTAgbmVnb3RpYXRlZCBjaGFubmVscyB3aXRo
IHBjMSB2aW9sYXRpbmcgdGhlIG9kZC9ldmVuIHJ1bGUKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAx
MDsgKytpKSB7CisgICAgLy8gR2VuZXJhdGUgYSB2YWxpZCBldmVuIElEIHRoYXQgaGFzIG5vdCBi
ZWVuIHRha2VuLCB5ZXQuCisgICAgbGV0IGlkID0gMjA7CisgICAgd2hpbGUgKGlkcy5oYXMoaWQp
KSB7CisgICAgICBpZCArPSAyOworICAgIH0KKyAgICBjb25zdCBkYyA9IHBjMS5jcmVhdGVEYXRh
Q2hhbm5lbChgbmVnb3RpYXRlZC1ub3Qtb2RkLSR7aX0tYWZ0ZXItY29ubmVjdGlvbmAsIHsKKyAg
ICAgIG5lZ290aWF0ZWQ6IHRydWUsCisgICAgICBpZDogaWQsCisgICAgfSk7CisgICAgbmVnb3Rp
YXRlZERjcy5wdXNoKFtkYywgaWRdKTsKKyAgICBpZHMuYWRkKGRjLmlkLCBgQ2hhbm5lbCBJRCAk
e2RjLmlkfSBzaG91bGQgYmUgdW5pcXVlYCk7CisgIH0KKworICAvLyBTaW5jZSB3ZSd2ZSBhZGRl
ZCBuZXcgY2hhbm5lbHMsIGxldCdzIGNoZWNrIGFnYWluIHRoYXQgdGhlIG9kZC9ldmVuIHJvbGUg
aXMgbm90IHZpb2xhdGVkCisgIGZvciAoY29uc3QgZGMgb2YgZGNzKSB7CisgICAgYXNzZXJ0X2Vx
dWFscyhkYy5pZCAlIDIsIDEsCisgICAgICBgQ2hhbm5lbCBjcmVhdGVkIGJ5IHRoZSBEVExTIHNl
cnZlciByb2xlIG11c3QgYmUgb2RkICh3YXMgJHtkYy5pZH0pYCk7CisgIH0KKworICAvLyBMZXQn
cyBhbHNvIG1ha2Ugc3VyZSB0aGUgbmVnb3RpYXRlZCBjaGFubmVscyBoYXZlIGtlcHQgdGhlaXIg
SUQKKyAgZm9yIChjb25zdCBbZGMsIGlkXSBvZiBuZWdvdGlhdGVkRGNzKSB7CisgICAgYXNzZXJ0
X2VxdWFscyhkYy5pZCwgaWQsICdOZWdvdGlhdGVkIGNoYW5uZWxzIHNob3VsZCBrZWVwIHRoZWly
IGFzc2lnbmVkIElEJyk7CisgIH0KK30sICdPZGQvZXZlbiByb2xlIHNob3VsZCBub3QgYmUgdmlv
bGF0ZWQgd2hlbiBtaXhpbmcgd2l0aCBuZWdvdGlhdGVkIGNoYW5uZWxzJyk7CisKKy8qCisgIENy
ZWF0ZSAzMjc2OCAoY2xpZW50KSwgMzI3NjcgKHNlcnZlcikgY2hhbm5lbHMgdG8gbWFrZSBzdXJl
IGFsbCBpZHMgYXJlIGV4aGF1c3RlZCBBRlRFUgorICBlc3RhYmxpc2hpbmcgYSBwZWVyIGNvbm5l
Y3Rpb24uCisKKyAgNi4xLiAgY3JlYXRlRGF0YUNoYW5uZWwKKyAgICAyMS4gSWYgdGhlIFtbRGF0
YUNoYW5uZWxJZF1dIHNsb3QgaXMgbnVsbCAoZHVlIHRvIG5vIElEIGJlaW5nIHBhc3NlZCBpbnRv
CisgICAgICAgIGNyZWF0ZURhdGFDaGFubmVsLCBvciBbW05lZ290aWF0ZWRdXSBiZWluZyBmYWxz
ZSksIGFuZCB0aGUgRFRMUyByb2xlIG9mIHRoZSBTQ1RQCisgICAgICAgIHRyYW5zcG9ydCBoYXMg
YWxyZWFkeSBiZWVuIG5lZ290aWF0ZWQsIHRoZW4gaW5pdGlhbGl6ZSBbW0RhdGFDaGFubmVsSWRd
XSB0byBhIHZhbHVlCisgICAgICAgIGdlbmVyYXRlZCBieSB0aGUgdXNlciBhZ2VudCwgYWNjb3Jk
aW5nIHRvIFtSVENXRUItREFUQS1QUk9UT0NPTF0sIGFuZCBza2lwCisgICAgICAgIHRvIHRoZSBu
ZXh0IHN0ZXAuIElmIG5vIGF2YWlsYWJsZSBJRCBjb3VsZCBiZSBnZW5lcmF0ZWQsIG9yIGlmIHRo
ZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgW1tEYXRhQ2hhbm5lbElkXV0gc2xvdCBpcyBiZWluZyB1
c2VkIGJ5IGFuIGV4aXN0aW5nIFJUQ0RhdGFDaGFubmVsLCB0aHJvdyBhbgorICAgICAgICBPcGVy
YXRpb25FcnJvciBleGNlcHRpb24uCisgKi8KKy8qCisgVE9ETzogSW1wcm92ZSB0ZXN0IGNvdmVy
YWdlIGZvciBSVENTY3RwVHJhbnNwb3J0Lm1heENoYW5uZWxzLgorIFRPRE86IEltcHJvdmUgdGVz
dCBjb3ZlcmFnZSBmb3IgZXhoYXVzdGluZyBjaGFubmVsIGNhc2VzLgorICovCisKKy8qCisgIENy
ZWF0ZSAzMjc2OCAoY2xpZW50KSwgMzI3NjcgKHNlcnZlcikgY2hhbm5lbHMgdG8gbWFrZSBzdXJl
IGFsbCBpZHMgYXJlIGV4aGF1c3RlZCBCRUZPUkUKKyAgZXN0YWJsaXNoaW5nIGEgcGVlciBjb25u
ZWN0aW9uLgorCisgIEJlIGF3YXJlIHRoYXQgbGF0ZSBjaGFubmVsIGlkIGFzc2lnbm1lbnQgY2Fu
IGN1cnJlbnRseSBmYWlsIGluIG1hbnkgcGxhY2VzIG5vdCBjb3ZlcmVkIGJ5IHRoZQorICBzcGVj
LCBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2VicnRjLXBjL2lzc3Vlcy8xODE4CisKKyAg
NC40LjEuNi4KKyAgICAyLjIuNi4gIElmIGRlc2NyaXB0aW9uIG5lZ290aWF0ZXMgdGhlIERUTFMg
cm9sZSBvZiB0aGUgU0NUUCB0cmFuc3BvcnQsIGFuZCB0aGVyZSBpcyBhbgorICAgICAgICAgICAg
UlRDRGF0YUNoYW5uZWwgd2l0aCBhIG51bGwgaWQsIHRoZW4gZ2VuZXJhdGUgYW4gSUQgYWNjb3Jk
aW5nIHRvIFtSVENXRUItREFUQS1QUk9UT0NPTF0uCisgICAgICAgICAgICBJZiBubyBhdmFpbGFi
bGUgSUQgY291bGQgYmUgZ2VuZXJhdGVkLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgor
ICAgICAgMS4gICAgTGV0IGNoYW5uZWwgYmUgdGhlIFJUQ0RhdGFDaGFubmVsIG9iamVjdCBmb3Ig
d2hpY2ggYW4gSUQgY291bGQgbm90IGJlIGdlbmVyYXRlZC4KKyAgICAgIDIuICAgIFNldCBjaGFu
bmVsJ3MgW1tSZWFkeVN0YXRlXV0gc2xvdCB0byAiY2xvc2VkIi4KKyAgICAgIDMuICAgIEZpcmUg
YW4gZXZlbnQgbmFtZWQgZXJyb3Igd2l0aCBhbiBPcGVyYXRpb25FcnJvciBleGNlcHRpb24gYXQg
Y2hhbm5lbC4KKyAgICAgIDQuICAgIEZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgY2xvc2UgYXQg
Y2hhbm5lbC4KKyAqLworLyogVEVTVCBESVNBQkxFRCAtIGl0IHRha2VzIHNvIGxvbmcsIGl0IHRp
bWVzIG91dC4KK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICBjb25zdCByZXNvbHZlciA9
IG5ldyBSZXNvbHZlcigpOworICAvLyBUYWtlcyB0aGUgRFRMUyBzZXJ2ZXIgcm9sZQorICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgLy8gVGFrZXMgdGhlIERUTFMgY2xp
ZW50IHJvbGUKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKKworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBjb25zdCBk
Y3MgPSBbXTsKKyAgY29uc3QgaWRzID0gbmV3IFVuaXF1ZVNldCgpOworICBsZXQgbkV4cGVjdGVk
ID0gMDsKKyAgbGV0IG5BY3R1YWxDbG9zZXMgPSAwOworICBsZXQgbkFjdHVhbEVycm9ycyA9IDA7
CisKKyAgY29uc3QgbWF5YmVEb25lID0gdC5zdGVwX2Z1bmMoKCkgPT4geworICAgIGlmIChuRXhw
ZWN0ZWQgPT09IG5BY3R1YWxDbG9zZXMgJiYgbkV4cGVjdGVkID09PSBuQWN0dWFsRXJyb3JzKSB7
CisgICAgICByZXNvbHZlci5yZXNvbHZlKCk7CisgICAgfQorICB9KTsKKworICAvLyBDcmVhdGUg
NjU1MzUrMiBjaGFubmVscyAoc2luY2UgNjU1MzUgc3RyZWFtcyBpcyBhIFNIT1VMRCwgd2UgbWF5
IGhhdmUgbGVzcyB0aGFuIHRoYXQuKQorICAvLyBDcmVhdGUgdHdvIGV4dHJhIGNoYW5uZWxzIHRv
IHBvc3NpYmx5IHRyaWdnZXIgdGhlIHN0ZXBzIGluIHRoZSBkZXNjcmlwdGlvbi4KKyAgLy8KKyAg
Ly8gTm90ZTogRm9sbG93aW5nIHRoZSBzcGVjIHN0cmljdGx5IHdvdWxkIGFzc3VtZSB0aGF0IHRo
aXMgY2Fubm90IGZhaWwuIEJ1dCBpbiByZWFsaXR5IGl0IHdpbGwKKyAgLy8gICAgICAgZmFpbCBi
ZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBrbm93cyBob3cgbWFueSBzdHJlYW1zIGl0IHN1cHBv
cnRzLiBXaGF0IGl0IGRvZXNuJ3QKKyAgLy8gICAgICAga25vdyBpcyBob3cgbWFueSBzdHJlYW1z
IHRoZSBvdGhlciBwZWVyIHN1cHBvcnRzIChlLmcuIHdoYXQgd2lsbCBiZSBuZWdvdGlhdGVkKS4K
KyAgZm9yIChsZXQgaSA9IDA7IGkgPCAoblN0cmVhbXMgKyAyKTsgKytpKSB7CisgICAgbGV0IGRj
OworICAgIHRyeSB7CisgICAgICBjb25zdCBwYyA9IGkgJSAyID09PSAxID8gcGMxIDogcGMyOwor
ICAgICAgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgndGhpcyBpcyBnb2luZyB0byBiZSBmdW4n
KTsKKyAgICAgIGRjLm9uY2xvc2UgPSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICAgICsrbkFj
dHVhbENsb3NlczsKKyAgICAgICAgbWF5YmVEb25lKCk7CisgICAgICB9KTsKKyAgICAgIGRjLm9u
ZXJyb3IgPSB0LnN0ZXBfZnVuYygoZSkgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3Rh
bmNlb2YgUlRDRXJyb3IsICdFeHBlY3QgZXJyb3Igb2JqZWN0IHRvIGJlIGluc3RhbmNlIG9mIFJU
Q0Vycm9yJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS5lcnJvciwgJ3NjdHAtZmFpbHVyZScs
ICJFeHBlY3QgZXJyb3IgdG8gYmUgb2YgdHlwZSAnc2N0cC1mYWlsdXJlJyIpOworICAgICAgICAr
K25BY3R1YWxFcnJvcnM7CisgICAgICAgIG1heWJlRG9uZSgpOworICAgICAgfSk7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICdPcGVyYXRpb25FcnJvcics
ICdGYWlsIG9uIGNyZWF0aW9uIHNob3VsZCB0aHJvdyBPcGVyYXRpb25FcnJvcicpOworICAgICAg
YnJlYWs7CisgICAgfQorICAgIGFzc2VydF9lcXVhbHMoZGMuaWQsIG51bGwsICdDaGFubmVsIGlk
IG11c3QgYmUgbnVsbCBiZWZvcmUgRFRMUyByb2xlIGhhcyBiZWVuIGRldGVybWluZWQnKTsKKyAg
ICBhc3NlcnRfbm90X2VxdWFscyhkYy5yZWFkeVN0YXRlLCAnY2xvc2VkJywKKyAgICAgICdDaGFu
bmVsIG1heSBub3QgYmUgY2xvc2VkIGJlZm9yZSBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQnKTsK
KyAgICBkY3MucHVzaChbZGMsIGkgJSAyID09PSAxXSk7CisgIH0KKworICBhd2FpdCBleGNoYW5n
ZU9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7CisgICAgb2ZmZXI6IChvZmZlcikgPT4geworICAgICAg
Ly8gRW5zdXJlIHBjMSB0YWtlcyB0aGUgc2VydmVyIHJvbGUKKyAgICAgIGFzc2VydF90cnVlKG9m
ZmVyLnNkcC5pbmNsdWRlcygnYWN0cGFzcycpIHx8IG9mZmVyLnNkcC5pbmNsdWRlcygncGFzc2l2
ZScpLAorICAgICAgICAncGMxIG11c3QgdGFrZSB0aGUgRFRMUyBzZXJ2ZXIgcm9sZScpOworICAg
ICAgcmV0dXJuIG9mZmVyOworICAgIH0sCisgICAgYW5zd2VyOiAoYW5zd2VyKSA9PiB7CisgICAg
ICAvLyBFbnN1cmUgcGMyIHRha2VzIHRoZSBjbGllbnQgcm9sZQorICAgICAgLy8gTm90ZTogSXQg
dmVyeSBsaWtlbHkgd2lsbCBjaG9vc2UgJ2FjdGl2ZScgaXRzZWxmCisgICAgICBhbnN3ZXIuc2Rw
ID0gYW5zd2VyLnNkcC5yZXBsYWNlKCdhY3RwYXNzJywgJ2FjdGl2ZScpOworICAgICAgYXNzZXJ0
X3RydWUoYW5zd2VyLnNkcC5pbmNsdWRlcygnYWN0aXZlJyksICdwYzIgbXVzdCB0YWtlIHRoZSBE
VExTIGNsaWVudCByb2xlJyk7CisgICAgICByZXR1cm4gYW5zd2VyOworICAgIH0sCisgIH0pOwor
CisgIC8vIFNpbmNlIHRoZSBzcGVjIGRvZXMgbm90IGRlZmluZSBhIHNwZWNpZmljIG9yZGVyIHRv
IHdoaWNoIGNoYW5uZWxzIG1heSBmYWlsIGlmIGFuIElEIGNvdWxkCisgIC8vIG5vdCBiZSBnZW5l
cmF0ZWQsIGFueSBvZiB0aGUgY2hhbm5lbHMgbWF5IGJlIGFmZmVjdGVkIGJ5IHRoZSBzdGVwcyBv
ZiB0aGUgZGVzY3JpcHRpb24uCisgIGZvciAoY29uc3QgW2RjLCBvZGRdIG9mIGRjcykgeworICAg
IGlmIChkYy5yZWFkeVN0YXRlICE9PSAnY2xvc2VkJykgeworICAgICAgYXNzZXJ0X2VxdWFscyhk
Yy5pZCAlIDIsIG9kZCA/IDEgOiAwLAorICAgICAgICBgQ2hhbm5lbHMgY3JlYXRlZCBieSB0aGUg
RFRMUyAke29kZCA/ICdzZXJ2ZXInIDogJ2NsaWVudCd9IHJvbGUgbXVzdCBiZQorICAgICAgICAk
e29kZCA/ICdvZGQnIDogJ2V2ZW4nfSAod2FzICR7ZGMuaWR9KWApOworICAgICAgaWRzLmFkZChk
Yy5pZCwgYENoYW5uZWwgSUQgJHtkYy5pZH0gc2hvdWxkIGJlIHVuaXF1ZWApOworICAgIH0gZWxz
ZSB7CisgICAgICArK25FeHBlY3RlZDsKKyAgICB9CisgIH0KKworICAvLyBUcnkgY3JlYXRpbmcg
b25lIGZ1cnRoZXIgY2hhbm5lbCBvbiBib3RoIHNpZGVzLiBUaGUgYXR0ZW1wdCBzaG91bGQgZmFp
bCBzaW5jZSBhbGwgSURzIGFyZQorICAvLyB0YWtlbi4gSWYgb25lIElEIGlzIGF2YWlsYWJsZSwg
dGhlIGltcGxlbWVudGF0aW9uIHByb2JhYmx5IG1pc2NvdW50cyAob3IgSSBkaWQgaW4gdGhlIHRl
c3QpLgorICBhc3NlcnRfdGhyb3dzX2RvbSgnT3BlcmF0aW9uRXJyb3InLCAoKSA9PgorICAgIHBj
MS5jcmVhdGVEYXRhQ2hhbm5lbCgndGhpcyBpcyB0b28gZXhoYXVzdGluZyEnKSk7CisgIGFzc2Vy
dF90aHJvd3NfZG9tKCdPcGVyYXRpb25FcnJvcicsICgpID0+CisgICAgcGMyLmNyZWF0ZURhdGFD
aGFubmVsKCd0aGlzIGlzIHRvbyBleGhhdXN0aW5nIScpKTsKKworICBtYXliZURvbmUoKTsKKyAg
YXdhaXQgcmVzb2x2ZXI7Cit9LCAnQ2hhbm5lbCBJRCBleGhhdXN0aW9uIGhhbmRsaW5nIChiZWZv
cmUgYW5kIGFmdGVyIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCknKTsKKworRU5EIERJU0FCTEVE
IFRFU1QgKi8KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWJsb2Itb3Jk
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1ibG9iLW9yZGVyLWV4cGVjdGVkLnR4dApp
bmRleCBlMzg3MTBmNzBlMzU1NTQwZTdlMjdjNjBmOWVjYTk1Y2ZiODM3Yjc5Li42MzcwMjJmYjc2
ZjExZGY1NTllNjVjZDI0YTUwOTM3YjViMTg3M2UxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5k
LWJsb2Itb3JkZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQtYmxvYi1vcmRlci1l
eHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACiAKLVBBU1MgRGF0YSBjaGFubmVsIHNob3VsZCBz
ZW5kIGRhdGEgZm9sbG93aW5nIHRoZSBvcmRlciBvZiB0aGUgc2VuZCBjYWxsIAorUEFTUyBEYXRh
Y2hhbm5lbCBzaG91bGQgc2VuZCBkYXRhIGZvbGxvd2luZyB0aGUgb3JkZXIgb2YgdGhlIHNlbmQg
Y2FsbCAKK1BBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgc2VuZCBkYXRhIGZvbGxv
d2luZyB0aGUgb3JkZXIgb2YgdGhlIHNlbmQgY2FsbCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwt
c2VuZC1ibG9iLW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWJsb2Itb3JkZXIuaHRtbAppbmRl
eCAyMzg1NDA4Y2NiNTVlNGE0YTI0NmNhOWVhNmM3ZjNhYjM0MTkyMGI1Li4zZmNmMTE2YmM4ZDA1
MDM2YmMwNzEzNmFkNzJiMzQzMGI0ODUyNDk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWJs
b2Itb3JkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLWJsb2Itb3JkZXIuaHRtbApAQCAtNSwz
MyArNSwyNyBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIFtjaGFubmVs
MSwgY2hhbm5lbDJdID0gYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWlyKCk7CiAKLSAgICBsZXQg
ZG9uZTsKLSAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBkb25lID0g
cmVzb2x2ZSk7Citmb3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwg
aWQ6IDB9XSkgeworICBjb25zdCBtb2RlID0gYCR7b3B0aW9ucy5uZWdvdGlhdGVkPyAiTmVnb3Rp
YXRlZCBkIiA6ICJEIn1hdGFjaGFubmVsYDsKIAorICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CiAgICAgY29uc3QgZGF0YTEgPSBuZXcgQmxvYihbJ2Jsb2InXSk7CiAgICAgY29uc3QgZGF0YTFT
aXplID0gZGF0YTEuc2l6ZTsKICAgICBjb25zdCBkYXRhMiA9IG5ldyBBcnJheUJ1ZmZlcig4KTsK
ICAgICBjb25zdCBkYXRhMlNpemUgPSBkYXRhMi5ieXRlTGVuZ3RoOwogCi0gICAgbGV0IGZpcnN0
TWVzc2FnZSA9IHRydWU7Ci0KKyAgICBjb25zdCBbY2hhbm5lbDEsIGNoYW5uZWwyXSA9IGF3YWl0
IGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKTsKICAgICBjaGFubmVsMi5iaW5hcnlU
eXBlID0gImFycmF5YnVmZmVyIjsKLSAgICBjaGFubmVsMi5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVu
YygoZSkgPT4gewotICAgICAgICBpZiAoZmlyc3RNZXNzYWdlKSB7Ci0gICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUuZGF0YS5ieXRlTGVuZ3RoLCBkYXRhMVNpemUpOwotICAgICAgICAgICAgZmly
c3RNZXNzYWdlID0gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuYnl0ZUxlbmd0aCwgZGF0YTJTaXplKTsKLSAgICAgICAg
ZG9uZSgpOwotICAgIH0pOwogCiAgICAgY2hhbm5lbDEuc2VuZChkYXRhMSk7CiAgICAgY2hhbm5l
bDEuc2VuZChkYXRhMik7CiAKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0sICdEYXRhIGNoYW5uZWwg
c2hvdWxkIHNlbmQgZGF0YSBmb2xsb3dpbmcgdGhlIG9yZGVyIG9mIHRoZSBzZW5kIGNhbGwnKTsK
KyAgICBsZXQgZSA9IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gY2hhbm5lbDIub25tZXNzYWdlID0g
cik7CisgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuYnl0ZUxlbmd0aCwgZGF0YTFTaXplKTsKKwor
ICAgIGUgPSBhd2FpdCBuZXcgUHJvbWlzZShyID0+IGNoYW5uZWwyLm9ubWVzc2FnZSA9IHIpOwor
ICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmJ5dGVMZW5ndGgsIGRhdGEyU2l6ZSk7CisgIH0sIGAk
e21vZGV9IHNob3VsZCBzZW5kIGRhdGEgZm9sbG93aW5nIHRoZSBvcmRlciBvZiB0aGUgc2VuZCBj
YWxsYCk7Cit9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtc2VuZC1leHBlY3RlZC50eHQKaW5kZXggYTQ4ZTNmMmFmZTVhYWJlMzE4
ZDgwMzU2MzNlNTNmOTE0MGNlOTBlOC4uYTUzZWIwMTU4N2I1ZWU3MWZlNTg5NWY1NjM1Y2NkZTMw
MGFiMjQ4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNo
YW5uZWwtc2VuZC1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMjMgQEAKIAogUEFTUyBDYWxsaW5n
IHNlbmQoKSB3aGVuIGRhdGEgY2hhbm5lbCBpcyBpbiBjb25uZWN0aW5nIHN0YXRlIHNob3VsZCB0
aHJvdyBJbnZhbGlkU3RhdGVFcnJvciAKLVBBU1MgRGF0YSBjaGFubmVsIHNob3VsZCBiZSBhYmxl
IHRvIHNlbmQgc2ltcGxlIHN0cmluZyBhbmQgcmVjZWl2ZSBhcyBzdHJpbmcgCi1QQVNTIERhdGEg
Y2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHVuaWNvZGUgc3RyaW5nIGFuZCByZWNlaXZl
IGFzIHVuaWNvZGUgc3RyaW5nIAotUEFTUyBEYXRhIGNoYW5uZWwgc2hvdWxkIGlnbm9yZSBiaW5h
cnlUeXBlIGFuZCBhbHdheXMgcmVjZWl2ZSBzdHJpbmcgbWVzc2FnZSBhcyBzdHJpbmcgCi1QQVNT
IERhdGEgY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIFVpbnQ4QXJyYXkgbWVzc2FnZSBh
bmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlciAKLVBBU1MgRGF0YSBjaGFubmVsIHNob3VsZCBiZSBh
YmxlIHRvIHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZl
ciAKLVBBU1MgRGF0YSBjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQmxvYiBtZXNzYWdl
IGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyIAotUEFTUyBEYXRhIGNoYW5uZWwgc2hvdWxkIGJl
IGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEJsb2IgCi1G
QUlMIERhdGEgY2hhbm5lbCBiaW5hcnlUeXBlIHNob3VsZCByZWNlaXZlIG1lc3NhZ2UgYXMgQmxv
YiBieSBkZWZhdWx0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0aWFsIGJpbmFyeVR5cGUgdmFs
dWUgdG8gYmUgYmxvYiBleHBlY3RlZCAiYmxvYiIgYnV0IGdvdCAiYXJyYXlidWZmZXIiCi1QQVNT
IFNlbmRpbmcgbXVsdGlwbGUgbWVzc2FnZXMgd2l0aCBkaWZmZXJlbnQgdHlwZXMgc2hvdWxkIHN1
Y2NlZWQgYW5kIGJlIHJlY2VpdmVkIAorUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0
byBzZW5kIHNpbXBsZSBzdHJpbmcgYW5kIHJlY2VpdmUgYXMgc3RyaW5nIAorUEFTUyBEYXRhY2hh
bm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHVuaWNvZGUgc3RyaW5nIGFuZCByZWNlaXZlIGFz
IHVuaWNvZGUgc3RyaW5nIAorUEFTUyBEYXRhY2hhbm5lbCBzaG91bGQgaWdub3JlIGJpbmFyeVR5
cGUgYW5kIGFsd2F5cyByZWNlaXZlIHN0cmluZyBtZXNzYWdlIGFzIHN0cmluZyAKK1BBU1MgRGF0
YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBVaW50OEFycmF5IG1lc3NhZ2UgYW5kIHJl
Y2VpdmUgYXMgQXJyYXlCdWZmZXIgCitQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRv
IHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlciAKK1BB
U1MgRGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBCbG9iIG1lc3NhZ2UgYW5kIHJl
Y2VpdmUgYXMgQXJyYXlCdWZmZXIgCitQQVNTIERhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRv
IHNlbmQgQXJyYXlCdWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBCbG9iIAorRkFJTCBEYXRh
Y2hhbm5lbCBiaW5hcnlUeXBlIHNob3VsZCByZWNlaXZlIG1lc3NhZ2UgYXMgQmxvYiBieSBkZWZh
dWx0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0aWFsIGJpbmFyeVR5cGUgdmFsdWUgdG8gYmUg
YmxvYiBleHBlY3RlZCAiYmxvYiIgYnV0IGdvdCAiYXJyYXlidWZmZXIiCitQQVNTIERhdGFjaGFu
bmVsIHNlbmRpbmcgbXVsdGlwbGUgbWVzc2FnZXMgd2l0aCBkaWZmZXJlbnQgdHlwZXMgc2hvdWxk
IHN1Y2NlZWQgYW5kIGJlIHJlY2VpdmVkIAorRkFJTCBEYXRhY2hhbm5lbCBzZW5kKCkgdXAgdG8g
bWF4IHNpemUgc2hvdWxkIHN1Y2NlZWQsIGFib3ZlIG1heCBzaXplIHNob3VsZCBmYWlsIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMS5zY3RwLm1heE1l
c3NhZ2VTaXplJykiCitQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGFibGUg
dG8gc2VuZCBzaW1wbGUgc3RyaW5nIGFuZCByZWNlaXZlIGFzIHN0cmluZyAKK1BBU1MgTmVnb3Rp
YXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHVuaWNvZGUgc3RyaW5nIGFu
ZCByZWNlaXZlIGFzIHVuaWNvZGUgc3RyaW5nIAorUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVs
IHNob3VsZCBpZ25vcmUgYmluYXJ5VHlwZSBhbmQgYWx3YXlzIHJlY2VpdmUgc3RyaW5nIG1lc3Nh
Z2UgYXMgc3RyaW5nIAorUEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxl
IHRvIHNlbmQgVWludDhBcnJheSBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEFycmF5QnVmZmVyIAor
UEFTUyBOZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgQXJyYXlC
dWZmZXIgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlciAKK1BBU1MgTmVnb3RpYXRl
ZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEJsb2IgbWVzc2FnZSBhbmQgcmVj
ZWl2ZSBhcyBBcnJheUJ1ZmZlciAKK1BBU1MgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQg
YmUgYWJsZSB0byBzZW5kIEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQmxvYiAK
K0ZBSUwgTmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBiaW5hcnlUeXBlIHNob3VsZCByZWNlaXZlIG1l
c3NhZ2UgYXMgQmxvYiBieSBkZWZhdWx0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBpbml0aWFsIGJp
bmFyeVR5cGUgdmFsdWUgdG8gYmUgYmxvYiBleHBlY3RlZCAiYmxvYiIgYnV0IGdvdCAiYXJyYXli
dWZmZXIiCitQQVNTIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2VuZGluZyBtdWx0aXBsZSBtZXNz
YWdlcyB3aXRoIGRpZmZlcmVudCB0eXBlcyBzaG91bGQgc3VjY2VlZCBhbmQgYmUgcmVjZWl2ZWQg
CitGQUlMIE5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2VuZCgpIHVwIHRvIG1heCBzaXplIHNob3Vs
ZCBzdWNjZWVkLCBhYm92ZSBtYXggc2l6ZSBzaG91bGQgZmFpbCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdwYzEuc2N0cC5tYXhNZXNzYWdlU2l6ZScpIgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5kLmh0bWwKaW5k
ZXggY2I4YjRlZGMzZmFlMTUwMWZlN2U3MTc2MTVkNjBjYjU0YWMwMDNjMS4uMTk1MjkyMWZiZjI2
ZjJjNmU5NTQ2MDAwYTFlOTg0M2I0NDA4MjRlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQuaHRtbApAQCAtMSw2MCArMSw2NCBAQAogPCFkb2N0eXBl
IGh0bWw+CiA8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyI+CiA8dGl0bGU+UlRDRGF0YUNoYW5uZWwucHJvdG90eXBlLnNlbmQ8L3RpdGxlPgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgot
ICAndXNlIHN0cmljdCc7Ci0KLSAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVk
aXRvciBkcmFmdDoKLSAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZl
cy8yMDE3MDYwNS93ZWJydGMuaHRtbAotCi0gIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0
aW9ucyBhcmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgotICAvLyAg
Y3JlYXRlRGF0YUNoYW5uZWxQYWlyCi0gIC8vICBhd2FpdE1lc3NhZ2UKLSAgLy8gIGJsb2JUb0Fy
cmF5QnVmZmVyCi0gIC8vICBhc3NlcnRfZXF1YWxzX3R5cGVkX2FycmF5Ci0KLSAgLyoKLSAgICA2
LjIuICBSVENEYXRhQ2hhbm5lbAotICAgICAgaW50ZXJmYWNlIFJUQ0RhdGFDaGFubmVsIDogRXZl
bnRUYXJnZXQgewotICAgICAgICAuLi4KLSAgICAgICAgcmVhZG9ubHkgIGF0dHJpYnV0ZSBSVENE
YXRhQ2hhbm5lbFN0YXRlIHJlYWR5U3RhdGU7Ci0gICAgICAgIHJlYWRvbmx5ICBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyAgICAgICBidWZmZXJlZEFtb3VudDsKLSAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgIG9ubWVzc2FnZTsKLSAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgIGJpbmFyeVR5cGU7Ci0KLSAgICAgICAgdm9p
ZCBzZW5kKFVTVlN0cmluZyBkYXRhKTsKLSAgICAgICAgdm9pZCBzZW5kKEJsb2IgZGF0YSk7Ci0g
ICAgICAgIHZvaWQgc2VuZChBcnJheUJ1ZmZlciBkYXRhKTsKLSAgICAgICAgdm9pZCBzZW5kKEFy
cmF5QnVmZmVyVmlldyBkYXRhKTsKLSAgICAgIH07Ci0gICAqLwotCi0gIC8vIFNpbXBsZSBBU0NJ
SSBlbmNvZGVkIHN0cmluZwotICBjb25zdCBoZWxsb1N0cmluZyA9ICdoZWxsbyc7Ci0gIC8vIEFT
Q0lJIGVuY29kZWQgYnVmZmVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzdHJpbmcKLSAgY29uc3Qg
aGVsbG9CdWZmZXIgPSBVaW50OEFycmF5Lm9mKDB4NjgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmYp
OwotICBjb25zdCBoZWxsb0Jsb2IgPSBuZXcgQmxvYihbaGVsbG9CdWZmZXJdKTsKLQotICAvLyBV
bmljb2RlIHN0cmluZyB3aXRoIG11bHRpcGxlIGNvZGUgdW5pdHMKLSAgY29uc3QgdW5pY29kZVN0
cmluZyA9ICfkuJbnlYzkvaDlpb0nOwotICAvLyBVVEYtOCBlbmNvZGVkIGJ1ZmZlciByZXByZXNl
bnRhdGlvbiBvZiB0aGUgc3RyaW5nCi0gIGNvbnN0IHVuaWNvZGVCdWZmZXIgPSBVaW50OEFycmF5
Lm9mKAotICAgIDB4ZTQsIDB4YjgsIDB4OTYsIDB4ZTcsIDB4OTUsIDB4OGMsCi0gICAgMHhlNCwg
MHhiZCwgMHhhMCwgMHhlNSwgMHhhNSwgMHhiZCk7Ci0KLSAgLyoKLSAgICAgIDYuMi4gIHNlbmQo
KQotICAgICAgICAyLiAgSWYgY2hhbm5lbCdzIHJlYWR5U3RhdGUgYXR0cmlidXRlIGlzIGNvbm5l
Y3RpbmcsIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yLgotICAgKi8KLSAgdGVzdCh0ID0+IHsK
LSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIGNvbnN0IGNoYW5u
ZWwgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOwotICAgIGFzc2VydF9lcXVhbHMoY2hh
bm5lbC5yZWFkeVN0YXRlLCAnY29ubmVjdGluZycpOwotICAgIGFzc2VydF90aHJvd3MoJ0ludmFs
aWRTdGF0ZUVycm9yJywgKCkgPT4gY2hhbm5lbC5zZW5kKGhlbGxvU3RyaW5nKSk7Ci0gIH0sICdD
YWxsaW5nIHNlbmQoKSB3aGVuIGRhdGEgY2hhbm5lbCBpcyBpbiBjb25uZWN0aW5nIHN0YXRlIHNo
b3VsZCB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvcicpOworJ3VzZSBzdHJpY3QnOworCisvLyBUZXN0
IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgorLy8gaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtbAorCisvLyBU
aGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25u
ZWN0aW9uLWhlbHBlci5qczoKKy8vICBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIKKy8vICBhd2FpdE1l
c3NhZ2UKKy8vICBibG9iVG9BcnJheUJ1ZmZlcgorLy8gIGFzc2VydF9lcXVhbHNfdHlwZWRfYXJy
YXkKKworLyoKKyAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKKyAgICBpbnRlcmZhY2UgUlRDRGF0YUNo
YW5uZWwgOiBFdmVudFRhcmdldCB7CisgICAgICAuLi4KKyAgICAgIHJlYWRvbmx5ICBhdHRyaWJ1
dGUgUlRDRGF0YUNoYW5uZWxTdGF0ZSByZWFkeVN0YXRlOworICAgICAgcmVhZG9ubHkgIGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nICAgICAgIGJ1ZmZlcmVkQW1vdW50OworICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgIG9ubWVzc2FnZTsKKyAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICBiaW5hcnlUeXBlOworCisgICAgICB2b2lk
IHNlbmQoVVNWU3RyaW5nIGRhdGEpOworICAgICAgdm9pZCBzZW5kKEJsb2IgZGF0YSk7CisgICAg
ICB2b2lkIHNlbmQoQXJyYXlCdWZmZXIgZGF0YSk7CisgICAgICB2b2lkIHNlbmQoQXJyYXlCdWZm
ZXJWaWV3IGRhdGEpOworICAgIH07CisgKi8KKworLy8gU2ltcGxlIEFTQ0lJIGVuY29kZWQgc3Ry
aW5nCitjb25zdCBoZWxsb1N0cmluZyA9ICdoZWxsbyc7CisvLyBBU0NJSSBlbmNvZGVkIGJ1ZmZl
ciByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RyaW5nCitjb25zdCBoZWxsb0J1ZmZlciA9IFVpbnQ4
QXJyYXkub2YoMHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2Zik7Citjb25zdCBoZWxsb0Jsb2Ig
PSBuZXcgQmxvYihbaGVsbG9CdWZmZXJdKTsKKworLy8gVW5pY29kZSBzdHJpbmcgd2l0aCBtdWx0
aXBsZSBjb2RlIHVuaXRzCitjb25zdCB1bmljb2RlU3RyaW5nID0gJ+S4lueVjOS9oOWlvSc7Cisv
LyBVVEYtOCBlbmNvZGVkIGJ1ZmZlciByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RyaW5nCitjb25z
dCB1bmljb2RlQnVmZmVyID0gVWludDhBcnJheS5vZigKKyAgMHhlNCwgMHhiOCwgMHg5NiwgMHhl
NywgMHg5NSwgMHg4YywKKyAgMHhlNCwgMHhiZCwgMHhhMCwgMHhlNSwgMHhhNSwgMHhiZCk7CisK
Ky8qCisgICAgNi4yLiAgc2VuZCgpCisgICAgICAyLiAgSWYgY2hhbm5lbCdzIHJlYWR5U3RhdGUg
YXR0cmlidXRlIGlzIGNvbm5lY3RpbmcsIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yLgorICov
Cit0ZXN0KHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBj
b25zdCBjaGFubmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhjaGFubmVsLnJlYWR5U3RhdGUsICdjb25uZWN0aW5nJyk7CisgIGFzc2VydF90aHJvd3Nf
ZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGNoYW5uZWwuc2VuZChoZWxsb1N0cmluZykp
OworfSwgJ0NhbGxpbmcgc2VuZCgpIHdoZW4gZGF0YSBjaGFubmVsIGlzIGluIGNvbm5lY3Rpbmcg
c3RhdGUgc2hvdWxkIHRocm93IEludmFsaWRTdGF0ZUVycm9yJyk7CisKK2ZvciAoY29uc3Qgb3B0
aW9ucyBvZiBbe30sIHtuZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CisgIGNvbnN0IG1vZGUg
PSBgJHtvcHRpb25zLm5lZ290aWF0ZWQ/ICJOZWdvdGlhdGVkIGQiIDogIkQifWF0YWNoYW5uZWxg
OwogCiAgIC8qCiAgICAgNi4yLiAgc2VuZCgpCkBAIC03MSw3ICs3NSw3IEBACiAgICAgICAgICAg
ICBhdHRyaWJ1dGUgdG8gZGF0YS4KICAgICovCiAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBy
ZXR1cm4gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKCkKKyAgICByZXR1cm4gY3JlYXRlRGF0YUNoYW5u
ZWxQYWlyKHQsIG9wdGlvbnMpCiAgICAgLnRoZW4oKFtjaGFubmVsMSwgY2hhbm5lbDJdKSA9PiB7
CiAgICAgICBjaGFubmVsMS5zZW5kKGhlbGxvU3RyaW5nKTsKICAgICAgIHJldHVybiBhd2FpdE1l
c3NhZ2UoY2hhbm5lbDIpCkBAIC04MSwxMCArODUsMTAgQEAKIAogICAgICAgYXNzZXJ0X2VxdWFs
cyhtZXNzYWdlLCBoZWxsb1N0cmluZyk7CiAgICAgfSk7Ci0gIH0sICdEYXRhIGNoYW5uZWwgc2hv
dWxkIGJlIGFibGUgdG8gc2VuZCBzaW1wbGUgc3RyaW5nIGFuZCByZWNlaXZlIGFzIHN0cmluZycp
OworICB9LCBgJHttb2RlfSBzaG91bGQgYmUgYWJsZSB0byBzZW5kIHNpbXBsZSBzdHJpbmcgYW5k
IHJlY2VpdmUgYXMgc3RyaW5nYCk7CiAKICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVy
biBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIoKQorICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBh
aXIodCwgb3B0aW9ucykKICAgICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsKICAg
ICAgIGNoYW5uZWwxLnNlbmQodW5pY29kZVN0cmluZyk7CiAgICAgICByZXR1cm4gYXdhaXRNZXNz
YWdlKGNoYW5uZWwyKQpAQCAtOTQsOSArOTgsOSBAQAogCiAgICAgICBhc3NlcnRfZXF1YWxzKG1l
c3NhZ2UsIHVuaWNvZGVTdHJpbmcpOwogICAgIH0pOwotICB9LCAnRGF0YSBjaGFubmVsIHNob3Vs
ZCBiZSBhYmxlIHRvIHNlbmQgdW5pY29kZSBzdHJpbmcgYW5kIHJlY2VpdmUgYXMgdW5pY29kZSBz
dHJpbmcnKTsKKyAgfSwgYCR7bW9kZX0gc2hvdWxkIGJlIGFibGUgdG8gc2VuZCB1bmljb2RlIHN0
cmluZyBhbmQgcmVjZWl2ZSBhcyB1bmljb2RlIHN0cmluZ2ApOwogICBwcm9taXNlX3Rlc3QodCA9
PiB7Ci0gICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcigpCisgICAgcmV0dXJuIGNyZWF0
ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKQogICAgIC50aGVuKChbY2hhbm5lbDEsIGNoYW5u
ZWwyXSkgPT4gewogICAgICAgY2hhbm5lbDIuYmluYXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7CiAg
ICAgICBjaGFubmVsMS5zZW5kKGhlbGxvU3RyaW5nKTsKQEAgLTEwNyw3ICsxMTEsNyBAQAogCiAg
ICAgICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UsIGhlbGxvU3RyaW5nKTsKICAgICB9KTsKLSAgfSwg
J0RhdGEgY2hhbm5lbCBzaG91bGQgaWdub3JlIGJpbmFyeVR5cGUgYW5kIGFsd2F5cyByZWNlaXZl
IHN0cmluZyBtZXNzYWdlIGFzIHN0cmluZycpOworICB9LCBgJHttb2RlfSBzaG91bGQgaWdub3Jl
IGJpbmFyeVR5cGUgYW5kIGFsd2F5cyByZWNlaXZlIHN0cmluZyBtZXNzYWdlIGFzIHN0cmluZ2Ap
OwogCiAgIC8qCiAgICAgNi4yLiBzZW5kKCkKQEAgLTEzMSw3ICsxMzUsNyBAQAogICAgICAgICBG
bG9hdDMyQXJyYXkgb3IgRmxvYXQ2NEFycmF5IG9yIERhdGFWaWV3KSBBcnJheUJ1ZmZlclZpZXc7
CiAgICAqLwogICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFu
bmVsUGFpcigpCisgICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKQog
ICAgIC50aGVuKChbY2hhbm5lbDEsIGNoYW5uZWwyXSkgPT4gewogICAgICAgY2hhbm5lbDIuYmlu
YXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7CiAgICAgICBjaGFubmVsMS5zZW5kKGhlbGxvQnVmZmVy
KTsKQEAgLTE0Miw3ICsxNDYsNyBAQAogCiAgICAgICBhc3NlcnRfZXF1YWxzX3R5cGVkX2FycmF5
KG1lc3NhZ2VCdWZmZXIsIGhlbGxvQnVmZmVyLmJ1ZmZlcik7CiAgICAgfSk7Ci0gIH0sICdEYXRh
IGNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBVaW50OEFycmF5IG1lc3NhZ2UgYW5kIHJl
Y2VpdmUgYXMgQXJyYXlCdWZmZXInKTsKKyAgfSwgYCR7bW9kZX0gc2hvdWxkIGJlIGFibGUgdG8g
c2VuZCBVaW50OEFycmF5IG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXJgKTsKIAog
ICAvKgogICAgIDYuMi4gc2VuZCgpCkBAIC0xNTMsNyArMTU3LDcgQEAKICAgICAgICAgICAgIEFy
cmF5QnVmZmVyIGluIGJ5dGVzLgogICAgKi8KICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJl
dHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIoKQorICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5l
bFBhaXIodCwgb3B0aW9ucykKICAgICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsK
ICAgICAgIGNoYW5uZWwyLmJpbmFyeVR5cGUgPSAnYXJyYXlidWZmZXInOwogICAgICAgY2hhbm5l
bDEuc2VuZChoZWxsb0J1ZmZlci5idWZmZXIpOwpAQCAtMTY0LDcgKzE2OCw3IEBACiAKICAgICAg
IGFzc2VydF9lcXVhbHNfdHlwZWRfYXJyYXkobWVzc2FnZUJ1ZmZlciwgaGVsbG9CdWZmZXIuYnVm
ZmVyKTsKICAgICB9KTsKLSAgfSwgJ0RhdGEgY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5k
IEFycmF5QnVmZmVyIG1lc3NhZ2UgYW5kIHJlY2VpdmUgYXMgQXJyYXlCdWZmZXInKTsKKyAgfSwg
YCR7bW9kZX0gc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCBy
ZWNlaXZlIGFzIEFycmF5QnVmZmVyYCk7CiAKICAgLyoKICAgICA2LjIuIHNlbmQoKQpAQCAtMTc0
LDcgKzE3OCw3IEBACiAgICAgICAgICAgICB0aGUgYnVmZmVyZWRBbW91bnQgYXR0cmlidXRlIGJ5
IHRoZSBzaXplIG9mIGRhdGEsIGluIGJ5dGVzLgogICAgKi8KICAgcHJvbWlzZV90ZXN0KHQgPT4g
ewotICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIoKQorICAgIHJldHVybiBjcmVhdGVE
YXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucykKICAgICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVs
Ml0pID0+IHsKICAgICAgIGNoYW5uZWwyLmJpbmFyeVR5cGUgPSAnYXJyYXlidWZmZXInOwogICAg
ICAgY2hhbm5lbDEuc2VuZChoZWxsb0Jsb2IpOwpAQCAtMTg1LDcgKzE4OSw3IEBACiAKICAgICAg
IGFzc2VydF9lcXVhbHNfdHlwZWRfYXJyYXkobWVzc2FnZUJ1ZmZlciwgaGVsbG9CdWZmZXIuYnVm
ZmVyKTsKICAgICB9KTsKLSAgfSwgJ0RhdGEgY2hhbm5lbCBzaG91bGQgYmUgYWJsZSB0byBzZW5k
IEJsb2IgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJheUJ1ZmZlcicpOworICB9LCBgJHttb2Rl
fSBzaG91bGQgYmUgYWJsZSB0byBzZW5kIEJsb2IgbWVzc2FnZSBhbmQgcmVjZWl2ZSBhcyBBcnJh
eUJ1ZmZlcmApOwogCiAgIC8qCiAgICAgW1dlYlNvY2tldF0KQEAgLTE5NSw3ICsxOTksNyBAQAog
ICAgICAgICAgICAgdG8gYSBuZXcgQmxvYiBvYmplY3QgdGhhdCByZXByZXNlbnRzIGRhdGEgYXMg
aXRzIHJhdyBkYXRhLgogICAgKi8KICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBj
cmVhdGVEYXRhQ2hhbm5lbFBhaXIoKQorICAgIHJldHVybiBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIo
dCwgb3B0aW9ucykKICAgICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsKICAgICAg
IGNoYW5uZWwyLmJpbmFyeVR5cGUgPSAnYmxvYic7CiAgICAgICBjaGFubmVsMS5zZW5kKGhlbGxv
QnVmZmVyKTsKQEAgLTIxMiw3ICsyMTYsNyBAQAogCiAgICAgICBhc3NlcnRfZXF1YWxzX3R5cGVk
X2FycmF5KG1lc3NhZ2VCdWZmZXIsIGhlbGxvQnVmZmVyLmJ1ZmZlcik7CiAgICAgfSk7Ci0gIH0s
ICdEYXRhIGNoYW5uZWwgc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdl
IGFuZCByZWNlaXZlIGFzIEJsb2InKTsKKyAgfSwgYCR7bW9kZX0gc2hvdWxkIGJlIGFibGUgdG8g
c2VuZCBBcnJheUJ1ZmZlciBtZXNzYWdlIGFuZCByZWNlaXZlIGFzIEJsb2JgKTsKIAogICAvKgog
ICAgIDYuMi4gIFJUQ0RhdGFDaGFubmVsCkBAIC0yMjMsNyArMjI3LDcgQEAKICAgICAgICAgYmUg
aW5pdGlhbGl6ZWQgdG8gdGhlIHN0cmluZyAiYmxvYiIuCiAgICAqLwogICBwcm9taXNlX3Rlc3Qo
dCA9PiB7Ci0gICAgcmV0dXJuIGNyZWF0ZURhdGFDaGFubmVsUGFpcigpCisgICAgcmV0dXJuIGNy
ZWF0ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zKQogICAgIC50aGVuKChbY2hhbm5lbDEsIGNo
YW5uZWwyXSkgPT4gewogICAgICAgYXNzZXJ0X2VxdWFscyhjaGFubmVsMi5iaW5hcnlUeXBlLCAn
YmxvYicsCiAgICAgICAgICdFeHBlY3QgaW5pdGlhbCBiaW5hcnlUeXBlIHZhbHVlIHRvIGJlIGJs
b2InKTsKQEAgLTI0Miw3ICsyNDYsNyBAQAogCiAgICAgICBhc3NlcnRfZXF1YWxzX3R5cGVkX2Fy
cmF5KG1lc3NhZ2VCdWZmZXIsIGhlbGxvQnVmZmVyLmJ1ZmZlcik7CiAgICAgfSk7Ci0gIH0sICdE
YXRhIGNoYW5uZWwgYmluYXJ5VHlwZSBzaG91bGQgcmVjZWl2ZSBtZXNzYWdlIGFzIEJsb2IgYnkg
ZGVmYXVsdCcpOworICB9LCBgJHttb2RlfSBiaW5hcnlUeXBlIHNob3VsZCByZWNlaXZlIG1lc3Nh
Z2UgYXMgQmxvYiBieSBkZWZhdWx0YCk7CiAKICAgLy8gVGVzdCBzZW5kaW5nIDMgbWVzc2FnZXM6
IGhlbGxvQnVmZmVyLCB1bmljb2RlU3RyaW5nLCBoZWxsb0Jsb2IKICAgYXN5bmNfdGVzdCh0ID0+
IHsKQEAgLTI2MSw3ICsyNjUsNyBAQAogICAgICAgfQogICAgIH0pOwogCi0gICAgY3JlYXRlRGF0
YUNoYW5uZWxQYWlyKCkKKyAgICBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucykKICAg
ICAudGhlbigoW2NoYW5uZWwxLCBjaGFubmVsMl0pID0+IHsKICAgICAgIGNoYW5uZWwyLmJpbmFy
eVR5cGUgPSAnYXJyYXlidWZmZXInOwogICAgICAgY2hhbm5lbDIuYWRkRXZlbnRMaXN0ZW5lcign
bWVzc2FnZScsIG9uTWVzc2FnZSk7CkBAIC0yNzIsNyArMjc2LDcgQEAKIAogICAgIH0pLmNhdGNo
KHQuc3RlcF9mdW5jKGVyciA9PgogICAgICAgYXNzZXJ0X3VucmVhY2hlZChgVW5leHBlY3RlZCBw
cm9taXNlIHJlamVjdGlvbjogJHtlcnJ9YCkpKTsKLSAgfSwgJ1NlbmRpbmcgbXVsdGlwbGUgbWVz
c2FnZXMgd2l0aCBkaWZmZXJlbnQgdHlwZXMgc2hvdWxkIHN1Y2NlZWQgYW5kIGJlIHJlY2VpdmVk
Jyk7CisgIH0sIGAke21vZGV9IHNlbmRpbmcgbXVsdGlwbGUgbWVzc2FnZXMgd2l0aCBkaWZmZXJl
bnQgdHlwZXMgc2hvdWxkIHN1Y2NlZWQgYW5kIGJlIHJlY2VpdmVkYCk7CiAKICAgLyoKICAgICBb
RGVmZXJyZWRdCkBAIC0yOTUsNSArMjk5LDI0IEBACiAgICAgICBhc3NlcnRfZXF1YWxzKGNoYW5u
ZWwucmVhZHlTdGF0ZSwgJ2Nsb3NpbmcnKTsKICAgICAgIGNoYW5uZWwuc2VuZChoZWxsb1N0cmlu
Zyk7CiAgICAgfSwgJ0NhbGxpbmcgc2VuZCgpIHdoZW4gZGF0YSBjaGFubmVsIGlzIGluIGNsb3Np
bmcgc3RhdGUgc2hvdWxkIHN1Y2NlZWQnKTsKLSAgICovCisgICovCisKKyAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgIGxldCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBsZXQgW2NoYW5uZWwxLCBj
aGFubmVsMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucywgcGMxKTsK
KyAgICBsZXQgbWVzc2FnZSA9ICdoZWxsbzg4OCc7IC8vIDggYnl0ZXMKKyAgICB3aGlsZSAobWVz
c2FnZS5sZW5ndGggPD0gcGMxLnNjdHAubWF4TWVzc2FnZVNpemUpIHsKKyAgICAgIGNoYW5uZWwx
LnNlbmQobWVzc2FnZSk7CisgICAgICBsZXQgcmVjZWl2ZWRfbWVzc2FnZSA9IGF3YWl0IGF3YWl0
TWVzc2FnZShjaGFubmVsMik7CisgICAgICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVkX21lc3NhZ2Uu
bGVuZ3RoLCBtZXNzYWdlLmxlbmd0aCwgIlNpemUgbWlzbWF0Y2giKTsKKyAgICAgIC8vIERvdWJs
ZSBzaXplCisgICAgICBtZXNzYWdlID0gbWVzc2FnZSArIG1lc3NhZ2U7CisgICAgfQorICAgIC8v
ICJzZW5kIiBtZXRob2Qgc3RlcCA0OgorICAgIC8vIElmIHRoZSBieXRlIHNpemUgb2YgImRhdGEi
IGV4Y2VlZHMgdGhlIHZhbHVlIG9mIG1heE1lc3NhZ2VTaXplLCB0aHJvdworICAgIC8vIGEgVHlw
ZUVycm9yLgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBjaGFubmVsMS5z
ZW5kKG1lc3NhZ2UpKTsKKyAgfSwgYCR7bW9kZX0gc2VuZCgpIHVwIHRvIG1heCBzaXplIHNob3Vs
ZCBzdWNjZWVkLCBhYm92ZSBtYXggc2l6ZSBzaG91bGQgZmFpbGApOworfQogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENEYXRhQ2hhbm5lbEV2ZW50LWNvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbEV2ZW50
LWNvbnN0cnVjdG9yLmh0bWwKaW5kZXggOTk3ZjY1YzQzODAxYTllMzI3NTk0NjliN2JmN2VkYjA4
MDk0MzhjZS4uMjY1OTQzYWU1NjM1MGUwMWQxNGNkNGQxY2ZkZDdjODY2MzVlNDliNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWxFdmVudC1jb25zdHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsRXZlbnQt
Y29uc3RydWN0b3IuaHRtbApAQCAtNCwzMyArNCwzOCBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KKy8vIFRlc3QgaXMgYmFzZWQg
b24gdGhlIGZvbGxvd2luZyByZXZpc2lvbjoKKy8vIGh0dHBzOi8vcmF3Z2l0LmNvbS93M2Mvd2Vi
cnRjLXBjLzFjYzViZmMzZmYxODc0MTAzM2Q4MDRjNGE3MWY3ODkxMjQyZmI1YjMvd2VicnRjLmh0
bWwKKwogdGVzdChmdW5jdGlvbigpIHsKICAgICBhc3NlcnRfZXF1YWxzKFJUQ0RhdGFDaGFubmVs
RXZlbnQubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgICBuZXcgVHlwZUVy
cm9yKCksCisgICAgYXNzZXJ0X3Rocm93c19qcygKKyAgICAgICAgVHlwZUVycm9yLAogICAgICAg
ICBmdW5jdGlvbigpIHsgbmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQoJ3R5cGUnKTsgfQogICAgICk7
CiB9LCAnUlRDRGF0YUNoYW5uZWxFdmVudCBjb25zdHJ1Y3RvciB3aXRob3V0IGEgcmVxdWlyZWQg
YXJndW1lbnQuJyk7CiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgYXNzZXJ0X3Rocm93cygKLSAg
ICAgICAgbmV3IFR5cGVFcnJvcigpLAorICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICAgIFR5
cGVFcnJvciwKICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBSVENEYXRhQ2hhbm5lbEV2ZW50KCd0
eXBlJywgeyBjaGFubmVsOiBudWxsIH0pOyB9CiAgICAgKTsKIH0sICdSVENEYXRhQ2hhbm5lbEV2
ZW50IGNvbnN0cnVjdG9yIHdpdGggY2hhbm5lbCBwYXNzZWQgYXMgbnVsbC4nKTsKIAogdGVzdChm
dW5jdGlvbigpIHsKLSAgICBhc3NlcnRfdGhyb3dzKAotICAgICAgICBuZXcgVHlwZUVycm9yKCks
CisgICAgYXNzZXJ0X3Rocm93c19qcygKKyAgICAgICAgVHlwZUVycm9yLAogICAgICAgICBmdW5j
dGlvbigpIHsgbmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQoJ3R5cGUnLCB7IGNoYW5uZWw6IHVuZGVm
aW5lZCB9KTsgfQogICAgICk7CiB9LCAnUlRDRGF0YUNoYW5uZWxFdmVudCBjb25zdHJ1Y3RvciB3
aXRoIGEgY2hhbm5lbCBwYXNzZWQgYXMgdW5kZWZpbmVkLicpOwogCi10ZXN0KGZ1bmN0aW9uKCkg
ewotICAgIHZhciBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHZhciBjID0gcGMu
Y3JlYXRlRGF0YUNoYW5uZWwoJycpOwotICAgIHZhciBlID0gbmV3IFJUQ0RhdGFDaGFubmVsRXZl
bnQoJ3R5cGUnLCB7IGNoYW5uZWw6IGMgfSk7Ci0gICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9m
IFJUQ0RhdGFDaGFubmVsRXZlbnQpOwotICAgIGFzc2VydF9lcXVhbHMoZS5jaGFubmVsLCBjKTsK
K3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgY29uc3QgZGMgPSBwYy5j
cmVhdGVEYXRhQ2hhbm5lbCgnJyk7CisgICAgY29uc3QgZXZlbnQgPSBuZXcgUlRDRGF0YUNoYW5u
ZWxFdmVudCgndHlwZScsIHsgY2hhbm5lbDogZGMgfSk7CisgICAgYXNzZXJ0X3RydWUoZXZlbnQg
aW5zdGFuY2VvZiBSVENEYXRhQ2hhbm5lbEV2ZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50
LmNoYW5uZWwsIGRjKTsKIH0sICdSVENEYXRhQ2hhbm5lbEV2ZW50IGNvbnN0cnVjdG9yIHdpdGgg
ZnVsbCBhcmd1bWVudHMuJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtZ2V0
UmVtb3RlQ2VydGlmaWNhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRl
cy5odG1sCmluZGV4IDA2MTQzNjRlOTc1NmVjOTMzY2E4NDJiOTdiMWRiZDMxNDg5YjM1ZWUuLjhh
Zjk1YTg0ZDU3NGUyMGY5YjBiYmZmOTY0ZWQwNjRlNGUxN2U2MmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFu
c3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRSZW1v
dGVDZXJ0aWZpY2F0ZXMuaHRtbApAQCAtOSw3ICs5LDcgQEAKIAogICAvLyBUaGUgZm9sbG93aW5n
IGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBl
ci5qczoKICAgLy8gICBleGNoYW5nZUljZUNhbmRpZGF0ZXMKLSAgLy8gICBkb1NpZ25hbGluZ0hh
bmRzaGFrZQorICAvLyAgIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIKIAogICAvKgogICAgIDUuNS4gIFJU
Q0R0bHNUcmFuc3BvcnQgSW50ZXJmYWNlCkBAIC00NSw3ICs0NSw3IEBACiAgICAgcGMxLmNyZWF0
ZURhdGFDaGFubmVsKCd0ZXN0Jyk7CiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMy
KTsKIAotICAgIGRvU2lnbmFsaW5nSGFuZHNoYWtlKHBjMSwgcGMyKQorICAgIGV4Y2hhbmdlT2Zm
ZXJBbnN3ZXIocGMxLCBwYzIpCiAgICAgLnRoZW4odC5zdGVwX2Z1bmMoKCkgPT4gewogICAgICAg
Ly8gcGMuc2N0cCBpcyBzZXQgd2hlbiBzZXQqRGVzY3JpcHRpb24oYW5zd2VyKSBpcyBjYWxsZWQK
ICAgICAgIGNvbnN0IHNjdHBUcmFuc3BvcnQxID0gcGMxLnNjdHA7CkBAIC04Nyw3ICs4Nyw3IEBA
CiAgICAgICAgIGlmKGR0bHNUcmFuc3BvcnQuc3RhdGUgPT09ICdjb25uZWN0ZWQnKSB7CiAgICAg
ICAgICAgb25Db25uZWN0ZWQoZHRsc1RyYW5zcG9ydCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhkdGxzVHJhbnNwb3J0LmdldENlcnRpZmljYXRlcygp
LCBbXSwKKyAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGR0bHNUcmFuc3BvcnQuZ2V0UmVt
b3RlQ2VydGlmaWNhdGVzKCksIFtdLAogICAgICAgICAgICAgJ0V4cGVjdCBEVExTIGNlcnRpZmlj
YXRlcyBiZSBpbml0aWFsbHkgZW1wdHkgdW50aWwgYmVjb21lIGNvbm5lY3RlZCcpOwogCiAgICAg
ICAgICAgZHRsc1RyYW5zcG9ydC5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsIHQuc3Rl
cF9mdW5jKCgpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtc3RhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFu
c3BvcnQtc3RhdGUuaHRtbAppbmRleCBmZDcyMTVmYTRlMTYyYWNhZWQyYWY1NjNjODNiNWIwODQ2
YWYzZGQ1Li5kMDIzMGRlMGU2NGQwZGNmNWIxMzcxY2MyNmY1NzA5NTA1M2E4ZmQyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENEdGxzVHJhbnNwb3J0LXN0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1zdGF0ZS5odG1sCkBA
IC05LDcgKzksNyBAQAogCiAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNh
bGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKIC8vICAgZXhjaGFuZ2VJY2VD
YW5kaWRhdGVzCi0vLyAgIGRvU2lnbmFsaW5nSGFuZHNoYWtlCisvLyAgIGV4Y2hhbmdlT2ZmZXJB
bnN3ZXIKIC8vICAgdHJhY2tGYWN0b3JpZXMuYXVkaW8oKQogCiAvKgpAQCAtNDIsMzYgKzQyLDYg
QEAgZnVuY3Rpb24gcmVzb2x2ZVdoZW4odCwgZHRsc3RyYW5zcG9ydCwgc3RhdGUpIHsKICAgfSk7
CiB9CiAKLS8vIEhlbHBlciBjbGFzcyB0byBleGNoYW5nZSBpY2UgY2FuZGlkYXRlcyBiZXR3ZWVu
Ci0vLyB0d28gbG9jYWwgcGVlciBjb25uZWN0aW9ucwotY2xhc3MgQ2FuZGlkYXRlQ2hhbm5lbCB7
Ci0gIGNvbnN0cnVjdG9yKHNvdXJjZSwgZGVzdCkgewotICAgIHNvdXJjZS5hZGRFdmVudExpc3Rl
bmVyKCdpY2VjYW5kaWRhdGUnLCBldmVudCA9PiB7Ci0gICAgICBjb25zdCB7IGNhbmRpZGF0ZSB9
ID0gZXZlbnQ7Ci0gICAgICBpZiAoY2FuZGlkYXRlICYmIHRoaXMuYWN0aXZhdGVkCi0gICAgICAg
ICAgJiYgdGhpcy5kZXN0aW5hdGlvbi5zaWduYWxpbmdTdGF0ZSAhPT0gJ2Nsb3NlZCcpIHsKLSAg
ICAgICAgdGhpcy5kZXN0aW5hdGlvbi5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKLSAgICAg
IH0gZWxzZSB7Ci0gICAgICAgIHRoaXMucXVldWUucHVzaChjYW5kaWRhdGUpOwotICAgICAgfQot
ICAgIH0pOwotICAgIHRoaXMuZGVzdGluYXRpb24gPSBkZXN0OwotICAgIHRoaXMuYWN0aXZhdGVk
ID0gZmFsc2U7Ci0gICAgdGhpcy5xdWV1ZSA9IFtdOwotICB9Ci0gIGFjdGl2YXRlKCkgewotICAg
IHRoaXMuYWN0aXZhdGVkID0gdHJ1ZTsKLSAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiB0aGlz
LnF1ZXVlKSB7Ci0gICAgICB0aGlzLmRlc3RpbmF0aW9uLmFkZEljZUNhbmRpZGF0ZShjYW5kaWRh
dGUpOwotICAgIH0KLSAgfQotfQotCi1mdW5jdGlvbiBjb3VwbGVDYW5kaWRhdGVzKHBjMSwgcGMy
KSB7Ci0gIGNvbnN0IGNoMSA9IG5ldyBDYW5kaWRhdGVDaGFubmVsKHBjMSwgcGMyKTsKLSAgY29u
c3QgY2gyID0gbmV3IENhbmRpZGF0ZUNoYW5uZWwocGMyLCBwYzEpOwotICByZXR1cm4gW2NoMSwg
Y2gyXTsKLX0KIAogYXN5bmMgZnVuY3Rpb24gc2V0dXBDb25uZWN0aW9ucyh0KSB7CiAgIGNvbnN0
IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwpAQCAtODAsMTEgKzUwLDggQEAgYXN5bmMg
ZnVuY3Rpb24gc2V0dXBDb25uZWN0aW9ucyh0KSB7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOwogCiAgIHBjMS5hZGRUcmFjayh0cmFja0ZhY3Rvcmllcy5hdWRpbygpKTsKLSAg
Y29uc3QgY2hhbm5lbHMgPSBjb3VwbGVDYW5kaWRhdGVzKHBjMSwgcGMyKTsKLSAgYXdhaXQgZG9T
aWduYWxpbmdIYW5kc2hha2UocGMxLCBwYzIpOwotICBmb3IgKGNvbnN0IGNoYW5uZWwgb2YgY2hh
bm5lbHMpIHsKLSAgICBjaGFubmVsLmFjdGl2YXRlKCk7Ci0gIH0KKyAgY29uc3QgY2hhbm5lbHMg
PSBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBhd2FpdCBleGNoYW5nZU9mZmVy
QW5zd2VyKHBjMSwgcGMyKTsKICAgcmV0dXJuIFtwYzEsIHBjMl07CiB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Vy
cm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0Vycm9yLWV4cGVjdGVkLnR4dAppbmRleCA4NmJiNDhlY2VlOTA4NjZl
NWE0ZWMwYTJhYmY3M2FmYTJmMTliMTNjLi45MmNiYmQ4NGFkNDU5OGM4ZjRmODFhZjUxMzBiOGU2
MmQ0M2FhOTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENFcnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRXJyb3ItZXhwZWN0ZWQu
dHh0CkBAIC0xLDE4ICsxLDI0IEBACiAKIEZBSUwgUlRDRXJyb3IgY29uc3RydWN0b3Igd2l0aCBl
cnJvckRldGFpbCBhbmQgbWVzc2FnZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENFcnJvcgogRkFJ
TCBSVENFcnJvciBjb25zdHJ1Y3RvcidzIG1lc3NhZ2UgYXJndW1lbnQgaXMgb3B0aW9uYWwgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogUlRDRXJyb3IKLUZBSUwgUlRDRXJyb3IgY29uc3RydWN0b3IgdGhy
b3dzIFR5cGVFcnJvciBpZiBhcmd1bWVudHMgYXJlIG1pc3NpbmcgYXNzZXJ0X3Rocm93czogZnVu
Y3Rpb24gIigpID0+IHsKK0ZBSUwgUlRDRXJyb3IgY29uc3RydWN0b3IgdGhyb3dzIFR5cGVFcnJv
ciBpZiBhcmd1bWVudHMgYXJlIG1pc3NpbmcgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigp
ID0+IHsKICAgICBuZXcgUlRDRXJyb3IoKTsKLSAgfSIgdGhyZXcgb2JqZWN0ICJSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDRXJyb3IiICgiUmVmZXJlbmNlRXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQotRkFJTCBSVENFcnJvciBj
b25zdHJ1Y3RvciB0aHJvd3MgVHlwZUVycm9yIGlmIHRoZSBlcnJvckRldGFpbCBpcyBpbnZhbGlk
IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiB7CisgIH0iIHRocmV3IG9iamVjdCAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ0Vycm9yIiAoIlJlZmVyZW5jZUVy
cm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigp
IHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiAoIlR5cGVFcnJvciIpCitGQUlMIFJUQ0Vycm9yIGNv
bnN0cnVjdG9yIHRocm93cyBUeXBlRXJyb3IgaWYgdGhlIGVycm9yRGV0YWlsIGlzIGludmFsaWQg
YXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IHsKICAgICBuZXcgUlRDRXJyb3Ioe2Vy
cm9yRGV0YWlsOidpbnZhbGlkLWVycm9yLWRldGFpbCd9LCAnbWVzc2FnZScpOwotICB9IiB0aHJl
dyBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENFcnJvciIg
KCJSZWZlcmVuY2VFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCi1GQUlMIFJUQ0Vycm9yLm5hbWUgaXMgJ1JUQ0Vycm9yJyBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBSVENFcnJvcgorICB9IiB0aHJldyBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBSVENFcnJvciIgKCJSZWZlcmVuY2VFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNl
IG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7CisgICAgW25hdGl2ZSBjb2RlXQor
fSIgKCJUeXBlRXJyb3IiKQorRkFJTCBSVENFcnJvci5uYW1lIGlzICdPcGVyYXRpb25FcnJvcicg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDRXJyb3IKIEZBSUwgUlRDRXJyb3IuY29kZSBpcyAwIENh
bid0IGZpbmQgdmFyaWFibGU6IFJUQ0Vycm9yCiBGQUlMIFJUQ0Vycm9yLmVycm9yRGV0YWlsIGlz
IHJlYWRvbmx5LiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENFcnJvcgotRkFJTCBSVENFcnJvcklu
aXQuZXJyb3JEZXRhaWwgaXMgdGhlIG9ubHkgcmVxdWlyZWQgYXR0cmlidXRlIGFzc2VydF90aHJv
d3M6IGZ1bmN0aW9uICIoKSA9PiB7CitGQUlMIFJUQ0Vycm9ySW5pdC5lcnJvckRldGFpbCBpcyB0
aGUgb25seSByZXF1aXJlZCBhdHRyaWJ1dGUgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigp
ID0+IHsKICAgICBuZXcgUlRDRXJyb3Ioe30sICdtZXNzYWdlJyk7Ci0gIH0iIHRocmV3IG9iamVj
dCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ0Vycm9yIiAoIlJlZmVy
ZW5jZUVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKKyAg
fSIgdGhyZXcgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUlRD
RXJyb3IiICgiUmVmZXJlbmNlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAi
ZnVuY3Rpb24gVHlwZUVycm9yKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iICgiVHlwZUVycm9y
IikKIEZBSUwgUlRDRXJyb3Iuc2RwTGluZU51bWJlciBpcyBudWxsIGJ5IGRlZmF1bHQgQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogUlRDRXJyb3IKIEZBSUwgUlRDRXJyb3Iuc2RwTGluZU51bWJlciBpcyBz
ZXR0YWJsZSBieSBjb25zdHJ1Y3RvciBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENFcnJvcgogRkFJ
TCBSVENFcnJvci5zZHBMaW5lTnVtYmVyIGlzIHJlYWRvbmx5IENhbid0IGZpbmQgdmFyaWFibGU6
IFJUQ0Vycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENFcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRXJyb3IuaHRtbAppbmRleCA0ZDA3MjYwOTNj
MTljMjgyOGU1OWU3ZjYxZDJmNjU5NTRjODA3NWZjLi5iY2M1NzQ5YmY3ZDVlNjlmZDNkNjc0YWMz
MzU2NDQwM2U0MWU5OTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENFcnJvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Vycm9yLmh0bWwKQEAgLTE5
LDI0ICsxOSwyNCBAQCB0ZXN0KCgpID0+IHsKIH0sICdSVENFcnJvciBjb25zdHJ1Y3RvclwncyBt
ZXNzYWdlIGFyZ3VtZW50IGlzIG9wdGlvbmFsJyk7CiAKIHRlc3QoKCkgPT4gewotICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgKCkgPT4gewogICAgIG5ldyBSVENFcnJvcigpOwogICB9KTsKLSAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
ICgpID0+IHsKICAgICBuZXcgUlRDRXJyb3Ioe30pOyAgLy8ge2Vycm9yRGV0YWlsfSBpcyBtaXNz
aW5nLgogICB9KTsKIH0sICdSVENFcnJvciBjb25zdHJ1Y3RvciB0aHJvd3MgVHlwZUVycm9yIGlm
IGFyZ3VtZW50cyBhcmUgbWlzc2luZycpOwogCiB0ZXN0KCgpID0+IHsKLSAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
ICgpID0+IHsKICAgICBuZXcgUlRDRXJyb3Ioe2Vycm9yRGV0YWlsOidpbnZhbGlkLWVycm9yLWRl
dGFpbCd9LCAnbWVzc2FnZScpOwogICB9KTsKIH0sICdSVENFcnJvciBjb25zdHJ1Y3RvciB0aHJv
d3MgVHlwZUVycm9yIGlmIHRoZSBlcnJvckRldGFpbCBpcyBpbnZhbGlkJyk7CiAKIHRlc3QoKCkg
PT4gewogICBjb25zdCBlcnJvciA9IG5ldyBSVENFcnJvcih7ZXJyb3JEZXRhaWw6J2RhdGEtY2hh
bm5lbC1mYWlsdXJlJ30sICdtZXNzYWdlJyk7Ci0gIGFzc2VydF9lcXVhbHMoZXJyb3IubmFtZSwg
J1JUQ0Vycm9yJyk7Ci19LCAnUlRDRXJyb3IubmFtZSBpcyBcJ1JUQ0Vycm9yXCcnKTsKKyAgYXNz
ZXJ0X2VxdWFscyhlcnJvci5uYW1lLCAnT3BlcmF0aW9uRXJyb3InKTsKK30sICdSVENFcnJvci5u
YW1lIGlzIFwnT3BlcmF0aW9uRXJyb3JcJycpOwogCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgZXJy
b3IgPSBuZXcgUlRDRXJyb3Ioe2Vycm9yRGV0YWlsOidkYXRhLWNoYW5uZWwtZmFpbHVyZSd9LCAn
bWVzc2FnZScpOwpAQCAtNDUsNyArNDUsNyBAQCB0ZXN0KCgpID0+IHsKIAogdGVzdCgoKSA9PiB7
CiAgIGNvbnN0IGVycm9yID0gbmV3IFJUQ0Vycm9yKHtlcnJvckRldGFpbDonZGF0YS1jaGFubmVs
LWZhaWx1cmUnfSwgJ21lc3NhZ2UnKTsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCks
ICgpID0+IHsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKICAgICBlcnJv
ci5lcnJvckRldGFpbCA9ICdkdGxzLWZhaWx1cmUnOwogICB9KTsKIH0sICdSVENFcnJvci5lcnJv
ckRldGFpbCBpcyByZWFkb25seS4nKTsKQEAgLTUzLDcgKzUzLDcgQEAgdGVzdCgoKSA9PiB7CiB0
ZXN0KCgpID0+IHsKICAgLy8gSW5mZXJzIHdoYXQgYXJlIHZhbGlkIFJUQ0Vycm9ySW5pdCBvYmpl
Y3RzIGJ5IHBhc3NpbmcgdGhlbSB0byB0aGUgUlRDRXJyb3IKICAgLy8gY29uc3RydWN0b3IuCi0g
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiB7CisgIGFzc2VydF90aHJvd3Nf
anMoVHlwZUVycm9yLCAoKSA9PiB7CiAgICAgbmV3IFJUQ0Vycm9yKHt9LCAnbWVzc2FnZScpOwog
ICB9KTsKICAgbmV3IFJUQ0Vycm9yKHtlcnJvckRldGFpbDonZGF0YS1jaGFubmVsLWZhaWx1cmUn
fSwgJ21lc3NhZ2UnKTsKQEAgLTgwLDcgKzgwLDcgQEAgbnVsbGFibGVBdHRyaWJ1dGVzLmZvckVh
Y2goYXR0cmlidXRlID0+IHsKIAogICB0ZXN0KCgpID0+IHsKICAgICBjb25zdCBlcnJvciA9IG5l
dyBSVENFcnJvcih7ZXJyb3JEZXRhaWw6J2RhdGEtY2hhbm5lbC1mYWlsdXJlJ30sICdtZXNzYWdl
Jyk7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHsKKyAgICBhc3Nl
cnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gewogICAgICAgZXJyb3JbYXR0cmlidXRlXSA9
IDQyOwogICAgIH0pOwogICB9LCAnUlRDRXJyb3IuJyArIGF0dHJpYnV0ZSArICcgaXMgcmVhZG9u
bHknKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0ljZUNhbmRpZGF0ZS1jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ2FuZGlkYXRl
LWNvbnN0cnVjdG9yLmh0bWwKaW5kZXggMzQ0MDA3ZGVkMmI0ZDQ0OTYxNzE0MDI4OTZkNzM4ODE3
Y2RkZTEyZS4uNmMyMDhlODg3ZjQ3M2EwMzFlMGU5ZWUwNzY1OGI1M2JmYmU1OTM1YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDSWNlQ2FuZGlkYXRlLWNvbnN0cnVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ2FuZGlkYXRlLWNvbnN0cnVj
dG9yLmh0bWwKQEAgLTE1LDcgKzE1LDcgQEAKICAgICAvLyBOb3RlIHRoYXQgY3VycmVudCBicm93
c2VycyBwYXNzIHRoaXMgdGVzdCBidXQgbWF5IHRocm93IFR5cGVFcnJvciBmb3IKICAgICAvLyBk
aWZmZXJlbnQgcmVhc29uLCBpLmUuIHRoZXkgZG9uJ3QgYWNjZXB0IGVtcHR5IGFyZ3VtZW50Lgog
ICAgIC8vIEZ1cnRoZXIgdGVzdHMgYmVsb3cgYXJlIHVzZWQgdG8gZGlmZmVyZW50aWF0ZSB0aGUg
ZXJyb3JzLgotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiBuZXcgUlRD
SWNlQ2FuZGlkYXRlKCkpOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBu
ZXcgUlRDSWNlQ2FuZGlkYXRlKCkpOwogICB9LCAnbmV3IFJUQ0ljZUNhbmRpZGF0ZSgpJyk7CiAK
ICAgdGVzdCh0ID0+IHsKQEAgLTI0LDEzICsyNCwxMyBAQAogICAgIC8vIE5vdGUgdGhhdCBjdXJy
ZW50IGJyb3dzZXJzIHBhc3MgdGhpcyB0ZXN0IGJ1dCBtYXkgdGhyb3cgVHlwZUVycm9yIGZvcgog
ICAgIC8vIGRpZmZlcmVudCByZWFzb24sIGkuZS4gdGhleSBkb24ndCBhbGxvdyB1bmRlZmluZWQg
Y2FuZGlkYXRlIHN0cmluZy4KICAgICAvLyBGdXJ0aGVyIHRlc3RzIGJlbG93IGFyZSB1c2VkIHRv
IGRpZmZlcmVudGlhdGUgdGhlIGVycm9ycy4KLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJy
b3IoKSwgKCkgPT4gbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7fSkpOworICAgIGFzc2VydF90aHJvd3Nf
anMoVHlwZUVycm9yLCAoKSA9PiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHt9KSk7CiAgIH0sICduZXcg
UlRDSWNlQ2FuZGlkYXRlKHt9KScpOwogCiAgIHRlc3QodCA9PiB7CiAgICAgLy8gQ2hlY2tzIHRo
YXQgbWFudWFsbHkgZmlsbGluZyB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIFJUQ0ljZUNhbmRpZGF0
ZUluaXQKICAgICAvLyBzdGlsbCB0aHJvd3MgYmVjYXVzZSBib3RoIHNkcE1pZCBhbmQgc2RwTUxp
bmVJbmRleCBhcmUgbnVsbAotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAorICAg
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAogICAgICAgKCkgPT4gbmV3IFJUQ0ljZUNhbmRp
ZGF0ZSh7CiAgICAgICAgIGNhbmRpZGF0ZTogJycsCiAgICAgICAgIHNkcE1pZDogbnVsbCwKQEAg
LTQxLDcgKzQxLDcgQEAKIAogICB0ZXN0KHQgPT4gewogICAgIC8vIENoZWNrcyB0aGF0IGV4cGxp
Y2l0bHkgc2V0dGluZyBib3RoIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCBudWxsIHNob3VsZCB0
aHJvdwotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAorICAgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLAogICAgICAgKCkgPT4gbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7CiAgICAg
ICAgIHNkcE1pZDogbnVsbCwKICAgICAgICAgc2RwTUxpbmVJbmRleDogbnVsbApAQCAtNTAsNyAr
NTAsNyBAQAogCiAgIHRlc3QodCA9PiB7CiAgICAgLy8gVGhyb3dzIGJlY2F1c2UgYm90aCBzZHBN
aWQgYW5kIHNkcE1MaW5lSW5kZXggYXJlIG51bGwgYnkgZGVmYXVsdAotICAgIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLAorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAogICAg
ICAgKCkgPT4gbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7CiAgICAgICAgIGNhbmRpZGF0ZTogJycKICAg
ICAgIH0pKTsKQEAgLTU4LDcgKzU4LDcgQEAKIAogICB0ZXN0KHQgPT4gewogICAgIC8vIFRocm93
cyBiZWNhdXNlIHRoZSBjYW5kaWRhdGUgZmllbGQgaXMgbm90IG51bGxhYmxlCi0gICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
CiAgICAgICAoKSA9PiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsKICAgICAgICAgY2FuZGlkYXRlOiBu
dWxsCiAgICAgICB9KSk7CkBAIC02Niw3ICs2Niw3IEBACiAKICAgdGVzdCh0ID0+IHsKICAgICAv
LyBUaHJvd3MgYmVjYXVzZSBib3RoIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCBhcmUgbnVsbCBi
eSBkZWZhdWx0Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsCiAgICAgICAoKSA9PiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsK
ICAgICAgICAgY2FuZGlkYXRlOiBjYW5kaWRhdGVTdHJpbmcKICAgICAgIH0pKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFpci5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlv
blN0YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLmh0bWwKaW5kZXggNzI4MGQwNDA4NTYzNzBmNDQ4
Nzk2YTRkZTJmOTJmODJmOWM3OGM1My4uM2IyYzI1MzQwMWY2N2UyYzdlM2M2NzlkMWQ3YWU1YmFj
NDFhMmYzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0YXRlLWNhbmRpZGF0ZS1wYWlyLmh0dHBzLmh0bWwKQEAg
LTE0LDEyICsxNCwxMiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IGNhbGxl
ZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxl
ZS5jbG9zZSgpKTsKIAotICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0pOworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBn
ZXROb2lzZVN0cmVhbSh7YXVkaW86dHJ1ZX0pOwogICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdl
dFRyYWNrcygpOwogICBjYWxsZXIuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CiAgIGV4Y2hhbmdl
SWNlQ2FuZGlkYXRlcyhjYWxsZXIsIGNhbGxlZSk7Ci0gIGF3YWl0IGRvU2lnbmFsaW5nSGFuZHNo
YWtlKGNhbGxlciwgY2FsbGVlKTsKLSAgYXdhaXQgbGlzdGVuVG9JY2VDb25uZWN0ZWQodCwgY2Fs
bGVyKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7CisgIGF3
YWl0IGxpc3RlblRvSWNlQ29ubmVjdGVkKGNhbGxlcik7CiAKICAgY29uc3QgcmVwb3J0ID0gYXdh
aXQgY2FsbGVyLmdldFN0YXRzKCk7CiAgIGxldCBzdWNjZWVkZWRQYWlyRm91bmQgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJh
bnNwb3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggM2ZhZGYyMDU4NTlmZWI3
Y2ZiOTE1NjI5NTFkNzk5Mjk5ZjM0ODJhYS4uMDkzNDdhZWVlNGJjMGM0NjEyMGQ3YjU4MWQyMjI3
YWQ1MjZmNWU1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTE0
LDYgKzE0LDggQEAgRkFJTCBnYXRoZXIoKSByZXR1cm5zIGF0IGxlYXN0IG9uZSBob3N0IGNhbmRp
ZGF0ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3QKIEZBSUwgZ2F0aGVyKCkgcmV0dXJu
cyBubyBjYW5kaWRhdGVzIHdpdGggeyBnYXRoZXJQb2xpY3k6ICdyZWxheSd9IGFuZCBubyB0dXJu
IHNlcnZlcnMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGlu
ZyAnbmV3IFJUQ0ljZVRyYW5zcG9ydCgpJykiCiBGQUlMIHN0YXJ0KCkgdGhyb3dzIGlmIGNsb3Nl
ZCBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFJUQ0ljZVRy
YW5zcG9ydCgpJykKIEZBSUwgc3RhcnQoKSB0aHJvd3MgaWYgdXNlcm5hbWVGcmFnbWVudCBvciBw
YXNzd29yZCBub3Qgc2V0IGZ1bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5n
ICduZXcgUlRDSWNlVHJhbnNwb3J0KCknKQorRkFJTCBzdGFydCgpIHRocm93cyBpZiB1c2VybmFt
ZUZyYWdtZW50IGRvZXMgbm90IGNvbmZvcm0gdG8gc3ludGF4IGZ1bmN0aW9uIGlzIG5vdCBhIGNv
bnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgUlRDSWNlVHJhbnNwb3J0KCknKQorRkFJTCBzdGFy
dCgpIHRocm93cyBpZiBwYXNzd29yZCBkb2VzIG5vdCBjb25mb3JtIHRvIHN5bnRheCBmdW5jdGlv
biBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFJUQ0ljZVRyYW5zcG9ydCgp
JykKIEZBSUwgc3RhcnQoKSBkb2VzIG5vdCB0cmFuc2l0aW9uIHN0YXRlIHRvICdjaGVja2luZycg
aWYgbm8gcmVtb3RlIGNhbmRpZGF0ZXMgYWRkZWQgZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0
b3IgKGV2YWx1YXRpbmcgJ25ldyBSVENJY2VUcmFuc3BvcnQoKScpCiBGQUlMIHN0YXJ0KCkgd2l0
aCBkZWZhdWx0IHJvbGUgc2V0cyByb2xlIGF0dHJpYnV0ZSB0byAnY29udHJvbGxlZCcgZnVuY3Rp
b24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBSVENJY2VUcmFuc3BvcnQo
KScpCiBGQUlMIHN0YXJ0KCkgc2V0cyByb2xlIGF0dHJpYnV0ZSB0byAnY29udHJvbGxpbmcnIGZ1
bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgUlRDSWNlVHJhbnNw
b3J0KCknKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJh
bnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sCmluZGV4IDIwNmE0YmI3MTZmMzQ1NjZiNjk5ZGFj
ZmQ0NzU4NWExNGE1YzI4MmEuLmJiNGQ1MmFkY2U1NjczYmFiNWQ1Mjc1MzZkNjdmODlhMDNhNDhj
ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFu
c3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWwKQEAgLTE1LDYgKzE1LDkgQEAKIC8vICAgbWFrZUlj
ZVRyYW5zcG9ydAogLy8gICBtYWtlR2F0aGVyQW5kU3RhcnRUd29JY2VUcmFuc3BvcnRzCiAKK2Nv
bnN0IElDRV9VRlJBRyA9ICd1Jy5yZXBlYXQoNCk7Citjb25zdCBJQ0VfUFdEID0gJ3AnLnJlcGVh
dCgyMik7CisKIHRlc3QoKCkgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNl
VHJhbnNwb3J0KCk7CiB9LCAnUlRDSWNlVHJhbnNwb3J0IGNvbnN0cnVjdG9yIGRvZXMgbm90IHRo
cm93Jyk7CkBAIC0zOSw3ICs0Miw3IEBAIHRlc3QoKCkgPT4gewogCiB0ZXN0KHQgPT4gewogICBj
b25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwotICBhc3NlcnRfdGhyb3dz
KG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4KKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgp
ID0+CiAgICAgaWNlVHJhbnNwb3J0LmdhdGhlcih7IGljZVNlcnZlcnM6IG51bGwgfSkpOwogfSwg
J2dhdGhlcigpIHdpdGggeyBpY2VTZXJ2ZXJzOiBudWxsIH0gc2hvdWxkIHRocm93IFR5cGVFcnJv
cicpOwogCkBAIC02OCw3ICs3MSw3IEBAIHRlc3QodCA9PiB7CiB0ZXN0KHQgPT4gewogICBjb25z
dCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwogICBpY2VUcmFuc3BvcnQuc3Rv
cCgpOwotICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IGljZVRyYW5z
cG9ydC5nYXRoZXIoe30pKTsKKyAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9y
JywgKCkgPT4gaWNlVHJhbnNwb3J0LmdhdGhlcih7fSkpOwogfSwgJ2dhdGhlcigpIHRocm93cyBp
ZiBjbG9zZWQnKTsKIAogdGVzdCh0ID0+IHsKQEAgLTgwLDcgKzgzLDcgQEAgdGVzdCh0ID0+IHsK
IHRlc3QodCA9PiB7CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7
CiAgIGljZVRyYW5zcG9ydC5nYXRoZXIoe30pOwotICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3Rh
dGVFcnJvcicsICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30pKTsKKyAgYXNzZXJ0X3Rocm93
c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gaWNlVHJhbnNwb3J0LmdhdGhlcih7fSkp
OwogfSwgJ2dhdGhlcigpIHRocm93cyBpZiBjYWxsZWQgdHdpY2UnKTsKIAogcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewpAQCAtOTgsNyArMTAxLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
ewogICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHt9KTsKICAgbGV0IGNhbmRpZGF0ZTsKICAgZG8gewot
ICAgICh7IGNhbmRpZGF0ZSB9ID0gYXdhaXQgd2F0Y2hlci53YWl0X2ZvcignaWNlY2FuZGlkYXRl
JykpOworICAgICgoeyBjYW5kaWRhdGUgfSA9IGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ2ljZWNh
bmRpZGF0ZScpKSk7CiAgIH0gd2hpbGUgKGNhbmRpZGF0ZSAhPT0gbnVsbCk7CiAgIGFzc2VydF9l
cXVhbHMoaWNlVHJhbnNwb3J0LmdhdGhlcmluZ1N0YXRlLCAnZ2F0aGVyaW5nJyk7CiAgIGF3YWl0
IHdhdGNoZXIud2FpdF9mb3IoJ2dhdGhlcmluZ3N0YXRlY2hhbmdlJyk7CkBAIC0xMjYsMjggKzEy
OSw2NCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgJyBzZXJ2ZXJzJyk7CiAKIGNv
bnN0IGR1bW15UmVtb3RlUGFyYW1ldGVycyA9IHsKLSAgdXNlcm5hbWVGcmFnbWVudDogJ2R1bW15
VXNlcm5hbWVGcmFnbWVudCcsCi0gIHBhc3N3b3JkOiAnZHVtbXlQYXNzd29yZCcsCisgIHVzZXJu
YW1lRnJhZ21lbnQ6IElDRV9VRlJBRywKKyAgcGFzc3dvcmQ6IElDRV9QV0QsCiB9OwogCiB0ZXN0
KCgpID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwog
ICBpY2VUcmFuc3BvcnQuc3RvcCgpOwotICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJv
cicsCisgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgKCkgPT4g
aWNlVHJhbnNwb3J0LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycykpOwogICBhc3NlcnRfZXF1
YWxzKGljZVRyYW5zcG9ydC5nZXRSZW1vdGVQYXJhbWV0ZXJzKCksIG51bGwpOwogfSwgYHN0YXJ0
KCkgdGhyb3dzIGlmIGNsb3NlZGApOwogCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgaWNlVHJhbnNw
b3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJy
b3IoKSwgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHt9KSk7Ci0gIGFzc2VydF90aHJvd3MobmV3
IFR5cGVFcnJvcigpLAotICAgICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJh
Z21lbnQ6ICdkdW1teScgfSkpOwotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwKLSAg
ICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoeyBwYXNzd29yZDogJ2R1bW15JyB9KSk7CisgIGFz
c2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoe30pKTsK
KyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCisgICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0
YXJ0KHsgdXNlcm5hbWVGcmFnbWVudDogSUNFX1VGUkFHIH0pKTsKKyAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsCisgICAgKCkgPT4gaWNlVHJhbnNwb3J0LnN0YXJ0KHsgcGFzc3dvcmQ6IElD
RV9QV0QgfSkpOwogICBhc3NlcnRfZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRSZW1vdGVQYXJhbWV0
ZXJzKCksIG51bGwpOwogfSwgJ3N0YXJ0KCkgdGhyb3dzIGlmIHVzZXJuYW1lRnJhZ21lbnQgb3Ig
cGFzc3dvcmQgbm90IHNldCcpOwogCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgVEVTVF9DQVNFUyA9
IFsKKyAgICB7dXNlcm5hbWVGcmFnbWVudDogJzJzaCcsIGRlc2NyaXB0aW9uOiAnbGVzcyB0aGFu
IDQgY2hhcmFjdGVycyBsb25nJ30sCisgICAgeworICAgICAgdXNlcm5hbWVGcmFnbWVudDogJ3gn
LnJlcGVhdCgyNTcpLAorICAgICAgZGVzY3JpcHRpb246ICdncmVhdGVyIHRoYW4gMjU2IGNoYXJh
Y3RlcnMgbG9uZycsCisgICAgfSwKKyAgICB7dXNlcm5hbWVGcmFnbWVudDogJzEyM1xuJywgZGVz
Y3JpcHRpb246ICdpbGxlZ2FsIGNoYXJhY3Rlcid9LAorICBdOworICBmb3IgKGNvbnN0IHt1c2Vy
bmFtZUZyYWdtZW50LCBkZXNjcmlwdGlvbn0gb2YgVEVTVF9DQVNFUykgeworICAgIGNvbnN0IGlj
ZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKKyAgICBhc3NlcnRfdGhyb3dzX2Rv
bSgKKyAgICAgICdTeW50YXhFcnJvcicsCisgICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQo
eyB1c2VybmFtZUZyYWdtZW50LCBwYXNzd29yZDogSUNFX1BXRCB9KSwKKyAgICAgIGBpbGxlZ2Fs
IHVzZXJuYW1lRnJhZ21lbnQgKCR7ZGVzY3JpcHRpb259KSBzaG91bGQgdGhyb3cgYSBTeW50YXhF
cnJvcmApOworICB9Cit9LCAnc3RhcnQoKSB0aHJvd3MgaWYgdXNlcm5hbWVGcmFnbWVudCBkb2Vz
IG5vdCBjb25mb3JtIHRvIHN5bnRheCcpOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgVEVTVF9D
QVNFUyA9IFsKKyAgICB7cGFzc3dvcmQ6ICd4Jy5yZXBlYXQoMjEpLCBkZXNjcmlwdGlvbjogJ2xl
c3MgdGhhbiAyMiBjaGFyYWN0ZXJzIGxvbmcnfSwKKyAgICB7CisgICAgICBwYXNzd29yZDogJ3gn
LnJlcGVhdCgyNTcpLAorICAgICAgZGVzY3JpcHRpb246ICdncmVhdGVyIHRoYW4gMjU2IGNoYXJh
Y3RlcnMgbG9uZycsCisgICAgfSwKKyAgICB7cGFzc3dvcmQ6ICgneCcucmVwZWF0KDIxKSArICdc
bicpLCBkZXNjcmlwdGlvbjogJ2lsbGVnYWwgY2hhcmFjdGVyJ30sCisgIF07CisgIGZvciAoY29u
c3Qge3Bhc3N3b3JkLCBkZXNjcmlwdGlvbn0gb2YgVEVTVF9DQVNFUykgeworICAgIGNvbnN0IGlj
ZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKKyAgICBhc3NlcnRfdGhyb3dzX2Rv
bSgKKyAgICAgICdTeW50YXhFcnJvcicsCisgICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQo
eyB1c2VybmFtZUZyYWdtZW50OiBJQ0VfVUZSQUcsIHBhc3N3b3JkIH0pLAorICAgICAgYGlsbGVn
YWwgcGFzc3dvcmQgKCR7ZGVzY3JpcHRpb259KSBzaG91bGQgdGhyb3cgYSBTeW50YXhFcnJvcmAp
OworICB9Cit9LCAnc3RhcnQoKSB0aHJvd3MgaWYgcGFzc3dvcmQgZG9lcyBub3QgY29uZm9ybSB0
byBzeW50YXgnKTsKKwogY29uc3QgYXNzZXJ0X2ljZV9wYXJhbWV0ZXJzX2VxdWFscyA9IChhLCBi
KSA9PiB7CiAgIGFzc2VydF9lcXVhbHMoYS51c2VybmFtZUZyYWdtZW50LCBiLnVzZXJuYW1lRnJh
Z21lbnQsCiAgICAgICAndXNlcm5hbWVGcmFnbWVudHMgYXJlIGVxdWFsJyk7CkBAIC0xODMsMTQg
KzIyMiwxNCBAQCBjb25zdCBjYW5kaWRhdGUxID0gbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7CiB0ZXN0
KCgpID0+IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwog
ICBpY2VUcmFuc3BvcnQuc3RvcCgpOwotICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJv
cicsCisgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgKCkgPT4g
aWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZShjYW5kaWRhdGUxKSk7CiAgIGFzc2VydF9h
cnJheV9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMoKSwgW10pOwogfSwg
J2FkZFJlbW90ZUNhbmRpZGF0ZSgpIHRocm93cyBpZiBjbG9zZWQnKTsKIAogdGVzdCgoKSA9PiB7
CiAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKLSAgYXNzZXJ0
X3Rocm93cygnT3BlcmF0aW9uRXJyb3InLAorICBhc3NlcnRfdGhyb3dzX2RvbSgnT3BlcmF0aW9u
RXJyb3InLAogICAgICgpID0+IGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoCiAgICAg
ICBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgY2FuZGlkYXRlOiAnaW52YWxpZCcsIHNkcE1pZDogJycg
fSkpKTsKICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlQ2FuZGlk
YXRlcygpLCBbXSk7CkBAIC0yMTcsMjAgKzI1NiwyMCBAQCB0ZXN0KHQgPT4gewogdGVzdCh0ID0+
IHsKICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKICAgaWNlVHJh
bnNwb3J0LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycyk7Ci0gIGFzc2VydF90aHJvd3MoJ0lu
dmFsaWRTdGF0ZUVycm9yJywKKyAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9y
JywKICAgICAoKSA9PiBpY2VUcmFuc3BvcnQuc3RhcnQoZHVtbXlSZW1vdGVQYXJhbWV0ZXJzLCAn
Y29udHJvbGxpbmcnKSk7CiB9LCAnc3RhcnQoKSB0aHJvd3MgaWYgbGF0ZXIgY2FsbGVkIHdpdGgg
YSBkaWZmZXJlbnQgcm9sZScpOwogCiB0ZXN0KHQgPT4gewogICBjb25zdCBpY2VUcmFuc3BvcnQg
PSBtYWtlSWNlVHJhbnNwb3J0KHQpOwogICBpY2VUcmFuc3BvcnQuc3RhcnQoewotICAgIHVzZXJu
YW1lRnJhZ21lbnQ6ICd1c2VyJywKLSAgICBwYXNzd29yZDogJ3Bhc3MnLAorICAgIHVzZXJuYW1l
RnJhZ21lbnQ6ICcxJy5yZXBlYXQoNCksCisgICAgcGFzc3dvcmQ6ICcxJy5yZXBlYXQoMjIpLAog
ICB9KTsKICAgaWNlVHJhbnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZShjYW5kaWRhdGUxKTsKICAg
Y29uc3QgY2hhbmdlZFJlbW90ZVBhcmFtZXRlcnMgPSB7Ci0gICAgdXNlcm5hbWVGcmFnbWVudDog
J3VzZXIyJywKLSAgICBwYXNzd29yZDogJ3Bhc3MnLAorICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICcy
Jy5yZXBlYXQoNCksCisgICAgcGFzc3dvcmQ6ICcyJy5yZXBlYXQoMjIpLAogICB9OwogICBpY2VU
cmFuc3BvcnQuc3RhcnQoY2hhbmdlZFJlbW90ZVBhcmFtZXRlcnMpOwogICBhc3NlcnRfZXF1YWxz
KGljZVRyYW5zcG9ydC5zdGF0ZSwgJ25ldycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJ
Y2VUcmFuc3BvcnQuaHRtbAppbmRleCA2YTAwZTFjNTllNzE4M2ZkODQ3MTI4NjJiNmM2YjA0NGQ0
YmUzNDBkLi5mZTEyYzM4NGU1ZTViM2Y4YWIyZTJiOTZiNzQwZDkxOTU5ZDE2ZDk0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENJY2VUcmFuc3BvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQuaHRtbApAQCAtODEsNyArODEsNiBA
QAogCiAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgcGFyYW0udXNlcm5hbWVGcmFnbWVudCwgJ3N0
cmluZycsCiAgICAgICAnRXhwZWN0IHBhcmFtLnVzZXJuYW1lRnJhZ21lbnQgdG8gYmUgc2V0IHdp
dGggc3RyaW5nIHZhbHVlJyk7Ci0KICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBwYXJhbS5wYXNz
d29yZCwgJ3N0cmluZycsCiAgICAgICAnRXhwZWN0IHBhcmFtLnBhc3N3b3JkIHRvIGJlIHNldCB3
aXRoIHN0cmluZyB2YWx1ZScpOwogICB9CkBAIC05MCw3ICs4OSw3IEBACiAgICAgY29uc3QgeyBz
dGF0ZSwgZ2F0aGVyaW5nU3RhdGUsIHJvbGUsIGNvbXBvbmVudCB9ID0gaWNlVHJhbnNwb3J0Owog
CiAgICAgYXNzZXJ0X3RydWUocm9sZSA9PT0gJ2NvbnRyb2xsaW5nJyB8fCByb2xlID09PSAnY29u
dHJvbGxlZCcsCi0gICAgICAnRXhwZWN0IFJUQ0ljZVJvbGUgdG8gYmUgZWl0aGVyIGNvbnRyb2xs
aW5nIG9yIGNvbnRyb2xsZWQnKTsKKyAgICAgICdFeHBlY3QgUlRDSWNlUm9sZSB0byBiZSBlaXRo
ZXIgY29udHJvbGxpbmcgb3IgY29udHJvbGxlZCwgZm91bmQgJyArIHJvbGUpOwogCiAgICAgYXNz
ZXJ0X3RydWUoY29tcG9uZW50ID09PSAncnRwJyB8fCBjb21wb25lbnQgPT09ICdydGNwJywKICAg
ICAgICdFeHBlY3QgUlRDSWNlQ29tcG9uZW50IHRvIGJlIGVpdGhlciBydHAgb3IgcnRjcCcpOwpA
QCAtMTI0LDcgKzEyMyw3IEBACiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CiAKLSAgICByZXR1cm4g
Y3JlYXRlRGF0YUNoYW5uZWxQYWlyKHBjMSwgcGMyKQorICAgIHJldHVybiBjcmVhdGVEYXRhQ2hh
bm5lbFBhaXIodCwge30sIHBjMSwgcGMyKQogICAgIC50aGVuKChbY2hhbm5lbDEsIGNoYW5uZWwy
XSkgPT4gewogICAgICAgLy8gU2VuZCBhIHBpbmcgbWVzc2FnZSBhbmQgd2FpdCBmb3IgaXQganVz
dCB0byBtYWtlIHN1cmUKICAgICAgIC8vIHRoYXQgdGhlIGNvbm5lY3Rpb24gaXMgZnVsbHkgd29y
a2luZyBiZWZvcmUgdGVzdGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlk
YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50
eHQKaW5kZXggZDA5OWFkYjBhZjk0NDc3YTZjODM3YTUyOTg1ZmE0Njg2YWExZjJkYi4uYjBjODU3
ZjE4MTdiZWFmZGFjNjJmMmQzMTA5ODYwMmE5OTJhNDlmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tYWRkSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsMTcgQEAKIAotRkFJTCBBZGQgbnVsbCBj
YW5kaWRhdGUgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvciBhc3NlcnRfdW5yZWFjaGVkOiBT
aG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQog
RkFJTCBBZGQgSUNFIGNhbmRpZGF0ZSBiZWZvcmUgc2V0dGluZyByZW1vdGUgZGVzY3JpcHRpb24g
c2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yIGFzc2VydF91bnJlYWNoZWQ6IFNo
b3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitG
QUlMIGFkZEljZUNhbmRpZGF0ZSh7ImNhbmRpZGF0ZSI6IiIsInNkcE1pZCI6bnVsbCwic2RwTUxp
bmVJbmRleCI6bnVsbH0pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMg
dG8gYm90aCBtLXNlY3Rpb25zIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2NhbmRpZGF0ZScpIHRvIFJU
Q1BlZXJDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFJU
Q0ljZUNhbmRpZGF0ZSIKK0ZBSUwgYWRkSWNlQ2FuZGlkYXRlKHVuZGVmaW5lZCkgc2hvdWxkIHdv
cmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMgYXNzZXJ0
X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBiZXR3ZWVuIG1lZGlhIGxp
bmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgYWRk
SWNlQ2FuZGlkYXRlKG51bGwpIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0
ZXMgdG8gYm90aCBtLXNlY3Rpb25zIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxpbmUg
dG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGFkZEljZUNhbmRpZGF0ZSh7fSkgc2hvdWxkIHdvcmss
IGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byBib3RoIG0tc2VjdGlvbnMgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBB
cmd1bWVudCAxICgnY2FuZGlkYXRlJykgdG8gUlRDUGVlckNvbm5lY3Rpb24uYWRkSWNlQ2FuZGlk
YXRlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUlRDSWNlQ2FuZGlkYXRlIgorRkFJTCBhZGRJY2VD
YW5kaWRhdGUoe30pIGluIHN0YWJsZSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5k
aWRhdGVzIHRvIGJvdGggbS1zZWN0aW9ucyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdjYW5kaWRhdGUn
KSB0byBSVENQZWVyQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUgbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiBSVENJY2VDYW5kaWRhdGUiCitGQUlMIGFkZEljZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFn
bWVudDogdXNlcm5hbWVGcmFnbWVudDEsIHNkcE1pZDogc2RwTWlkMX0pIHNob3VsZCB3b3JrLCBh
bmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gdGhlIGZpcnN0IG0tc2VjdGlvbiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJPcGVyYXRpb25F
cnJvcjogRXhwZWN0IGxpbmU6IGNhbmRpZGF0ZTo8Y2FuZGlkYXRlLXN0cj4iCitGQUlMIGFkZElj
ZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFnbWVudDogdXNlcm5hbWVGcmFnbWVudDIsIHNkcE1MaW5l
SW5kZXg6IDF9KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIHRo
ZSBmaXJzdCBtLXNlY3Rpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6IEV4cGVjdCBsaW5lOiBjYW5kaWRhdGU6PGNh
bmRpZGF0ZS1zdHI+IgorRkFJTCBhZGRJY2VDYW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6ICJu
byBzdWNoIHVmcmFnIn0pIHNob3VsZCBub3Qgd29yayBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBB
cmd1bWVudCAxICgnY2FuZGlkYXRlJykgdG8gUlRDUGVlckNvbm5lY3Rpb24uYWRkSWNlQ2FuZGlk
YXRlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUlRDSWNlQ2FuZGlkYXRlIiB0aGF0IGlzIG5vdCBh
IERPTUV4Y2VwdGlvbiBPcGVyYXRpb25FcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRv
IHVuZGVmaW5lZCwgZXhwZWN0ZWQgMAogUEFTUyBBZGQgSUNFIGNhbmRpZGF0ZSBhZnRlciBzZXR0
aW5nIHJlbW90ZSBkZXNjcmlwdGlvbiBzaG91bGQgc3VjY2VlZCAKIFBBU1MgQWRkIElDRSBjYW5k
aWRhdGUgd2l0aCBSVENJY2VDYW5kaWRhdGUgc2hvdWxkIHN1Y2NlZWQgCiBQQVNTIEFkZCBjYW5k
aWRhdGUgd2l0aCBvbmx5IHZhbGlkIHNkcE1pZCBzaG91bGQgc3VjY2VlZCAKK1BBU1MgQWRkIGNh
bmRpZGF0ZSB3aXRoIG9ubHkgdmFsaWQgc2RwTWlkIGFuZCBSVENJY2VDYW5kaWRhdGUgc2hvdWxk
IHN1Y2NlZWQgCiBQQVNTIEFkZCBjYW5kaWRhdGUgd2l0aCBvbmx5IHZhbGlkIHNkcE1MaW5lSW5k
ZXggc2hvdWxkIHN1Y2NlZWQgCiBGQUlMIGFkZEljZUNhbmRpZGF0ZSB3aXRoIGZpcnN0IHNkcE1p
ZCBhbmQgc2RwTUxpbmVJbmRleCBhZGQgY2FuZGlkYXRlIHRvIGZpcnN0IG1lZGlhIHN0cmVhbSBh
c3NlcnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVk
aWEgbGluZXMgbT1hdWRpbyBhbmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJ
TCBhZGRJY2VDYW5kaWRhdGUgd2l0aCBzZWNvbmQgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IHNo
b3VsZCBhZGQgY2FuZGlkYXRlIHRvIHNlY29uZCBtZWRpYSBzdHJlYW0gYXNzZXJ0X3RydWU6IEV4
cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBhZnRlciBtZWRpYSBsaW5lIG09dmlkZW8g
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKQEAgLTEzLDggKzIxLDYgQEAgRkFJTCBBZGQgd2l0aCBl
bXB0eSBjYW5kaWRhdGUgc3RyaW5nIChlbmQgb2YgY2FuZGlkYXRlKSBzaG91bGQgc3VjY2VlZCBw
cm9taXNlX3QKIFBBU1MgQWRkIGNhbmRpZGF0ZSB3aXRoIGJvdGggc2RwTWlkIGFuZCBzZHBNTGlu
ZUluZGV4IG1hbnVhbGx5IHNldCB0byBudWxsIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3Ig
CiBQQVNTIEFkZCBjYW5kaWRhdGUgd2l0aCBvbmx5IHZhbGlkIGNhbmRpZGF0ZSBzdHJpbmcgc2hv
dWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvciAKIFBBU1MgQWRkIGNhbmRpZGF0ZSB3aXRoIGludmFs
aWQgY2FuZGlkYXRlIHN0cmluZyBhbmQgYm90aCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXggbnVs
bCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yIAotUEFTUyBBZGQgY2FuZGlkYXRlIHdpdGgg
ZW1wdHkgZGljdCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yIAotUEFTUyBBZGQgY2FuZGlk
YXRlIHdpdGggbWFudWFsbHkgZmlsbGVkIGRlZmF1bHQgdmFsdWVzIHNob3VsZCByZWplY3Qgd2l0
aCBUeXBlRXJyb3IgCiBGQUlMIEFkZCBjYW5kaWRhdGUgd2l0aCBpbnZhbGlkIHNkcE1pZCBzaG91
bGQgcmVqZWN0IHdpdGggT3BlcmF0aW9uRXJyb3IgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhh
dmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIEZBSUwgQWRk
IGNhbmRpZGF0ZSB3aXRoIGludmFsaWQgc2RwTUxpbmVJbmRleCBzaG91bGQgcmVqZWN0IHdpdGgg
T3BlcmF0aW9uRXJyb3IgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVu
ZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIFBBU1MgSW52YWxpZCBzZHBNTGluZUlu
ZGV4IHNob3VsZCBiZSBpZ25vcmVkIGlmIHZhbGlkIHNkcE1pZCBpcyBwcm92aWRlZCAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS10aW1pbmcuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLXRpbWluZy5odHRwcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTJjYTNhZjI2ZmE1NzVjNzk0Zjk1ZTNhNjI5ZDQyOTMxY2UxODA3NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS10aW1pbmcuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitGQUlMIGFkZEljZUNhbmRpZGF0ZSBp
cyBub3QgcmVzb2x2ZWQgZmlyc3QgaWYgMnggc2V0TG9jYWxEZXNjcmlwdGlvbiBvcGVyYXRpb25z
IGFyZSBwZW5kaW5nIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMiCitGQUlMIGFkZEljZUNh
bmRpZGF0ZSBhbmQgc2V0TG9jYWxEZXNjcmlwdGlvbiBhcmUgcmVzb2x2ZWQgaW4gdGhlIGNvcnJl
Y3Qgb3JkZXIsIGFzIGRlZmluZWQgYnkgdGhlIG9wZXJhdGlvbnMgY2hhaW4gc3BlY2lmaWNhdGlv
biBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorRkFJTCBvbmljZWNhbmRpZGF0ZSBmaXJl
cyBhZnRlciByZXNvbHZpbmcgc2V0TG9jYWxEZXNjcmlwdGlvbiBpbiBvZmZlcmVyIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
Tm90IGVub3VnaCBhcmd1bWVudHMiCitQQVNTIG9uaWNlY2FuZGlkYXRlIGZpcmVzIGFmdGVyIHJl
c29sdmluZyBzZXRMb2NhbERlc2NyaXB0aW9uIGluIGFuc3dlcmVyIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtdGltaW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1hZGRJY2VDYW5kaWRhdGUtdGltaW5nLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc5Mzg0NGY1
NjkwMDkyNzQ0N2YwODBlYmJjOTIwMTFkNjAxZmI5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS10aW1pbmcuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE0OSBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKKy8vIEluIHRoaXMgdGVz
dCwgdGhlIHByb21pc2VzIHNob3VsZCByZXNvbHZlIGluIHRoZSBleGVjdXRpb24gb3JkZXIKKy8v
IChzZXRMb2NhbERlc2NyaXB0aW9uLCBzZXRMb2NhbERlc2NyaXB0aW9uLCBhZGRJY2VDYW5kaWRh
dGUpIGFzIGlzIGVuc3VyZWQgYnkKKy8vIHRoZSBPcGVyYXRpb25zIENoYWluOyBpZiBhbiBvcGVy
YXRpb24gaXMgcGVuZGluZywgZXhlY3V0aW5nIGFub3RoZXIgb3BlcmF0aW9uCisvLyB3aWxsIHF1
ZXVlIGl0LiBUaGlzIHRlc3Qgd2lsbCBmYWlsIGlmIGFuIE9wZXJhdGlvbnMgQ2hhaW4gaXMgbm90
IGltcGxlbWVudGVkLAorLy8gYnV0IGl0IGdpdmVzIHRoZSBpbXBsZW1lbnRhdGlvbiBzb21lIHNs
YWNrOiBpdCBvbmx5IGVuc3VyZXMgdGhhdAorLy8gYWRkSWNlQ2FuZGlkYXRlKCkgaXMgbm90IHJl
c29sdmVkIGZpcnN0LCBhbGxvd2luZyB0aW1pbmcgaXNzdWVzIGluIHJlc29sdmluZworLy8gcHJv
bWlzZXMgd2hlcmUgdGhlIHRlc3Qgc3RpbGwgcGFzc2VzIGV2ZW4gaWYgYWRkSWNlQ2FuZGlkYXRl
KCkgaXMgcmVzb2x2ZWQKKy8vICpiZWZvcmUqIHRoZSBzZWNvbmQgc2V0TG9jYWxEZXNjcmlwdGlv
bigpLgorLy8KKy8vIFRoaXMgdGVzdCBjb3ZlcnMgQ2hyb21lIGlzc3VlIChodHRwczovL2NyYnVn
LmNvbS8xMDE5MjIyKSwgYnV0IGRvZXMgbm90CisvLyByZXF1aXJlIHNldExvY2FsRGVzY3JpcHRp
b24tcHJvbWlzZXMgdG8gcmVzb2x2ZSBpbW1lZGlhdGVseSB3aGljaCBpcyBhbm90aGVyCisvLyBD
aHJvbWUgYnVnIChodHRwczovL2NyYnVnLmNvbS8xMDE5MjMyKS4gVGhlIHRydWUgb3JkZXIgaXMg
Y292ZXJlZCBieSB0aGUgbmV4dAorLy8gdGVzdC4KKy8vIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20v
MTAxOTIzMik6IERlbGV0ZSB0aGlzIHRlc3Qgd2hlbiB0aGUgbmV4dCB0ZXN0IHBhc3NlcworLy8g
aW4gQ2hyb21lLgorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBjYWxsZXIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xv
c2UoKSk7CisgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKKyAgY2FsbGVyLmFkZFRyYW5zY2VpdmVy
KCdhdWRpbycpOworCisgIGNvbnN0IGNhbmRpZGF0ZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICBjYWxsZXIub25pY2VjYW5kaWRhdGUgPSBlID0+IHJlc29sdmUoZS5jYW5k
aWRhdGUpOworICB9KTsKKyAgYXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQg
Y2FsbGVyLmNyZWF0ZU9mZmVyKCkpOworICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRp
b24oY2FsbGVyLmxvY2FsRGVzY3JpcHRpb24pOworICBjb25zdCBjYW5kaWRhdGUgPSBhd2FpdCBj
YW5kaWRhdGVQcm9taXNlOworCisgIC8vIENoYWluIHNldExvY2FsRGVzY3JpcHRpb24oKSwgc2V0
TG9jYWxEZXNjcmlwdGlvbigpIGFuZCBhZGRJY2VDYW5kaWRhdGUoKQorICAvLyB3aXRob3V0IHBl
cmZvcm1pbmcgYXdhaXQgYmV0d2VlbiB0aGUgY2FsbHMuCisgIGNvbnN0IHBlbmRpbmdQcm9taXNl
cyA9IFtdOworICBjb25zdCByZXNvbHZlT3JkZXIgPSBbXTsKKyAgcGVuZGluZ1Byb21pc2VzLnB1
c2goY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oKS50aGVuKCgpID0+IHsKKyAgICByZXNvbHZl
T3JkZXIucHVzaCgnc2V0TG9jYWxEZXNjcmlwdGlvbiAxJyk7CisgIH0pKTsKKyAgcGVuZGluZ1By
b21pc2VzLnB1c2goY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oKS50aGVuKCgpID0+IHsKKyAg
ICByZXNvbHZlT3JkZXIucHVzaCgnc2V0TG9jYWxEZXNjcmlwdGlvbiAyJyk7CisgIH0pKTsKKyAg
cGVuZGluZ1Byb21pc2VzLnB1c2goY2FsbGVlLmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUpLnRo
ZW4oKCkgPT4geworICAgIHJlc29sdmVPcmRlci5wdXNoKCdhZGRJY2VDYW5kaWRhdGUnKTsKKyAg
fSkpOworICBhd2FpdCBQcm9taXNlLmFsbChwZW5kaW5nUHJvbWlzZXMpOworCisgIGFzc2VydF9l
cXVhbHMocmVzb2x2ZU9yZGVyWzBdLCAnc2V0TG9jYWxEZXNjcmlwdGlvbiAxJyk7Cit9LCAnYWRk
SWNlQ2FuZGlkYXRlIGlzIG5vdCByZXNvbHZlZCBmaXJzdCBpZiAyeCBzZXRMb2NhbERlc2NyaXB0
aW9uICcgKworICAgJ29wZXJhdGlvbnMgYXJlIHBlbmRpbmcnKTsKKworcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICBjb25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7CisgIGNvbnN0IGNhbGxlZSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9z
ZSgpKTsKKyAgY2FsbGVyLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworCisgIGNvbnN0IGNhbmRp
ZGF0ZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICBjYWxsZXIub25pY2Vj
YW5kaWRhdGUgPSBlID0+IHJlc29sdmUoZS5jYW5kaWRhdGUpOworICB9KTsKKyAgYXdhaXQgY2Fs
bGVyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCkpOworICBh
d2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24oY2FsbGVyLmxvY2FsRGVzY3JpcHRpb24p
OworICBjb25zdCBjYW5kaWRhdGUgPSBhd2FpdCBjYW5kaWRhdGVQcm9taXNlOworCisgIC8vIENo
YWluIHNldExvY2FsRGVzY3JpcHRpb24oKSwgc2V0TG9jYWxEZXNjcmlwdGlvbigpIGFuZCBhZGRJ
Y2VDYW5kaWRhdGUoKQorICAvLyB3aXRob3V0IHBlcmZvcm1pbmcgYXdhaXQgYmV0d2VlbiB0aGUg
Y2FsbHMuCisgIGNvbnN0IHBlbmRpbmdQcm9taXNlcyA9IFtdOworICBjb25zdCByZXNvbHZlT3Jk
ZXIgPSBbXTsKKyAgcGVuZGluZ1Byb21pc2VzLnB1c2goY2FsbGVlLnNldExvY2FsRGVzY3JpcHRp
b24oKS50aGVuKCgpID0+IHsKKyAgICByZXNvbHZlT3JkZXIucHVzaCgnc2V0TG9jYWxEZXNjcmlw
dGlvbiAxJyk7CisgIH0pKTsKKyAgcGVuZGluZ1Byb21pc2VzLnB1c2goY2FsbGVlLnNldExvY2Fs
RGVzY3JpcHRpb24oKS50aGVuKCgpID0+IHsKKyAgICByZXNvbHZlT3JkZXIucHVzaCgnc2V0TG9j
YWxEZXNjcmlwdGlvbiAyJyk7CisgIH0pKTsKKyAgcGVuZGluZ1Byb21pc2VzLnB1c2goY2FsbGVl
LmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUpLnRoZW4oKCkgPT4geworICAgIHJlc29sdmVPcmRl
ci5wdXNoKCdhZGRJY2VDYW5kaWRhdGUnKTsKKyAgfSkpOworICBhd2FpdCBQcm9taXNlLmFsbChw
ZW5kaW5nUHJvbWlzZXMpOworCisgIC8vIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGJvdGggaXNz
dWVzIGRlc2NyaWJlZCBpbiBodHRwczovL2NyYnVnLmNvbS8xMDE5MjIyCisgIC8vIGFuZCBodHRw
czovL2NyYnVnLmNvbS8xMDE5MjMyIGFyZSBmaXhlZC4gSWYgdGhpcyB0ZXN0IHBhc3NlcyBpbiBD
aHJvbWUsIHRoZQorICAvLyBJQ0UgY2FuZGlkYXRlIGV4Y2hhbmdlIGlzc3VlcyBkZXNjcmliZWQg
aW4KKyAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVz
LzE5ODY2IHNob3VsZCBiZSByZXNvbHZlZC4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscygKKyAgICAg
IHJlc29sdmVPcmRlciwKKyAgICAgIFsnc2V0TG9jYWxEZXNjcmlwdGlvbiAxJywgJ3NldExvY2Fs
RGVzY3JpcHRpb24gMicsICdhZGRJY2VDYW5kaWRhdGUnXSk7Cit9LCAnYWRkSWNlQ2FuZGlkYXRl
IGFuZCBzZXRMb2NhbERlc2NyaXB0aW9uIGFyZSByZXNvbHZlZCBpbiB0aGUgY29ycmVjdCAnICsK
KyAgICdvcmRlciwgYXMgZGVmaW5lZCBieSB0aGUgb3BlcmF0aW9ucyBjaGFpbiBzcGVjaWZpY2F0
aW9uJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgY2FsbGVyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3Nl
KCkpOworICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgIGNhbGxlci5hZGRUcmFuc2NlaXZlcign
YXVkaW8nKTsKKyAgbGV0IGV2ZW50cyA9IFtdOworICBsZXQgcGVuZGluZ1Byb21pc2VzID0gW107
CisKKyAgY29uc3Qgb25DYW5kaWRhdGVQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7
CisgICAgY2FsbGVyLm9uaWNlY2FuZGlkYXRlID0gKCkgPT4geworICAgICAgZXZlbnRzLnB1c2go
J2NhbmRpZGF0ZSBnZW5lcmF0ZWQnKTsKKyAgICAgIHJlc29sdmUoKTsKKyAgICB9CisgIH0pOwor
ICBwZW5kaW5nUHJvbWlzZXMucHVzaChvbkNhbmRpZGF0ZVByb21pc2UpOworICBwZW5kaW5nUHJv
bWlzZXMucHVzaChjYWxsZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigpLnRoZW4oKCkgPT4geworICAg
IGV2ZW50cy5wdXNoKCdzZXRMb2NhbERlc2NyaXB0aW9uJyk7CisgIH0pKTsKKyAgYXdhaXQgUHJv
bWlzZS5hbGwocGVuZGluZ1Byb21pc2VzKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMs
IFsnc2V0TG9jYWxEZXNjcmlwdGlvbicsICdjYW5kaWRhdGUgZ2VuZXJhdGVkJ10pOworfSwgJ29u
aWNlY2FuZGlkYXRlIGZpcmVzIGFmdGVyIHJlc29sdmluZyBzZXRMb2NhbERlc2NyaXB0aW9uIGlu
IG9mZmVyZXInKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBjYWxsZXIg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIu
Y2xvc2UoKSk7CisgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKKyAgY2FsbGVyLmFkZFRyYW5zY2Vp
dmVyKCdhdWRpbycpOworICBsZXQgZXZlbnRzID0gW107CisgIGxldCBwZW5kaW5nUHJvbWlzZXMg
PSBbXTsKKworICBjYWxsZXIub25pY2VjYW5kaWRhdGUgPSAoZXYpID0+IHsKKyAgICBpZiAoZXYu
Y2FuZGlkYXRlKSB7CisgICAgICBjYWxsZWUuYWRkSWNlQ2FuZGlkYXRlKGV2LmNhbmRpZGF0ZSk7
CisgICAgfQorICB9CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7
CisgIGNvbnN0IG9uQ2FuZGlkYXRlUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewor
ICAgIGNhbGxlZS5vbmljZWNhbmRpZGF0ZSA9ICgpID0+IHsKKyAgICAgIGV2ZW50cy5wdXNoKCdj
YW5kaWRhdGUgZ2VuZXJhdGVkJyk7CisgICAgICByZXNvbHZlKCk7CisgICAgfQorICB9KTsKKyAg
YXdhaXQgY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3QgYW5zd2Vy
ID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpOworICBwZW5kaW5nUHJvbWlzZXMucHVzaChv
bkNhbmRpZGF0ZVByb21pc2UpOworICBwZW5kaW5nUHJvbWlzZXMucHVzaChjYWxsZWUuc2V0TG9j
YWxEZXNjcmlwdGlvbihhbnN3ZXIpLnRoZW4oKCkgPT4geworICAgIGV2ZW50cy5wdXNoKCdzZXRM
b2NhbERlc2NyaXB0aW9uJyk7CisgIH0pKTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwocGVuZGluZ1By
b21pc2VzKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsIFsnc2V0TG9jYWxEZXNjcmlw
dGlvbicsICdjYW5kaWRhdGUgZ2VuZXJhdGVkJ10pOworfSwgJ29uaWNlY2FuZGlkYXRlIGZpcmVz
IGFmdGVyIHJlc29sdmluZyBzZXRMb2NhbERlc2NyaXB0aW9uIGluIGFuc3dlcmVyJyk7CisKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbAppbmRleCAyMjgzYzY4MzVlMTQwMWYzNDE2
ZDc5YTYyODFmMjVjMDlmMWIzMDIyLi5jNjhlNDQyYTJkNTA5NGYyMmQ1MDhlYzhiNjgwNGJjMmE1
OGQwNzJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbApAQCAtODUsNDQgKzg1LDM3IEBAIGE9
cnRjcC1yc2l6ZQogICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxd
L2csICdcXCQmJyk7CiAgIH0KIAotICAvLyBDaGVjayB0aGF0IGEgY2FuZGlkYXRlIGxpbmUgaXMg
Zm91bmQgYWZ0ZXIgdGhlIGZpcnN0IG1lZGlhIGxpbmUKLSAgLy8gYnV0IGJlZm9yZSB0aGUgc2Vj
b25kLCBpLmUuIGl0IGJlbG9uZ3MgdG8gdGhlIGZpcnN0IG1lZGlhIHN0cmVhbQotICBmdW5jdGlv
biBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYmV0d2VlbihzZHAsIGJlZm9yZU1lZGlhTGluZSwgY2Fu
ZGlkYXRlTGluZSwgYWZ0ZXJNZWRpYUxpbmUpIHsKKyAgZnVuY3Rpb24gaXNfY2FuZGlkYXRlX2xp
bmVfYmV0d2VlbihzZHAsIGJlZm9yZU1lZGlhTGluZSwgY2FuZGlkYXRlTGluZSwgYWZ0ZXJNZWRp
YUxpbmUpIHsKICAgICBjb25zdCBsaW5lMSA9IGVzY2FwZVJlZ0V4cChiZWZvcmVNZWRpYUxpbmUp
OwogICAgIGNvbnN0IGxpbmUyID0gZXNjYXBlUmVnRXhwKGNhbmRpZGF0ZUxpbmUpOwogICAgIGNv
bnN0IGxpbmUzID0gZXNjYXBlUmVnRXhwKGFmdGVyTWVkaWFMaW5lKTsKIAogICAgIGNvbnN0IHJl
Z2V4ID0gbmV3IFJlZ0V4cChgJHtsaW5lMX1bXl0rJHtsaW5lMn1bXl0rJHtsaW5lM31gKTsKKyAg
ICByZXR1cm4gcmVnZXgudGVzdChzZHApOworICB9CiAKLSAgICBhc3NlcnRfdHJ1ZShyZWdleC50
ZXN0KHNkcCksCisgIC8vIENoZWNrIHRoYXQgYSBjYW5kaWRhdGUgbGluZSBpcyBmb3VuZCBhZnRl
ciB0aGUgZmlyc3QgbWVkaWEgbGluZQorICAvLyBidXQgYmVmb3JlIHRoZSBzZWNvbmQsIGkuZS4g
aXQgYmVsb25ncyB0byB0aGUgZmlyc3QgbWVkaWEgc3RyZWFtCisgIGZ1bmN0aW9uIGFzc2VydF9j
YW5kaWRhdGVfbGluZV9iZXR3ZWVuKHNkcCwgYmVmb3JlTWVkaWFMaW5lLCBjYW5kaWRhdGVMaW5l
LCBhZnRlck1lZGlhTGluZSkgeworICAgIGFzc2VydF90cnVlKGlzX2NhbmRpZGF0ZV9saW5lX2Jl
dHdlZW4oc2RwLCBiZWZvcmVNZWRpYUxpbmUsIGNhbmRpZGF0ZUxpbmUsIGFmdGVyTWVkaWFMaW5l
KSwKICAgICAgIGBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRp
YSBsaW5lcyAke2JlZm9yZU1lZGlhTGluZX0gYW5kICR7YWZ0ZXJNZWRpYUxpbmV9YCk7CiAgIH0K
IAogICAvLyBDaGVjayB0aGF0IGEgY2FuZGlkYXRlIGxpbmUgaXMgZm91bmQgYWZ0ZXIgdGhlIHNl
Y29uZCBtZWRpYSBsaW5lCiAgIC8vIGkuZS4gaXQgYmVsb25ncyB0byB0aGUgc2Vjb25kIG1lZGlh
IHN0cmVhbQotICBmdW5jdGlvbiBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYWZ0ZXIoc2RwLCBiZWZv
cmVNZWRpYUxpbmUsIGNhbmRpZGF0ZUxpbmUpIHsKKyAgZnVuY3Rpb24gaXNfY2FuZGlkYXRlX2xp
bmVfYWZ0ZXIoc2RwLCBiZWZvcmVNZWRpYUxpbmUsIGNhbmRpZGF0ZUxpbmUpIHsKICAgICBjb25z
dCBsaW5lMSA9IGVzY2FwZVJlZ0V4cChiZWZvcmVNZWRpYUxpbmUpOwogICAgIGNvbnN0IGxpbmUy
ID0gZXNjYXBlUmVnRXhwKGNhbmRpZGF0ZUxpbmUpOwogCiAgICAgY29uc3QgcmVnZXggPSBuZXcg
UmVnRXhwKGAke2xpbmUxfVteXSske2xpbmUyfWApOwogCi0gICAgYXNzZXJ0X3RydWUocmVnZXgu
dGVzdChzZHApLAotICAgICAgYEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBmb3VuZCBhZnRl
ciBtZWRpYSBsaW5lICR7YmVmb3JlTWVkaWFMaW5lfWApOworICAgIHJldHVybiByZWdleC50ZXN0
KHNkcCk7CiAgIH0KIAotICAvLyBSZWplY3QgYmVjYXVzZSBXZWJJREwgZm9yIGFkZEljZUNhbmRp
ZGF0ZSBkb2VzIG5vdCBhbGxvdyBudWxsIGFyZ3VtZW50Ci0gIC8vIG51bGwgY2FuIGJlIGFjY2lk
ZW50YWxseSBwYXNzZWQgZnJvbSBvbmljZWNhbmRpZGF0ZSBldmVudCBoYW5kbGVyCi0gIC8vIHdo
ZW4gbnVsbCBpcyB1c2VkIHRvIGluZGljYXRlIGVuZCBvZiBjYW5kaWRhdGUKLSAgcHJvbWlzZV90
ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0KLSAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotCi0gICAgcmV0dXJuIHBjLnNldFJl
bW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKQotICAgIC50aGVuKCgpID0+Ci0gICAgICBwcm9t
aXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAotICAgICAgICBwYy5hZGRJY2VDYW5kaWRh
dGUobnVsbCkpKTsKLSAgfSwgJ0FkZCBudWxsIGNhbmRpZGF0ZSBzaG91bGQgcmVqZWN0IHdpdGgg
VHlwZUVycm9yJyk7CisgIGZ1bmN0aW9uIGFzc2VydF9jYW5kaWRhdGVfbGluZV9hZnRlcihzZHAs
IGJlZm9yZU1lZGlhTGluZSwgY2FuZGlkYXRlTGluZSkgeworICAgIGFzc2VydF90cnVlKGlzX2Nh
bmRpZGF0ZV9saW5lX2FmdGVyKHNkcCwgYmVmb3JlTWVkaWFMaW5lLCBjYW5kaWRhdGVMaW5lKSwK
KyAgICAgIGBFeHBlY3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYWZ0ZXIgbWVkaWEgbGlu
ZSAke2JlZm9yZU1lZGlhTGluZX1gKTsKKyAgfQogCiAgIC8qCiAgICAgNC40LjIuICBhZGRJY2VD
YW5kaWRhdGUKQEAgLTEzNSw3ICsxMjgsNyBAQCBhPXJ0Y3AtcnNpemUKIAogICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQs
ICdJbnZhbGlkU3RhdGVFcnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwg
J0ludmFsaWRTdGF0ZUVycm9yJywKICAgICAgIHBjLmFkZEljZUNhbmRpZGF0ZSh7CiAgICAgICAg
IGNhbmRpZGF0ZTogY2FuZGlkYXRlU3RyMSwKICAgICAgICAgc2RwTWlkOiBzZHBNaWQxLApAQCAt
MTQ3LDYgKzE0MCw5MCBAQCBhPXJ0Y3AtcnNpemUKICAgLyoKICAgICBTdWNjZXNzIGNhc2VzCiAg
ICAqLworCisgIC8vIEFsbCBvZiB0aGVzZSBzaG91bGQgd29yaywgYmVjYXVzZSBhbGwgb2YgdGhl
c2UgZW5kIHVwIGJlaW5nIGVxdWl2YWxlbnQgdG8gdGhlCisgIC8vIHNhbWUgdGhpbmc7IGFuIGVu
ZC1vZi1jYW5kaWRhdGVzIHNpZ25hbCBmb3IgYWxsIGxldmVscy9taWRzL3VmcmFncy4KKyAgWwor
ICAgIC8vIFRoaXMgaXMganVzdCB0aGUgZGVmYXVsdC4gRXZlcnl0aGluZyBlbHNlIGhlcmUgaXMg
ZXF1aXZhbGVudCB0byB0aGlzLgorICAgIHsKKyAgICAgIGNhbmRpZGF0ZTogJycsCisgICAgICBz
ZHBNaWQ6IG51bGwsCisgICAgICBzZHBNTGluZUluZGV4OiBudWxsLAorICAgICAgdXNlcm5hbWVG
cmFnbWVudDogdW5kZWZpbmVkCisgICAgfSwKKyAgICAvLyBUaGUgYXJnIGlzIG9wdGlvbmFsLCBz
byB3aGVuIHBhc3NpbmcgdW5kZWZpbmVkIHdlJ2xsIGp1c3QgZ2V0IHRoZSBkZWZhdWx0CisgICAg
dW5kZWZpbmVkLAorICAgIC8vIFRoZSBhcmcgaXMgb3B0aW9uYWwsIGJ1dCBub3QgbnVsbGFibGUs
IHNvIHdlIGdldCB0aGUgZGVmYXVsdCBhZ2FpbgorICAgIG51bGwsCisgICAgLy8gTWVtYmVycyBp
biB0aGUgZGljdGlvbmFyeSB0YWtlIHRoZWlyIGRlZmF1bHQgdmFsdWVzCisgICAge30KKyAgXS5m
b3JFYWNoKGluaXQgPT4gcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOworCisgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2Mp
OworICAgIGF3YWl0IHBjLmFkZEljZUNhbmRpZGF0ZShpbml0KTsKKyAgICBhc3NlcnRfY2FuZGlk
YXRlX2xpbmVfYmV0d2VlbihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCisgICAgICBtZWRpYUxp
bmUxLCBlbmRPZkNhbmRpZGF0ZUxpbmUsIG1lZGlhTGluZTIpOworICAgIGFzc2VydF9jYW5kaWRh
dGVfbGluZV9hZnRlcihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCisgICAgICBtZWRpYUxpbmUy
LCBlbmRPZkNhbmRpZGF0ZUxpbmUpOworICB9LCBgYWRkSWNlQ2FuZGlkYXRlKCR7SlNPTi5zdHJp
bmdpZnkoaW5pdCl9KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRv
IGJvdGggbS1zZWN0aW9uc2ApKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjLmNsb3NlKCkpOworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Np
b25EZXNjKTsKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjLmNyZWF0
ZUFuc3dlcigpKTsKKyAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoe30pOworICAgIGFzc2Vy
dF9jYW5kaWRhdGVfbGluZV9iZXR3ZWVuKHBjLnJlbW90ZURlc2NyaXB0aW9uLnNkcCwKKyAgICAg
IG1lZGlhTGluZTEsIGVuZE9mQ2FuZGlkYXRlTGluZSwgbWVkaWFMaW5lMik7CisgICAgYXNzZXJ0
X2NhbmRpZGF0ZV9saW5lX2FmdGVyKHBjLnJlbW90ZURlc2NyaXB0aW9uLnNkcCwKKyAgICAgIG1l
ZGlhTGluZTIsIGVuZE9mQ2FuZGlkYXRlTGluZSk7CisgIH0sICdhZGRJY2VDYW5kaWRhdGUoe30p
IGluIHN0YWJsZSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGJv
dGggbS1zZWN0aW9ucycpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Np
b25EZXNjKTsKKyAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoeworICAgICAgdXNlcm5hbWVG
cmFnbWVudDogdXNlcm5hbWVGcmFnbWVudDEsCisgICAgICBzZHBNaWQ6IHNkcE1pZDEKKyAgICB9
KTsKKyAgICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVfYmV0d2VlbihwYy5yZW1vdGVEZXNjcmlwdGlv
bi5zZHAsCisgICAgICBtZWRpYUxpbmUxLCBlbmRPZkNhbmRpZGF0ZUxpbmUsIG1lZGlhTGluZTIp
OworICAgIGFzc2VydF9mYWxzZShpc19jYW5kaWRhdGVfbGluZV9hZnRlcihwYy5yZW1vdGVEZXNj
cmlwdGlvbi5zZHAsCisgICAgICBtZWRpYUxpbmUyLCBlbmRPZkNhbmRpZGF0ZUxpbmUpKTsKKyAg
fSwgJ2FkZEljZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFnbWVudDogdXNlcm5hbWVGcmFnbWVudDEs
IHNkcE1pZDogc2RwTWlkMX0pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0
ZXMgdG8gdGhlIGZpcnN0IG0tc2VjdGlvbicpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHNlc3Npb25EZXNjKTsKKyAgICBhd2FpdCBwYy5hZGRJY2VDYW5kaWRhdGUoeworICAg
ICAgdXNlcm5hbWVGcmFnbWVudDogdXNlcm5hbWVGcmFnbWVudDIsCisgICAgICBzZHBNTGluZUlu
ZGV4OiAxCisgICAgfSk7CisgICAgYXNzZXJ0X2ZhbHNlKGlzX2NhbmRpZGF0ZV9saW5lX2JldHdl
ZW4ocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAorICAgICAgbWVkaWFMaW5lMSwgZW5kT2ZDYW5k
aWRhdGVMaW5lLCBtZWRpYUxpbmUyKSk7CisgICAgYXNzZXJ0X3RydWUoaXNfY2FuZGlkYXRlX2xp
bmVfYWZ0ZXIocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAorICAgICAgbWVkaWFMaW5lMiwgZW5k
T2ZDYW5kaWRhdGVMaW5lKSk7CisgIH0sICdhZGRJY2VDYW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21l
bnQ6IHVzZXJuYW1lRnJhZ21lbnQyLCBzZHBNTGluZUluZGV4OiAxfSkgc2hvdWxkIHdvcmssIGFu
ZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byB0aGUgZmlyc3QgbS1zZWN0aW9uJyk7CisKKyAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAg
YXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpOworICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20odCwgJ09wZXJhdGlvbkVycm9yJywKKyAgICAgIHBjLmFkZEljZUNh
bmRpZGF0ZSh7dXNlcm5hbWVGcmFnbWVudDogIm5vIHN1Y2ggdWZyYWcifSkpOworICB9LCAnYWRk
SWNlQ2FuZGlkYXRlKHt1c2VybmFtZUZyYWdtZW50OiAibm8gc3VjaCB1ZnJhZyJ9KSBzaG91bGQg
bm90IHdvcmsnKTsKKwogICBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKIApAQCAtMTg2LDYgKzI2MywxNyBAQCBhPXJ0Y3AtcnNpemUK
ICAgICAgICAgc2RwTWlkOiBzZHBNaWQxIH0pKTsKICAgfSwgJ0FkZCBjYW5kaWRhdGUgd2l0aCBv
bmx5IHZhbGlkIHNkcE1pZCBzaG91bGQgc3VjY2VlZCcpOwogCisgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNj
cmlwdGlvbihzZXNzaW9uRGVzYykKKyAgICAgIC50aGVuKCgpID0+IHBjLmFkZEljZUNhbmRpZGF0
ZShuZXcgUlRDSWNlQ2FuZGlkYXRlKHsKKyAgICAgICAgY2FuZGlkYXRlOiBjYW5kaWRhdGVTdHIx
LAorICAgICAgICBzZHBNaWQ6IHNkcE1pZDEgfSkpKTsKKyAgfSwgJ0FkZCBjYW5kaWRhdGUgd2l0
aCBvbmx5IHZhbGlkIHNkcE1pZCBhbmQgUlRDSWNlQ2FuZGlkYXRlIHNob3VsZCBzdWNjZWVkJyk7
CisKICAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAKQEAgLTI1NCw3ICszNDIsNyBAQCBhPXJ0Y3AtcnNpemUKICAgICAgIGNhbmRp
ZGF0ZTogY2FuZGlkYXRlU3RyMSwKICAgICAgIHNkcE1pZDogc2RwTWlkMSwKICAgICAgIHNkcE1M
aW5lSW5kZXg6IHNkcE1MaW5lSW5kZXgxLAotICAgICAgdWZyYWc6IG51bGwKKyAgICAgIHVzZXJu
YW1lRnJhZ21lbnQ6IG51bGwKICAgICB9KSkKICAgICAudGhlbigoKSA9PiB7CiAgICAgICBhc3Nl
cnRfY2FuZGlkYXRlX2xpbmVfYmV0d2VlbihwYy5yZW1vdGVEZXNjcmlwdGlvbi5zZHAsCkBAIC0z
NDIsNyArNDMwLDcgQEAgYT1ydGNwLXJzaXplCiAKICAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oc2Vzc2lvbkRlc2MpCiAgICAgLnRoZW4oKCkgPT4KLSAgICAgIHByb21pc2VfcmVq
ZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksCisgICAgICBwcm9taXNlX3JlamVjdHNfanModCwgVHlw
ZUVycm9yLAogICAgICAgICBwYy5hZGRJY2VDYW5kaWRhdGUoewogICAgICAgICAgIGNhbmRpZGF0
ZTogY2FuZGlkYXRlU3RyMSwKICAgICAgICAgICBzZHBNaWQ6IG51bGwsCkBAIC0zNTcsNyArNDQ1
LDcgQEAgYT1ydGNwLXJzaXplCiAKICAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24o
c2Vzc2lvbkRlc2MpCiAgICAgLnRoZW4oKCkgPT4KLSAgICAgIHByb21pc2VfcmVqZWN0cyh0LCBu
ZXcgVHlwZUVycm9yKCksCisgICAgICBwcm9taXNlX3JlamVjdHNfanModCwgVHlwZUVycm9yLAog
ICAgICAgICBwYy5hZGRJY2VDYW5kaWRhdGUoewogICAgICAgICAgIGNhbmRpZGF0ZTogY2FuZGlk
YXRlU3RyMQogICAgICAgICB9KSkpOwpAQCAtMzcwLDcgKzQ1OCw3IEBAIGE9cnRjcC1yc2l6ZQog
CiAgICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKQogICAgIC50
aGVuKCgpID0+Ci0gICAgICBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAorICAg
ICAgcHJvbWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwKICAgICAgICAgcGMuYWRkSWNlQ2Fu
ZGlkYXRlKHsKICAgICAgICAgICBjYW5kaWRhdGU6IGludmFsaWRDYW5kaWRhdGVTdHIsCiAgICAg
ICAgICAgc2RwTWlkOiBudWxsLApAQCAtMzc4LDMzICs0NjYsNiBAQCBhPXJ0Y3AtcnNpemUKICAg
ICAgICAgfSkpKTsKICAgfSwgJ0FkZCBjYW5kaWRhdGUgd2l0aCBpbnZhbGlkIGNhbmRpZGF0ZSBz
dHJpbmcgYW5kIGJvdGggc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IG51bGwgc2hvdWxkIHJlamVj
dCB3aXRoIFR5cGVFcnJvcicpOwogCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotCi0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKLQotICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9u
RGVzYykKLSAgICAudGhlbigoKSA9PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBl
RXJyb3IoKSwKLSAgICAgICAgcGMuYWRkSWNlQ2FuZGlkYXRlKHt9KSkpOwotICB9LCAnQWRkIGNh
bmRpZGF0ZSB3aXRoIGVtcHR5IGRpY3Qgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcicpOwot
Ci0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOwotCi0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLQotICAgIHJl
dHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYykKLSAgICAudGhlbigoKSA9
PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAgICAgcGMu
YWRkSWNlQ2FuZGlkYXRlKHsKLSAgICAgICAgICBjYW5kaWRhdGU6ICcnLAotICAgICAgICAgIHNk
cE1pZDogbnVsbCwKLSAgICAgICAgICBzZHBNTGluZUluZGV4OiBudWxsLAotICAgICAgICAgIHVz
ZXJuYW1lRnJhZ21lbnQ6IHVuZGVmaW5lZAotICAgICAgICB9KSkpOwotICB9LCAnQWRkIGNhbmRp
ZGF0ZSB3aXRoIG1hbnVhbGx5IGZpbGxlZCBkZWZhdWx0IHZhbHVlcyBzaG91bGQgcmVqZWN0IHdp
dGggVHlwZUVycm9yJyk7Ci0KICAgLyoKICAgICA0LjQuMi4gIGFkZEljZUNhbmRpZGF0ZQogICAg
ICAgNC4zLiAgSWYgY2FuZGlkYXRlLnNkcE1pZCBpcyBub3QgbnVsbCwgcnVuIHRoZSBmb2xsb3dp
bmcgc3RlcHM6CkBAIC00MTksNyArNDgwLDcgQEAgYT1ydGNwLXJzaXplCiAKICAgICByZXR1cm4g
cGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpCiAgICAgLnRoZW4oKCkgPT4KLSAg
ICAgIHByb21pc2VfcmVqZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAorICAgICAgcHJvbWlzZV9y
ZWplY3RzX2RvbSh0LCAnT3BlcmF0aW9uRXJyb3InLAogICAgICAgICBwYy5hZGRJY2VDYW5kaWRh
dGUoewogICAgICAgICAgIGNhbmRpZGF0ZTogY2FuZGlkYXRlU3RyMSwKICAgICAgICAgICBzZHBN
aWQ6ICdpbnZhbGlkJywKQEAgLTQ0Myw3ICs1MDQsNyBAQCBhPXJ0Y3AtcnNpemUKIAogICAgIHJl
dHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYykKICAgICAudGhlbigoKSA9
PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdPcGVyYXRpb25FcnJvcicsCisgICAgICBwcm9t
aXNlX3JlamVjdHNfZG9tKHQsICdPcGVyYXRpb25FcnJvcicsCiAgICAgICAgIHBjLmFkZEljZUNh
bmRpZGF0ZSh7CiAgICAgICAgICAgY2FuZGlkYXRlOiBjYW5kaWRhdGVTdHIxLAogICAgICAgICAg
IHNkcE1MaW5lSW5kZXg6IDIsCkBAIC00OTksMTIgKzU2MCwxMiBAQCBhPXJ0Y3AtcnNpemUKIAog
ICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYykKICAgICAudGhl
bigoKSA9PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdPcGVyYXRpb25FcnJvcicsCisgICAg
ICBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdPcGVyYXRpb25FcnJvcicsCiAgICAgICAgIHBjLmFk
ZEljZUNhbmRpZGF0ZSh7CiAgICAgICAgICAgY2FuZGlkYXRlOiBjYW5kaWRhdGVTdHIxLAogICAg
ICAgICAgIHNkcE1pZDogc2RwTWlkMSwKICAgICAgICAgICBzZHBNTGluZUluZGV4OiBzZHBNTGlu
ZUluZGV4MSwKLSAgICAgICAgICB1ZnJhZzogJ2ludmFsaWQnCisgICAgICAgICAgdXNlcm5hbWVG
cmFnbWVudDogJ2ludmFsaWQnCiAgICAgICAgIH0pKSk7CiAgIH0sICdBZGQgY2FuZGlkYXRlIHdp
dGggaW52YWxpZCB1c2VybmFtZUZyYWdtZW50IHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25F
cnJvcicpOwogCkBAIC01MjIsNyArNTgzLDcgQEAgYT1ydGNwLXJzaXplCiAKICAgICByZXR1cm4g
cGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpCiAgICAgLnRoZW4oKCkgPT4KLSAg
ICAgIHByb21pc2VfcmVqZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAorICAgICAgcHJvbWlzZV9y
ZWplY3RzX2RvbSh0LCAnT3BlcmF0aW9uRXJyb3InLAogICAgICAgICBwYy5hZGRJY2VDYW5kaWRh
dGUoewogICAgICAgICAgIGNhbmRpZGF0ZTogaW52YWxpZENhbmRpZGF0ZVN0ciwKICAgICAgICAg
ICBzZHBNaWQ6IHNkcE1pZDEsCkBAIC01MzgsMTIgKzU5OSwxMiBAQCBhPXJ0Y3AtcnNpemUKIAog
ICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYykKICAgICAudGhl
bigoKSA9PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdPcGVyYXRpb25FcnJvcicsCisgICAg
ICBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdPcGVyYXRpb25FcnJvcicsCiAgICAgICAgIHBjLmFk
ZEljZUNhbmRpZGF0ZSh7CiAgICAgICAgICAgY2FuZGlkYXRlOiBjYW5kaWRhdGVTdHIyLAogICAg
ICAgICAgIHNkcE1pZDogc2RwTWlkMiwKICAgICAgICAgICBzZHBNTGluZUluZGV4OiBzZHBNTGlu
ZUluZGV4MiwKLSAgICAgICAgICB1c2VybmFtZUZyYWdlbWVudDogdXNlcm5hbWVGcmFnbWVudDEK
KyAgICAgICAgICB1c2VybmFtZUZyYWdtZW50OiB1c2VybmFtZUZyYWdtZW50MQogICAgICAgICB9
KSkpOwogICB9LCAnQWRkIGNhbmRpZGF0ZSB3aXRoIHNkcE1pZCBiZWxvbmdpbmcgdG8gZGlmZmVy
ZW50IHVzZXJuYW1lRnJhZ21lbnQgc2hvdWxkIHJlamVjdCB3aXRoIE9wZXJhdGlvbkVycm9yJyk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1hZGRUcmFjay5odHRwcy5odG1sCmluZGV4IDE1NTBmYzRmNzk0M2I3OWNjMzMxZDVjOTNj
YTZkNTY0Mzc5M2RlYWQuLjc1ODU5NjFmMzFjZTk0MmRiOTRhNmU1OWJlNzZjZjhiOGIzZGUwZGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tYWRkVHJhY2suaHR0cHMuaHRtbApAQCAtNDYsNyArNDYsNyBAQAogICAgIGNvbnN0IFt0
cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAKICAgICBwYy5jbG9zZSgpOwotICAgIGFzc2Vy
dF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gcGMuYWRkVHJhY2sodHJhY2ssIHN0
cmVhbSkpCisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4g
cGMuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSkpCiAgIH0sICdhZGRUcmFjayB3aGVuIHBjIGlzIGNs
b3NlZCBzaG91bGQgdGhyb3cgSW52YWxpZFN0YXRlRXJyb3InKTsKIAogICAvKgpAQCAtMTQyLDcg
KzE0Miw3IEBACiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKIAogICAg
IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOwotICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRB
Y2Nlc3NFcnJvcicsICgpID0+IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pKTsKKyAgICBhc3Nl
cnRfdGhyb3dzX2RvbSgnSW52YWxpZEFjY2Vzc0Vycm9yJywgKCkgPT4gcGMuYWRkVHJhY2sodHJh
Y2ssIHN0cmVhbSkpOwogICB9LCAnQWRkaW5nIHRoZSBzYW1lIHRyYWNrIG11bHRpcGxlIHRpbWVz
IHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3InKTsKIAogICAvKgpAQCAtMTkwLDcgKzE5
MCw3IEBACiAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5zZW5kZXIudHJhY2ssIG51bGwp
OwogICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZHJlY3YnKTsK
IAotICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHthdWRpbzogdHJ1ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNl
U3RyZWFtKHthdWRpbzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdl
dFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3Ry
YWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgICBjb25zdCBzZW5kZXIgPSBwYy5hZGRUcmFj
ayh0cmFjayk7CkBAIC0yMDUsNyArMjA1LDcgQEAKICAgICBjb25zdCBjYWxsZWUgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgp
KTsKIAotICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5v
aXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFt
LmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3Qg
W3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IGNh
bGxlci5hZGRUcmFuc2NlaXZlcih0cmFjayk7CkBAIC0yNDYsNyArMjQ2LDcgQEAKICAgICBhc3Nl
cnRfZXF1YWxzKHRyYW5zY2VpdmVyLnNlbmRlci50cmFjaywgbnVsbCk7CiAgICAgYXNzZXJ0X2Vx
dWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdyZWN2b25seScpOwogCi0gICAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0
cnVlfSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0
cnVlfSk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFj
aCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdl
dFRyYWNrcygpOwogICAgIGNvbnN0IHNlbmRlciA9IHBjLmFkZFRyYWNrKHRyYWNrKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYW5zY2VpdmVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWFkZFRyYW5zY2VpdmVyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwNjhhNjRm
YjEwYzJiZGM0OWQ0NTAwOThkYTM4NDE3YmQ1OTRlNTZlLi4yNTZlZjcxZmE5NzBjOWZiM2ExYTFk
MjVhM2FlYzYzMTJmM2M3OWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFuc2NlaXZl
ci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhbnNjZWl2ZXIuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC03LDEzICs3LDEzIEBAIFBBU1MgYWRkVHJhbnNjZWl2ZXIoKSB3
aXRoIGRpcmVjdGlvbiBpbmFjdGl2ZSBzaG91bGQgaGF2ZSByZXN1bHQgdHJhbnNjZWl2ZXIuZGly
CiBQQVNTIGFkZFRyYW5zY2VpdmVyKCkgd2l0aCBpbnZhbGlkIGRpcmVjdGlvbiBzaG91bGQgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBhZGRUcmFuc2NlaXZlcih0cmFjaykgc2hvdWxkIGhhdmUgcmVz
dWx0IHdpdGggc2VuZGVyLnRyYWNrIGJlIGdpdmVuIHRyYWNrIAogUEFTUyBhZGRUcmFuc2NlaXZl
cih0cmFjaykgbXVsdGlwbGUgdGltZXMgc2hvdWxkIGNyZWF0ZSBtdWx0aXBsZSB0cmFuc2NlaXZl
cnMgCi1GQUlMIGFkZFRyYW5zY2VpdmVyKCkgd2l0aCByaWQgY29udGFpbmluZyBpbnZhbGlkIG5v
bi1hbHBoYW51bWVyaWMgY2hhcmFjdGVycyBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IGZ1bmN0aW9uICIoKSA9PgorRkFJTCBhZGRUcmFuc2NlaXZlcigpIHdpdGggcmlkIGNv
bnRhaW5pbmcgaW52YWxpZCBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgc2hvdWxkIHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIHBjLmFk
ZFRyYW5zY2VpdmVyKCdhdWRpbycsIHsKICAgICAgICAgc2VuZEVuY29kaW5nczogW3sKICAgICAg
ICAgICByaWQ6ICdASW52YWxpZCEnCiAgICAgICAgIH1dCiAgICAgICB9KSIgZGlkIG5vdCB0aHJv
dwotRkFJTCBhZGRUcmFuc2NlaXZlcigpIHdpdGggcmlkIGxvbmdlciB0aGFuIDE2IGNoYXJhY3Rl
cnMgc2hvdWxkIHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4K
K0ZBSUwgYWRkVHJhbnNjZWl2ZXIoKSB3aXRoIHJpZCBsb25nZXIgdGhhbiAxNiBjaGFyYWN0ZXJz
IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+
CiAgICAgICBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7CiAgICAgICAgIHNlbmRFbmNvZGlu
Z3M6IFt7CiAgICAgICAgICAgcmlkOiAnYScucmVwZWF0KDE3KQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tYWRkVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZFRyYW5zY2Vp
dmVyLmh0dHBzLmh0bWwKaW5kZXggNmRmMDU2MTE3ZDAyNDUyZTA0MGIxNTMxNDdkYmRhZDdiZjhm
YTliYi4uNjhhMjYyMzM5MWI1ZmE1MTFlZDgwZDI3MjI0NWY4NjBmYmFlYWM4YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tYWRkVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1hZGRUcmFuc2NlaXZlci5odHRwcy5odG1sCkBAIC0zLDYgKzMsNyBAQAogPHRpdGxlPlJUQ1Bl
ZXJDb25uZWN0aW9uLnByb3RvdHlwZS5hZGRUcmFuc2NlaXZlcjwvdGl0bGU+CiA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRD
UGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAgICd1c2Ugc3Ry
aWN0JzsKIApAQCAtNzksNyArODAsNyBAQAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CiAKICAgICBhc3NlcnRfaWRsX2F0dHJpYnV0ZShwYywgJ2FkZFRyYW5zY2VpdmVyJyk7
Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHBjLmFkZFRyYW5zY2Vp
dmVyKCdpbnZhbGlkJykpOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBw
Yy5hZGRUcmFuc2NlaXZlcignaW52YWxpZCcpKTsKICAgfSwgJ2FkZFRyYW5zY2VpdmVyKCkgd2l0
aCBzdHJpbmcgYXJndW1lbnQgYXMgaW52YWxpZCBraW5kIHNob3VsZCB0aHJvdyBUeXBlRXJyb3In
KTsKIAogICAvKgpAQCAtMjMxLDcgKzIzMiw3IEBACiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKIAogICAgIGFzc2VydF9pZGxfYXR0cmlidXRlKHBjLCAnYWRkVHJhbnNjZWl2
ZXInKTsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4KKyAgICBhc3Nl
cnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KICAgICAgIHBjLmFkZFRyYW5zY2VpdmVyKCdh
dWRpbycsIHsgZGlyZWN0aW9uOiAnaW52YWxpZCcgfSkpOwogICB9LCBgYWRkVHJhbnNjZWl2ZXIo
KSB3aXRoIGludmFsaWQgZGlyZWN0aW9uIHNob3VsZCB0aHJvdyBUeXBlRXJyb3JgKTsKIApAQCAt
MjQ0LDcgKzI0NSw3IEBACiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
ICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogCi0gICAgY29uc3Qgc3RyZWFt
ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVl
fSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVl
fSk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0
cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRy
YWNrcygpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2sp
OwpAQCAtMjg0LDcgKzI4NSw3IEBACiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogCi0gICAgY29uc3Qg
c3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlv
OiB0cnVlfSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlv
OiB0cnVlfSk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9y
RWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFt
LmdldFRyYWNrcygpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyMSA9IHBjLmFkZFRyYW5zY2VpdmVy
KHRyYWNrKTsKQEAgLTMyMyw3ICszMjQsNyBAQAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CiAgICAgYXNzZXJ0X2lkbF9hdHRyaWJ1dGUocGMsICdhZGRUcmFuc2NlaXZlcicp
OwogCi0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+CisgICAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CiAgICAgICBwYy5hZGRUcmFuc2NlaXZlcignYXVk
aW8nLCB7CiAgICAgICAgIHNlbmRFbmNvZGluZ3M6IFt7CiAgICAgICAgICAgcmlkOiAnQEludmFs
aWQhJwpAQCAtMzM2LDcgKzMzNyw3IEBACiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKICAgICBhc3NlcnRfaWRsX2F0dHJpYnV0ZShwYywgJ2FkZFRyYW5zY2VpdmVyJyk7CiAK
LSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4KKyAgICBhc3NlcnRfdGhy
b3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KICAgICAgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycs
IHsKICAgICAgICAgc2VuZEVuY29kaW5nczogW3sKICAgICAgICAgICByaWQ6ICdhJy5yZXBlYXQo
MTcpCkBAIC0zNjIsNyArMzYzLDYgQEAKICAgICAgIHNlbmRFbmNvZGluZ3M6IFt7CiAgICAgICAg
IGR0eDogJ2VuYWJsZWQnLAogICAgICAgICBhY3RpdmU6IGZhbHNlLAotICAgICAgICBwcmlvcml0
eTogJ2xvdycsCiAgICAgICAgIHB0aW1lOiA1LAogICAgICAgICBtYXhCaXRyYXRlOiA4LAogICAg
ICAgICBtYXhGcmFtZXJhdGU6IDI1LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlv
blN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ2MWJmMTY5OTdiNmJlZTQ5N2RlY2VjNjUxNDg1MDZlODhi
NzczYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIzNyArMCww
IEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+UlRDUGVl
ckNvbm5lY3Rpb24ucHJvdG90eXBlLmNvbm5lY3Rpb25TdGF0ZTwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUlRD
UGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICd1c2Ugc3Ry
aWN0JzsKLSAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoK
LSAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93
ZWJydGMuaHRtCi0KLSAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxs
ZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6Ci0gIC8vIGV4Y2hhbmdlSWNlQ2Fu
ZGlkYXRlcwotICAvLyBkb1NpZ25hbGluZ0hhbmRzaGFrZQotCi0gIC8qCi0gICAgNC4zLjIuICBJ
bnRlcmZhY2UgRGVmaW5pdGlvbgotICAgICAgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uIDog
RXZlbnRUYXJnZXQgewotICAgICAgICAuLi4KLSAgICAgICAgcmVhZG9ubHkgIGF0dHJpYnV0ZSBS
VENQZWVyQ29ubmVjdGlvblN0YXRlIGNvbm5lY3Rpb25TdGF0ZTsKLSAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgICAgIG9uY29ubmVjdGlvbnN0YXRlY2hhbmdl
OwotICAgICAgfTsKLQotICAgIDQuNC4zLiAgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBFbnVtCi0g
ICAgICBlbnVtIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgewotICAgICAgICAibmV3IiwKLSAgICAg
ICAgImNvbm5lY3RpbmciLAotICAgICAgICAiY29ubmVjdGVkIiwKLSAgICAgICAgImRpc2Nvbm5l
Y3RlZCIsCi0gICAgICAgICJmYWlsZWQiLAotICAgICAgICAiY2xvc2VkIgotICAgICAgfTsKLQot
ICAgIDUuNS4gIFJUQ0R0bHNUcmFuc3BvcnQgSW50ZXJmYWNlCi0gICAgICBpbnRlcmZhY2UgUlRD
RHRsc1RyYW5zcG9ydCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENJY2VUcmFuc3Bv
cnQgICAgICAgaWNlVHJhbnNwb3J0OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRHRs
c1RyYW5zcG9ydFN0YXRlIHN0YXRlOwotICAgICAgICAuLi4KLSAgICAgIH07Ci0KLSAgICAgIGVu
dW0gUlRDRHRsc1RyYW5zcG9ydFN0YXRlIHsKLSAgICAgICAgIm5ldyIsCi0gICAgICAgICJjb25u
ZWN0aW5nIiwKLSAgICAgICAgImNvbm5lY3RlZCIsCi0gICAgICAgICJjbG9zZWQiLAotICAgICAg
ICAiZmFpbGVkIgotICAgICAgfTsKLQotICAgIDUuNi4gIFJUQ0ljZVRyYW5zcG9ydCBJbnRlcmZh
Y2UKLSAgICAgIGludGVyZmFjZSBSVENJY2VUcmFuc3BvcnQgewotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgUlRDSWNlVHJhbnNwb3J0U3RhdGUgc3RhdGU7Ci0gICAgICAgIC4uLgotICAgICAg
fTsKLQotICAgICAgZW51bSBSVENJY2VUcmFuc3BvcnRTdGF0ZSB7Ci0gICAgICAgICJuZXciLAot
ICAgICAgICAiY2hlY2tpbmciLAotICAgICAgICAiY29ubmVjdGVkIiwKLSAgICAgICAgImNvbXBs
ZXRlZCIsCi0gICAgICAgICJmYWlsZWQiLAotICAgICAgICAiZGlzY29ubmVjdGVkIiwKLSAgICAg
ICAgImNsb3NlZCIKLSAgICAgIH07Ci0gICAqLwotCi0gIC8qCi0gICAgNC40LjMuICBSVENQZWVy
Q29ubmVjdGlvblN0YXRlIEVudW0KLSAgICAgIG5ldwotICAgICAgICBBbnkgb2YgdGhlIFJUQ0lj
ZVRyYW5zcG9ydHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBuZXcKLSAgICAgICAg
c3RhdGUgYW5kIG5vbmUgb2YgdGhlIHRyYW5zcG9ydHMgYXJlIGluIHRoZSBjb25uZWN0aW5nLCBj
aGVja2luZywKLSAgICAgICAgZmFpbGVkIG9yIGRpc2Nvbm5lY3RlZCBzdGF0ZSwgb3IgYWxsIHRy
YW5zcG9ydHMgYXJlIGluIHRoZSBjbG9zZWQgc3RhdGUuCi0gICAqLwotICB0ZXN0KHQgPT4gewot
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgYXNzZXJ0X2VxdWFs
cyhwYy5jb25uZWN0aW9uU3RhdGUsICduZXcnKTsKLSAgfSwgJ0luaXRpYWwgY29ubmVjdGlvblN0
YXRlIHNob3VsZCBiZSBuZXcnKTsKLQotICB0ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgcGMuY2xvc2UoKTsKLSAgICBhc3NlcnRfZXF1YWxz
KHBjLmNvbm5lY3Rpb25TdGF0ZSwgJ2Nsb3NlZCcpOwotICB9LCAnQ2xvc2luZyB0aGUgY29ubmVj
dGlvbiBzaG91bGQgc2V0IGNvbm5lY3Rpb25TdGF0ZSB0byBjbG9zZWQnKTsKLQotICAvKgotICAg
IDQuNC4zLiAgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZSBFbnVtCi0gICAgICBjb25uZWN0ZWQKLSAg
ICAgICAgQWxsIFJUQ0ljZVRyYW5zcG9ydHMgYW5kIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0
aGUgY29ubmVjdGVkLAotICAgICAgICBjb21wbGV0ZWQgb3IgY2xvc2VkIHN0YXRlIGFuZCBhdCBs
ZWFzdCBvZiB0aGVtIGlzIGluIHRoZSBjb25uZWN0ZWQKLSAgICAgICAgb3IgY29tcGxldGVkIHN0
YXRlLgotCi0gICAgNS41LiAgUlRDRHRsc1RyYW5zcG9ydFN0YXRlCi0gICAgICBjb25uZWN0ZWQK
LSAgICAgICAgRFRMUyBoYXMgY29tcGxldGVkIG5lZ290aWF0aW9uIG9mIGEgc2VjdXJlIGNvbm5l
Y3Rpb24uCi0KLSAgICA1LjYuICBSVENJY2VUcmFuc3BvcnRTdGF0ZQotICAgICAgY29ubmVjdGVk
Ci0gICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZvdW5kIGEgdXNhYmxlIGNvbm5lY3Rp
b24sIGJ1dCBpcyBzdGlsbAotICAgICAgICBjaGVja2luZyBvdGhlciBjYW5kaWRhdGUgcGFpcnMg
dG8gc2VlIGlmIHRoZXJlIGlzIGEgYmV0dGVyIGNvbm5lY3Rpb24uCi0gICAgICAgIEl0IG1heSBh
bHNvIHN0aWxsIGJlIGdhdGhlcmluZyBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbCByZW1v
dGUKLSAgICAgICAgY2FuZGlkYXRlcy4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIGZhaWwg
b24gdGhlIGNvbm5lY3Rpb24gaW4gdXNlLAotICAgICAgICBhbmQgdGhlcmUgYXJlIG5vIG90aGVy
IHN1Y2Nlc3NmdWwgY2FuZGlkYXRlIHBhaXJzIGF2YWlsYWJsZSwgdGhlbiB0aGUKLSAgICAgICAg
c3RhdGUgdHJhbnNpdGlvbnMgdG8gImNoZWNraW5nIiAoaWYgdGhlcmUgYXJlIGNhbmRpZGF0ZSBw
YWlycyByZW1haW5pbmcKLSAgICAgICAgdG8gYmUgY2hlY2tlZCkgb3IgImRpc2Nvbm5lY3RlZCIg
KGlmIHRoZXJlIGFyZSBubyBjYW5kaWRhdGUgcGFpcnMgdG8KLSAgICAgICAgY2hlY2ssIGJ1dCB0
aGUgcGVlciBpcyBzdGlsbCBnYXRoZXJpbmcgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwK
LSAgICAgICAgcmVtb3RlIGNhbmRpZGF0ZXMpLgotCi0gICAgICBjb21wbGV0ZWQKLSAgICAgICAg
VGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNlaXZlZCBhbiBp
bmRpY2F0aW9uIHRoYXQKLSAgICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3RlIGNhbmRpZGF0
ZXMsIGZpbmlzaGVkIGNoZWNraW5nIGFsbCBjYW5kaWRhdGUKLSAgICAgICAgcGFpcnMgYW5kIGZv
dW5kIGEgY29ubmVjdGlvbi4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIHN1YnNlcXVlbnRs
eQotICAgICAgICBmYWlsIG9uIGFsbCBzdWNjZXNzZnVsIGNhbmRpZGF0ZSBwYWlycywgdGhlIHN0
YXRlIHRyYW5zaXRpb25zIHRvICJmYWlsZWQiLgotICAgKi8KLQotICBhc3luY190ZXN0KHQgPT4g
ewotICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gICAg
bGV0IGhhZF9jb25uZWN0aW5nID0gZmFsc2U7Ci0KLSAgICBjb25zdCBvbkNvbm5lY3Rpb25TdGF0
ZUNoYW5nZSA9IHQuc3RlcF9mdW5jKCgpID0+IHsKLSAgICAgIGNvbnN0IHtjb25uZWN0aW9uU3Rh
dGV9ID0gcGMxOwotICAgICAgaWYgKGNvbm5lY3Rpb25TdGF0ZSA9PT0gJ2Nvbm5lY3RpbmcnKSB7
Ci0gICAgICAgIGhhZF9jb25uZWN0aW5nID0gdHJ1ZTsKLSAgICAgIH0gZWxzZSBpZiAoY29ubmVj
dGlvblN0YXRlID09PSAnY29ubmVjdGVkJykgewotICAgICAgICBhc3NlcnRfdHJ1ZShoYWRfY29u
bmVjdGluZywgInN0YXRlIHNob3VsZCBwYXNzIGNvbm5lY3RpbmcgYmVmb3JlIHJlYWNoaW5nIGNv
bm5lY3RlZCIpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0KLSAgICB9KTsKLQotICAgIHBj
MS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOwotCi0gICAgcGMxLmFkZEV2ZW50TGlzdGVuZXIo
J2Nvbm5lY3Rpb25zdGF0ZWNoYW5nZScsIG9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlKTsKLQotICAg
IGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0gICAgZG9TaWduYWxpbmdIYW5kc2hh
a2UocGMxLCBwYzIpOwotICB9LCAnY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hv
dWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZScpOwotCi0gIGFz
eW5jX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gICAgY29uc3QgcGMyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xv
c2UoKSk7Ci0KLSAgICBjb25zdCBvbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZSA9IHQuc3RlcF9mdW5j
KCgpID0+IHsKLSAgICAgIGNvbnN0IHtjb25uZWN0aW9uU3RhdGV9ID0gcGMxOwotICAgICAgaWYg
KGNvbm5lY3Rpb25TdGF0ZSA9PT0gJ2Nvbm5lY3RlZCcpIHsKLSAgICAgICAgY29uc3Qgc2N0cFRy
YW5zcG9ydCA9IHBjMS5zY3RwOwotCi0gICAgICAgIGNvbnN0IGR0bHNUcmFuc3BvcnQgPSBzY3Rw
VHJhbnNwb3J0LnRyYW5zcG9ydDsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhkdGxzVHJhbnNwb3J0
LnN0YXRlLCAnY29ubmVjdGVkJywKLSAgICAgICAgICAnRXhwZWN0IERUTFMgdHJhbnNwb3J0IHRv
IGJlIGluIGNvbm5lY3RlZCBzdGF0ZScpOwotCi0gICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9
IGR0bHNUcmFuc3BvcnQuaWNlVHJhbnNwb3J0Ci0gICAgICAgIGFzc2VydF90cnVlKGljZVRyYW5z
cG9ydC5zdGF0ZSA9PT0gICdjb25uZWN0ZWQnIHx8Ci0gICAgICAgICAgaWNlVHJhbnNwb3J0LnN0
YXRlID09PSAnY29tcGxldGVkJywKLSAgICAgICAgICAnRXhwZWN0IElDRSB0cmFuc3BvcnQgdG8g
YmUgaW4gY29ubmVjdGVkIG9yIGNvbXBsZXRlZCBzdGF0ZScpOwotCi0gICAgICAgIHQuZG9uZSgp
OwotICAgICAgfQotICAgIH0pOwotCi0gICAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0Jyk7
Ci0KLSAgICBwYzEuYWRkRXZlbnRMaXN0ZW5lcignY29ubmVjdGlvbnN0YXRlY2hhbmdlJywgb25D
b25uZWN0aW9uU3RhdGVDaGFuZ2UpOwotCi0gICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwg
cGMyKTsKLSAgICBkb1NpZ25hbGluZ0hhbmRzaGFrZShwYzEsIHBjMik7Ci0gIH0sICdjb25uZWN0
aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIHRyYW5zcG9y
dHMgaW4gY29ubmVjdGVkIHN0YXRlJyk7Ci0KLSAgLyoKLSAgICBUT0RPCi0gICAgNC40LjMuICBS
VENQZWVyQ29ubmVjdGlvblN0YXRlIEVudW0KLSAgICAgIGNvbm5lY3RpbmcKLSAgICAgICAgQW55
IG9mIHRoZSBSVENJY2VUcmFuc3BvcnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0aGUK
LSAgICAgICAgY29ubmVjdGluZyBvciBjaGVja2luZyBzdGF0ZSBhbmQgbm9uZSBvZiB0aGVtIGlz
IGluIHRoZSBmYWlsZWQgc3RhdGUuCi0KLSAgICAgIGRpc2Nvbm5lY3RlZAotICAgICAgICBBbnkg
b2YgdGhlIFJUQ0ljZVRyYW5zcG9ydHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBk
aXNjb25uZWN0ZWQKLSAgICAgICAgc3RhdGUgYW5kIG5vbmUgb2YgdGhlbSBhcmUgaW4gdGhlIGZh
aWxlZCBvciBjb25uZWN0aW5nIG9yIGNoZWNraW5nIHN0YXRlLgotCi0gICAgICBmYWlsZWQKLSAg
ICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFy
ZSBpbiBhIGZhaWxlZCBzdGF0ZS4KLQotICAgICAgY2xvc2VkCi0gICAgICAgIFRoZSBSVENQZWVy
Q29ubmVjdGlvbiBvYmplY3QncyBbW2lzQ2xvc2VkXV0gc2xvdCBpcyB0cnVlLgotCi0gICAgIDUu
NS4gUlRDRHRsc1RyYW5zcG9ydFN0YXRlCi0gICAgICBuZXcKLSAgICAgICAgRFRMUyBoYXMgbm90
IHN0YXJ0ZWQgbmVnb3RpYXRpbmcgeWV0LgotCi0gICAgICBjb25uZWN0aW5nCi0gICAgICAgIERU
TFMgaXMgaW4gdGhlIHByb2Nlc3Mgb2YgbmVnb3RpYXRpbmcgYSBzZWN1cmUgY29ubmVjdGlvbi4K
LQotICAgICAgY2xvc2VkCi0gICAgICAgIFRoZSB0cmFuc3BvcnQgaGFzIGJlZW4gY2xvc2VkLgot
Ci0gICAgICBmYWlsZWQKLSAgICAgICAgVGhlIHRyYW5zcG9ydCBoYXMgZmFpbGVkIGFzIHRoZSBy
ZXN1bHQgb2YgYW4gZXJyb3IgKHN1Y2ggYXMgYSBmYWlsdXJlCi0gICAgICAgIHRvIHZhbGlkYXRl
IHRoZSByZW1vdGUgZmluZ2VycHJpbnQpLgotCi0gICAgNS42LiAgUlRDSWNlVHJhbnNwb3J0U3Rh
dGUKLSAgICAgIG5ldwotICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGlzIGdhdGhlcmluZyBj
YW5kaWRhdGVzIGFuZC9vciB3YWl0aW5nIGZvcgotICAgICAgICByZW1vdGUgY2FuZGlkYXRlcyB0
byBiZSBzdXBwbGllZCwgYW5kIGhhcyBub3QgeWV0IHN0YXJ0ZWQgY2hlY2tpbmcuCi0KLSAgICAg
IGNoZWNraW5nCi0gICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIHJlY2VpdmVkIGF0IGxl
YXN0IG9uZSByZW1vdGUgY2FuZGlkYXRlIGFuZAotICAgICAgICBpcyBjaGVja2luZyBjYW5kaWRh
dGUgcGFpcnMgYW5kIGhhcyBlaXRoZXIgbm90IHlldCBmb3VuZCBhIGNvbm5lY3Rpb24KLSAgICAg
ICAgb3IgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIGhhdmUgZmFpbGVkIG9uIGFsbCBwcmV2aW91
c2x5IHN1Y2Nlc3NmdWwKLSAgICAgICAgY2FuZGlkYXRlIHBhaXJzLiBJbiBhZGRpdGlvbiB0byBj
aGVja2luZywgaXQgbWF5IGFsc28gc3RpbGwgYmUgZ2F0aGVyaW5nLgotCi0gICAgICBmYWlsZWQK
LSAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNl
aXZlZCBhbiBpbmRpY2F0aW9uIHRoYXQKLSAgICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3Rl
IGNhbmRpZGF0ZXMsIGZpbmlzaGVkIGNoZWNraW5nIGFsbCBjYW5kaWRhdGUgcGFpcnMsCi0gICAg
ICAgIGFuZCBhbGwgcGFpcnMgaGF2ZSBlaXRoZXIgZmFpbGVkIGNvbm5lY3Rpdml0eSBjaGVja3Mg
b3IgaGF2ZSBsb3N0IGNvbnNlbnQuCi0KLSAgICAgIGRpc2Nvbm5lY3RlZAotICAgICAgICBUaGUg
SUNFIEFnZW50IGhhcyBkZXRlcm1pbmVkIHRoYXQgY29ubmVjdGl2aXR5IGlzIGN1cnJlbnRseSBs
b3N0IGZvciB0aGlzCi0gICAgICAgIFJUQ0ljZVRyYW5zcG9ydCAuIFRoaXMgaXMgbW9yZSBhZ2dy
ZXNzaXZlIHRoYW4gZmFpbGVkLCBhbmQgbWF5IHRyaWdnZXIKLSAgICAgICAgaW50ZXJtaXR0ZW50
bHkgKGFuZCByZXNvbHZlIGl0c2VsZiB3aXRob3V0IGFjdGlvbikgb24gYSBmbGFreSBuZXR3b3Jr
LgotICAgICAgICBUaGUgd2F5IHRoaXMgc3RhdGUgaXMgZGV0ZXJtaW5lZCBpcyBpbXBsZW1lbnRh
dGlvbiBkZXBlbmRlbnQuCi0KLSAgICAgICAgRXhhbXBsZXMgaW5jbHVkZToKLSAgICAgICAgICBM
b3NpbmcgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGZvciB0aGUgY29ubmVjdGlvbiBpbiB1c2UuCi0g
ICAgICAgICAgUmVwZWF0ZWRseSBmYWlsaW5nIHRvIHJlY2VpdmUgYSByZXNwb25zZSB0byBTVFVO
IHJlcXVlc3RzLgotCi0gICAgICAgIEFsdGVybmF0aXZlbHksIHRoZSBSVENJY2VUcmFuc3BvcnQg
aGFzIGZpbmlzaGVkIGNoZWNraW5nIGFsbCBleGlzdGluZwotICAgICAgICBjYW5kaWRhdGVzIHBh
aXJzIGFuZCBmYWlsZWQgdG8gZmluZCBhIGNvbm5lY3Rpb24gKG9yIGNvbnNlbnQgY2hlY2tzCi0g
ICAgICAgIFtSRkM3Njc1XSBvbmNlIHN1Y2Nlc3NmdWwsIGhhdmUgbm93IGZhaWxlZCksIGJ1dCBp
dCBpcyBzdGlsbCBnYXRoZXJpbmcKLSAgICAgICAgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9u
YWwgcmVtb3RlIGNhbmRpZGF0ZXMuCi0KLSAgICAgIGNsb3NlZAotICAgICAgICBUaGUgUlRDSWNl
VHJhbnNwb3J0IGhhcyBzaHV0IGRvd24gYW5kIGlzIG5vIGxvbmdlciByZXNwb25kaW5nIHRvIFNU
VU4gcmVxdWVzdHMuCi0gICAqLwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1j
b25uZWN0aW9uU3RhdGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlv
blN0YXRlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWFjNTllMzBiNGE0MGY3ZDk5
NTJiZDAyNTg5OWUwOGIzYzdjYzI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29u
bmVjdGlvblN0YXRlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKworUEFTUyBJ
bml0aWFsIGNvbm5lY3Rpb25TdGF0ZSBzaG91bGQgYmUgbmV3IAorUEFTUyBDbG9zaW5nIHRoZSBj
b25uZWN0aW9uIHNob3VsZCBzZXQgY29ubmVjdGlvblN0YXRlIHRvIGNsb3NlZCAKK1BBU1MgY29u
bmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBjb25u
ZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZSAKK0ZBSUwgY29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNo
YW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSB0cmFuc3BvcnRzIGluIGNvbm5lY3RlZCBzdGF0
ZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc2N0cFRyYW5zcG9ydC50
cmFuc3BvcnQnKQorRkFJTCBjb25uZWN0aW9uU3RhdGUgcmVtYWlucyBuZXcgd2hlbiBub3QgYWRk
aW5nIHJlbW90ZSBpY2UgY2FuZGlkYXRlcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmV3IiBi
dXQgZ290ICJjaGVja2luZyIKK1BBU1MgY29ubmVjdGlvblN0YXRlIHRyYW5zaXRpb25zIHRvIGNv
bm5lY3RlZCB2aWEgY29ubmVjdGluZyAKK1BBU1MgQ2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNo
b3VsZCBub3QgZmlyZSBjb25uZWN0aW9uc3RhdGVjaGFuZ2UgZXZlbnQgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29u
bmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRiODI3MmRmMzA3MjYwZjlkYjBj
NDMzM2MyM2M3YWQ0YzQ0MzJiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5l
Y3Rpb25TdGF0ZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjkxIEBACis8IWRvY3R5cGUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBl
LmNvbm5lY3Rpb25TdGF0ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgLy8gVGVzdCBpcyBi
YXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKKyAgLy8gaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtCisKKyAgLy8gVGhl
IGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVj
dGlvbi1oZWxwZXIuanM6CisgIC8vIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcworICAvLyBleGNoYW5n
ZU9mZmVyQW5zd2VyCisKKyAgLyoKKyAgICA0LjMuMi4gIEludGVyZmFjZSBEZWZpbml0aW9uCisg
ICAgICBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gOiBFdmVudFRhcmdldCB7CisgICAgICAg
IC4uLgorICAgICAgICByZWFkb25seSAgYXR0cmlidXRlIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUg
Y29ubmVjdGlvblN0YXRlOworICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciAgICAgICAgICAgb25jb25uZWN0aW9uc3RhdGVjaGFuZ2U7CisgICAgICB9OworCisgICAgNC40
LjMuICBSVENQZWVyQ29ubmVjdGlvblN0YXRlIEVudW0KKyAgICAgIGVudW0gUlRDUGVlckNvbm5l
Y3Rpb25TdGF0ZSB7CisgICAgICAgICJuZXciLAorICAgICAgICAiY29ubmVjdGluZyIsCisgICAg
ICAgICJjb25uZWN0ZWQiLAorICAgICAgICAiZGlzY29ubmVjdGVkIiwKKyAgICAgICAgImZhaWxl
ZCIsCisgICAgICAgICJjbG9zZWQiCisgICAgICB9OworCisgICAgNS41LiAgUlRDRHRsc1RyYW5z
cG9ydCBJbnRlcmZhY2UKKyAgICAgIGludGVyZmFjZSBSVENEdGxzVHJhbnNwb3J0IHsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0ljZVRyYW5zcG9ydCAgICAgICBpY2VUcmFuc3BvcnQ7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENEdGxzVHJhbnNwb3J0U3RhdGUgc3RhdGU7
CisgICAgICAgIC4uLgorICAgICAgfTsKKworICAgICAgZW51bSBSVENEdGxzVHJhbnNwb3J0U3Rh
dGUgeworICAgICAgICAibmV3IiwKKyAgICAgICAgImNvbm5lY3RpbmciLAorICAgICAgICAiY29u
bmVjdGVkIiwKKyAgICAgICAgImNsb3NlZCIsCisgICAgICAgICJmYWlsZWQiCisgICAgICB9Owor
CisgICAgNS42LiAgUlRDSWNlVHJhbnNwb3J0IEludGVyZmFjZQorICAgICAgaW50ZXJmYWNlIFJU
Q0ljZVRyYW5zcG9ydCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENJY2VUcmFuc3Bv
cnRTdGF0ZSBzdGF0ZTsKKyAgICAgICAgLi4uCisgICAgICB9OworCisgICAgICBlbnVtIFJUQ0lj
ZVRyYW5zcG9ydFN0YXRlIHsKKyAgICAgICAgIm5ldyIsCisgICAgICAgICJjaGVja2luZyIsCisg
ICAgICAgICJjb25uZWN0ZWQiLAorICAgICAgICAiY29tcGxldGVkIiwKKyAgICAgICAgImZhaWxl
ZCIsCisgICAgICAgICJkaXNjb25uZWN0ZWQiLAorICAgICAgICAiY2xvc2VkIgorICAgICAgfTsK
KyAgICovCisKKyAgLyoKKyAgICA0LjQuMy4gIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgRW51bQor
ICAgICAgbmV3CisgICAgICAgIEFueSBvZiB0aGUgUlRDSWNlVHJhbnNwb3J0cyBvciBSVENEdGxz
VHJhbnNwb3J0cyBhcmUgaW4gdGhlIG5ldworICAgICAgICBzdGF0ZSBhbmQgbm9uZSBvZiB0aGUg
dHJhbnNwb3J0cyBhcmUgaW4gdGhlIGNvbm5lY3RpbmcsIGNoZWNraW5nLAorICAgICAgICBmYWls
ZWQgb3IgZGlzY29ubmVjdGVkIHN0YXRlLCBvciBhbGwgdHJhbnNwb3J0cyBhcmUgaW4gdGhlIGNs
b3NlZCBzdGF0ZS4KKyAgICovCisgIHRlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLmNvbm5lY3Rpb25TdGF0ZSwg
J25ldycpOworICB9LCAnSW5pdGlhbCBjb25uZWN0aW9uU3RhdGUgc2hvdWxkIGJlIG5ldycpOwor
CisgIHRlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICBwYy5jbG9zZSgpOworICAgIGFzc2VydF9lcXVhbHMocGMuY29ubmVjdGlvblN0YXRlLCAn
Y2xvc2VkJyk7CisgIH0sICdDbG9zaW5nIHRoZSBjb25uZWN0aW9uIHNob3VsZCBzZXQgY29ubmVj
dGlvblN0YXRlIHRvIGNsb3NlZCcpOworCisgIC8qCisgICAgNC40LjMuICBSVENQZWVyQ29ubmVj
dGlvblN0YXRlIEVudW0KKyAgICAgIGNvbm5lY3RlZAorICAgICAgICBBbGwgUlRDSWNlVHJhbnNw
b3J0cyBhbmQgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBjb25uZWN0ZWQsCisgICAgICAg
IGNvbXBsZXRlZCBvciBjbG9zZWQgc3RhdGUgYW5kIGF0IGxlYXN0IG9mIHRoZW0gaXMgaW4gdGhl
IGNvbm5lY3RlZAorICAgICAgICBvciBjb21wbGV0ZWQgc3RhdGUuCisKKyAgICA1LjUuICBSVENE
dGxzVHJhbnNwb3J0U3RhdGUKKyAgICAgIGNvbm5lY3RlZAorICAgICAgICBEVExTIGhhcyBjb21w
bGV0ZWQgbmVnb3RpYXRpb24gb2YgYSBzZWN1cmUgY29ubmVjdGlvbi4KKworICAgIDUuNi4gIFJU
Q0ljZVRyYW5zcG9ydFN0YXRlCisgICAgICBjb25uZWN0ZWQKKyAgICAgICAgVGhlIFJUQ0ljZVRy
YW5zcG9ydCBoYXMgZm91bmQgYSB1c2FibGUgY29ubmVjdGlvbiwgYnV0IGlzIHN0aWxsCisgICAg
ICAgIGNoZWNraW5nIG90aGVyIGNhbmRpZGF0ZSBwYWlycyB0byBzZWUgaWYgdGhlcmUgaXMgYSBi
ZXR0ZXIgY29ubmVjdGlvbi4KKyAgICAgICAgSXQgbWF5IGFsc28gc3RpbGwgYmUgZ2F0aGVyaW5n
IGFuZC9vciB3YWl0aW5nIGZvciBhZGRpdGlvbmFsIHJlbW90ZQorICAgICAgICBjYW5kaWRhdGVz
LiBJZiBjb25zZW50IGNoZWNrcyBbUkZDNzY3NV0gZmFpbCBvbiB0aGUgY29ubmVjdGlvbiBpbiB1
c2UsCisgICAgICAgIGFuZCB0aGVyZSBhcmUgbm8gb3RoZXIgc3VjY2Vzc2Z1bCBjYW5kaWRhdGUg
cGFpcnMgYXZhaWxhYmxlLCB0aGVuIHRoZQorICAgICAgICBzdGF0ZSB0cmFuc2l0aW9ucyB0byAi
Y2hlY2tpbmciIChpZiB0aGVyZSBhcmUgY2FuZGlkYXRlIHBhaXJzIHJlbWFpbmluZworICAgICAg
ICB0byBiZSBjaGVja2VkKSBvciAiZGlzY29ubmVjdGVkIiAoaWYgdGhlcmUgYXJlIG5vIGNhbmRp
ZGF0ZSBwYWlycyB0bworICAgICAgICBjaGVjaywgYnV0IHRoZSBwZWVyIGlzIHN0aWxsIGdhdGhl
cmluZyBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbAorICAgICAgICByZW1vdGUgY2FuZGlk
YXRlcykuCisKKyAgICAgIGNvbXBsZXRlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhh
cyBmaW5pc2hlZCBnYXRoZXJpbmcsIHJlY2VpdmVkIGFuIGluZGljYXRpb24gdGhhdAorICAgICAg
ICB0aGVyZSBhcmUgbm8gbW9yZSByZW1vdGUgY2FuZGlkYXRlcywgZmluaXNoZWQgY2hlY2tpbmcg
YWxsIGNhbmRpZGF0ZQorICAgICAgICBwYWlycyBhbmQgZm91bmQgYSBjb25uZWN0aW9uLiBJZiBj
b25zZW50IGNoZWNrcyBbUkZDNzY3NV0gc3Vic2VxdWVudGx5CisgICAgICAgIGZhaWwgb24gYWxs
IHN1Y2Nlc3NmdWwgY2FuZGlkYXRlIHBhaXJzLCB0aGUgc3RhdGUgdHJhbnNpdGlvbnMgdG8gImZh
aWxlZCIuCisgICAqLworCisgIGFzeW5jX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBsZXQgaGFkX2Nvbm5lY3RpbmcgPSBm
YWxzZTsKKworICAgIGNvbnN0IG9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlID0gdC5zdGVwX2Z1bmMo
KCkgPT4geworICAgICAgY29uc3Qge2Nvbm5lY3Rpb25TdGF0ZX0gPSBwYzE7CisgICAgICBpZiAo
Y29ubmVjdGlvblN0YXRlID09PSAnY29ubmVjdGluZycpIHsKKyAgICAgICAgaGFkX2Nvbm5lY3Rp
bmcgPSB0cnVlOworICAgICAgfSBlbHNlIGlmIChjb25uZWN0aW9uU3RhdGUgPT09ICdjb25uZWN0
ZWQnKSB7CisgICAgICAgIGFzc2VydF90cnVlKGhhZF9jb25uZWN0aW5nLCAic3RhdGUgc2hvdWxk
IHBhc3MgY29ubmVjdGluZyBiZWZvcmUgcmVhY2hpbmcgY29ubmVjdGVkIik7CisgICAgICAgIHQu
ZG9uZSgpOworICAgICAgfQorICAgIH0pOworCisgICAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCd0
ZXN0Jyk7CisKKyAgICBwYzEuYWRkRXZlbnRMaXN0ZW5lcignY29ubmVjdGlvbnN0YXRlY2hhbmdl
Jywgb25Db25uZWN0aW9uU3RhdGVDaGFuZ2UpOworCisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
KHBjMSwgcGMyKTsKKyAgICBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgfSwgJ2Nv
bm5lY3Rpb24gd2l0aCBvbmUgZGF0YSBjaGFubmVsIHNob3VsZCBldmVudHVhbGx5IGhhdmUgY29u
bmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUnKTsKKworICBhc3luY190ZXN0KHQgPT4geworICAgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgb25D
b25uZWN0aW9uU3RhdGVDaGFuZ2UgPSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBjb25zdCB7
Y29ubmVjdGlvblN0YXRlfSA9IHBjMTsKKyAgICAgIGlmIChjb25uZWN0aW9uU3RhdGUgPT09ICdj
b25uZWN0ZWQnKSB7CisgICAgICAgIGNvbnN0IHNjdHBUcmFuc3BvcnQgPSBwYzEuc2N0cDsKKwor
ICAgICAgICBjb25zdCBkdGxzVHJhbnNwb3J0ID0gc2N0cFRyYW5zcG9ydC50cmFuc3BvcnQ7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoZHRsc1RyYW5zcG9ydC5zdGF0ZSwgJ2Nvbm5lY3RlZCcsCisg
ICAgICAgICAgJ0V4cGVjdCBEVExTIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQgc3RhdGUn
KTsKKworICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBkdGxzVHJhbnNwb3J0LmljZVRyYW5z
cG9ydAorICAgICAgICBhc3NlcnRfdHJ1ZShpY2VUcmFuc3BvcnQuc3RhdGUgPT09ICAnY29ubmVj
dGVkJyB8fAorICAgICAgICAgIGljZVRyYW5zcG9ydC5zdGF0ZSA9PT0gJ2NvbXBsZXRlZCcsCisg
ICAgICAgICAgJ0V4cGVjdCBJQ0UgdHJhbnNwb3J0IHRvIGJlIGluIGNvbm5lY3RlZCBvciBjb21w
bGV0ZWQgc3RhdGUnKTsKKworICAgICAgICB0LmRvbmUoKTsKKyAgICAgIH0KKyAgICB9KTsKKwor
ICAgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOworCisgICAgcGMxLmFkZEV2ZW50TGlz
dGVuZXIoJ2Nvbm5lY3Rpb25zdGF0ZWNoYW5nZScsIG9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlKTsK
KworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgICAgZXhjaGFuZ2VPZmZl
ckFuc3dlcihwYzEsIHBjMik7CisgIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5l
bCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIHRyYW5zcG9ydHMgaW4gY29ubmVjdGVkIHN0YXRlJyk7
CisKKyAgLyoKKyAgICBUT0RPCisgICAgNC40LjMuICBSVENQZWVyQ29ubmVjdGlvblN0YXRlIEVu
dW0KKyAgICAgIGNvbm5lY3RpbmcKKyAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnRz
IG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0aGUKKyAgICAgICAgY29ubmVjdGluZyBvciBj
aGVja2luZyBzdGF0ZSBhbmQgbm9uZSBvZiB0aGVtIGlzIGluIHRoZSBmYWlsZWQgc3RhdGUuCisK
KyAgICAgIGRpc2Nvbm5lY3RlZAorICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydHMg
b3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBkaXNjb25uZWN0ZWQKKyAgICAgICAgc3Rh
dGUgYW5kIG5vbmUgb2YgdGhlbSBhcmUgaW4gdGhlIGZhaWxlZCBvciBjb25uZWN0aW5nIG9yIGNo
ZWNraW5nIHN0YXRlLgorCisgICAgICBmYWlsZWQKKyAgICAgICAgQW55IG9mIHRoZSBSVENJY2VU
cmFuc3BvcnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiBhIGZhaWxlZCBzdGF0ZS4KKwor
ICAgICAgY2xvc2VkCisgICAgICAgIFRoZSBSVENQZWVyQ29ubmVjdGlvbiBvYmplY3QncyBbW2lz
Q2xvc2VkXV0gc2xvdCBpcyB0cnVlLgorCisgICAgIDUuNS4gUlRDRHRsc1RyYW5zcG9ydFN0YXRl
CisgICAgICBuZXcKKyAgICAgICAgRFRMUyBoYXMgbm90IHN0YXJ0ZWQgbmVnb3RpYXRpbmcgeWV0
LgorCisgICAgICBjb25uZWN0aW5nCisgICAgICAgIERUTFMgaXMgaW4gdGhlIHByb2Nlc3Mgb2Yg
bmVnb3RpYXRpbmcgYSBzZWN1cmUgY29ubmVjdGlvbi4KKworICAgICAgY2xvc2VkCisgICAgICAg
IFRoZSB0cmFuc3BvcnQgaGFzIGJlZW4gY2xvc2VkLgorCisgICAgICBmYWlsZWQKKyAgICAgICAg
VGhlIHRyYW5zcG9ydCBoYXMgZmFpbGVkIGFzIHRoZSByZXN1bHQgb2YgYW4gZXJyb3IgKHN1Y2gg
YXMgYSBmYWlsdXJlCisgICAgICAgIHRvIHZhbGlkYXRlIHRoZSByZW1vdGUgZmluZ2VycHJpbnQp
LgorCisgICAgNS42LiAgUlRDSWNlVHJhbnNwb3J0U3RhdGUKKyAgICAgIG5ldworICAgICAgICBU
aGUgUlRDSWNlVHJhbnNwb3J0IGlzIGdhdGhlcmluZyBjYW5kaWRhdGVzIGFuZC9vciB3YWl0aW5n
IGZvcgorICAgICAgICByZW1vdGUgY2FuZGlkYXRlcyB0byBiZSBzdXBwbGllZCwgYW5kIGhhcyBu
b3QgeWV0IHN0YXJ0ZWQgY2hlY2tpbmcuCisKKyAgICAgIGNoZWNraW5nCisgICAgICAgIFRoZSBS
VENJY2VUcmFuc3BvcnQgaGFzIHJlY2VpdmVkIGF0IGxlYXN0IG9uZSByZW1vdGUgY2FuZGlkYXRl
IGFuZAorICAgICAgICBpcyBjaGVja2luZyBjYW5kaWRhdGUgcGFpcnMgYW5kIGhhcyBlaXRoZXIg
bm90IHlldCBmb3VuZCBhIGNvbm5lY3Rpb24KKyAgICAgICAgb3IgY29uc2VudCBjaGVja3MgW1JG
Qzc2NzVdIGhhdmUgZmFpbGVkIG9uIGFsbCBwcmV2aW91c2x5IHN1Y2Nlc3NmdWwKKyAgICAgICAg
Y2FuZGlkYXRlIHBhaXJzLiBJbiBhZGRpdGlvbiB0byBjaGVja2luZywgaXQgbWF5IGFsc28gc3Rp
bGwgYmUgZ2F0aGVyaW5nLgorCisgICAgICBmYWlsZWQKKyAgICAgICAgVGhlIFJUQ0ljZVRyYW5z
cG9ydCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNlaXZlZCBhbiBpbmRpY2F0aW9uIHRoYXQK
KyAgICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3RlIGNhbmRpZGF0ZXMsIGZpbmlzaGVkIGNo
ZWNraW5nIGFsbCBjYW5kaWRhdGUgcGFpcnMsCisgICAgICAgIGFuZCBhbGwgcGFpcnMgaGF2ZSBl
aXRoZXIgZmFpbGVkIGNvbm5lY3Rpdml0eSBjaGVja3Mgb3IgaGF2ZSBsb3N0IGNvbnNlbnQuCisK
KyAgICAgIGRpc2Nvbm5lY3RlZAorICAgICAgICBUaGUgSUNFIEFnZW50IGhhcyBkZXRlcm1pbmVk
IHRoYXQgY29ubmVjdGl2aXR5IGlzIGN1cnJlbnRseSBsb3N0IGZvciB0aGlzCisgICAgICAgIFJU
Q0ljZVRyYW5zcG9ydCAuIFRoaXMgaXMgbW9yZSBhZ2dyZXNzaXZlIHRoYW4gZmFpbGVkLCBhbmQg
bWF5IHRyaWdnZXIKKyAgICAgICAgaW50ZXJtaXR0ZW50bHkgKGFuZCByZXNvbHZlIGl0c2VsZiB3
aXRob3V0IGFjdGlvbikgb24gYSBmbGFreSBuZXR3b3JrLgorICAgICAgICBUaGUgd2F5IHRoaXMg
c3RhdGUgaXMgZGV0ZXJtaW5lZCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCisKKyAgICAg
ICAgRXhhbXBsZXMgaW5jbHVkZToKKyAgICAgICAgICBMb3NpbmcgdGhlIG5ldHdvcmsgaW50ZXJm
YWNlIGZvciB0aGUgY29ubmVjdGlvbiBpbiB1c2UuCisgICAgICAgICAgUmVwZWF0ZWRseSBmYWls
aW5nIHRvIHJlY2VpdmUgYSByZXNwb25zZSB0byBTVFVOIHJlcXVlc3RzLgorCisgICAgICAgIEFs
dGVybmF0aXZlbHksIHRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlzaGVkIGNoZWNraW5nIGFs
bCBleGlzdGluZworICAgICAgICBjYW5kaWRhdGVzIHBhaXJzIGFuZCBmYWlsZWQgdG8gZmluZCBh
IGNvbm5lY3Rpb24gKG9yIGNvbnNlbnQgY2hlY2tzCisgICAgICAgIFtSRkM3Njc1XSBvbmNlIHN1
Y2Nlc3NmdWwsIGhhdmUgbm93IGZhaWxlZCksIGJ1dCBpdCBpcyBzdGlsbCBnYXRoZXJpbmcKKyAg
ICAgICAgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwgcmVtb3RlIGNhbmRpZGF0ZXMuCisK
KyAgICAgIGNsb3NlZAorICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBzaHV0IGRvd24g
YW5kIGlzIG5vIGxvbmdlciByZXNwb25kaW5nIHRvIFNUVU4gcmVxdWVzdHMuCisgICAqLworICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7Cisg
ICAgY29uc3QgY2FsbGVlID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0
Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJl
YW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBjb25z
dCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOworICAgIGNhbGxlci5hZGRUcmFjayh0cmFj
aywgc3RyZWFtKTsKKworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2FsbGVyLCBjYWxs
ZWUpOworCisgICAgYXNzZXJ0X2VxdWFscyhjYWxsZXIuaWNlQ29ubmVjdGlvblN0YXRlLCAnbmV3
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhjYWxsZWUuaWNlQ29ubmVjdGlvblN0YXRlLCAnbmV3Jyk7
CisgIH0sICdjb25uZWN0aW9uU3RhdGUgcmVtYWlucyBuZXcgd2hlbiBub3QgYWRkaW5nIHJlbW90
ZSBpY2UgY2FuZGlkYXRlcycpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKworICAg
IGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICAgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOwor
ICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sg
PT4gdHJhY2suc3RvcCgpKSk7CisgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3Mo
KTsKKyAgICBjYWxsZXIuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CisKKyAgICBjb25zdCBzdGF0
ZXMgPSBbXTsKKyAgICBjYWxsZXIuYWRkRXZlbnRMaXN0ZW5lcignY29ubmVjdGlvbnN0YXRlY2hh
bmdlJywgKCkgPT4gc3RhdGVzLnB1c2goY2FsbGVyLmNvbm5lY3Rpb25TdGF0ZSkpOworICAgIGV4
Y2hhbmdlSWNlQ2FuZGlkYXRlcyhjYWxsZXIsIGNhbGxlZSk7CisgICAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7CisKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nvbm5lY3Rl
ZChjYWxsZXIpOworCisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzdGF0ZXMsIFsnY29ubmVjdGlu
ZycsICdjb25uZWN0ZWQnXSk7CisgIH0sICdjb25uZWN0aW9uU3RhdGUgdHJhbnNpdGlvbnMgdG8g
Y29ubmVjdGVkIHZpYSBjb25uZWN0aW5nJyk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHsgYXVk
aW86IHRydWUgfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCku
Zm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKworICAgIHN0cmVhbS5nZXRUcmFja3Mo
KS5mb3JFYWNoKHRyYWNrID0+IHBjMS5hZGRUcmFjayh0cmFjaywgc3RyZWFtKSk7CisgICAgZXhj
aGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgICBleGNoYW5nZU9mZmVyQW5zd2VyKHBj
MSwgcGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0ljZUNvbm5lY3RlZChwYzIpOworCisgICAgcGMy
Lm9uY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gdC51bnJlYWNoZWRfZnVuYygpOworICAgIHBjMi5j
bG9zZSgpOworICAgIGFzc2VydF90cnVlKHBjMi5jb25uZWN0aW9uU3RhdGUgPT09ICdjbG9zZWQn
KTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDEwMCkpOwor
ICB9LCAnQ2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBjb25uZWN0aW9u
c3RhdGVjaGFuZ2UgZXZlbnQnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Y29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbnN0cnVjdG9yLmh0bWwKaW5kZXggYWJl
YTJlYjY3NjFiNzc5YmE1MjdiNzU2NjBkMGMyMjU4YzgwNWJhMS4uMTcwOGIyNzA1ZjgyM2IwYzE1
ZDM4ZDZkZTlmZDE5ZTQyMjlkN2E1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29uc3RydWN0
b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25zdHJ1Y3Rvci5odG1sCkBAIC0xNCw3ICsxNCw3
IEBAIGNvbnN0IHRvU3RyaW5nVGhyb3dzID0geyB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHRocm93
IG5ldyBFcnJvcjsgfSB9OwogY29uc3QgdG9OdW1iZXJUaHJvd3MgPSBTeW1ib2woKTsKIAogLy8g
VGVzdCB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGNvbnN0cnVjdG9yLiBUaGUga2V5IGlzIHRo
ZSBhcmd1bWVudCBpdHNlbGYsCi0vLyBhbmQgdGhlIHZhbHVlIGlzIHRoZSBmaXJzdCBhcmd1bWVu
dCBmb3IgYXNzZXJ0X3Rocm93cywgb3IgZmFsc2UgaWYgbm8KKy8vIGFuZCB0aGUgdmFsdWUgaXMg
dGhlIGZpcnN0IGFyZ3VtZW50IGZvciBhc3NlcnRfdGhyb3dzX2pzLCBvciBmYWxzZSBpZiBubwog
Ly8gZXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24uCiBjb25zdCB0ZXN0QXJncyA9IHsKICAgLy8g
Tm8gYXJndW1lbnQgb3IgZXF1aXZhbGVudC4KQEAgLTI0LDE0ICsyNCwxNCBAQCBjb25zdCB0ZXN0
QXJncyA9IHsKICAgJ3t9JzogZmFsc2UsCiAKICAgLy8gY2VydGlmaWNhdGVzCi0gICd7IGNlcnRp
ZmljYXRlczogbnVsbCB9JzogbmV3IFR5cGVFcnJvciwKKyAgJ3sgY2VydGlmaWNhdGVzOiBudWxs
IH0nOiBUeXBlRXJyb3IsCiAgICd7IGNlcnRpZmljYXRlczogdW5kZWZpbmVkIH0nOiBmYWxzZSwK
ICAgJ3sgY2VydGlmaWNhdGVzOiBbXSB9JzogZmFsc2UsCi0gICd7IGNlcnRpZmljYXRlczogW251
bGxdIH0nOiBuZXcgVHlwZUVycm9yLAotICAneyBjZXJ0aWZpY2F0ZXM6IFt1bmRlZmluZWRdIH0n
OiBuZXcgVHlwZUVycm9yLAorICAneyBjZXJ0aWZpY2F0ZXM6IFtudWxsXSB9JzogVHlwZUVycm9y
LAorICAneyBjZXJ0aWZpY2F0ZXM6IFt1bmRlZmluZWRdIH0nOiBUeXBlRXJyb3IsCiAKICAgLy8g
aWNlQ2FuZGlkYXRlUG9vbFNpemUKLSAgJ3sgaWNlQ2FuZGlkYXRlUG9vbFNpemU6IHRvTnVtYmVy
VGhyb3dzIH0nOiBuZXcgVHlwZUVycm9yLAorICAneyBpY2VDYW5kaWRhdGVQb29sU2l6ZTogdG9O
dW1iZXJUaHJvd3MgfSc6IFR5cGVFcnJvciwKIH0KIAogZm9yIChjb25zdCBhcmcgaW4gdGVzdEFy
Z3MpIHsKQEAgLTM5LDcgKzM5LDcgQEAgZm9yIChjb25zdCBhcmcgaW4gdGVzdEFyZ3MpIHsKICAg
dGVzdChmdW5jdGlvbigpIHsKICAgICBjb25zdCB0aHJvd3MgPSB0ZXN0QXJnc1thcmddOwogICAg
IGlmICh0aHJvd3MpIHsKLSAgICAgIGFzc2VydF90aHJvd3ModGhyb3dzLCBmdW5jdGlvbigpIHsK
KyAgICAgIGFzc2VydF90aHJvd3NfanModGhyb3dzLCBmdW5jdGlvbigpIHsKICAgICAgICAgZXZh
bChleHByKTsKICAgICAgIH0pOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1jcmVhdGVBbnN3ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZUFuc3dlci5odG1sCmluZGV4
IDAzMGNlZDhjOThmNGM5MjZjNWFmODcwYmYxNjA5N2Y0ZjU2YTdkMWUuLmNlYjAxZTU0ZjM0NjE4
NzliZjlkYTE4MGU2ZDY2NDZmOGIwNGM1OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0
ZUFuc3dlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZUFuc3dlci5odG1sCkBAIC0yNCw3
ICsyNCw3IEBACiAgIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0g
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAorICAgIHJl
dHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgICBw
Yy5jcmVhdGVBbnN3ZXIoKSk7CiAgIH0sICdjcmVhdGVBbnN3ZXIoKSB3aXRoIG51bGwgcmVtb3Rl
RGVzY3JpcHRpb24gc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yJyk7CiAKQEAg
LTU5LDcgKzU5LDcgQEAKICAgICAudGhlbihvZmZlciA9PiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlv
bihvZmZlcikpCiAgICAgLnRoZW4oKCkgPT4gewogICAgICAgcGMuY2xvc2UoKTsKLSAgICAgIHJl
dHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgIHJldHVy
biBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCiAgICAgICAgIHBj
LmNyZWF0ZUFuc3dlcigpKTsKICAgICB9KTsKICAgfSwgJ2NyZWF0ZUFuc3dlcigpIHdoZW4gY29u
bmVjdGlvbiBpcyBjbG9zZWQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3InKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLWV4cGVjdGVkLnR4dAppbmRleCAzYzExYzAxZDFhOGVl
NWYyNjQ5NDczODcyODhiNTg2Y2M3NTVjMjAyLi5kY2ZjMGM4MmI1NTE5NDZhZGQ5N2RiZDlmNmJi
NWUxZWQyODE2YjM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5lbC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5uZWwtZXhwZWN0ZWQu
dHh0CkBAIC0xLDggKzEsOCBAQAogCiBQQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggbm8gYXJn
dW1lbnQgc2hvdWxkIHRocm93IFR5cGVFcnJvciAKIFBBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0
aCBjbG9zZWQgY29ubmVjdGlvbiBzaG91bGQgdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgCi1GQUlM
IGNyZWF0ZURhdGFDaGFubmVsIGF0dHJpYnV0ZSBkZWZhdWx0IHZhbHVlcyBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAoc3RyaW5nKSAibG93IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAot
RkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHByb3ZpZGVkIHBhcmFtZXRlcnMgc2hvdWxkIGlu
aXRpYWxpemUgYXR0cmlidXRlcyB0byBwcm92aWRlZCB2YWx1ZXMgVHlwZSBlcnJvcgorRkFJTCBj
cmVhdGVEYXRhQ2hhbm5lbCBhdHRyaWJ1dGUgZGVmYXVsdCB2YWx1ZXMgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgImJsb2IiIGJ1dCBnb3QgImFycmF5YnVmZmVyIgorRkFJTCBjcmVhdGVEYXRhQ2hh
bm5lbCB3aXRoIHByb3ZpZGVkIHBhcmFtZXRlcnMgc2hvdWxkIGluaXRpYWxpemUgYXR0cmlidXRl
cyB0byBwcm92aWRlZCB2YWx1ZXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImJsb2IiIGJ1dCBn
b3QgImFycmF5YnVmZmVyIgogUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGxhYmVsICJmb28i
IHNob3VsZCBzdWNjZWVkIAogRkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGxhYmVsIG51bGwg
c2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm51bGwiIGJ1dCBnb3QgIiIK
IFBBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBsYWJlbCB1bmRlZmluZWQgc2hvdWxkIHN1Y2Nl
ZWQgCkBAIC0xMSwyNiArMTEsNjggQEAgUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG9yZGVy
ZWQgZmFsc2Ugc2hvdWxkIHN1Y2NlZWQKIFBBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBvcmRl
cmVkIG51bGwvdW5kZWZpbmVkIHNob3VsZCBzdWNjZWVkIAogUEFTUyBjcmVhdGVEYXRhQ2hhbm5l
bCB3aXRoIG1heFBhY2tldExpZmVUaW1lIDAgc2hvdWxkIHN1Y2NlZWQgCiBQQVNTIGNyZWF0ZURh
dGFDaGFubmVsIHdpdGggbWF4UmV0cmFuc21pdHMgMCBzaG91bGQgc3VjY2VlZCAKLVBBU1MgY3Jl
YXRlRGF0YUNoYW5uZWwgd2l0aCBib3RoIG1heFBhY2tldExpZmVUaW1lIGFuZCBtYXhSZXRyYW5z
bWl0cyBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgCitQQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdp
dGggYm90aCBtYXhQYWNrZXRMaWZlVGltZSBhbmQgbWF4UmV0cmFuc21pdHMgdW5kZWZpbmVkIHNo
b3VsZCBzdWNjZWVkIAorUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGJvdGggbWF4UGFja2V0
TGlmZVRpbWUgYW5kIG1heFJldHJhbnNtaXRzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IGNyZWF0ZURhdGFDaGFubmVsIHdpdGggcHJvdG9jb2wgImZvbyIgc2hvdWxkIHN1Y2NlZWQgCiBQ
QVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggcHJvdG9jb2wgbnVsbCBzaG91bGQgc3VjY2VlZCAK
IFBBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBwcm90b2NvbCB1bmRlZmluZWQgc2hvdWxkIHN1
Y2NlZWQgCiBQQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggcHJvdG9jb2wgbG9uZSBzdXJyb2dh
dGUgc2hvdWxkIHN1Y2NlZWQgCi1QQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggbmVnb3RpYXRl
ZCB0cnVlIHNob3VsZCBzdWNjZWVkIAotUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGlkIDAg
c2hvdWxkIHN1Y2NlZWQgCi1QQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggaWQgMSBzaG91bGQg
c3VjY2VlZCAKLVBBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCA2NTUzNCBzaG91bGQgc3Vj
Y2VlZCAKK0ZBSUwgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCAwIGFuZCBuZWdvdGlhdGVkIG5v
dCBzZXQgc2hvdWxkIHN1Y2NlZWQsIGJ1dCBub3Qgc2V0IHRoZSBjaGFubmVsJ3MgaWQgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChudW1iZXIpIDAKK0ZBSUwg
Y3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCAxIGFuZCBuZWdvdGlhdGVkIG5vdCBzZXQgc2hvdWxk
IHN1Y2NlZWQsIGJ1dCBub3Qgc2V0IHRoZSBjaGFubmVsJ3MgaWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChudW1iZXIpIDEKK0ZBSUwgY3JlYXRlRGF0YUNo
YW5uZWwgd2l0aCBpZCA2NTUzNCBhbmQgbmVnb3RpYXRlZCBub3Qgc2V0IHNob3VsZCBzdWNjZWVk
LCBidXQgbm90IHNldCB0aGUgY2hhbm5lbCdzIGlkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChv
YmplY3QpIG51bGwgYnV0IGdvdCAobnVtYmVyKSA2NTUzNAorRkFJTCBjcmVhdGVEYXRhQ2hhbm5l
bCB3aXRoIGlkIDY1NTM1IGFuZCBuZWdvdGlhdGVkIG5vdCBzZXQgc2hvdWxkIHN1Y2NlZWQsIGJ1
dCBub3Qgc2V0IHRoZSBjaGFubmVsJ3MgaWQgVHlwZSBlcnJvcgorUEFTUyBjcmVhdGVEYXRhQ2hh
bm5lbCB3aXRoIGlkIDAgYW5kIG5lZ290aWF0ZWQgdHJ1ZSBzaG91bGQgc3VjY2VlZCwgYW5kIHNl
dCB0aGUgY2hhbm5lbCdzIGlkIAorUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGlkIDEgYW5k
IG5lZ290aWF0ZWQgdHJ1ZSBzaG91bGQgc3VjY2VlZCwgYW5kIHNldCB0aGUgY2hhbm5lbCdzIGlk
IAorRkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGlkIDY1NTM0IGFuZCBuZWdvdGlhdGVkIHRy
dWUgc2hvdWxkIHN1Y2NlZWQsIGFuZCBzZXQgdGhlIGNoYW5uZWwncyBpZCBUaGUgb3BlcmF0aW9u
IGlzIG5vdCBzdXBwb3J0ZWQuCitQQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggaWQgLTEgYW5k
IG5lZ290aWF0ZWQgbm90IHNldCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBjcmVhdGVE
YXRhQ2hhbm5lbCB3aXRoIGlkIDY1NTM2IGFuZCBuZWdvdGlhdGVkIG5vdCBzZXQgc2hvdWxkIHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCAtMSBzaG91bGQg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGlkIDY1NTM1IHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggaWQgNjU1
MzYgc2hvdWxkIHRocm93IFR5cGVFcnJvciAKLUZBSUwgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBw
cmlvcml0eSAiaGlnaCIgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0
cmluZykgImhpZ2giIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIGNyZWF0ZURh
dGFDaGFubmVsIHdpdGggaW52YWxpZCBwcmlvcml0eSBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBw
cmlvcml0eTogJ2ludmFsaWQnIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIGNyZWF0ZURhdGFDaGFu
bmVsIHdpdGggbmVnb3RpYXRlZCBmYWxzZSBhbmQgbG9uZyBsYWJlbCBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PgorRkFJTCBjcmVhdGVEYXRhQ2hh
bm5lbCB3aXRoIHRvbyBsb25nIGxhYmVsIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93c19qczogZnVuY3Rpb24gIigpID0+CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2wnLnJl
cGVhdCg2NTUzNiksIHsKKyAgICAgIG5lZ290aWF0ZWQ6IHRydWUsCisgICAgICBpZDogNDIKKyAg
ICB9KSIgZGlkIG5vdCB0aHJvdworRkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHRvbyBsb25n
IGxhYmVsICgyIGJ5dGUgdW5pY29kZSkgc2hvdWxkIHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4KKyAgICBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnXHUwMGI1
Jy5yZXBlYXQoMzI3NjgpKSIgZGlkIG5vdCB0aHJvdworUEFTUyBjcmVhdGVEYXRhQ2hhbm5lbCB3
aXRoIHNhbWUgbGFiZWwgdXNlZCB0d2ljZSBzaG91bGQgbm90IHRocm93IAorUEFTUyBjcmVhdGVE
YXRhQ2hhbm5lbCB3aXRoIG5lZ290aWF0ZWQgdHJ1ZSBhbmQgaWQgc2hvdWxkIHN1Y2NlZWQgCitG
QUlMIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggdG9vIGxvbmcgcHJvdG9jb2wgc2hvdWxkIHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4KKyAgICBwYy5jcmVh
dGVEYXRhQ2hhbm5lbCgnJywgeworICAgICAgcHJvdG9jb2w6ICdwJy5yZXBlYXQoNjU1MzYpLAor
ICAgICAgbmVnb3RpYXRlZDogdHJ1ZSwKKyAgICAgIGlkOiA0MgorICAgIH0pIiBkaWQgbm90IHRo
cm93CitGQUlMIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggdG9vIGxvbmcgcHJvdG9jb2wgKDIgYnl0
ZSB1bmljb2RlKSBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0
aW9uICIoKSA9PgogICAgIHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7Ci0gICAgICBsYWJlbDog
JyAnLnJlcGVhdCg2NTUzNiksCi0gICAgICBuZWdvdGlhdGVkOiBmYWxzZQorICAgICAgcHJvdG9j
b2w6ICdcdTAwYjYnLnJlcGVhdCgzMjc2OCkKKyAgICB9KSIgZGlkIG5vdCB0aHJvdworUEFTUyBj
cmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG1heGltdW0gbGVuZ3RoIGxhYmVsIGFuZCBwcm90b2NvbCBz
aG91bGQgc3VjY2VlZCAKK1BBU1MgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBuZWdvdGlhdGVkIGZh
bHNlIHNob3VsZCBzdWNjZWVkIAorRkFJTCBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG5lZ290aWF0
ZWQgZmFsc2UgYW5kIGlkIDQyIHNob3VsZCBpZ25vcmUgdGhlIGlkIGFzc2VydF9lcXVhbHM6IEV4
cGVjdCBkYy5pZCB0byBiZSBpZ25vcmVkIChudWxsKSBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1
dCBnb3QgKG51bWJlcikgNDIKK0ZBSUwgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBuZWdvdGlhdGVk
IHRydWUgYW5kIGlkIG5vdCBkZWZpbmVkIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93c19qczogZnVuY3Rpb24gIigpID0+CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3Qn
LCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVlCiAgICAgfSkiIGRpZCBub3QgdGhyb3cKLVBBU1Mg
Y3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBuZWdvdGlhdGVkIGZhbHNlIGFuZCBsb25nIHByb3RvY29s
IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIGNyZWF0ZURhdGFDaGFubmVsIHdpdGggbmVn
b3RpYXRlZCB0cnVlIGFuZCBsb25nIGxhYmVsIGFuZCBsb25nIHByb3RvY29sIHNob3VsZCBzdWNj
ZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiBidXQgZ290ICIiCi1GQUlMIENoYW5uZWxzIGNyZWF0ZWQgYWZ0ZXIg
U0NUUCB0cmFuc3BvcnQgaXMgZXN0YWJsaXNoZWQgc2hvdWxkIGhhdmUgaWQgYXNzaWduZWQgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGdlbmVyYXRlQW5zd2VyIgorRkFJTCBDaGFu
bmVscyBjcmVhdGVkIChhZnRlciBzZXRSZW1vdGVEZXNjcmlwdGlvbikgc2hvdWxkIGhhdmUgaWQg
YXNzaWduZWQgYXNzZXJ0X25vdF9lcXVhbHM6IEV4cGVjdCBkYzEuaWQgdG8gYmUgYXNzaWduZWQg
YWZ0ZXIgcmVtb3RlIGRlc2NyaXB0aW9uIGhhcyBiZWVuIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1
ZSBudWxsCitGQUlMIFJldXNpbmcgYSBkYXRhIGNoYW5uZWwgaWQgdGhhdCBpcyBpbiB1c2Ugc2hv
dWxkIHRocm93IE9wZXJhdGlvbkVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkg
PT4KKyAgICBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnY2hhbm5lbC0zJywgeworICAgICAgbmVnb3Rp
YXRlZDogdHJ1ZSwKKyAgICAgIGlkOiA0MiwKKyAgICB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBw
b3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiIgdGhhdCBpcyBub3Qg
YSBET01FeGNlcHRpb24gT3BlcmF0aW9uRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0
byA5LCBleHBlY3RlZCAwCitGQUlMIFJldXNpbmcgYSBkYXRhIGNoYW5uZWwgaWQgdGhhdCBpcyBp
biB1c2UgKGFmdGVyIHNldFJlbW90ZURlc2NyaXB0aW9uKSBzaG91bGQgdGhyb3cgT3BlcmF0aW9u
RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgorICAgIHBjMS5jcmVhdGVE
YXRhQ2hhbm5lbCgnY2hhbm5lbC0zJywgeworICAgICAgbmVnb3RpYXRlZDogdHJ1ZSwKKyAgICAg
IGlkOiA0MiwKKyAgICB9KSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9w
ZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gT3Bl
cmF0aW9uRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byA5LCBleHBlY3RlZCAwCitG
QUlMIFJldXNpbmcgYSBkYXRhIGNoYW5uZWwgaWQgdGhhdCBpcyBpbiB1c2UgKGFmdGVyIHNldFJl
bW90ZURlc2NyaXB0aW9uLCBuZWdvdGlhdGVkIHZpYSBEQ0VQKSBzaG91bGQgdGhyb3cgT3BlcmF0
aW9uRXJyb3IgYXNzZXJ0X25vdF9lcXVhbHM6IEV4cGVjdCBkYzEuaWQgdG8gYmUgYXNzaWduZWQg
YWZ0ZXIgcmVtb3RlIGRlc2NyaXB0aW9uIGhhcyBiZWVuIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1
ZSBudWxsCitQQVNTIE5ldyBkYXRhY2hhbm5lbCBzaG91bGQgYmUgaW4gdGhlIGNvbm5lY3Rpbmcg
c3RhdGUgYWZ0ZXIgY3JlYXRpb24gKGFmdGVyIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCkgCitQ
QVNTIGFkZFRyYWNrLCB0aGVuIGNyZWF0aW5nIGRhdGFjaGFubmVsLCBzaG91bGQgbmVnb3RpYXRl
IHByb3Blcmx5IAorUEFTUyBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyBkYXRhY2hhbm5lbCwgc2hv
dWxkIG5lZ290aWF0ZSBwcm9wZXJseSB3aGVuIG1heC1idW5kbGUgaXMgdXNlZCAKK0ZBSUwgU3Rv
cHBpbmcgdGhlIGJ1bmRsZS10YWcgd2hlbiB0aGVyZSBpcyBhIGRhdGFjaGFubmVsIGluIHRoZSBi
dW5kbGUgc2hvdWxkIGtpbGwgdGhlIERhdGFDaGFubmVsIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIk9wZXJhdGlvbkVycm9yOiBGYWlsZWQgdG8g
c2V0IGxvY2FsIGFuc3dlciBzZHA6IEZhaWxlZCB0byBhcHBseSB0aGUgZGVzY3JpcHRpb24gZm9y
IDE6IEZhaWxlZCB0byBzZXR1cCBSVENQIG11eC4iCitQQVNTIE5ldyBuZWdvdGlhdGVkIGRhdGFj
aGFubmVsIHNob3VsZCBiZSBpbiB0aGUgY29ubmVjdGluZyBzdGF0ZSBhZnRlciBjcmVhdGlvbiAo
YWZ0ZXIgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50KSAKK1BBU1MgYWRkVHJhY2ssIHRoZW4gY3Jl
YXRpbmcgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCwgc2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseSAK
K1BBU1MgYWRkVHJhY2ssIHRoZW4gY3JlYXRpbmcgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCwgc2hv
dWxkIG5lZ290aWF0ZSBwcm9wZXJseSB3aGVuIG1heC1idW5kbGUgaXMgdXNlZCAKK0ZBSUwgU3Rv
cHBpbmcgdGhlIGJ1bmRsZS10YWcgd2hlbiB0aGVyZSBpcyBhIG5lZ290aWF0ZWQgZGF0YWNoYW5u
ZWwgaW4gdGhlIGJ1bmRsZSBzaG91bGQga2lsbCB0aGUgRGF0YUNoYW5uZWwgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6
IEZhaWxlZCB0byBzZXQgbG9jYWwgYW5zd2VyIHNkcDogRmFpbGVkIHRvIGFwcGx5IHRoZSBkZXNj
cmlwdGlvbiBmb3IgMTogRmFpbGVkIHRvIHNldHVwIFJUQ1AgbXV4LiIKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5uZWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURh
dGFDaGFubmVsLmh0bWwKaW5kZXggNDUwYTI1MDAyZWQyMjEyZTdmMWRkNWNiOTdmZjk4NWUzZjk1
N2FhMS4uODc4Njc2NjRiNThhNjc4N2JkOTZjZmI4NTU1OWI0ZjExNzFlMjYzZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5uZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1j
cmVhdGVEYXRhQ2hhbm5lbC5odG1sCkBAIC0xLDE1NCArMSwxODUgQEAKIDwhZG9jdHlwZSBodG1s
PgogPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxv
bmciPgogPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5jcmVhdGVEYXRhQ2hhbm5l
bDwvdGl0bGU+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KICd1c2Ugc3RyaWN0JzsKIAotLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5n
IGVkaXRvciBkcmFmdDoKLS8vIGh0dHBzOi8vcmF3Z2l0LmNvbS93M2Mvd2VicnRjLXBjL2NjOGQ4
MGY0NTViODZjODA0MWQ2M2JjZWI4YjQ1N2Y0NWM3MmFhODkvd2VicnRjLmh0bWwKK2NvbnN0IHN0
b3BUcmFja3MgPSAoLi4uc3RyZWFtcykgPT4geworICBzdHJlYW1zLmZvckVhY2goc3RyZWFtID0+
IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworfTsK
KworLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIHJldmlzaW9uOgorLy8gaHR0cHM6
Ly9yYXdnaXQuY29tL3czYy93ZWJydGMtcGMvMWNjNWJmYzNmZjE4NzQxMDMzZDgwNGM0YTcxZjc4
OTEyNDJmYjViMy93ZWJydGMuaHRtbAogCiAvKgogICA2LjEuICBSVENQZWVyQ29ubmVjdGlvbiBJ
bnRlcmZhY2UgRXh0ZW5zaW9ucwogCiAgICAgcGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5l
Y3Rpb24gewotICAgICAgUlRDRGF0YUNoYW5uZWwgY3JlYXRlRGF0YUNoYW5uZWwoVVNWU3RyaW5n
IGxhYmVsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFs
IFJUQ0RhdGFDaGFubmVsSW5pdCBkYXRhQ2hhbm5lbERpY3QpOwotICAgICAgLi4uCisgICAgICAg
IFsuLi5dCisgICAgICAgIFJUQ0RhdGFDaGFubmVsIGNyZWF0ZURhdGFDaGFubmVsKFVTVlN0cmlu
ZyBsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
YWwgUlRDRGF0YUNoYW5uZWxJbml0IGRhdGFDaGFubmVsRGljdCk7CisgICAgICAgIFsuLi5dCiAg
ICAgfTsKIAogICA2LjIuICBSVENEYXRhQ2hhbm5lbAogCiAgICAgaW50ZXJmYWNlIFJUQ0RhdGFD
aGFubmVsIDogRXZlbnRUYXJnZXQgewotICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJp
bmcgICAgICAgICAgIGxhYmVsOwotICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgICAgIG9yZGVyZWQ7Ci0gICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNo
b3J0PyAgICAgbWF4UGFja2V0TGlmZVRpbWU7Ci0gICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIHNob3J0PyAgICAgbWF4UmV0cmFuc21pdHM7Ci0gICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFVTVlN0cmluZyAgICAgICAgICAgcHJvdG9jb2w7Ci0gICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gICAgICAgICAgICAgbmVnb3RpYXRlZDsKLSAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgc2hvcnQ/ICAgICBpZDsKLSAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
UlRDUHJpb3JpdHlUeXBlICAgICBwcmlvcml0eTsKLSAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
UlRDRGF0YUNoYW5uZWxTdGF0ZSByZWFkeVN0YXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgVVNWU3RyaW5nICAgICAgICAgICBsYWJlbDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gICAgICAgICAgICAgb3JkZXJlZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIHNob3J0PyAgICAgbWF4UGFja2V0TGlmZVRpbWU7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydD8gICAgIG1heFJldHJhbnNtaXRzOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nICAgICAgICAgICBwcm90b2NvbDsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgbmVnb3RpYXRlZDsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0PyAgICAgaWQ7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBSVENEYXRhQ2hhbm5lbFN0YXRlIHJlYWR5U3RhdGU7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nICAgICAgIGJ1ZmZlcmVkQW1vdW50Owor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICAgICBidWZmZXJlZEFt
b3VudExvd1RocmVzaG9sZDsKKyAgICAgICAgWy4uLl0KKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIERPTVN0cmluZyAgICAgICAgICAgYmluYXJ5VHlwZTsKKyAgICAgICAgWy4uLl0KICAgICB9
OwogCiAgICAgZGljdGlvbmFyeSBSVENEYXRhQ2hhbm5lbEluaXQgewotICAgICAgYm9vbGVhbiAg
ICAgICAgIG9yZGVyZWQgPSB0cnVlOwotICAgICAgdW5zaWduZWQgc2hvcnQgIG1heFBhY2tldExp
ZmVUaW1lOwotICAgICAgdW5zaWduZWQgc2hvcnQgIG1heFJldHJhbnNtaXRzOwotICAgICAgVVNW
U3RyaW5nICAgICAgIHByb3RvY29sID0gIiI7Ci0gICAgICBib29sZWFuICAgICAgICAgbmVnb3Rp
YXRlZCA9IGZhbHNlOwotICAgICAgW0VuZm9yY2VSYW5nZV0KLSAgICAgIHVuc2lnbmVkIHNob3J0
ICBpZDsKLSAgICAgIFJUQ1ByaW9yaXR5VHlwZSBwcmlvcml0eSA9ICJsb3ciOwotICAgIH07Ci0K
LSAgNC45LjEuICBSVENQcmlvcml0eVR5cGUgRW51bQotCi0gICAgZW51bSBSVENQcmlvcml0eVR5
cGUgewotICAgICAgInZlcnktbG93IiwKLSAgICAgICJsb3ciLAotICAgICAgIm1lZGl1bSIsCi0g
ICAgICAiaGlnaCIKKyAgICAgICAgYm9vbGVhbiAgICAgICAgIG9yZGVyZWQgPSB0cnVlOworICAg
ICAgICB1bnNpZ25lZCBzaG9ydCAgbWF4UGFja2V0TGlmZVRpbWU7CisgICAgICAgIHVuc2lnbmVk
IHNob3J0ICBtYXhSZXRyYW5zbWl0czsKKyAgICAgICAgVVNWU3RyaW5nICAgICAgIHByb3RvY29s
ID0gIiI7CisgICAgICAgIGJvb2xlYW4gICAgICAgICBuZWdvdGlhdGVkID0gZmFsc2U7CisgICAg
ICAgIFtFbmZvcmNlUmFuZ2VdCisgICAgICAgIHVuc2lnbmVkIHNob3J0ICBpZDsKICAgICB9Owog
ICovCiAKLXRlc3QoKCkgPT4gewordGVzdCh0ID0+IHsKICAgY29uc3QgcGMgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKwogICBh
c3NlcnRfZXF1YWxzKHBjLmNyZWF0ZURhdGFDaGFubmVsLmxlbmd0aCwgMSk7Ci0gIGFzc2VydF90
aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgpKTsKKyAg
YXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHBjLmNyZWF0ZURhdGFDaGFubmVsKCkp
OwogfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggbm8gYXJndW1lbnQgc2hvdWxkIHRocm93IFR5
cGVFcnJvcicpOwogCiAvKgogICA2LjIuICBjcmVhdGVEYXRhQ2hhbm5lbAogICAgIDIuICBJZiBj
b25uZWN0aW9uJ3MgW1tpc0Nsb3NlZF1dIHNsb3QgaXMgdHJ1ZSwgdGhyb3cgYW4gSW52YWxpZFN0
YXRlRXJyb3IuCiAgKi8KLXRlc3QoKCkgPT4gewordGVzdCh0ID0+IHsKICAgY29uc3QgcGMgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgcGMuY2xvc2UoKTsKICAgYXNzZXJ0X2VxdWFscyhw
Yy5zaWduYWxpbmdTdGF0ZSwgJ2Nsb3NlZCcsICdzaWduYWxpbmcgc3RhdGUnKTsKLSAgYXNzZXJ0
X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgn
JykpOworICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBwYy5j
cmVhdGVEYXRhQ2hhbm5lbCgnJykpOwogfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggY2xvc2Vk
IGNvbm5lY3Rpb24gc2hvdWxkIHRocm93IEludmFsaWRTdGF0ZUVycm9yJyk7CiAKIC8qCiAgIDYu
MS4gIGNyZWF0ZURhdGFDaGFubmVsCi0gICAgNC4gIExldCBjaGFubmVsIGhhdmUgYSBbW0xhYmVs
XV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0byB0aGUgdmFsdWUgb2YgdGhlCisgICAgNC4g
IExldCBjaGFubmVsIGhhdmUgYSBbW0RhdGFDaGFubmVsTGFiZWxdXSBpbnRlcm5hbCBzbG90IGlu
aXRpYWxpemVkIHRvIHRoZSB2YWx1ZSBvZiB0aGUKICAgICAgICAgZmlyc3QgYXJndW1lbnQuCi0g
ICAgNS4gIExldCBvcHRpb25zIGJlIHRoZSBzZWNvbmQgYXJndW1lbnQuCi0gICAgNi4gIExldCBj
aGFubmVsIGhhdmUgYW4gW1tNYXhQYWNrZXRMaWZlVGltZV1dIGludGVybmFsIHNsb3QgaW5pdGlh
bGl6ZWQgdG8KKyAgICA2LiAgTGV0IG9wdGlvbnMgYmUgdGhlIHNlY29uZCBhcmd1bWVudC4KKyAg
ICA3LiAgTGV0IGNoYW5uZWwgaGF2ZSBhbiBbW01heFBhY2tldExpZmVUaW1lXV0gaW50ZXJuYWwg
c2xvdCBpbml0aWFsaXplZCB0bwogICAgICAgICBvcHRpb24ncyBtYXhQYWNrZXRMaWZlVGltZSBt
ZW1iZXIsIGlmIHByZXNlbnQsIG90aGVyd2lzZSBudWxsLgotICAgIDcuICBMZXQgY2hhbm5lbCBo
YXZlIGFuIFtbTWF4UmV0cmFuc21pdHNdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvCisg
ICAgOC4gIExldCBjaGFubmVsIGhhdmUgYSBbW1JlYWR5U3RhdGVdXSBpbnRlcm5hbCBzbG90IGlu
aXRpYWxpemVkIHRvICJjb25uZWN0aW5nIi4KKyAgICA5LiAgTGV0IGNoYW5uZWwgaGF2ZSBhIFtb
QnVmZmVyZWRBbW91bnRdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvIDAuCisgICAgMTAu
IExldCBjaGFubmVsIGhhdmUgYW4gW1tNYXhSZXRyYW5zbWl0c11dIGludGVybmFsIHNsb3QgaW5p
dGlhbGl6ZWQgdG8KICAgICAgICAgb3B0aW9uJ3MgbWF4UmV0cmFuc21pdHMgbWVtYmVyLCBpZiBw
cmVzZW50LCBvdGhlcndpc2UgbnVsbC4KLSAgICA4LiAgTGV0IGNoYW5uZWwgaGF2ZSBhbiBbW0Rh
dGFDaGFubmVsSWRdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvCi0gICAgICAgIG9wdGlv
bidzIGlkIG1lbWJlciwgaWYgcHJlc2VudCwgb3RoZXJ3aXNlIG51bGwuCi0gICAgOS4gIExldCBj
aGFubmVsIGhhdmUgYW4gW1tPcmRlcmVkXV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0byBv
cHRpb24ncworICAgIDExLiBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbT3JkZXJlZF1dIGludGVybmFs
IHNsb3QgaW5pdGlhbGl6ZWQgdG8gb3B0aW9uJ3MKICAgICAgICAgb3JkZXJlZCBtZW1iZXIuCi0g
ICAgMTAuIExldCBjaGFubmVsIGhhdmUgYW4gW1tQcm90b2NvbF1dIGludGVybmFsIHNsb3QgaW5p
dGlhbGl6ZWQgdG8gb3B0aW9uJ3MKKyAgICAxMi4gTGV0IGNoYW5uZWwgaGF2ZSBhIFtbRGF0YUNo
YW5uZWxQcm90b2NvbF1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8gb3B0aW9uJ3MKICAg
ICAgICAgcHJvdG9jb2wgbWVtYmVyLgotICAgIDExLiBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbTmVn
b3RpYXRlZF1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8gb3B0aW9uJ3MKLSAgICAgICAg
bmVnb3RpYXRlZCBtZW1iZXIuCi0gICAgMTIuIExldCBjaGFubmVsIGhhdmUgYW4gW1tEYXRhQ2hh
bm5lbFByaW9yaXR5XV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZAotICAgICAgICB0byBvcHRp
b24ncyBwcmlvcml0eSBtZW1iZXIuCisgICAgMTQuIExldCBjaGFubmVsIGhhdmUgYSBbW05lZ290
aWF0ZWRdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvIG9wdGlvbidzIG5lZ290aWF0ZWQK
KyAgICAgICAgbWVtYmVyLgorICAgIDE1LiBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbRGF0YUNoYW5u
ZWxJZF1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8gb3B0aW9uJ3MgaWQKKyAgICAgICAg
bWVtYmVyLCBpZiBpdCBpcyBwcmVzZW50IGFuZCBbW05lZ290aWF0ZWRdXSBpcyB0cnVlLCBvdGhl
cndpc2UgbnVsbC4KKyAgICAyMS4gSWYgdGhlIFtbRGF0YUNoYW5uZWxJZF1dIHNsb3QgaXMgbnVs
bCAoZHVlIHRvIG5vIElEIGJlaW5nIHBhc3NlZCBpbnRvCisgICAgICAgIGNyZWF0ZURhdGFDaGFu
bmVsLCBvciBbW05lZ290aWF0ZWRdXSBiZWluZyBmYWxzZSksIGFuZCB0aGUgRFRMUyByb2xlIG9m
IHRoZSBTQ1RQCisgICAgICAgIHRyYW5zcG9ydCBoYXMgYWxyZWFkeSBiZWVuIG5lZ290aWF0ZWQs
IHRoZW4gaW5pdGlhbGl6ZSBbW0RhdGFDaGFubmVsSWRdXSB0byBhIHZhbHVlCisgICAgICAgIGdl
bmVyYXRlZCBieSB0aGUgdXNlciBhZ2VudCwgYWNjb3JkaW5nIHRvIFtSVENXRUItREFUQS1QUk9U
T0NPTF0sIGFuZCBza2lwCisgICAgICAgIHRvIHRoZSBuZXh0IHN0ZXAuIElmIG5vIGF2YWlsYWJs
ZSBJRCBjb3VsZCBiZSBnZW5lcmF0ZWQsIG9yIGlmIHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAg
W1tEYXRhQ2hhbm5lbElkXV0gc2xvdCBpcyBiZWluZyB1c2VkIGJ5IGFuIGV4aXN0aW5nIFJUQ0Rh
dGFDaGFubmVsLCB0aHJvdyBhbgorICAgICAgICBPcGVyYXRpb25FcnJvciBleGNlcHRpb24uCisK
KyAgICAgICAgTm90ZQorICAgICAgICBJZiB0aGUgW1tEYXRhQ2hhbm5lbElkXV0gc2xvdCBpcyBu
dWxsIGFmdGVyIHRoaXMgc3RlcCwgaXQgd2lsbCBiZSBwb3B1bGF0ZWQgb25jZQorICAgICAgICB0
aGUgRFRMUyByb2xlIGlzIGRldGVybWluZWQgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHNldHRpbmcg
YW4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLgorICAgIDIyLiBJZiBjaGFubmVsIGlzIHRoZSBmaXJz
dCBSVENEYXRhQ2hhbm5lbCBjcmVhdGVkIG9uIGNvbm5lY3Rpb24sIHVwZGF0ZSB0aGUKKyAgICAg
ICAgbmVnb3RpYXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24uCisKIAogICA2LjIuICBS
VENEYXRhQ2hhbm5lbAogCiAgICAgQSBSVENEYXRhQ2hhbm5lbCwgY3JlYXRlZCB3aXRoIGNyZWF0
ZURhdGFDaGFubmVsIG9yIGRpc3BhdGNoZWQgdmlhIGEKICAgICBSVENEYXRhQ2hhbm5lbEV2ZW50
LCBNVVNUIGluaXRpYWxseSBiZSBpbiB0aGUgY29ubmVjdGluZyBzdGF0ZQogCisgICAgYnVmZmVy
ZWRBbW91bnRMb3dUaHJlc2hvbGQKKyAgICAgIFsuLi5dIFRoZSBidWZmZXJlZEFtb3VudExvd1Ro
cmVzaG9sZCBpcyBpbml0aWFsbHkgemVybyBvbiBlYWNoIG5ldyBSVENEYXRhQ2hhbm5lbCwKKyAg
ICAgIGJ1dCB0aGUgYXBwbGljYXRpb24gbWF5IGNoYW5nZSBpdHMgdmFsdWUgYXQgYW55IHRpbWUu
CisKICAgICBiaW5hcnlUeXBlCi0gICAgICBXaGVuIGEgUlRDRGF0YUNoYW5uZWwgb2JqZWN0IGlz
IGNyZWF0ZWQsIHRoZSBiaW5hcnlUeXBlIGF0dHJpYnV0ZSBNVVNUCisgICAgICBbLi4uXSBXaGVu
IGEgUlRDRGF0YUNoYW5uZWwgb2JqZWN0IGlzIGNyZWF0ZWQsIHRoZSBiaW5hcnlUeXBlIGF0dHJp
YnV0ZSBNVVNUCiAgICAgICBiZSBpbml0aWFsaXplZCB0byB0aGUgc3RyaW5nICJibG9iIi4KICAq
LwotdGVzdCgoKSA9PiB7Cit0ZXN0KHQgPT4gewogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwotICBjb25zdCBjaGFubmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycpOwot
ICBhc3NlcnRfdHJ1ZShjaGFubmVsIGluc3RhbmNlb2YgUlRDRGF0YUNoYW5uZWwsICdpcyBSVENE
YXRhQ2hhbm5lbCcpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwubGFiZWwsICcnKTsKLSAgYXNz
ZXJ0X2VxdWFscyhjaGFubmVsLm9yZGVyZWQsIHRydWUpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5u
ZWwubWF4UGFja2V0TGlmZVRpbWUsIG51bGwpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwubWF4
UmV0cmFuc21pdHMsIG51bGwpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwucHJvdG9jb2wsICcn
KTsKLSAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLm5lZ290aWF0ZWQsIGZhbHNlKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBjb25zdCBkYyA9IHBjLmNyZWF0ZURhdGFD
aGFubmVsKCcnKTsKIAorICBhc3NlcnRfdHJ1ZShkYyBpbnN0YW5jZW9mIFJUQ0RhdGFDaGFubmVs
LCAnaXMgUlRDRGF0YUNoYW5uZWwnKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5sYWJlbCwgJycpOwor
ICBhc3NlcnRfZXF1YWxzKGRjLm9yZGVyZWQsIHRydWUpOworICBhc3NlcnRfZXF1YWxzKGRjLm1h
eFBhY2tldExpZmVUaW1lLCBudWxsKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5tYXhSZXRyYW5zbWl0
cywgbnVsbCk7CisgIGFzc2VydF9lcXVhbHMoZGMucHJvdG9jb2wsICcnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhkYy5uZWdvdGlhdGVkLCBmYWxzZSk7CiAgIC8vIFNpbmNlIG5vIG9mZmVyL2Fuc3dlciBl
eGNoYW5nZSBoYXMgb2NjdXJyZWQgeWV0LCB0aGUgRFRMUyByb2xlIGlzIHVua25vd24KICAgLy8g
YW5kIHNvIHRoZSBJRCBzaG91bGQgYmUgbnVsbC4KLSAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLmlk
LCBudWxsKTsKLSAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLnByaW9yaXR5LCAnbG93Jyk7Ci0KLSAg
YXNzZXJ0X2VxdWFscyhjaGFubmVsLnJlYWR5U3RhdGUsICdjb25uZWN0aW5nJyk7Ci0gIGFzc2Vy
dF9lcXVhbHMoY2hhbm5lbC5iaW5hcnlUeXBlLCAnYmxvYicpOwotCisgIGFzc2VydF9lcXVhbHMo
ZGMuaWQsIG51bGwpOworICBhc3NlcnRfZXF1YWxzKGRjLnJlYWR5U3RhdGUsICdjb25uZWN0aW5n
Jyk7CisgIGFzc2VydF9lcXVhbHMoZGMuYnVmZmVyZWRBbW91bnQsIDApOworICBhc3NlcnRfZXF1
YWxzKGRjLmJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkLCAwKTsKKyAgYXNzZXJ0X2VxdWFscyhk
Yy5iaW5hcnlUeXBlLCAnYmxvYicpOwogfSwgJ2NyZWF0ZURhdGFDaGFubmVsIGF0dHJpYnV0ZSBk
ZWZhdWx0IHZhbHVlcycpOwogCi10ZXN0KCgpID0+IHsKK3Rlc3QodCA9PiB7CiAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVE
YXRhQ2hhbm5lbCgndGVzdCcsIHsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
KworICBjb25zdCBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0JywgewogICAgIG9yZGVy
ZWQ6IGZhbHNlLAotICAgIG1heFBhY2tldExpZmVUaW1lOiBudWxsLAogICAgIG1heFJldHJhbnNt
aXRzOiAxLAorICAgIC8vIE5vdGU6IG1heFBhY2tldExpZmVUaW1lIGlzIG5vdCBzZXQgaW4gdGhp
cyB0ZXN0LgogICAgIHByb3RvY29sOiAnY3VzdG9tJywKICAgICBuZWdvdGlhdGVkOiB0cnVlLAot
ICAgIGlkOiAzLAotICAgIHByaW9yaXR5OiAnaGlnaCcKKyAgICBpZDogMwogICB9KTsKIAotICBh
c3NlcnRfdHJ1ZShjaGFubmVsIGluc3RhbmNlb2YgUlRDRGF0YUNoYW5uZWwsICdpcyBSVENEYXRh
Q2hhbm5lbCcpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwubGFiZWwsICd0ZXN0Jyk7Ci0gIGFz
c2VydF9lcXVhbHMoY2hhbm5lbC5vcmRlcmVkLCBmYWxzZSk7Ci0gIGFzc2VydF9lcXVhbHMoY2hh
bm5lbC5tYXhQYWNrZXRMaWZlVGltZSwgbnVsbCk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5t
YXhSZXRyYW5zbWl0cywgMSk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5wcm90b2NvbCwgJ2N1
c3RvbScpOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwubmVnb3RpYXRlZCwgdHJ1ZSk7Ci0gIGFz
c2VydF9lcXVhbHMoY2hhbm5lbC5pZCwgMyk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5wcmlv
cml0eSwgJ2hpZ2gnKTsKLSAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLnJlYWR5U3RhdGUsICdjb25u
ZWN0aW5nJyk7Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5iaW5hcnlUeXBlLCAnYmxvYicpOwot
CisgIGFzc2VydF90cnVlKGRjIGluc3RhbmNlb2YgUlRDRGF0YUNoYW5uZWwsICdpcyBSVENEYXRh
Q2hhbm5lbCcpOworICBhc3NlcnRfZXF1YWxzKGRjLmxhYmVsLCAndGVzdCcpOworICBhc3NlcnRf
ZXF1YWxzKGRjLm9yZGVyZWQsIGZhbHNlKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5tYXhQYWNrZXRM
aWZlVGltZSwgbnVsbCk7CisgIGFzc2VydF9lcXVhbHMoZGMubWF4UmV0cmFuc21pdHMsIDEpOwor
ICBhc3NlcnRfZXF1YWxzKGRjLnByb3RvY29sLCAnY3VzdG9tJyk7CisgIGFzc2VydF9lcXVhbHMo
ZGMubmVnb3RpYXRlZCwgdHJ1ZSk7CisgIGFzc2VydF9lcXVhbHMoZGMuaWQsIDMpOworICBhc3Nl
cnRfZXF1YWxzKGRjLnJlYWR5U3RhdGUsICdjb25uZWN0aW5nJyk7CisgIGFzc2VydF9lcXVhbHMo
ZGMuYnVmZmVyZWRBbW91bnQsIDApOworICBhc3NlcnRfZXF1YWxzKGRjLmJ1ZmZlcmVkQW1vdW50
TG93VGhyZXNob2xkLCAwKTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5iaW5hcnlUeXBlLCAnYmxvYicp
OworCisgIGNvbnN0IGRjMiA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0MicsIHsKKyAgICBv
cmRlcmVkOiBmYWxzZSwKKyAgICBtYXhQYWNrZXRMaWZlVGltZTogNDIKKyAgfSk7CisgIGFzc2Vy
dF9lcXVhbHMoZGMyLmxhYmVsLCAndGVzdDInKTsKKyAgYXNzZXJ0X2VxdWFscyhkYzIubWF4UGFj
a2V0TGlmZVRpbWUsIDQyKTsKKyAgYXNzZXJ0X2VxdWFscyhkYzIubWF4UmV0cmFuc21pdHMsIG51
bGwpOwogfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggcHJvdmlkZWQgcGFyYW1ldGVycyBzaG91
bGQgaW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIHRvIHByb3ZpZGVkIHZhbHVlcycpOwogCiAvKgogICA2
LjIuICBjcmVhdGVEYXRhQ2hhbm5lbAotICAgIDQuICBMZXQgY2hhbm5lbCBoYXZlIGEgW1tMYWJl
bF1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8gdGhlIHZhbHVlIG9mIHRoZQorICAgIDQu
ICBMZXQgY2hhbm5lbCBoYXZlIGEgW1tEYXRhQ2hhbm5lbExhYmVsXV0gaW50ZXJuYWwgc2xvdCBp
bml0aWFsaXplZCB0byB0aGUgdmFsdWUgb2YgdGhlCiAgICAgICAgIGZpcnN0IGFyZ3VtZW50Lgog
CiAgIFtFQ01BMjYyXSA3LjEuMTIuIFRvU3RyaW5nKGFyZ3VtZW50KQpAQCAtMTY0LDc2ICsxOTUs
MTAyIEBAIGNvbnN0IGxhYmVscyA9IFsKICAgWydsb25lIHN1cnJvZ2F0ZScsICdcdUQ4MDAnLCAn
XHVGRkZEJ10sCiBdOwogZm9yIChjb25zdCBbZGVzY3JpcHRpb24sIGxhYmVsLCBleHBlY3RlZF0g
b2YgbGFiZWxzKSB7Ci0gIHRlc3QoKCkgPT4geworICB0ZXN0KHQgPT4gewogICAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uOwotICAgIGNvbnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVE
YXRhQ2hhbm5lbChsYWJlbCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLmxhYmVsLCBleHBl
Y3RlZCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGNvbnN0
IGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwobGFiZWwpOworICAgIGFzc2VydF9lcXVhbHMoZGMu
bGFiZWwsIGV4cGVjdGVkKTsKICAgfSwgYGNyZWF0ZURhdGFDaGFubmVsIHdpdGggbGFiZWwgJHtk
ZXNjcmlwdGlvbn0gc2hvdWxkIHN1Y2NlZWRgKTsKIH0KIAogLyoKICAgNi4yLiAgUlRDRGF0YUNo
YW5uZWwKICAgICBjcmVhdGVEYXRhQ2hhbm5lbAotICAgICAgOS4gIExldCBjaGFubmVsIGhhdmUg
YW4gW1tPcmRlcmVkXV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0byBvcHRpb24ncworICAg
ICAgMTEuIExldCBjaGFubmVsIGhhdmUgYW4gW1tPcmRlcmVkXV0gaW50ZXJuYWwgc2xvdCBpbml0
aWFsaXplZCB0byBvcHRpb24ncwogICAgICAgICAgIG9yZGVyZWQgbWVtYmVyLgogICovCi10ZXN0
KCgpID0+IHsKK3Rlc3QodCA9PiB7CiAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7Ci0gIGNvbnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBvcmRlcmVk
OiBmYWxzZSB9KTsKLSAgYXNzZXJ0X2VxdWFscyhjaGFubmVsLm9yZGVyZWQsIGZhbHNlKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBjb25zdCBkYyA9IHBjLmNyZWF0
ZURhdGFDaGFubmVsKCcnLCB7IG9yZGVyZWQ6IGZhbHNlIH0pOworICBhc3NlcnRfZXF1YWxzKGRj
Lm9yZGVyZWQsIGZhbHNlKTsKIH0sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG9yZGVyZWQgZmFs
c2Ugc2hvdWxkIHN1Y2NlZWQnKTsKIAogLy8gdHJ1ZSBhcyB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBh
IGJvb2xlYW4gaXMgY29uZnVzaW5nIGJlY2F1c2UgbnVsbCBpcyBjb252ZXJ0ZWQKIC8vIHRvIGZh
bHNlIHdoaWxlIHVuZGVmaW5lZCBpcyBjb252ZXJ0ZWQgdG8gdHJ1ZS4KLXRlc3QoKCkgPT4gewor
dGVzdCh0ID0+IHsKICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgY29u
c3QgY2hhbm5lbDEgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBvcmRlcmVkOiBudWxsIH0p
OwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwxLm9yZGVyZWQsIGZhbHNlKTsKLSAgY29uc3QgY2hh
bm5lbDIgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBvcmRlcmVkOiB1bmRlZmluZWQgfSk7
Ci0gIGFzc2VydF9lcXVhbHMoY2hhbm5lbDIub3JkZXJlZCwgdHJ1ZSk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgY29uc3QgZGMxID0gcGMuY3JlYXRlRGF0YUNoYW5u
ZWwoJycsIHsgb3JkZXJlZDogbnVsbCB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEub3JkZXJlZCwg
ZmFsc2UpOworICBjb25zdCBkYzIgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBvcmRlcmVk
OiB1bmRlZmluZWQgfSk7CisgIGFzc2VydF9lcXVhbHMoZGMyLm9yZGVyZWQsIHRydWUpOwogfSwg
J2NyZWF0ZURhdGFDaGFubmVsIHdpdGggb3JkZXJlZCBudWxsL3VuZGVmaW5lZCBzaG91bGQgc3Vj
Y2VlZCcpOwogCiAvKgogICA2LjIuICBSVENEYXRhQ2hhbm5lbAogICAgIGNyZWF0ZURhdGFDaGFu
bmVsCi0gICAgICA2LiAgTGV0IGNoYW5uZWwgaGF2ZSBhbiBbW01heFBhY2tldExpZmVUaW1lXV0g
aW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0bworICAgICAgNy4gIExldCBjaGFubmVsIGhhdmUg
YW4gW1tNYXhQYWNrZXRMaWZlVGltZV1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8KICAg
ICAgICAgICBvcHRpb24ncyBtYXhQYWNrZXRMaWZlVGltZSBtZW1iZXIsIGlmIHByZXNlbnQsIG90
aGVyd2lzZSBudWxsLgogICovCi10ZXN0KCgpID0+IHsKK3Rlc3QodCA9PiB7CiAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uOwotICBjb25zdCBjaGFubmVsID0gcGMuY3JlYXRlRGF0
YUNoYW5uZWwoJycsIHsgbWF4UGFja2V0TGlmZVRpbWU6IDAgfSk7Ci0gIGFzc2VydF9lcXVhbHMo
Y2hhbm5lbC5tYXhQYWNrZXRMaWZlVGltZSwgMCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisKKyAgY29uc3QgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBtYXhQ
YWNrZXRMaWZlVGltZTogMCB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYy5tYXhQYWNrZXRMaWZlVGlt
ZSwgMCk7CiB9LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBtYXhQYWNrZXRMaWZlVGltZSAwIHNo
b3VsZCBzdWNjZWVkJyk7CiAKIC8qCiAgIDYuMi4gIFJUQ0RhdGFDaGFubmVsCiAgICAgY3JlYXRl
RGF0YUNoYW5uZWwKLSAgICAgIDcuICBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbTWF4UmV0cmFuc21p
dHNdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvCisgICAgICAxMC4gTGV0IGNoYW5uZWwg
aGF2ZSBhbiBbW01heFJldHJhbnNtaXRzXV0gaW50ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0bwog
ICAgICAgICAgIG9wdGlvbidzIG1heFJldHJhbnNtaXRzIG1lbWJlciwgaWYgcHJlc2VudCwgb3Ro
ZXJ3aXNlIG51bGwuCiAgKi8KLXRlc3QoKCkgPT4gewordGVzdCh0ID0+IHsKICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb247Ci0gIGNvbnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVEYXRh
Q2hhbm5lbCgnJywgeyBtYXhSZXRyYW5zbWl0czogMCB9KTsKLSAgYXNzZXJ0X2VxdWFscyhjaGFu
bmVsLm1heFJldHJhbnNtaXRzLCAwKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKworICBjb25zdCBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7IG1heFJldHJhbnNt
aXRzOiAwIH0pOworICBhc3NlcnRfZXF1YWxzKGRjLm1heFJldHJhbnNtaXRzLCAwKTsKIH0sICdj
cmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG1heFJldHJhbnNtaXRzIDAgc2hvdWxkIHN1Y2NlZWQnKTsK
IAogLyoKICAgNi4yLiAgY3JlYXRlRGF0YUNoYW5uZWwKLSAgICAxNS4gSWYgYm90aCBbW01heFBh
Y2tldExpZmVUaW1lXV0gYW5kIFtbTWF4UmV0cmFuc21pdHNdXSBhdHRyaWJ1dGVzIGFyZSBzZXQK
LSAgICAgICAgKG5vdCBudWxsKSwgdGhyb3cgYSBUeXBlRXJyb3IuCisgICAgMTguIElmIGJvdGgg
W1tNYXhQYWNrZXRMaWZlVGltZV1dIGFuZCBbW01heFJldHJhbnNtaXRzXV0gYXR0cmlidXRlcyBh
cmUgc2V0IChub3QgbnVsbCksCisgICAgICAgIHRocm93IGEgVHlwZUVycm9yLgogICovCi10ZXN0
KCgpID0+IHsKK3Rlc3QodCA9PiB7CiAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
OwotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gcGMuY3JlYXRlRGF0YUNo
YW5uZWwoJycsIHsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBwYy5j
cmVhdGVEYXRhQ2hhbm5lbCgnJywgeworICAgIG1heFBhY2tldExpZmVUaW1lOiB1bmRlZmluZWQs
CisgICAgbWF4UmV0cmFuc21pdHM6IHVuZGVmaW5lZAorICB9KTsKK30sICdjcmVhdGVEYXRhQ2hh
bm5lbCB3aXRoIGJvdGggbWF4UGFja2V0TGlmZVRpbWUgYW5kIG1heFJldHJhbnNtaXRzIHVuZGVm
aW5lZCBzaG91bGQgc3VjY2VlZCcpOworCit0ZXN0KHQgPT4geworICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbjsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKwor
ICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gcGMuY3JlYXRlRGF0YUNoYW5uZWwo
JycsIHsKICAgICBtYXhQYWNrZXRMaWZlVGltZTogMCwKICAgICBtYXhSZXRyYW5zbWl0czogMAog
ICB9KSk7Ci19LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBib3RoIG1heFBhY2tldExpZmVUaW1l
IGFuZCBtYXhSZXRyYW5zbWl0cyBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3InKTsKKyAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7Cisg
ICAgbWF4UGFja2V0TGlmZVRpbWU6IDQyLAorICAgIG1heFJldHJhbnNtaXRzOiA0MgorICB9KSk7
Cit9LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBib3RoIG1heFBhY2tldExpZmVUaW1lIGFuZCBt
YXhSZXRyYW5zbWl0cyBzaG91bGQgdGhyb3cgVHlwZUVycm9yJyk7CiAKIC8qCiAgIDYuMi4gIFJU
Q0RhdGFDaGFubmVsCiAgICAgY3JlYXRlRGF0YUNoYW5uZWwKLSAgICAgIDEwLiBMZXQgY2hhbm5l
bCBoYXZlIGFuIFtbUHJvdG9jb2xdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvIG9wdGlv
bidzCisgICAgICAxMi4gTGV0IGNoYW5uZWwgaGF2ZSBhIFtbRGF0YUNoYW5uZWxQcm90b2NvbF1d
IGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQgdG8gb3B0aW9uJ3MKICAgICAgICAgICBwcm90b2Nv
bCBtZW1iZXIuCiAgKi8KIGNvbnN0IHByb3RvY29scyA9IFsKQEAgLTI0MywxOTYgKzMwMCw0NTMg
QEAgY29uc3QgcHJvdG9jb2xzID0gWwogICBbJ2xvbmUgc3Vycm9nYXRlJywgJ1x1RDgwMCcsICdc
dUZGRkQnXSwKIF07CiBmb3IgKGNvbnN0IFtkZXNjcmlwdGlvbiwgcHJvdG9jb2wsIGV4cGVjdGVk
XSBvZiBwcm90b2NvbHMpIHsKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QodCA9PiB7CiAgICAgY29u
c3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb247Ci0gICAgY29uc3QgY2hhbm5lbCA9IHBjLmNy
ZWF0ZURhdGFDaGFubmVsKCcnLCB7IHByb3RvY29sIH0pOwotICAgIGFzc2VydF9lcXVhbHMoY2hh
bm5lbC5wcm90b2NvbCwgZXhwZWN0ZWQpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CisKKyAgICBjb25zdCBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7IHByb3Rv
Y29sIH0pOworICAgIGFzc2VydF9lcXVhbHMoZGMucHJvdG9jb2wsIGV4cGVjdGVkKTsKICAgfSwg
YGNyZWF0ZURhdGFDaGFubmVsIHdpdGggcHJvdG9jb2wgJHtkZXNjcmlwdGlvbn0gc2hvdWxkIHN1
Y2NlZWRgKTsKIH0KIAogLyoKICAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKICAgICBjcmVhdGVEYXRh
Q2hhbm5lbAotICAgICAgMTEuIExldCBjaGFubmVsIGhhdmUgYW4gW1tOZWdvdGlhdGVkXV0gaW50
ZXJuYWwgc2xvdCBpbml0aWFsaXplZCB0byBvcHRpb24ncwotICAgICAgICAgIG5lZ290aWF0ZWQg
bWVtYmVyLgorICAgICAgMjAuIElmIFtbRGF0YUNoYW5uZWxJZF1dIGlzIGVxdWFsIHRvIDY1NTM1
LCB3aGljaCBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gYWxsb3dlZAorICAgICAgICAgIElE
IG9mIDY1NTM0IGJ1dCBzdGlsbCBxdWFsaWZpZXMgYXMgYW4gdW5zaWduZWQgc2hvcnQsIHRocm93
IGEgVHlwZUVycm9yLgogICovCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgcGMgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb247Ci0gIGNvbnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywg
eyBuZWdvdGlhdGVkOiB0cnVlIH0pOwotICBhc3NlcnRfZXF1YWxzKGNoYW5uZWwubmVnb3RpYXRl
ZCwgdHJ1ZSk7Ci19LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBuZWdvdGlhdGVkIHRydWUgc2hv
dWxkIHN1Y2NlZWQnKTsKLQorZm9yIChjb25zdCBpZCBvZiBbMCwgMSwgNjU1MzQsIDY1NTM1XSkg
eworICB0ZXN0KCh0KSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IGRjID0g
cGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsgaWQgfSk7CisgICAgYXNzZXJ0X2VxdWFscyhkYy5p
ZCwgbnVsbCk7CisgIH0sIGBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGlkICR7aWR9IGFuZCBuZWdv
dGlhdGVkIG5vdCBzZXQgc2hvdWxkIHN1Y2NlZWQsIGJ1dCBub3Qgc2V0IHRoZSBjaGFubmVsJ3Mg
aWRgKTsKK30KIAotLyoKLSAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKLSAgICBjcmVhdGVEYXRhQ2hh
bm5lbAotICAgICAgMTAuIElmIGlkIGlzIGVxdWFsIHRvIDY1NTM1LCB3aGljaCBpcyBncmVhdGVy
IHRoYW4gdGhlIG1heGltdW0gYWxsb3dlZCBJRAotICAgICAgICAgIG9mIDY1NTM0IGJ1dCBzdGls
bCBxdWFsaWZpZXMgYXMgYW4gdW5zaWduZWQgc2hvcnQsIHRocm93IGEgVHlwZUVycm9yLgotICov
CiBmb3IgKGNvbnN0IGlkIG9mIFswLCAxLCA2NTUzNF0pIHsKLSAgdGVzdCgoKSA9PiB7CisgIHRl
c3QodCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICBj
b25zdCBjaGFubmVsID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsgaWQgfSk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhjaGFubmVsLmlkLCBpZCk7Ci0gIH0sIGBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRo
IGlkICR7aWR9IHNob3VsZCBzdWNjZWVkYCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5j
bG9zZSgpKTsKKworICAgIGNvbnN0IGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJycsIHsgJ25l
Z290aWF0ZWQnOiB0cnVlLCAnaWQnOiBpZCB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjLmlkLCBp
ZCk7CisgIH0sIGBjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIGlkICR7aWR9IGFuZCBuZWdvdGlhdGVk
IHRydWUgc2hvdWxkIHN1Y2NlZWQsIGFuZCBzZXQgdGhlIGNoYW5uZWwncyBpZGApOworfQorCitm
b3IgKGNvbnN0IGlkIG9mIFstMSwgNjU1MzZdKSB7CisgIHRlc3QoKHQpID0+IHsKKyAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHBjLmNy
ZWF0ZURhdGFDaGFubmVsKCcnLCB7IGlkIH0pKTsKKyAgfSwgYGNyZWF0ZURhdGFDaGFubmVsIHdp
dGggaWQgJHtpZH0gYW5kIG5lZ290aWF0ZWQgbm90IHNldCBzaG91bGQgdGhyb3cgVHlwZUVycm9y
YCk7CiB9CiAKIGZvciAoY29uc3QgaWQgb2YgWy0xLCA2NTUzNSwgNjU1MzZdKSB7Ci0gIHRlc3Qo
KCkgPT4geworICB0ZXN0KHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IHBjLmNyZWF0
ZURhdGFDaGFubmVsKCcnLCB7IGlkIH0pKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOworCisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHBjLmNyZWF0
ZURhdGFDaGFubmVsKCcnLAorICAgICAgICB7ICduZWdvdGlhdGVkJzogdHJ1ZSwgJ2lkJzogaWQg
fSkpOwogICB9LCBgY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBpZCAke2lkfSBzaG91bGQgdGhyb3cg
VHlwZUVycm9yYCk7CiB9CiAKIC8qCi0gIDYuMi4gIFJUQ0RhdGFDaGFubmVsCi0gICAgY3JlYXRl
RGF0YUNoYW5uZWwKLSAgICAgIDEyLiBMZXQgY2hhbm5lbCBoYXZlIGFuIFtbRGF0YUNoYW5uZWxQ
cmlvcml0eV1dIGludGVybmFsIHNsb3QgaW5pdGlhbGl6ZWQKLSAgICAgICAgICB0byBvcHRpb24n
cyBwcmlvcml0eSBtZW1iZXIuCi0KKyAgNi4yLiAgY3JlYXRlRGF0YUNoYW5uZWwKKyAgICA1LiAg
SWYgW1tEYXRhQ2hhbm5lbExhYmVsXV0gaXMgbG9uZ2VyIHRoYW4gNjU1MzUgYnl0ZXMsIHRocm93
IGEgVHlwZUVycm9yLgogICovCi10ZXN0KCgpID0+IHsKK3Rlc3QodCA9PiB7CiAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVE
YXRhQ2hhbm5lbCgnJywgeyBwcmlvcml0eTogJ2hpZ2gnIH0pOwotICBhc3NlcnRfZXF1YWxzKGNo
YW5uZWwucHJpb3JpdHksICdoaWdoJyk7Ci19LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBwcmlv
cml0eSAiaGlnaCIgc2hvdWxkIHN1Y2NlZWQnKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5j
bG9zZSgpKTsKKworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KKyAgICBwYy5j
cmVhdGVEYXRhQ2hhbm5lbCgnbCcucmVwZWF0KDY1NTM2KSkpOworCisgIGFzc2VydF90aHJvd3Nf
anMoVHlwZUVycm9yLCAoKSA9PgorICAgIHBjLmNyZWF0ZURhdGFDaGFubmVsKCdsJy5yZXBlYXQo
NjU1MzYpLCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAgICAgaWQ6IDQyCisgICAgfSkp
OworfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggdG9vIGxvbmcgbGFiZWwgc2hvdWxkIHRocm93
IFR5cGVFcnJvcicpOwogCi10ZXN0KCgpID0+IHsKK3Rlc3QodCA9PiB7CiAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LAotICAgICgpID0+IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7IHByaW9yaXR5OiAnaW52YWxp
ZCcgfSkpOwotfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggaW52YWxpZCBwcmlvcml0eSBzaG91
bGQgdGhyb3cgVHlwZUVycm9yJyk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CisKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CisgICAgcGMuY3JlYXRlRGF0
YUNoYW5uZWwoJ1x1MDBiNScucmVwZWF0KDMyNzY4KSkpOworCisgIGFzc2VydF90aHJvd3NfanMo
VHlwZUVycm9yLCAoKSA9PgorICAgIHBjLmNyZWF0ZURhdGFDaGFubmVsKCdcdTAwYjUnLnJlcGVh
dCgzMjc2OCksIHsKKyAgICAgIG5lZ290aWF0ZWQ6IHRydWUsCisgICAgICBpZDogNDIKKyAgICB9
KSk7Cit9LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCB0b28gbG9uZyBsYWJlbCAoMiBieXRlIHVu
aWNvZGUpIHNob3VsZCB0aHJvdyBUeXBlRXJyb3InKTsKIAogLyoKLSAgNi4yLiAgY3JlYXRlRGF0
YUNoYW5uZWwKLSAgICAxMy4gSWYgW1tOZWdvdGlhdGVkXV0gaXMgZmFsc2UgYW5kIFtbTGFiZWxd
XSBpcyBsb25nZXIgdGhhbiA2NTUzNSBieXRlcwotICAgICAgICBsb25nLCB0aHJvdyBhIFR5cGVF
cnJvci4gICovCi10ZXN0KCgpID0+IHsKKyAgNi4yLiAgbGFiZWwKKyAgICAgICAgWy4uLl0gU2Ny
aXB0cyBhcmUgYWxsb3dlZCB0byBjcmVhdGUgbXVsdGlwbGUgUlRDRGF0YUNoYW5uZWwgb2JqZWN0
cyB3aXRoIHRoZSBzYW1lIGxhYmVsLgorICAgICAgICBbLi4uXQorICovCit0ZXN0KHQgPT4gewog
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICBhc3NlcnRfdGhyb3dzKG5l
dyBUeXBlRXJyb3IoKSwgKCkgPT4KLSAgICBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgewotICAg
ICAgbGFiZWw6ICcgJy5yZXBlYXQoNjU1MzYpLAotICAgICAgbmVnb3RpYXRlZDogZmFsc2UKLSAg
ICB9KSk7Ci19LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBuZWdvdGlhdGVkIGZhbHNlIGFuZCBs
b25nIGxhYmVsIHNob3VsZCB0aHJvdyBUeXBlRXJyb3InKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKworICBjb25zdCBsYWJlbCA9ICd0ZXN0JzsKKworICBwYy5jcmVhdGVE
YXRhQ2hhbm5lbChsYWJlbCk7CisgIHBjLmNyZWF0ZURhdGFDaGFubmVsKGxhYmVsKTsKK30sICdj
cmVhdGVEYXRhQ2hhbm5lbCB3aXRoIHNhbWUgbGFiZWwgdXNlZCB0d2ljZSBzaG91bGQgbm90IHRo
cm93Jyk7CiAKIC8qCiAgIDYuMi4gIGNyZWF0ZURhdGFDaGFubmVsCi0gICAgMTQuIElmIFtbTmVn
b3RpYXRlZF1dIGlzIGZhbHNlIGFuZCBbW1Byb3RvY29sXV0gaXMgbG9uZ2VyIHRoYW4gNjU1MzUg
Ynl0ZXMgbG9uZywKLSAgICAgICAgdGhyb3cgYSBUeXBlRXJyb3IuCisgICAgMTMuIElmIFtbRGF0
YUNoYW5uZWxQcm90b2NvbF1dIGlzIGxvbmdlciB0aGFuIDY1NTM1IGJ5dGVzIGxvbmcsIHRocm93
IGEgVHlwZUVycm9yLgogICovCi10ZXN0KCgpID0+IHsKKwordGVzdCh0ID0+IHsKKyAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb247CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CisgIGNvbnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeyBuZWdv
dGlhdGVkOiB0cnVlLCBpZDogNDIgfSk7CisgIGFzc2VydF9lcXVhbHMoY2hhbm5lbC5uZWdvdGlh
dGVkLCB0cnVlKTsKK30sICdjcmVhdGVEYXRhQ2hhbm5lbCB3aXRoIG5lZ290aWF0ZWQgdHJ1ZSBh
bmQgaWQgc2hvdWxkIHN1Y2NlZWQnKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
KworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4KKyAgICBwYy5jcmVhdGVEYXRh
Q2hhbm5lbCgnJywgeworICAgICAgcHJvdG9jb2w6ICdwJy5yZXBlYXQoNjU1MzYpCisgICAgfSkp
OworCisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgorICAgIHBjLmNyZWF0ZURh
dGFDaGFubmVsKCcnLCB7CisgICAgICBwcm90b2NvbDogJ3AnLnJlcGVhdCg2NTUzNiksCisgICAg
ICBuZWdvdGlhdGVkOiB0cnVlLAorICAgICAgaWQ6IDQyCisgICAgfSkpOworfSwgJ2NyZWF0ZURh
dGFDaGFubmVsIHdpdGggdG9vIGxvbmcgcHJvdG9jb2wgc2hvdWxkIHRocm93IFR5cGVFcnJvcicp
OworCit0ZXN0KHQgPT4gewogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwot
ICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4KKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYy5jbG9zZSgpKTsKKworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4K
ICAgICBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgewotICAgICAgcHJvdG9jb2w6ICcgJy5yZXBl
YXQoNjU1MzYpLAotICAgICAgbmVnb3RpYXRlZDogZmFsc2UKKyAgICAgIHByb3RvY29sOiAnXHUw
MGI2Jy5yZXBlYXQoMzI3NjgpCiAgICAgfSkpOwotfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGgg
bmVnb3RpYXRlZCBmYWxzZSBhbmQgbG9uZyBwcm90b2NvbCBzaG91bGQgdGhyb3cgVHlwZUVycm9y
Jyk7CiAKLXRlc3QoKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4K
KyAgICBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgeworICAgICAgcHJvdG9jb2w6ICdcdTAwYjYn
LnJlcGVhdCgzMjc2OCksCisgICAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAgICAgaWQ6IDQyCisg
ICAgfSkpOworfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggdG9vIGxvbmcgcHJvdG9jb2wgKDIg
Ynl0ZSB1bmljb2RlKSBzaG91bGQgdGhyb3cgVHlwZUVycm9yJyk7CisKK3Rlc3QodCA9PiB7CiAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gIGNvbnN0IGxhYmVsID0gJyAn
LnJlcGVhdCg2NTUzNikKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBj
b25zdCBsYWJlbCA9ICdsJy5yZXBlYXQoNjU1MzUpOworICBjb25zdCBwcm90b2NvbCA9ICdwJy5y
ZXBlYXQoNjU1MzUpOwogCi0gIGNvbnN0IGNoYW5uZWwgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgn
JywgewotICAgIGxhYmVsLAotICAgIHByb3RvY29sOiAnICcucmVwZWF0KDY1NTM2KSwKLSAgICBu
ZWdvdGlhdGVkOiB0cnVlCisgIGNvbnN0IGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwobGFiZWws
IHsKKyAgICBwcm90b2NvbDogcHJvdG9jb2wKICAgfSk7CiAKLSAgYXNzZXJ0X2VxdWFscyhjaGFu
bmVsLmxhYmVsLCBsYWJlbCk7Ci19LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBuZWdvdGlhdGVk
IHRydWUgYW5kIGxvbmcgbGFiZWwgYW5kIGxvbmcgcHJvdG9jb2wgc2hvdWxkIHN1Y2NlZWQnKTsK
KyAgYXNzZXJ0X2VxdWFscyhkYy5sYWJlbCwgbGFiZWwpOworICBhc3NlcnRfZXF1YWxzKGRjLnBy
b3RvY29sLCBwcm90b2NvbCk7Cit9LCAnY3JlYXRlRGF0YUNoYW5uZWwgd2l0aCBtYXhpbXVtIGxl
bmd0aCBsYWJlbCBhbmQgcHJvdG9jb2wgc2hvdWxkIHN1Y2NlZWQnKTsKKworLyoKKyAgNi4yICAg
Y3JlYXRlRGF0YUNoYW5uZWwKKyAgICAxNS4gTGV0IGNoYW5uZWwgaGF2ZSBhbiBbW0RhdGFDaGFu
bmVsSWRdXSBpbnRlcm5hbCBzbG90IGluaXRpYWxpemVkIHRvIG9wdGlvbidzIGlkIG1lbWJlciwK
KyAgICAgICAgaWYgaXQgaXMgcHJlc2VudCBhbmQgW1tOZWdvdGlhdGVkXV0gaXMgdHJ1ZSwgb3Ro
ZXJ3aXNlIG51bGwuCisKKyAgICAgICAgTk9URQorICAgICAgICBUaGlzIG1lYW5zIHRoZSBpZCBt
ZW1iZXIgd2lsbCBiZSBpZ25vcmVkIGlmIHRoZSBkYXRhIGNoYW5uZWwgaXMgbmVnb3RpYXRlZCBp
bi1iYW5kOyB0aGlzCisgICAgICAgIGlzIGludGVudGlvbmFsLiBEYXRhIGNoYW5uZWxzIG5lZ290
aWF0ZWQgaW4tYmFuZCBzaG91bGQgaGF2ZSBJRHMgc2VsZWN0ZWQgYmFzZWQgb24gdGhlCisgICAg
ICAgIERUTFMgcm9sZSwgYXMgc3BlY2lmaWVkIGluIFtSVENXRUItREFUQS1QUk9UT0NPTF0uCisg
Ki8KK3Rlc3QodCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgIGNvbnN0IGRjID0gcGMuY3JlYXRl
RGF0YUNoYW5uZWwoJycsIHsKKyAgICBuZWdvdGlhdGVkOiBmYWxzZSwKKyAgfSk7CisgIGFzc2Vy
dF9lcXVhbHMoZGMubmVnb3RpYXRlZCwgZmFsc2UsICdFeHBlY3QgZGMubmVnb3RpYXRlZCB0byBi
ZSBmYWxzZScpOworfSwgJ2NyZWF0ZURhdGFDaGFubmVsIHdpdGggbmVnb3RpYXRlZCBmYWxzZSBz
aG91bGQgc3VjY2VlZCcpOworCit0ZXN0KHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbjsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBjb25z
dCBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCcnLCB7CisgICAgbmVnb3RpYXRlZDogZmFsc2Us
CisgICAgaWQ6IDQyCisgIH0pOworICBhc3NlcnRfZXF1YWxzKGRjLm5lZ290aWF0ZWQsIGZhbHNl
LCAnRXhwZWN0IGRjLm5lZ290aWF0ZWQgdG8gYmUgZmFsc2UnKTsKKyAgYXNzZXJ0X2VxdWFscyhk
Yy5pZCwgbnVsbCwgJ0V4cGVjdCBkYy5pZCB0byBiZSBpZ25vcmVkIChudWxsKScpOworfSwgJ2Ny
ZWF0ZURhdGFDaGFubmVsIHdpdGggbmVnb3RpYXRlZCBmYWxzZSBhbmQgaWQgNDIgc2hvdWxkIGln
bm9yZSB0aGUgaWQnKTsKKworLyoKKyAgNi4yLiAgY3JlYXRlRGF0YUNoYW5uZWwKKyAgICAxNi4g
SWYgW1tOZWdvdGlhdGVkXV0gaXMgdHJ1ZSBhbmQgW1tEYXRhQ2hhbm5lbElkXV0gaXMgbnVsbCwg
dGhyb3cgYSBUeXBlRXJyb3IuCisgKi8KK3Rlc3QodCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisK
KyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+CisgICAgcGMuY3JlYXRlRGF0YUNo
YW5uZWwoJ3Rlc3QnLCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVlCisgICAgfSkpOworfSwgJ2Ny
ZWF0ZURhdGFDaGFubmVsIHdpdGggbmVnb3RpYXRlZCB0cnVlIGFuZCBpZCBub3QgZGVmaW5lZCBz
aG91bGQgdGhyb3cgVHlwZUVycm9yJyk7CiAKIC8qCiAgIDQuNC4xLjYuICBTZXQgdGhlIFJUQ1Nl
c3Npb25TZXNzaW9uRGVzY3JpcHRpb24KICAgICAyLjIuNi4gIElmIGRlc2NyaXB0aW9uIGlzIG9m
IHR5cGUgImFuc3dlciIgb3IgInByYW5zd2VyIiwgdGhlbiBydW4gdGhlCiAgICAgICAgICAgICBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgICAxLiAgSWYgZGVzY3JpcHRpb24gaW5pdGlhdGVzIHRoZSBl
c3RhYmxpc2htZW50IG9mIGEgbmV3IFNDVFAgYXNzb2NpYXRpb24sCi0gICAgICAgICAgYXMgZGVm
aW5lZCBpbiBbU0NUUC1TRFBdLCBTZWN0aW9ucyAxMC4zIGFuZCAxMC40LCBzZXQgdGhlIHZhbHVl
IG9mCi0gICAgICAgICAgY29ubmVjdGlvbidzIFtbc2N0cFRyYW5zcG9ydF1dIGludGVybmFsIHNs
b3QgdG8gYSBuZXdseSBjcmVhdGVkIFJUQ1NjdHBUcmFuc3BvcnQuCi0gICAgICAyLiAgSWYgZGVz
Y3JpcHRpb24gbmVnb3RpYXRlcyB0aGUgRFRMUyByb2xlIG9mIHRoZSBTQ1RQIHRyYW5zcG9ydCwg
YW5kCi0gICAgICAgICAgdGhlcmUgaXMgYW4gUlRDRGF0YUNoYW5uZWwgd2l0aCBhIG51bGwgaWQs
IHRoZW4gZ2VuZXJhdGUgYW4gSUQgYWNjb3JkaW5nCi0gICAgICAgICAgdG8gW1JUQ1dFQi1EQVRB
LVBST1RPQ09MXS4KKyAgICAgIDMuICAgIElmIGRlc2NyaXB0aW9uIG5lZ290aWF0ZXMgdGhlIERU
TFMgcm9sZSBvZiB0aGUgU0NUUCB0cmFuc3BvcnQsIGFuZCB0aGVyZSBpcyBhbgorICAgICAgICAg
ICAgUlRDRGF0YUNoYW5uZWwgd2l0aCBhIG51bGwgaWQsIHRoZW4gZ2VuZXJhdGUgYW4gSUQgYWNj
b3JkaW5nIHRvCisgICAgICAgICAgICBbUlRDV0VCLURBVEEtUFJPVE9DT0xdLiBbLi4uXQogCi0g
IDYuMi4gIGNyZWF0ZURhdGFDaGFubmVsCi0gICAgMTguIElmIHRoZSBbW0RhdGFDaGFubmVsSWRd
XSBzbG90IGlzIG51bGwgKGR1ZSB0byBubyBJRCBiZWluZyBwYXNzZWQgaW50bwotICAgICAgICBj
cmVhdGVEYXRhQ2hhbm5lbCksIGFuZCB0aGUgRFRMUyByb2xlIG9mIHRoZSBTQ1RQIHRyYW5zcG9y
dCBoYXMgYWxyZWFkeQotICAgICAgICBiZWVuIG5lZ290aWF0ZWQsIHRoZW4gaW5pdGlhbGl6ZSBb
W0RhdGFDaGFubmVsSWRdXSB0byBhIHZhbHVlIGdlbmVyYXRlZAotICAgICAgICBieSB0aGUgdXNl
ciBhZ2VudCwgYWNjb3JkaW5nIHRvIFtSVENXRUItREFUQS1QUk9UT0NPTF0uCisgIDYuMS4gIGNy
ZWF0ZURhdGFDaGFubmVsCisgICAgMjEuIElmIHRoZSBbW0RhdGFDaGFubmVsSWRdXSBzbG90IGlz
IG51bGwgKGR1ZSB0byBubyBJRCBiZWluZyBwYXNzZWQgaW50bworICAgICAgICBjcmVhdGVEYXRh
Q2hhbm5lbCwgb3IgW1tOZWdvdGlhdGVkXV0gYmVpbmcgZmFsc2UpLCBhbmQgdGhlIERUTFMgcm9s
ZSBvZiB0aGUgU0NUUAorICAgICAgICB0cmFuc3BvcnQgaGFzIGFscmVhZHkgYmVlbiBuZWdvdGlh
dGVkLCB0aGVuIGluaXRpYWxpemUgW1tEYXRhQ2hhbm5lbElkXV0gdG8gYSB2YWx1ZQorICAgICAg
ICBnZW5lcmF0ZWQgYnkgdGhlIHVzZXIgYWdlbnQsIGFjY29yZGluZyB0byBbUlRDV0VCLURBVEEt
UFJPVE9DT0xdLCBhbmQgc2tpcAorICAgICAgICB0byB0aGUgbmV4dCBzdGVwLiBJZiBubyBhdmFp
bGFibGUgSUQgY291bGQgYmUgZ2VuZXJhdGVkLCBvciBpZiB0aGUgdmFsdWUgb2YgdGhlCisgICAg
ICAgIFtbRGF0YUNoYW5uZWxJZF1dIHNsb3QgaXMgYmVpbmcgdXNlZCBieSBhbiBleGlzdGluZyBS
VENEYXRhQ2hhbm5lbCwgdGhyb3cgYW4KKyAgICAgICAgT3BlcmF0aW9uRXJyb3IgZXhjZXB0aW9u
LgorCisgICAgICAgIE5vdGUKKyAgICAgICAgSWYgdGhlIFtbRGF0YUNoYW5uZWxJZF1dIHNsb3Qg
aXMgbnVsbCBhZnRlciB0aGlzIHN0ZXAsIGl0IHdpbGwgYmUgcG9wdWxhdGVkIG9uY2UKKyAgICAg
ICAgdGhlIERUTFMgcm9sZSBpcyBkZXRlcm1pbmVkIGR1cmluZyB0aGUgcHJvY2VzcyBvZiBzZXR0
aW5nIGFuIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi4KICAqLwotcHJvbWlzZV90ZXN0KHQgPT4gewor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKKworICBjb25zdCBuZWdvdGlhdGVkRGMgPSBwYzEuY3JlYXRlRGF0YUNoYW5uZWwo
J25lZ290aWF0ZWQtY2hhbm5lbCcsIHsKKyAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAgIGlkOiA0
MiwKKyAgfSk7CisgIGFzc2VydF9lcXVhbHMobmVnb3RpYXRlZERjLmlkLCA0MiwgJ0V4cGVjdCBu
ZWdvdGlhdGVkRGMuaWQgdG8gYmUgNDInKTsKKworICBjb25zdCBkYzEgPSBwYzEuY3JlYXRlRGF0
YUNoYW5uZWwoJ2NoYW5uZWwnKTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEuaWQsIG51bGwsICdFeHBl
Y3QgaW5pdGlhbCBpZCB0byBiZSBudWxsJyk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEu
Y3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwoW3BjMS5zZXRMb2NhbERlc2NyaXB0
aW9uKG9mZmVyKSwgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKV0pOworICBjb25zdCBh
bnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihhbnN3ZXIpOworCisgIGFzc2VydF9ub3RfZXF1YWxzKGRjMS5pZCwgbnVsbCwK
KyAgICAnRXhwZWN0IGRjMS5pZCB0byBiZSBhc3NpZ25lZCBhZnRlciByZW1vdGUgZGVzY3JpcHRp
b24gaGFzIGJlZW4gc2V0Jyk7CisKKyAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChkYzEuaWQs
IDAsCisgICAgJ0V4cGVjdCBkYzEuaWQgdG8gYmUgc2V0IHRvIHZhbGlkIHVuc2lnbmVkIHNob3J0
Jyk7CisKKyAgYXNzZXJ0X2xlc3NfdGhhbihkYzEuaWQsIDY1NTM1LAorICAgICdFeHBlY3QgZGMx
LmlkIHRvIGJlIHNldCB0byB2YWxpZCB1bnNpZ25lZCBzaG9ydCcpOworCisgIGNvbnN0IGRjMiA9
IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnY2hhbm5lbCcpOworCisgIGFzc2VydF9ub3RfZXF1YWxz
KGRjMi5pZCwgbnVsbCwKKyAgICAnRXhwZWN0IGRjMi5pZCB0byBiZSBhc3NpZ25lZCBhZnRlciBy
ZW1vdGUgZGVzY3JpcHRpb24gaGFzIGJlZW4gc2V0Jyk7CisKKyAgYXNzZXJ0X2dyZWF0ZXJfdGhh
bl9lcXVhbChkYzIuaWQsIDAsCisgICAgJ0V4cGVjdCBkYzIuaWQgdG8gYmUgc2V0IHRvIHZhbGlk
IHVuc2lnbmVkIHNob3J0Jyk7CisKKyAgYXNzZXJ0X2xlc3NfdGhhbihkYzIuaWQsIDY1NTM1LAor
ICAgICdFeHBlY3QgZGMyLmlkIHRvIGJlIHNldCB0byB2YWxpZCB1bnNpZ25lZCBzaG9ydCcpOwor
CisgIGFzc2VydF9ub3RfZXF1YWxzKGRjMiwgZGMxLAorICAgICdFeHBlY3QgY2hhbm5lbHMgY3Jl
YXRlZCBmcm9tIHNhbWUgbGFiZWwgdG8gYmUgZGlmZmVyZW50Jyk7CisKKyAgYXNzZXJ0X2VxdWFs
cyhkYzIubGFiZWwsIGRjMS5sYWJlbCwKKyAgICAnRXhwZWN0IGRpZmZlcmVudCBjaGFubmVscyBj
YW4gaGF2ZSB0aGUgc2FtZSBsYWJlbCBidXQgZGlmZmVyZW50IGlkJyk7CisKKyAgYXNzZXJ0X25v
dF9lcXVhbHMoZGMyLmlkLCBkYzEuaWQsCisgICAgJ0V4cGVjdCBkaWZmZXJlbnQgY2hhbm5lbHMg
Y2FuIGhhdmUgdGhlIHNhbWUgbGFiZWwgYnV0IGRpZmZlcmVudCBpZCcpOworCisgIGFzc2VydF9l
cXVhbHMobmVnb3RpYXRlZERjLmlkLCA0MiwKKyAgICAnRXhwZWN0IG5lZ290aWF0ZWREYy5pZCB0
byBiZSA0MiBhZnRlciByZW1vdGUgZGVzY3JpcHRpb24gaGFzIGJlZW4gc2V0Jyk7Cit9LCAnQ2hh
bm5lbHMgY3JlYXRlZCAoYWZ0ZXIgc2V0UmVtb3RlRGVzY3JpcHRpb24pIHNob3VsZCBoYXZlIGlk
IGFzc2lnbmVkJyk7CisKK3Rlc3QodCA9PiB7CiAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gIGNvbnN0IGNo
YW5uZWwxID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5uZWwnKTsKLSAgYXNzZXJ0X2VxdWFs
cyhjaGFubmVsMS5pZCwgbnVsbCwKLSAgICAnRXhwZWN0IGluaXRpYWwgaWQgdG8gYmUgbnVsbCcp
OwogCi0gIHJldHVybiBwYy5jcmVhdGVPZmZlcigpCi0gIC50aGVuKG9mZmVyID0+Ci0gICAgcGMu
c2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikKLSAgICAudGhlbigoKSA9PiBnZW5lcmF0ZUFuc3dl
cihvZmZlcikpKQotICAudGhlbihhbnN3ZXIgPT4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5z
d2VyKSkKLSAgLnRoZW4oKCkgPT4gewotICAgIGFzc2VydF9ub3RfZXF1YWxzKGNoYW5uZWwxLmlk
LCBudWxsLAotICAgICAgJ0V4cGVjdCBjaGFubmVsMS5pZCB0byBiZSBhc3NpZ25lZCcpOworICBj
b25zdCBkYzEgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnY2hhbm5lbC0xJywgeworICAgIG5lZ290
aWF0ZWQ6IHRydWUsCisgICAgaWQ6IDQyLAorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEuaWQs
IDQyLAorICAgICdFeHBlY3QgZGMxLmlkIHRvIGJlIDQyJyk7CisKKyAgY29uc3QgZGMyID0gcGMu
Y3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5uZWwtMicsIHsKKyAgICBuZWdvdGlhdGVkOiB0cnVlLAor
ICAgIGlkOiA0MywKKyAgfSk7CisgIGFzc2VydF9lcXVhbHMoZGMyLmlkLCA0MywKKyAgICAnRXhw
ZWN0IGRjMi5pZCB0byBiZSA0MycpOworCisgIGFzc2VydF90aHJvd3NfZG9tKCdPcGVyYXRpb25F
cnJvcicsICgpID0+CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5uZWwtMycsIHsKKyAg
ICAgIG5lZ290aWF0ZWQ6IHRydWUsCisgICAgICBpZDogNDIsCisgICAgfSkpOwogCi0gICAgYXNz
ZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChjaGFubmVsMS5pZCwgMCwKLSAgICAgICdFeHBlY3QgY2hh
bm5lbDEuaWQgdG8gYmUgc2V0IHRvIHZhbGlkIHVuc2lnbmVkIHNob3J0Jyk7Cit9LCAnUmV1c2lu
ZyBhIGRhdGEgY2hhbm5lbCBpZCB0aGF0IGlzIGluIHVzZSBzaG91bGQgdGhyb3cgT3BlcmF0aW9u
RXJyb3InKTsKIAotICAgIGFzc2VydF9sZXNzX3RoYW4oY2hhbm5lbDEuaWQsIDY1NTM1LAotICAg
ICAgJ0V4cGVjdCBjaGFubmVsMS5pZCB0byBiZSBzZXQgdG8gdmFsaWQgdW5zaWduZWQgc2hvcnQn
KTsKKy8vIFdlJ3ZlIHNlZW4gaW1wbGVtZW50YXRpb25zIGJlaGF2aW5nIGRpZmZlcmVudGx5IGJl
Zm9yZSBhbmQgYWZ0ZXIgdGhlIGNvbm5lY3Rpb24gaGFzIGJlZW4KKy8vIGVzdGFibGlzaGVkLgor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKIAotICAgIGNvbnN0IGNoYW5uZWwyID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ2No
YW5uZWwnKTsKKyAgY29uc3QgZGMxID0gcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdjaGFubmVsLTEn
LCB7CisgICAgbmVnb3RpYXRlZDogdHJ1ZSwKKyAgICBpZDogNDIsCisgIH0pOworICBhc3NlcnRf
ZXF1YWxzKGRjMS5pZCwgNDIsICdFeHBlY3QgZGMxLmlkIHRvIGJlIDQyJyk7CiAKLSAgICBhc3Nl
cnRfbm90X2VxdWFscyhjaGFubmVsMi5pZCwgbnVsbCwKLSAgICAgICdFeHBlY3QgY2hhbm5lbDIu
aWQgdG8gYmUgYXNzaWduZWQnKTsKKyAgY29uc3QgZGMyID0gcGMxLmNyZWF0ZURhdGFDaGFubmVs
KCdjaGFubmVsLTInLCB7CisgICAgbmVnb3RpYXRlZDogdHJ1ZSwKKyAgICBpZDogNDMsCisgIH0p
OworICBhc3NlcnRfZXF1YWxzKGRjMi5pZCwgNDMsICdFeHBlY3QgZGMyLmlkIHRvIGJlIDQzJyk7
CiAKLSAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGNoYW5uZWwyLmlkLCAwLAotICAgICAg
J0V4cGVjdCBjaGFubmVsMi5pZCB0byBiZSBzZXQgdG8gdmFsaWQgdW5zaWduZWQgc2hvcnQnKTsK
KyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgUHJvbWlz
ZS5hbGwoW3BjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKSwgcGMyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKG9mZmVyKV0pOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2Vy
KCk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwogCi0gICAgYXNz
ZXJ0X2xlc3NfdGhhbihjaGFubmVsMi5pZCwgNjU1MzUsCi0gICAgICAnRXhwZWN0IGNoYW5uZWwy
LmlkIHRvIGJlIHNldCB0byB2YWxpZCB1bnNpZ25lZCBzaG9ydCcpOworICBhc3NlcnRfZXF1YWxz
KGRjMS5pZCwgNDIsICdFeHBlY3QgZGMxLmlkIHRvIGJlIDQyJyk7CiAKLSAgICBhc3NlcnRfbm90
X2VxdWFscyhjaGFubmVsMiwgY2hhbm5lbDEsCi0gICAgICAnRXhwZWN0IGNoYW5uZWxzIGNyZWF0
ZWQgZnJvbSBzYW1lIGxhYmVsIHRvIGJlIGRpZmZlcmVudCcpOworICBhc3NlcnRfZXF1YWxzKGRj
Mi5pZCwgNDMsICdFeHBlY3QgZGMyLmlkIHRvIGJlIDQzJyk7CiAKLSAgICBhc3NlcnRfZXF1YWxz
KGNoYW5uZWwyLmxhYmVsLCBjaGFubmVsMS5sYWJlbCwKLSAgICAgICdFeHBlY3QgZGlmZmVyZW50
IGNoYW5ubmVscyBjYW4gaGF2ZSB0aGUgc2FtZSBsYWJlbCBidXQgZGlmZmVyZW50IGlkJyk7Cisg
IGFzc2VydF90aHJvd3NfZG9tKCdPcGVyYXRpb25FcnJvcicsICgpID0+CisgICAgcGMxLmNyZWF0
ZURhdGFDaGFubmVsKCdjaGFubmVsLTMnLCB7CisgICAgICBuZWdvdGlhdGVkOiB0cnVlLAorICAg
ICAgaWQ6IDQyLAorICAgIH0pKTsKK30sICdSZXVzaW5nIGEgZGF0YSBjaGFubmVsIGlkIHRoYXQg
aXMgaW4gdXNlIChhZnRlciBzZXRSZW1vdGVEZXNjcmlwdGlvbikgc2hvdWxkIHRocm93ICcgKwor
ICAgJ09wZXJhdGlvbkVycm9yJyk7CiAKLSAgICBhc3NlcnRfbm90X2VxdWFscyhjaGFubmVsMi5p
ZCwgY2hhbm5lbDEuaWQsCi0gICAgICAnRXhwZWN0IGRpZmZlcmVudCBjaGFubm5lbHMgY2FuIGhh
dmUgdGhlIHNhbWUgbGFiZWwgYnV0IGRpZmZlcmVudCBpZCcpOwotICB9KTsKLX0sICdDaGFubmVs
cyBjcmVhdGVkIGFmdGVyIFNDVFAgdHJhbnNwb3J0IGlzIGVzdGFibGlzaGVkIHNob3VsZCBoYXZl
IGlkIGFzc2lnbmVkJyk7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCi0vKgotICBUT0RPCi0gICAgNi4xLiAgY3JlYXRl
RGF0YUNoYW5uZWwKLSAgICAgIDE4LiBJZiBubyBhdmFpbGFibGUgSUQgY291bGQgYmUgZ2VuZXJh
dGVkLCBvciBpZiB0aGUgdmFsdWUgb2YgdGhlCi0gICAgICAgICAgaWQgbWVtYmVyIG9mIHRoZSBk
aWN0aW9uYXJ5IGlzIHRha2VuIGJ5IGFuIGV4aXN0aW5nIFJUQ0RhdGFDaGFubmVsLCB0aHJvdwot
ICAgICAgICAgIGEgUmVzb3VyY2VJblVzZSBleGNlcHRpb24uCisgIGNvbnN0IGRjMSA9IHBjMS5j
cmVhdGVEYXRhQ2hhbm5lbCgnY2hhbm5lbC0xJyk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBw
YzEuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwoW3BjMS5zZXRMb2NhbERlc2Ny
aXB0aW9uKG9mZmVyKSwgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKV0pOworICBjb25z
dCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMS5zZXRSZW1v
dGVEZXNjcmlwdGlvbihhbnN3ZXIpOworCisgIGFzc2VydF9ub3RfZXF1YWxzKGRjMS5pZCwgbnVs
bCwKKyAgICAnRXhwZWN0IGRjMS5pZCB0byBiZSBhc3NpZ25lZCBhZnRlciByZW1vdGUgZGVzY3Jp
cHRpb24gaGFzIGJlZW4gc2V0Jyk7CiAKKyAgYXNzZXJ0X3Rocm93c19kb20oJ09wZXJhdGlvbkVy
cm9yJywgKCkgPT4KKyAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2NoYW5uZWwtMicsIHsKKyAg
ICAgIG5lZ290aWF0ZWQ6IHRydWUsCisgICAgICBpZDogZGMxLmlkLAorICAgIH0pKTsKK30sICdS
ZXVzaW5nIGEgZGF0YSBjaGFubmVsIGlkIHRoYXQgaXMgaW4gdXNlIChhZnRlciBzZXRSZW1vdGVE
ZXNjcmlwdGlvbiwgbmVnb3RpYXRlZCB2aWEgRENFUCkgJyArCisgICdzaG91bGQgdGhyb3cgT3Bl
cmF0aW9uRXJyb3InKTsKKworCitmb3IgKGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRl
ZDogdHJ1ZSwgaWQ6IDB9XSkgeworICBjb25zdCBtb2RlID0gYCR7b3B0aW9ucy5uZWdvdGlhdGVk
PyAibmVnb3RpYXRlZCAiIDogIiJ9ZGF0YWNoYW5uZWxgOworCisgIC8vIEJhc2VkIG9uIGh0dHBz
Oi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDE3MjMKKyAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworCisgICAgYXdhaXQg
Y3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMsIHBjMSk7CisKKyAgICBjb25zdCBkYyA9
IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnJyk7CisgICAgYXNzZXJ0X2VxdWFscyhkYy5yZWFkeVN0
YXRlLCAnY29ubmVjdGluZycsICdDaGFubmVsIHNob3VsZCBiZSBpbiB0aGUgY29ubmVjdGluZyBz
dGF0ZScpOworICB9LCBgTmV3ICR7bW9kZX0gc2hvdWxkIGJlIGluIHRoZSBjb25uZWN0aW5nIHN0
YXRlIGFmdGVyIGNyZWF0aW9uIGAgKworICAgICBgKGFmdGVyIGNvbm5lY3Rpb24gZXN0YWJsaXNo
bWVudClgKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0
cnVlLCB2aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RvcFRyYWNrcyhz
dHJlYW0pKTsKKyAgICBjb25zdCBhdWRpbyA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwor
ICAgIGNvbnN0IHZpZGVvID0gc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgcGMxLmFk
ZFRyYWNrKGF1ZGlvLCBzdHJlYW0pOworICAgIHBjMS5hZGRUcmFjayh2aWRlbywgc3RyZWFtKTsK
KyAgICBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucywgcGMxKTsKKyAgfSwg
YGFkZFRyYWNrLCB0aGVuIGNyZWF0aW5nICR7bW9kZX0sIHNob3VsZCBuZWdvdGlhdGUgcHJvcGVy
bHlgKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xpY3k6ICJtYXgtYnVuZGxlIn0pOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0
IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHN0b3BUcmFja3Moc3RyZWFtKSk7CisgICAgY29uc3QgYXVkaW8gPSBzdHJl
YW0uZ2V0QXVkaW9UcmFja3MoKVswXTsKKyAgICBjb25zdCB2aWRlbyA9IHN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpWzBdOworICAgIHBjMS5hZGRUcmFjayhhdWRpbywgc3RyZWFtKTsKKyAgICBwYzEu
YWRkVHJhY2sodmlkZW8sIHN0cmVhbSk7CisgICAgYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQYWly
KHQsIG9wdGlvbnMsIHBjMSk7CisgIH0sIGBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyAke21vZGV9
LCBzaG91bGQgbmVnb3RpYXRlIHByb3Blcmx5IHdoZW4gbWF4LWJ1bmRsZSBpcyB1c2VkYCk7CisK
KyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiAibWF4LWJ1bmRsZSJ9KTsKKyAgICBjb25zdCBwYzIg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBjb25z
dCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVl
fSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdG9wVHJhY2tzKHN0cmVhbSkpOworICAgIGNv
bnN0IGF1ZGlvID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisgICAgY29uc3QgdmlkZW8g
PSBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICBwYzEuYWRkVHJhY2soYXVkaW8sIHN0
cmVhbSk7CisgICAgcGMxLmFkZFRyYWNrKHZpZGVvLCBzdHJlYW0pOworICAgIGNvbnN0IFtkYzEs
IGRjMl0gPSBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0aW9ucywgcGMxLCBwYzIp
OworCisgICAgcGMyLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsKKyAgICBjb25zdCBkYzFD
bG9zZWQgPSBuZXcgUHJvbWlzZShyID0+IGRjMS5vbmNsb3NlID0gcik7CisgICAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgYXdhaXQgZGMxQ2xvc2VkOworICB9LCBg
U3RvcHBpbmcgdGhlIGJ1bmRsZS10YWcgd2hlbiB0aGVyZSBpcyBhICR7bW9kZX0gaW4gdGhlIGJ1
bmRsZSBgICsKKyAgICAgYHNob3VsZCBraWxsIHRoZSBEYXRhQ2hhbm5lbGApOworfQorCisvKgog
ICBVbnRlc3RhYmxlCiAgICAgNi4xLiAgY3JlYXRlRGF0YUNoYW5uZWwKLSAgICAgIDE2LiBJZiBh
IHNldHRpbmcsIGVpdGhlciBbW01heFBhY2tldExpZmVUaW1lXV0gb3IgW1tNYXhSZXRyYW5zbWl0
c11dLCBoYXMKLSAgICAgICAgICBiZWVuIHNldCB0byBpbmRpY2F0ZSB1bnJlbGlhYmxlIG1vZGUs
IGFuZCB0aGF0IHZhbHVlIGV4Y2VlZHMgdGhlIG1heGltdW0KLSAgICAgICAgICB2YWx1ZSBzdXBw
b3J0ZWQgYnkgdGhlIHVzZXIgYWdlbnQsIHRoZSB2YWx1ZSBNVVNUIGJlIHNldCB0byB0aGUgdXNl
cgotICAgICAgICAgIGFnZW50cyBtYXhpbXVtIHZhbHVlLgorICAgICAgMTkuIElmIGEgc2V0dGlu
ZywgZWl0aGVyIFtbTWF4UGFja2V0TGlmZVRpbWVdXSBvciBbW01heFJldHJhbnNtaXRzXV0sIGhh
cyBiZWVuIHNldCB0bworICAgICAgICAgIGluZGljYXRlIHVucmVsaWFibGUgbW9kZSwgYW5kIHRo
YXQgdmFsdWUgZXhjZWVkcyB0aGUgbWF4aW11bSB2YWx1ZSBzdXBwb3J0ZWQKKyAgICAgICAgICBi
eSB0aGUgdXNlciBhZ2VudCwgdGhlIHZhbHVlIE1VU1QgYmUgc2V0IHRvIHRoZSB1c2VyIGFnZW50
cyBtYXhpbXVtIHZhbHVlLgogCi0gICAgICAyMC4gQ3JlYXRlIGNoYW5uZWwncyBhc3NvY2lhdGVk
IHVuZGVybHlpbmcgZGF0YSB0cmFuc3BvcnQgYW5kIGNvbmZpZ3VyZQorICAgICAgMjMuIFJldHVy
biBjaGFubmVsIGFuZCBjb250aW51ZSB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsLgor
ICAgICAgMjQuIENyZWF0ZSBjaGFubmVsJ3MgYXNzb2NpYXRlZCB1bmRlcmx5aW5nIGRhdGEgdHJh
bnNwb3J0IGFuZCBjb25maWd1cmUKICAgICAgICAgICBpdCBhY2NvcmRpbmcgdG8gdGhlIHJlbGV2
YW50IHByb3BlcnRpZXMgb2YgY2hhbm5lbC4KIAogICBUZXN0ZWQgaW4gUlRDUGVlckNvbm5lY3Rp
b24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sCi0gICAgMjEuIElmIGNoYW5uZWwgd2FzIHRoZSBm
aXJzdCBSVENEYXRhQ2hhbm5lbCBjcmVhdGVkIG9uIGNvbm5lY3Rpb24sIHVwZGF0ZQotICAgICAg
ICB0aGUgbmVnb3RpYXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24uCi0KLSAgSXNzdWVz
Ci0gICAgdzNjL3dlYnJ0Yy1wYyMxNDEyCi0gICAgICBSZXNvdXJjZUluVXNlIGV4Y2VwdGlvbiBp
cyBub3QgZGVmaW5lZAotCi0gIENvdmVyYWdlIFJlcG9ydAotICAgIFRlc3RlZCAgICAgICAgMjIK
LSAgICBOb3QgVGVzdGVkICAgICAxCi0gICAgVW50ZXN0YWJsZSAgICAgMgotICAgIFRvdGFsICAg
ICAgICAgMjUKKyAgICAyMi4gSWYgY2hhbm5lbCBpcyB0aGUgZmlyc3QgUlRDRGF0YUNoYW5uZWwg
Y3JlYXRlZCBvbiBjb25uZWN0aW9uLCB1cGRhdGUgdGhlCisgICAgICAgIG5lZ290aWF0aW9uLW5l
ZWRlZCBmbGFnIGZvciBjb25uZWN0aW9uLgorCisgIFRlc3RlZCBpbiBSVENEYXRhQ2hhbm5lbC1p
ZC5odG1sCisgICAgLSBPZGQvZXZlbiBydWxlcyBmb3IgJy5pZCcKKworICBUZXN0ZWQgaW4gUlRD
RGF0YUNoYW5uZWwtZGNlcC5odG1sCisgICAgLSBUcmFuc21pc3Npb24gb2YgJy5sYWJlbCcgYW5k
IGZ1cnRoZXIgb3B0aW9ucwogKi8KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Y3JlYXRlT2ZmZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItZXhwZWN0
ZWQudHh0CmluZGV4IDQyNzdhYjZjMGVkYzliYTY5YzNiNzNhMGZlNzNiYzE0NTFmNWQ5ZWYuLjc3
NmUxZWEzMWFkZGNmMzlkMjFiZDVhZTFkODNmMDlkY2I0ZGFjNjggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWNyZWF0ZU9mZmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVP
ZmZlci1leHBlY3RlZC50eHQKQEAgLTMsNCArMyw1IEBAIFBBU1MgY3JlYXRlT2ZmZXIoKSB3aXRo
IG5vIGFyZ3VtZW50IGZyb20gbmV3bHkgY3JlYXRlZCBSVENQZWVyQ29ubmVjdGlvbiBzaG91bGQK
IFBBU1MgY3JlYXRlT2ZmZXIoKSBhbmQgdGhlbiBzZXRMb2NhbERlc2NyaXB0aW9uKCkgc2hvdWxk
IHN1Y2NlZWQgCiBQQVNTIGNyZWF0ZU9mZmVyKCkgYWZ0ZXIgY29ubmVjdGlvbiBpcyBjbG9zZWQg
c2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yIAogRkFJTCBXaGVuIG1lZGlhIHN0
cmVhbSBpcyBhZGRlZCB3aGVuIGNyZWF0ZU9mZmVyKCkgaXMgcnVubmluZyBpbiBwYXJhbGxlbCwg
dGhlIHJlc3VsdCBvZmZlciBzaG91bGQgY29udGFpbiB0aGUgbmV3IG1lZGlhIHN0cmVhbSBhc3Nl
cnRfZXF1YWxzOiBFeHBlY3QgbT1hdWRpbyBsaW5lIHRvIGJlIGZvdW5kIGluIG9mZmVyIFNEUCBl
eHBlY3RlZCAxIGJ1dCBnb3QgMAorRkFJTCBjcmVhdGVPZmZlcigpIHNob3VsZCBmYWlsIHdoZW4g
c2lnbmFsaW5nIHN0YXRlIGlzIG5vdCBzdGFibGUgb3IgaGF2ZS1sb2NhbC1vZmZlciBhc3NlcnRf
dW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbAppbmRleCBjNTZkNDUyODBlZjYzMTdiYzBlZjc3
YjhhZDcxZTkyNzNjODA5ODYzLi43MDRmYTNjNjQ2N2UzNzc0NDdiMTQwZmJjZDdiMjdjYjFkOWQy
MGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKQEAgLTQ5LDcgKzQ5LDcgQEAKIAogICAgIHJldHVybiBn
ZW5lcmF0ZVZpZGVvUmVjZWl2ZU9ubHlPZmZlcihwYykKICAgICAudGhlbihvZmZlciA9PgotICAg
ICAgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikKKyAgICAgICBwYy5zZXRMb2NhbERlc2Ny
aXB0aW9uKG9mZmVyKQogICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICBhc3NlcnRfZXF1YWxz
KHBjLnNpZ25hbGluZ1N0YXRlLCAnaGF2ZS1sb2NhbC1vZmZlcicpOwogICAgICAgICBhc3NlcnRf
c2Vzc2lvbl9kZXNjX3NpbWlsYXIocGMubG9jYWxEZXNjcmlwdGlvbiwgb2ZmZXIpOwpAQCAtNjUs
NyArNjUsNyBAQAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgcGMu
Y2xvc2UoKTsKIAotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRTdGF0ZUVy
cm9yJywKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZFN0YXRlRXJy
b3InLAogICAgICAgcGMuY3JlYXRlT2ZmZXIoKSk7CiAgIH0sICdjcmVhdGVPZmZlcigpIGFmdGVy
IGNvbm5lY3Rpb24gaXMgY2xvc2VkIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJv
cicpOwogCkBAIC05Myw2ICs5MywyNiBAQAogICAgIH0pOwogICB9LCAnV2hlbiBtZWRpYSBzdHJl
YW0gaXMgYWRkZWQgd2hlbiBjcmVhdGVPZmZlcigpIGlzIHJ1bm5pbmcgaW4gcGFyYWxsZWwsIHRo
ZSByZXN1bHQgb2ZmZXIgc2hvdWxkIGNvbnRhaW4gdGhlIG5ldyBtZWRpYSBzdHJlYW0nKTsKIAor
ICAvKgorICBJZiBjb25uZWN0aW9uJ3Mgc2lnbmFsaW5nIHN0YXRlIGlzIG5laXRoZXIgInN0YWJs
ZSIgbm9yICJoYXZlLWxvY2FsLW9mZmVyIiwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGEgbmV3bHkgY3JlYXRlZCBJbnZhbGlkU3RhdGVFcnJvci4KKyAgKi8KKyAgcHJvbWlzZV90ZXN0
KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0YXRlcyA9IFtdOwor
ICAgIHBjLmFkZEV2ZW50TGlzdGVuZXIoJ3NpZ25hbGluZ3N0YXRlY2hhbmdlJywgKCkgPT4gc3Rh
dGVzLnB1c2gocGMuc2lnbmFsaW5nU3RhdGUpKTsKKworICAgIHJldHVybiBnZW5lcmF0ZVZpZGVv
UmVjZWl2ZU9ubHlPZmZlcihwYykKKyAgICAudGhlbihvZmZlciA9PgorICAgICAgIHBjLnNldFJl
bW90ZURlc2NyaXB0aW9uKG9mZmVyKQorICAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAnaGF2ZS1yZW1vdGUtb2ZmZXInKTsKKyAg
ICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZFN0YXRlRXJyb3In
LAorICAgICAgICAgICAgIHBjLmNyZWF0ZU9mZmVyKCkpOworICAgICAgIH0pCisgICAgICkKKyAg
fSwgJ2NyZWF0ZU9mZmVyKCkgc2hvdWxkIGZhaWwgd2hlbiBzaWduYWxpbmcgc3RhdGUgaXMgbm90
IHN0YWJsZSBvciBoYXZlLWxvY2FsLW9mZmVyJyk7CiAgIC8qCiAgICAqICBUT0RPCiAgICAqICA0
LjMuMiBjcmVhdGVPZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZp
Y2F0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS5odG1sCmluZGV4IGQx
YTYzOTVmMDFmMzI1ZWQ0NWJkNzM4NWI3NjZiMDY1YjYyZWMzZWMuLjRjZGE5N2U5YjdlZTVkNWM4
ZWM5NTM0ZWRmNTdmMzE2MTcyYWYzNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRl
Q2VydGlmaWNhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0
bWwKQEAgLTY4LDEyICs2OCwxMiBAQAogICAgKiAgICAgICAgd2lsbCBub3QgdXNlIHRvIGdlbmVy
YXRlIGEgY2VydGlmaWNhdGUgZm9yIFJUQ1BlZXJDb25uZWN0aW9uLgogICAgKi8KICAgcHJvbWlz
ZV90ZXN0KHQgPT4KLSAgICBwcm9taXNlX3JlamVjdHModCwgJ05vdFN1cHBvcnRlZEVycm9yJywK
KyAgICBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdOb3RTdXBwb3J0ZWRFcnJvcicsCiAgICAgICBS
VENQZWVyQ29ubmVjdGlvbi5nZW5lcmF0ZUNlcnRpZmljYXRlKCdpbnZhbGlkLWFsZ28nKSksCiAg
ICAgJ2dlbmVyYXRlQ2VydGlmaWNhdGUoKSB3aXRoIGludmFsaWQgc3RyaW5nIGFsZ29yaXRobSBz
aG91bGQgcmVqZWN0IHdpdGggTm90U3VwcG9ydGVkRXJyb3InKTsKIAogICBwcm9taXNlX3Rlc3Qo
dCA9PgotICAgIHByb21pc2VfcmVqZWN0cyh0LCAnTm90U3VwcG9ydGVkRXJyb3InLAorICAgIHBy
b21pc2VfcmVqZWN0c19kb20odCwgJ05vdFN1cHBvcnRlZEVycm9yJywKICAgICAgIFJUQ1BlZXJD
b25uZWN0aW9uLmdlbmVyYXRlQ2VydGlmaWNhdGUoewogICAgICAgICBuYW1lOiAnaW52YWxpZC1h
bGdvJwogICAgICAgfSkpLApAQCAtMTE4LDcgKzExOCw3IEBACiAgIH0sICdnZW5lcmF0ZUNlcnRp
ZmljYXRlKCkgd2l0aCAwIGV4cGlyZXMgcGFyYW1ldGVyIHNob3VsZCBnZW5lcmF0ZSBleHBpcmVk
IGNlcnQnKTsKIAogICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0
LCBUeXBlRXJyb3IsCiAgICAgICBSVENQZWVyQ29ubmVjdGlvbi5nZW5lcmF0ZUNlcnRpZmljYXRl
KHsKICAgICAgICAgbmFtZTogJ0VDRFNBJywKICAgICAgICAgbmFtZWRDdXJ2ZTogJ1AtMjU2JywK
QEAgLTEyNyw3ICsxMjcsNyBAQAogICB9LCAnZ2VuZXJhdGVDZXJ0aWZpY2F0ZSgpIHdpdGggaW52
YWxpZCByYW5nZSBmb3IgZXhwaXJlcyBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yJyk7CiAK
ICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgbmV3
IFR5cGVFcnJvcigpLAorICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModCwgVHlwZUVycm9y
LAogICAgICAgUlRDUGVlckNvbm5lY3Rpb24uZ2VuZXJhdGVDZXJ0aWZpY2F0ZSh7CiAgICAgICAg
IG5hbWU6ICdFQ0RTQScsCiAgICAgICAgIG5hbWVkQ3VydmU6ICdQLTI1NicsCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1n
ZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZmM1NTRmOGQyODEzMTQzZDQxYTE5Zjc1
ZDcxZmJjODNkYzIwNzY1Ny4uYWM5NDhhYzBlMjBkYzdjNDg3ZWYyNWNhYWNlMzgwOTJmMzg4ODM2
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQg
QEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgZ2V0
U3RhdHMoKSB3aXRoIG5vIGFyZ3VtZW50IHNob3VsZCBzdWNjZWVkIAogUEFTUyBnZXRTdGF0cyhu
dWxsKSBzaG91bGQgc3VjY2VlZCAKIEZBSUwgZ2V0U3RhdHMoKSB3aXRoIHRyYWNrIG5vdCBhZGRl
ZCB0byBjb25uZWN0aW9uIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3IgYXNz
ZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVu
cmVhY2hhYmxlIGNvZGUKQEAgLTksOSArNyw5IEBAIFBBU1MgZ2V0U3RhdHMoKSB3aXRoIHRyYWNr
IGFkZGVkIHZpYSBhZGRUcmFuc2NlaXZlciBzaG91bGQgc3VjY2VlZAogRkFJTCBnZXRTdGF0cygp
IHdpdGggdHJhY2sgYXNzb2NpYXRlZCB3aXRoIG1vcmUgdGhhbiBvbmUgc2VuZGVyIHNob3VsZCBy
ZWplY3Qgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhh
dmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIEZBSUwgZ2V0
U3RhdHMoKSB3aXRoIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBib3RoIHNlbmRlciBhbmQgcmVjZWl2
ZXIgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdW5yZWFjaGVk
OiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29k
ZQogUEFTUyBnZXRTdGF0cygpIHdpdGggbm8gYXJndW1lbnQgc2hvdWxkIHJldHVybiBzdGF0cyBy
ZXBvcnQgY29udGFpbmluZyBwZWVyLWNvbm5lY3Rpb24gc3RhdHMgb24gYW4gZW1wdHkgUEMgCi1G
QUlMIGdldFN0YXRzKCkgd2l0aCBubyBhcmd1bWVudCBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9y
dCBjb250YWluaW5nIHBlZXItY29ubmVjdGlvbiBzdGF0cyBhbmQgb3V0Ym91bmQtdHJhY2stc3Rh
dHMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkuYXVkaW9MZXZlbCB0byBiZSBudW1i
ZXIgZXhwZWN0ZWQgIm51bWJlciIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBnZXRTdGF0cygp
IHdpdGggbm8gYXJndW1lbnQgc2hvdWxkIHJldHVybiBzdGF0cyBmb3Igbm8tc3RyZWFtIHRyYWNr
cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5hdWRpb0xldmVsIHRvIGJlIG51bWJl
ciBleHBlY3RlZCAibnVtYmVyIiBidXQgZ290ICJ1bmRlZmluZWQiCi1GQUlMIGdldFN0YXRzKCkg
b24gdHJhY2sgYXNzb2NpYXRlZCB3aXRoIFJ0cFNlbmRlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJl
cG9ydCBjb250YWluaW5nIG91dGJvdW5kLXJ0cCBzdGF0cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3Qg
ZGljdGlvbmFyeS5pcCB0byBiZSBzdHJpbmcgZXhwZWN0ZWQgInN0cmluZyIgYnV0IGdvdCAidW5k
ZWZpbmVkIgotVElNRU9VVCBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBSdHBS
ZWNlaXZlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIGluYm91bmQtcnRw
IHN0YXRzIFRlc3QgdGltZWQgb3V0Ci1GQUlMIGdldFN0YXRzKCkgd2l0aCBjb25uZWN0ZWQgcGVl
ciBjb25uZWN0aW9ucyBoYXZpbmcgdHJhY2tzIGFuZCBkYXRhIGNoYW5uZWwgc2hvdWxkIHJldHVy
biBhbGwgbWFuZGF0b3J5IHRvIGltcGxlbWVudCBzdGF0cyBhc3NlcnRfdW5yZWFjaGVkOiB0ZXN0
IGZhaWxlZCB3aXRoIGVycm9yOiBFcnJvcjogYXNzZXJ0X3RydWU6IEV4cGVjdCBkaWN0aW9uYXJ5
LmRhdGFDaGFubmVsSWRlbnRpZmllciB0byBiZSBpbnRlZ2VyIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorRkFJTCBnZXRTdGF0cygpIHdpdGggbm8gYXJn
dW1lbnQgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBwZWVyLWNvbm5lY3Rp
b24gc3RhdHMgYW5kIG91dGJvdW5kLXRyYWNrLXN0YXRzIGFzc2VydF90cnVlOiBFeHBlY3Qgc3Rh
dHNSZXBvcnQgdG8gY29udGFpbiBzdGF0cyBvYmplY3Qgb2YgdHlwZSBvdXRib3VuZC1ydHAgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgZ2V0U3RhdHMoKSB3aXRoIG5vIGFyZ3VtZW50IHNo
b3VsZCByZXR1cm4gc3RhdHMgZm9yIG5vLXN0cmVhbSB0cmFja3MgYXNzZXJ0X2VxdWFsczogRXhw
ZWN0IGRpY3Rpb25hcnkudG90YWxBdWRpb0VuZXJneSB0byBiZSBudW1iZXIgZXhwZWN0ZWQgIm51
bWJlciIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29j
aWF0ZWQgd2l0aCBSdHBTZW5kZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmlu
ZyBvdXRib3VuZC1ydHAgc3RhdHMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkudG90
YWxBdWRpb0VuZXJneSB0byBiZSBudW1iZXIgZXhwZWN0ZWQgIm51bWJlciIgYnV0IGdvdCAidW5k
ZWZpbmVkIgorRkFJTCBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBSdHBSZWNl
aXZlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIGluYm91bmQtcnRwIHN0
YXRzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LmNvZGVjSWQgdG8gYmUgc3RyaW5n
IGV4cGVjdGVkICJzdHJpbmciIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgZ2V0U3RhdHMoKSB3
aXRoIGNvbm5lY3RlZCBwZWVyIGNvbm5lY3Rpb25zIGhhdmluZyB0cmFja3MgYW5kIGRhdGEgY2hh
bm5lbCBzaG91bGQgcmV0dXJuIGFsbCBtYW5kYXRvcnkgdG8gaW1wbGVtZW50IHN0YXRzIGFzc2Vy
dF91bnJlYWNoZWQ6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3I6IEVycm9yOiBhc3NlcnRfZXF1YWxz
OiBFeHBlY3QgZGljdGlvbmFyeS50b3RhbEF1ZGlvRW5lcmd5IHRvIGJlIG51bWJlciBleHBlY3Rl
ZCAibnVtYmVyIiBidXQgZ290ICJ1bmRlZmluZWQiIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tZ2V0U3RhdHMuaHR0cHMuaHRtbAppbmRleCBjMmM0ZThlMzcxNzZjZTEzNDQ3YzFjODIzOGFh
NjI0M2Y5YWVhMTMwLi5iZGY3NzcwMzUwZTk5ZmU2YjczMGQzZTkxMjU1ZjQ5ZjMwOTYxZWQwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAKIAogICAvLyBUaGUgZm9s
bG93aW5nIGhlbHBlciBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1o
ZWxwZXIuanMKICAgLy8gICBleGNoYW5nZUljZUNhbmRpZGF0ZXMKLSAgLy8gICBkb1NpZ25hbGlu
Z0hhbmRzaGFrZQorICAvLyAgIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIKIAogICAvKgogICAgIDguMi4g
IGdldFN0YXRzCkBAIC02NCw3ICs2NCw3IEBACiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5j
bG9zZSgpKTsKICAgICByZXR1cm4gZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCdhdWRpbycpCiAgICAg
LnRoZW4oKFt0cmFjaywgbWVkaWFTdHJlYW1dKSA9PiB7Ci0gICAgICByZXR1cm4gcHJvbWlzZV9y
ZWplY3RzKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLCBwYy5nZXRTdGF0cyh0cmFjaykpOworICAg
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsIHBj
LmdldFN0YXRzKHRyYWNrKSk7CiAgICAgfSk7CiAgIH0sICdnZXRTdGF0cygpIHdpdGggdHJhY2sg
bm90IGFkZGVkIHRvIGNvbm5lY3Rpb24gc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRBY2Nlc3NF
cnJvcicpOwogCkBAIC0xMDMsNyArMTAzLDcgQEAKICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHRy
YW5zY2VpdmVyMS5zZW5kZXIsIHRyYW5zY2VpdmVyMi5zZW5kZXIpOwogICAgICAgYXNzZXJ0X2Vx
dWFscyh0cmFuc2NlaXZlcjEuc2VuZGVyLnRyYWNrLCB0cmFuc2NlaXZlcjIuc2VuZGVyLnRyYWNr
KTsKIAotICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZEFjY2Vzc0Vycm9y
JywgcGMuZ2V0U3RhdHModHJhY2spKTsKKyAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9t
KHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLCBwYy5nZXRTdGF0cyh0cmFjaykpOwogICAgIH0pOwog
ICB9LCBgZ2V0U3RhdHMoKSB3aXRoIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBtb3JlIHRoYW4gb25l
IHNlbmRlciBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yYCk7CiAKQEAgLTEx
Nyw3ICsxMTcsNyBAQAogICAgIGNvbnN0IHRyYW5zY2VpdmVyMiA9IHBjLmFkZFRyYW5zY2VpdmVy
KHRyYW5zY2VpdmVyMS5yZWNlaXZlci50cmFjayk7CiAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2Nl
aXZlcjEucmVjZWl2ZXIudHJhY2ssIHRyYW5zY2VpdmVyMi5zZW5kZXIudHJhY2spOwogCi0gICAg
cmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZEFjY2Vzc0Vycm9yJywgcGMuZ2V0U3Rh
dHModHJhbnNjZWl2ZXIxLnJlY2VpdmVyLnRyYWNrKSk7CisgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0c19kb20odCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsIHBjLmdldFN0YXRzKHRyYW5zY2VpdmVy
MS5yZWNlaXZlci50cmFjaykpOwogICB9LCAnZ2V0U3RhdHMoKSB3aXRoIHRyYWNrIGFzc29jaWF0
ZWQgd2l0aCBib3RoIHNlbmRlciBhbmQgcmVjZWl2ZXIgc2hvdWxkIHJlamVjdCB3aXRoIEludmFs
aWRBY2Nlc3NFcnJvcicpOwogCiAgIC8qCkBAIC0xNDQsOCArMTQ0LDggQEAKICAgICAgIHJldHVy
biBwYy5nZXRTdGF0cygpOwogICAgIH0pCiAgICAgLnRoZW4oc3RhdHNSZXBvcnQgPT4gewotICAg
ICAgdmFsaWRhdGVTdGF0c1JlcG9ydChzdGF0c1JlcG9ydCk7Ci0gICAgICBhc3NlcnRfc3RhdHNf
cmVwb3J0X2hhc19zdGF0cyhzdGF0c1JlcG9ydCwgWydwZWVyLWNvbm5lY3Rpb24nXSk7CisvLyAg
ICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQoc3RhdHNSZXBvcnQpOworLy8gICAgICBhc3NlcnRfc3Rh
dHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0c1JlcG9ydCwgWydwZWVyLWNvbm5lY3Rpb24nXSk7CiAg
ICAgICBhc3NlcnRfc3RhdHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0c1JlcG9ydCwgWydvdXRib3Vu
ZC1ydHAnXSk7CiAgICAgfSk7CiAgIH0sICdnZXRTdGF0cygpIHdpdGggbm8gYXJndW1lbnQgc2hv
dWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBwZWVyLWNvbm5lY3Rpb24gc3RhdHMg
YW5kIG91dGJvdW5kLXRyYWNrLXN0YXRzJyk7CkBAIC0xNzIsNyArMTcyLDcgQEAKICAgICAgICAg
LSBBbGwgUlRDT3V0Ym91bmRSVFBTdHJlYW1TdGF0cyBvYmplY3RzIGNvcnJlc3BvbmRpbmcgdG8g
c2VsZWN0b3IuCiAgICAgICAgIC0gQWxsIHN0YXRzIG9iamVjdHMgcmVmZXJlbmNlZCBkaXJlY3Rs
eSBvciBpbmRpcmVjdGx5IGJ5IHRoZSBSVENPdXRib3VuZFJUUFN0cmVhbVN0YXRzCiAgICAgICAg
ICAgb2JqZWN0cyBhZGRlZC4KLSAgICovCisgICovCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKICAgICBjb25zdCBwYyA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CiAg
ICAgY29uc3QgcGMyID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKQEAgLTE4
MCw3ICsxODAsNyBAQAogICAgIGxldCBbdHJhY2ssIG1lZGlhU3RyZWFtXSA9IGF3YWl0IGdldFRy
YWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKTsKICAgICBwYy5hZGRUcmFjayh0cmFjaywgbWVkaWFT
dHJlYW0pOwogICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYywgcGMyKTsKLSAgICBhd2FpdCBk
b1NpZ25hbGluZ0hhbmRzaGFrZShwYywgcGMyKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5z
d2VyKHBjLCBwYzIpOwogICAgIGF3YWl0IGxpc3RlblRvSWNlQ29ubmVjdGVkKHBjKTsKICAgICBj
b25zdCBzdGF0cyA9IGF3YWl0IHBjLmdldFN0YXRzKHRyYWNrKTsKICAgICB2YWxpZGF0ZVN0YXRz
UmVwb3J0KHN0YXRzKTsKQEAgLTIwMywxMSArMjAzLDE2IEBACiAgICAgbGV0IFt0cmFjaywgbWVk
aWFTdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCdhdWRpbycpOwogICAgIHBj
LmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7CiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
KHBjLCBwYzIpOwotICAgIGF3YWl0IGRvU2lnbmFsaW5nSGFuZHNoYWtlKHBjLCBwYzIpOwotICAg
IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAgcGMyLmdldFJlY2VpdmVycygp
WzBdLnRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoJ3VubXV0ZScsIHJlc29sdmUpOwotICAgIH0pOwot
ICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgcGMyLmdldFN0YXRzKHRyYWNrKTsKKyAgICBhd2FpdCBl
eGNoYW5nZU9mZmVyQW5zd2VyKHBjLCBwYzIpOworICAgIC8vIFdhaXQgZm9yIHVubXV0ZSBpZiB0
aGUgdHJhY2sgaXMgbm90IGFscmVhZHkgdW5tdXRlZC4KKyAgICAvLyBBY2NvcmRpbmcgdG8gc3Bl
YywgaXQgc2hvdWxkIGJlIG11dGVkIHdoZW4gYmVpbmcgY3JlYXRlZCwgYnV0IHRoaXMKKyAgICAv
LyBpcyBub3Qgd2hhdCB0aGlzIHRlc3QgaXMgdGVzdGluZywgc28gYWxsb3cgaXQgdG8gYmUgdW5t
dXRlZC4KKyAgICBpZiAocGMyLmdldFJlY2VpdmVycygpWzBdLnRyYWNrLm11dGVkKSB7CisgICAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgcGMyLmdldFJlY2VpdmVy
cygpWzBdLnRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoJ3VubXV0ZScsIHJlc29sdmUpOworICAgICAg
fSk7CisgICAgfQorICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgcGMyLmdldFN0YXRzKHBjMi5nZXRS
ZWNlaXZlcnMoKVswXS50cmFjayk7CiAgICAgdmFsaWRhdGVTdGF0c1JlcG9ydChzdGF0cyk7CiAg
ICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHMsIFsnaW5ib3VuZC1ydHAnXSk7
CiAgIH0sIGBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBSdHBSZWNlaXZlciBz
aG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIGluYm91bmQtcnRwIHN0YXRzYCk7
CkBAIC0yMjcsOCArMjMyLDYgQEAKICAgICAicmVtb3RlLW91dGJvdW5kLXJ0cCIsCiAgICAgInBl
ZXItY29ubmVjdGlvbiIsCiAgICAgImRhdGEtY2hhbm5lbCIsCi0gICAgInN0cmVhbSIsCi0gICAg
InRyYWNrIiwKICAgICAidHJhbnNwb3J0IiwKICAgICAiY2FuZGlkYXRlLXBhaXIiLAogICAgICJs
b2NhbC1jYW5kaWRhdGUiLApAQCAtMjcxLDYgKzI3NCw3IEBACiAKICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhkYXRhQ2hhbm5lbFN0YXRzLmxhYmVsLCAndGVzdC1jaGFubmVsJyk7CiAKKyAgICAgICAg
LyogVE9ETyB0cmFjayBzdGF0cyBhcmUgb2Jzb2xldGUgLSByZXBsYWNlIHdpdGggc2VuZGVyL3Jl
Y2VpdmVyPyAqLwogICAgICAgICBjb25zdCBhdWRpb1RyYWNrU3RhdHMgPSBmaW5kU3RhdHNGcm9t
UmVwb3J0KHN0YXRzUmVwb3J0LAogICAgICAgICAgIHN0YXRzID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBzdGF0cy50eXBlID09PSAndHJhY2snICYmCkBAIC0yODksMTMgKzI5Myw2IEBACiAKICAg
ICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlb1RyYWNrU3RhdHMua2luZCwgJ3ZpZGVvJyk7CiAKLSAg
ICAgICAgY29uc3QgbWVkaWFTdHJlYW1TdGF0cyA9IGZpbmRTdGF0c0Zyb21SZXBvcnQoc3RhdHNS
ZXBvcnQsCi0gICAgICAgICAgc3RhdHMgPT4gewotICAgICAgICAgICAgcmV0dXJuIHN0YXRzLnR5
cGUgPT09ICdzdHJlYW0nICYmCi0gICAgICAgICAgICAgIHN0YXRzLnN0cmVhbUlkZW50aWZpZXIg
PT09IG1lZGlhU3RyZWFtLmlkOwotICAgICAgICAgIH0sCi0gICAgICAgICAgJ0V4cGVjdCBtZWRp
YSBzdHJlYW0gc3RhdHMgdG8gYmUgZm91bmQnKTsKLQogICAgICAgICBhc3NlcnRfdHJ1ZShtZWRp
YVN0cmVhbVN0YXRzLnRyYWNrSWRzLmluY2x1ZGUoYXVkaW9UcmFja1N0YXRzLmlkKSk7CiAgICAg
ICAgIGFzc2VydF90cnVlKG1lZGlhU3RyZWFtU3RhdHMudHJhY2tJZHMuaW5jbHVkZSh2aWRlb1Ry
YWNrU3RhdHMuaWQpKTsKICAgICAgIH0KQEAgLTMwNCw2ICszMDEsNyBAQAogICAgICAgICAvLyBX
YWl0IGEgd2hpbGUgZm9yIHRoZSBwZWVyIGNvbm5lY3Rpb25zIHRvIGNvbGxlY3Qgc3RhdHMKICAg
ICAgICAgdC5zdGVwX3RpbWVvdXQoKCkgPT4gewogICAgICAgICAgIFByb21pc2UuYWxsKFsKKyAg
ICAgICAgICAgIC8qIFRPRE86IGZvciBib3RoIHBjMSBhbmQgcGMyIHRvIGV4cG9zZSBhbGwgbWFu
ZGF0b3J5IHN0YXRzLCB0aGV5IG5lZWQgdG8gYm90aCBzZW5kL3JlY2VpdmUgdHJhY2tzIGFuZCBk
YXRhIGNoYW5uZWxzICovCiAgICAgICAgICAgICBwYzEuZ2V0U3RhdHMoKQogICAgICAgICAgICAg
LnRoZW4oc3RhdHNSZXBvcnQgPT4gdGVzdFN0YXRzUmVwb3J0KHBjMSwgc3RhdHNSZXBvcnQpKSwK
IApAQCAtMzM2LDcgKzMzNCw3IEBACiAKIAogICAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBj
MSwgcGMyKTsKLSAgICAgIGRvU2lnbmFsaW5nSGFuZHNoYWtlKHBjMSwgcGMyKTsKKyAgICAgIGV4
Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwogICAgIH0pKQogICAgIC5jYXRjaCh0LnN0ZXBf
ZnVuYyhlcnIgPT4gewogICAgICAgYXNzZXJ0X3VucmVhY2hlZChgdGVzdCBmYWlsZWQgd2l0aCBl
cnJvcjogJHtlcnJ9YCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1oZWxwZXIuanMKaW5kZXggMGIyNWRmMjYxOTBjMTRhMWUzYzBhNWExZTVjZDc1MTRi
N2ViNjlmOC4uMDc2MjZiZDBjY2MzOWU5MzAzNGJlYWYxZjc0NWJiYzQ5YTk0MzhjMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcwpA
QCAtMTQwLDYgKzE0MCwxNSBAQCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUFuc3dlcihvZmZlcikg
ewogICByZXR1cm4gYW5zd2VyOwogfQogCisvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2VuZXJhdGUg
b2ZmZXIgdXNpbmcgYSBmcmVzaGx5CisvLyBjcmVhdGVkIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVj
dAorYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVPZmZlcigpIHsKKyAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigp
OworICBwYy5jbG9zZSgpOworICByZXR1cm4gb2ZmZXI7Cit9CisKIC8vIFJ1biBhIHRlc3QgZnVu
Y3Rpb24gdGhhdCByZXR1cm4gYSBwcm9taXNlIHRoYXQgc2hvdWxkCiAvLyBuZXZlciBiZSByZXNv
bHZlZC4gRm9yIGxhY2sgb2YgYmV0dGVyIG9wdGlvbnMsCiAvLyB3ZSB3YWl0IGZvciBhIHRpbWUg
b3V0IGFuZCBwYXNzIHRoZSB0ZXN0IGlmIHRoZQpAQCAtMTgxLDEzMiArMTkwLDk5IEBAIGZ1bmN0
aW9uIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMikgewogICBkb0V4Y2hhbmdlKHBjMiwg
cGMxKTsKIH0KIAotLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBkb2luZyBvbmUgcm91bmQgb2Ygb2Zm
ZXIvYW5zd2VyIGV4Y2hhbmdlCi0vLyBiZXR3ZWVuIHR3byBsb2NhbCBwZWVyIGNvbm5lY3Rpb25z
Ci1hc3luYyBmdW5jdGlvbiBkb1NpZ25hbGluZ0hhbmRzaGFrZShsb2NhbFBjLCByZW1vdGVQYywg
b3B0aW9ucz17fSkgewotICBsZXQgb2ZmZXIgPSBhd2FpdCBsb2NhbFBjLmNyZWF0ZU9mZmVyKCk7
Ci0gIC8vIE1vZGlmeSBvZmZlciBpZiBjYWxsYmFjayBoYXMgYmVlbiBwcm92aWRlZAotICBpZiAo
b3B0aW9ucy5tb2RpZnlPZmZlcikgewotICAgIG9mZmVyID0gYXdhaXQgb3B0aW9ucy5tb2RpZnlP
ZmZlcihvZmZlcik7Ci0gIH0KLQotICAvLyBBcHBseSBvZmZlcgotICBhd2FpdCBsb2NhbFBjLnNl
dExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOwotICBhd2FpdCByZW1vdGVQYy5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcik7CisvLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4g
YSB8bmFtZXwgZXZlbnQgaXMgZmlyZWQuCitmdW5jdGlvbiB3YWl0VW50aWxFdmVudChvYmosIG5h
bWUpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHIgPT4gb2JqLmFkZEV2ZW50TGlzdGVuZXIobmFt
ZSwgciwge29uY2U6IHRydWV9KSk7Cit9CiAKLSAgbGV0IGFuc3dlciA9IGF3YWl0IHJlbW90ZVBj
LmNyZWF0ZUFuc3dlcigpOwotICAvLyBNb2RpZnkgYW5zd2VyIGlmIGNhbGxiYWNrIGhhcyBiZWVu
IHByb3ZpZGVkCi0gIGlmIChvcHRpb25zLm1vZGlmeUFuc3dlcikgewotICAgIGFuc3dlciA9IGF3
YWl0IG9wdGlvbnMubW9kaWZ5QW5zd2VyKGFuc3dlcik7CisvLyBSZXR1cm5zIGEgcHJvbWlzZSB0
aGF0IHJlc29sdmVzIHdoZW4gdGhlIHx0cmFuc3BvcnQuc3RhdGV8IGlzIHxzdGF0ZXwKKy8vIFRo
aXMgc2hvdWxkIHdvcmsgZm9yIFJUQ1NjdHBUcmFuc3BvcnQsIFJUQ0R0bHNUcmFuc3BvcnQgYW5k
IFJUQ0ljZVRyYW5zcG9ydC4KK2FzeW5jIGZ1bmN0aW9uIHdhaXRGb3JTdGF0ZSh0cmFuc3BvcnQs
IHN0YXRlKSB7CisgIHdoaWxlICh0cmFuc3BvcnQuc3RhdGUgIT0gc3RhdGUpIHsKKyAgICBhd2Fp
dCB3YWl0VW50aWxFdmVudCh0cmFuc3BvcnQsICdzdGF0ZWNoYW5nZScpOwogICB9Ci0KLSAgLy8g
QXBwbHkgYW5zd2VyCi0gIGF3YWl0IHJlbW90ZVBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2Vy
KTsKLSAgYXdhaXQgbG9jYWxQYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwogfQogCiAv
LyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gfHBjLmljZUNvbm5lY3Rpb25T
dGF0ZXwgaXMgJ2Nvbm5lY3RlZCcKIC8vIG9yICdjb21wbGV0ZWQnLgotZnVuY3Rpb24gbGlzdGVu
VG9JY2VDb25uZWN0ZWQocGMpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
Ci0gICAgZnVuY3Rpb24gaXNDb25uZWN0ZWQocGMpIHsKLSAgICAgIHJldHVybiBwYy5pY2VDb25u
ZWN0aW9uU3RhdGUgPT0gJ2Nvbm5lY3RlZCcgfHwKLSAgICAgICAgICAgIHBjLmljZUNvbm5lY3Rp
b25TdGF0ZSA9PSAnY29tcGxldGVkJzsKLSAgICB9Ci0gICAgaWYgKGlzQ29ubmVjdGVkKHBjKSkg
ewotICAgICAgcmVzb2x2ZSgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBwYy5vbmljZWNv
bm5lY3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKLSAgICAgIGlmIChpc0Nvbm5lY3RlZChwYykp
Ci0gICAgICAgIHJlc29sdmUoKTsKLSAgICB9OwotICB9KTsKK2FzeW5jIGZ1bmN0aW9uIGxpc3Rl
blRvSWNlQ29ubmVjdGVkKHBjKSB7CisgIGF3YWl0IHdhaXRGb3JJY2VTdGF0ZUNoYW5nZShwYywg
Wydjb25uZWN0ZWQnLCAnY29tcGxldGVkJ10pOworfQorCisvLyBSZXR1cm5zIGEgcHJvbWlzZSB0
aGF0IHJlc29sdmVzIHdoZW4gfHBjLmljZUNvbm5lY3Rpb25TdGF0ZXwgaXMgaW4gb25lIG9mIHRo
ZQorLy8gd2FudGVkIHN0YXRlcy4KK2FzeW5jIGZ1bmN0aW9uIHdhaXRGb3JJY2VTdGF0ZUNoYW5n
ZShwYywgd2FudGVkU3RhdGVzKSB7CisgIHdoaWxlICghd2FudGVkU3RhdGVzLmluY2x1ZGVzKHBj
LmljZUNvbm5lY3Rpb25TdGF0ZSkpIHsKKyAgICBhd2FpdCB3YWl0VW50aWxFdmVudChwYywgJ2lj
ZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZScpOworICB9CiB9CiAKIC8vIFJldHVybnMgYSBwcm9taXNl
IHRoYXQgcmVzb2x2ZXMgd2hlbiB8cGMuY29ubmVjdGlvblN0YXRlfCBpcyAnY29ubmVjdGVkJy4K
LWZ1bmN0aW9uIGxpc3RlblRvQ29ubmVjdGVkKHBjKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4gewotICAgIGlmIChwYy5jb25uZWN0aW9uU3RhdGUgPT0gJ2Nvbm5lY3RlZCcp
IHsKLSAgICAgIHJlc29sdmUoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgcGMub25jb25u
ZWN0aW9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7Ci0gICAgICBpZiAocGMuY29ubmVjdGlvblN0YXRl
ID09ICdjb25uZWN0ZWQnKQotICAgICAgICByZXNvbHZlKCk7Ci0gICAgfTsKLSAgfSk7Cithc3lu
YyBmdW5jdGlvbiBsaXN0ZW5Ub0Nvbm5lY3RlZChwYykgeworICB3aGlsZSAocGMuY29ubmVjdGlv
blN0YXRlICE9ICdjb25uZWN0ZWQnKSB7CisgICAgYXdhaXQgd2FpdFVudGlsRXZlbnQocGMsICdj
b25uZWN0aW9uc3RhdGVjaGFuZ2UnKTsKKyAgfQorfQorCisvLyBSZXR1cm5zIGEgcHJvbWlzZSB0
aGF0IHJlc29sdmVzIHdoZW4gfHBjLmNvbm5lY3Rpb25TdGF0ZXwgaXMgaW4gb25lIG9mIHRoZQor
Ly8gd2FudGVkIHN0YXRlcy4KK2FzeW5jIGZ1bmN0aW9uIHdhaXRGb3JDb25uZWN0aW9uU3RhdGVD
aGFuZ2UocGMsIHdhbnRlZFN0YXRlcykgeworICB3aGlsZSAoIXdhbnRlZFN0YXRlcy5pbmNsdWRl
cyhwYy5jb25uZWN0aW9uU3RhdGUpKSB7CisgICAgYXdhaXQgd2FpdFVudGlsRXZlbnQocGMsICdj
b25uZWN0aW9uc3RhdGVjaGFuZ2UnKTsKKyAgfQogfQogCiAvLyBSZXNvbHZlcyB3aGVuIFJUUCBw
YWNrZXRzIGhhdmUgYmVlbiByZWNlaXZlZC4KLWZ1bmN0aW9uIGxpc3RlbkZvclNTUkNzKHQsIHJl
Y2VpdmVyKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAgIGZ1bmN0
aW9uIGxpc3RlbigpIHsKLSAgICAgIGNvbnN0IHNzcmNzID0gcmVjZWl2ZXIuZ2V0U3luY2hyb25p
emF0aW9uU291cmNlcygpOwotICAgICAgYXNzZXJ0X3RydWUoc3NyY3MgIT0gdW5kZWZpbmVkKTsK
LSAgICAgIGlmIChzc3Jjcy5sZW5ndGggPiAwKSB7Ci0gICAgICAgIHJlc29sdmUoc3NyY3MpOwot
ICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICB0LnN0ZXBfdGltZW91dChsaXN0ZW4sIDAp
OwotICAgIH07Ci0gICAgbGlzdGVuKCk7Ci0gIH0pOworYXN5bmMgZnVuY3Rpb24gbGlzdGVuRm9y
U1NSQ3ModCwgcmVjZWl2ZXIpIHsKKyAgd2hpbGUgKHRydWUpIHsKKyAgICBjb25zdCBzc3JjcyA9
IHJlY2VpdmVyLmdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKTsKKyAgICBhc3NlcnRfdHJ1ZShB
cnJheS5pc0FycmF5KHNzcmNzKSk7CisgICAgaWYgKHNzcmNzLmxlbmd0aCA+IDApIHsKKyAgICAg
IHJldHVybiBzc3JjczsKKyAgICB9CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBf
dGltZW91dChyLCAwKSk7CisgIH0KIH0KIAotLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBh
IHBhaXIgb2YgY29ubmVjdGVkIGRhdGEgY2hhbm5lbC4KKy8vIEhlbHBlciBmdW5jdGlvbiB0byBj
cmVhdGUgYSBwYWlyIG9mIGNvbm5lY3RlZCBkYXRhIGNoYW5uZWxzLgogLy8gT24gc3VjY2VzcyB0
aGUgcHJvbWlzZSByZXNvbHZlcyB0byBhbiBhcnJheSB3aXRoIHR3byBkYXRhIGNoYW5uZWxzLgog
Ly8gSXQgZG9lcyB0aGUgaGVhdnkgbGlmdGluZyBvZiBwZXJmb3JtaW5nIHNpZ25hbGluZyBoYW5k
c2hha2UsCiAvLyBJQ0UgY2FuZGlkYXRlIGV4Y2hhbmdlLCBhbmQgd2FpdGluZyBmb3IgZGF0YSBj
aGFubmVsIGF0IHR3bwotLy8gZW5kIHBvaW50cyB0byBvcGVuLgotZnVuY3Rpb24gY3JlYXRlRGF0
YUNoYW5uZWxQYWlyKAotICBwYzE9bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCksCi0gIHBjMj1uZXcg
UlRDUGVlckNvbm5lY3Rpb24oKSkKLXsKLSAgY29uc3QgY2hhbm5lbDEgPSBwYzEuY3JlYXRlRGF0
YUNoYW5uZWwoJycpOwotCi0gIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0KLSAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICBsZXQgY2hhbm5l
bDI7Ci0gICAgbGV0IG9wZW5lZDEgPSBmYWxzZTsKLSAgICBsZXQgb3BlbmVkMiA9IGZhbHNlOwot
Ci0gICAgZnVuY3Rpb24gb25Cb3RoT3BlbmVkKCkgewotICAgICAgcmVzb2x2ZShbY2hhbm5lbDEs
IGNoYW5uZWwyXSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25PcGVuMSgpIHsKLSAgICAgIG9w
ZW5lZDEgPSB0cnVlOwotICAgICAgaWYob3BlbmVkMikgb25Cb3RoT3BlbmVkKCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gb25PcGVuMigpIHsKLSAgICAgIG9wZW5lZDIgPSB0cnVlOwotICAgICAg
aWYob3BlbmVkMSkgb25Cb3RoT3BlbmVkKCk7CisvLyBlbmQgcG9pbnRzIHRvIG9wZW4uIENhbiBk
byBib3RoIG5lZ290aWF0ZWQgYW5kIG5vbi1uZWdvdGlhdGVkIHNldHVwLgorYXN5bmMgZnVuY3Rp
b24gY3JlYXRlRGF0YUNoYW5uZWxQYWlyKHQsIG9wdGlvbnMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGMxID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYzIgPSBjcmVhdGVQZWVy
Q29ubmVjdGlvbldpdGhDbGVhbnVwKHQpKSB7CisgIGxldCBwYWlyID0gW10sIGJvdGhPcGVuOwor
ICB0cnkgeworICAgIGlmIChvcHRpb25zLm5lZ290aWF0ZWQpIHsKKyAgICAgIHBhaXIgPSBbcGMx
LCBwYzJdLm1hcChwYyA9PiBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnJywgb3B0aW9ucykpOworICAg
ICAgYm90aE9wZW4gPSBQcm9taXNlLmFsbChwYWlyLm1hcChkYyA9PiBuZXcgUHJvbWlzZSgociwg
ZSkgPT4geworICAgICAgICBkYy5vbm9wZW4gPSByOworICAgICAgICBkYy5vbmVycm9yID0gKHtl
cnJvcn0pID0+IGUoZXJyb3IpOworICAgICAgfSkpKTsKKyAgICB9IGVsc2UgeworICAgICAgcGFp
ciA9IFtwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJycsIG9wdGlvbnMpXTsKKyAgICAgIGJvdGhPcGVu
ID0gUHJvbWlzZS5hbGwoWworICAgICAgICBuZXcgUHJvbWlzZSgociwgZSkgPT4geworICAgICAg
ICAgIHBhaXJbMF0ub25vcGVuID0gcjsKKyAgICAgICAgICBwYWlyWzBdLm9uZXJyb3IgPSAoe2Vy
cm9yfSkgPT4gZShlcnJvcik7CisgICAgICAgIH0pLAorICAgICAgICBuZXcgUHJvbWlzZSgociwg
ZSkgPT4gcGMyLm9uZGF0YWNoYW5uZWwgPSAoe2NoYW5uZWx9KSA9PiB7CisgICAgICAgICAgcGFp
clsxXSA9IGNoYW5uZWw7CisgICAgICAgICAgY2hhbm5lbC5vbm9wZW4gPSByOworICAgICAgICAg
IGNoYW5uZWwub25lcnJvciA9ICh7ZXJyb3J9KSA9PiBlKGVycm9yKTsKKyAgICAgICAgfSkKKyAg
ICAgIF0pOwogICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uRGF0YUNoYW5uZWwoZXZlbnQpIHsKLSAg
ICAgIGNoYW5uZWwyID0gZXZlbnQuY2hhbm5lbDsKLSAgICAgIGNoYW5uZWwyLmFkZEV2ZW50TGlz
dGVuZXIoJ2Vycm9yJywgcmVqZWN0KTsKLSAgICAgIGNvbnN0IHsgcmVhZHlTdGF0ZSB9ID0gY2hh
bm5lbDI7Ci0KLSAgICAgIGlmKHJlYWR5U3RhdGUgPT09ICdvcGVuJykgewotICAgICAgICBvbk9w
ZW4yKCk7Ci0gICAgICB9IGVsc2UgaWYocmVhZHlTdGF0ZSA9PT0gJ2Nvbm5lY3RpbmcnKSB7Ci0g
ICAgICAgIGNoYW5uZWwyLmFkZEV2ZW50TGlzdGVuZXIoJ29wZW4nLCBvbk9wZW4yKTsKLSAgICAg
IH0gZWxzZSB7Ci0gICAgICAgIHJlamVjdChuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgcmVhZHkgc3Rh
dGUgJHtyZWFkeVN0YXRlfWApKTsKLSAgICAgIH0KKyAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMo
cGMxLCBwYzIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICAg
IGF3YWl0IGJvdGhPcGVuOworICAgIHJldHVybiBwYWlyOworICB9IGZpbmFsbHkgeworICAgIGZv
ciAoY29uc3QgZGMgb2YgcGFpcikgeworICAgICAgIGRjLm9ub3BlbiA9IGRjLm9uZXJyb3IgPSBu
dWxsOwogICAgIH0KLQotICAgIGNoYW5uZWwxLmFkZEV2ZW50TGlzdGVuZXIoJ29wZW4nLCBvbk9w
ZW4xKTsKLSAgICBjaGFubmVsMS5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7Ci0K
LSAgICBwYzIuYWRkRXZlbnRMaXN0ZW5lcignZGF0YWNoYW5uZWwnLCBvbkRhdGFDaGFubmVsKTsK
LQotICAgIGRvU2lnbmFsaW5nSGFuZHNoYWtlKHBjMSwgcGMyKTsKLSAgfSk7CisgIH0KIH0KIAog
Ly8gV2FpdCBmb3IgUlRQIGFuZCBSVENQIHN0YXRzIHRvIGFycml2ZQpAQCAtMzMwLDI4ICszMDYs
MjEgQEAgYXN5bmMgZnVuY3Rpb24gd2FpdEZvclJ0cEFuZFJ0Y3BTdGF0cyhwYykgewogLy8gV2Fp
dCBmb3IgYSBzaW5nbGUgbWVzc2FnZSBldmVudCBhbmQgcmV0dXJuCiAvLyBhIHByb21pc2UgdGhh
dCByZXNvbHZlIHdoZW4gdGhlIGV2ZW50IGZpcmVzCiBmdW5jdGlvbiBhd2FpdE1lc3NhZ2UoY2hh
bm5lbCkgeworICBjb25zdCBvbmNlID0gdHJ1ZTsKICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlLCByZWplY3QpID0+IHsKLSAgICBjaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2Un
LAotICAgICAgZXZlbnQgPT4gcmVzb2x2ZShldmVudC5kYXRhKSwKLSAgICAgIHsgb25jZTogdHJ1
ZSB9KTsKLQotICAgIGNoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCByZWplY3QsIHsg
b25jZTogdHJ1ZSB9KTsKKyAgICBjaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAo
e2RhdGF9KSA9PiByZXNvbHZlKGRhdGEpLCB7b25jZX0pOworICAgIGNoYW5uZWwuYWRkRXZlbnRM
aXN0ZW5lcignZXJyb3InLCByZWplY3QsIHtvbmNlfSk7CiAgIH0pOwogfQogCiAvLyBIZWxwZXIg
dG8gY29udmVydCBhIGJsb2IgdG8gYXJyYXkgYnVmZmVyIHNvIHRoYXQKIC8vIHdlIGNhbiByZWFk
IHRoZSBjb250ZW50Ci1mdW5jdGlvbiBibG9iVG9BcnJheUJ1ZmZlcihibG9iKSB7Cithc3luYyBm
dW5jdGlvbiBibG9iVG9BcnJheUJ1ZmZlcihibG9iKSB7CisgIGNvbnN0IHJlYWRlciA9IG5ldyBG
aWxlUmVhZGVyKCk7CisgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iKTsKICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICBjb25zdCByZWFkZXIgPSBu
ZXcgRmlsZVJlYWRlcigpOwotCi0gICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAo
KSA9PiB7Ci0gICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQpOwotICAgIH0pOwotCi0gICAgcmVh
ZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgcmVqZWN0KTsKLQotICAgIHJlYWRlci5yZWFk
QXNBcnJheUJ1ZmZlcihibG9iKTsKKyAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdCksIHtvbmNlOiB0cnVlfSk7CisgICAgcmVhZGVy
LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKCkgPT4gcmVqZWN0KHJlYWRlci5lcnJvciksIHtv
bmNlOiB0cnVlfSk7CiAgIH0pOwogfQogCkBAIC00MjMsNyArMzkyLDcgQEAgY29uc3QgdHJhY2tG
YWN0b3JpZXMgPSB7CiAgICAgcmV0dXJuIGRzdC5zdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXTsK
ICAgfSwKIAotICB2aWRlbyh7d2lkdGggPSA2NDAsIGhlaWdodCA9IDQ4MH0gPSB7fSkgeworICB2
aWRlbyh7d2lkdGggPSA2NDAsIGhlaWdodCA9IDQ4MCwgc2lnbmFsID0gbnVsbH0gPSB7fSkgewog
ICAgIGNvbnN0IGNhbnZhcyA9IE9iamVjdC5hc3NpZ24oCiAgICAgICBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJjYW52YXMiKSwge3dpZHRoLCBoZWlnaHR9CiAgICAgKTsKQEAgLTQzNCw4ICs0MDMs
MTMgQEAgY29uc3QgdHJhY2tGYWN0b3JpZXMgPSB7CiAgICAgc2V0SW50ZXJ2YWwoKCkgPT4gewog
ICAgICAgY3R4LmZpbGxTdHlsZSA9IGByZ2IoJHtjb3VudCUyNTV9LCAke2NvdW50KmNvdW50JTI1
NX0sICR7Y291bnQlMjU1fSlgOwogICAgICAgY291bnQgKz0gMTsKLQogICAgICAgY3R4LmZpbGxS
ZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAgICAgLy8gSWYgc2lnbmFsIGlzIHNldCwgYWRk
IGEgY29uc3RhbnQtY29sb3IgYm94IHRvIHRoZSB2aWRlbyBmcmFtZQorICAgICAgLy8gYXQgY29v
cmRpbmF0ZXMgMTAgdG8gMzAgaW4gYm90aCBYIGFuZCBZIGRpcmVjdGlvbi4KKyAgICAgIGlmIChz
aWduYWwgIT09IG51bGwpIHsKKyAgICAgICAgY3R4LmZpbGxTdHlsZSA9IGByZ2IoJHtzaWduYWx9
LCAke3NpZ25hbH0sICR7c2lnbmFsfSlgOworICAgICAgICBjdHguZmlsbFJlY3QoMTAsIDEwLCAy
MCwgMjApOworICAgICAgfQogICAgIH0sIDEwMCk7CiAKICAgICBpZiAoZG9jdW1lbnQuYm9keSkg
ewpAQCAtNDUwLDEzICs0MjQsNDIgQEAgY29uc3QgdHJhY2tGYWN0b3JpZXMgPSB7CiAgIH0KIH07
CiAKKy8vIEdldCB0aGUgc2lnbmFsIGZyb20gYSB2aWRlbyBlbGVtZW50IGluc2VydGVkIGJ5IGNy
ZWF0ZU5vaXNlU3RyZWFtCitmdW5jdGlvbiBnZXRWaWRlb1NpZ25hbCh2KSB7CisgIGlmICh2LnZp
ZGVvV2lkdGggPCAyMSB8fCB2LnZpZGVvSGVpZ2h0IDwgMjEpIHsKKyAgICByZXR1cm4gbnVsbDsK
KyAgfQorICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsK
KyAgY2FudmFzLndpZHRoID0gdi52aWRlb1dpZHRoOworICBjYW52YXMuaGVpZ2h0ID0gdi52aWRl
b0hlaWdodDsKKyAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICBj
b250ZXh0LmRyYXdJbWFnZSh2LCAwLCAwLCB2LnZpZGVvV2lkdGgsIHYudmlkZW9IZWlnaHQpOwor
ICAvLyBFeHRyYWN0IHBpeGVsIHZhbHVlIGF0IHBvc2l0aW9uIDIwLCAyMAorICBjb25zdCBwaXhl
bCA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDIwLCAyMCwgMSwgMSk7CisgIC8vIFVzZSBsdW1hIHJl
Y29uc3RydWN0aW9uIHRvIGdldCBiYWNrIG9yaWdpbmFsIHZhbHVlIGFjY29yZGluZyB0bworICAv
LyBJVFUtUiByZWMgQlQuNzA5CisgIHJldHVybiAocGl4ZWwuZGF0YVswXSAqIDAuMjEgKyBwaXhl
bC5kYXRhWzFdICogMC43MiArIHBpeGVsLmRhdGFbMl0gKiAwLjA3KTsKK30KKworYXN5bmMgZnVu
Y3Rpb24gZGV0ZWN0U2lnbmFsKHQsIHYsIHZhbHVlKSB7CisgIHdoaWxlICh0cnVlKSB7CisgICAg
Y29uc3Qgc2lnbmFsID0gZ2V0VmlkZW9TaWduYWwodik7CisgICAgaWYgKHNpZ25hbCAhPT0gbnVs
bCAmJiBzaWduYWwgPCB2YWx1ZSArIDEgJiYgc2lnbmFsID4gdmFsdWUgLSAxKSB7CisgICAgICBy
ZXR1cm47CisgICAgfQorICAgIC8vIFdlIHdvdWxkIGxpa2UgdG8gd2FpdCBmb3IgZWFjaCBuZXcg
ZnJhbWUgaW5zdGVhZCBoZXJlLAorICAgIC8vIGJ1dCB0aGVyZSBzZWVtcyB0byBiZSBubyBzdWNo
IGNhbGxiYWNrLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwg
MTAwKSk7CisgIH0KK30KKwogLy8gR2VuZXJhdGUgYSBNZWRpYVN0cmVhbSBiZWFyaW5nIHRoZSBz
cGVjaWZpZWQgdHJhY2tzLgogLy8KIC8vIEBwYXJhbSB7b2JqZWN0fSBbY2Fwc10KIC8vIEBwYXJh
bSB7Ym9vbGVhbn0gW2NhcHMuYXVkaW9dIC0gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGdl
bmVyYXRlZCBzdHJlYW0KIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxk
IGluY2x1ZGUgYW4gYXVkaW8gdHJhY2sKIC8vIEBwYXJhbSB7Ym9vbGVhbn0gW2NhcHMudmlkZW9d
IC0gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGdlbmVyYXRlZCBzdHJlYW0KLS8vICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGluY2x1ZGUgYSB2aWRlbyB0cmFjawor
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgaW5jbHVkZSBhIHZpZGVv
IHRyYWNrLCBvciBwYXJhbWV0ZXJzIGZvciB2aWRlbwogYXN5bmMgZnVuY3Rpb24gZ2V0Tm9pc2VT
dHJlYW0oY2FwcyA9IHt9KSB7CiAgIGlmICghdHJhY2tGYWN0b3JpZXMuY2FuQ3JlYXRlKGNhcHMp
KSB7CiAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKGNhcHMp
OwpAQCAtNDY4LDcgKzQ3MSw3IEBAIGFzeW5jIGZ1bmN0aW9uIGdldE5vaXNlU3RyZWFtKGNhcHMg
PSB7fSkgewogICB9CiAKICAgaWYgKGNhcHMudmlkZW8pIHsKLSAgICB0cmFja3MucHVzaCh0cmFj
a0ZhY3Rvcmllcy52aWRlbygpKTsKKyAgICB0cmFja3MucHVzaCh0cmFja0ZhY3Rvcmllcy52aWRl
byhjYXBzLnZpZGVvKSk7CiAgIH0KIAogICByZXR1cm4gbmV3IE1lZGlhU3RyZWFtKHRyYWNrcyk7
CkBAIC01MTMsMjAgKzUxNiwxOSBAQCBmdW5jdGlvbiBnZXRVc2VyTWVkaWFUcmFja3NBbmRTdHJl
YW1zKGNvdW50LCB0eXBlID0gJ2F1ZGlvJykgewogCiAvLyBQZXJmb3JtcyBhbiBvZmZlciBleGNo
YW5nZSBjYWxsZXIgLT4gY2FsbGVlLgogYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VPZmZlcihjYWxs
ZXIsIGNhbGxlZSkgewotICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigp
OwotICBhd2FpdCBjYWxsZXIuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7Ci0gIHJldHVybiBj
YWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBhd2FpdCBjYWxsZXIuc2V0TG9j
YWxEZXNjcmlwdGlvbihhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKSk7CisgIGF3YWl0IGNhbGxl
ZS5zZXRSZW1vdGVEZXNjcmlwdGlvbihjYWxsZXIubG9jYWxEZXNjcmlwdGlvbik7CiB9CiAvLyBQ
ZXJmb3JtcyBhbiBhbnN3ZXIgZXhjaGFuZ2UgY2FsbGVyIC0+IGNhbGxlZS4KIGFzeW5jIGZ1bmN0
aW9uIGV4Y2hhbmdlQW5zd2VyKGNhbGxlciwgY2FsbGVlKSB7Ci0gIGNvbnN0IGFuc3dlciA9IGF3
YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKLSAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3Jp
cHRpb24oYW5zd2VyKTsKLSAgcmV0dXJuIGNhbGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3
ZXIpOworICBhd2FpdCBjYWxsZWUuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBjYWxsZWUuY3Jl
YXRlQW5zd2VyKCkpOworICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24oY2FsbGVl
LmxvY2FsRGVzY3JpcHRpb24pOwogfQogYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VPZmZlckFuc3dl
cihjYWxsZXIsIGNhbGxlZSkgewogICBhd2FpdCBleGNoYW5nZU9mZmVyKGNhbGxlciwgY2FsbGVl
KTsKLSAgcmV0dXJuIGV4Y2hhbmdlQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKKyAgYXdhaXQgZXhj
aGFuZ2VBbnN3ZXIoY2FsbGVyLCBjYWxsZWUpOwogfQorCiAvLyBUaGUgcmV0dXJuZWQgcHJvbWlz
ZSBpcyByZXNvbHZlZCB3aXRoIGNhbGxlcidzIG9udHJhY2sgZXZlbnQuCiBhc3luYyBmdW5jdGlv
biBleGNoYW5nZUFuc3dlckFuZExpc3RlblRvT250cmFjayh0LCBjYWxsZXIsIGNhbGxlZSkgewog
ICBjb25zdCBvbnRyYWNrUHJvbWlzZSA9IGFkZEV2ZW50TGlzdGVuZXJQcm9taXNlKHQsIGNhbGxl
ciwgJ3RyYWNrJyk7CkBAIC01ODIsMTQgKzU4NCwxMyBAQCBjbGFzcyBSZXNvbHZlciBleHRlbmRz
IFByb21pc2UgewogICB9CiB9CiAKLWZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXJQcm9taXNlKHQs
IHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
LCByZWplY3QpID0+IHsKLSAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCB0LnN0ZXBf
ZnVuYyhlID0+IHsKLSAgICAgIGlmIChsaXN0ZW5lciAhPSB1bmRlZmluZWQpCi0gICAgICAgIGUg
PSBsaXN0ZW5lcihlKTsKLSAgICAgIHJlc29sdmUoZSk7Ci0gICAgfSkpOwotICB9KTsKK2Z1bmN0
aW9uIGFkZEV2ZW50TGlzdGVuZXJQcm9taXNlKHQsIG9iaiwgdHlwZSwgbGlzdGVuZXIpIHsKKyAg
aWYgKCFsaXN0ZW5lcikgeworICAgIHJldHVybiB3YWl0VW50aWxFdmVudChvYmosIHR5cGUpOwor
ICB9CisgIHJldHVybiBuZXcgUHJvbWlzZShyID0+IG9iai5hZGRFdmVudExpc3RlbmVyKHR5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuc3RlcF9m
dW5jKGUgPT4gcihsaXN0ZW5lcihlKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7b25jZTogdHJ1ZX0pKTsKIH0KIAogZnVuY3Rpb24gY3JlYXRlUGVl
ckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KSB7CkBAIC02MTYsNiArNjE3LDE4IEBAIGZ1bmN0aW9u
IGZpbmRUcmFuc2NlaXZlckZvclNlbmRlcihwYywgc2VuZGVyKSB7CiAgIHJldHVybiBudWxsOwog
fQogCitmdW5jdGlvbiBwcmVmZXJDb2RlYyh0cmFuc2NlaXZlciwgbWltZVR5cGUsIHNkcEZtdHBM
aW5lKSB7CisgIGNvbnN0IHtjb2RlY3N9ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcyh0
cmFuc2NlaXZlci5yZWNlaXZlci50cmFjay5raW5kKTsKKyAgLy8gc2RwRm10cExpbmUgaXMgb3B0
aW9uYWwsIHBpY2sgdGhlIGZpcnN0IHBhcnRpYWwgbWF0Y2ggaWYgbm90IGdpdmVuLgorICBjb25z
dCBzZWxlY3RlZENvZGVjSW5kZXggPSBjb2RlY3MuZmluZEluZGV4KGMgPT4geworICAgIHJldHVy
biBjLm1pbWVUeXBlID09PSBtaW1lVHlwZSAmJiAoYy5zZHBGbXRwTGluZSA9PT0gc2RwRm10cExp
bmUgfHwgIXNkcEZtdHBMaW5lKTsKKyAgfSk7CisgIGNvbnN0IHNlbGVjdGVkQ29kZWMgPSBjb2Rl
Y3Nbc2VsZWN0ZWRDb2RlY0luZGV4XTsKKyAgY29kZWNzLnNsaWNlKHNlbGVjdGVkQ29kZWNJbmRl
eCwgMSk7CisgIGNvZGVjcy51bnNoaWZ0KHNlbGVjdGVkQ29kZWMpOworICByZXR1cm4gdHJhbnNj
ZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpOworfQorCiAvLyBDb250YWlucyBhIHNl
dCBvZiB2YWx1ZXMgYW5kIHdpbGwgeWVsbCBhdCB5b3UgaWYgeW91IHRyeSB0byBhZGQgYSB2YWx1
ZSB0d2ljZS4KIGNsYXNzIFVuaXF1ZVNldCBleHRlbmRzIFNldCB7CiAgIGNvbnN0cnVjdG9yKGl0
ZW1zKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZGlzY29u
bmVjdGVkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0
ZS1kaXNjb25uZWN0ZWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5OTMxNzdhMTMy
NDk3Zjk0MDg4NjExZGQ1NGI1OTAyYWY3MDI1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZGlzY29ubmVjdGVkLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJQ0UgZ29lcyB0byBkaXNjb25uZWN0ZWQgaWYgdGhlIG90
aGVyIHNpZGUgZ29lcyBhd2F5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0
aW9uU3RhdGUtZGlzY29ubmVjdGVkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0
aW9uU3RhdGUtZGlzY29ubmVjdGVkLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY1NWEwYzAwMzUx
MmY5OGRjOTZkMTFjMDdlOGE1MDk5ZWQxZjVlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS1kaXNjb25uZWN0ZWQuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDMwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90
b3R5cGUuaWNlQ29ubmVjdGlvblN0YXRlIC0gZGlzY29ubmVjdGlvbjwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
UlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ug
c3RyaWN0JzsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGNhbGxlciA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVy
LmNsb3NlKCkpOworICAgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOnRydWV9KTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3Ao
KSkpOworICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgY2FsbGVy
LmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhjYWxs
ZXIsIGNhbGxlZSk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxl
ZSk7CisKKyAgICBhd2FpdCBsaXN0ZW5Ub0ljZUNvbm5lY3RlZChjYWxsZXIpOworCisgICAgY2Fs
bGVlLmNsb3NlKCk7CisgICAgYXdhaXQgd2FpdEZvckljZVN0YXRlQ2hhbmdlKGNhbGxlciwgWydk
aXNjb25uZWN0ZWQnLCAnZmFpbGVkJ10pOworICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGV2ZW50
dWFsbHkgdHJhbnNpdGlvbiB0byBmYWlsZWQgYnV0IHRoYXQgdGFrZXMKKyAgICAvLyBzb21ld2hh
dCBsb25nICgxNS0zMHMpIHNvIGlzIG5vdCB0ZXN0YWJsZS4KKyAgfSwgJ0lDRSBnb2VzIHRvIGRp
c2Nvbm5lY3RlZCBpZiB0aGUgb3RoZXIgc2lkZSBnb2VzIGF3YXknKTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAppbmRleCA4YWNhYmY0OTc2NmJh
MDg5OTliODg1N2Q4Y2I2NTg5ZDE1ODdjODQzLi5kMzEyNjA2NWI5OTc3OGYzMmI1ZTMxMzIxMTA4
NWQ1NWMwNjRmZTFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRt
bApAQCAtMSw1ICsxLDYgQEAKIDwhZG9jdHlwZSBodG1sPgogPG1ldGEgY2hhcnNldD11dGYtOD4K
KzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHRpdGxlPlJUQ1BlZXJDb25u
ZWN0aW9uLnByb3RvdHlwZS5pY2VDb25uZWN0aW9uU3RhdGU8L3RpdGxlPgogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpAQCAtMTAsMTAgKzExLDYgQEAK
ICAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKICAgLy8g
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMu
aHRtbAogCi0gIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZy
b20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgotICAvLyBleGNoYW5nZUljZUNhbmRpZGF0
ZXMKLSAgLy8gZG9TaWduYWxpbmdIYW5kc2hha2UKLQogICAvKgogICAgIDQuMy4yLiAgSW50ZXJm
YWNlIERlZmluaXRpb24KICAgICAgIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiA6IEV2ZW50
VGFyZ2V0IHsKQEAgLTEyNSw2ICsxMjIsOCBAQAogICAgICAgICBhc3NlcnRfdHJ1ZShoYWRfY2hl
Y2tpbmcsICdzdGF0ZSBzaG91bGQgcGFzcyBjaGVja2luZyBiZWZvcmUnICsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnIHJlYWNoaW5nIGNvbm5lY3RlZCBvciBjb21wbGV0ZWQn
KTsKICAgICAgICAgdC5kb25lKCk7CisgICAgICB9IGVsc2UgaWYgKGljZUNvbm5lY3Rpb25TdGF0
ZSA9PT0gJ2ZhaWxlZCcpIHsKKyAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiSUNFIHNob3VsZCBu
b3QgZmFpbCIpOwogICAgICAgfQogICAgIH0pOwogCkBAIC0xMzMsNyArMTMyLDcgQEAKICAgICBw
YzEuYWRkRXZlbnRMaXN0ZW5lcignaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlJywgb25JY2VDb25u
ZWN0aW9uU3RhdGVDaGFuZ2UpOwogCiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMy
KTsKLSAgICBkb1NpZ25hbGluZ0hhbmRzaGFrZShwYzEsIHBjMik7CisgICAgZXhjaGFuZ2VPZmZl
ckFuc3dlcihwYzEsIHBjMik7CiAgIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5l
bCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBvciAnICsKICAgICAgJ2NvbXBsZXRl
ZCBjb25uZWN0aW9uIHN0YXRlJyk7CiAKQEAgLTE0OCwyNSArMTQ3LDI4IEBAIGFzeW5jX3Rlc3Qo
dCA9PiB7CiAgICAgICBjb25zdCB7IGljZUNvbm5lY3Rpb25TdGF0ZSB9ID0gcGMxOwogCiAgICAg
ICBpZihpY2VDb25uZWN0aW9uU3RhdGUgPT09ICdjaGVja2luZycpIHsKLSAgICAgICAgY29uc3Qg
aWNlVHJhbnNwb3J0ID0gcGMxLnNjdHAudHJhbnNwb3J0LnRyYW5zcG9ydDsKKyAgICAgICAgY29u
c3QgaWNlVHJhbnNwb3J0ID0gcGMxLnNjdHAudHJhbnNwb3J0LmljZVRyYW5zcG9ydDsKIAogICAg
ICAgICBhc3NlcnRfZXF1YWxzKGljZVRyYW5zcG9ydC5zdGF0ZSwgJ2NoZWNraW5nJywKICAgICAg
ICAgICAnRXhwZWN0IElDRSB0cmFuc3BvcnQgdG8gYmUgaW4gY2hlY2tpbmcgc3RhdGUgd2hlbicg
KwogICAgICAgICAgICcgaWNlQ29ubmVjdGlvblN0YXRlIGlzIGNoZWNraW5nJyk7CiAKICAgICAg
IH0gZWxzZSBpZihpY2VDb25uZWN0aW9uU3RhdGUgPT09ICdjb25uZWN0ZWQnKSB7Ci0gICAgICAg
IGNvbnN0IGljZVRyYW5zcG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC50cmFuc3BvcnQ7CisgICAg
ICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9IHBjMS5zY3RwLnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQ7
CiAKICAgICAgICAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICdjb25uZWN0ZWQn
LAogICAgICAgICAgICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQgc3Rh
dGUgd2hlbicgKwogICAgICAgICAgICcgaWNlQ29ubmVjdGlvblN0YXRlIGlzIGNvbm5lY3RlZCcp
OwotCisgICAgICAgIHQuZG9uZSgpOwogICAgICAgfSBlbHNlIGlmKGljZUNvbm5lY3Rpb25TdGF0
ZSA9PT0gJ2NvbXBsZXRlZCcpIHsKLSAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gcGMxLnNj
dHAudHJhbnNwb3J0LnRyYW5zcG9ydDsKKyAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gcGMx
LnNjdHAudHJhbnNwb3J0LmljZVRyYW5zcG9ydDsKIAogICAgICAgICBhc3NlcnRfZXF1YWxzKGlj
ZVRyYW5zcG9ydC5zdGF0ZSwgJ2NvbXBsZXRlZCcsCiAgICAgICAgICAgJ0V4cGVjdCBJQ0UgdHJh
bnNwb3J0IHRvIGJlIGluIGNvbm5lY3RlZCBzdGF0ZSB3aGVuJyArCiAgICAgICAgICAgJyBpY2VD
b25uZWN0aW9uU3RhdGUgaXMgY29tcGxldGVkJyk7CisgICAgICAgIHQuZG9uZSgpOworICAgICAg
fSBlbHNlIGlmIChpY2VDb25uZWN0aW9uU3RhdGUgPT09ICdmYWlsZWQnKSB7CisgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoIklDRSBzaG91bGQgbm90IGZhaWwiKTsKICAgICAgIH0KICAgICB9KTsK
IApAQCAtMTc4LDEwICsxODAsNDIgQEAgYXN5bmNfdGVzdCh0ID0+IHsKICAgICBwYzEuYWRkRXZl
bnRMaXN0ZW5lcignaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlJywgb25JY2VDb25uZWN0aW9uU3Rh
dGVDaGFuZ2UpOwogCiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKLSAgICBk
b1NpZ25hbGluZ0hhbmRzaGFrZShwYzEsIHBjMik7CisgICAgZXhjaGFuZ2VPZmZlckFuc3dlcihw
YzEsIHBjMik7CiAgIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5lbCBzaG91bGQg
ZXZlbnR1YWxseSAnICsKICAgICAgJ2hhdmUgY29ubmVjdGVkIGNvbm5lY3Rpb24gc3RhdGUnKTsK
IAorICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Cisg
ICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lz
ZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5n
ZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHN0cmVhbS5n
ZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHBjMS5hZGRUcmFjayh0cmFjaywgc3RyZWFtKSk7
CisKKyAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICAgIGV4Y2hhbmdlT2Zm
ZXJBbnN3ZXIocGMxLCBwYzIpOworICAgIGF3YWl0IGxpc3RlblRvSWNlQ29ubmVjdGVkKHBjMSk7
CisgIH0sICdjb25uZWN0aW9uIHdpdGggYXVkaW8gdHJhY2sgc2hvdWxkIGV2ZW50dWFsbHkgJyAr
CisgICAgICdoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlJyk7CisKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlv
OiB0cnVlLCB2aWRlbzp0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0
VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBzdHJlYW0uZ2V0
VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiBwYzEuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSkpOwor
CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgICBleGNoYW5nZU9mZmVy
QW5zd2VyKHBjMSwgcGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0ljZUNvbm5lY3RlZChwYzEpOwor
ICB9LCAnY29ubmVjdGlvbiB3aXRoIGF1ZGlvIGFuZCB2aWRlbyB0cmFja3Mgc2hvdWxkIGV2ZW50
dWFsbHkgJyArCisgICAgICdoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlJyk7CisKICAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOwpA
QCAtMTg5LDExICsyMjMsMTIgQEAgYXN5bmNfdGVzdCh0ID0+IHsKICAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKIAogICAgIGNhbGxlci5hZGRUcmFuc2NlaXZlcignYXVk
aW8nLCB7ZGlyZWN0aW9uOidyZWN2b25seSd9KTsKLSAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0pOworICAgIGNv
bnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzp0cnVlfSk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFj
ay5zdG9wKCkpKTsKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICAg
IGNhbGxlZS5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKICAgICBleGNoYW5nZUljZUNhbmRpZGF0
ZXMoY2FsbGVyLCBjYWxsZWUpOwotICAgIGF3YWl0IGRvU2lnbmFsaW5nSGFuZHNoYWtlKGNhbGxl
ciwgY2FsbGVlKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVl
KTsKIAogICAgIGFzc2VydF9lcXVhbHMoY2FsbGVyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwg
MSk7CiAgICAgY29uc3QgW3RyYW5zY2VpdmVyXSA9IGNhbGxlci5nZXRUcmFuc2NlaXZlcnMoKTsK
QEAgLTI0Miw1ICsyNzcsMTI0IEBAIGFzeW5jX3Rlc3QodCA9PiB7CiAKICAgICAgIGNsb3NlZAog
ICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBzaHV0IGRvd24gYW5kIGlzIG5vIGxvbmdl
ciByZXNwb25kaW5nIHRvIFNUVU4gcmVxdWVzdHMuCi0gICAqLworICAqLworCitmb3IgKGxldCBi
dW5kbGVfcG9saWN5IG9mIFsnYmFsYW5jZWQnLCAnbWF4LWJ1bmRsZScsICdtYXgtY29tcGF0J10p
IHsKKworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgICAgY29uc3QgY2FsbGVy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtidW5kbGVQb2xpY3k6IGJ1bmRsZV9wb2xpY3l9KTsK
KyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICAgICAgY29uc3Qg
c3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oCisgICAgICAgICAge2F1ZGlvOiB0cnVlLCB2
aWRlbzp0cnVlfSk7CisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3Mo
KS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgICAgY29uc3QgW3RyYWNrMSwg
dHJhY2syXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKKyAgICAgIGNvbnN0IHNlbmRlcjEgPSBjYWxs
ZXIuYWRkVHJhY2sodHJhY2sxKTsKKyAgICAgIGNvbnN0IHNlbmRlcjIgPSBjYWxsZXIuYWRkVHJh
Y2sodHJhY2syKTsKKyAgICAgIGNhbGxlci5jcmVhdGVEYXRhQ2hhbm5lbCgnZGF0YWNoYW5uZWwn
KTsKKyAgICAgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgICAgICBleGNoYW5nZUljZUNh
bmRpZGF0ZXMoY2FsbGVyLCBjYWxsZWUpOworICAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxs
ZXIuY3JlYXRlT2ZmZXIoKTsKKyAgICAgIGF3YWl0IGNhbGxlci5zZXRMb2NhbERlc2NyaXB0aW9u
KG9mZmVyKTsKKyAgICAgIGNvbnN0IFtjYWxsZXJfdHJhbnNjZWl2ZXIxLCBjYWxsZXJfdHJhbnNj
ZWl2ZXIyXSA9IGNhbGxlci5nZXRUcmFuc2NlaXZlcnMoKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2VuZGVyMS50cmFuc3BvcnQsIGNhbGxlcl90cmFuc2NlaXZlcjEuc2VuZGVyLnRyYW5zcG9ydCk7
CisgICAgICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICAgICAg
Y29uc3QgW2NhbGxlZV90cmFuc2NlaXZlcjEsIGNhbGxlZV90cmFuc2NlaXZlcjJdID0gY2FsbGVl
LmdldFRyYW5zY2VpdmVycygpOworICAgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNy
ZWF0ZUFuc3dlcigpOworICAgICAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5z
d2VyKTsKKyAgICAgIGF3YWl0IGNhbGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwor
ICAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2Ugc2hvdWxkIGhhdmUgYSBzaW5nbGUgSUNFIHRyYW5z
cG9ydCwgYW5kIGl0CisgICAgICAvLyBzaG91bGQgZXZlbnR1YWxseSBnZXQgdG8gdGhlICJjb25u
ZWN0ZWQiIHN0YXRlLgorICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKGNhbGxlcl90cmFuc2NlaXZl
cjEucmVjZWl2ZXIudHJhbnNwb3J0LmljZVRyYW5zcG9ydCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAnY29ubmVjdGVkJyk7CisgICAgICAvLyBUaGUgUGVlckNvbm5lY3Rpb24ncyBpY2VDb25u
ZWN0aW9uU3RhdGUgc2hvdWxkIHRoZXJlZm9yZSBiZSAnY29ubmVjdGVkJworICAgICAgYXNzZXJ0
X2VxdWFscyhjYWxsZXIuaWNlQ29ubmVjdGlvblN0YXRlLCAnY29ubmVjdGVkJywKKyAgICAgICAg
ICAgICAgICAgICAgJ1BDLmljZUNvbm5lY3Rpb25TdGF0ZTonKTsKKyAgICB9LCAnaWNlQ29ubmVj
dGlvblN0YXRlIGNoYW5nZXMgYXQgdGhlIHJpZ2h0IHRpbWUsIHdpdGggYnVuZGxlIHBvbGljeSAn
ICsKKyAgICAgICAgICAgICAgICAgYnVuZGxlX3BvbGljeSk7Cit9CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIHBj
MS5vbmljZWNhbmRpZGF0ZSA9IGFzeW5jIGUgPT4geworICAgIGlmIChlLmNhbmRpZGF0ZSkgewor
ICAgICAgYXdhaXQgcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7CisgICAgfQorICB9
OworICBwYzEuY2FuZGlkYXRlQnVmZmVyID0gW107CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGUg
PT4geworICAgIC8vIERvbid0IGFkZCBjYW5kaWRhdGUgaWYgY2FuZGlkYXRlIGJ1ZmZlciBpcyBh
bHJlYWR5IHVzZWQKKyAgICBpZiAoZS5jYW5kaWRhdGUgJiYgcGMxLmNhbmRpZGF0ZUJ1ZmZlcikg
eworICAgICAgcGMxLmNhbmRpZGF0ZUJ1ZmZlci5wdXNoKGUuY2FuZGlkYXRlKQorICAgIH0KKyAg
fTsKKyAgcGMxLmljZVN0YXRlcyA9IFtwYzEuaWNlQ29ubmVjdGlvblN0YXRlXTsKKyAgcGMyLmlj
ZVN0YXRlcyA9IFtwYzIuaWNlQ29ubmVjdGlvblN0YXRlXTsKKyAgcGMxLm9uaWNlY29ubmVjdGlv
bnN0YXRlY2hhbmdlID0gKCkgPT4geworICAgIHBjMS5pY2VTdGF0ZXMucHVzaChwYzEuaWNlQ29u
bmVjdGlvblN0YXRlKTsKKyAgfTsKKyAgcGMyLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0g
KCkgPT4geworICAgIHBjMi5pY2VTdGF0ZXMucHVzaChwYzIuaWNlQ29ubmVjdGlvblN0YXRlKTsK
KyAgfTsKKworICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRp
bzogdHJ1ZSwgdmlkZW86IHRydWV9KTsKKyAgY29uc3QgbG9jYWxTdHJlYW0yID0gYXdhaXQgZ2V0
Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pOworICBjb25zdCByZW1vdGVT
dHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfSk7
CisgIGZvciAoY29uc3Qgc3RyZWFtIG9mIFtsb2NhbFN0cmVhbSwgbG9jYWxTdHJlYW0yLCByZW1v
dGVTdHJlYW1dKSB7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCku
Zm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgfQorICBsb2NhbFN0cmVhbS5nZXRU
cmFja3MoKS5mb3JFYWNoKHQgPT4gcGMxLmFkZFRyYWNrKHQsIGxvY2FsU3RyZWFtKSk7CisgIGxv
Y2FsU3RyZWFtMi5nZXRUcmFja3MoKS5mb3JFYWNoKHQgPT4gcGMxLmFkZFRyYWNrKHQsIGxvY2Fs
U3RyZWFtMikpOworICByZW1vdGVTdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0ID0+IHBjMi5h
ZGRUcmFjayh0LCByZW1vdGVTdHJlYW0pKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3Jl
YXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAg
YXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3ZXIgPSBh
d2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9u
KGFuc3dlcik7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworICBw
YzEuY2FuZGlkYXRlQnVmZmVyLmZvckVhY2goYyA9PiBwYzEuYWRkSWNlQ2FuZGlkYXRlKGMpKTsK
KyAgZGVsZXRlIHBjMS5jYW5kaWRhdGVCdWZmZXI7CisgIGF3YWl0IGxpc3RlblRvSWNlQ29ubmVj
dGVkKHBjMSk7CisgIGF3YWl0IGxpc3RlblRvSWNlQ29ubmVjdGVkKHBjMik7CisgIC8vIFdoaWxl
IHdlJ3JlIHdhaXRpbmcgZm9yIHBjMiwgcGMxIG1heSBvciBtYXkgbm90IGhhdmUgdHJhbnNpdGlv
bmVkCisgIC8vIHRvICJjb21wbGV0ZWQiIHN0YXRlLCBzbyBhbGxvdyBmb3IgYm90aCBjYXNlcy4K
KyAgaWYgKHBjMS5pY2VTdGF0ZXMubGVuZ3RoID09IDMpIHsKKyAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKHBjMS5pY2VTdGF0ZXMsIFsnbmV3JywgJ2NoZWNraW5nJywgJ2Nvbm5lY3RlZCddKTsKKyAg
fSBlbHNlIHsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBjMS5pY2VTdGF0ZXMsIFsnbmV3Jywg
J2NoZWNraW5nJywgJ2Nvbm5lY3RlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2NvbXBsZXRlZCddKTsKKyAgfQorICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBjMi5p
Y2VTdGF0ZXMsIFsnbmV3JywgJ2NoZWNraW5nJywgJ2Nvbm5lY3RlZCddKTsKK30sICdSZXNwb25k
ZXIgSUNFIGNvbm5lY3Rpb24gc3RhdGUgYmVoYXZlcyBhcyBleHBlY3RlZCcpOworCisvKgorICBU
ZXN0IGNhc2UgZm9yIHN0ZXAgMTEgb2YgUGVlckNvbm5lY3Rpb24uY2xvc2UoKS4KKyAgLi4uCisg
IDExLiBTZXQgY29ubmVjdGlvbidzIElDRSBjb25uZWN0aW9uIHN0YXRlIHRvICJjbG9zZWQiLiBU
aGlzIGRvZXMgbm90IGludm9rZQorICAgICAgdGhlICJ1cGRhdGUgdGhlIElDRSBjb25uZWN0aW9u
IHN0YXRlIiBwcm9jZWR1cmUsIGFuZCBkb2VzIG5vdCBmaXJlIGFueQorICAgICAgZXZlbnQuCisg
IC4uLgorKi8KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwor
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3Qgc3RyZWFtID0g
YXdhaXQgZ2V0Tm9pc2VTdHJlYW0oeyBhdWRpbzogdHJ1ZSB9KTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsK
KworICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiBwYzEuYWRkVHJhY2sodHJh
Y2ssIHN0cmVhbSkpOworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBleGNo
YW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXdhaXQgbGlzdGVuVG9JY2VDb25uZWN0ZWQo
cGMyKTsKKworICBwYzIub25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2UgPSB0LnVucmVhY2hlZF9m
dW5jKCk7CisgIHBjMi5jbG9zZSgpOworICBhc3NlcnRfdHJ1ZShwYzIuaWNlQ29ubmVjdGlvblN0
YXRlID09PSAnY2xvc2VkJyk7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVv
dXQociwgMTAwKSk7Cit9LCAnQ2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmly
ZSBpY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2UgZXZlbnQnKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNl
R2F0aGVyaW5nU3RhdGUuaHRtbAppbmRleCBlNmQ4ZDA2MjcwMWE3OTVhMjg5YWQwMTFmYTRjZmFl
MTQzYTM0MmU5Li4zZjAxMjhiYjg0M2RkYmRkMTI5ZjhhMTBiNjAxYjIxYzIxY2U3ZGU0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtbAog
CiAgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gUlRD
UGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgotICAvLyBkb1NpZ25hbGluZ0hhbmRzaGFrZQorICAv
LyBleGNoYW5nZU9mZmVyQW5zd2VyCiAgIC8vIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcwogICAvLyBn
ZW5lcmF0ZUF1ZGlvUmVjZWl2ZU9ubHlPZmZlcgogCkBAIC02MCwxNiArNjAsMjEgQEAKIAogICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAKKyAgICBsZXQgcmVhY2hlZEdhdGhl
cmluZyA9IGZhbHNlOwogICAgIGNvbnN0IG9uSWNlR2F0aGVyaW5nU3RhdGVDaGFuZ2UgPSB0LnN0
ZXBfZnVuYygoKSA9PiB7CiAgICAgICBjb25zdCB7IGljZUdhdGhlcmluZ1N0YXRlIH0gPSBwYzsK
IAotICAgICAgaWYoaWNlR2F0aGVyaW5nU3RhdGUgPT09ICdjb21wbGV0ZScpIHsKKyAgICAgIGlm
KGljZUdhdGhlcmluZ1N0YXRlID09PSAnZ2F0aGVyaW5nJykgeworICAgICAgICByZWFjaGVkR2F0
aGVyaW5nID0gdHJ1ZTsKKyAgICAgIH0gZWxzZSBpZihpY2VHYXRoZXJpbmdTdGF0ZSA9PT0gJ2Nv
bXBsZXRlJykgeworICAgICAgICBhc3NlcnRfdHJ1ZShyZWFjaGVkR2F0aGVyaW5nLCAnaWNlR2F0
aGVyaW5nU3RhdGUgc2hvdWxkIHJlYWNoIGdhdGhlcmluZyBiZWZvcmUgY29tcGxldGUnKTsKICAg
ICAgICAgdC5kb25lKCk7CiAgICAgICB9CiAgICAgfSk7CiAKICAgICBhc3NlcnRfZXF1YWxzKHBj
Lm9uaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UsIG51bGwsCiAgICAgICAnRXhwZWN0IGNvbm5lY3Rp
b24gdG8gaGF2ZSBpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSBldmVudCcpOworICAgIGFzc2VydF9l
cXVhbHMocGMuaWNlR2F0aGVyaW5nU3RhdGUsICduZXcnKTsKIAogICAgIHBjLmFkZEV2ZW50TGlz
dGVuZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgb25JY2VHYXRoZXJpbmdTdGF0ZUNoYW5n
ZSk7CiAKQEAgLTc5LDYgKzg0LDEzMSBAQAogICAgICAgYXNzZXJ0X3VucmVhY2hlZChgVW5oYW5k
bGVkIHJlamVjdGlvbiAke2Vyci5uYW1lfTogJHtlcnIubWVzc2FnZX1gKSkpOwogICB9LCAnaWNl
R2F0aGVyaW5nU3RhdGUgc2hvdWxkIGV2ZW50dWFsbHkgYmVjb21lIGNvbXBsZXRlIGFmdGVyIHNl
dExvY2FsRGVzY3JpcHRpb24nKTsKIAorICBjb25zdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRp
b25zID0gYXN5bmMgKHBjLCAuLi5zdGF0ZXMpID0+IHsKKyAgICBmb3IgKGNvbnN0IHN0YXRlIG9m
IHN0YXRlcykgeworICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICBwYy5hZGRFdmVudExpc3RlbmVyKCdpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZScs
ICgpID0+IHsKKyAgICAgICAgICBpZiAocGMuaWNlR2F0aGVyaW5nU3RhdGUgPT0gc3RhdGUpIHsK
KyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
cmVqZWN0KGBVbmV4cGVjdGVkIGdhdGhlcmluZyBzdGF0ZTogJHtwYy5pY2VHYXRoZXJpbmdTdGF0
ZX0sIHdhcyBleHBlY3RpbmcgJHtzdGF0ZX1gKTsKKyAgICAgICAgICB9CisgICAgICAgIH0sIHtv
bmNlOiB0cnVlfSk7CisgICAgICB9KTsKKyAgICB9CisgIH07CisKKyAgY29uc3QgaW5pdGlhbE9m
ZmVyQW5zd2VyID0gYXN5bmMgKHBjMSwgcGMyLCBvZmZlck9wdGlvbnMpID0+IHsKKyAgICBhd2Fp
dCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbigKKyAgICAgIGF3YWl0IHBjMS5jcmVhdGVPZmZlcihv
ZmZlck9wdGlvbnMpKTsKKyAgICBjb25zdCBwYzFUcmFuc2l0aW9ucyA9IGljZUdhdGhlcmluZ1N0
YXRlVHJhbnNpdGlvbnMocGMxLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRlJyk7CisgICAgYXdhaXQg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhd2Fp
dCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICAg
IGNvbnN0IHBjMlRyYW5zaXRpb25zID0gaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzIs
ICdnYXRoZXJpbmcnLCAnY29tcGxldGUnKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgYXdhaXQgcGMxVHJhbnNpdGlvbnM7
CisgICAgYXdhaXQgcGMyVHJhbnNpdGlvbnM7CisgIH07CisKKyAgY29uc3QgZXhwZWN0Tm9Nb3Jl
R2F0aGVyaW5nU3RhdGVDaGFuZ2VzID0gYXN5bmMgKHQsIHBjKSA9PiB7CisgICAgcGMub25pY2Vn
YXRoZXJpbmdzdGF0ZWNoYW5nZSA9IHQuc3RlcF9mdW5jKCgpID0+IGFzc2VydF91bnJlYWNoZWQo
J1Nob3VsZCBub3QgZ2V0IGFuIGljZWdhdGhlcmluZ3N0YXRlY2hhbmdlIHJpZ2h0IG5vdyEnKSk7
CisgIH07CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3Nl
KCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICAgIGF3YWl0IGluaXRpYWxPZmZlckFuc3dl
cihwYzEsIHBjMiwge29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KTsKKworICAgIGV4cGVjdE5v
TW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyh0LCBwYzEpOworICAgIGV4cGVjdE5vTW9yZUdhdGhl
cmluZ1N0YXRlQ2hhbmdlcyh0LCBwYzIpOworCisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERl
c2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKKworICAgIGF3YWl0IG5ldyBQcm9t
aXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgNTAwKSk7CisgIH0sICdzZXRMb2NhbERlc2NyaXB0
aW9uKHJlb2ZmZXIpIHdpdGggbm8gbmV3IHRyYW5zcG9ydHMgc2hvdWxkIG5vdCBjYXVzZSBpY2VH
YXRoZXJpbmdTdGF0ZSB0byBjaGFuZ2UnKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgICAgYXdh
aXQgaW5pdGlhbE9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1
ZX0pOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVP
ZmZlcih7aWNlUmVzdGFydDogdHJ1ZX0pKTsKKyAgICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRy
YW5zaXRpb25zKHBjMSwgJ2dhdGhlcmluZycsICdjb21wbGV0ZScpOworICAgIGV4cGVjdE5vTW9y
ZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyh0LCBwYzEpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERl
c2NyaXB0aW9uKHt0eXBlOiAncm9sbGJhY2snfSk7CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9
PiB0LnN0ZXBfdGltZW91dChyLCAxMDAwKSk7CisgIH0sICdyb2xsaW5nIGJhY2sgYW4gSUNFIHJl
c3RhcnQgd2hlbiBnYXRoZXJpbmcgaXMgY29tcGxldGUgc2hvdWxkIG5vdCByZXN1bHQgaW4gaWNl
R2F0aGVyaW5nU3RhdGUgY2hhbmdlcycpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBhd2Fp
dCBpbml0aWFsT2ZmZXJBbnN3ZXIocGMxLCBwYzIsIHtvZmZlclRvUmVjZWl2ZUF1ZGlvOnRydWV9
KTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2Zm
ZXIoe2ljZVJlc3RhcnQ6IHRydWV9KSk7CisgICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFu
c2l0aW9ucyhwYzEsICdnYXRoZXJpbmcnLCAnY29tcGxldGUnKTsKKyAgfSwgJ3NldExvY2FsRGVz
Y3JpcHRpb24ocmVvZmZlcikgd2l0aCBhIG5ldyB0cmFuc3BvcnQgc2hvdWxkIGNhdXNlIGljZUdh
dGhlcmluZ1N0YXRlIHRvIGdvIHRvICJjaGVja2luZyIgYW5kIHRoZW4gImNvbXBsZXRlIicpOwor
CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0ZUNoYW5n
ZXModCwgcGMyKTsKKyAgICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7b2Zm
ZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbihvZmZlcik7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsK
KyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsK
KyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICB9LCAnc1JEIGRv
ZXMgbm90IGNhdXNlIElDRSBnYXRoZXJpbmcgc3RhdGUgY2hhbmdlcycpCisKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBhd2FpdCBwYy5zZXRM
b2NhbERlc2NyaXB0aW9uKAorICAgICAgYXdhaXQgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNl
aXZlQXVkaW86IHRydWV9KSk7CisgICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9u
cyhwYywgJ2dhdGhlcmluZycsICdjb21wbGV0ZScpOworICAgIGF3YWl0IHBjLnNldExvY2FsRGVz
Y3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsKKyAgICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0
ZVRyYW5zaXRpb25zKHBjLCAnbmV3Jyk7CisgIH0sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxi
YWNrKSBvZiBvcmlnaW5hbCBvZmZlciBzaG91bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8g
cmVhY2ggIm5ldyIgd2hlbiBzdGFydGluZyBpbiAiY29tcGxldGUiJyk7CisKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBhd2FpdCBwYy5zZXRM
b2NhbERlc2NyaXB0aW9uKAorICAgICAgYXdhaXQgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNl
aXZlQXVkaW86IHRydWV9KSk7CisgICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9u
cyhwYywgJ2dhdGhlcmluZycpOworICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oe3R5
cGU6ICdyb2xsYmFjayd9KTsKKyAgICAvLyBXZSBtaWdodCBnbyBkaXJlY3RseSB0byAnbmV3Jywg
b3Igd2UgbWlnaHQgZ28gdG8gJ2NvbXBsZXRlJyBmaXJzdCwKKyAgICAvLyBkZXBlbmRpbmcgb24g
dGltaW5nLiBBbGxvdyBlaXRoZXIuCisgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2Uu
YWxsU2V0dGxlZChbCisgICAgICBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnbmV3
JyksCisgICAgICBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnY29tcGxldGUnLCAn
bmV3JyldKTsKKyAgICBhc3NlcnRfdHJ1ZShyZXN1bHRzLnNvbWUocmVzdWx0ID0+IHJlc3VsdC5z
dGF0dXMgPT0gJ2Z1bGZpbGxlZCcpLAorICAgICAgJ0lDRSBnYXRoZXJpbmcgc3RhdGUgc2hvdWxk
IGdvIGJhY2sgdG8gIm5ldyIsIHBvc3NpYmx5IHRocm91Z2ggImNvbXBsZXRlIicpOworICB9LCAn
c2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykgb2Ygb3JpZ2luYWwgb2ZmZXIgc2hvdWxkIGNh
dXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIHJlYWNoICJuZXciIHdoZW4gc3RhcnRpbmcgaW4gImdh
dGhlcmluZyInKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgICAgYXdhaXQgaW5pdGlhbE9mZmVy
QW5zd2VyKHBjMSwgcGMyLCB7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pOworCisgICAgcGMx
LmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNj
cmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90
ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhd2FpdCBwYzIuc2V0TG9j
YWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICAgIGF3YWl0IGljZUdh
dGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMyLCAnbmV3Jyk7CisgICAgYXdhaXQgcGMxLnNldFJl
bW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhd2FpdCBpY2VHYXRo
ZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjMSwgJ25ldycpOworICB9LCAncmVuZWdvdGlhdGlvbiB0
aGF0IGNsb3NlcyBhbGwgdHJhbnNwb3J0cyBzaG91bGQgcmVzdWx0IGluIElDRSBnYXRoZXJpbmcg
c3RhdGUgIm5ldyInKTsKKwogICAvKgogICAgIDQuNC4yLiAgUlRDSWNlR2F0aGVyaW5nU3RhdGUg
RW51bQogICAgICAgZ2F0aGVyaW5nCkBAIC0xMDgsMTMgKzIzOCwxMyBAQAogICAgICAgY29uc3Qg
eyBpY2VHYXRoZXJpbmdTdGF0ZSB9ID0gcGMyOwogCiAgICAgICBpZihpY2VHYXRoZXJpbmdTdGF0
ZSA9PT0gJ2dhdGhlcmluZycpIHsKLSAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gcGMyLnNj
dHAudHJhbnNwb3J0LnRyYW5zcG9ydDsKKyAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gcGMy
LnNjdHAudHJhbnNwb3J0LmljZVRyYW5zcG9ydDsKIAogICAgICAgICBhc3NlcnRfZXF1YWxzKGlj
ZVRyYW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ2dhdGhlcmluZycsCiAgICAgICAgICAgJ0V4cGVj
dCBJQ0UgdHJhbnNwb3J0IHRvIGJlIGluIGNoZWNraW5nIGdhdGhlcmluZ1N0YXRlIHdoZW4gaWNl
R2F0aGVyaW5nU3RhdGUgaXMgY2hlY2tpbmcnKTsKIAogICAgICAgfSBlbHNlIGlmKGljZUdhdGhl
cmluZ1N0YXRlID09PSAnY29tcGxldGUnKSB7Ci0gICAgICAgIGNvbnN0IGljZVRyYW5zcG9ydCA9
IHBjMi5zY3RwLnRyYW5zcG9ydC50cmFuc3BvcnQ7CisgICAgICAgIGNvbnN0IGljZVRyYW5zcG9y
dCA9IHBjMi5zY3RwLnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQ7CiAKICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhpY2VUcmFuc3BvcnQuZ2F0aGVyaW5nU3RhdGUsICdjb21wbGV0ZScsCiAgICAgICAgICAg
J0V4cGVjdCBJQ0UgdHJhbnNwb3J0IHRvIGJlIGluIGNvbXBsZXRlIGdhdGhlcmluZ1N0YXRlIHdo
ZW4gaWNlR2F0aGVyaW5nU3RhdGUgaXMgY29tcGxldGUnKTsKQEAgLTEzNSw3ICsyNjUsNyBAQAog
ICAgIHBjMi5hZGRFdmVudExpc3RlbmVyKCdpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZScsIG9uSWNl
R2F0aGVyaW5nU3RhdGVDaGFuZ2UpOwogCiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwg
cGMyKTsKLSAgICBkb1NpZ25hbGluZ0hhbmRzaGFrZShwYzEsIHBjMik7CisgICAgZXhjaGFuZ2VP
ZmZlckFuc3dlcihwYzEsIHBjMik7CiAgIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hh
bm5lbCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlJyk7
CiAKICAgLyoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExOTM0MDdhMGNlZDE3YTRmOWVhYzk2NDFmZmY5YmJjNDQ0
Njg5NGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsODAgQEAKKworSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK0ZBSUwgZ2V0U3RhdHMgc3VjY2VlZHMgYXNzZXJ0X2Vx
dWFsczogVGVzdCBlcnJvci4gU3RyaW5nLiBleHBlY3RlZCAic3RyaW5nIiBidXQgZ290ICJ1bmRl
ZmluZWQiCitUSU1FT1VUIFJUQ1J0cFN0cmVhbVN0YXRzJ3Mgc3NyYyBUZXN0IHRpbWVkIG91dAor
Tk9UUlVOIFJUQ1J0cFN0cmVhbVN0YXRzJ3Mga2luZCAKK05PVFJVTiBSVENSdHBTdHJlYW1TdGF0
cydzIHRyYW5zcG9ydElkIAorTk9UUlVOIFJUQ1J0cFN0cmVhbVN0YXRzJ3MgY29kZWNJZCAKK05P
VFJVTiBSVENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzJ3MgcGFja2V0c1JlY2VpdmVkIAorTk9UUlVO
IFJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMncyBwYWNrZXRzTG9zdCAKK05PVFJVTiBSVENSZWNl
aXZlZFJ0cFN0cmVhbVN0YXRzJ3Mgaml0dGVyIAorTk9UUlVOIFJUQ1JlY2VpdmVkUnRwU3RyZWFt
U3RhdHMncyBwYWNrZXRzRGlzY2FyZGVkIAorTk9UUlVOIFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0
cydzIHRyYWNrSWQgCitOT1RSVU4gUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzJ3MgcmVjZWl2ZXJJ
ZCAKK05PVFJVTiBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyByZW1vdGVJZCAKK05PVFJVTiBS
VENJbmJvdW5kUnRwU3RyZWFtU3RhdHMncyBmcmFtZXNEZWNvZGVkIAorTk9UUlVOIFJUQ1JlbW90
ZUluYm91bmRSdHBTdHJlYW1TdGF0cydzIGxvY2FsSWQgCitOT1RSVU4gUlRDUmVtb3RlSW5ib3Vu
ZFJ0cFN0cmVhbVN0YXRzJ3Mgcm91bmRUcmlwVGltZSAKK05PVFJVTiBSVENTZW50UnRwU3RyZWFt
U3RhdHMncyBwYWNrZXRzU2VudCAKK05PVFJVTiBSVENTZW50UnRwU3RyZWFtU3RhdHMncyBieXRl
c1NlbnQgCitOT1RSVU4gUlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIHRyYWNrSWQgCitOT1RS
VU4gUlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cydzIHNlbmRlcklkIAorTk9UUlVOIFJUQ091dGJv
dW5kUnRwU3RyZWFtU3RhdHMncyByZW1vdGVJZCAKK05PVFJVTiBSVENPdXRib3VuZFJ0cFN0cmVh
bVN0YXRzJ3MgZnJhbWVzRW5jb2RlZCAKK05PVFJVTiBSVENSZW1vdGVPdXRib3VuZFJ0cFN0cmVh
bVN0YXRzJ3MgbG9jYWxJZCAKK05PVFJVTiBSVENSZW1vdGVPdXRib3VuZFJ0cFN0cmVhbVN0YXRz
J3MgcmVtb3RlVGltZXN0YW1wIAorTk9UUlVOIFJUQ1BlZXJDb25uZWN0aW9uU3RhdHMncyBkYXRh
Q2hhbm5lbHNPcGVuZWQgCitOT1RSVU4gUlRDUGVlckNvbm5lY3Rpb25TdGF0cydzIGRhdGFDaGFu
bmVsc0Nsb3NlZCAKK05PVFJVTiBSVENEYXRhQ2hhbm5lbFN0YXRzJ3MgcHJvdG9jb2wgCitOT1RS
VU4gUlRDRGF0YUNoYW5uZWxTdGF0cydzIGRhdGFDaGFubmVsSWRlbnRpZmllciAKK05PVFJVTiBS
VENEYXRhQ2hhbm5lbFN0YXRzJ3Mgc3RhdGUgCitOT1RSVU4gUlRDRGF0YUNoYW5uZWxTdGF0cydz
IG1lc3NhZ2VzU2VudCAKK05PVFJVTiBSVENEYXRhQ2hhbm5lbFN0YXRzJ3MgYnl0ZXNTZW50IAor
Tk9UUlVOIFJUQ0RhdGFDaGFubmVsU3RhdHMncyBtZXNzYWdlc1JlY2VpdmVkIAorTk9UUlVOIFJU
Q0RhdGFDaGFubmVsU3RhdHMncyBieXRlc1JlY2VpdmVkIAorTk9UUlVOIFJUQ01lZGlhU3RyZWFt
U3RhdHMncyBzdHJlYW1JZGVudGlmZXIgCitOT1RSVU4gUlRDTWVkaWFTdHJlYW1TdGF0cydzIHRy
YWNrSWRzIAorTk9UUlVOIFJUQ01lZGlhSGFuZGxlclN0YXRzJ3MgdHJhY2tJZGVudGlmaWVyIAor
Tk9UUlVOIFJUQ01lZGlhSGFuZGxlclN0YXRzJ3MgcmVtb3RlU291cmNlIAorTk9UUlVOIFJUQ01l
ZGlhSGFuZGxlclN0YXRzJ3MgZW5kZWQgCitOT1RSVU4gUlRDQXVkaW9IYW5kbGVyU3RhdHMncyBh
dWRpb0xldmVsIAorTk9UUlVOIFJUQ1ZpZGVvSGFuZGxlclN0YXRzJ3MgZnJhbWVXaWR0aCAKK05P
VFJVTiBSVENWaWRlb0hhbmRsZXJTdGF0cydzIGZyYW1lSGVpZ2h0IAorTk9UUlVOIFJUQ1ZpZGVv
SGFuZGxlclN0YXRzJ3MgZnJhbWVzUGVyU2Vjb25kIAorTk9UUlVOIFJUQ1ZpZGVvU2VuZGVyU3Rh
dHMncyBmcmFtZXNTZW50IAorTk9UUlVOIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0cydzIGZyYW1lc1Jl
Y2VpdmVkIAorTk9UUlVOIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0cydzIGZyYW1lc0RlY29kZWQgCitO
T1RSVU4gUlRDVmlkZW9SZWNlaXZlclN0YXRzJ3MgZnJhbWVzRHJvcHBlZCAKK05PVFJVTiBSVENW
aWRlb1JlY2VpdmVyU3RhdHMncyBwYXJ0aWFsRnJhbWVzTG9zdCAKK05PVFJVTiBSVENDb2RlY1N0
YXRzJ3MgcGF5bG9hZFR5cGUgCitOT1RSVU4gUlRDQ29kZWNTdGF0cydzIGNvZGVjVHlwZSAKK05P
VFJVTiBSVENDb2RlY1N0YXRzJ3MgY2xvY2tSYXRlIAorTk9UUlVOIFJUQ0NvZGVjU3RhdHMncyBj
aGFubmVscyAKK05PVFJVTiBSVENDb2RlY1N0YXRzJ3Mgc2RwRm10cExpbmUgCitOT1RSVU4gUlRD
VHJhbnNwb3J0U3RhdHMncyBieXRlc1NlbnQgCitOT1RSVU4gUlRDVHJhbnNwb3J0U3RhdHMncyBi
eXRlc1JlY2VpdmVkIAorTk9UUlVOIFJUQ1RyYW5zcG9ydFN0YXRzJ3MgcnRjcFRyYW5zcG9ydFN0
YXRzSWQgCitOT1RSVU4gUlRDVHJhbnNwb3J0U3RhdHMncyBzZWxlY3RlZENhbmRpZGF0ZVBhaXJJ
ZCAKK05PVFJVTiBSVENUcmFuc3BvcnRTdGF0cydzIGxvY2FsQ2VydGlmaWNhdGVJZCAKK05PVFJV
TiBSVENUcmFuc3BvcnRTdGF0cydzIHJlbW90ZUNlcnRpZmljYXRlSWQgCitOT1RSVU4gUlRDSWNl
Q2FuZGlkYXRlUGFpclN0YXRzJ3MgdHJhbnNwb3J0SWQgCitOT1RSVU4gUlRDSWNlQ2FuZGlkYXRl
UGFpclN0YXRzJ3MgbG9jYWxDYW5kaWRhdGVJZCAKK05PVFJVTiBSVENJY2VDYW5kaWRhdGVQYWly
U3RhdHMncyByZW1vdGVDYW5kaWRhdGVJZCAKK05PVFJVTiBSVENJY2VDYW5kaWRhdGVQYWlyU3Rh
dHMncyBzdGF0ZSAKK05PVFJVTiBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMncyBwcmlvcml0eSAK
K05PVFJVTiBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMncyBub21pbmF0ZWQgCitOT1RSVU4gUlRD
SWNlQ2FuZGlkYXRlUGFpclN0YXRzJ3MgYnl0ZXNTZW50IAorTk9UUlVOIFJUQ0ljZUNhbmRpZGF0
ZVBhaXJTdGF0cydzIGJ5dGVzUmVjZWl2ZWQgCitOT1RSVU4gUlRDSWNlQ2FuZGlkYXRlUGFpclN0
YXRzJ3MgdG90YWxSb3VuZFRyaXBUaW1lIAorTk9UUlVOIFJUQ0ljZUNhbmRpZGF0ZVBhaXJTdGF0
cydzIGN1cnJlbnRSb3VuZFRyaXBUaW1lIAorTk9UUlVOIFJUQ0ljZUNhbmRpZGF0ZVN0YXRzJ3Mg
YWRkcmVzcyAKK05PVFJVTiBSVENJY2VDYW5kaWRhdGVTdGF0cydzIHBvcnQgCitOT1RSVU4gUlRD
SWNlQ2FuZGlkYXRlU3RhdHMncyBwcm90b2NvbCAKK05PVFJVTiBSVENJY2VDYW5kaWRhdGVTdGF0
cydzIGNhbmRpZGF0ZVR5cGUgCitOT1RSVU4gUlRDSWNlQ2FuZGlkYXRlU3RhdHMncyB1cmwgCitO
T1RSVU4gUlRDQ2VydGlmaWNhdGVTdGF0cydzIGZpbmdlcnByaW50IAorTk9UUlVOIFJUQ0NlcnRp
ZmljYXRlU3RhdHMncyBmaW5nZXJwcmludEFsZ29yaXRobSAKK05PVFJVTiBSVENDZXJ0aWZpY2F0
ZVN0YXRzJ3MgYmFzZTY0Q2VydGlmaWNhdGUgCitOT1RSVU4gUlRDQ2VydGlmaWNhdGVTdGF0cydz
IGlzc3VlckNlcnRpZmljYXRlSWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9y
eS1nZXRTdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWIwZDU5MTUzZGNhNDI4NTE4ZWU1MTBlMDFlMWQ0ZmZlODdh
YmYwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5o
dHRwcy5odG1sCkBAIC0wLDAgKzEsMjY3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5N
YW5kYXRvcnktdG8taW1wbGVtZW50IHN0YXRzIGNvbXBsaWFuY2UgKGEgc3Vic2V0IG9mIHdlYnJ0
Yy1zdGF0cyk8L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJkaWN0aW9uYXJ5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iUlRDU3RhdHMtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmlj
dCc7CisKKy8vIEZyb20gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jbWFuZGF0b3J5
LXRvLWltcGxlbWVudC1zdGF0cworCitjb25zdCBtYW5kYXRvcnkgPSB7CisgIFJUQ1J0cFN0cmVh
bVN0YXRzOiBbCisgICAgInNzcmMiLAorICAgICJraW5kIiwKKyAgICAidHJhbnNwb3J0SWQiLAor
ICAgICJjb2RlY0lkIiwKKyAgXSwKKyAgUlRDUmVjZWl2ZWRSdHBTdHJlYW1TdGF0czogWworICAg
ICJwYWNrZXRzUmVjZWl2ZWQiLAorICAgICJwYWNrZXRzTG9zdCIsCisgICAgImppdHRlciIsCisg
ICAgInBhY2tldHNEaXNjYXJkZWQiLAorICBdLAorICBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHM6
IFsKKyAgICAidHJhY2tJZCIsCisgICAgInJlY2VpdmVySWQiLAorICAgICJyZW1vdGVJZCIsCisg
ICAgImZyYW1lc0RlY29kZWQiLAorICBdLAorICBSVENSZW1vdGVJbmJvdW5kUnRwU3RyZWFtU3Rh
dHM6IFsKKyAgICAibG9jYWxJZCIsCisgICAgInJvdW5kVHJpcFRpbWUiLAorICBdLAorICBSVENT
ZW50UnRwU3RyZWFtU3RhdHM6IFsKKyAgICAicGFja2V0c1NlbnQiLAorICAgICJieXRlc1NlbnQi
CisgIF0sCisgIFJUQ091dGJvdW5kUnRwU3RyZWFtU3RhdHM6IFsKKyAgICAidHJhY2tJZCIsCisg
ICAgInNlbmRlcklkIiwKKyAgICAicmVtb3RlSWQiLAorICAgICJmcmFtZXNFbmNvZGVkIiwKKyAg
XSwKKyAgUlRDUmVtb3RlT3V0Ym91bmRSdHBTdHJlYW1TdGF0czogWworICAgICJsb2NhbElkIiwK
KyAgICAicmVtb3RlVGltZXN0YW1wIiwKKyAgXSwKKyAgUlRDUGVlckNvbm5lY3Rpb25TdGF0czog
WworICAgICJkYXRhQ2hhbm5lbHNPcGVuZWQiLAorICAgICJkYXRhQ2hhbm5lbHNDbG9zZWQiLAor
ICBdLAorICBSVENEYXRhQ2hhbm5lbFN0YXRzOiBbCisgICAgInByb3RvY29sIiwKKyAgICAiZGF0
YUNoYW5uZWxJZGVudGlmaWVyIiwKKyAgICAic3RhdGUiLAorICAgICJtZXNzYWdlc1NlbnQiLAor
ICAgICJieXRlc1NlbnQiLAorICAgICJtZXNzYWdlc1JlY2VpdmVkIiwKKyAgICAiYnl0ZXNSZWNl
aXZlZCIsCisgIF0sCisgIFJUQ01lZGlhU3RyZWFtU3RhdHM6IFsKKyAgICAic3RyZWFtSWRlbnRp
ZmVyIiwKKyAgICAidHJhY2tJZHMiLAorICBdLAorICBSVENNZWRpYUhhbmRsZXJTdGF0czogWwor
ICAgICJ0cmFja0lkZW50aWZpZXIiLAorICAgICJyZW1vdGVTb3VyY2UiLAorICAgICJlbmRlZCIs
CisgIF0sCisgIFJUQ0F1ZGlvSGFuZGxlclN0YXRzOiBbCisgICAgImF1ZGlvTGV2ZWwiLAorICBd
LAorICBSVENWaWRlb0hhbmRsZXJTdGF0czogWworICAgICJmcmFtZVdpZHRoIiwKKyAgICAiZnJh
bWVIZWlnaHQiLAorICAgICJmcmFtZXNQZXJTZWNvbmQiLAorICBdLAorICBSVENWaWRlb1NlbmRl
clN0YXRzOiBbCisgICAgImZyYW1lc1NlbnQiLAorICBdLAorICBSVENWaWRlb1JlY2VpdmVyU3Rh
dHM6IFsKKyAgICAiZnJhbWVzUmVjZWl2ZWQiLAorICAgICJmcmFtZXNEZWNvZGVkIiwKKyAgICAi
ZnJhbWVzRHJvcHBlZCIsCisgICAgInBhcnRpYWxGcmFtZXNMb3N0IiwKKyAgXSwKKyAgUlRDQ29k
ZWNTdGF0czogWworICAgICJwYXlsb2FkVHlwZSIsCisgICAgImNvZGVjVHlwZSIsCisgICAgImNs
b2NrUmF0ZSIsCisgICAgImNoYW5uZWxzIiwKKyAgICAic2RwRm10cExpbmUiLAorICBdLAorICBS
VENUcmFuc3BvcnRTdGF0czogWworICAgICJieXRlc1NlbnQiLAorICAgICJieXRlc1JlY2VpdmVk
IiwKKyAgICAicnRjcFRyYW5zcG9ydFN0YXRzSWQiLAorICAgICJzZWxlY3RlZENhbmRpZGF0ZVBh
aXJJZCIsCisgICAgImxvY2FsQ2VydGlmaWNhdGVJZCIsCisgICAgInJlbW90ZUNlcnRpZmljYXRl
SWQiLAorICBdLAorICBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHM6IFsKKyAgICAidHJhbnNwb3J0
SWQiLAorICAgICJsb2NhbENhbmRpZGF0ZUlkIiwKKyAgICAicmVtb3RlQ2FuZGlkYXRlSWQiLAor
ICAgICJzdGF0ZSIsCisgICAgInByaW9yaXR5IiwKKyAgICAibm9taW5hdGVkIiwKKyAgICAiYnl0
ZXNTZW50IiwKKyAgICAiYnl0ZXNSZWNlaXZlZCIsCisgICAgInRvdGFsUm91bmRUcmlwVGltZSIs
CisgICAgImN1cnJlbnRSb3VuZFRyaXBUaW1lIiwKKyAgXSwKKyAgUlRDSWNlQ2FuZGlkYXRlU3Rh
dHM6IFsKKyAgICAiYWRkcmVzcyIsCisgICAgInBvcnQiLAorICAgICJwcm90b2NvbCIsCisgICAg
ImNhbmRpZGF0ZVR5cGUiLAorICAgICJ1cmwiLAorICBdLAorICBSVENDZXJ0aWZpY2F0ZVN0YXRz
OiBbCisgICAgImZpbmdlcnByaW50IiwKKyAgICAiZmluZ2VycHJpbnRBbGdvcml0aG0iLAorICAg
ICJiYXNlNjRDZXJ0aWZpY2F0ZSIsCisgICAgImlzc3VlckNlcnRpZmljYXRlSWQiLAorICBdLAor
fTsKKworLy8gRnJvbSBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXN0YXRzL3dlYnJ0Yy1z
dGF0cy5odG1sI3J0Y3N0YXRzdHlwZS1zdHIqCisKK2NvbnN0IGRpY3Rpb25hcnlOYW1lcyA9IHsK
KyAgImNvZGVjIjogIlJUQ0NvZGVjU3RhdHMiLAorICAiaW5ib3VuZC1ydHAiOiAiUlRDSW5ib3Vu
ZFJ0cFN0cmVhbVN0YXRzIiwKKyAgIm91dGJvdW5kLXJ0cCI6ICJSVENPdXRib3VuZFJ0cFN0cmVh
bVN0YXRzIiwKKyAgInJlbW90ZS1pbmJvdW5kLXJ0cCI6ICJSVENSZW1vdGVJbmJvdW5kUnRwU3Ry
ZWFtU3RhdHMiLAorICAicmVtb3RlLW91dGJvdW5kLXJ0cCI6ICJSVENSZW1vdGVPdXRib3VuZFJ0
cFN0cmVhbVN0YXRzIiwKKyAgImNzcmMiOiAiUlRDUnRwQ29udHJpYnV0aW5nU291cmNlU3RhdHMi
LAorICAicGVlci1jb25uZWN0aW9uIjogIlJUQ1BlZXJDb25uZWN0aW9uU3RhdHMiLAorICAiZGF0
YS1jaGFubmVsIjogIlJUQ0RhdGFDaGFubmVsU3RhdHMiLAorICAic3RyZWFtIjogIlJUQ01lZGlh
U3RyZWFtU3RhdHMiLAorICAidHJhY2siOiB7CisgICAgdmlkZW86ICJSVENTZW5kZXJWaWRlb1Ry
YWNrQXR0YWNobWVudFN0YXRzIiwKKyAgICBhdWRpbzogIlJUQ1NlbmRlckF1ZGlvVHJhY2tBdHRh
Y2htZW50U3RhdHMiCisgIH0sCisgICJzZW5kZXIiOiB7CisgICAgYXVkaW86ICJSVENBdWRpb1Nl
bmRlclN0YXRzIiwKKyAgICB2aWRlbzogIlJUQ1ZpZGVvU2VuZGVyU3RhdHMiCisgIH0sCisgICJy
ZWNlaXZlciI6IHsKKyAgICBhdWRpbzogIlJUQ0F1ZGlvUmVjZWl2ZXJTdGF0cyIsCisgICAgdmlk
ZW86ICJSVENWaWRlb1JlY2VpdmVyU3RhdHMiLAorICB9LAorICAidHJhbnNwb3J0IjogIlJUQ1Ry
YW5zcG9ydFN0YXRzIiwKKyAgImNhbmRpZGF0ZS1wYWlyIjogIlJUQ0ljZUNhbmRpZGF0ZVBhaXJT
dGF0cyIsCisgICJsb2NhbC1jYW5kaWRhdGUiOiAiUlRDSWNlQ2FuZGlkYXRlU3RhdHMiLAorICAi
cmVtb3RlLWNhbmRpZGF0ZSI6ICJSVENJY2VDYW5kaWRhdGVTdGF0cyIsCisgICJjZXJ0aWZpY2F0
ZSI6ICJSVENDZXJ0aWZpY2F0ZVN0YXRzIiwKK307CisKKy8vIEZyb20gaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3dlYnJ0Yy1zdGF0cy93ZWJydGMtc3RhdHMuaHRtbCAod2ViaWRsKQorCitjb25zdCBw
YXJlbnRzID0geworICBSVENWaWRlb0hhbmRsZXJTdGF0czogIlJUQ01lZGlhSGFuZGxlclN0YXRz
IiwKKyAgUlRDVmlkZW9TZW5kZXJTdGF0czogIlJUQ1ZpZGVvSGFuZGxlclN0YXRzIiwKKyAgUlRD
U2VuZGVyVmlkZW9UcmFja0F0dGFjaG1lbnRTdGF0czogIlJUQ1ZpZGVvU2VuZGVyU3RhdHMiLAor
ICBSVENWaWRlb1JlY2VpdmVyU3RhdHM6ICJSVENWaWRlb0hhbmRsZXJTdGF0cyIsCisgIFJUQ0F1
ZGlvSGFuZGxlclN0YXRzOiAiUlRDTWVkaWFIYW5kbGVyU3RhdHMiLAorICBSVENBdWRpb1NlbmRl
clN0YXRzOiAiUlRDQXVkaW9IYW5kbGVyU3RhdHMiLAorICBSVENTZW5kZXJBdWRpb1RyYWNrQXR0
YWNobWVudFN0YXRzOiAiUlRDQXVkaW9TZW5kZXJTdGF0cyIsCisgIFJUQ0F1ZGlvUmVjZWl2ZXJT
dGF0czogIlJUQ0F1ZGlvSGFuZGxlclN0YXRzIiwKKyAgUlRDUmVjZWl2ZWRSdHBTdHJlYW1TdGF0
czogIlJUQ1J0cFN0cmVhbVN0YXRzIiwKKyAgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzOiAiUlRD
UmVjZWl2ZWRSdHBTdHJlYW1TdGF0cyIsCisgIFJUQ1JlbW90ZUluYm91bmRSdHBTdHJlYW1TdGF0
czogIlJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMiLAorICBSVENTZW50UnRwU3RyZWFtU3RhdHM6
ICJSVENSdHBTdHJlYW1TdGF0cyIsCisgIFJUQ091dGJvdW5kUnRwU3RyZWFtU3RhdHM6ICJSVENT
ZW50UnRwU3RyZWFtU3RhdHMiLAorICBSVENSZW1vdGVPdXRib3VuZFJ0cFN0cmVhbVN0YXRzIDog
IlJUQ1NlbnRSdHBTdHJlYW1TdGF0cyIsCit9OworCitjb25zdCByZW1haW5pbmcgPSBKU09OLnBh
cnNlKEpTT04uc3RyaW5naWZ5KG1hbmRhdG9yeSkpOworZm9yIChjb25zdCBkaWN0TmFtZSBpbiBy
ZW1haW5pbmcpIHsKKyAgcmVtYWluaW5nW2RpY3ROYW1lXSA9IG5ldyBTZXQocmVtYWluaW5nW2Rp
Y3ROYW1lXSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGdldEFsbFN0YXRzKHQsIHBjKSB7CisgIC8v
IFRyeSB0byBvYnRhaW4gYXMgbWFueSBzdGF0cyBhcyBwb3NzaWJsZSwgd2FpdGluZyB1cCB0byAy
MCBzZWNvbmRzIGZvcgorICAvLyByb3VuZFRyaXBUaW1lIHdoaWNoIGNhbiB0YWtlIHNldmVyYWwg
UlRDUCBtZXNzYWdlcyB0byBjYWxjdWxhdGUuCisgIGxldCBzdGF0czsKKyAgZm9yIChsZXQgaSA9
IDA7IGkgPCAyMDsgaSsrKSB7CisgICAgc3RhdHMgPSBhd2FpdCBwYy5nZXRTdGF0cygpOworICAg
IGNvbnN0IHZhbHVlcyA9IFsuLi5zdGF0cy52YWx1ZXMoKV07CisgICAgY29uc3QgW2F1ZGlvLCB2
aWRlb10gPSBbImF1ZGlvIiwgInZpZGVvIl0ubWFwKGtpbmQgPT4KKyAgICAgIHZhbHVlcy5maW5k
KHMgPT4gcy50eXBlID09ICJyZW1vdGUtaW5ib3VuZC1ydHAiICYmIHMua2luZCA9PSBraW5kKSk7
CisgICAgaWYgKGF1ZGlvICYmICJyb3VuZFRyaXBUaW1lIiBpbiBhdWRpbyAmJgorICAgICAgICB2
aWRlbyAmJiAicm91bmRUcmlwVGltZSIgaW4gdmlkZW8pIHsKKyAgICAgIHJldHVybiBzdGF0czsK
KyAgICB9CisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChyLCAxMDAw
KSk7CisgIH0KKyAgcmV0dXJuIHN0YXRzOworfQorCitsZXQgc3VjY2VlZDsKK2NvbnN0IHN1Y2Nl
c3MgPSBuZXcgUHJvbWlzZShyID0+IHN1Y2NlZWQgPSByKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBjb25z
dCBkYzEgPSBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoImR1bW15Iiwge25lZ290aWF0ZWQ6IHRydWUs
IGlkOiAwfSk7CisgIGNvbnN0IGRjMiA9IHBjMi5jcmVhdGVEYXRhQ2hhbm5lbCgiZHVtbXkiLCB7
bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9KTsKKworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXRO
b2lzZVN0cmVhbSh7dmlkZW86IHRydWUsIGF1ZGlvOnRydWV9KTsKKyAgZm9yIChjb25zdCB0cmFj
ayBvZiBzdHJlYW0uZ2V0VHJhY2tzKCkpIHsKKyAgICBwYzEuYWRkVHJhY2sodHJhY2ssIHN0cmVh
bSk7CisgICAgcGMyLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gdHJhY2suc3RvcCgpKTsKKyAgfQorICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBw
YzIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgY29uc3Qgc3Rh
dHMgPSBhd2FpdCBnZXRBbGxTdGF0cyh0LCBwYzEpOworCisgIC8vIFRoZSBmb2N1cyBvZiB0aGlz
IHRlc3QgaXMgbm90IEFQSSBjb3JyZWN0bmVzcywgYnV0IHJhdGhlciB0byBwcm92aWRlIGFuCisg
IC8vIGFjY2Vzc2libGUgbWV0cmljIG9mIGltcGxlbWVudGF0aW9uIHByb2dyZXNzIGJ5IGRpY3Rp
b25hcnkgbWVtYmVyLiBXZSBjb3VudAorICAvLyB3aGV0aGVyIHdlJ3ZlIHNlZW4gZWFjaCBkaWN0
aW9uYXJ5J3MgbWFuZGF0b3J5IG1lbWJlcnMgaW4gZ2V0U3RhdHMoKS4KKworICBmb3IgKGNvbnN0
IHN0YXQgb2Ygc3RhdHMudmFsdWVzKCkpIHsKKyAgICBsZXQgZGljdE5hbWUgPSBkaWN0aW9uYXJ5
TmFtZXNbc3RhdC50eXBlXTsKKyAgICBpZiAoIWRpY3ROYW1lKSBjb250aW51ZTsKKyAgICBpZiAo
dHlwZW9mIGRpY3ROYW1lID09ICJvYmplY3QiKSB7CisgICAgICBkaWN0TmFtZSA9IGRpY3ROYW1l
W3N0YXQua2luZF07CisgICAgfQorICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRpY3ROYW1lLCAi
c3RyaW5nIiwgIlRlc3QgZXJyb3IuIFN0cmluZy4iKTsKKyAgICBpZiAoZGljdE5hbWUgJiYgbWFu
ZGF0b3J5W2RpY3ROYW1lXSkgeworICAgICAgZG8geworICAgICAgICBjb25zdCBtZW1iZXJOYW1l
cyA9IG1hbmRhdG9yeVtkaWN0TmFtZV07CisgICAgICAgIGNvbnN0IHJlbWFpbmluZ05hbWVzID0g
cmVtYWluaW5nW2RpY3ROYW1lXTsKKyAgICAgICAgYXNzZXJ0X3RydWUobWVtYmVyTmFtZXMubGVu
Z3RoID4gMCwgIlRlc3QgZXJyb3IuIFBhcmVudCBub3QgZm91bmQuIik7CisgICAgICAgIGZvciAo
Y29uc3QgbWVtYmVyTmFtZSBvZiBtZW1iZXJOYW1lcykgeworICAgICAgICAgIGlmIChtZW1iZXJO
YW1lIGluIHN0YXQpIHsKKyAgICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHN0YXRbbWVtYmVy
TmFtZV0sIHVuZGVmaW5lZCwgIk5vdCB1bmRlZmluZWQiKTsKKyAgICAgICAgICAgIHJlbWFpbmlu
Z05hbWVzLmRlbGV0ZShtZW1iZXJOYW1lKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgZGljdE5hbWUgPSBwYXJlbnRzW2RpY3ROYW1lXTsKKyAgICAgIH0gd2hpbGUgKGRpY3ROYW1l
KTsKKyAgICB9CisgIH0KKyAgc3VjY2VlZCgpOworfSwgJ2dldFN0YXRzIHN1Y2NlZWRzJyk7CisK
K2ZvciAoY29uc3QgZGljdE5hbWUgaW4gbWFuZGF0b3J5KSB7CisgIGZvciAoY29uc3QgbWVtYmVy
TmFtZSBvZiBtYW5kYXRvcnlbZGljdE5hbWVdKSB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgICAgYXdhaXQgc3VjY2VzczsKKyAgICAgIGFzc2VydF90cnVlKCFyZW1haW5pbmdb
ZGljdE5hbWVdLmhhcyhtZW1iZXJOYW1lKSwKKyAgICAgICAgICAgICAgICAgIGBJcyAke21lbWJl
ck5hbWV9IHByZXNlbnRgKTsKKyAgICB9LCBgJHtkaWN0TmFtZX0ncyAke21lbWJlck5hbWV9YCk7
CisgIH0KK30KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRhdGFjaGFu
bmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uZGF0YWNoYW5uZWwtZXhwZWN0ZWQudHh0
CmluZGV4IDgyYTM5ZWYwNjMzY2UzNDY5OGNiN2U0NjYwNGZmZTQ1NDRhNjAyNjAuLmZjMDY2NGQ3
YTYwODQzOTJmMmZiZWY5ZDQ2Yjg3ZGRkNDU3ZTk5NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LW9uZGF0YWNoYW5uZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uZGF0YWNoYW5u
ZWwtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMTAgQEAKIAotUEFTUyBkYXRhY2hhbm5lbCBldmVu
dCBzaG91bGQgZmlyZSB3aGVuIG5ldyBkYXRhIGNoYW5uZWwgaXMgYW5ub3VuY2VkIHRvIHRoZSBy
ZW1vdGUgcGVlciAKLUZBSUwgRGF0YSBjaGFubmVsIGNyZWF0ZWQgb24gcmVtb3RlIHBlZXIgc2hv
dWxkIG1hdGNoIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gYXMgbG9jYWwgcGVlciBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiaGlnaCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmlu
ZWQKLVBBU1MgRGF0YSBjaGFubmVsIGNyZWF0ZWQgd2l0aCBuZWdvdGlhdGVkIHNldCB0byB0cnVl
IHNob3VsZCBub3QgZmlyZSBkYXRhY2hhbm5lbCBldmVudCBvbiByZW1vdGUgcGVlciAKK0ZBSUwg
RGF0YSBjaGFubmVsIGV2ZW50IHNob3VsZCBmaXJlIHdoZW4gbmV3IGRhdGEgY2hhbm5lbCBpcyBh
bm5vdW5jZWQgdG8gdGhlIHJlbW90ZSBwZWVyIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBjaGFubmVs
IHJlYWR5IHN0YXRlIHRvIGJlIG9wZW4gZXhwZWN0ZWQgIm9wZW4iIGJ1dCBnb3QgImNvbm5lY3Rp
bmciCitGQUlMIFNob3VsZCBiZSBhYmxlIHRvIHNlbmQgZGF0YSBpbiBhIGRhdGFjaGFubmVsIGV2
ZW50IGhhbmRsZXIgVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFTUyBPcGVu
IGV2ZW50IHNob3VsZCBub3QgYmUgcmFpc2VkIHdoZW4gY2xvc2luZyB0aGUgY2hhbm5lbCBpbiB0
aGUgZGF0YWNoYW5uZWwgZXZlbnQgCitQQVNTIE9wZW4gZXZlbnQgc2hvdWxkIGJlIHJhaXNlZCB3
aGVuIGNsb3NpbmcgdGhlIGNoYW5uZWwgaW4gdGhlIGRhdGFjaGFubmVsIGV2ZW50IGFmdGVyIGVu
cXVldWluZyBhIHRhc2sgCitGQUlMIE9wZW4gZXZlbnQgc2hvdWxkIG5vdCBiZSByYWlzZWQgd2hl
biBzZW5kaW5nIGFuZCBpbW1lZGlhdGVseSBjbG9zaW5nIHRoZSBjaGFubmVsIGluIHRoZSBkYXRh
Y2hhbm5lbCBldmVudCBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuCitGQUlMIElu
LWJhbmQgbmVnb3RpYXRlZCBjaGFubmVsIGNyZWF0ZWQgb24gcmVtb3RlIHBlZXIgc2hvdWxkIG1h
dGNoIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gYXMgbG9jYWwgcGVlciBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKG51bWJlcikgNjU1MzUKK0ZBSUwgSW4tYmFu
ZCBuZWdvdGlhdGVkIGNoYW5uZWwgY3JlYXRlZCBvbiByZW1vdGUgcGVlciBzaG91bGQgbWF0Y2gg
dGhlIHNhbWUgKGRlZmF1bHQpIGNvbmZpZ3VyYXRpb24gYXMgbG9jYWwgcGVlciBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKG51bWJlcikgNjU1MzUKK1BBU1Mg
TmVnb3RpYXRlZCBjaGFubmVsIHNob3VsZCBub3QgZmlyZSBkYXRhY2hhbm5lbCBldmVudCBvbiBy
ZW1vdGUgcGVlciAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25kYXRhY2hhbm5lbC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tb25kYXRhY2hhbm5lbC5odG1sCmluZGV4IDEwNzBlZTcwMWQyMzM2Y2Zi
MTRjNzM3MGY5ZGIyNWRhZjU5MjJkN2IuLjQ2ZmU4ZTBmNTFiMWIxYTg1NWYwNmQ1NGM4MTk3ODRk
NmY1NDI1MDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uZGF0YWNoYW5uZWwuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1vbmRhdGFjaGFubmVsLmh0bWwKQEAgLTUsMTgwICs1LDM2OSBAQAogPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
PgotICAndXNlIHN0cmljdCc7Ci0KLSAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5n
IGVkaXRvciBkcmFmdDoKLSAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNo
aXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtbAotCi0gIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1
bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgotICAv
LyBleGNoYW5nZUljZUNhbmRpZGF0ZXMKLSAgLy8gZG9TaWduYWxpbmdIYW5kc2hha2UKLQotICAv
KgotICAgIDYuMi4gIFJUQ0RhdGFDaGFubmVsCi0gICAgICBXaGVuIGFuIHVuZGVybHlpbmcgZGF0
YSB0cmFuc3BvcnQgaXMgdG8gYmUgYW5ub3VuY2VkCi0gICAgICAgIDIuICBMZXQgY2hhbm5lbCBi
ZSBhIG5ld2x5IGNyZWF0ZWQgUlRDRGF0YUNoYW5uZWwgb2JqZWN0LgotICAgICAgICA1LiAgU2V0
IGNoYW5uZWwncyByZWFkeVN0YXRlIGF0dHJpYnV0ZSB0byBjb25uZWN0aW5nLgotICAgICAgICA2
LiAgRmlyZSBhIGRhdGFjaGFubmVsIGV2ZW50IG5hbWVkIGRhdGFjaGFubmVsIHdpdGggY2hhbm5l
bCBhdCB0aGUKLSAgICAgICAgICAgIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVjdC4KLQotICAgIDYu
My4gIFJUQ0RhdGFDaGFubmVsRXZlbnQKLSAgICAgIEZpcmluZyBhIGRhdGFjaGFubmVsIGV2ZW50
IG5hbWVkIGUgd2l0aCBhIFJUQ0RhdGFDaGFubmVsIGNoYW5uZWwgbWVhbnMKLSAgICAgIHRoYXQg
YW4gZXZlbnQgd2l0aCB0aGUgbmFtZSBlLCB3aGljaCBkb2VzIG5vdCBidWJibGUgKGV4Y2VwdCB3
aGVyZQotICAgICAgb3RoZXJ3aXNlIHN0YXRlZCkgYW5kIGlzIG5vdCBjYW5jZWxhYmxlIChleGNl
cHQgd2hlcmUgb3RoZXJ3aXNlIHN0YXRlZCksCi0gICAgICBhbmQgd2hpY2ggdXNlcyB0aGUgUlRD
RGF0YUNoYW5uZWxFdmVudCBpbnRlcmZhY2Ugd2l0aCB0aGUgY2hhbm5lbAotICAgICAgYXR0cmli
dXRlIHNldCB0byBjaGFubmVsLCBtdXN0IGJlIGNyZWF0ZWQgYW5kIGRpc3BhdGNoZWQgYXQgdGhl
IGdpdmVuCi0gICAgICB0YXJnZXQuCi0KLSAgICAgIGludGVyZmFjZSBSVENEYXRhQ2hhbm5lbEV2
ZW50IDogRXZlbnQgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDRGF0YUNoYW5uZWwg
Y2hhbm5lbDsKLSAgICAgIH07Ci0gICAqLwotICBhc3luY190ZXN0KHQgPT4gewotICAgIGNvbnN0
IGxvY2FsUGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IGxvY2FsUGMuY2xvc2UoKSk7Ci0gICAgY29uc3QgcmVtb3RlUGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKLQotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcmVtb3RlUGMuY2xvc2UoKSk7
Ci0KLSAgICBsZXQgZXZlbnRDb3VudCA9IDA7Ci0KLSAgICBjb25zdCBvbkRhdGFDaGFubmVsID0g
dC5zdGVwX2Z1bmNfZG9uZShldmVudCA9PiB7Ci0gICAgICBldmVudENvdW50Kys7Ci0gICAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50Q291bnQsIDEsCi0gICAgICAgICdFeHBlY3QgZGF0YSBjaGFubmVs
IGV2ZW50IHRvIGZpcmUgZXhhY3RseSBvbmNlJyk7Ci0KLSAgICAgIGFzc2VydF90cnVlKGV2ZW50
IGluc3RhbmNlb2YgUlRDRGF0YUNoYW5uZWxFdmVudCwKLSAgICAgICAgJ0V4cGVjdCBldmVudCB0
byBiZSBpbnN0YW5jZSBvZiBSVENEYXRhQ2hhbm5lbEV2ZW50Jyk7Ci0KLSAgICAgIGFzc2VydF9l
cXVhbHMoZXZlbnQuYnViYmxlcywgZmFsc2UpOwotICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5j
YW5jZWxhYmxlLCBmYWxzZSk7Ci0KLSAgICAgIGNvbnN0IHsgY2hhbm5lbCB9ID0gZXZlbnQ7Ci0g
ICAgICBhc3NlcnRfdHJ1ZShjaGFubmVsIGluc3RhbmNlb2YgUlRDRGF0YUNoYW5uZWwsCi0gICAg
ICAgICdFeHBlY3QgY2hhbm5lbCB0byBiZSBpbnN0YW5jZSBvZiBSVENEYXRhQ2hhbm5lbCcpOwot
Ci0gICAgICBjb25zdCB7IHJlYWR5U3RhdGUgfSA9IGNoYW5uZWw7Ci0KLSAgICAgIC8vIFRoZSBz
cGVjIHJlcXVpcmVzIHJlYWR5U3RhdGUgdG8gYmUgY29ubmVjdGluZyBhdCBmaXJzdCwKLSAgICAg
IC8vIGJ1dCBpdCBtYXkgcXVpY2tseSBjaGFuZ2UgdG8gb3BlbiBiZWZvcmUgdGhlIGNhbGxiYWNr
Ci0gICAgICAvLyBpcyBpbnZva2VkLCBlc3BlY2lhbGx5IHdpdGggbG9jYWwgY29ubmVjdGlvbnMu
Ci0gICAgICBhc3NlcnRfdHJ1ZShyZWFkeVN0YXRlID09PSAnY29ubmVjdGluZycgfHwgcmVhZHlT
dGF0ZSA9PT0gJ29wZW4nLAotICAgICAgICAnRXhwZWN0IGNoYW5uZWwgcmVhZHkgc3RhdGUgdG8g
YmUgZWl0aGVyIGNvbm5lY3Rpbmcgb3Igb3BlbicpOwotICAgIH0pOworJ3VzZSBzdHJpY3QnOwor
CisvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcmV2aXNpb246CisvLyBodHRwczov
L3Jhd2dpdC5jb20vdzNjL3dlYnJ0Yy1wYy8xY2M1YmZjM2ZmMTg3NDEwMzNkODA0YzRhNzFmNzg5
MTI0MmZiNWIzL3dlYnJ0Yy5odG1sCisKKy8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9u
cyBhcmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgorLy8gZXhjaGFu
Z2VJY2VDYW5kaWRhdGVzCisvLyBleGNoYW5nZU9mZmVyQW5zd2VyCisvLyBjcmVhdGVEYXRhQ2hh
bm5lbFBhaXIKKworLyoKKyAgNi4yLiAgUlRDRGF0YUNoYW5uZWwKKyAgICBXaGVuIGFuIHVuZGVy
bHlpbmcgZGF0YSB0cmFuc3BvcnQgaXMgdG8gYmUgYW5ub3VuY2VkICh0aGUgb3RoZXIgcGVlciBj
cmVhdGVkIGEgY2hhbm5lbCB3aXRoCisgICAgbmVnb3RpYXRlZCB1bnNldCBvciBzZXQgdG8gZmFs
c2UpLCB0aGUgdXNlciBhZ2VudCBvZiB0aGUgcGVlciB0aGF0IGRpZCBub3QgaW5pdGlhdGUgdGhl
CisgICAgY3JlYXRpb24gcHJvY2VzcyBNVVNUIHF1ZXVlIGEgdGFzayB0byBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKKyAgICAgIDIuIExldCBjaGFubmVsIGJlIGEgbmV3bHkgY3JlYXRlZCBSVENE
YXRhQ2hhbm5lbCBvYmplY3QuCisgICAgICA3LiBTZXQgY2hhbm5lbCdzIFtbUmVhZHlTdGF0ZV1d
IHRvIG9wZW4gKGJ1dCBkbyBub3QgZmlyZSB0aGUgb3BlbiBldmVudCwgeWV0KS4KKyAgICAgIDgu
IEZpcmUgYSBkYXRhY2hhbm5lbCBldmVudCBuYW1lZCBkYXRhY2hhbm5lbCB3aXRoIGNoYW5uZWwg
YXQgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVjdC4KKworICA2LjMuICBSVENEYXRhQ2hhbm5l
bEV2ZW50CisgICAgRmlyaW5nIGEgZGF0YWNoYW5uZWwgZXZlbnQgbmFtZWQgZSB3aXRoIGFuIFJU
Q0RhdGFDaGFubmVsIGNoYW5uZWwgbWVhbnMgdGhhdCBhbiBldmVudCB3aXRoIHRoZQorICAgIG5h
bWUgZSwgd2hpY2ggZG9lcyBub3QgYnViYmxlIChleGNlcHQgd2hlcmUgb3RoZXJ3aXNlIHN0YXRl
ZCkgYW5kIGlzIG5vdCBjYW5jZWxhYmxlIChleGNlcHQKKyAgICB3aGVyZSBvdGhlcndpc2Ugc3Rh
dGVkKSwgYW5kIHdoaWNoIHVzZXMgdGhlIFJUQ0RhdGFDaGFubmVsRXZlbnQgaW50ZXJmYWNlIHdp
dGggdGhlIGNoYW5uZWwKKyAgICBhdHRyaWJ1dGUgc2V0IHRvIGNoYW5uZWwsIE1VU1QgYmUgY3Jl
YXRlZCBhbmQgZGlzcGF0Y2hlZCBhdCB0aGUgZ2l2ZW4gdGFyZ2V0LgorCisgICAgaW50ZXJmYWNl
IFJUQ0RhdGFDaGFubmVsRXZlbnQgOiBFdmVudCB7CisgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
UlRDRGF0YUNoYW5uZWwgY2hhbm5lbDsKKyAgICB9OworICovCitwcm9taXNlX3Rlc3QoYXN5bmMg
KHQpID0+IHsKKyAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKKyAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgbGV0IGV2ZW50Q291bnQgPSAwOworCisg
IHBjMi5vbmRhdGFjaGFubmVsID0gdC5zdGVwX2Z1bmMoKGV2ZW50KSA9PiB7CisgICAgZXZlbnRD
b3VudCsrOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRDb3VudCwgMSwKKyAgICAgICdFeHBlY3Qg
ZGF0YSBjaGFubmVsIGV2ZW50IHRvIGZpcmUgZXhhY3RseSBvbmNlJyk7CisKKyAgICBhc3NlcnRf
dHJ1ZShldmVudCBpbnN0YW5jZW9mIFJUQ0RhdGFDaGFubmVsRXZlbnQsCisgICAgICAnRXhwZWN0
IGV2ZW50IHRvIGJlIGluc3RhbmNlIG9mIFJUQ0RhdGFDaGFubmVsRXZlbnQnKTsKKworICAgIGFz
c2VydF9lcXVhbHMoZXZlbnQuYnViYmxlcywgZmFsc2UpOworICAgIGFzc2VydF9lcXVhbHMoZXZl
bnQuY2FuY2VsYWJsZSwgZmFsc2UpOworCisgICAgY29uc3QgZGMgPSBldmVudC5jaGFubmVsOwor
ICAgIGFzc2VydF90cnVlKGRjIGluc3RhbmNlb2YgUlRDRGF0YUNoYW5uZWwsCisgICAgICAnRXhw
ZWN0IGNoYW5uZWwgdG8gYmUgaW5zdGFuY2Ugb2YgUlRDRGF0YUNoYW5uZWwnKTsKKworICAgIC8v
IFRoZSBjaGFubmVsIHNob3VsZCBiZSBpbiB0aGUgJ29wZW4nIHN0YXRlIGFscmVhZHkuCisgICAg
Ly8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1wYy9wdWxsLzE4NTEKKyAgICBh
c3NlcnRfZXF1YWxzKGRjLnJlYWR5U3RhdGUsICdvcGVuJywKKyAgICAgICdFeHBlY3QgY2hhbm5l
bCByZWFkeSBzdGF0ZSB0byBiZSBvcGVuJyk7CisKKyAgICByZXNvbHZlci5yZXNvbHZlKCk7Cisg
IH0pOworCisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnZmlyZS1tZSEnKTsKKworICBleGNoYW5n
ZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBj
MSwgcGMyKTsKKworICBhd2FpdCByZXNvbHZlcjsKK30sICdEYXRhIGNoYW5uZWwgZXZlbnQgc2hv
dWxkIGZpcmUgd2hlbiBuZXcgZGF0YSBjaGFubmVsIGlzIGFubm91bmNlZCB0byB0aGUgcmVtb3Rl
IHBlZXInKTsKKworLyoKKyAgU2luY2UgdGhlIGNoYW5uZWwgc2hvdWxkIGJlIGluIHRoZSAnb3Bl
bicgc3RhdGUgd2hlbiBkaXNwYXRjaGluZyB2aWEgdGhlICdkYXRhY2hhbm5lbCcgZXZlbnQsCisg
IHdlIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQgZGF0YSBpbiB0aGUgZXZlbnQgaGFuZGxlci4KKyAq
LworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHJlc29sdmVyID0gbmV3IFJl
c29sdmVyKCk7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25z
dCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCi0gICAg
bG9jYWxQYy5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOwotCi0gICAgcmVtb3RlUGMuYWRkRXZl
bnRMaXN0ZW5lcignZGF0YWNoYW5uZWwnLCBvbkRhdGFDaGFubmVsKTsKLSAgICBleGNoYW5nZUlj
ZUNhbmRpZGF0ZXMobG9jYWxQYywgcmVtb3RlUGMpOwotICAgIGRvU2lnbmFsaW5nSGFuZHNoYWtl
KGxvY2FsUGMsIHJlbW90ZVBjKTsKLSAgfSwgJ2RhdGFjaGFubmVsIGV2ZW50IHNob3VsZCBmaXJl
IHdoZW4gbmV3IGRhdGEgY2hhbm5lbCBpcyBhbm5vdW5jZWQgdG8gdGhlIHJlbW90ZSBwZWVyJyk7
Ci0KLSAgLyoKLSAgICA2LjIuICBSVENEYXRhQ2hhbm5lbAotICAgICAgaW50ZXJmYWNlIFJUQ0Rh
dGFDaGFubmVsIDogRXZlbnRUYXJnZXQgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNW
U3RyaW5nICAgICAgICAgICBsYWJlbDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gICAgICAgICAgICAgb3JkZXJlZDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIHNob3J0PyAgICAgbWF4UGFja2V0TGlmZVRpbWU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBzaG9ydD8gICAgIG1heFJldHJhbnNtaXRzOwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgVVNWU3RyaW5nICAgICAgICAgICBwcm90b2NvbDsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgbmVnb3RpYXRlZDsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0PyAgICAgaWQ7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBSVENQcmlvcml0eVR5cGUgICAgIHByaW9yaXR5OwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgUlRDRGF0YUNoYW5uZWxTdGF0ZSByZWFkeVN0YXRlOwotICAgICAgICAuLi4K
LSAgICAgIH07Ci0KLSAgICAgIFdoZW4gYW4gdW5kZXJseWluZyBkYXRhIHRyYW5zcG9ydCBpcyB0
byBiZSBhbm5vdW5jZWQKLSAgICAgICAgMy4gIExldCBjb25maWd1cmF0aW9uIGJlIGFuIGluZm9y
bWF0aW9uIGJ1bmRsZSByZWNlaXZlZCBmcm9tIHRoZQotICAgICAgICAgICAgb3RoZXIgcGVlciBh
cyBhIHBhcnQgb2YgdGhlIHByb2Nlc3MgdG8gZXN0YWJsaXNoIHRoZSB1bmRlcmx5aW5nCi0gICAg
ICAgICAgICBkYXRhIHRyYW5zcG9ydCBkZXNjcmliZWQgYnkgdGhlIFdlYlJUQyBEYXRhQ2hhbm5l
bCBQcm90b2NvbAotICAgICAgICAgICAgc3BlY2lmaWNhdGlvbiBbUlRDV0VCLURBVEEtUFJPVE9D
T0xdLgotICAgICAgICA0LiAgSW5pdGlhbGl6ZSBjaGFubmVsJ3MgbGFiZWwsIG9yZGVyZWQsIG1h
eFBhY2tldExpZmVUaW1lLAotICAgICAgICAgICAgbWF4UmV0cmFuc21pdHMsIHByb3RvY29sLCBu
ZWdvdGlhdGVkIGFuZCBpZCBhdHRyaWJ1dGVzIHRvIHRoZWlyCi0gICAgICAgICAgICBjb3JyZXNw
b25kaW5nIHZhbHVlcyBpbiBjb25maWd1cmF0aW9uLgotICAgKi8KLSAgYXN5bmNfdGVzdCh0ID0+
IHsKLSAgICBjb25zdCBsb2NhbFBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBsb2NhbFBjLmNsb3NlKCkpOwotICAgIGNvbnN0IHJlbW90ZVBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0KLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHJlbW90
ZVBjLmNsb3NlKCkpOwotCi0gICAgY29uc3Qgb25EYXRhQ2hhbm5lbCA9IHQuc3RlcF9mdW5jX2Rv
bmUoZXZlbnQgPT4gewotICAgICAgY29uc3QgcmVtb3RlQ2hhbm5lbCA9IGV2ZW50LmNoYW5uZWw7
Ci0gICAgICBhc3NlcnRfdHJ1ZShyZW1vdGVDaGFubmVsIGluc3RhbmNlb2YgUlRDRGF0YUNoYW5u
ZWwsCi0gICAgICAgICdFeHBlY3QgY2hhbm5lbCB0byBiZSBpbnN0YW5jZSBvZiBSVENEYXRhQ2hh
bm5lbCcpOwotCi0gICAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZUNoYW5uZWwubGFiZWwsICd0ZXN0
Jyk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZUNoYW5uZWwuaWQsIDgpOwotICAgICAgYXNz
ZXJ0X2VxdWFscyhyZW1vdGVDaGFubmVsLm9yZGVyZWQsIGZhbHNlKTsKLSAgICAgIGFzc2VydF9l
cXVhbHMocmVtb3RlQ2hhbm5lbC5tYXhSZXRyYW5zbWl0cywgMSk7Ci0gICAgICBhc3NlcnRfZXF1
YWxzKHJlbW90ZUNoYW5uZWwucHJvdG9jb2wsICdjdXN0b20nKTsKLSAgICAgIGFzc2VydF9lcXVh
bHMocmVtb3RlQ2hhbm5lbC5wcmlvcml0eSwgJ2hpZ2gnKTsKKyAgY29uc3QgbWVzc2FnZSA9ICdt
ZW93IG1lb3chJzsKKworICBwYzIub25kYXRhY2hhbm5lbCA9IHQuc3RlcF9mdW5jKChldmVudCkg
PT4geworICAgIGNvbnN0IGRjMiA9IGV2ZW50LmNoYW5uZWw7CisgICAgZGMyLnNlbmQobWVzc2Fn
ZSk7CisgIH0pOworCisgIGNvbnN0IGRjMSA9IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnZmlyZS1t
ZSEnKTsKKyAgZGMxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKChldmVudCkgPT4geworICAgIGFz
c2VydF9lcXVhbHMoZXZlbnQuZGF0YSwgbWVzc2FnZSwKKyAgICAgICdSZWNlaXZlZCBkYXRhIHNo
b3VsZCBiZSBlcXVhbCB0byBzZW50IGRhdGEnKTsKKworICAgIHJlc29sdmVyLnJlc29sdmUoKTsK
KyAgfSk7CisKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhj
aGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisKKyAgYXdhaXQgcmVzb2x2ZXI7Cit9LCAnU2hv
dWxkIGJlIGFibGUgdG8gc2VuZCBkYXRhIGluIGEgZGF0YWNoYW5uZWwgZXZlbnQgaGFuZGxlcicp
OworCisvKgorICA2LjIuICBSVENEYXRhQ2hhbm5lbAorICAgIFdoZW4gYW4gdW5kZXJseWluZyBk
YXRhIHRyYW5zcG9ydCBpcyB0byBiZSBhbm5vdW5jZWQgKHRoZSBvdGhlciBwZWVyIGNyZWF0ZWQg
YSBjaGFubmVsIHdpdGgKKyAgICBuZWdvdGlhdGVkIHVuc2V0IG9yIHNldCB0byBmYWxzZSksIHRo
ZSB1c2VyIGFnZW50IG9mIHRoZSBwZWVyIHRoYXQgZGlkIG5vdCBpbml0aWF0ZSB0aGUKKyAgICBj
cmVhdGlvbiBwcm9jZXNzIE1VU1QgcXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgorICAgICAgOC4gRmlyZSBhIGRhdGFjaGFubmVsIGV2ZW50IG5hbWVkIGRhdGFjaGFubmVs
IHdpdGggY2hhbm5lbCBhdCB0aGUgUlRDUGVlckNvbm5lY3Rpb24gb2JqZWN0LgorICAgICAgOS4g
SWYgdGhlIGNoYW5uZWwncyBbW1JlYWR5U3RhdGVdXSBpcyBzdGlsbCBvcGVuLCBhbm5vdW5jZSB0
aGUgZGF0YSBjaGFubmVsIGFzIG9wZW4uCisgKi8KK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4g
eworICBjb25zdCByZXNvbHZlciA9IG5ldyBSZXNvbHZlcigpOworICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBwYzIub25kYXRhY2hhbm5lbCA9IHQuc3RlcF9mdW5j
KChldmVudCkgPT4geworICAgIGNvbnN0IGRjID0gZXZlbnQuY2hhbm5lbDsKKyAgICBkYy5vbm9w
ZW4gPSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdPcGVuIGV2
ZW50IHNob3VsZCBub3QgZmlyZScpOwogICAgIH0pOwogCi0gICAgY29uc3QgbG9jYWxDaGFubmVs
ID0gbG9jYWxQYy5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcsIHsKLSAgICAgIGlkOiA4LAotICAg
ICAgb3JkZXJlZDogZmFsc2UsCi0gICAgICBtYXhSZXRyYW5zbWl0czogMSwKLSAgICAgIHByb3Rv
Y29sOiAnY3VzdG9tJywKLSAgICAgIHByaW9yaXR5OiAnaGlnaCcKKyAgICAvLyBUaGlzIHNob3Vs
ZCBwcmV2ZW50IHRyaWdnZXJpbmcgdGhlICdvcGVuJyBldmVudAorICAgIGRjLmNsb3NlKCk7CisK
KyAgICAvLyBXYWl0IGEgYml0IHRvIGVuc3VyZSB0aGUgJ29wZW4nIGV2ZW50IGRvZXMgTk9UIGZp
cmUKKyAgICB0LnN0ZXBfdGltZW91dCgoKSA9PiByZXNvbHZlci5yZXNvbHZlKCksIDUwMCk7Cisg
IH0pOworCisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnZmlyZS1tZSEnKTsKKworICBleGNoYW5n
ZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBj
MSwgcGMyKTsKKworICBhd2FpdCByZXNvbHZlcjsKK30sICdPcGVuIGV2ZW50IHNob3VsZCBub3Qg
YmUgcmFpc2VkIHdoZW4gY2xvc2luZyB0aGUgY2hhbm5lbCBpbiB0aGUgZGF0YWNoYW5uZWwgZXZl
bnQnKTsKKworLy8gQWRkZWQgdGhpcyB0ZXN0IGFzIGEgcmVzdWx0IG9mIHRoZSBkaXNjdXNzaW9u
IGluCisvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1wYy9wdWxsLzE4NTEjZGlzY3Vz
c2lvbl9yMTg1OTc2NzQ3Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgcmVz
b2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xv
c2UoKSk7CisKKyAgcGMyLm9uZGF0YWNoYW5uZWwgPSB0LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsK
KyAgICBjb25zdCBkYyA9IGV2ZW50LmNoYW5uZWw7CisgICAgZGMub25vcGVuID0gdC5zdGVwX2Z1
bmMoKGV2ZW50KSA9PiB7CisgICAgICByZXNvbHZlci5yZXNvbHZlKCk7CiAgICAgfSk7CiAKLSAg
ICBhc3NlcnRfZXF1YWxzKGxvY2FsQ2hhbm5lbC5sYWJlbCwgJ3Rlc3QnKTsKLSAgICBhc3NlcnRf
ZXF1YWxzKGxvY2FsQ2hhbm5lbC5pZCwgOCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhsb2NhbENoYW5u
ZWwub3JkZXJlZCwgZmFsc2UpOwotICAgIGFzc2VydF9lcXVhbHMobG9jYWxDaGFubmVsLm1heFJl
dHJhbnNtaXRzLCAxKTsKLSAgICBhc3NlcnRfZXF1YWxzKGxvY2FsQ2hhbm5lbC5wcm90b2NvbCwg
J2N1c3RvbScpOwotICAgIGFzc2VydF9lcXVhbHMobG9jYWxDaGFubmVsLnByaW9yaXR5LCAnaGln
aCcpOwotCi0gICAgcmVtb3RlUGMuYWRkRXZlbnRMaXN0ZW5lcignZGF0YWNoYW5uZWwnLCBvbkRh
dGFDaGFubmVsKTsKLSAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMobG9jYWxQYywgcmVtb3RlUGMp
OwotICAgIGRvU2lnbmFsaW5nSGFuZHNoYWtlKGxvY2FsUGMsIHJlbW90ZVBjKTsKLSAgfSwgJ0Rh
dGEgY2hhbm5lbCBjcmVhdGVkIG9uIHJlbW90ZSBwZWVyIHNob3VsZCBtYXRjaCB0aGUgc2FtZSBj
b25maWd1cmF0aW9uIGFzIGxvY2FsIHBlZXInKTsKLQotICAvKgotICAgIDYuMi4gIFJUQ0RhdGFD
aGFubmVsCi0gICAgICBEaWN0aW9uYXJ5IFJUQ0RhdGFDaGFubmVsSW5pdCBNZW1iZXJzCi0gICAg
ICAgIG5lZ290aWF0ZWQKLSAgICAgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiBmYWxzZSB0ZWxs
cyB0aGUgdXNlciBhZ2VudCB0byBhbm5vdW5jZSB0aGUKLSAgICAgICAgICBjaGFubmVsIGluLWJh
bmQgYW5kIGluc3RydWN0IHRoZSBvdGhlciBwZWVyIHRvIGRpc3BhdGNoIGEgY29ycmVzcG9uZGlu
ZwotICAgICAgICAgIFJUQ0RhdGFDaGFubmVsIG9iamVjdC4gSWYgc2V0IHRvIHRydWUsIGl0IGlz
IHVwIHRvIHRoZSBhcHBsaWNhdGlvbgotICAgICAgICAgIHRvIG5lZ290aWF0ZSB0aGUgY2hhbm5l
bCBhbmQgY3JlYXRlIGEgUlRDRGF0YUNoYW5uZWwgb2JqZWN0IHdpdGggdGhlCi0gICAgICAgICAg
c2FtZSBpZCBhdCB0aGUgb3RoZXIgcGVlci4KLSAgICovCi0gIGFzeW5jX3Rlc3QodCA9PiB7Ci0g
ICAgY29uc3QgbG9jYWxQYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gbG9jYWxQYy5jbG9zZSgpKTsKLSAgICBjb25zdCByZW1vdGVQYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOwotCi0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiByZW1vdGVQYy5j
bG9zZSgpKTsKLQotICAgIGNvbnN0IG9uRGF0YUNoYW5uZWwgPSB0LnVucmVhY2hlZF9mdW5jKCdk
YXRhY2hhbm5lbCBldmVudCBzaG91bGQgbm90IGJlIGZpcmVkJyk7Ci0KLSAgICBsb2NhbFBjLmNy
ZWF0ZURhdGFDaGFubmVsKCd0ZXN0JywgewotICAgICAgbmVnb3RpYXRlZDogdHJ1ZQorICAgIC8v
IFRoaXMgc2hvdWxkIE5PVCBwcmV2ZW50IHRyaWdnZXJpbmcgdGhlICdvcGVuJyBldmVudCBzaW5j
ZSBpdCBlbnF1ZXVlcyBhdCBsZWFzdCB0d28gdGFza3MKKyAgICB0LnN0ZXBfdGltZW91dCgoKSA9
PiB7CisgICAgICB0LnN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAgIGRjLmNsb3NlKCkKKyAg
ICAgIH0sIDEpOworICAgIH0sIDEpOworICB9KTsKKworICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwo
J2ZpcmUtbWUhJyk7CisKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdh
aXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisKKyAgYXdhaXQgcmVzb2x2ZXI7Cit9
LCAnT3BlbiBldmVudCBzaG91bGQgYmUgcmFpc2VkIHdoZW4gY2xvc2luZyB0aGUgY2hhbm5lbCBp
biB0aGUgZGF0YWNoYW5uZWwgZXZlbnQgYWZ0ZXIgJyArCisgICdlbnF1ZXVpbmcgYSB0YXNrJyk7
CisKKworLyoKKyAgQ29tYmluYXRpb24gb2YgdGhlIHR3byB0ZXN0cyBhYm92ZSAoc2VuZCBhbmQg
Y2xvc2UpLgorICovCitwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgcmVzb2x2
ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2Uo
KSk7CisKKyAgY29uc3QgbWVzc2FnZSA9ICdtZW93IG1lb3chJzsKKworICBwYzIub25kYXRhY2hh
bm5lbCA9IHQuc3RlcF9mdW5jKChldmVudCkgPT4geworICAgIGNvbnN0IGRjMiA9IGV2ZW50LmNo
YW5uZWw7CisgICAgZGMyLm9ub3BlbiA9IHQuc3RlcF9mdW5jKCgpID0+IHsKKyAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoJ09wZW4gZXZlbnQgc2hvdWxkIG5vdCBmaXJlJyk7CiAgICAgfSk7CiAKLSAg
ICByZW1vdGVQYy5hZGRFdmVudExpc3RlbmVyKCdkYXRhY2hhbm5lbCcsIG9uRGF0YUNoYW5uZWwp
OwotICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhsb2NhbFBjLCByZW1vdGVQYyk7Ci0gICAgZG9T
aWduYWxpbmdIYW5kc2hha2UobG9jYWxQYywgcmVtb3RlUGMpOwotCi0gICAgdC5zdGVwX3RpbWVv
dXQodC5zdGVwX2Z1bmNfZG9uZSgpLCAyMDApOwotICB9LCAnRGF0YSBjaGFubmVsIGNyZWF0ZWQg
d2l0aCBuZWdvdGlhdGVkIHNldCB0byB0cnVlIHNob3VsZCBub3QgZmlyZSBkYXRhY2hhbm5lbCBl
dmVudCBvbiByZW1vdGUgcGVlcicpOwotCi0gIC8qCi0gICAgTm9uLXRlc3RhYmxlCi0gICAgNi4y
LiAgUlRDRGF0YUNoYW5uZWwKLSAgICAgIFdoZW4gYW4gdW5kZXJseWluZyBkYXRhIHRyYW5zcG9y
dCBpcyB0byBiZSBhbm5vdW5jZWQKLSAgICAgICAgMS4gIElmIHRoZSBhc3NvY2lhdGVkIFJUQ1Bl
ZXJDb25uZWN0aW9uIG9iamVjdCdzIFtbaXNDbG9zZWRdXSBzbG90Ci0gICAgICAgICAgICBpcyB0
cnVlLCBhYm9ydCB0aGVzZSBzdGVwcy4KLQotICAgIFRoZSBhYm92ZSBzdGVwIGlzIG5vdCB0ZXN0
YWJsZSBiZWNhdXNlIHRvIHJlYWNoIGl0IHdlIHdvdWxkIGhhdmUgdG8KLSAgICBjbG9zZSB0aGUg
cGVlciBjb25uZWN0aW9uIGFmdGVyIHRoZSByZW1vdGUgcGVlciBjYWxsCi0gICAgc2V0TG9jYWxE
ZXNjcmlwdGlvbihhbnN3ZXIpIGJ1dCBiZWZvcmUgdGhlIHVuZGVybHlpbmcgZGF0YSB0cmFuc3Bv
cnQKLSAgICBpcyBjb25uZWN0ZWQuIFRoaXMgcmVxdWlyZSB0aGUgcHJvbWlzZSBjYWxsYmFjayBm
b3Igc2V0TG9jYWxEZXNjcmlwdGlvbigpCi0gICAgdG8gYmUgY2FsbGVkIGF0IHRoZSByaWdodCBt
b21lbnQsIHdoaWNoIGlzIG5vdCBhbHdheXMgcG9zc2libGUuCi0gICAqLworICAgIC8vIFRoaXMg
c2hvdWxkIHNlbmQgYnV0IHN0aWxsIHByZXZlbnQgdHJpZ2dlcmluZyB0aGUgJ29wZW4nIGV2ZW50
CisgICAgZGMyLnNlbmQobWVzc2FnZSk7CisgICAgZGMyLmNsb3NlKCk7CisgIH0pOworCisgIGNv
bnN0IGRjMSA9IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnZmlyZS1tZSEnKTsKKyAgZGMxLm9ubWVz
c2FnZSA9IHQuc3RlcF9mdW5jKChldmVudCkgPT4geworICAgIGFzc2VydF9lcXVhbHMoZXZlbnQu
ZGF0YSwgbWVzc2FnZSwKKyAgICAgICdSZWNlaXZlZCBkYXRhIHNob3VsZCBiZSBlcXVhbCB0byBz
ZW50IGRhdGEnKTsKKworICAgIHJlc29sdmVyLnJlc29sdmUoKTsKKyAgfSk7CisKKyAgZXhjaGFu
Z2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihw
YzEsIHBjMik7CisKKyAgYXdhaXQgcmVzb2x2ZXI7Cit9LCAnT3BlbiBldmVudCBzaG91bGQgbm90
IGJlIHJhaXNlZCB3aGVuIHNlbmRpbmcgYW5kIGltbWVkaWF0ZWx5IGNsb3NpbmcgdGhlIGNoYW5u
ZWwgaW4gdGhlICcgKworICAnZGF0YWNoYW5uZWwgZXZlbnQnKTsKKworLyoKKyAgNi4yLiAgUlRD
RGF0YUNoYW5uZWwKKworICAgIGludGVyZmFjZSBSVENEYXRhQ2hhbm5lbCA6IEV2ZW50VGFyZ2V0
IHsKKyAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgICAgICAgICAgIGxhYmVsOwor
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgb3JkZXJlZDsKKyAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydD8gICAgIG1heFBhY2tldExpZmVU
aW1lOworICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0PyAgICAgbWF4UmV0
cmFuc21pdHM7CisgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nICAgICAgICAgICBw
cm90b2NvbDsKKyAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgIG5l
Z290aWF0ZWQ7CisgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQ/ICAgICBp
ZDsKKyAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENEYXRhQ2hhbm5lbFN0YXRlIHJlYWR5U3Rh
dGU7CisgICAgICAuLi4KKyAgICB9OworCisgICAgV2hlbiBhbiB1bmRlcmx5aW5nIGRhdGEgdHJh
bnNwb3J0IGlzIHRvIGJlIGFubm91bmNlZCAodGhlIG90aGVyIHBlZXIgY3JlYXRlZCBhIGNoYW5u
ZWwgd2l0aAorICAgIG5lZ290aWF0ZWQgdW5zZXQgb3Igc2V0IHRvIGZhbHNlKSwgdGhlIHVzZXIg
YWdlbnQgb2YgdGhlIHBlZXIgdGhhdCBkaWQgbm90IGluaXRpYXRlIHRoZQorICAgIGNyZWF0aW9u
IHByb2Nlc3MgTVVTVCBxdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Cisg
ICAgICAyLiBMZXQgY2hhbm5lbCBiZSBhIG5ld2x5IGNyZWF0ZWQgUlRDRGF0YUNoYW5uZWwgb2Jq
ZWN0LgorICAgICAgMy4gTGV0IGNvbmZpZ3VyYXRpb24gYmUgYW4gaW5mb3JtYXRpb24gYnVuZGxl
IHJlY2VpdmVkIGZyb20gdGhlIG90aGVyIHBlZXIgYXMgYSBwYXJ0IG9mIHRoZQorICAgICAgICAg
cHJvY2VzcyB0byBlc3RhYmxpc2ggdGhlIHVuZGVybHlpbmcgZGF0YSB0cmFuc3BvcnQgZGVzY3Jp
YmVkIGJ5IHRoZSBXZWJSVEMgRGF0YUNoYW5uZWwKKyAgICAgICAgIFByb3RvY29sIHNwZWNpZmlj
YXRpb24gW1JUQ1dFQi1EQVRBLVBST1RPQ09MXS4KKyAgICAgIDQuIEluaXRpYWxpemUgY2hhbm5l
bCdzIFtbRGF0YUNoYW5uZWxMYWJlbF1dLCBbW09yZGVyZWRdXSwgW1tNYXhQYWNrZXRMaWZlVGlt
ZV1dLAorICAgICAgICAgW1tNYXhSZXRyYW5zbWl0c11dLCBbW0RhdGFDaGFubmVsUHJvdG9jb2xd
XSwgYW5kIFtbRGF0YUNoYW5uZWxJZF1dIGludGVybmFsIHNsb3RzIHRvIHRoZQorICAgICAgICAg
Y29ycmVzcG9uZGluZyB2YWx1ZXMgaW4gY29uZmlndXJhdGlvbi4KKyAgICAgIDUuIEluaXRpYWxp
emUgY2hhbm5lbCdzIFtbTmVnb3RpYXRlZF1dIGludGVybmFsIHNsb3QgdG8gZmFsc2UuCisgICAg
ICA3LiBTZXQgY2hhbm5lbCdzIFtbUmVhZHlTdGF0ZV1dIHNsb3QgdG8gY29ubmVjdGluZy4KKyAg
ICAgIDguIEZpcmUgYSBkYXRhY2hhbm5lbCBldmVudCBuYW1lZCBkYXRhY2hhbm5lbCB3aXRoIGNo
YW5uZWwgYXQgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVjdC4KKworICAgIE5vdGU6IE1vcmUg
ZXhoYXVzdGl2ZSB0ZXN0cyBhcmUgZGVmaW5lZCBpbiBSVENEYXRhQ2hhbm5lbC1kY2VwCisgKi8K
KworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHJlc29sdmVyID0gbmV3IFJl
c29sdmVyKCk7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25z
dCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNv
bnN0IGRjMSA9IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcsIHsKKyAgICBvcmRlcmVkOiBm
YWxzZSwKKyAgICBtYXhSZXRyYW5zbWl0czogMSwKKyAgICBwcm90b2NvbDogJ2N1c3RvbScsCisg
IH0pOworCisgIGFzc2VydF9lcXVhbHMoZGMxLmxhYmVsLCAndGVzdCcpOworICBhc3NlcnRfZXF1
YWxzKGRjMS5vcmRlcmVkLCBmYWxzZSk7CisgIGFzc2VydF9lcXVhbHMoZGMxLm1heFBhY2tldExp
ZmVUaW1lLCBudWxsKTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEubWF4UmV0cmFuc21pdHMsIDEpOwor
ICBhc3NlcnRfZXF1YWxzKGRjMS5wcm90b2NvbCwgJ2N1c3RvbScpOworICBhc3NlcnRfZXF1YWxz
KGRjMS5uZWdvdGlhdGVkLCBmYWxzZSk7CisKKyAgcGMyLm9uZGF0YWNoYW5uZWwgPSB0LnN0ZXBf
ZnVuYygoZXZlbnQpID0+IHsKKyAgICBjb25zdCBkYzIgPSBldmVudC5jaGFubmVsOworICAgIGFz
c2VydF90cnVlKGRjMiBpbnN0YW5jZW9mIFJUQ0RhdGFDaGFubmVsLAorICAgICAgJ0V4cGVjdCBj
aGFubmVsIHRvIGJlIGluc3RhbmNlIG9mIFJUQ0RhdGFDaGFubmVsJyk7CisKKyAgICBhc3NlcnRf
ZXF1YWxzKGRjMi5sYWJlbCwgJ3Rlc3QnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMi5vcmRlcmVk
LCBmYWxzZSk7CisgICAgYXNzZXJ0X2VxdWFscyhkYzIubWF4UGFja2V0TGlmZVRpbWUsIG51bGwp
OworICAgIGFzc2VydF9lcXVhbHMoZGMyLm1heFJldHJhbnNtaXRzLCAxKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGRjMi5wcm90b2NvbCwgJ2N1c3RvbScpOworICAgIGFzc2VydF9lcXVhbHMoZGMyLm5l
Z290aWF0ZWQsIGZhbHNlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMi5pZCwgZGMxLmlkKTsKKwor
ICAgIHJlc29sdmVyLnJlc29sdmUoKTsKKyAgfSk7CisKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVz
KHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisKKyAg
YXdhaXQgcmVzb2x2ZXI7Cit9LCAnSW4tYmFuZCBuZWdvdGlhdGVkIGNoYW5uZWwgY3JlYXRlZCBv
biByZW1vdGUgcGVlciBzaG91bGQgbWF0Y2ggdGhlIHNhbWUgY29uZmlndXJhdGlvbiBhcyBsb2Nh
bCAnICsKKyAgJ3BlZXInKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0
IHJlc29sdmVyID0gbmV3IFJlc29sdmVyKCk7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworCisgIGNvbnN0IGRjMSA9IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnJyk7CisK
KyAgYXNzZXJ0X2VxdWFscyhkYzEubGFiZWwsICcnKTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEub3Jk
ZXJlZCwgdHJ1ZSk7CisgIGFzc2VydF9lcXVhbHMoZGMxLm1heFBhY2tldExpZmVUaW1lLCBudWxs
KTsKKyAgYXNzZXJ0X2VxdWFscyhkYzEubWF4UmV0cmFuc21pdHMsIG51bGwpOworICBhc3NlcnRf
ZXF1YWxzKGRjMS5wcm90b2NvbCwgJycpOworICBhc3NlcnRfZXF1YWxzKGRjMS5uZWdvdGlhdGVk
LCBmYWxzZSk7CisKKyAgcGMyLm9uZGF0YWNoYW5uZWwgPSB0LnN0ZXBfZnVuYygoZXZlbnQpID0+
IHsKKyAgICBjb25zdCBkYzIgPSBldmVudC5jaGFubmVsOworICAgIGFzc2VydF90cnVlKGRjMiBp
bnN0YW5jZW9mIFJUQ0RhdGFDaGFubmVsLAorICAgICAgJ0V4cGVjdCBjaGFubmVsIHRvIGJlIGlu
c3RhbmNlIG9mIFJUQ0RhdGFDaGFubmVsJyk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGRjMi5sYWJl
bCwgJycpOworICAgIGFzc2VydF9lcXVhbHMoZGMyLm9yZGVyZWQsIHRydWUpOworICAgIGFzc2Vy
dF9lcXVhbHMoZGMyLm1heFBhY2tldExpZmVUaW1lLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxz
KGRjMi5tYXhSZXRyYW5zbWl0cywgbnVsbCk7CisgICAgYXNzZXJ0X2VxdWFscyhkYzIucHJvdG9j
b2wsICcnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjMi5uZWdvdGlhdGVkLCBmYWxzZSk7CisgICAg
YXNzZXJ0X2VxdWFscyhkYzIuaWQsIGRjMS5pZCk7CisKKyAgICByZXNvbHZlci5yZXNvbHZlKCk7
CisgIH0pOworCisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IGV4
Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworCisgIGF3YWl0IHJlc29sdmVyOworfSwgJ0lu
LWJhbmQgbmVnb3RpYXRlZCBjaGFubmVsIGNyZWF0ZWQgb24gcmVtb3RlIHBlZXIgc2hvdWxkIG1h
dGNoIHRoZSBzYW1lIChkZWZhdWx0KSAnICsKKyAgJ2NvbmZpZ3VyYXRpb24gYXMgbG9jYWwgcGVl
cicpOworCisvKgorICA2LjIuICBSVENEYXRhQ2hhbm5lbAorICAgIERpY3Rpb25hcnkgUlRDRGF0
YUNoYW5uZWxJbml0IE1lbWJlcnMKKyAgICAgIG5lZ290aWF0ZWQKKyAgICAgICAgVGhlIGRlZmF1
bHQgdmFsdWUgb2YgZmFsc2UgdGVsbHMgdGhlIHVzZXIgYWdlbnQgdG8gYW5ub3VuY2UgdGhlCisg
ICAgICAgIGNoYW5uZWwgaW4tYmFuZCBhbmQgaW5zdHJ1Y3QgdGhlIG90aGVyIHBlZXIgdG8gZGlz
cGF0Y2ggYSBjb3JyZXNwb25kaW5nCisgICAgICAgIFJUQ0RhdGFDaGFubmVsIG9iamVjdC4gSWYg
c2V0IHRvIHRydWUsIGl0IGlzIHVwIHRvIHRoZSBhcHBsaWNhdGlvbgorICAgICAgICB0byBuZWdv
dGlhdGUgdGhlIGNoYW5uZWwgYW5kIGNyZWF0ZSBhIFJUQ0RhdGFDaGFubmVsIG9iamVjdCB3aXRo
IHRoZQorICAgICAgICBzYW1lIGlkIGF0IHRoZSBvdGhlciBwZWVyLgorICovCitwcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKKyAg
Y29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgcGMyLm9uZGF0YWNoYW5u
ZWwgPSB0LnVucmVhY2hlZF9mdW5jKCdkYXRhY2hhbm5lbCBldmVudCBzaG91bGQgbm90IGJlIGZp
cmVkJyk7CisKKyAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0JywgeworICAgIG5lZ290aWF0
ZWQ6IHRydWUsCisgICAgaWQ6IDQyCisgIH0pOworCisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhw
YzEsIHBjMik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworCisgIC8v
IFdhaXQgYSBiaXQgdG8gZW5zdXJlIHRoZSAnZGF0YWNoYW5uZWwnIGV2ZW50IGRvZXMgTk9UIGZp
cmUKKyAgdC5zdGVwX3RpbWVvdXQoKCkgPT4gcmVzb2x2ZXIucmVzb2x2ZSgpLCA1MDApOworICBh
d2FpdCByZXNvbHZlcjsKK30sICdOZWdvdGlhdGVkIGNoYW5uZWwgc2hvdWxkIG5vdCBmaXJlIGRh
dGFjaGFubmVsIGV2ZW50IG9uIHJlbW90ZSBwZWVyJyk7CisKKy8qCisgIE5vbi10ZXN0YWJsZQor
ICA2LjIuICBSVENEYXRhQ2hhbm5lbAorICAgIFdoZW4gYW4gdW5kZXJseWluZyBkYXRhIHRyYW5z
cG9ydCBpcyB0byBiZSBhbm5vdW5jZWQKKyAgICAgIDEuICBJZiB0aGUgYXNzb2NpYXRlZCBSVENQ
ZWVyQ29ubmVjdGlvbiBvYmplY3QncyBbW2lzQ2xvc2VkXV0gc2xvdAorICAgICAgICAgIGlzIHRy
dWUsIGFib3J0IHRoZXNlIHN0ZXBzLgorCisgIFRoZSBhYm92ZSBzdGVwIGlzIG5vdCB0ZXN0YWJs
ZSBiZWNhdXNlIHRvIHJlYWNoIGl0IHdlIHdvdWxkIGhhdmUgdG8KKyAgY2xvc2UgdGhlIHBlZXIg
Y29ubmVjdGlvbiBqdXN0IGJldHdlZW4gcmVjZWl2aW5nIHRoZSBpbi1iYW5kIG5lZ290aWF0ZWQg
ZGF0YQorICBjaGFubmVsIHZpYSBEQ0VQIGFuZCBmaXJpbmcgdGhlIGRhdGFjaGFubmVsIGV2ZW50
LgorICovCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uaWNlY2FuZGlkYXRl
ZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25pY2VjYW5kaWRhdGVlcnJv
ci5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRhMjIzYWM2Yzk0Mzg5NmRiMDM5MTUw
M2M1ZTFjYzhiNzE3YmMxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uaWNlY2Fu
ZGlkYXRlZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitIYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBTdXJmYWNpbmcgb25p
Y2VjYW5kaWRhdGVlcnJvciBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1vbmljZWNhbmRpZGF0ZWVycm9yLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmljZWNhbmRp
ZGF0ZWVycm9yLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDk2Y2M5ZGQxYTE1YjBlMzVjZmFlNTBj
N2JiODcyYjg3NjY3MmFkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uaWNlY2Fu
ZGlkYXRlZXJyb3IuaHR0cHMuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBl
Lm9uaWNlY2FuZGlkYXRlZXJyb3I8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IGNvbmZpZyA9IHsKKyAgICBpY2VTZXJ2ZXJzOiBbe3VybHM6ICJ0dXJuOjEyMyIs
IHVzZXJuYW1lOiAiMTIzIiwgY3JlZGVudGlhbDogIjEyMyJ9XQorICB9OworICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOworICBjb25zdCBvbkVycm9yUHJvbWlzZSA9IGFkZEV2ZW50TGlzdGVuZXJQcm9t
aXNlKHQsIHBjLCAnaWNlY2FuZGlkYXRlZXJyb3InLCBldmVudCA9PiB7CisgICAgIGFzc2VydF90
cnVlKGV2ZW50IGluc3RhbmNlb2YgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50LAorICAg
ICAgJ0V4cGVjdCBldmVudCB0byBiZSBpbnN0YW5jZSBvZiBSVENQZWVyQ29ubmVjdGlvbkljZUVy
cm9yRXZlbnQnKTsKKyAgICAvLyBEbyBub3QgaGFyZGNvZGUgYW55IHNwZWNpZmljIGVycm9ycyBo
ZXJlLiBJbnN0ZWFkIG9ubHkgdmVyaWZ5CisgICAgLy8gdGhhdCBhbGwgdGhlIGZpZWxkcyBjb250
YWluIHNvbWV0aGluZyBleHBlY3RlZC4KKyAgICAvLyBUZXN0aW5nIG9mIGV2ZW50LmVycm9yVGV4
dCBjYW4gYmUgYWRkZWQgbGF0ZXIgb25jZSBpdCdzIGNvbnRlbnQgaXMKKyAgICAvLyBzcGVjaWZp
ZWQgaW4gc3BlYyB3aXRoIG1vcmUgZGV0YWlsLgorICAgIGFzc2VydF90cnVlKGV2ZW50LmVycm9y
Q29kZSA+PSAzMDAgJiYgZXZlbnQuZXJyb3JDb2RlIDw9IDc5OSwgImVycm9yQ29kZSIpOworICAg
IGlmIChldmVudC5wb3J0ID09IDApIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuYWRkcmVz
cywgbnVsbCk7CisgICAgfSBlbHNlIHsKKyAgICAgIGFzc2VydF90cnVlKGV2ZW50LmFkZHJlc3Mu
aW5jbHVkZXMoIi4iKSB8fCBldmVudC5hZGRyZXNzLmluY2x1ZGVzKCI6IikpOworICAgIH0KKyAg
ICBhc3NlcnRfdHJ1ZShldmVudC51cmwuaW5jbHVkZXMoIjEyMyIpLCAidXJsIik7CisgIH0pOwor
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86dHJ1ZX0pOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRy
YWNrLnN0b3AoKSkpOworICBwYy5hZGRUcmFjayhzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwg
c3RyZWFtKTsKKworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjLmNyZWF0
ZU9mZmVyKCkpOworICBhd2FpdCBvbkVycm9yUHJvbWlzZTsKK30sICdTdXJmYWNpbmcgb25pY2Vj
YW5kaWRhdGVlcnJvcicpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9u
bmVnb3RpYXRpb25uZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQu
aHRtbAppbmRleCBmN2JmOGJkM2UzYmRjMjRjNjNhOTJkYTIyZWFhZTc3Yjk1ZjBkNGZkLi4yZWRh
N2I1YjM0MWNhOTY1ZGNhOTcwY2RmYTVjNzNiMmY1N2UzMTg5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlh
dGlvbm5lZWRlZC5odG1sCkBAIC0xMSw2ICsxMSw3IEBACiAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKIAogICAvLyBUaGUg
Zm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0
aW9uLWhlbHBlci5qczoKKyAgLy8gICBnZW5lcmF0ZU9mZmVyCiAgIC8vICAgZ2VuZXJhdGVBbnN3
ZXIKICAgLy8gICBnZW5lcmF0ZUF1ZGlvUmVjZWl2ZU9ubHlPZmZlcgogICAvLyAgIHRlc3RfbmV2
ZXJfcmVzb2x2ZQpAQCAtMTkzLDE2ICsxOTQsMjE5IEBACiAgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKIAogICAgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHJlc29s
dmUpOworCiAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOwogICAgIGF3
YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOwogICAgIGxldCBmaXJlZCA9IGZhbHNl
OwogICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBlID0+IGZpcmVkID0gdHJ1ZTsKICAgICBw
Yy5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2Ny
aXB0aW9uKGF3YWl0IGdlbmVyYXRlQW5zd2VyKG9mZmVyKSk7CisgICAgYXdhaXQgdW5kZWZpbmVk
OworICAgIGFzc2VydF9mYWxzZShmaXJlZCwgIm5lZ290aWF0aW9ubmVlZGVkIHNob3VsZCBub3Qg
ZmlyZSB1bnRpbCB0aGUgbmV4dCBpdGVyYXRpb24gb2YgdGhlIGV2ZW50IGxvb3AgYWZ0ZXIgU1JE
IHN1Y2Nlc3MiKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9ubmVnb3Rp
YXRpb25uZWVkZWQgPSByZXNvbHZlKTsKKyAgfSwgJ25lZ290aWF0aW9ubmVlZGVkIGV2ZW50IHNo
b3VsZCBmaXJlIG9ubHkgYWZ0ZXIgc2lnbmFsaW5nIHN0YXRlIGdvZXMgYmFjayB0byBzdGFibGUg
YWZ0ZXIgc2V0UmVtb3RlRGVzY3JpcHRpb24nKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlv
Jyk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVl
ZGVkID0gcmVzb2x2ZSk7CisKKyAgICBsZXQgZmlyZWQgPSBmYWxzZTsKKyAgICBwYy5vbm5lZ290
aWF0aW9ubmVlZGVkID0gZSA9PiBmaXJlZCA9IHRydWU7CisgICAgYXdhaXQgcGMuc2V0UmVtb3Rl
RGVzY3JpcHRpb24oYXdhaXQgZ2VuZXJhdGVPZmZlcigpKTsKKyAgICBwYy5jcmVhdGVEYXRhQ2hh
bm5lbCgndGVzdCcpOworICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMu
Y3JlYXRlQW5zd2VyKCkpOworICAgIGF3YWl0IHVuZGVmaW5lZDsKKyAgICBhc3NlcnRfZmFsc2Uo
ZmlyZWQsICJuZWdvdGlhdGlvbm5lZWRlZCBzaG91bGQgbm90IGZpcmUgdW50aWwgdGhlIG5leHQg
aXRlcmF0aW9uIG9mIHRoZSBldmVudCBsb29wIGFmdGVyIFNMRCBzdWNjZXNzIik7CisKKyAgICBh
d2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNv
bHZlKTsKKyAgfSwgJ25lZ290aWF0aW9ubmVlZGVkIGV2ZW50IHNob3VsZCBmaXJlIG9ubHkgYWZ0
ZXIgc2lnbmFsaW5nIHN0YXRlIGdvZXMgYmFjayB0byBzdGFibGUgYWZ0ZXIgc2V0TG9jYWxEZXNj
cmlwdGlvbicpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5j
bG9zZSgpKTsKKworICAgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHJlc29sdmUpOwor
CisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICAgIGF3YWl0IHBj
LnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGxldCBmaXJlZCA9IGZhbHNlOworICAg
IHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBlID0+IGZpcmVkID0gdHJ1ZTsKKyAgICBwYy5jcmVh
dGVEYXRhQ2hhbm5lbCgndGVzdCcpOworICAgIGNvbnN0IHAgPSBwYy5zZXRSZW1vdGVEZXNjcmlw
dGlvbihhd2FpdCBnZW5lcmF0ZUFuc3dlcihvZmZlcikpOworICAgIGF3YWl0IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gcGMub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9IHJlc29sdmUpOworICAgIGFz
c2VydF9mYWxzZShmaXJlZCwgIm5lZ290aWF0aW9ubmVlZGVkIHNob3VsZCBub3QgZmlyZSBiZWZv
cmUgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZmlyZXMiKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNvbHZlKTsKKyAgICBhd2FpdCBw
OworICB9LCAnbmVnb3RpYXRpb25uZWVkZWQgZXZlbnQgc2hvdWxkIGZpcmUgb25seSBhZnRlciBz
aWduYWxpbmdzdGF0ZWNoYW5nZSBldmVudCBmaXJlcyBmcm9tIHNldFJlbW90ZURlc2NyaXB0aW9u
Jyk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
KworICAgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAgIGF3YWl0IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHJlc29sdmUpOworCisgICAgbGV0
IGZpcmVkID0gZmFsc2U7CisgICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IGUgPT4gZmlyZWQg
PSB0cnVlOworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IGdlbmVyYXRl
T2ZmZXIoKSk7CisgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKworICAgIGNvbnN0
IHAgPSBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpKTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2Ug
PSByZXNvbHZlKTsKKyAgICBhc3NlcnRfZmFsc2UoZmlyZWQsICJuZWdvdGlhdGlvbm5lZWRlZCBz
aG91bGQgbm90IGZpcmUgdW50aWwgdGhlIG5leHQgaXRlcmF0aW9uIG9mIHRoZSBldmVudCBsb29w
IGFmdGVyIHJldHVybmluZyB0byBzdGFibGUiKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNvbHZlKTsKKyAgICBhd2FpdCBwOwor
ICB9LCAnbmVnb3RpYXRpb25uZWVkZWQgZXZlbnQgc2hvdWxkIGZpcmUgb25seSBhZnRlciBzaWdu
YWxpbmdzdGF0ZWNoYW5nZSBldmVudCBmaXJlcyBmcm9tIHNldExvY2FsRGVzY3JpcHRpb24nKTsK
KworICAvKgorICAgIDUuMS4gIFJUQ1BlZXJDb25uZWN0aW9uIEludGVyZmFjZSBFeHRlbnNpb25z
CisKKyAgICAgIGFkZFRyYWNrCisgICAgICAgIDEwLiBVcGRhdGUgdGhlIG5lZ290aWF0aW9uLW5l
ZWRlZCBmbGFnIGZvciBjb25uZWN0aW9uLgorICAqLworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0
Tm9pc2VTdHJlYW0oeyBhdWRpbzogdHJ1ZSB9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0
cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIGNv
bnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgcGMuYWRkVHJhY2sodHJhY2ss
IHN0cmVhbSk7CisKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9ubmVnb3Rp
YXRpb25uZWVkZWQgPSByZXNvbHZlKTsKKyAgfSwgJ2FkZFRyYWNrIHNob3VsZCBjYXVzZSBuZWdv
dGlhdGlvbm5lZWRlZCB0byBmaXJlJyk7CisKKyAgLyoKKyAgICA1LjEuICBSVENQZWVyQ29ubmVj
dGlvbiBJbnRlcmZhY2UgRXh0ZW5zaW9ucworCisgICAgICByZW1vdmVUcmFjaworICAgICAgICAx
Mi4gVXBkYXRlIHRoZSBuZWdvdGlhdGlvbi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KKyAg
Ki8KKyAgYXN5bmNfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAg
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7IGF1ZGlvOiB0cnVlIH0pOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sg
PT4gdHJhY2suc3RvcCgpKSk7CisgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3Mo
KTsKKyAgICBjb25zdCBzZW5kZXIgPSBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAgICBw
Yy5vbm5lZ290aWF0aW9ubmVlZGVkID0gdC5zdGVwX2Z1bmMoYXN5bmMgKCkgPT4geworICAgICAg
cGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHQuc3RlcF9mdW5jKGFzeW5jICgpID0+IHsKKyAgICAg
ICAgYXNzZXJ0X3VucmVhY2hlZCgnb25uZWdvdGlhdGlvbm5lZWRlZCBtaXNmaXJlZCcpOworICAg
ICAgfSk7CisgICAgICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgICAg
ICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKworICAgICAgY29uc3QgYW5z
d2VyID0gYXdhaXQgZ2VuZXJhdGVBbnN3ZXIob2ZmZXIpOworICAgICAgYXdhaXQgcGMuc2V0UmVt
b3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICAgICAgcGMucmVtb3ZlVHJhY2soc2VuZGVyKTsK
KyAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcGMub25uZWdvdGlhdGlvbm5lZWRl
ZCA9IHJlc29sdmUpCisgICAgICB0LmRvbmUoKTsKKyAgICB9KTsKKyAgfSwgJ3JlbW92ZVRyYWNr
IHNob3VsZCBjYXVzZSBuZWdvdGlhdGlvbm5lZWRlZCB0byBmaXJlIG9uIHRoZSBjYWxsZXInKTsK
KworICAvKgorICAgIDUuMS4gIFJUQ1BlZXJDb25uZWN0aW9uIEludGVyZmFjZSBFeHRlbnNpb25z
CisKKyAgICAgIHJlbW92ZVRyYWNrCisgICAgICAgIDEyLiBVcGRhdGUgdGhlIG5lZ290aWF0aW9u
LW5lZWRlZCBmbGFnIGZvciBjb25uZWN0aW9uLgorICAqLworICBhc3luY190ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICAgIGNhbGxlci5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nLCB7ZGlyZWN0aW9uOidyZWN2b25seSd9KTsKKyAgICBjb25zdCBvZmZlciA9
IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOworCisgICAgY29uc3QgY2FsbGVlID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2Uo
KSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7IGF1ZGlvOiB0
cnVlIH0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVh
Y2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5n
ZXRUcmFja3MoKTsKKyAgICBjb25zdCBzZW5kZXIgPSBjYWxsZWUuYWRkVHJhY2sodHJhY2ssIHN0
cmVhbSk7CisKKyAgICBjYWxsZWUub25uZWdvdGlhdGlvbm5lZWRlZCA9IHQuc3RlcF9mdW5jKGFz
eW5jICgpID0+IHsKKyAgICAgIGNhbGxlZS5vbm5lZ290aWF0aW9ubmVlZGVkID0gdC5zdGVwX2Z1
bmMoYXN5bmMgKCkgPT4geworICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdvbm5lZ290aWF0aW9u
bmVlZGVkIG1pc2ZpcmVkJyk7CisgICAgICB9KTsKKyAgICAgIGF3YWl0IGNhbGxlZS5zZXRSZW1v
dGVEZXNjcmlwdGlvbihvZmZlcik7CisgICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBjYWxsZWUu
Y3JlYXRlQW5zd2VyKCk7CisgICAgICBjYWxsZWUuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIp
OworCisgICAgICBjYWxsZWUucmVtb3ZlVHJhY2soc2VuZGVyKTsKKyAgICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gY2FsbGVlLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNvbHZlKQor
ICAgICAgdC5kb25lKCk7CisgICAgfSk7CisgIH0sICdyZW1vdmVUcmFjayBzaG91bGQgY2F1c2Ug
bmVnb3RpYXRpb25uZWVkZWQgdG8gZmlyZSBvbiB0aGUgY2FsbGVlJyk7CisKKyAgLyoKKyAgICA1
LjQuICBSVENSdHBUcmFuc2NlaXZlciBJbnRlcmZhY2UKKworICAgICAgc2V0RGlyZWN0aW9uCisg
ICAgICAgIDcuICBVcGRhdGUgdGhlIG5lZ290aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25uZWN0
aW9uLgorICAqLworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3Nl
KCkpOworCisgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8n
LCB7ZGlyZWN0aW9uOidzZW5kcmVjdid9KTsKKyAgICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNy
ZWF0ZU9mZmVyKCk7CisgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CiAg
ICAgY29uc3QgYW5zd2VyID0gYXdhaXQgZ2VuZXJhdGVBbnN3ZXIob2ZmZXIpOwogICAgIGF3YWl0
IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7Ci0gICAgYXNzZXJ0X2ZhbHNlKGZpcmVk
LCAibmVnb3RpYXRpb25uZWVkZWQgc2hvdWxkIG5vdCBmaXJlIHVudGlsIHRoZSBuZXh0IGl0ZXJh
dGlvbiBvZiB0aGUgZXZlbnQgbG9vcCBhZnRlciByZXR1cm5pbmcgdG8gc3RhYmxlIik7CisgICAg
dHJhbnNjZWl2ZXIuZGlyZWN0aW9uID0gJ3JlY3Zvbmx5JzsKKyAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNvbHZlKTsKKyAgfSwgJ1Vw
ZGF0aW5nIHRoZSBkaXJlY3Rpb24gb2YgdGhlIHRyYW5zY2VpdmVyIHNob3VsZCBjYXVzZSBuZWdv
dGlhdGlvbm5lZWRlZCB0byBmaXJlJyk7CisKKyAgLyoKKyAgICA1LjIuICBSVENSdHBTZW5kZXIg
SW50ZXJmYWNlCisKKyAgICAgIHNldFN0cmVhbXMKKyAgICAgICAgNy4gIFVwZGF0ZSB0aGUgbmVn
b3RpYXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24uCisgICovCisgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBjb25zdCB0cmFuc2Nl
aXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHtkaXJlY3Rpb246J3NlbmRyZWN2J30p
OworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICBhd2FpdCBw
Yy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBn
ZW5lcmF0ZUFuc3dlcihvZmZlcik7CisgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24o
YW5zd2VyKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBNZWRpYVN0cmVhbSgpOworICAgIHRy
YW5zY2VpdmVyLnNlbmRlci5zZXRTdHJlYW1zKHN0cmVhbSk7CiAgICAgYXdhaXQgbmV3IFByb21p
c2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcmVzb2x2ZSk7Ci0gIH0sICdu
ZWdvdGlhdGlvbm5lZWRlZCBldmVudCBzaG91bGQgZmlyZSBvbmx5IGFmdGVyIHNpZ25hbGluZyBz
dGF0ZSBnbyBiYWNrIHRvIHN0YWJsZScpOworICB9LCAnQ2FsbGluZyBzZXRTdHJlYW1zIHNob3Vs
ZCBjYXVzZSBuZWdvdGlhdGlvbm5lZWRlZCB0byBmaXJlJyk7CisKKyAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkp
OworCisgICAgbGV0IG5lZ290aWF0aW9uQ291bnQgPSAwOworICAgIHBjMS5vbm5lZ290aWF0aW9u
bmVlZGVkID0gYXN5bmMgKCkgPT4geworICAgICAgbmVnb3RpYXRpb25Db3VudCsrOworICAgICAg
YXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOwor
ICAgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKKyAgICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVB
bnN3ZXIoKSk7CisgICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2Fs
RGVzY3JpcHRpb24pOworICAgIH0KKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsK
KyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0g
KCkgPT4gcGMxLnNpZ25hbGluZ1N0YXRlID09ICJzdGFibGUiICYmIHIoKSk7CisgICAgcGMxLmFk
ZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9u
c2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSAoKSA9PiBwYzEuc2lnbmFsaW5nU3RhdGUgPT0gInN0YWJs
ZSIgJiYgcigpKTsKKyAgICBhc3NlcnRfZXF1YWxzKG5lZ290aWF0aW9uQ291bnQsIDIpOworICB9
LCAnQWRkaW5nIHR3byB0cmFuc2NlaXZlcnMsIG9uZSBhdCBhIHRpbWUsIHJlc3VsdHMgaW4gdGhl
IGV4cGVjdGVkIG51bWJlciBvZiBuZWdvdGlhdGlvbm5lZWRlZCBldmVudHMnKTsKIAogICAvKgog
ICAgIFRPRE8KQEAgLTI0MywxOSArNDQ3LDggQEAKICAgICAgIFdoZW4gdGhlIFJUQ1BlZXJDb25u
ZWN0aW9uKCkgY29uc3RydWN0b3IgaXMgaW52b2tlZAogICAgICAgICA3LiAgTGV0IGNvbm5lY3Rp
b24gaGF2ZSBhIFtbbmVlZE5lZ290aWF0aW9uXV0gaW50ZXJuYWwgc2xvdCwgaW5pdGlhbGl6ZWQg
dG8gZmFsc2UuCiAKLSAgICA1LjEuICBSVENQZWVyQ29ubmVjdGlvbiBJbnRlcmZhY2UgRXh0ZW5z
aW9ucwotCi0gICAgICBhZGRUcmFjawotICAgICAgICAxMC4gVXBkYXRlIHRoZSBuZWdvdGlhdGlv
bi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KLQotICAgICAgcmVtb3ZlVHJhY2sKLSAgICAg
ICAgMTIuIFVwZGF0ZSB0aGUgbmVnb3RpYXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24u
Ci0KICAgICA1LjQuICBSVENSdHBUcmFuc2NlaXZlciBJbnRlcmZhY2UKIAotICAgICAgc2V0RGly
ZWN0aW9uCi0gICAgICAgIDcuICBVcGRhdGUgdGhlIG5lZ290aWF0aW9uLW5lZWRlZCBmbGFnIGZv
ciBjb25uZWN0aW9uLgotCiAgICAgICBzdG9wCiAgICAgICAgIDExLiBVcGRhdGUgdGhlIG5lZ290
aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25uZWN0aW9uLgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZDcw
OTcwNGQ2Mjk1YjkzMjljYzEzOGNhOTNkZWI1YWJjZjg5MDE2Mi4uYzI4MTZjYTYzOWI5OTM2OTBi
MDQwZDBiOWM2NGFiYTU0OWU5MmVkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxp
bmdzdGF0ZWNoYW5nZWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2ln
bmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDQgQEAKIAot
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBvbnNpZ25hbGluZ3N0YXRlY2hhbmdlZCAKK1BBU1MgTmVn
b3RpYXRpb24gbWV0aG9kcyBmaXJlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50cyAKK0ZBSUwg
Q2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBzaWduYWxpbmdzdGF0ZWNo
YW5nZSBldmVudCBhc3NlcnRfdW5yZWFjaGVkOiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwKaW5kZXgg
ZmMzMTgyZDNkNTllYTViYTgwY2JjZjAyMmE3NmM0ZmM0MGYxOGExYS4uMGM4NDA1NzcwYjYxNmQx
ZDBmM2JlMjI2YTgxNTc4MGNjMWFkMDQxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWdu
YWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGlu
Z3N0YXRlY2hhbmdlZC5odHRwcy5odG1sCkBAIC03LDcgKzcsNyBAQAogPHNjcmlwdD4KIAogcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25zdCBbdHJhY2tdID0gKGF3YWl0IG5hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0pKS5nZXRUcmFja3MoKTsK
KyAgY29uc3QgW3RyYWNrXSA9IChhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KSku
Z2V0VHJhY2tzKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4gdHJhY2suc3RvcCgpKTsKICAgY29u
c3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOwpAQCAtMTUsMTYgKzE1LDQyIEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CiAgIHBjMS5hZGRUcmFjayh0
cmFjaywgbmV3IE1lZGlhU3RyZWFtKCkpOwogICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlv
bihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgIGNvbnN0IGV2ZW50cyA9IFtdOworICBwYzIu
b25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9IHQuc3RlcF9mdW5jKGUgPT4geworICAgIGNvbnN0IFt0
cmFuc2NlaXZlcl0gPSBwYzIuZ2V0VHJhbnNjZWl2ZXJzKCk7CisgICAgYXNzZXJ0X2VxdWFscyh0
cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCBudWxsKTsKKyAgICBldmVudHMucHVzaChwYzIu
c2lnbmFsaW5nU3RhdGUpOworICB9KTsKICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9u
KHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKLSAgY29uc3Qgc2lnbmFsaW5nU3RhdGVDaGFuZ2VSZXNv
bHZlciA9IG5ldyBSZXNvbHZlcigpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50cy5sZW5ndGgsIDEs
ICJldmVudCBmaXJlZCIpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50c1swXSwgImhhdmUtcmVtb3Rl
LW9mZmVyIik7CisKICAgcGMyLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSB0LnN0ZXBfZnVuYyhl
ID0+IHsKLSAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXTsK
LSAgICBhc3NlcnRfZXF1YWxzKHBjMi5zaWduYWxpbmdTdGF0ZSwgInN0YWJsZSIpOworICAgIGNv
bnN0IFt0cmFuc2NlaXZlcl0gPSBwYzIuZ2V0VHJhbnNjZWl2ZXJzKCk7CiAgICAgYXNzZXJ0X2Vx
dWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAicmVjdm9ubHkiKTsKLSAgICBzaWdu
YWxpbmdTdGF0ZUNoYW5nZVJlc29sdmVyLnJlc29sdmUoKTsKKyAgICBldmVudHMucHVzaChwYzIu
c2lnbmFsaW5nU3RhdGUpOwogICB9KTsKICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24o
YXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKLSAgYXdhaXQgc2lnbmFsaW5nU3RhdGVDaGFuZ2VS
ZXNvbHZlcjsKLX0pOworICBhc3NlcnRfZXF1YWxzKGV2ZW50cy5sZW5ndGgsIDIsICJldmVudCBm
aXJlZCIpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50c1sxXSwgInN0YWJsZSIpOworfSwgJ05lZ290
aWF0aW9uIG1ldGhvZHMgZmlyZSBzaWduYWxpbmdzdGF0ZWNoYW5nZSBldmVudHMnKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lz
ZVN0cmVhbSh7IGF1ZGlvOiB0cnVlIH0pOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5n
ZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworCisgIHN0cmVhbS5n
ZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHBjMS5hZGRUcmFjayh0cmFjaywgc3RyZWFtKSk7
CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGV4Y2hhbmdlT2ZmZXJBbnN3
ZXIocGMxLCBwYzIpOworICBhd2FpdCBsaXN0ZW5Ub0ljZUNvbm5lY3RlZChwYzIpOworCisgIHBj
Mi5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gdC51bnJlYWNoZWRfZnVuYygpOworICBwYzIuY2xv
c2UoKTsKKyAgYXNzZXJ0X3RydWUocGMyLnNpZ25hbGluZ1N0YXRlID09PSAnY2xvc2VkJyk7Cisg
IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMTAwKSk7Cit9LCAnQ2xv
c2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBzaWduYWxpbmdzdGF0ZWNoYW5n
ZSBldmVudCcpOwogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2su
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0cHMuaHRtbAppbmRleCAxMDIxMDEy
OWFjZDU5OGZkOTU5MTI0ZmJlNTE0NjJkZThhMWNkYjBiLi45OWYzMGMyNjRiMzY0OGQ1MmZkYTZi
YjUwZGU5ODBiY2JlODRiZTNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb250cmFjay5odHRwcy5odG1sCkBAIC05NSw3ICs5NSw3
IEBACiAKICAgLy8gdGVzdHMgdGhhdCBvbnRyYWNrIGlzIGNhbGxlZCBhbmQgcGFyc2VzIHRoZSBt
c2lkIGluZm9ybWF0aW9uIGZyb20gdGhlIFNEUCBhbmQgY3JlYXRlcwogICAvLyB0aGUgc3RyZWFt
cyB3aXRoIG1hdGNoaW5nIGlkZW50aWZpZXJzLgotICBhc3luY190ZXN0KHQgPT4geworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKIAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CkBAIC0xMjMsMzQg
KzEyMywyOCBAQCBhPW1zaWQ6c3RyZWFtMSB0cmFjazEKIGE9c3NyYzoxMDAxIGNuYW1lOnNvbWUK
IGA7CiAKLSAgICBwYy5vbnRyYWNrID0gdC5zdGVwX2Z1bmModHJhY2tFdmVudCA9PiB7Ci0gICAg
ICBjb25zdCB7IHN0cmVhbXMsIHRyYWNrLCB0cmFuc2NlaXZlciB9ID0gdHJhY2tFdmVudDsKKyAg
ICBjb25zdCB0cmFja0V2ZW50UHJvbWlzZSA9IGFkZEV2ZW50TGlzdGVuZXJQcm9taXNlKHQsIHBj
LCAndHJhY2snKTsKKyAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7IHR5cGU6ICdv
ZmZlcicsIHNkcCB9KTsKKyAgICBjb25zdCB0cmFja0V2ZW50ID0gYXdhaXQgdHJhY2tFdmVudFBy
b21pc2U7CisgICAgY29uc3QgeyBzdHJlYW1zLCB0cmFjaywgdHJhbnNjZWl2ZXIgfSA9IHRyYWNr
RXZlbnQ7CiAKLSAgICAgIGFzc2VydF9lcXVhbHMoc3RyZWFtcy5sZW5ndGgsIDEsCi0gICAgICAg
ICd0aGUgdHJhY2sgYmVsb25ncyB0byBvbmUgTWVkaWFTdHJlYW0nKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHN0cmVhbXMubGVuZ3RoLCAxLAorICAgICAgJ3RoZSB0cmFjayBiZWxvbmdzIHRvIG9uZSBN
ZWRpYVN0cmVhbScpOwogCi0gICAgICBjb25zdCBbc3RyZWFtXSA9IHN0cmVhbXM7Ci0gICAgICBh
c3NlcnRfZXF1YWxzKHN0cmVhbS5pZCwgJ3N0cmVhbTEnLAotICAgICAgICAnRXhwZWN0IHN0cmVh
bS5pZCB0byBiZSB0aGUgc2FtZSBhcyBzcGVjaWZpZWQgaW4gdGhlIGE9bXNpZCBsaW5lJyk7Cisg
ICAgY29uc3QgW3N0cmVhbV0gPSBzdHJlYW1zOworICAgIGFzc2VydF9lcXVhbHMoc3RyZWFtLmlk
LCAnc3RyZWFtMScsCisgICAgICAnRXhwZWN0IHN0cmVhbS5pZCB0byBiZSB0aGUgc2FtZSBhcyBz
cGVjaWZpZWQgaW4gdGhlIGE9bXNpZCBsaW5lJyk7CiAKLSAgICAgIGFzc2VydF9lcXVhbHModHJh
Y2sua2luZCwgJ2F1ZGlvJywKLSAgICAgICAgJ0V4cGVjdCB0cmFjay5raW5kIHRvIGJlIGF1ZGlv
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyh0cmFjay5raW5kLCAnYXVkaW8nLAorICAgICAgJ0V4cGVj
dCB0cmFjay5raW5kIHRvIGJlIGF1ZGlvJyk7CiAKLSAgICAgIHZhbGlkYXRlVHJhY2tFdmVudCh0
cmFja0V2ZW50KTsKKyAgICB2YWxpZGF0ZVRyYWNrRXZlbnQodHJhY2tFdmVudCk7CiAKLSAgICAg
IGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAncmVjdm9ubHknLAotICAgICAg
ICAnRXhwZWN0IHRyYW5zY2VpdmVyLmRpcmVjdGlvbiB0byBiZSByZXZlcnNlIG9mIHNlbmRvbmx5
IChyZWN2b25seSknKTsKLQotICAgICAgdC5kb25lKCk7Ci0gICAgfSk7Ci0KLSAgICBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbih7IHR5cGU6ICdvZmZlcicsIHNkcCB9KQotICAgIC5jYXRjaCh0LnN0
ZXBfZnVuYyhlcnIgPT4gewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnRXJyb3IgJyArIGVyci5u
YW1lICsgJzogJyArIGVyci5tZXNzYWdlKTsKLSAgICB9KSk7CisgICAgYXNzZXJ0X2VxdWFscyh0
cmFuc2NlaXZlci5kaXJlY3Rpb24sICdyZWN2b25seScsCisgICAgICAnRXhwZWN0IHRyYW5zY2Vp
dmVyLmRpcmVjdGlvbiB0byBiZSByZXZlcnNlIG9mIHNlbmRvbmx5IChyZWN2b25seSknKTsKICAg
fSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCB0cmlnZ2VyIG9udHJhY2sgZXZlbnQgd2hl
biB0aGUgTVNJRCBvZiB0aGUgc3RyZWFtIGlzIGlzIHBhcnNlZC4nKTsKIAotICBhc3luY190ZXN0
KHQgPT4geworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKIAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2Uo
KSk7CkBAIC0xNzksMTAxICsxNzMsNjEgQEAgYT1zc3JjOjEwMDEgY25hbWU6c29tZQogCiAgICAg
cGMub250cmFjayA9IHQudW5yZWFjaGVkX2Z1bmMoJ29udHJhY2sgZXZlbnQgc2hvdWxkIG5vdCBm
aXJlIGZvciB0cmFjayB3aXRoIHJlY3Zvbmx5IGRpcmVjdGlvbicpOwogCi0gICAgcGMuc2V0UmVt
b3RlRGVzY3JpcHRpb24oeyB0eXBlOiAnb2ZmZXInLCBzZHAgfSkKLSAgICAuY2F0Y2godC5zdGVw
X2Z1bmMoZXJyID0+IHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoJ0Vycm9yICcgKyBlcnIubmFt
ZSArICc6ICcgKyBlcnIubWVzc2FnZSk7Ci0gICAgfSkpCi0gICAgLnRoZW4odC5zdGVwX2Z1bmMo
KCkgPT4gewotICAgICAgdC5zdGVwX3RpbWVvdXQodC5zdGVwX2Z1bmNfZG9uZSgpLCAxMDApOwot
ICAgIH0pKTsKKyAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7IHR5cGU6ICdvZmZl
cicsIHNkcCB9KTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1l
b3V0KHJlc29sdmUsIDEwMCkpOwogICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24oKSB3aXRoIG09
IGxpbmUgb2YgcmVjdm9ubHkgZGlyZWN0aW9uIHNob3VsZCBub3QgdHJpZ2dlciB0cmFjayBldmVu
dCcpOwogCi0gIGFzeW5jX3Rlc3QodCA9PiB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKIAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCi0gICAg
cGMyLm9udHJhY2sgPSB0LnN0ZXBfZnVuYyh0cmFja0V2ZW50ID0+IHsKLSAgICAgIGNvbnN0IHsg
dHJhY2sgfSA9IHRyYWNrRXZlbnQ7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHModHJhY2sua2luZCwg
J2F1ZGlvJywKLSAgICAgICAgJ0V4cGVjdCB0cmFjay5raW5kIHRvIGJlIGF1ZGlvJyk7Ci0KLSAg
ICAgIHZhbGlkYXRlVHJhY2tFdmVudCh0cmFja0V2ZW50KTsKKyAgICBjb25zdCBbdHJhY2ssIG1l
ZGlhU3RyZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKTsKKyAgICBw
YzEuYWRkVHJhY2sodHJhY2ssIG1lZGlhU3RyZWFtKTsKKyAgICBjb25zdCB0cmFja0V2ZW50UHJv
bWlzZSA9IGFkZEV2ZW50TGlzdGVuZXJQcm9taXNlKHQsIHBjMiwgJ3RyYWNrJyk7CisgICAgYXdh
aXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAg
ICBjb25zdCB0cmFja0V2ZW50ID0gYXdhaXQgdHJhY2tFdmVudFByb21pc2U7CiAKLSAgICAgIHQu
ZG9uZSgpOwotICAgIH0pOworICAgIGFzc2VydF9lcXVhbHModHJhY2tFdmVudC50cmFjay5raW5k
LCAnYXVkaW8nLAorICAgICAgJ0V4cGVjdCB0cmFjay5raW5kIHRvIGJlIGF1ZGlvJyk7CiAKLSAg
ICByZXR1cm4gZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCdhdWRpbycpCi0gICAgLnRoZW4oKFt0cmFj
aywgbWVkaWFTdHJlYW1dKSA9PiB7Ci0gICAgICBwYzEuYWRkVHJhY2sodHJhY2ssIG1lZGlhU3Ry
ZWFtKTsKLQotICAgICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigpCi0gICAgICAudGhlbihvZmZl
ciA9PiBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKTsKLSAgICB9KQotICAgIC5jYXRj
aCh0LnN0ZXBfZnVuYyhlcnIgPT4gewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnRXJyb3IgJyAr
IGVyci5uYW1lICsgJzogJyArIGVyci5tZXNzYWdlKTsKLSAgICB9KSk7CisgICAgdmFsaWRhdGVU
cmFja0V2ZW50KHRyYWNrRXZlbnQpOwogICB9LCAnYWRkVHJhY2soKSBzaG91bGQgY2F1c2UgcmVt
b3RlIGNvbm5lY3Rpb24gdG8gZmlyZSBvbnRyYWNrIHdoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24o
KScpOwogCi0gIGFzeW5jX3Rlc3QodCA9PiB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
ICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKIAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCi0gICAg
cGMyLm9udHJhY2sgPSB0LnN0ZXBfZnVuYyh0cmFja0V2ZW50ID0+IHsKLSAgICAgIGNvbnN0IHsg
dHJhY2sgfSA9IHRyYWNrRXZlbnQ7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHModHJhY2sua2luZCwg
J3ZpZGVvJywKLSAgICAgICAgJ0V4cGVjdCB0cmFjay5raW5kIHRvIGJlIHZpZGVvJyk7Ci0KLSAg
ICAgIHZhbGlkYXRlVHJhY2tFdmVudCh0cmFja0V2ZW50KTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2
ZXIoJ3ZpZGVvJyk7CiAKLSAgICAgIHQuZG9uZSgpOwotICAgIH0pOworICAgIGNvbnN0IHRyYWNr
RXZlbnRQcm9taXNlID0gYWRkRXZlbnRMaXN0ZW5lclByb21pc2UodCwgcGMyLCAndHJhY2snKTsK
KyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVy
KCkpOworICAgIGNvbnN0IHRyYWNrRXZlbnQgPSBhd2FpdCB0cmFja0V2ZW50UHJvbWlzZTsKKyAg
ICBjb25zdCB7IHRyYWNrIH0gPSB0cmFja0V2ZW50OwogCi0gICAgcGMxLmFkZFRyYW5zY2VpdmVy
KCd2aWRlbycpOworICAgIGFzc2VydF9lcXVhbHModHJhY2sua2luZCwgJ3ZpZGVvJywKKyAgICAg
ICdFeHBlY3QgdHJhY2sua2luZCB0byBiZSB2aWRlbycpOwogCi0gICAgcmV0dXJuIHBjMS5jcmVh
dGVPZmZlcigpCi0gICAgLnRoZW4ob2ZmZXIgPT4gcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9m
ZmVyKSkKLSAgICAuY2F0Y2godC5zdGVwX2Z1bmMoZXJyID0+IHsKLSAgICAgIGFzc2VydF91bnJl
YWNoZWQoJ0Vycm9yICcgKyBlcnIubmFtZSArICc6ICcgKyBlcnIubWVzc2FnZSk7Ci0gICAgfSkp
OworICAgIHZhbGlkYXRlVHJhY2tFdmVudCh0cmFja0V2ZW50KTsKICAgfSwgYGFkZFRyYW5zY2Vp
dmVyKCd2aWRlbycpIHNob3VsZCBjYXVzZSByZW1vdGUgY29ubmVjdGlvbiB0byBmaXJlIG9udHJh
Y2sgd2hlbiBzZXRSZW1vdGVEZXNjcmlwdGlvbigpYCk7CiAKLSAgYXN5bmNfdGVzdCh0ID0+IHsK
KyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwogICAg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogCiAgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzIuY2xvc2UoKSk7CiAKLSAgICBwYzIub250cmFjayA9IHQuc3RlcF9mdW5jKHRy
YWNrRXZlbnQgPT4gewotICAgICAgY29uc3QgeyB0cmFjayB9ID0gdHJhY2tFdmVudDsKLQotICAg
ICAgYXNzZXJ0X2VxdWFscyh0cmFjay5raW5kLCAndmlkZW8nLAotICAgICAgICAnRXhwZWN0IHRy
YWNrLmtpbmQgdG8gYmUgdmlkZW8nKTsKLQotICAgICAgdmFsaWRhdGVUcmFja0V2ZW50KHRyYWNr
RXZlbnQpOwotCi0gICAgICB0LmRvbmUoKTsKLSAgICB9KTsKLQogICAgIHBjMS5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nLCB7IGRpcmVjdGlvbjogJ2luYWN0aXZlJyB9KTsKICAgICBwYzIub250cmFj
ayA9IHQudW5yZWFjaGVkX2Z1bmMoJ29udHJhY2sgZXZlbnQgc2hvdWxkIG5vdCBmaXJlIGZvciB0
cmFjayB3aXRoIGluYWN0aXZlIGRpcmVjdGlvbicpOwogCi0gICAgcmV0dXJuIHBjMS5jcmVhdGVP
ZmZlcigpCi0gICAgLnRoZW4ob2ZmZXIgPT4gcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVy
KSkKLSAgICAuY2F0Y2godC5zdGVwX2Z1bmMoZXJyID0+IHsKLSAgICAgIGFzc2VydF91bnJlYWNo
ZWQoJ0Vycm9yICcgKyBlcnIubmFtZSArICc6ICcgKyBlcnIubWVzc2FnZSk7Ci0gICAgfSkpCi0g
ICAgLnRoZW4odC5zdGVwX2Z1bmMoKCkgPT4gewotICAgICAgdC5zdGVwX3RpbWVvdXQodC5zdGVw
X2Z1bmNfZG9uZSgpLCAxMDApOwotICAgIH0pKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAgIGF3YWl0IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gdC5zdGVwX3RpbWVvdXQocmVzb2x2ZSwgMTAwKSk7CiAgIH0sIGBhZGRUcmFu
c2NlaXZlcigpIHdpdGggaW5hY3RpdmUgZGlyZWN0aW9uIHNob3VsZCBub3QgY2F1c2UgcmVtb3Rl
IGNvbm5lY3Rpb24gdG8gZmlyZSBvbnRyYWNrIHdoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24oKWAp
OwogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9wZXJhdGlvbnMuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb3BlcmF0aW9ucy5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGFiMGQ0MWJlNDg0ODBmYjc0MTQxOTg2YmQ2ZmNmNmJlNmEwNjhlOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9wZXJhdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNjMgQEAKKworSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBVbmhh
bmRsZWQgcmVqZWN0aW9uOiBFeHBlY3QgbGluZTogdj0KKworUEFTUyBwcm9taXNlU3RhdGUgaGVs
cGVyIHdvcmtzIAorUEFTUyBwcm9taXNlU3RhdGVGaW5hbCBoZWxwZXIgd29ya3MgCitGQUlMIGNy
ZWF0ZU9mZmVyIG11c3QgZGV0ZWN0IEludmFsaWRTdGF0ZUVycm9yIHN5bmNocm9ub3VzbHkgd2hl
biBjaGFpbiBpcyBlbXB0eSAocHJlcmVxdWlzaXRlKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
SW52YWxpZFN0YXRlRXJyb3IiIGJ1dCBnb3QgIkVycm9yIgorUEFTUyBjcmVhdGVBbnN3ZXIgbXVz
dCBkZXRlY3QgSW52YWxpZFN0YXRlRXJyb3Igc3luY2hyb25vdXNseSB3aGVuIGNoYWluIGlzIGVt
cHR5IChwcmVyZXF1aXNpdGUpIAorUEFTUyBTTEQocm9sbGJhY2spIG11c3QgZGV0ZWN0IEludmFs
aWRTdGF0ZUVycm9yIHN5bmNocm9ub3VzbHkgd2hlbiBjaGFpbiBpcyBlbXB0eSAKK0ZBSUwgYWRk
SWNlQ2FuZGlkYXRlIG11c3QgZGV0ZWN0IEludmFsaWRTdGF0ZUVycm9yIHN5bmNocm9ub3VzbHkg
d2hlbiBjaGFpbiBpcyBlbXB0eSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiSW52YWxpZFN0YXRl
RXJyb3IiIGJ1dCBnb3QgIlR5cGVFcnJvciIKK1BBU1MgcmVwbGFjZVRyYWNrIG11c3QgZGV0ZWN0
IEludmFsaWRTdGF0ZUVycm9yIHN5bmNocm9ub3VzbHkgd2hlbiBjaGFpbiBpcyBlbXB0eSBhbmQg
dHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCAKK1BBU1Mgc2V0UGFyYW1ldGVycyBtdXN0IGRldGVjdCBJ
bnZhbGlkU3RhdGVFcnJvciBzeW5jaHJvbm91c2x5IGFsd2F5cyB3aGVuIHRyYW5zY2VpdmVyIGlz
IHN0b3BwZWQgCitGQUlMIHBjLmdldFN0YXRzIG11c3QgZGV0ZWN0IEludmFsaWRBY2Nlc3NFcnJv
ciBzeW5jaHJvbm91c2x5IGFsd2F5cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiSW52YWxpZEFj
Y2Vzc0Vycm9yIiBidXQgZ290ICJFcnJvciIKK1BBU1MgaXNPcGVyYXRpb25zQ2hhaW5FbXB0eSBk
ZXRlY3RzIGVtcHR5IGluIHN0YWJsZSAKK1BBU1MgaXNPcGVyYXRpb25zQ2hhaW5FbXB0eSBkZXRl
Y3RzIGVtcHR5IGluIGhhdmUtbG9jYWwtb2ZmZXIgCitGQUlMIGlzT3BlcmF0aW9uc0NoYWluRW1w
dHkgZGV0ZWN0cyBlbXB0eSBpbiBoYXZlLXJlbW90ZS1vZmZlciBhc3NlcnRfZXF1YWxzOiBpc09w
ZXJhdGlvbnNDaGFpbkVtcHR5IGlzIHdvcmtpbmcgZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVycm9y
IiBidXQgZ290ICJFcnJvciIKK1BBU1MgY3JlYXRlT2ZmZXIgdXNlcyBvcGVyYXRpb25zIGNoYWlu
IAorRkFJTCBjcmVhdGVBbnN3ZXIgdXNlcyBvcGVyYXRpb25zIGNoYWluIGFzc2VydF9lcXVhbHM6
IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkgaXMgd29ya2luZyBleHBlY3RlZCAiSW52YWxpZFN0YXRl
RXJyb3IiIGJ1dCBnb3QgIkVycm9yIgorUEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uIHVzZXMgb3Bl
cmF0aW9ucyBjaGFpbiAKK1BBU1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24gdXNlcyBvcGVyYXRpb25z
IGNoYWluIAorRkFJTCBhZGRJY2VDYW5kaWRhdGUgdXNlcyBvcGVyYXRpb25zIGNoYWluIGFzc2Vy
dF9lcXVhbHM6IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkgaXMgd29ya2luZyBleHBlY3RlZCAiSW52
YWxpZFN0YXRlRXJyb3IiIGJ1dCBnb3QgIkVycm9yIgorUEFTUyBGaXJpbmcgb2YgbmVnb3RpYXRp
b25uZWVkZWQgZG9lcyBOT1QgdXNlIG9wZXJhdGlvbnMgY2hhaW4gCitGQUlMIE5lZ290aWF0aW9u
bmVlZGVkIG9ubHkgZmlyZXMgb25jZSBvcGVyYXRpb25zIGNoYWluIGlzIGVtcHR5IHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
Tm90IGVub3VnaCBhcmd1bWVudHMiCitGQUlMIHJlcGxhY2VUcmFjayB1c2VzIG9wZXJhdGlvbnMg
Y2hhaW4gYXNzZXJ0X2ZhbHNlOiBOb24tZW1wdHkgY2hhaW4gZXhwZWN0ZWQgZmFsc2UgZ290IHRy
dWUKK0ZBSUwgc2V0UGFyYW1ldGVycyBkb2VzIE5PVCB1c2UgdGhlIG9wZXJhdGlvbnMgY2hhaW4g
YXNzZXJ0X2VxdWFsczogTWV0aG9kIGlzIGFzeW5jIGV4cGVjdGVkICJwZW5kaW5nIiBidXQgZ290
ICJmdWxmaWxsZWQiCitQQVNTIHBjLmdldFN0YXRzIGRvZXMgTk9UIHVzZSB0aGUgb3BlcmF0aW9u
cyBjaGFpbiAKK1BBU1Mgc2VuZGVyLmdldFN0YXRzIGRvZXMgTk9UIHVzZSB0aGUgb3BlcmF0aW9u
cyBjaGFpbiAKK1BBU1MgcmVjZWl2ZXIuZ2V0U3RhdHMgZG9lcyBOT1QgdXNlIHRoZSBvcGVyYXRp
b25zIGNoYWluIAorRkFJTCBhZGRJY2VDYW5kaWRhdGUgY2hhaW5zIG9udG8gU1JELCBmYWlscyBi
ZWZvcmUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVycm9yIiBidXQgZ290
ICJFcnJvciIKK0ZBSUwgT3BlcmF0aW9ucyBxdWV1ZSBub3QgdnVsbmVyYWJsZSB0byByZWN1cnNp
b24gYnkgY2hhaW5lZCBuZWdvdGlhdGlvbm5lZWRlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzIgorRkFJTCBQYWNrIG9wZXJhdGlvbnMgcXVldWUgd2l0aCBpbXBsaWNpdCBvZmZlciBhbmQg
YW5zd2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIk9wZXJhdGlvbkVycm9yOiBFeHBlY3QgbGluZTogdj0iCitUSU1FT1VUIE5lZ290aWF0ZSBz
b2xlbHkgYnkgb3BlcmF0aW9ucyBxdWV1ZSBhbmQgc2lnbmFsaW5nIHN0YXRlIFRlc3QgdGltZWQg
b3V0CisKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gVW5oYW5kbGVkIHJlamVjdGlv
bjogRXhwZWN0IGxpbmU6IHY9CisKK1BBU1MgcHJvbWlzZVN0YXRlIGhlbHBlciB3b3JrcyAKK1BB
U1MgcHJvbWlzZVN0YXRlRmluYWwgaGVscGVyIHdvcmtzIAorRkFJTCBjcmVhdGVPZmZlciBtdXN0
IGRldGVjdCBJbnZhbGlkU3RhdGVFcnJvciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4gaXMgZW1w
dHkgKHByZXJlcXVpc2l0ZSkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVy
cm9yIiBidXQgZ290ICJFcnJvciIKK1BBU1MgY3JlYXRlQW5zd2VyIG11c3QgZGV0ZWN0IEludmFs
aWRTdGF0ZUVycm9yIHN5bmNocm9ub3VzbHkgd2hlbiBjaGFpbiBpcyBlbXB0eSAocHJlcmVxdWlz
aXRlKSAKK1BBU1MgU0xEKHJvbGxiYWNrKSBtdXN0IGRldGVjdCBJbnZhbGlkU3RhdGVFcnJvciBz
eW5jaHJvbm91c2x5IHdoZW4gY2hhaW4gaXMgZW1wdHkgCitGQUlMIGFkZEljZUNhbmRpZGF0ZSBt
dXN0IGRldGVjdCBJbnZhbGlkU3RhdGVFcnJvciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4gaXMg
ZW1wdHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVycm9yIiBidXQgZ290
ICJUeXBlRXJyb3IiCitQQVNTIHJlcGxhY2VUcmFjayBtdXN0IGRldGVjdCBJbnZhbGlkU3RhdGVF
cnJvciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4gaXMgZW1wdHkgYW5kIHRyYW5zY2VpdmVyIGlz
IHN0b3BwZWQgCitQQVNTIHNldFBhcmFtZXRlcnMgbXVzdCBkZXRlY3QgSW52YWxpZFN0YXRlRXJy
b3Igc3luY2hyb25vdXNseSBhbHdheXMgd2hlbiB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIAorRkFJ
TCBwYy5nZXRTdGF0cyBtdXN0IGRldGVjdCBJbnZhbGlkQWNjZXNzRXJyb3Igc3luY2hyb25vdXNs
eSBhbHdheXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkludmFsaWRBY2Nlc3NFcnJvciIgYnV0
IGdvdCAiRXJyb3IiCitQQVNTIGlzT3BlcmF0aW9uc0NoYWluRW1wdHkgZGV0ZWN0cyBlbXB0eSBp
biBzdGFibGUgCitQQVNTIGlzT3BlcmF0aW9uc0NoYWluRW1wdHkgZGV0ZWN0cyBlbXB0eSBpbiBo
YXZlLWxvY2FsLW9mZmVyIAorRkFJTCBpc09wZXJhdGlvbnNDaGFpbkVtcHR5IGRldGVjdHMgZW1w
dHkgaW4gaGF2ZS1yZW1vdGUtb2ZmZXIgYXNzZXJ0X2VxdWFsczogaXNPcGVyYXRpb25zQ2hhaW5F
bXB0eSBpcyB3b3JraW5nIGV4cGVjdGVkICJJbnZhbGlkU3RhdGVFcnJvciIgYnV0IGdvdCAiRXJy
b3IiCitQQVNTIGNyZWF0ZU9mZmVyIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiAKK0ZBSUwgY3JlYXRl
QW5zd2VyIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiBhc3NlcnRfZXF1YWxzOiBpc09wZXJhdGlvbnND
aGFpbkVtcHR5IGlzIHdvcmtpbmcgZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVycm9yIiBidXQgZ290
ICJFcnJvciIKK1BBU1Mgc2V0TG9jYWxEZXNjcmlwdGlvbiB1c2VzIG9wZXJhdGlvbnMgY2hhaW4g
CitQQVNTIHNldFJlbW90ZURlc2NyaXB0aW9uIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiAKK0ZBSUwg
YWRkSWNlQ2FuZGlkYXRlIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiBhc3NlcnRfZXF1YWxzOiBpc09w
ZXJhdGlvbnNDaGFpbkVtcHR5IGlzIHdvcmtpbmcgZXhwZWN0ZWQgIkludmFsaWRTdGF0ZUVycm9y
IiBidXQgZ290ICJFcnJvciIKK1BBU1MgRmlyaW5nIG9mIG5lZ290aWF0aW9ubmVlZGVkIGRvZXMg
Tk9UIHVzZSBvcGVyYXRpb25zIGNoYWluIAorRkFJTCBOZWdvdGlhdGlvbm5lZWRlZCBvbmx5IGZp
cmVzIG9uY2Ugb3BlcmF0aW9ucyBjaGFpbiBpcyBlbXB0eSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzIgorRkFJTCByZXBsYWNlVHJhY2sgdXNlcyBvcGVyYXRpb25zIGNoYWluIGFzc2VydF9m
YWxzZTogTm9uLWVtcHR5IGNoYWluIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIHNldFBh
cmFtZXRlcnMgZG9lcyBOT1QgdXNlIHRoZSBvcGVyYXRpb25zIGNoYWluIGFzc2VydF9lcXVhbHM6
IE1ldGhvZCBpcyBhc3luYyBleHBlY3RlZCAicGVuZGluZyIgYnV0IGdvdCAiZnVsZmlsbGVkIgor
UEFTUyBwYy5nZXRTdGF0cyBkb2VzIE5PVCB1c2UgdGhlIG9wZXJhdGlvbnMgY2hhaW4gCitQQVNT
IHNlbmRlci5nZXRTdGF0cyBkb2VzIE5PVCB1c2UgdGhlIG9wZXJhdGlvbnMgY2hhaW4gCitQQVNT
IHJlY2VpdmVyLmdldFN0YXRzIGRvZXMgTk9UIHVzZSB0aGUgb3BlcmF0aW9ucyBjaGFpbiAKK0ZB
SUwgYWRkSWNlQ2FuZGlkYXRlIGNoYWlucyBvbnRvIFNSRCwgZmFpbHMgYmVmb3JlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJJbnZhbGlkU3RhdGVFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitGQUlM
IE9wZXJhdGlvbnMgcXVldWUgbm90IHZ1bG5lcmFibGUgdG8gcmVjdXJzaW9uIGJ5IGNoYWluZWQg
bmVnb3RpYXRpb25uZWVkZWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK0ZBSUwgUGFj
ayBvcGVyYXRpb25zIHF1ZXVlIHdpdGggaW1wbGljaXQgb2ZmZXIgYW5kIGFuc3dlciBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJPcGVyYXRpb25F
cnJvcjogRXhwZWN0IGxpbmU6IHY9IgorVElNRU9VVCBOZWdvdGlhdGUgc29sZWx5IGJ5IG9wZXJh
dGlvbnMgcXVldWUgYW5kIHNpZ25hbGluZyBzdGF0ZSBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1vcGVyYXRpb25zLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vcGVy
YXRpb25zLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhhZTNhZmNkNzNlNDEwMDM0NWVkZGRjNTA1
ODk1YWRkMjZlYTU2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9wZXJhdGlvbnMu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDQyNSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPHRpdGxlPjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8vIEhlbHBlcnMg
dG8gdGVzdCBBUElzICJyZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVh
dGVkIiBlcnJvci4KKy8vIFN0cmljdGx5IHNwZWFraW5nIHRoaXMgbWVhbnMgYWxyZWFkeS1yZWpl
Y3RlZCB1cG9uIHJldHVybi4KK2Z1bmN0aW9uIHByb21pc2VTdGF0ZShwKSB7CisgIGNvbnN0IHQg
PSB7fTsKKyAgcmV0dXJuIFByb21pc2UucmFjZShbcCwgdF0pCisgICAgLnRoZW4odiA9PiAodiA9
PT0gdCk/ICJwZW5kaW5nIiA6ICJmdWxmaWxsZWQiLCAoKSA9PiAicmVqZWN0ZWQiKTsKK30KKwor
Ly8gSG93ZXZlciwgdG8gYWxsb3cgcHJvbWlzZXMgdG8gYmUgdXNlZCBpbiBpbXBsZW1lbnRhdGlv
bnMsIHRoaXMgaGVscGVyIGFkZHMKKy8vIHNvbWUgc2xhY2s6IHJldHVybmluZyBhIHBlbmRpbmcg
cHJvbWlzZSB3aWxsIHBhc3MsIHByb3ZpZGVkIGl0IGlzIHJlamVjdGVkCisvLyBiZWZvcmUgdGhl
IGVuZCBvZiB0aGUgY3VycmVudCBydW4gb2YgdGhlIGV2ZW50IGxvb3AgKGkuZS4gb24gbWljcm90
YXNrIHF1ZXVlCisvLyBiZWZvcmUgbmV4dCB0YXNrKS4KK2FzeW5jIGZ1bmN0aW9uIHByb21pc2VT
dGF0ZUZpbmFsKHApIHsKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7CisgICAgYXdh
aXQgcHJvbWlzZVN0YXRlKHApOworICB9CisgIHJldHVybiBwcm9taXNlU3RhdGUocCk7Cit9CisK
K1twcm9taXNlU3RhdGUsIHByb21pc2VTdGF0ZUZpbmFsXS5mb3JFYWNoKGYgPT4gcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBhc3NlcnRfZXF1YWxzKGF3YWl0IGYoUHJvbWlzZS5yZXNvbHZl
KCkpLCAiZnVsZmlsbGVkIik7CisgIGFzc2VydF9lcXVhbHMoYXdhaXQgZihQcm9taXNlLnJlamVj
dCgpKSwgInJlamVjdGVkIik7CisgIGFzc2VydF9lcXVhbHMoYXdhaXQgZihuZXcgUHJvbWlzZSgo
KSA9PiB7fSkpLCAicGVuZGluZyIpOworfSwgYCR7Zi5uYW1lfSBoZWxwZXIgd29ya3NgKSk7CisK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgYXdhaXQgcGMu
c2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKSk7CisgIGNvbnN0IHAg
PSBwYy5jcmVhdGVPZmZlcigpOworICBjb25zdCBoYXZlU3RhdGUgPSBwcm9taXNlU3RhdGVGaW5h
bChwKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCBwOworICAgIGFzc2VydF91bnJlYWNoZWQoIkNvbnRy
b2wuIE11c3Qgbm90IHN1Y2NlZWQiKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGFzc2VydF9lcXVh
bHMoZS5uYW1lLCAiSW52YWxpZFN0YXRlRXJyb3IiKTsKKyAgfQorICBhc3NlcnRfZXF1YWxzKGF3
YWl0IGhhdmVTdGF0ZSwgInJlamVjdGVkIiwgInByb21pc2UgcmVqZWN0ZWQgb24gc2FtZSB0YXNr
Iik7Cit9LCAiY3JlYXRlT2ZmZXIgbXVzdCBkZXRlY3QgSW52YWxpZFN0YXRlRXJyb3Igc3luY2hy
b25vdXNseSB3aGVuIGNoYWluIGlzIGVtcHR5IChwcmVyZXF1aXNpdGUpIik7CisKK3Byb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3QgcCA9IHBjLmNyZWF0
ZUFuc3dlcigpOworICBjb25zdCBoYXZlU3RhdGUgPSBwcm9taXNlU3RhdGVGaW5hbChwKTsKKyAg
dHJ5IHsKKyAgICBhd2FpdCBwOworICAgIGFzc2VydF91bnJlYWNoZWQoIkNvbnRyb2wuIE11c3Qg
bm90IHN1Y2NlZWQiKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGFzc2VydF9lcXVhbHMoZS5uYW1l
LCAiSW52YWxpZFN0YXRlRXJyb3IiKTsKKyAgfQorICBhc3NlcnRfZXF1YWxzKGF3YWl0IGhhdmVT
dGF0ZSwgInJlamVjdGVkIiwgInByb21pc2UgcmVqZWN0ZWQgb24gc2FtZSB0YXNrIik7Cit9LCAi
Y3JlYXRlQW5zd2VyIG11c3QgZGV0ZWN0IEludmFsaWRTdGF0ZUVycm9yIHN5bmNocm9ub3VzbHkg
d2hlbiBjaGFpbiBpcyBlbXB0eSAocHJlcmVxdWlzaXRlKSIpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHAgPSBwYy5zZXRMb2NhbERlc2Ny
aXB0aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7CisgIGNvbnN0IGhhdmVTdGF0ZSA9IHByb21pc2VT
dGF0ZUZpbmFsKHApOworICB0cnkgeworICAgIGF3YWl0IHA7CisgICAgYXNzZXJ0X3VucmVhY2hl
ZCgiQ29udHJvbC4gTXVzdCBub3Qgc3VjY2VlZCIpOworICB9IGNhdGNoIChlKSB7CisgICAgYXNz
ZXJ0X2VxdWFscyhlLm5hbWUsICJJbnZhbGlkU3RhdGVFcnJvciIpOworICB9CisgIGFzc2VydF9l
cXVhbHMoYXdhaXQgaGF2ZVN0YXRlLCAicmVqZWN0ZWQiLCAicHJvbWlzZSByZWplY3RlZCBvbiBz
YW1lIHRhc2siKTsKK30sICJTTEQocm9sbGJhY2spIG11c3QgZGV0ZWN0IEludmFsaWRTdGF0ZUVy
cm9yIHN5bmNocm9ub3VzbHkgd2hlbiBjaGFpbiBpcyBlbXB0eSIpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHAgPSBwYy5hZGRJY2VDYW5k
aWRhdGUoKTsKKyAgY29uc3QgaGF2ZVN0YXRlID0gcHJvbWlzZVN0YXRlRmluYWwocCk7CisgIHRy
eSB7CisgICAgYXdhaXQgcDsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJDb250cm9sLiBNdXN0IG5v
dCBzdWNjZWVkIik7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwg
IkludmFsaWRTdGF0ZUVycm9yIik7CisgIH0KKyAgYXNzZXJ0X2VxdWFscyhwYy5yZW1vdGVEZXNj
cmlwdGlvbiwgbnVsbCwgIm5vIHJlbW90ZSBkZXNjaXB0aW9uIik7CisgIGFzc2VydF9lcXVhbHMo
YXdhaXQgaGF2ZVN0YXRlLCAicmVqZWN0ZWQiLCAicHJvbWlzZSByZWplY3RlZCBvbiBzYW1lIHRh
c2siKTsKK30sICJhZGRJY2VDYW5kaWRhdGUgbXVzdCBkZXRlY3QgSW52YWxpZFN0YXRlRXJyb3Ig
c3luY2hyb25vdXNseSB3aGVuIGNoYWluIGlzIGVtcHR5Iik7CisKK3Byb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRU
cmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgdHJhbnNjZWl2ZXIuc3RvcCgpOworICBjb25zdCBwID0g
dHJhbnNjZWl2ZXIuc2VuZGVyLnJlcGxhY2VUcmFjayhudWxsKTsKKyAgY29uc3QgaGF2ZVN0YXRl
ID0gcHJvbWlzZVN0YXRlRmluYWwocCk7CisgIHRyeSB7CisgICAgYXdhaXQgcDsKKyAgICBhc3Nl
cnRfdW5yZWFjaGVkKCJDb250cm9sLiBNdXN0IG5vdCBzdWNjZWVkIik7CisgIH0gY2F0Y2ggKGUp
IHsKKyAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIkludmFsaWRTdGF0ZUVycm9yIik7CisgIH0K
KyAgYXNzZXJ0X2VxdWFscyhhd2FpdCBoYXZlU3RhdGUsICJyZWplY3RlZCIsICJwcm9taXNlIHJl
amVjdGVkIG9uIHNhbWUgdGFzayIpOworfSwgInJlcGxhY2VUcmFjayBtdXN0IGRldGVjdCBJbnZh
bGlkU3RhdGVFcnJvciBzeW5jaHJvbm91c2x5IHdoZW4gY2hhaW4gaXMgZW1wdHkgYW5kIHRyYW5z
Y2VpdmVyIGlzIHN0b3BwZWQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCJhdWRp
byIpOworICB0cmFuc2NlaXZlci5zdG9wKCk7CisgIGNvbnN0IHBhcmFtZXRlcnMgPSB0cmFuc2Nl
aXZlci5zZW5kZXIuZ2V0UGFyYW1ldGVycygpOworICBjb25zdCBwID0gdHJhbnNjZWl2ZXIuc2Vu
ZGVyLnNldFBhcmFtZXRlcnMocGFyYW1ldGVycyk7CisgIGNvbnN0IGhhdmVTdGF0ZSA9IHByb21p
c2VTdGF0ZUZpbmFsKHApOworICB0cnkgeworICAgIGF3YWl0IHA7CisgICAgYXNzZXJ0X3VucmVh
Y2hlZCgiQ29udHJvbC4gTXVzdCBub3Qgc3VjY2VlZCIpOworICB9IGNhdGNoIChlKSB7CisgICAg
YXNzZXJ0X2VxdWFscyhlLm5hbWUsICJJbnZhbGlkU3RhdGVFcnJvciIpOworICB9CisgIGFzc2Vy
dF9lcXVhbHMoYXdhaXQgaGF2ZVN0YXRlLCAicmVqZWN0ZWQiLCAicHJvbWlzZSByZWplY3RlZCBv
biBzYW1lIHRhc2siKTsKK30sICJzZXRQYXJhbWV0ZXJzIG11c3QgZGV0ZWN0IEludmFsaWRTdGF0
ZUVycm9yIHN5bmNocm9ub3VzbHkgYWx3YXlzIHdoZW4gdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCIp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0
IHt0cmFja30gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
KS5yZWNlaXZlcjsKKyAgYXNzZXJ0X25vdF9lcXVhbHModHJhY2ssIG51bGwpOworICBjb25zdCBw
ID0gcGMuZ2V0U3RhdHModHJhY2spOworICBjb25zdCBoYXZlU3RhdGUgPSBwcm9taXNlU3RhdGVG
aW5hbChwKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCBwOworICAgIGFzc2VydF91bnJlYWNoZWQoIkNv
bnRyb2wuIE11c3Qgbm90IHN1Y2NlZWQiKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGFzc2VydF9l
cXVhbHMoZS5uYW1lLCAiSW52YWxpZEFjY2Vzc0Vycm9yIik7CisgIH0KKyAgYXNzZXJ0X2VxdWFs
cyhhd2FpdCBoYXZlU3RhdGUsICJyZWplY3RlZCIsICJwcm9taXNlIHJlamVjdGVkIG9uIHNhbWUg
dGFzayIpOworfSwgInBjLmdldFN0YXRzIG11c3QgZGV0ZWN0IEludmFsaWRBY2Nlc3NFcnJvciBz
eW5jaHJvbm91c2x5IGFsd2F5cyIpOworCisvLyBIZWxwZXIgYnVpbGRzIG9uIGFib3ZlIHRlc3Rz
IHRvIGNoZWNrIGlmIG9wZXJhdGlvbnMgcXVldWUgaXMgZW1wdHkgb3Igbm90LgorLy8KKy8vIE1l
YW5pbmcgb2YgImVtcHR5IjogQmVjYXVzZSB0aGlzIGhlbHBlciB1c2VzIHRoZSBzbG9wcHkgcHJv
bWlzZVN0YXRlRmluYWwsCisvLyBpdCBtYXkgbm90IGRldGVjdCBvcGVyYXRpb25zIG9uIHRoZSBj
aGFpbiB1bmxlc3MgdGhleSBibG9jayB0aGUgY3VycmVudCBydW4KKy8vIG9mIHRoZSBldmVudCBs
b29wLiBJbiBvdGhlciB3b3JkcywgaXQgbWF5IG5vdCBkZXRlY3Qgb3BlcmF0aW9ucyBvbiB0aGUg
Y2hhaW4KKy8vIHRoYXQgcmVzb2x2ZSBvbiB0aGUgZW1wdHlpbmcgb2YgdGhlIG1pY3JvdGFzayBx
dWV1ZSBhdCB0aGUgZW5kIG9mIHRoaXMgcnVuIG9mCisvLyB0aGUgZXZlbnQgbG9vcC4KKworYXN5
bmMgZnVuY3Rpb24gaXNPcGVyYXRpb25zQ2hhaW5FbXB0eShwYykgeworICBsZXQgcCwgZXJyb3I7
CisgIGNvbnN0IHNpZ25hbGluZ1N0YXRlID0gcGMuc2lnbmFsaW5nU3RhdGU7CisgIGlmIChzaWdu
YWxpbmdTdGF0ZSA9PSAiaGF2ZS1yZW1vdGUtb2ZmZXIiKSB7CisgICAgcCA9IHBjLmNyZWF0ZU9m
ZmVyKCk7CisgIH0gZWxzZSB7CisgICAgcCA9IHBjLmNyZWF0ZUFuc3dlcigpOworICB9CisgIGNv
bnN0IHN0YXRlID0gYXdhaXQgcHJvbWlzZVN0YXRlRmluYWwocCk7CisgIHRyeSB7CisgICAgYXdh
aXQgcDsKKyAgICAvLyBUaGlzIGhlbHBlciB0cmllcyB0byBhdm9pZCBzaWRlLWVmZmVjdHMgYnkg
YWx3YXlzIGZhaWxpbmcsCisgICAgLy8gYnV0IGNyZWF0ZUFuc3dlciBhYm92ZSBtYXkgc3VjY2Vl
ZCBpZiBjaGFpbmVkIGFmdGVyIGFuIFNSRAorICAgIC8vIHRoYXQgY2hhbmdlcyB0aGUgc2lnbmFs
aW5nIHN0YXRlIG9uIHVzLiBJZ25vcmUgdGhhdCBzdWNjZXNzLgorICAgIGlmIChzaWduYWxpbmdT
dGF0ZSA9PSBwYy5zaWduYWxpbmdTdGF0ZSkgeworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiQ29u
dHJvbC4gTXVzdCBub3Qgc3VjY2VlZCIpOworICAgIH0KKyAgfSBjYXRjaCAoZSkgeworICAgIGFz
c2VydF9lcXVhbHMoZS5uYW1lLCAiSW52YWxpZFN0YXRlRXJyb3IiLAorICAgICAgICAgICAgICAg
ICAgImlzT3BlcmF0aW9uc0NoYWluRW1wdHkgaXMgd29ya2luZyIpOworICB9CisgIHJldHVybiBz
dGF0ZSA9PSAicmVqZWN0ZWQiOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CisgIGFzc2VydF90cnVlKGF3YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHko
cGMpLCAiRW1wdHkgdG8gc3RhcnQiKTsKK30sICJpc09wZXJhdGlvbnNDaGFpbkVtcHR5IGRldGVj
dHMgZW1wdHkgaW4gc3RhYmxlIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYy5jcmVh
dGVPZmZlcigpKTsKKyAgYXNzZXJ0X3RydWUoYXdhaXQgaXNPcGVyYXRpb25zQ2hhaW5FbXB0eShw
YyksICJFbXB0eSB0byBzdGFydCIpOworfSwgImlzT3BlcmF0aW9uc0NoYWluRW1wdHkgZGV0ZWN0
cyBlbXB0eSBpbiBoYXZlLWxvY2FsLW9mZmVyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdh
aXQgcGMuY3JlYXRlT2ZmZXIoKSk7CisgIGFzc2VydF90cnVlKGF3YWl0IGlzT3BlcmF0aW9uc0No
YWluRW1wdHkocGMpLCAiRW1wdHkgdG8gc3RhcnQiKTsKK30sICJpc09wZXJhdGlvbnNDaGFpbkVt
cHR5IGRldGVjdHMgZW1wdHkgaW4gaGF2ZS1yZW1vdGUtb2ZmZXIiKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCBwID0gcGMuY3JlYXRlT2Zm
ZXIoKTsKKyAgYXNzZXJ0X2ZhbHNlKGF3YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMpLCAi
Tm9uLWVtcHR5IGNoYWluIik7CisgIGF3YWl0IHA7Cit9LCAiY3JlYXRlT2ZmZXIgdXNlcyBvcGVy
YXRpb25zIGNoYWluIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMuY3JlYXRlT2Zm
ZXIoKSk7CisgIGNvbnN0IHAgPSBwYy5jcmVhdGVBbnN3ZXIoKTsKKyAgYXNzZXJ0X2ZhbHNlKGF3
YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMpLCAiTm9uLWVtcHR5IGNoYWluIik7CisgIGF3
YWl0IHA7Cit9LCAiY3JlYXRlQW5zd2VyIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiIpOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IG9mZmVyID0g
YXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgYXNzZXJ0X3RydWUoYXdhaXQgaXNPcGVyYXRpb25z
Q2hhaW5FbXB0eShwYyksICJFbXB0eSBiZWZvcmUiKTsKKyAgY29uc3QgcCA9IHBjLnNldExvY2Fs
RGVzY3JpcHRpb24ob2ZmZXIpOworICBhc3NlcnRfZmFsc2UoYXdhaXQgaXNPcGVyYXRpb25zQ2hh
aW5FbXB0eShwYyksICJOb24tZW1wdHkgY2hhaW4iKTsKKyAgYXdhaXQgcDsKK30sICJzZXRMb2Nh
bERlc2NyaXB0aW9uIHVzZXMgb3BlcmF0aW9ucyBjaGFpbiIpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3Jl
YXRlT2ZmZXIoKTsKKyAgYXNzZXJ0X3RydWUoYXdhaXQgaXNPcGVyYXRpb25zQ2hhaW5FbXB0eShw
YyksICJFbXB0eSBiZWZvcmUiKTsKKyAgY29uc3QgcCA9IHBjLnNldFJlbW90ZURlc2NyaXB0aW9u
KG9mZmVyKTsKKyAgYXNzZXJ0X2ZhbHNlKGF3YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMp
LCAiTm9uLWVtcHR5IGNoYWluIik7CisgIGF3YWl0IHA7Cit9LCAic2V0UmVtb3RlRGVzY3JpcHRp
b24gdXNlcyBvcGVyYXRpb25zIGNoYWluIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgcGMxLmFkZFRyYW5z
Y2VpdmVyKCJ2aWRlbyIpOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigp
OworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgIGNvbnN0IHtjYW5k
aWRhdGV9ID0gYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25pY2VjYW5kaWRhdGUgPSByKTsK
KyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3QgcCA9IHBj
Mi5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKKyAgYXNzZXJ0X2ZhbHNlKGF3YWl0IGlzT3Bl
cmF0aW9uc0NoYWluRW1wdHkocGMyKSwgIk5vbi1lbXB0eSBjaGFpbiIpOworICBhd2FpdCBwOwor
fSwgImFkZEljZUNhbmRpZGF0ZSB1c2VzIG9wZXJhdGlvbnMgY2hhaW4iKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9
IHBjLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBj
Lm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXNzZXJ0X3RydWUoYXdhaXQgaXNPcGVyYXRp
b25zQ2hhaW5FbXB0eShwYyksICJFbXB0eSBjaGFpbiIpOworICBhd2FpdCBuZXcgUHJvbWlzZShy
ID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKKyAgYXNzZXJ0X3RydWUoYXdhaXQgaXNPcGVyYXRp
b25zQ2hhaW5FbXB0eShwYyksICJFbXB0eSBjaGFpbiIpOworfSwgIkZpcmluZyBvZiBuZWdvdGlh
dGlvbm5lZWRlZCBkb2VzIE5PVCB1c2Ugb3BlcmF0aW9ucyBjaGFpbiIpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
CisgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJ2
aWRlbyIpOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworICBhd2Fp
dCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgIGNvbnN0IGNhbmRpZGF0ZXMgPSBb
XTsKKyAgZm9yIChsZXQgYzsgKGMgPSAoYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25pY2Vj
YW5kaWRhdGUgPSByKSkuY2FuZGlkYXRlKTspIHsKKyAgICBjYW5kaWRhdGVzLnB1c2goYyk7Cisg
IH0KKyAgcGMyLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICBsZXQgZmlyZWQgPSBmYWxzZTsK
KyAgY29uc3QgcCA9IG5ldyBQcm9taXNlKHIgPT4gcGMyLm9ubmVnb3RpYXRpb25uZWVkZWQgPSAo
KSA9PiByKGZpcmVkID0gdHJ1ZSkpOworICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgcGMyLnNl
dFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSwKKyAgICAuLi5jYW5kaWRhdGVzLm1hcChjYW5kaWRh
dGUgPT4gcGMyLmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUpKSwKKyAgICBwYzIuc2V0TG9jYWxE
ZXNjcmlwdGlvbigpCisgIF0pOworICBhc3NlcnRfZmFsc2UoZmlyZWQsICJOZWdvdGlhdGlvbm5l
ZWRlZCBtdXN0bid0IGhhdmUgZmlyZWQgeWV0LiIpOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+
IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKKyAgYXNzZXJ0X3RydWUoZmlyZWQsICJOZWdvdGlhdGlv
bm5lZWRlZCBtdXN0IGhhdmUgZmlyZWQgYnkgbm93LiIpOworICBhd2FpdCBwOworfSwgIk5lZ290
aWF0aW9ubmVlZGVkIG9ubHkgZmlyZXMgb25jZSBvcGVyYXRpb25zIGNoYWluIGlzIGVtcHR5Iik7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qg
dHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgYXdhaXQgbmV3IFBy
b21pc2UociA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIC8vIE5vdGU6IHNpbmNl
IHRoZSBuZWdvdGlhdGlvbm5lZWRlZCBldmVudCBpcyBmaXJlZCBmcm9tIGEgY2hhaW5lZCBzeW5j
aHJvbm91cworICAvLyBmdW5jdGlvbiBpbiB0aGUgc3BlYywgcXVldWUgYSB0YXNrIGJlZm9yZSBk
b2luZyBvdXIgcHJlY2hlY2suCisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVv
dXQociwgMCkpOworICBhc3NlcnRfdHJ1ZShhd2FpdCBpc09wZXJhdGlvbnNDaGFpbkVtcHR5KHBj
KSwgIkVtcHR5IGNoYWluIik7CisgIGNvbnN0IHAgPSB0cmFuc2NlaXZlci5zZW5kZXIucmVwbGFj
ZVRyYWNrKG51bGwpOworICBhc3NlcnRfZmFsc2UoYXdhaXQgaXNPcGVyYXRpb25zQ2hhaW5FbXB0
eShwYyksICJOb24tZW1wdHkgY2hhaW4iKTsKKyAgYXdhaXQgcDsKK30sICJyZXBsYWNlVHJhY2sg
dXNlcyBvcGVyYXRpb25zIGNoYWluIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcigi
YXVkaW8iKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVk
ID0gcik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMCkpOwor
ICBhc3NlcnRfdHJ1ZShhd2FpdCBpc09wZXJhdGlvbnNDaGFpbkVtcHR5KHBjKSwgIkVtcHR5IGNo
YWluIik7CisgIGNvbnN0IHBhcmFtZXRlcnMgPSB0cmFuc2NlaXZlci5zZW5kZXIuZ2V0UGFyYW1l
dGVycygpOworICBjb25zdCBwID0gdHJhbnNjZWl2ZXIuc2VuZGVyLnNldFBhcmFtZXRlcnMocGFy
YW1ldGVycyk7CisgIGNvbnN0IGhhdmVTdGF0ZSA9IHByb21pc2VTdGF0ZUZpbmFsKHApOworICBh
c3NlcnRfdHJ1ZShhd2FpdCBpc09wZXJhdGlvbnNDaGFpbkVtcHR5KHBjKSwgIkVtcHR5IGNoYWlu
Iik7CisgIGFzc2VydF9lcXVhbHMoYXdhaXQgaGF2ZVN0YXRlLCAicGVuZGluZyIsICJNZXRob2Qg
aXMgYXN5bmMiKTsKKyAgYXdhaXQgcDsKK30sICJzZXRQYXJhbWV0ZXJzIGRvZXMgTk9UIHVzZSB0
aGUgb3BlcmF0aW9ucyBjaGFpbiIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CisgIGNvbnN0IHAgPSBwYy5nZXRTdGF0cygpOworICBjb25zdCBoYXZlU3Rh
dGUgPSBwcm9taXNlU3RhdGVGaW5hbChwKTsKKyAgYXNzZXJ0X3RydWUoYXdhaXQgaXNPcGVyYXRp
b25zQ2hhaW5FbXB0eShwYyksICJFbXB0eSBjaGFpbiIpOworICBhc3NlcnRfZXF1YWxzKGF3YWl0
IGhhdmVTdGF0ZSwgInBlbmRpbmciLCAiTWV0aG9kIGlzIGFzeW5jIik7CisgIGF3YWl0IHA7Cit9
LCAicGMuZ2V0U3RhdHMgZG9lcyBOT1QgdXNlIHRoZSBvcGVyYXRpb25zIGNoYWluIik7CisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qge3NlbmRl
cn0gPSBwYy5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9
PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
dC5zdGVwX3RpbWVvdXQociwgMCkpOworICBhc3NlcnRfdHJ1ZShhd2FpdCBpc09wZXJhdGlvbnND
aGFpbkVtcHR5KHBjKSwgIkVtcHR5IGNoYWluIik7CisgIGNvbnN0IHAgPSBzZW5kZXIuZ2V0U3Rh
dHMoKTsKKyAgY29uc3QgaGF2ZVN0YXRlID0gcHJvbWlzZVN0YXRlRmluYWwocCk7CisgIGFzc2Vy
dF90cnVlKGF3YWl0IGlzT3BlcmF0aW9uc0NoYWluRW1wdHkocGMpLCAiRW1wdHkgY2hhaW4iKTsK
KyAgYXNzZXJ0X2VxdWFscyhhd2FpdCBoYXZlU3RhdGUsICJwZW5kaW5nIiwgIk1ldGhvZCBpcyBh
c3luYyIpOworICBhd2FpdCBwOworfSwgInNlbmRlci5nZXRTdGF0cyBkb2VzIE5PVCB1c2UgdGhl
IG9wZXJhdGlvbnMgY2hhaW4iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOworICBjb25zdCB7cmVjZWl2ZXJ9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoImF1ZGlv
Iik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIp
OworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKKyAgYXNz
ZXJ0X3RydWUoYXdhaXQgaXNPcGVyYXRpb25zQ2hhaW5FbXB0eShwYyksICJFbXB0eSBjaGFpbiIp
OworICBjb25zdCBwID0gcmVjZWl2ZXIuZ2V0U3RhdHMoKTsKKyAgY29uc3QgaGF2ZVN0YXRlID0g
cHJvbWlzZVN0YXRlRmluYWwocCk7CisgIGFzc2VydF90cnVlKGF3YWl0IGlzT3BlcmF0aW9uc0No
YWluRW1wdHkocGMpLCAiRW1wdHkgY2hhaW4iKTsKKyAgYXNzZXJ0X2VxdWFscyhhd2FpdCBoYXZl
U3RhdGUsICJwZW5kaW5nIiwgIk1ldGhvZCBpcyBhc3luYyIpOworICBhd2FpdCBwOworfSwgInJl
Y2VpdmVyLmdldFN0YXRzIGRvZXMgTk9UIHVzZSB0aGUgb3BlcmF0aW9ucyBjaGFpbiIpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgY29uc3Qgb2ZmZXIg
PSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24ob2ZmZXIpOworICBjb25zdCB7Y2FuZGlkYXRlfSA9IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9uaWNlY2FuZGlkYXRlID0gcik7CisgIHRyeSB7CisgICAgYXdhaXQgcGMyLmFkZEljZUNh
bmRpZGF0ZShjYW5kaWRhdGUpOworICAgIGFzc2VydF91bnJlYWNoZWQoIkNvbnRyb2wuIE11c3Qg
bm90IHN1Y2NlZWQiKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGFzc2VydF9lcXVhbHMoZS5uYW1l
LCAiSW52YWxpZFN0YXRlRXJyb3IiKTsKKyAgfQorICBjb25zdCBwID0gcGMyLnNldFJlbW90ZURl
c2NyaXB0aW9uKG9mZmVyKTsKKyAgYXdhaXQgcGMyLmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUp
OworICBhd2FpdCBwOworfSwgImFkZEljZUNhbmRpZGF0ZSBjaGFpbnMgb250byBTUkQsIGZhaWxz
IGJlZm9yZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICBwYy5hZGRUcmFu
c2NlaXZlcigidmlkZW8iKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYy5vbm5lZ290aWF0
aW9ubmVlZGVkID0gcik7CisgIGNvbnN0IHAgPSAoYXN5bmMgKCkgPT4geworICAgIGF3YWl0IHBj
LnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgfSkoKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9
PiB0LnN0ZXBfdGltZW91dChyLCAwKSk7CisgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9u
KG9mZmVyKTsKKyAgYXdhaXQgcDsKK30sICJPcGVyYXRpb25zIHF1ZXVlIG5vdCB2dWxuZXJhYmxl
IHRvIHJlY3Vyc2lvbiBieSBjaGFpbmVkIG5lZ290aWF0aW9ubmVlZGVkIik7CisKK3Byb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CisKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICBhd2FpdCBQcm9taXNlLmFsbChb
CisgICAgcGMxLmNyZWF0ZU9mZmVyKCksCisgICAgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5
cGU6ICJvZmZlciJ9KQorICBdKTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgIHBjMi5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbiksCisgICAgcGMyLmNyZWF0ZUFu
c3dlcigpLAorICAgIHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAiYW5zd2VyIn0pCisg
IF0pOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRp
b24pOworfSwgIlBhY2sgb3BlcmF0aW9ucyBxdWV1ZSB3aXRoIGltcGxpY2l0IG9mZmVyIGFuZCBh
bnN3ZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7
CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBjb25zdCBzdGF0ZSA9IChwYywgcykgPT4gbmV3IFBy
b21pc2UociA9PiBwYy5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgpID0+IHBjLnNpZ25hbGluZ1N0YXRlID09IHMgJiYgcigp
KTsKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICBwYzEuY3JlYXRlT2ZmZXIoKTsK
KyAgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICJvZmZlciJ9KTsKKyAgYXdhaXQgc3Rh
dGUocGMxLCAiaGF2ZS1sb2NhbC1vZmZlciIpOworICBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24o
cGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIHBjMi5zZXRM
b2NhbERlc2NyaXB0aW9uKHt0eXBlOiAiYW5zd2VyIn0pOworICBhd2FpdCBzdGF0ZShwYzIsICJz
dGFibGUiKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2Ny
aXB0aW9uKTsKK30sICJOZWdvdGlhdGUgc29sZWx5IGJ5IG9wZXJhdGlvbnMgcXVldWUgYW5kIHNp
Z25hbGluZyBzdGF0ZSIpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBl
cmZlY3QtbmVnb3RpYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVj
dC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U5M2ZhYmM0NjA5
YWIzMjA1NjYxYzQwMDc5NjUwZjUyZWNhOWYxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKKworRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9uIHNldHVwIGNvbm5lY3RzIE5vdCBlbm91Z2gg
YXJndW1lbnRzCitGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc2V0dXAgY29ubmVjdHMgd2l0aCBy
b2xlcyByZXZlcnNlZCBOb3QgZW5vdWdoIGFyZ3VtZW50cworRkFJTCBQZXJmZWN0IG5lZ290aWF0
aW9uIGdsYXJlIE5vdCBlbm91Z2ggYXJndW1lbnRzCitGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24g
Z2xhcmUgd2l0aCByb2xlcyByZXZlcnNlZCBOb3QgZW5vdWdoIGFyZ3VtZW50cworRkFJTCBQZXJm
ZWN0IG5lZ290aWF0aW9uIHN0cmVzcyBnbGFyZSBOb3QgZW5vdWdoIGFyZ3VtZW50cworRkFJTCBQ
ZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVzcyBnbGFyZSB3aXRoIHJvbGVzIHJldmVyc2VkIE5vdCBl
bm91Z2ggYXJndW1lbnRzCitGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIGxp
bmVhciBOb3QgZW5vdWdoIGFyZ3VtZW50cworRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVz
cyBnbGFyZSBsaW5lYXIgd2l0aCByb2xlcyByZXZlcnNlZCBOb3QgZW5vdWdoIGFyZ3VtZW50cwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWQyNzI1YzMzY2E2NmIzMDM5NTlmMzJkMTA3YWU1MTZiYWRlNGE2MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbApAQCAtMCwwICsx
LDE4NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+PC90aXRsZT4KKzxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0
JzsKKworZnVuY3Rpb24gcGVlcihvdGhlciwgcG9saXRlLCBmYWlsID0gbnVsbCkgeworICBjb25z
dCBzZW5kID0gKHRndCwgbXNnKSA9PiB0Z3QucG9zdE1lc3NhZ2UoSlNPTi5wYXJzZShKU09OLnN0
cmluZ2lmeShtc2cpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIqIik7CisgIGlmICghZmFpbCkgZmFpbCA9IGUgPT4gc2VuZCh3aW5kb3cucGFyZW50LCB7
ZXJyb3I6IGAke2UubmFtZX06ICR7ZS5tZXNzYWdlfWB9KTsKKyAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKworICBpZiAoIXdpbmRvdy5hc3NlcnRfZXF1YWxzKSB7CisgICAg
d2luZG93LmFzc2VydF9lcXVhbHMgPSAoYSwgYiwgbXNnKSA9PiBhID09PSBiIHx8CisgICAgICAg
IGZhaWwobmV3IEVycm9yKGAke21zZ30gZXhwZWN0ZWQgJHtifSBidXQgZ290ICR7YX1gKSk7Cisg
IH0KKworICBjb25zdCBjb21tYW5kcyA9IHsKKyAgICBhc3luYyBhZGRUcmFuc2NlaXZlcigpIHsK
KyAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7Cisg
ICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLmFkZEV2ZW50TGlzdGVuZXIoIm5lZ290aWF0
ZWQiLCByLCB7b25jZTogdHJ1ZX0pKTsKKyAgICAgIGlmICghdHJhbnNjZWl2ZXIuY3VycmVudERp
cmVjdGlvbikgeworICAgICAgICAvLyBNaWdodCBoYXZlIGp1c3QgbWlzc2VkIHRoZSBuZWdvdGlh
dGlvbiB0cmFpbi4gQ2F0Y2ggbmV4dCBvbmUuCisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIg
PT4gcGMuYWRkRXZlbnRMaXN0ZW5lcigibmVnb3RpYXRlZCIsIHIsIHtvbmNlOiB0cnVlfSkpOwor
ICAgICAgfQorICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9u
LCAic2VuZG9ubHkiLCAiaGF2ZSBkaXJlY3Rpb24iKTsKKyAgICAgIHJldHVybiBwYy5nZXRUcmFu
c2NlaXZlcnMoKS5sZW5ndGg7CisgICAgfSwKKyAgICBhc3luYyBzaW1wbGVDb25uZWN0KCkgewor
ICAgICAgY29uc3QgcCA9IGNvbW1hbmRzLmFkZFRyYW5zY2VpdmVyKCk7CisgICAgICBhd2FpdCBu
ZXcgUHJvbWlzZShyID0+IHBjLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICgpID0+IHBjLmljZUNvbm5lY3Rpb25TdGF0ZSA9PSAiY29ubmVjdGVk
IiAmJiByKCkpOworICAgICAgcmV0dXJuIGF3YWl0IHA7CisgICAgfSwKKyAgICBhc3luYyBnZXRO
dW1UcmFuc2NlaXZlcnMoKSB7CisgICAgICByZXR1cm4gcGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVu
Z3RoOworICAgIH0sCisgIH07CisKKyAgdHJ5IHsKKyAgICBwYy5hZGRFdmVudExpc3RlbmVyKCJp
Y2VjYW5kaWRhdGUiLCAoe2NhbmRpZGF0ZX0pID0+IHNlbmQob3RoZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5kaWRh
dGV9KSk7CisgICAgbGV0IG1ha2luZ09mZmVyID0gZmFsc2UsIGlnbm9yZU9mZmVyID0gZmFsc2U7
CisgICAgcGMuYWRkRXZlbnRMaXN0ZW5lcigibmVnb3RpYXRpb25uZWVkZWQiLCBhc3luYyAoKSA9
PiB7CisgICAgICB0cnkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRl
LCAic3RhYmxlIiwgIm5lZ290aWF0aW9ubmVlZGVkIGFsd2F5cyBmaXJlcyBpbiBzdGFibGUgc3Rh
dGUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhtYWtpbmdPZmZlciwgZmFsc2UsICJuZWdvdGlh
dGlvbm5lZWRlZCBub3QgYWxyZWFkeSBpbiBwcm9ncmVzcyIpOworICAgICAgICBtYWtpbmdPZmZl
ciA9IHRydWU7CisgICAgICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgImhhdmUtbG9jYWwtb2ZmZXIiLCAi
bmVnb3RpYXRpb25uZWVkZWQgbm90IHJhY2luZyB3aXRoIG9ubWVzc2FnZSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHBjLmxvY2FsRGVzY3JpcHRpb24udHlwZSwgIm9mZmVyIiwgIm5lZ290aWF0
aW9ubmVlZGVkIFNMRCB3b3JrZWQiKTsKKyAgICAgICAgc2VuZChvdGhlciwge2Rlc2NyaXB0aW9u
OiBwYy5sb2NhbERlc2NyaXB0aW9ufSk7CisgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGZh
aWwoZSk7CisgICAgICB9IGZpbmFsbHkgeworICAgICAgICBtYWtpbmdPZmZlciA9IGZhbHNlOwor
ICAgICAgfQorICAgIH0pOworICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSBhc3luYyAoe2RhdGE6IHtk
ZXNjcmlwdGlvbiwgY2FuZGlkYXRlLCBydW59fSkgPT4geworICAgICAgdHJ5IHsKKyAgICAgICAg
aWYgKGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgaWdub3JlT2ZmZXIgPSBkZXNjcmlwdGlvbi50
eXBlID09ICJvZmZlciIgJiYgIXBvbGl0ZSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICht
YWtpbmdPZmZlciB8fCBwYy5zaWduYWxpbmdTdGF0ZSAhPSAic3RhYmxlIik7CisgICAgICAgICAg
aWYgKGlnbm9yZU9mZmVyKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorICAg
ICAgICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKKyAgICAg
ICAgICBpZiAoZGVzY3JpcHRpb24udHlwZSA9PSAib2ZmZXIiKSB7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAiaGF2ZS1yZW1vdGUtb2ZmZXIiLCAiUmVtb3Rl
IG9mZmVyIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnJlbW90ZURlc2NyaXB0aW9u
LnR5cGUsICJvZmZlciIsICJTUkQgd29ya2VkIik7CisgICAgICAgICAgICBhd2FpdCBwYy5zZXRM
b2NhbERlc2NyaXB0aW9uKCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGlu
Z1N0YXRlLCAic3RhYmxlIiwgIm9ubWVzc2FnZSBub3QgcmFjaW5nIHdpdGggbmVnb3RpYXRpb25u
ZWVkZWQiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMubG9jYWxEZXNjcmlwdGlvbi50
eXBlLCAiYW5zd2VyIiwgIm9ubWVzc2FnZSBTTEQgd29ya2VkIik7CisgICAgICAgICAgICBzZW5k
KG90aGVyLCB7ZGVzY3JpcHRpb246IHBjLmxvY2FsRGVzY3JpcHRpb259KTsKKyAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5yZW1vdGVEZXNjcmlwdGlvbi50
eXBlLCAiYW5zd2VyIiwgIkFuc3dlciB3YXMgc2V0Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwgImFuc3dlcmVkIik7CisgICAgICAgICAg
ICBwYy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgibmVnb3RpYXRlZCIpKTsKKyAgICAgICAgICB9
CisgICAgICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlKSB7CisgICAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgIGF3YWl0IHBjLmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUpOworICAgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGlmICghaWdub3JlT2ZmZXIpIHRocm93IGU7CisgICAg
ICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHJ1bikgeworICAgICAgICAgIHNlbmQod2luZG93
LnBhcmVudCwge1tydW4uaWRdOiBhd2FpdCBjb21tYW5kc1tydW4uY21kXSgpIHx8IDB9KTsKKyAg
ICAgICAgfQorICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBmYWlsKGUpOworICAgICAgfQor
ICAgIH07CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBmYWlsKGUpOworICB9CisgIHJldHVybiBwYzsK
K30KKworYXN5bmMgZnVuY3Rpb24gc2V0dXBQZWVySWZyYW1lKHQsIHBvbGl0ZSkgeworICBjb25z
dCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBpZnJhbWUucmVtb3ZlKCkpOworICBpZnJhbWUuc3JjZG9jID0KKyAgIGA8aHRt
bFw+PHNjcmlwdFw+KCR7cGVlci50b1N0cmluZygpfSkod2luZG93LnBhcmVudCwgJHtwb2xpdGV9
KTs8L3NjcmlwdFw+PC9odG1sXD5gOworICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQoaWZyYW1lKTsKKworICBjb25zdCBmYWlsQ2F0Y2hlciA9IHQuc3RlcF9mdW5jKCh7ZGF0
YX0pID0+CisgICAgICAoImVycm9yIiBpbiBkYXRhKSAmJiBhc3NlcnRfdW5yZWFjaGVkKGBFcnJv
ciBpbiBpZnJhbWU6ICR7ZGF0YS5lcnJvcn1gKSk7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgZmFpbENhdGNoZXIpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHdpbmRvdy5y
ZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZmFpbENhdGNoZXIpKTsKKyAgYXdhaXQgbmV3
IFByb21pc2UociA9PiBpZnJhbWUub25sb2FkID0gcik7CisgIHJldHVybiBpZnJhbWU7Cit9CisK
K2Z1bmN0aW9uIHNldHVwUGVlclRvcExldmVsKHQsIG90aGVyLCBwb2xpdGUpIHsKKyAgY29uc3Qg
cGMgPSBwZWVyKG90aGVyLCBwb2xpdGUsIHQuc3RlcF9mdW5jKGUgPT4geyB0aHJvdyBlOyB9KSk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4geyBwYy5jbG9zZSgpOyB3aW5kb3cub25tZXNzYWdlID0g
bnVsbDsgfSk7Cit9CisKK2xldCBjb3VudGVyID0gMDsKK2FzeW5jIGZ1bmN0aW9uIHJ1bih0YXJn
ZXQsIGNtZCkgeworICBjb25zdCBpZCA9IGByZXN1bHQke2NvdW50ZXIrK31gOworICB0YXJnZXQu
cG9zdE1lc3NhZ2Uoe3J1bjoge2NtZCwgaWR9fSwgIioiKTsKKyAgcmV0dXJuIG5ldyBQcm9taXNl
KHIgPT4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBsaXN0ZW4oe2RhdGF9
KSB7CisgICAgaWYgKCEoaWQgaW4gZGF0YSkpIHJldHVybjsKKyAgICB3aW5kb3cucmVtb3ZlRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIGxpc3Rlbik7CisgICAgcihkYXRhW2lkXSk7CisgIH0pKTsK
K30KKworbGV0IGlmcmFtZTsKK2FzeW5jIGZ1bmN0aW9uIHNldHVwQUIodCwgcG9saXRlQSwgcG9s
aXRlQikgeworICBpZnJhbWUgPSBhd2FpdCBzZXR1cFBlZXJJZnJhbWUodCwgcG9saXRlQik7Cisg
IHJldHVybiBzZXR1cFBlZXJUb3BMZXZlbCh0LCBpZnJhbWUuY29udGVudFdpbmRvdywgcG9saXRl
QSk7Cit9Citjb25zdCBydW5BID0gY21kID0+IHJ1bih3aW5kb3csIGNtZCk7Citjb25zdCBydW5C
ID0gY21kID0+IHJ1bihpZnJhbWUuY29udGVudFdpbmRvdywgY21kKTsKK2NvbnN0IHJ1bkJvdGgg
PSAoY21kQSwgY21kQiA9IGNtZEEpID0+IFByb21pc2UuYWxsKFtydW5BKGNtZEEpLCBydW5CKGNt
ZEIpXSk7CisKK2FzeW5jIGZ1bmN0aW9uIHByb21pc2VfdGVzdF9ib3RoX3JvbGVzKGYsIG5hbWUp
IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gZih0LCBhd2FpdCBzZXR1cEFCKHQsIHRydWUs
IGZhbHNlKSksIG5hbWUpOworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiBmKHQsIGF3YWl0IHNl
dHVwQUIodCwgZmFsc2UsIHRydWUpKSwKKyAgICAgICAgICAgICAgIGAke25hbWV9IHdpdGggcm9s
ZXMgcmV2ZXJzZWRgKTsKK30KKworcHJvbWlzZV90ZXN0X2JvdGhfcm9sZXMoYXN5bmMgKHQsIHBj
KSA9PiB7CisgIGFzc2VydF9lcXVhbHMoYXdhaXQgcnVuQSgic2ltcGxlQ29ubmVjdCIpLCAxLCAi
b25lIHRyYW5zY2VpdmVyIik7CisgIGFzc2VydF9lcXVhbHMoYXdhaXQgcnVuQigiYWRkVHJhbnNj
ZWl2ZXIiKSwgMiwgInR3byB0cmFuc2NlaXZlcnMiKTsKK30sICJQZXJmZWN0IG5lZ290aWF0aW9u
IHNldHVwIGNvbm5lY3RzIik7CisKK3Byb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5jICh0LCBw
YykgPT4geworICBhd2FpdCBydW5Cb3RoKCJhZGRUcmFuc2NlaXZlciIpOworICBjb25zdCBbbnVt
QSwgbnVtQl0gPSBhd2FpdCBydW5Cb3RoKCJnZXROdW1UcmFuc2NlaXZlcnMiKTsKKyAgYXNzZXJ0
X2VxdWFscyhudW1BLCAyLCAidHdvIHRyYW5zY2VpdmVycyBvbiBzaWRlIEEiKTsKKyAgYXNzZXJ0
X2VxdWFscyhudW1CLCAyLCAidHdvIHRyYW5zY2VpdmVycyBvbiBzaWRlIEIiKTsKK30sICJQZXJm
ZWN0IG5lZ290aWF0aW9uIGdsYXJlIik7CisKK3Byb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5j
ICh0LCBwYykgPT4geworICBjb25zdCBwcyA9IFtdOworICBmb3IgKGxldCBpID0gMjA7IGkgPiAw
OyBpLS0pIHsKKyAgICBwcy5wdXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOworICAgIGF3
YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgaSAtIDEpKTsKKyAgfQorICBw
cy5wdXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOworICBhd2FpdCBQcm9taXNlLmFsbChw
cyk7CisgIGNvbnN0IFtudW1BLCBudW1CXSA9IGF3YWl0IHJ1bkJvdGgoImdldE51bVRyYW5zY2Vp
dmVycyIpOworICBhc3NlcnRfZXF1YWxzKG51bUEsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNp
ZGUgQSIpOworICBhc3NlcnRfZXF1YWxzKG51bUIsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNp
ZGUgQiIpOworfSwgIlBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIik7CisKK3Byb21p
c2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5jICh0LCBwYykgPT4geworICBjb25zdCBwcyA9IFtdOwor
ICBmb3IgKGxldCBpID0gMjA7IGkgPiAwOyBpLS0pIHsKKyAgICBwcy5wdXNoKHJ1bkJvdGgoImFk
ZFRyYW5zY2VpdmVyIikpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVv
dXQociwgMCkpOworICB9CisgIHBzLnB1c2gocnVuQm90aCgiYWRkVHJhbnNjZWl2ZXIiKSk7Cisg
IGF3YWl0IFByb21pc2UuYWxsKHBzKTsKKyAgY29uc3QgW251bUEsIG51bUJdID0gYXdhaXQgcnVu
Qm90aCgiZ2V0TnVtVHJhbnNjZWl2ZXJzIik7CisgIGFzc2VydF9lcXVhbHMobnVtQSwgNDIsICI0
MiB0cmFuc2NlaXZlcnMgb24gc2lkZSBBIik7CisgIGFzc2VydF9lcXVhbHMobnVtQiwgNDIsICI0
MiB0cmFuc2NlaXZlcnMgb24gc2lkZSBCIik7Cit9LCAiUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJl
c3MgZ2xhcmUgbGluZWFyIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJl
bW90ZS10cmFjay1tdXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0
ZS5odHRwcy5odG1sCmluZGV4IGM0YzZiNGZkMDQxMGRkNDVlOTlkOGFlMzEzZWRlNDJhZTc1OTNl
NDkuLmMyODBhN2Q0NGQ4ZDJhNDc3ZjI2MDBjNzQxZWQ2ODkwM2U1MTY2NTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcmVtb3RlLXRyYWNrLW11dGUuaHR0cHMuaHRtbApAQCAtMSw1ICsxLDYgQEAKIDwhZG9jdHlw
ZSBodG1sPgogPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRl
bnQ9ImxvbmciPgogPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLXRyYW5zY2VpdmVycy5odHRwcy5o
dG1sPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KQEAgLTcyLDEyICs3MywxNiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGV4
Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CiAKICAgY29uc3QgZSA9IGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbmRMaXN0ZW5Ub09udHJhY2sodCwgcGMxLCBwYzIpOworICBjb25zdCBtdXRlV2F0
Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgZS50cmFjaywgWydtdXRlJywgJ3VubXV0ZSddKTsK
ICAgYXdhaXQgZXhjaGFuZ2VBbnN3ZXIocGMxLCBwYzIpOworICBhd2FpdCBtdXRlV2F0Y2hlci53
YWl0X2ZvcigndW5tdXRlJyk7CisKKyAgY29uc3QgbXV0ZVByb21pc2UgPSBtdXRlV2F0Y2hlci53
YWl0X2ZvcignbXV0ZScpOwogICBsb2NhbFRyYW5zY2VpdmVyLmRpcmVjdGlvbiA9ICdpbmFjdGl2
ZSc7CiAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhd2FpdCBtdXRl
UHJvbWlzZTsKIAotICBjb25zdCB1bm11dGVXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBl
LnRyYWNrLCBbJ3VubXV0ZSddKTsKLSAgY29uc3QgdW5tdXRlUHJvbWlzZSA9IHVubXV0ZVdhdGNo
ZXIud2FpdF9mb3IoJ3VubXV0ZScpOworICBjb25zdCB1bm11dGVQcm9taXNlID0gbXV0ZVdhdGNo
ZXIud2FpdF9mb3IoJ3VubXV0ZScpOwogICBsb2NhbFRyYW5zY2VpdmVyLmRpcmVjdGlvbiA9ICdz
ZW5kcmVjdic7CiAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwogCkBAIC0x
MDAsOCArMTA1LDI4IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgYXdhaXQgdW5tdXRl
UHJvbWlzZTsKIAogICBjb25zdCBtdXRlUHJvbWlzZSA9IG11dGVXYXRjaGVyLndhaXRfZm9yKCdt
dXRlJyk7Ci0gIHBjMi5jbG9zZSgpOworICBsb2NhbFRyYW5zY2VpdmVyLnN0b3AoKTsKKyAgYXdh
aXQgbXV0ZVByb21pc2U7Cit9LCAndHJhbnNjZWl2ZXIuc3RvcCgpIG9uIG9uZSBzaWRlICh3aXRo
b3V0IHJlbmVnb3RpYXRpb24pIGNhdXNlcyBtdXRlIGV2ZW50cyBvbiB0aGUgb3RoZXInKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBjcmVhdGVQZWVyQ29ubmVj
dGlvbldpdGhDbGVhbnVwKHQpOworICBjb25zdCBwYzFTZW5kZXIgPSBwYzEuYWRkVHJhY2soLi4u
YXdhaXQgY3JlYXRlVHJhY2tBbmRTdHJlYW1XaXRoQ2xlYW51cCh0KSk7CisgIGNvbnN0IGxvY2Fs
VHJhbnNjZWl2ZXIgPSBmaW5kVHJhbnNjZWl2ZXJGb3JTZW5kZXIocGMxLCBwYzFTZW5kZXIpOwor
ICBjb25zdCBwYzIgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQpOworICBleGNo
YW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworCisgIGNvbnN0IGUgPSBhd2FpdCBleGNoYW5n
ZU9mZmVyQW5kTGlzdGVuVG9PbnRyYWNrKHQsIHBjMSwgcGMyKTsKKyAgLy8gTmVlZCB0byB3YWl0
IGZvciB0aGUgaW5pdGlhbCB1bm11dGUgZXZlbnQgYmVmb3JlIGNsb3NpbmcsIG90aGVyd2lzZQor
ICAvLyB0aGVyZSB3aWxsIGJlIG5vIHRyYW5zaXRpb24gZnJvbSB1bm11dGVkLT5tdXRlZC4KKyAg
Y29uc3QgbXV0ZVdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGUudHJhY2ssIFsnbXV0ZScs
ICd1bm11dGUnXSk7CisgIGNvbnN0IHVubXV0ZVByb21pc2UgPSBtdXRlV2F0Y2hlci53YWl0X2Zv
cigndW5tdXRlJyk7CisgIGF3YWl0IGV4Y2hhbmdlQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXdhaXQg
dW5tdXRlUHJvbWlzZTsKKworICBjb25zdCBtdXRlUHJvbWlzZSA9IG11dGVXYXRjaGVyLndhaXRf
Zm9yKCdtdXRlJyk7CisgIHBjMS5jbG9zZSgpOwogICBhd2FpdCBtdXRlUHJvbWlzZTsKLX0sICdw
Yy5jbG9zZSgpIG11dGVzIHJlbW90ZSB0cmFja3MnKTsKK30sICdwYy5jbG9zZSgpIG9uIG9uZSBz
aWRlIGNhdXNlcyBtdXRlIGV2ZW50cyBvbiB0aGUgb3RoZXInKTsKIAogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdmVUcmFjay5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1yZW1vdmVUcmFjay5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMTVjZTNmY2MwMDM1
NTVhZmNkNDEzODkyZmVjMzhlYzhiM2U2MWE3Ny4uMzFhYTA5YzVkYTQ1M2NlNmYzYjhkNmE3YWE0
OGZiMmEzNjFmYmZhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3ZlVHJhY2suaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW92ZVRyYWNrLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMTEsNCArMTEsNiBAQCBQQVNTIENhbGxpbmcgcmVtb3ZlVHJhY2sgd2l0aCBjdXJy
ZW50RGlyZWN0aW9uIHNlbmRyZWN2IHNob3VsZCBzZXQgZGlyZWN0aW9uIHRvCiBQQVNTIENhbGxp
bmcgcmVtb3ZlVHJhY2sgd2l0aCBjdXJyZW50RGlyZWN0aW9uIHNlbmRvbmx5IHNob3VsZCBzZXQg
ZGlyZWN0aW9uIHRvIGluYWN0aXZlIAogUEFTUyBDYWxsaW5nIHJlbW92ZVRyYWNrIHdpdGggY3Vy
cmVudERpcmVjdGlvbiByZWN2b25seSBzaG91bGQgbm90IGNoYW5nZSBkaXJlY3Rpb24gCiBQQVNT
IENhbGxpbmcgcmVtb3ZlVHJhY2sgd2l0aCBjdXJyZW50RGlyZWN0aW9uIGluYWN0aXZlIHNob3Vs
ZCBub3QgY2hhbmdlIGRpcmVjdGlvbiAKK0ZBSUwgQ2FsbGluZyByZW1vdmVUcmFjayBvbiBhIHN0
b3BwZWQgdHJhbnNjZWl2ZXIgc2hvdWxkIGJlIGEgbm8tb3AgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgb2JqZWN0ICJbb2JqZWN0IE1lZGlhU3RyZWFtVHJhY2tdIiBidXQgZ290IG51bGwKK1BBU1Mg
Q2FsbGluZyByZW1vdmVUcmFjayBvbiBhIG51bGwgdHJhY2sgc2hvdWxkIGhhdmUgbm8gZWZmZWN0
IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdmVUcmFjay5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcmVtb3ZlVHJhY2suaHR0cHMuaHRtbAppbmRleCBmZmIzZmVjZWNjNDhkZGZmMzg2
OWVhNzI4YjAwYjk0Yzc2MzgwMzM0Li44MzA5NWMwODVhOGIyMDUxMmI1MTczYjJkMzZjOTg0MjEy
MmZjNGNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdmVUcmFjay5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXJlbW92ZVRyYWNrLmh0dHBzLmh0bWwKQEAgLTM2LDE0ICszNiwxNCBA
QAogICAgKi8KICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CisgICAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CiAgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9w
KCkpKTsKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICAgIGNvbnN0
IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2spOwogICAgIGNvbnN0IHsgc2Vu
ZGVyIH0gPSB0cmFuc2NlaXZlcjsKIAogICAgIHBjLmNsb3NlKCk7Ci0gICAgYXNzZXJ0X3Rocm93
cygnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBwYy5yZW1vdmVUcmFjayhzZW5kZXIpKTsKKyAg
ICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBwYy5yZW1vdmVU
cmFjayhzZW5kZXIpKTsKICAgfSwgJ2FkZFRyYW5zY2VpdmVyIC0gQ2FsbGluZyByZW1vdmVUcmFj
ayB3aGVuIGNvbm5lY3Rpb24gaXMgY2xvc2VkIHNob3VsZCB0aHJvdyBJbnZhbGlkU3RhdGVFcnJv
cicpOwogCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKQEAgLTU2LDEzICs1NiwxMyBAQAog
ICAgIGNvbnN0IHNlbmRlciA9IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOwogCiAgICAgcGMu
Y2xvc2UoKTsKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IHBj
LnJlbW92ZVRyYWNrKHNlbmRlcikpOworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkU3Rh
dGVFcnJvcicsICgpID0+IHBjLnJlbW92ZVRyYWNrKHNlbmRlcikpOwogICB9LCAnYWRkVHJhY2sg
LSBDYWxsaW5nIHJlbW92ZVRyYWNrIHdoZW4gY29ubmVjdGlvbiBpcyBjbG9zZWQgc2hvdWxkIHRo
cm93IEludmFsaWRTdGF0ZUVycm9yJyk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewog
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICBjb25zdCBzdHJl
YW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3Ao
KSkpOwogICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY29uc3Qg
dHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcih0cmFjayk7CkBAIC03MCw3ICs3MCw3IEBA
CiAKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICBwYzIuY2xv
c2UoKTsKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsICgpID0+IHBjMi5y
ZW1vdmVUcmFjayhzZW5kZXIpKTsKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZFN0YXRl
RXJyb3InLCAoKSA9PiBwYzIucmVtb3ZlVHJhY2soc2VuZGVyKSk7CiAgIH0sICdhZGRUcmFuc2Nl
aXZlciAtIENhbGxpbmcgcmVtb3ZlVHJhY2sgb24gZGlmZmVyZW50IGNvbm5lY3Rpb24gdGhhdCBp
cyBjbG9zZWQgc2hvdWxkIHRocm93IEludmFsaWRTdGF0ZUVycm9yJyk7CiAKICAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewpAQCAtODQsNyArODQsNyBAQAogCiAgICAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgcGMyLmNsb3NlKCk7Ci0gICAgYXNzZXJ0X3Rocm93
cygnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiBwYzIucmVtb3ZlVHJhY2soc2VuZGVyKSk7Cisg
ICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4gcGMyLnJlbW92
ZVRyYWNrKHNlbmRlcikpOwogICB9LCAnYWRkVHJhY2sgLSBDYWxsaW5nIHJlbW92ZVRyYWNrIG9u
IGRpZmZlcmVudCBjb25uZWN0aW9uIHRoYXQgaXMgY2xvc2VkIHNob3VsZCB0aHJvdyBJbnZhbGlk
U3RhdGVFcnJvcicpOwogCiAgIC8qCkBAIC05NCw3ICs5NCw3IEBACiAgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgY29uc3Qgc3RyZWFtID0gYXdh
aXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7Cisg
ICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CiAg
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9
PiB0cmFjay5zdG9wKCkpKTsKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygp
OwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2spOwpAQCAt
MTAyLDcgKzEwMiw3IEBACiAKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLSAgICBhc3NlcnRfdGhy
b3dzKCdJbnZhbGlkQWNjZXNzRXJyb3InLCAoKSA9PiBwYzIucmVtb3ZlVHJhY2soc2VuZGVyKSk7
CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgpID0+IHBjMi5y
ZW1vdmVUcmFjayhzZW5kZXIpKTsKICAgfSwgJ2FkZFRyYW5zY2VpdmVyIC0gQ2FsbGluZyByZW1v
dmVUcmFjayBvbiBkaWZmZXJlbnQgY29ubmVjdGlvbiBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vz
c0Vycm9yJyk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewpAQCAtMTE2LDcgKzExNiw3
IEBACiAKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLSAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlk
QWNjZXNzRXJyb3InLCAoKSA9PiBwYzIucmVtb3ZlVHJhY2soc2VuZGVyKSk7CisgICAgYXNzZXJ0
X3Rocm93c19kb20oJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgpID0+IHBjMi5yZW1vdmVUcmFjayhz
ZW5kZXIpKTsKICAgfSwgJ2FkZFRyYWNrIC0gQ2FsbGluZyByZW1vdmVUcmFjayBvbiBkaWZmZXJl
bnQgY29ubmVjdGlvbiBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJykKIAogICAvKgpA
QCAtMTI2LDcgKzEyNiw3IEBACiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7Ci0gICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdh
aXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAg
ICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICAgIGNvbnN0IHRyYW5zY2Vp
dmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2spOwpAQCAtMTY3LDcgKzE2Nyw3IEBACiAgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7CiAgICAgY29uc3QgY2FsbGVlID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUu
Y2xvc2UoKSk7Ci0gICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQg
Z2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBz
dHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICBj
b25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVy
ID0gY2FsbGVyLmFkZFRyYW5zY2VpdmVyKHRyYWNrKTsKQEAgLTIwMiw3ICsyMDIsNyBAQAogICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAgIGNvbnN0
IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzogdHJ1ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRp
bzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZv
ckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVh
bS5nZXRUcmFja3MoKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVy
KHRyYWNrLCB7IGRpcmVjdGlvbjogJ3NlbmRvbmx5JyB9KTsKQEAgLTIzNiw3ICsyMzYsNyBAQAog
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOwogICAgIGNvbnN0IGNhbGxl
ZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2Fs
bGVlLmNsb3NlKCkpOwotICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3
YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAg
ICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgICBjb25zdCB0cmFuc2Nl
aXZlciA9IGNhbGxlci5hZGRUcmFuc2NlaXZlcih0cmFjaywgeyBkaXJlY3Rpb246ICdyZWN2b25s
eScgfSk7CkBAIC0yNzAsNyArMjcwLDcgQEAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewog
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICBjb25zdCBzdHJl
YW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3Ao
KSkpOwogICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY29uc3Qg
dHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcih0cmFjaywgeyBkaXJlY3Rpb246ICdpbmFj
dGl2ZScgfSk7CkBAIC0yOTIsNiArMjkyLDMzIEBACiAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2Nl
aXZlci5jdXJyZW50RGlyZWN0aW9uLCAnaW5hY3RpdmUnKTsKICAgfSwgJ0NhbGxpbmcgcmVtb3Zl
VHJhY2sgd2l0aCBjdXJyZW50RGlyZWN0aW9uIGluYWN0aXZlIHNob3VsZCBub3QgY2hhbmdlIGRp
cmVjdGlvbicpOwogCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0
cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFj
aCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdl
dFRyYWNrcygpOworICAgIGNvbnN0IHNlbmRlciA9IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0p
OworCisgICAgcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICAgIHBjLnJlbW92ZVRy
YWNrKHNlbmRlcik7CisgICAgYXNzZXJ0X2VxdWFscyhzZW5kZXIudHJhY2ssIHRyYWNrKTsKKyAg
fSwgIkNhbGxpbmcgcmVtb3ZlVHJhY2sgb24gYSBzdG9wcGVkIHRyYW5zY2VpdmVyIHNob3VsZCBi
ZSBhIG5vLW9wIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5j
bG9zZSgpKTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86
IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JF
YWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0u
Z2V0VHJhY2tzKCk7CisgICAgY29uc3Qgc2VuZGVyID0gcGMuYWRkVHJhY2sodHJhY2ssIHN0cmVh
bSk7CisKKyAgICBhd2FpdCBzZW5kZXIucmVwbGFjZVRyYWNrKG51bGwpOworICAgIHBjLnJlbW92
ZVRyYWNrKHNlbmRlcik7CisgICAgYXNzZXJ0X2VxdWFscyhzZW5kZXIudHJhY2ssIG51bGwpOwor
fSwgIkNhbGxpbmcgcmVtb3ZlVHJhY2sgb24gYSBudWxsIHRyYWNrIHNob3VsZCBoYXZlIG5vIGVm
ZmVjdCIpOworCisKICAgLyoKICAgICBUT0RPCiAgICAgICA1LjEuICByZW1vdmVUcmFjawpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS1vbm5lZ290aWF0aW9ubmVlZGVkLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2Utb25uZWdvdGlhdGlvbm5lZWRl
ZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ2YTNiM2Q3NzFlY2RhMGRhMTMwNGM1
NmFhYzIwOTUwMjBkZDQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJ
Y2Utb25uZWdvdGlhdGlvbm5lZWRlZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK0ZBSUwgTmVnb3RpYXRpb24gbmVlZGVkIHdoZW4gcmV0dXJuaW5nIHRvIHN0YWJsZSBkb2Vz
IG5vdCBmaXJlIHRvbyBlYXJseSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ3BjMS5yZXN0YXJ0SWNlKCknLCAncGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVmaW5l
ZCkiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2Utb25uZWdvdGlhdGlvbm5l
ZWRlZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS1vbm5lZ290aWF0aW9ubmVl
ZGVkLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRjY2U0NTE5OTU1OTdlYTA3MmM3ZTQ5MWYwY2Vm
OTA4MDE0Y2YwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2Utb25u
ZWdvdGlhdGlvbm5lZWRlZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT48L3RpdGxlPgorPHNjcmlwdCBzcmM9
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNv
bm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CisK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworCisgIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgcGMxLnJl
c3RhcnRJY2UoKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERl
c2NyaXB0aW9uKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNy
ZWF0ZUFuc3dlcigpKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKTsKKyAgLy8gV2hlbiB0aGUgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBwcm9t
aXNlIGFib3ZlIGlzIHJlc29sdmVkIGEgdGFzayBzaG91bGQgYmUKKyAgLy8gcXVldWVkIHRvIGZp
cmUgdGhlIG9ubmVnb3RpYXRpb25uZWVkZWQgZXZlbnQuIEJlY2F1c2Ugb2YgdGhpcywgd2Ugc2hv
dWxkCisgIC8vIGhhdmUgdGltZSB0byBob29rIHVwIHRoZSBldmVudCBsaXN0ZW5lciAqYWZ0ZXIq
IGF3YWl0aW5nIHRoZSBTUkQgcHJvbWlzZS4KKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEu
b25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworfSwgIk5lZ290aWF0aW9uIG5lZWRlZCB3aGVuIHJl
dHVybmluZyB0byBzdGFibGUgZG9lcyBub3QgZmlyZSB0b28gZWFybHkiKTsKKworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3
YjI1OTQ2ODFmZmI1Mjc4NzRiOGExZGQ2NzZhMmQzOGM2MmFhYzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACisKK0ZBSUwgcmVzdGFydEljZSgpIGRvZXMgbm90IHRyaWdnZXIgbmVnb3RpYXRpb24gYWhl
YWQgb2YgaW5pdGlhbCBuZWdvdGlhdGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ3BjMS5yZXN0YXJ0SWNlKCknLCAncGMxLnJlc3RhcnRJY2UnIGlzIHVu
ZGVmaW5lZCkiCitGQUlMIHJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9uIGluaXRpYWwgbmVn
b3RpYXRpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBwYzEucmVzdGFydEljZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdw
YzEucmVzdGFydEljZSgpJywgJ3BjMS5yZXN0YXJ0SWNlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBy
ZXN0YXJ0SWNlKCkgZmlyZXMgbmVnb3RpYXRpb25uZWVkZWQgYWZ0ZXIgaW5pdGlhbCBuZWdvdGlh
dGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5y
ZXN0YXJ0SWNlKCknLCAncGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVmaW5lZCkiCitGQUlMIHJlc3Rh
cnRJY2UoKSBjYXVzZXMgZnJlc2ggdWZyYWdzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogcGMxLnJlc3RhcnRJY2UgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAncGMxLnJlc3RhcnRJY2UoKScsICdwYzEucmVzdGFydEljZScgaXMg
dW5kZWZpbmVkKSIKK0ZBSUwgcmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtbG9jYWwtb2ZmZXIg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiBwYzEucmVzdGFydEljZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYzEucmVzdGFy
dEljZSgpJywgJ3BjMS5yZXN0YXJ0SWNlJyBpcyB1bmRlZmluZWQpIgorRkFJTCByZXN0YXJ0SWNl
KCkgd29ya3MgaW4gaW5pdGlhbCBoYXZlLWxvY2FsLW9mZmVyIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogcGMxLnJlc3RhcnRJ
Y2UgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnJlc3RhcnRJY2UoKScsICdwYzEucmVzdGFy
dEljZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgcmVzdGFydEljZSgpIHdvcmtzIGluIGhhdmUtcmVt
b3RlLW9mZmVyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogcGMxLnJlc3RhcnRJY2UgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
cGMxLnJlc3RhcnRJY2UoKScsICdwYzEucmVzdGFydEljZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwg
cmVzdGFydEljZSgpIGRvZXMgbm90aGluZyBpbiBpbml0aWFsIGhhdmUtcmVtb3RlLW9mZmVyIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogcGMxLnJlc3RhcnRJY2UgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnJlc3RhcnRJ
Y2UoKScsICdwYzEucmVzdGFydEljZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgcmVzdGFydEljZSgp
IHN1cnZpdmVzIHJlbW90ZSBvZmZlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3BjMS5yZXN0YXJ0SWNlKCknLCAncGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVm
aW5lZCkiCitGQUlMIHJlc3RhcnRJY2UoKSBpcyBzYXRpc2ZpZWQgYnkgcmVtb3RlIElDRSByZXN0
YXJ0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogcGMxLnJlc3RhcnRJY2UgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnJl
c3RhcnRJY2UoKScsICdwYzEucmVzdGFydEljZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgcmVzdGFy
dEljZSgpIHRydW1wcyB7aWNlUmVzdGFydDogZmFsc2V9IHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogcGMxLnJlc3RhcnRJY2Ug
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnJlc3RhcnRJY2UoKScsICdwYzEucmVzdGFydElj
ZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgcmVzdGFydEljZSgpIHN1cnZpdmVzIHJvbGxiYWNrIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogcGMxLnJlc3RhcnRJY2UgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLnJlc3RhcnRJ
Y2UoKScsICdwYzEucmVzdGFydEljZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgcmVzdGFydEljZSgp
IHN1cnZpdmVzIHJlbW90ZSBvZmZlciBjb250YWluaW5nIHBhcnRpYWwgcmVzdGFydCBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IHBjMS5yZXN0YXJ0SWNlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5yZXN0YXJ0SWNlKCkn
LCAncGMxLnJlc3RhcnRJY2UnIGlzIHVuZGVmaW5lZCkiCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXJlc3RhcnRJY2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ZjhjNjYxYTQxZGQwYTFjYjhmNTZiYWY4MGY2ZDNiNzk3ZjllMjI5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sCkBA
IC0wLDAgKzEsMzk0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8
dGl0bGU+PC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiBnZXRMaW5lcyhzZHAsIHN0YXJ0
c1dpdGgpIHsKKyAgY29uc3QgbGluZXMgPSBzZHAuc3BsaXQoIlxyXG4iKS5maWx0ZXIobCA9PiBs
LnN0YXJ0c1dpdGgoc3RhcnRzV2l0aCkpOworICBhc3NlcnRfdHJ1ZShsaW5lcy5sZW5ndGggPiAw
LCBgT25lIG9yIG1vcmUgJHtzdGFydHNXaXRofSBpbiBzZHBgKTsKKyAgcmV0dXJuIGxpbmVzOwor
fQorCitjb25zdCBnZXRVZnJhZ3MgPSAoe3NkcH0pID0+IGdldExpbmVzKHNkcCwgImE9aWNlLXVm
cmFnOiIpOworY29uc3QgZ2V0UHdkcyA9ICh7c2RwfSkgPT4gZ2V0TGluZXMoc2RwLCAiYT1pY2Ut
cHdkOiIpOworCithc3luYyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChw
YzEsIHBjMikgeworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3Jl
YXRlT2ZmZXIoKSk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxE
ZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5j
cmVhdGVBbnN3ZXIoKSk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9j
YWxEZXNjcmlwdGlvbik7IC8vIEVuZCBvbiBwYzEuIE5vIHJhY2UKK30KKworYXN5bmMgZnVuY3Rp
b24gZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBjMSwgcGMyKSB7CisgIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgYXdhaXQg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQg
cGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgIGF3
YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKHBjMS5yZW1vdGVEZXNjcmlwdGlvbik7IC8vIEVu
ZCBvbiBwYzIuIE5vIHJhY2UKK30KKworYXN5bmMgZnVuY3Rpb24gYXNzZXJ0Tm9OZWdvdGlhdGlv
bk5lZWRlZCh0LCBwYykgeworICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3Rh
YmxlIiwgIkluIHN0YWJsZSBzdGF0ZSIpOworICBjb25zdCBldmVudCA9IGF3YWl0IFByb21pc2Uu
cmFjZShbCisgICAgbmV3IFByb21pc2UociA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gciks
CisgICAgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChyLCAxMCkpCisgIF0pOworICBh
c3NlcnRfZXF1YWxzKGV2ZW50LCB1bmRlZmluZWQsICJObyBuZWdvdGlhdGlvbm5lZWRlZCBldmVu
dCIpOworfQorCisvLyBJbiBDaHJvbWl1bSwgYXNzZXJ0X2VxdWFscygpIHByb2R1Y2VzIHRlc3Qg
ZXhwZWN0YXRpb25zIHdpdGggdGhlIHZhbHVlcworLy8gY29tcGFyZWQuIEJlY2F1c2UgdWZyYWdz
IGFyZSBkaWZmZXJlbnQgb24gZWFjaCBydW4sIHRoaXMgd291bGQgbWFrZSBDaHJvbWl1bQorLy8g
dGVzdCBleHBlY3RhdGlvbnMgZGlmZmVyZW50IG9uIGVhY2ggcnVuIG9uIHRlc3RzIHRoYXQgZmFp
bGVkIHdoZW4gY29tcGFyaW5nCisvLyB1ZnJhZ3MuIFRvIHdvcmsgYXJvdW5kIHRoaXMgcHJvYmxl
bSwgYXNzZXJ0X3VmcmFnc19lcXVhbHMoKSBhbmQKKy8vIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFs
cygpIHNob3VsZCBiZSBwcmVmZXJyZWQgb3ZlciBhc3NlcnRfZXF1YWxzKCkgYW5kCisvLyBhc3Nl
cnRfbm90X2VxdWFscygpLgorZnVuY3Rpb24gYXNzZXJ0X3VmcmFnc19lcXVhbHMoeCwgeSwgZGVz
Y3JpcHRpb24pIHsKKyAgYXNzZXJ0X3RydWUoeCA9PT0geSwgZGVzY3JpcHRpb24pOworfQorZnVu
Y3Rpb24gYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKHgsIHksIGRlc2NyaXB0aW9uKSB7CisgIGFz
c2VydF9mYWxzZSh4ID09PSB5LCBkZXNjcmlwdGlvbik7Cit9CisKK3Byb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgcGMx
LnJlc3RhcnRJY2UoKTsKKyAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEp
OworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIg
PT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlh
dGlvbk5lZWRlZCh0LCBwYzEpOworfSwgInJlc3RhcnRJY2UoKSBkb2VzIG5vdCB0cmlnZ2VyIG5l
Z290aWF0aW9uIGFoZWFkIG9mIGluaXRpYWwgbmVnb3RpYXRpb24iKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKwor
ICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgYXdh
aXQgZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOworICBhd2FpdCBhc3Nl
cnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7Cit9LCAicmVzdGFydEljZSgpIGhhcyBubyBl
ZmZlY3Qgb24gaW5pdGlhbCBuZWdvdGlhdGlvbiIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRU
cmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdv
dGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJz
dChwYzEsIHBjMik7CisgIHBjMS5yZXN0YXJ0SWNlKCk7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIg
PT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKK30sICJyZXN0YXJ0SWNlKCkgZmlyZXMg
bmVnb3RpYXRpb25uZWVkZWQgYWZ0ZXIgaW5pdGlhbCBuZWdvdGlhdGlvbiIpOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkp
OworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZl
ckFuc3dlckVuZE9uRmlyc3QocGMxLCBwYzIpOworCisgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0
VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRV
ZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2Vy
RW5kT25GaXJzdChwYzEsIHBjMik7CisgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhw
YzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG9sZFVmcmFnMSwgImNvbnRyb2wgMSIpOworICBhc3Nl
cnRfdWZyYWdzX2VxdWFscyhnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRV
ZnJhZzIsICJjb250cm9sIDIiKTsKKworICBwYzEucmVzdGFydEljZSgpOworICBhd2FpdCBuZXcg
UHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKKyAgY29uc3QgW25ld1VmcmFnMV0g
PSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBjb25zdCBbbmV3VWZyYWcyXSA9
IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgIGFzc2VydF91ZnJhZ3Nfbm90X2Vx
dWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICBhc3NlcnRf
dWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQi
KTsKKyAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworCisgIGF3YWl0
IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKKyAgYXNzZXJ0X3VmcmFn
c19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcxLCAi
VW5jaGFuZ2VkIDEiKTsKKyAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKVswXSwgbmV3VWZyYWcyLCAiVW5jaGFuZ2VkIDIiKTsKK30sICJyZXN0YXJ0
SWNlKCkgY2F1c2VzIGZyZXNoIHVmcmFncyIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRUcmFu
c2NlaXZlcigiYXVkaW8iKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlh
dGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChw
YzEsIHBjMik7CisKKyAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOworICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNj
cmlwdGlvbik7CisKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNy
ZWF0ZU9mZmVyKCkpOworICBwYzEucmVzdGFydEljZSgpOworICBhd2FpdCBwYzIuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBhd2FpdCBwYzIuc2V0TG9jYWxE
ZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICAvLyBTZXZlcmFsIHRlc3Rz
IGluIHRoaXMgZmlsZSBpbml0aWFsaXplcyB0aGUgb25uZWdvdGlhdGlvbm5lZWRlZCBsaXN0ZW5l
cgorICAvLyBiZWZvcmUgdGhlIHNldExvY2FsRGVzY3JpcHRpb24oKSBvciBzZXRSZW1vdGVEZXNj
cmlwdGlvbigpIHRoYXQgd2UgZXhwZWN0CisgIC8vIHRvIHRyaWdnZXIgbmVnb3RpYXRpb24gbmVl
ZGVkLiBUaGlzIGFsbG93cyBDaHJvbWUgdG8gZXhlcmNpc2UgdGhlc2UgdGVzdHMKKyAgLy8gd2l0
aG91dCB0aW1pbmcgb3V0IGR1ZSB0byBhIGJ1ZyB0aGF0IGNhdXNlcyBvbm5lZ290aWF0aW9ubmVl
ZGVkIHRvIGZpcmUgdG9vCisgIC8vIGVhcmx5LgorICAvLyBUT0RPKGh0dHBzOi8vY3JidWcuY29t
Lzk4NTc5Nyk6IE9uY2UgQ2hyb21lIGRvZXMgbm90IGZpcmUgT05OIHRvbyBlYXJseSwKKyAgLy8g
c2ltcGx5IGRvICJhd2FpdCBuZXcgUHJvbWlzZSguLi4pIiBpbnN0ZWFkIG9mCisgIC8vICJhd2Fp
dCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UiIGhlcmUgYW5kIGluIG90aGVyIHRlc3RzIGluIHRo
aXMgZmlsZS4KKyAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAgIG5ldyBQ
cm9taXNlKHIgPT4gcGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgcGMxLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXNzZXJ0X3VmcmFn
c19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcxLCAi
VW5jaGFuZ2VkIDEiKTsKKyAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMi5sb2Nh
bERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcyLCAiVW5jaGFuZ2VkIDIiKTsKKyAgYXdhaXQgbmVn
b3RpYXRpb25OZWVkZWRQcm9taXNlOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25G
aXJzdChwYzEsIHBjMik7CisgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2Nh
bERlc2NyaXB0aW9uKTsKKyAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2Fs
RGVzY3JpcHRpb24pOworICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRV
ZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5l
d1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7CisgIGF3YWl0IGFzc2VydE5v
TmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKK30sICJyZXN0YXJ0SWNlKCkgd29ya3MgaW4gaGF2
ZS1sb2NhbC1vZmZlciIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVk
aW8iKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2Zm
ZXIoKSk7CisgIHBjMS5yZXN0YXJ0SWNlKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0
aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVk
UHJvbWlzZSA9CisgICAgICBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVk
ID0gcik7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlw
dGlvbik7CisgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0
aW9uKTsKKyAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRp
b24pOworICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7CisgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKKyAgY29uc3QgW25ld1VmcmFnMV0gPSBn
ZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBjb25zdCBbbmV3VWZyYWcyXSA9IGdl
dFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFs
cyhuZXdVZnJhZzEsIG9sZFVmcmFnMSwgInVmcmFnIDEgY2hhbmdlZCIpOworICBhc3NlcnRfdWZy
YWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzIsICJ1ZnJhZyAyIGNoYW5nZWQiKTsK
KyAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworfSwgInJlc3RhcnRJ
Y2UoKSB3b3JrcyBpbiBpbml0aWFsIGhhdmUtbG9jYWwtb2ZmZXIiKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKwor
ICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dl
ckVuZE9uRmlyc3QocGMxLCBwYzIpOworCisgIGNvbnN0IFtvbGRVZnJhZzFdID0gZ2V0VWZyYWdz
KHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgY29uc3QgW29sZFVmcmFnMl0gPSBnZXRVZnJhZ3Mo
cGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0
aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgYXdhaXQg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVBbnN3ZXIoKSk7CisgIGNv
bnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9CisgICAgICBuZXcgUHJvbWlzZShyID0+IHBj
MS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0
aW9uKHBjMi5yZW1vdGVEZXNjcmlwdGlvbik7IC8vIEVuZCBvbiBwYzEuIE5vIHJhY2UKKyAgYXNz
ZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xk
VWZyYWcxLCAiVW5jaGFuZ2VkIDEiKTsKKyAgYXNzZXJ0X3VmcmFnc19lcXVhbHMoZ2V0VWZyYWdz
KHBjMi5sb2NhbERlc2NyaXB0aW9uKVswXSwgb2xkVWZyYWcyLCAiVW5jaGFuZ2VkIDIiKTsKKyAg
YXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5z
d2VyRW5kT25GaXJzdChwYzEsIHBjMik7CisgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdz
KHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3Mo
cGMyLmxvY2FsRGVzY3JpcHRpb24pOworICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZy
YWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3Rf
ZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7CisgIGF3YWl0
IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKK30sICJyZXN0YXJ0SWNlKCkgd29y
a3MgaW4gaGF2ZS1yZW1vdGUtb2ZmZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBwYzIuYWRkVHJhbnNj
ZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBj
Mi5jcmVhdGVPZmZlcigpKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5s
b2NhbERlc2NyaXB0aW9uKTsKKyAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgYXdhaXQgcGMyLnNldFJl
bW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVBbnN3ZXIoKSk7CisgIGF3YWl0IHBjMS5z
ZXRMb2NhbERlc2NyaXB0aW9uKHBjMi5yZW1vdGVEZXNjcmlwdGlvbik7IC8vIEVuZCBvbiBwYzEu
IE5vIHJhY2UKKyAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYzEpOworfSwg
InJlc3RhcnRJY2UoKSBkb2VzIG5vdGhpbmcgaW4gaW5pdGlhbCBoYXZlLXJlbW90ZS1vZmZlciIp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgYXdhaXQg
bmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBl
eGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7CisKKyAgY29uc3QgW29sZFVm
cmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBjb25zdCBbb2xkVWZy
YWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgcGMxLnJlc3RhcnRJ
Y2UoKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9
IHIpOworICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2UgPQorICAgICAgbmV3IFByb21p
c2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyRW5kT25TZWNvbmQocGMyLCBwYzEpOworICBhc3NlcnRfdWZyYWdzX2VxdWFscyhn
ZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pWzBdLCBvbGRVZnJhZzEsICJub3RoaW5nIHll
dCAxIik7CisgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlw
dGlvbilbMF0sIG9sZFVmcmFnMiwgIm5vdGhpbmcgeWV0IDIiKTsKKyAgYXdhaXQgbmVnb3RpYXRp
b25OZWVkZWRQcm9taXNlOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChw
YzEsIHBjMik7CisgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2Ny
aXB0aW9uKTsKKyAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3Jp
cHRpb24pOworICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEs
ICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFn
Miwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7CisgIGF3YWl0IGFzc2VydE5vTmVnb3Rp
YXRpb25OZWVkZWQodCwgcGMxKTsKK30sICJyZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcmVtb3RlIG9m
ZmVyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKKworICBjb25zdCBb
b2xkVWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtv
bGRVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICBwYzEucmVz
dGFydEljZSgpOworICBwYzIucmVzdGFydEljZSgpOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+
IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXJFbmRPblNlY29uZChwYzIsIHBjMSk7CisgIGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdz
KHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgY29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3Mo
cGMyLmxvY2FsRGVzY3JpcHRpb24pOworICBhc3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZy
YWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNoYW5nZWQiKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3Rf
ZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcyLCAidWZyYWcgMiBjaGFuZ2VkIik7CisgIGF3YWl0
IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQodCwgcGMxKTsKKworICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7CisgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdl
dFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbilbMF0sIG5ld1VmcmFnMSwgIlVuY2hhbmdlZCAx
Iik7CisgIGFzc2VydF91ZnJhZ3NfZXF1YWxzKGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlv
bilbMF0sIG5ld1VmcmFnMiwgIlVuY2hhbmdlZCAyIik7CisgIGF3YWl0IGFzc2VydE5vTmVnb3Rp
YXRpb25OZWVkZWQodCwgcGMxKTsKK30sICJyZXN0YXJ0SWNlKCkgaXMgc2F0aXNmaWVkIGJ5IHJl
bW90ZSBJQ0UgcmVzdGFydCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigi
YXVkaW8iKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRl
ZCA9IHIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7
CisKKyAgY29uc3QgW29sZFVmcmFnMV0gPSBnZXRVZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24p
OworICBjb25zdCBbb2xkVWZyYWcyXSA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7
CisKKyAgcGMxLnJlc3RhcnRJY2UoKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25u
ZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihh
d2FpdCBwYzEuY3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IGZhbHNlfSkpOworICBhd2FpdCBwYzIu
c2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBhd2FpdCBwYzIu
c2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICBhd2FpdCBw
YzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICBjb25zdCBb
bmV3VWZyYWcxXSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtu
ZXdVZnJhZzJdID0gZ2V0VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXNzZXJ0X3Vm
cmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcxLCAidWZyYWcgMSBjaGFuZ2VkIik7
CisgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFscyhuZXdVZnJhZzEsIG9sZFVmcmFnMiwgInVmcmFn
IDIgY2hhbmdlZCIpOworICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVkKHQsIHBjMSk7
Cit9LCAicmVzdGFydEljZSgpIHRydW1wcyB7aWNlUmVzdGFydDogZmFsc2V9Iik7CisKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2Uo
KSk7CisKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBuZXcgUHJvbWlz
ZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3YWl0IGV4Y2hhbmdlT2Zm
ZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMyKTsKKworICBjb25zdCBbb2xkVWZyYWcxXSA9IGdl
dFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGNvbnN0IFtvbGRVZnJhZzJdID0gZ2V0
VWZyYWdzKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICBwYzEucmVzdGFydEljZSgpOworICBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3
YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAg
Y29uc3QgbmVnb3RpYXRpb25OZWVkZWRQcm9taXNlID0KKyAgICAgIG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKyAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRQcm9t
aXNlOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyRW5kT25GaXJzdChwYzEsIHBjMik7Cisg
IGNvbnN0IFtuZXdVZnJhZzFdID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
Y29uc3QgW25ld1VmcmFnMl0gPSBnZXRVZnJhZ3MocGMyLmxvY2FsRGVzY3JpcHRpb24pOworICBh
c3NlcnRfdWZyYWdzX25vdF9lcXVhbHMobmV3VWZyYWcxLCBvbGRVZnJhZzEsICJ1ZnJhZyAxIGNo
YW5nZWQiKTsKKyAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnMSwgb2xkVWZyYWcy
LCAidWZyYWcgMiBjaGFuZ2VkIik7CisgIGF3YWl0IGFzc2VydE5vTmVnb3RpYXRpb25OZWVkZWQo
dCwgcGMxKTsKK30sICJyZXN0YXJ0SWNlKCkgc3Vydml2ZXMgcm9sbGJhY2siKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
e2J1bmRsZVBvbGljeTogIm1heC1jb21wYXQifSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiAibWF4LWNvbXBhdCJ9KTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkp
OworCisgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgcGMxLmFkZFRyYW5zY2VpdmVy
KCJ2aWRlbyIpOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbm5lZ290aWF0aW9ubmVl
ZGVkID0gcik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXJFbmRPbkZpcnN0KHBjMSwgcGMy
KTsKKworICBjb25zdCBvbGRVZnJhZ3MxID0gZ2V0VWZyYWdzKHBjMS5sb2NhbERlc2NyaXB0aW9u
KTsKKyAgY29uc3Qgb2xkVWZyYWdzMiA9IGdldFVmcmFncyhwYzIubG9jYWxEZXNjcmlwdGlvbik7
CisgIGNvbnN0IG9sZFB3ZHMyID0gZ2V0UHdkcyhwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAg
cGMxLnJlc3RhcnRJY2UoKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYzEub25uZWdvdGlh
dGlvbm5lZWRlZCA9IHIpOworCisgIC8vIEVuZ2luZWVyIGEgcGFydGlhbCBJQ0UgcmVzdGFydCBm
cm9tIHBjMgorICBwYzIucmVzdGFydEljZSgpOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlw
dGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7CisgIHsKKyAgICBsZXQge3R5cGUsIHNkcH0g
PSBwYzIubG9jYWxEZXNjcmlwdGlvbjsKKyAgICAvLyBSZXN0b3JlIGJvdGggb2xkIGljZS11ZnJh
ZyBhbmQgb2xkIGljZS1wd2QgdG8gdHJpZ2dlciBhIHBhcnRpYWwgcmVzdGFydAorICAgIHNkcCA9
IHNkcC5yZXBsYWNlKGdldFVmcmFncyh7c2RwfSlbMF0sIG9sZFVmcmFnczJbMF0pOworICAgIHNk
cCA9IHNkcC5yZXBsYWNlKGdldFB3ZHMoe3NkcH0pWzBdLCBvbGRQd2RzMlswXSk7CisgICAgY29u
c3QgbmV3VWZyYWdzMiA9IGdldFVmcmFncyh7c2RwfSk7CisgICAgY29uc3QgbmV3UHdkczIgPSBn
ZXRQd2RzKHtzZHB9KTsKKyAgICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdVZnJhZ3MyWzBdLCBv
bGRVZnJhZ3MyWzBdLCAiY29udHJvbCB1ZnJhZyBtYXRjaCIpOworICAgIGFzc2VydF91ZnJhZ3Nf
ZXF1YWxzKG5ld1B3ZHMyWzBdLCBvbGRQd2RzMlswXSwgImNvbnRyb2wgcHdkIG1hdGNoIik7Cisg
ICAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld1VmcmFnczJbMV0sIG9sZFVmcmFnczJbMV0s
ICJjb250cm9sIHVmcmFnIG5vbi1tYXRjaCIpOworICAgIGFzc2VydF91ZnJhZ3Nfbm90X2VxdWFs
cyhuZXdQd2RzMlsxXSwgb2xkUHdkczJbMV0sICJjb250cm9sIHB3ZCBub24tbWF0Y2giKTsKKyAg
ICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGUsIHNkcH0pOworICB9CisgIGNv
bnN0IG5lZ290aWF0aW9uTmVlZGVkUHJvbWlzZSA9CisgICAgICBuZXcgUHJvbWlzZShyID0+IHBj
MS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcik7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0
aW9uKGF3YWl0IHBjMS5jcmVhdGVBbnN3ZXIoKSk7CisgIGNvbnN0IG5ld1VmcmFnczEgPSBnZXRV
ZnJhZ3MocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBhc3NlcnRfdWZyYWdzX2VxdWFscyhuZXdV
ZnJhZ3MxWzBdLCBvbGRVZnJhZ3MxWzBdLCAiVW5jaGFuZ2VkIDEiKTsKKyAgYXNzZXJ0X3VmcmFn
c19ub3RfZXF1YWxzKG5ld1VmcmFnczFbMV0sIG9sZFVmcmFnczFbMV0sICJSZXN0YXJ0ZWQgMiIp
OworICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZFByb21pc2U7CisgIGF3YWl0IHBjMS5zZXRMb2Nh
bERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgY29uc3QgbmV3ZXN0VWZy
YWdzMSA9IGdldFVmcmFncyhwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgIGFzc2VydF91ZnJhZ3Nf
bm90X2VxdWFscyhuZXdlc3RVZnJhZ3MxWzBdLCBvbGRVZnJhZ3MxWzBdLCAiUmVzdGFydGVkIDEi
KTsKKyAgYXNzZXJ0X3VmcmFnc19ub3RfZXF1YWxzKG5ld2VzdFVmcmFnczFbMV0sIG9sZFVmcmFn
czFbMV0sICJSZXN0YXJ0ZWQgMiIpOworICBhd2FpdCBhc3NlcnROb05lZ290aWF0aW9uTmVlZGVk
KHQsIHBjMSk7Cit9LCAicmVzdGFydEljZSgpIHN1cnZpdmVzIHJlbW90ZSBvZmZlciBjb250YWlu
aW5nIHBhcnRpYWwgcmVzdGFydCIpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXNldExvY2FsRGVzY3JpcHRpb24tYW5zd2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2Nh
bERlc2NyaXB0aW9uLWFuc3dlci5odG1sCmluZGV4IGI3ODNkODU0NzM4YTkyNmNmZGYwZWNjN2Vj
ZDc4OTdiNWI4NmIyMDAuLjgyMWVlMWQwYjE1Y2UxMWFkYjliNWM2ODhlZGE2M2JhZTAyZTQwZGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tYW5zd2VyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1hbnN3ZXIuaHRtbApAQCAtMTMy
LDcgKzEzMiw3IEBACiAgICAgICBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikKICAgICAg
IC50aGVuKCgpID0+IGdlbmVyYXRlQW5zd2VyKG9mZmVyKSkKICAgICAgIC50aGVuKGFuc3dlciA9
PgotICAgICAgICBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcics
CisgICAgICAgIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJv
cicsCiAgICAgICAgICAgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpKSkpOwogICB9LCAn
c2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggYW5zd2VyIG5vdCBjcmVhdGVkIGJ5IG93biBjcmVh
dGVBbnN3ZXIoKSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJyk7
CiAKQEAgLTE1Myw5ICsxNTMsOSBAQAogCiAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCkKICAg
ICAudGhlbihvZmZlciA9PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkU3RhdGVF
cnJvcicsCisgICAgICBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3InLAogICAgICAgICBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKHsgdHlwZTogJ2Fuc3dlcics
IHNkcDogb2ZmZXIuc2RwIH0pKSk7Ci0gIH0sICdDYWxsaW5nIHNldExvY2FsRGVzY3JpcHRpb24o
YW5zd2VyKSBmcm9tIHN0YWJsZSBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRl
RXJyb3InKTsKKyAgfSwgJ0NhbGxpbmcgc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpIGZyb20g
c3RhYmxlIHN0YXRlIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3In
KTsKIAogICBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKQEAgLTE2Nyw4ICsxNjcsNjEgQEAKICAgICAgIHBjLnNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpCiAgICAgICAudGhlbigoKSA9PiBnZW5lcmF0ZUFuc3dlcihvZmZlcikpKQog
ICAgIC50aGVuKGFuc3dlciA9PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkU3Rh
dGVFcnJvcicsCisgICAgICBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3InLAogICAgICAgICBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikpKTsKLSAg
fSwgJ0NhbGxpbmcgc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpIGZyb20gaGF2ZS1sb2NhbC1v
ZmZlciBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3InKTsKKyAgfSwg
J0NhbGxpbmcgc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpIGZyb20gaGF2ZS1sb2NhbC1vZmZl
ciBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJyk7CisK
KyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRl
T2ZmZXIoe29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KTsKKyAgICBhd2FpdCBwYzIuc2V0UmVt
b3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVh
dGVBbnN3ZXIoKTsgLy8gW1tMYXN0QW5zd2VyXV0gc2xvdCBzZXQKKyAgICBhd2FpdCBwYzIuc2V0
UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKyAgICBhd2FpdCBwYzIuY3Jl
YXRlT2ZmZXIoe29mZmVyVG9SZWNlaXZlVmlkZW86IHRydWV9KTsgLy8gW1tMYXN0T2ZmZXJdXSBz
bG90IHNldAorICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgICAg
YXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsgLy8gU2hvdWxkIGNoZWNrIGFn
YWluc3QgW1tMYXN0QW5zd2VyXV0sIG5vdCBbW0xhc3RPZmZlcl1dCisgIH0sICJTZXR0aW5nIHBy
ZXZpb3VzbHkgZ2VuZXJhdGVkIGFuc3dlciBhZnRlciBhIGNhbGwgdG8gY3JlYXRlT2ZmZXIgc2hv
dWxkIHdvcmsiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBhd2FpdCBwYzIuc2V0UmVt
b3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlv
OiB0cnVlfSkpOworICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsK
KyAgICBjb25zdCBzbGRQcm9taXNlID0gcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsK
KworICAgIGFzc2VydF9lcXVhbHMocGMyLnNpZ25hbGluZ1N0YXRlLCAiaGF2ZS1yZW1vdGUtb2Zm
ZXIiLCAic2lnbmFsaW5nU3RhdGUgc2hvdWxkIG5vdCBiZSBzZXQgc3luY2hyb25vdXNseSBhZnRl
ciBhIGNhbGwgdG8gc0xEIik7CisKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5wZW5kaW5nTG9jYWxE
ZXNjcmlwdGlvbiwgbnVsbCwgInBlbmRpbmdMb2NhbERlc2NyaXB0aW9uIHNob3VsZCBuZXZlciBi
ZSBzZXQgZHVlIHRvIHNMRChhbnN3ZXIpIik7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMocGMyLnBl
bmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwgInBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBz
aG91bGQgbm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVyIGEgY2FsbCB0byBzTEQiKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHBjMi5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24udHlwZSwgIm9mZmVy
Iik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIucmVtb3RlRGVzY3JpcHRpb24uc2RwLCBwYzIucGVu
ZGluZ1JlbW90ZURlc2NyaXB0aW9uLnNkcCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuY3VycmVu
dExvY2FsRGVzY3JpcHRpb24sIG51bGwsICJjdXJyZW50TG9jYWxEZXNjcmlwdGlvbiBzaG91bGQg
bm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVyIGEgY2FsbCB0byBzTEQiKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHBjMi5jdXJyZW50UmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJjdXJyZW50UmVt
b3RlRGVzY3JpcHRpb24gc2hvdWxkIG5vdCBiZSBzZXQgc3luY2hyb25vdXNseSBhZnRlciBhIGNh
bGwgdG8gc0xEIik7CisKKyAgICBjb25zdCBzdGFibGVQcm9taXNlID0gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB7CisgICAgICBwYzIub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAg
ICAgICAgcmVzb2x2ZShwYzIuc2lnbmFsaW5nU3RhdGUpOworICAgICAgfQorICAgIH0pOworICAg
IGNvbnN0IHJhY2VWYWx1ZSA9IGF3YWl0IFByb21pc2UucmFjZShbc3RhYmxlUHJvbWlzZSwgc2xk
UHJvbWlzZV0pOworICAgIGFzc2VydF9lcXVhbHMocmFjZVZhbHVlLCAic3RhYmxlIiwgInNpZ25h
bGluZ3N0YXRlY2hhbmdlIGV2ZW50IHNob3VsZCBmaXJlIGJlZm9yZSBzTEQgcmVzb2x2ZXMiKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHBjMi5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwgInBl
bmRpbmdMb2NhbERlc2NyaXB0aW9uIHNob3VsZCBuZXZlciBiZSBzZXQgZHVlIHRvIHNMRChhbnN3
ZXIpIik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIucGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBu
dWxsLCAicGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBiZSB1cGRhdGVkIGJlZm9yZSB0
aGUgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQiKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhw
YzIuY3VycmVudExvY2FsRGVzY3JpcHRpb24sIG51bGwsICJjdXJyZW50TG9jYWxEZXNjcmlwdGlv
biBzaG91bGQgYmUgdXBkYXRlZCBiZWZvcmUgdGhlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50
Iik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuY3VycmVudExvY2FsRGVzY3JpcHRpb24udHlwZSwg
ImFuc3dlciIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmN1cnJlbnRMb2NhbERlc2NyaXB0aW9u
LnNkcCwgcGMyLmxvY2FsRGVzY3JpcHRpb24uc2RwKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhw
YzIuY3VycmVudFJlbW90ZURlc2NyaXB0aW9uLCBudWxsLCAiY3VycmVudFJlbW90ZURlc2NyaXB0
aW9uIHNob3VsZCBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZl
bnQiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5jdXJyZW50UmVtb3RlRGVzY3JpcHRpb24udHlw
ZSwgIm9mZmVyIik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuY3VycmVudFJlbW90ZURlc2NyaXB0
aW9uLnNkcCwgcGMyLnJlbW90ZURlc2NyaXB0aW9uLnNkcCk7CisKKyAgICBhd2FpdCBzbGRQcm9t
aXNlOworICB9LCAic2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpIHNob3VsZCB1cGRhdGUgaW50
ZXJuYWwgc3RhdGUgd2l0aCBhIHF1ZXVlZCB0YXNrLCBpbiB0aGUgcmlnaHQgb3JkZXIiKTsKIAog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLW9m
ZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLW9mZmVyLmh0bWwKaW5k
ZXggNDE2NjJmMzE1OGZlODg2Yjg0ODEyMWZmYmM5ZTk3MDE2MDY2NmEwMS4uN2FmNzE1MGRmNjA4
YjYwZmEwZTFkMmFkMDFkYjljZDRkYWVmYjEyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0
TG9jYWxEZXNjcmlwdGlvbi1vZmZlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVz
Y3JpcHRpb24tb2ZmZXIuaHRtbApAQCAtMTExLDcgKzExMSw3IEBACiAKICAgICByZXR1cm4gZ2Vu
ZXJhdGVEYXRhQ2hhbm5lbE9mZmVyKHBjKQogICAgIC50aGVuKG9mZmVyID0+Ci0gICAgICBwcm9t
aXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCisgICAgICBwcm9taXNl
X3JlamVjdHNfZG9tKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAogICAgICAgICBwYzIu
c2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikpKTsKICAgfSwgJ3NldExvY2FsRGVzY3JpcHRpb24o
KSB3aXRoIG9mZmVyIG5vdCBjcmVhdGVkIGJ5IG93biBjcmVhdGVPZmZlcigpIHNob3VsZCByZWpl
Y3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InKTsKIApAQCAtMTI3LDcgKzEyNyw3IEBA
CiAgICAgICBnZW5lcmF0ZVZpZGVvUmVjZWl2ZU9ubHlPZmZlcihwYykKICAgICAgIC50aGVuKG9m
ZmVyMiA9PiB7CiAgICAgICAgIGFzc2VydF9zZXNzaW9uX2Rlc2Nfbm90X3NpbWlsYXIob2ZmZXIx
LCBvZmZlcjIpOwotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkTW9k
aWZpY2F0aW9uRXJyb3InLAorICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAn
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKICAgICAgICAgICBwYy5zZXRMb2NhbERlc2NyaXB0
aW9uKG9mZmVyMSkpOwogICAgICAgfSkpOwogICB9LCAnU2V0IGNyZWF0ZWQgb2ZmZXIgb3RoZXIg
dGhhbiBsYXN0IG9mZmVyIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3InKTsKQEAgLTE1Nyw0ICsxNTcsNjkgQEAKICAgICAgICAgICB9KSkpKTsKICAgfSwgJ0NyZWF0
aW5nIGFuZCBzZXR0aW5nIG9mZmVyIG11bHRpcGxlIHRpbWVzIHNob3VsZCBzdWNjZWVkJyk7CiAK
KyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRl
T2ZmZXIoe29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KTsgLy8gW1tMYXN0T2ZmZXJdXSBzZXQK
KyAgICBjb25zdCBvZmZlcjIgPSBhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNlaXZl
VmlkZW86IHRydWV9KTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIy
KTsKKyAgICBhd2FpdCBwYzEuY3JlYXRlQW5zd2VyKCk7IC8vIFtbTGFzdEFuc3dlcl1dIHNldAor
ICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOwor
ICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgfSwgIlNldHRpbmcg
cHJldmlvdXNseSBnZW5lcmF0ZWQgb2ZmZXIgYWZ0ZXIgYSBjYWxsIHRvIGNyZWF0ZUFuc3dlciBz
aG91bGQgd29yayIpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGF3YWl0IHBjMS5zZXRM
b2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRp
bzogdHJ1ZX0pKTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7
CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGF3YWl0IHBj
Mi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgICAgY29uc3QgYW5zd2VyID0gYXdhaXQg
cGMyLmNyZWF0ZUFuc3dlcigpOworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFu
c3dlcik7CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAg
ICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICAgIGFz
c2VydF9lcXVhbHMocGMxLmdldFRyYW5zY2VpdmVycygpWzBdLnJlY2VpdmVyLnRyYWNrLmtpbmQs
ICJhdWRpbyIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0
aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ucmVjZWl2
ZXIudHJhY2sua2luZCwgImF1ZGlvIik7CisgIH0sICJOZWdvdGlhdGlvbiB3b3JrcyB3aGVuIHRo
ZXJlIGhhcyBiZWVuIGEgcmVwZWF0ZWQgc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikiKTsKKwor
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAg
Y29uc3Qgc2xkUHJvbWlzZSA9IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMuY3JlYXRl
T2ZmZXIoe29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KSk7CisKKyAgICBhc3NlcnRfZXF1YWxz
KHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwgInNpZ25hbGluZ1N0YXRlIHNob3VsZCBub3Qg
YmUgc2V0IHN5bmNocm9ub3VzbHkgYWZ0ZXIgYSBjYWxsIHRvIHNMRCIpOworCisgICAgYXNzZXJ0
X2VxdWFscyhwYy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwgInBlbmRpbmdSZW1vdGVE
ZXNjcmlwdGlvbiBzaG91bGQgbmV2ZXIgYmUgc2V0IGR1ZSB0byBzTEQiKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHBjLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwgInBlbmRpbmdMb2NhbERl
c2NyaXB0aW9uIHNob3VsZCBub3QgYmUgc2V0IHN5bmNocm9ub3VzbHkgYWZ0ZXIgYSBjYWxsIHRv
IHNMRCIpOworICAgIGFzc2VydF9lcXVhbHMocGMuY3VycmVudExvY2FsRGVzY3JpcHRpb24sIG51
bGwsICJjdXJyZW50TG9jYWxEZXNjcmlwdGlvbiBzaG91bGQgbm90IGJlIHNldCBzeW5jaHJvbm91
c2x5IGFmdGVyIGEgY2FsbCB0byBzTEQiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLmN1cnJlbnRS
ZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwgImN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQg
bm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVyIGEgY2FsbCB0byBzTEQiKTsKKworICAgIGNv
bnN0IHN0YXRlUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgcGMub25z
aWduYWxpbmdzdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgcmVzb2x2ZShwYy5zaWduYWxp
bmdTdGF0ZSk7CisgICAgICB9CisgICAgfSk7CisgICAgY29uc3QgcmFjZVZhbHVlID0gYXdhaXQg
UHJvbWlzZS5yYWNlKFtzdGF0ZVByb21pc2UsIHNsZFByb21pc2VdKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHJhY2VWYWx1ZSwgImhhdmUtbG9jYWwtb2ZmZXIiLCAic2lnbmFsaW5nc3RhdGVjaGFuZ2Ug
ZXZlbnQgc2hvdWxkIGZpcmUgYmVmb3JlIHNMRCByZXNvbHZlcyIpOworICAgIGFzc2VydF9lcXVh
bHMocGMucGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBudWxsLCAicGVuZGluZ1JlbW90ZURlc2Ny
aXB0aW9uIHNob3VsZCBuZXZlciBiZSBzZXQgZHVlIHRvIHNMRCIpOworICAgIGFzc2VydF9ub3Rf
ZXF1YWxzKHBjLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLCBudWxsLCAicGVuZGluZ0xvY2FsRGVz
Y3JpcHRpb24gc2hvdWxkIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBzaWduYWxpbmdzdGF0ZWNoYW5n
ZSBldmVudCIpOworICAgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24u
dHlwZSwgIm9mZmVyIik7CisgICAgYXNzZXJ0X2VxdWFscyhwYy5wZW5kaW5nTG9jYWxEZXNjcmlw
dGlvbi5zZHAsIHBjLmxvY2FsRGVzY3JpcHRpb24uc2RwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBj
LmN1cnJlbnRMb2NhbERlc2NyaXB0aW9uLCBudWxsLCAiY3VycmVudExvY2FsRGVzY3JpcHRpb24g
c2hvdWxkIG5ldmVyIGJlIHVwZGF0ZWQgZHVlIHRvIHNMRChvZmZlcikiKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHBjLmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwgImN1cnJlbnRSZW1vdGVE
ZXNjcmlwdGlvbiBzaG91bGQgbmV2ZXIgYmUgdXBkYXRlZCBkdWUgdG8gc0xEKG9mZmVyKSIpOwor
CisgICAgYXdhaXQgc2xkUHJvbWlzZTsKKyAgfSwgInNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIp
IHNob3VsZCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgd2l0aCBhIHF1ZXVlZCB0YXNrLCBpbiB0aGUg
cmlnaHQgb3JkZXIiKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRM
b2NhbERlc2NyaXB0aW9uLXBhcmFtZXRlcmxlc3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wYXJhbWV0ZXJsZXNzLmh0dHBzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZWI1ZTBjZThjOTRmY2I0NzdlZTM1YjJmNGUwMDFjN2VmYTU2NGZjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wYXJhbWV0
ZXJsZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACisKK0ZBSUwgUGFyYW1l
dGVybGVzcyBTTEQoKSBpbiAnc3RhYmxlJyBnb2VzIHRvICdoYXZlLWxvY2FsLW9mZmVyJyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorRkFJTCBQYXJhbWV0ZXJsZXNzIFNMRCgpIGluICdz
dGFibGUnIHNldHMgcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cyIKK0ZBSUwgUGFyYW1ldGVybGVzcyBTTEQoKSBpbiAnc3RhYmxlJyBhc3NpZ25zIHRy
YW5zY2VpdmVyLm1pZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorRkFJTCBQYXJhbWV0
ZXJsZXNzIFNMRCgpIGluICdoYXZlLXJlbW90ZS1vZmZlcicgZ29lcyB0byAnc3RhYmxlJyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorRkFJTCBQYXJhbWV0ZXJsZXNzIFNMRCgpIGluICdo
YXZlLXJlbW90ZS1vZmZlcicgc2V0cyBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzIgorRkFJTCBQYXJhbWV0ZXJsZXNzIFNMRCgpIGluICdoYXZlLXJl
bW90ZS1vZmZlcicgc2V0cyB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMiCitGQUlMIFBhcmFtZXRlcmxlc3MgU0xEKCkgdXNlcyBbW0xhc3RD
cmVhdGVkT2ZmZXJdXSBpZiBpdCBpcyBzdGlsbCB2YWxpZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzIgorRkFJTCBQYXJhbWV0ZXJsZXNzIFNMRCgpIHVzZXMgW1tMYXN0Q3JlYXRlZEFuc3dl
cl1dIGlmIGl0IGlzIHN0aWxsIHZhbGlkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMiCitG
QUlMIFBhcmFtZXRlcmxlc3MgU0xEKCkgcmVqZWN0cyB3aXRoIEludmFsaWRTdGF0ZUVycm9yIGlm
IGFscmVhZHkgY2xvc2VkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJJbnZhbGlkU3RhdGVFcnJv
ciIgYnV0IGdvdCAiVHlwZUVycm9yIgorRkFJTCBQYXJhbWV0ZXJsZXNzIFNMRCgpIG5ldmVyIHNl
dHRsZXMgaWYgY2xvc2VkIHdoaWxlIHBlbmRpbmcgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cyIKK0ZBSUwgUGFyYW1ldGVybGVzcyBTTEQoKSBpbiBhIGZ1bGwgTy9BIGV4Y2hhbmdlIHN1Y2Nl
ZWRzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMiCitQQVNTIFBhcmFtZXRlcmxlc3MgU1JE
KCkgcmVqZWN0cyB3aXRoIFR5cGVFcnJvci4gCitQQVNTIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBj
b25zdHJ1Y3RlZCB3aXRob3V0IHR5cGUgdGhyb3dzIFR5cGVFcnJvciAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wYXJhbWV0ZXJsZXNzLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXBhcmFtZXRlcmxlc3MuaHR0cHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YTdhNzYzMTlhMDU3MTk2MWQ3ZGFjYzNkMTU2MjMyNzA4OTU4N2JkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1wYXJhbWV0
ZXJsZXNzLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1l
dGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT48L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24t
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CisKK2NvbnN0IGtT
bWFsbFRpbWVvdXRNcyA9IDEwMDsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBvZmZlcmVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gb2ZmZXJlci5jbG9zZSgpKTsKKworICBjb25zdCBzaWduYWxpbmdTdGF0ZUNoYW5nZUV2ZW50
CisgICAgICA9IG5ldyBFdmVudFdhdGNoZXIodCwgb2ZmZXJlciwgJ3NpZ25hbGluZ3N0YXRlY2hh
bmdlJykKKyAgICAgIC53YWl0X2Zvcignc2lnbmFsaW5nc3RhdGVjaGFuZ2UnKTsKKyAgYXdhaXQg
b2ZmZXJlci5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHNpZ25hbGluZ1N0YXRlQ2hh
bmdlRXZlbnQ7CisgIGFzc2VydF9lcXVhbHMob2ZmZXJlci5zaWduYWxpbmdTdGF0ZSwgJ2hhdmUt
bG9jYWwtb2ZmZXInKTsKK30sICJQYXJhbWV0ZXJsZXNzIFNMRCgpIGluICdzdGFibGUnIGdvZXMg
dG8gJ2hhdmUtbG9jYWwtb2ZmZXInIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3Qgb2ZmZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IG9mZmVyZXIuY2xvc2UoKSk7CisKKyAgYXdhaXQgb2ZmZXJlci5zZXRMb2NhbERlc2Ny
aXB0aW9uKCk7CisgIGFzc2VydF9ub3RfZXF1YWxzKG9mZmVyZXIucGVuZGluZ0xvY2FsRGVzY3Jp
cHRpb24sIG51bGwpOworfSwgIlBhcmFtZXRlcmxlc3MgU0xEKCkgaW4gJ3N0YWJsZScgc2V0cyBw
ZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IG9mZmVyZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBvZmZlcmVyLmNsb3NlKCkpOworCisgIGNvbnN0IHRyYW5zY2VpdmVyID0gb2ZmZXJl
ci5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKyAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5t
aWQsIG51bGwpOworICBhd2FpdCBvZmZlcmVyLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXNz
ZXJ0X25vdF9lcXVhbHModHJhbnNjZWl2ZXIubWlkLCBudWxsKTsKK30sICJQYXJhbWV0ZXJsZXNz
IFNMRCgpIGluICdzdGFibGUnIGFzc2lnbnMgdHJhbnNjZWl2ZXIubWlkIik7CisKK3Byb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgb2ZmZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IG9mZmVyZXIuY2xvc2UoKSk7CisgIGNvbnN0IGFu
c3dlcmVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
YW5zd2VyZXIuY2xvc2UoKSk7CisKKyAgYXdhaXQgYW5zd2VyZXIuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYXdhaXQgb2ZmZXJlci5jcmVhdGVPZmZlcigpKTsKKyAgY29uc3Qgc2lnbmFsaW5nU3RhdGVD
aGFuZ2VFdmVudAorICAgICAgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGFuc3dlcmVyLCAnc2lnbmFs
aW5nc3RhdGVjaGFuZ2UnKQorICAgICAgLndhaXRfZm9yKCdzaWduYWxpbmdzdGF0ZWNoYW5nZScp
OworICBhd2FpdCBhbnN3ZXJlci5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IHNpZ25h
bGluZ1N0YXRlQ2hhbmdlRXZlbnQ7CisgIGFzc2VydF9lcXVhbHMoYW5zd2VyZXIuc2lnbmFsaW5n
U3RhdGUsICdzdGFibGUnKTsKK30sICJQYXJhbWV0ZXJsZXNzIFNMRCgpIGluICdoYXZlLXJlbW90
ZS1vZmZlcicgZ29lcyB0byAnc3RhYmxlJyIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IG9mZmVyZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBvZmZlcmVyLmNsb3NlKCkpOworICBjb25zdCBhbnN3ZXJlciA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGFuc3dlcmVyLmNsb3NlKCkp
OworCisgIGF3YWl0IGFuc3dlcmVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IG9mZmVyZXIu
Y3JlYXRlT2ZmZXIoKSk7CisgIGF3YWl0IGFuc3dlcmVyLnNldExvY2FsRGVzY3JpcHRpb24oKTsK
KyAgYXNzZXJ0X25vdF9lcXVhbHMoYW5zd2VyZXIuY3VycmVudExvY2FsRGVzY3JpcHRpb24sIG51
bGwpOworfSwgIlBhcmFtZXRlcmxlc3MgU0xEKCkgaW4gJ2hhdmUtcmVtb3RlLW9mZmVyJyBzZXRz
IGN1cnJlbnRMb2NhbERlc2NyaXB0aW9uIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3Qgb2ZmZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IG9mZmVyZXIuY2xvc2UoKSk7CisgIGNvbnN0IGFuc3dlcmVyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gYW5zd2VyZXIuY2xvc2UoKSk7
CisKKyAgb2ZmZXJlci5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKyAgY29uc3Qgb25UcmFuc2Nl
aXZlclByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+CisgICAgICBhbnN3ZXJlci5vbnRy
YWNrID0gZSA9PiByZXNvbHZlKGUudHJhbnNjZWl2ZXIpKTsKKyAgYXdhaXQgYW5zd2VyZXIuc2V0
UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgb2ZmZXJlci5jcmVhdGVPZmZlcigpKTsKKyAgY29uc3Qg
dHJhbnNjZWl2ZXIgPSBhd2FpdCBvblRyYW5zY2VpdmVyUHJvbWlzZTsKKyAgYXdhaXQgYW5zd2Vy
ZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmN1
cnJlbnREaXJlY3Rpb24sICdyZWN2b25seScpOworfSwgIlBhcmFtZXRlcmxlc3MgU0xEKCkgaW4g
J2hhdmUtcmVtb3RlLW9mZmVyJyBzZXRzICIgKworICAgInRyYW5zY2VpdmVyLmN1cnJlbnREaXJl
Y3Rpb24iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBvZmZlcmVyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gb2ZmZXJlci5j
bG9zZSgpKTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IG9mZmVyZXIuY3JlYXRlT2ZmZXIoKTsK
KyAgYXdhaXQgb2ZmZXJlci5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIC8vIGFzc2VydF90cnVl
KCkgaXMgdXNlZCByYXRoZXIgdGhhbiBhc3NlcnRfZXF1YWxzKCkgc28gdGhhdCBpZiB0aGUgYXNz
ZXJ0aW9uCisgIC8vIGZhaWxzLCB0aGUgLWV4cGVjdGVkLnR4dCBmaWxlIGlzIG5vdCBkaWZmZXJl
bnQgb24gZWFjaCBydW4uCisgIGFzc2VydF90cnVlKG9mZmVyZXIucGVuZGluZ0xvY2FsRGVzY3Jp
cHRpb24uc2RwID09IG9mZmVyLnNkcCwKKyAgICAgICAgICAgICAgIm9mZmVyZXIucGVuZGluZ0xv
Y2FsRGVzY3JpcHRpb24uc2RwID09IG9mZmVyLnNkcCIpOworfSwgIlBhcmFtZXRlcmxlc3MgU0xE
KCkgdXNlcyBbW0xhc3RDcmVhdGVkT2ZmZXJdXSBpZiBpdCBpcyBzdGlsbCB2YWxpZCIpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyZXIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBvZmZlcmVyLmNsb3NlKCkpOworICBj
b25zdCBhbnN3ZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IGFuc3dlcmVyLmNsb3NlKCkpOworCisgIGF3YWl0IGFuc3dlcmVyLnNldFJlbW90ZURl
c2NyaXB0aW9uKGF3YWl0IG9mZmVyZXIuY3JlYXRlT2ZmZXIoKSk7CisgIGNvbnN0IGFuc3dlciA9
IGF3YWl0IGFuc3dlcmVyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBhbnN3ZXJlci5zZXRMb2Nh
bERlc2NyaXB0aW9uKCk7CisgIC8vIGFzc2VydF90cnVlKCkgaXMgdXNlZCByYXRoZXIgdGhhbiBh
c3NlcnRfZXF1YWxzKCkgc28gdGhhdCBpZiB0aGUgYXNzZXJ0aW9uCisgIC8vIGZhaWxzLCB0aGUg
LWV4cGVjdGVkLnR4dCBmaWxlIGlzIG5vdCBkaWZmZXJlbnQgb24gZWFjaCBydW4uCisgIGFzc2Vy
dF90cnVlKGFuc3dlcmVyLmN1cnJlbnRMb2NhbERlc2NyaXB0aW9uLnNkcCA9PSBhbnN3ZXIuc2Rw
LAorICAgICAgICAgICAgICAiYW5zd2VyZXIuY3VycmVudExvY2FsRGVzY3JpcHRpb24uc2RwID09
IGFuc3dlci5zZHAiKTsKK30sICJQYXJhbWV0ZXJsZXNzIFNMRCgpIHVzZXMgW1tMYXN0Q3JlYXRl
ZEFuc3dlcl1dIGlmIGl0IGlzIHN0aWxsIHZhbGlkIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3Qgb2ZmZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBvZmZl
cmVyLmNsb3NlKCk7CisgIHRyeSB7CisgICAgYXdhaXQgb2ZmZXJlci5zZXRMb2NhbERlc2NyaXB0
aW9uKCk7CisgICAgYXNzZXJ0X25vdF9yZWFjaGVkKCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBh
c3NlcnRfZXF1YWxzKGUubmFtZSwgIkludmFsaWRTdGF0ZUVycm9yIik7CisgIH0KK30sICJQYXJh
bWV0ZXJsZXNzIFNMRCgpIHJlamVjdHMgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciBpZiBhbHJlYWR5
IGNsb3NlZCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyZXIg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBvZmZlcmVy
LmNsb3NlKCkpOworCisgIGNvbnN0IHAgPSBQcm9taXNlLnJhY2UoWworICAgIG9mZmVyZXIuc2V0
TG9jYWxEZXNjcmlwdGlvbigpLAorICAgIG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQo
KCkgPT4gcigidGltZW91dCIpLCBrU21hbGxUaW1lb3V0TXMpKQorICBdKTsKKyAgb2ZmZXJlci5j
bG9zZSgpOworICBhc3NlcnRfZXF1YWxzKGF3YWl0IHAsICJ0aW1lb3V0Iik7Cit9LCAiUGFyYW1l
dGVybGVzcyBTTEQoKSBuZXZlciBzZXR0bGVzIGlmIGNsb3NlZCB3aGlsZSBwZW5kaW5nIik7CisK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgb2ZmZXJlciA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IG9mZmVyZXIuY2xvc2UoKSk7Cisg
IGNvbnN0IGFuc3dlcmVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gYW5zd2VyZXIuY2xvc2UoKSk7CisKKyAgLy8gSW1wbGljaXRseSBjcmVhdGUgYW4g
b2ZmZXIuCisgIGF3YWl0IG9mZmVyZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBh
bnN3ZXJlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcmVyLnBlbmRpbmdMb2NhbERlc2NyaXB0
aW9uKTsKKyAgLy8gSW1wbGljaXRseSBjcmVhdGUgYW4gYW5zd2VyLgorICBhd2FpdCBhbnN3ZXJl
ci5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgIGF3YWl0IG9mZmVyZXIuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oYW5zd2VyZXIuY3VycmVudExvY2FsRGVzY3JpcHRpb24pOworfSwgIlBhcmFtZXRlcmxl
c3MgU0xEKCkgaW4gYSBmdWxsIE8vQSBleGNoYW5nZSBzdWNjZWVkcyIpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IGFuc3dlcmVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHRyeSB7CisgICAgYXdhaXQgYW5zd2VyZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24oKTsK
KyAgICBhc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGFzc2VydF9l
cXVhbHMoZS5uYW1lLCAiVHlwZUVycm9yIik7CisgIH0KK30sICJQYXJhbWV0ZXJsZXNzIFNSRCgp
IHJlamVjdHMgd2l0aCBUeXBlRXJyb3IuIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3Qgb2ZmZXJlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCB7c2Rw
fSA9IGF3YWl0IG9mZmVyZXIuY3JlYXRlT2ZmZXIoKTsKKyAgbmV3IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbih7dHlwZTogIm9mZmVyIiwgc2RwfSk7CisgIHRyeSB7CisgICAgbmV3IFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbih7c2RwfSk7CisgICAgYXNzZXJ0X25vdF9yZWFjaGVkKCk7CisgIH0gY2F0Y2gg
KGUpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIlR5cGVFcnJvciIpOworICB9Cit9LCAi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGNvbnN0cnVjdGVkIHdpdGhvdXQgdHlwZSB0aHJvd3MgVHlw
ZUVycm9yIik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxE
ZXNjcmlwdGlvbi1wcmFuc3dlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlv
bi1wcmFuc3dlci5odG1sCmluZGV4IDFmYmIzMDkyM2YzZDFlOWFiZWY2OTQwYTkzMWE2ZDQyNmVk
MDE5MTUuLmU0Mjk2YWVmMTM5ZjE5ZDA4MjI5Yzk0NTBmNjFjMzA3MDYxNDdkMjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXByYW5zd2VyLmh0bWwKQEAgLTY1LDcgKzY1
LDcgQEAKIAogICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcigpCiAgICAgLnRoZW4ob2ZmZXIgPT4K
LSAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgcHJv
bWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAogICAgICAgICBwYy5zZXRM
b2NhbERlc2NyaXB0aW9uKHsgdHlwZTogJ3ByYW5zd2VyJywgc2RwOiBvZmZlci5zZHAgfSkpKTsK
ICAgfSwgJ3NldExvY2FsRGVzY3JpcHRpb24ocHJhbnN3ZXIpIGZyb20gc3RhYmxlIHN0YXRlIHNo
b3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcicpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXJvbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcm9sbGJhY2stZXhwZWN0ZWQudHh0CmluZGV4IDk1
NjZlNGI4YTgyZGU2N2M3ZjY3NjBjYjFlMWFkMzZlZDZhMjRjMjkuLmU0MGY1MmEzNmMwODIwZWFj
YzQ2YWU0MzEzZTdjZWFmNDgyYjcwMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2Fs
RGVzY3JpcHRpb24tcm9sbGJhY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExv
Y2FsRGVzY3JpcHRpb24tcm9sbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0zLDQgKzMsNSBAQCBGQUlM
IHNldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIGZyb20gaGF2ZS1sb2NhbC1vZmZlciBzdGF0
ZSBzaG91bGQgcmVzZXQgYmFjawogUEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBm
cm9tIHN0YWJsZSBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3IgCiBQ
QVNTIHNldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIGFmdGVyIHNldHRpbmcgYW5zd2VyIGRl
c2NyaXB0aW9uIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciAKIEZBSUwgc2V0
TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykgc2hvdWxkIGlnbm9yZSBpbnZhbGlkIHNkcCBjb250
ZW50IGFuZCBzdWNjZWVkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0
aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgorRkFJTCBzZXRMb2NhbERlc2NyaXB0
aW9uKHJvbGxiYWNrKSBzaG91bGQgdXBkYXRlIGludGVybmFsIHN0YXRlIHdpdGggYSBxdWV1ZWQg
dGFzc2ssIGluIHRoZSByaWdodCBvcmRlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlw
ZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay5odG1sCmluZGV4IDYzMGY4NGZhYTQ3
ZjJkODU4OTk4OTY3NGEyY2I2ZDM5Nzk3NTIwYWMuLmUxNjA3YjYzODM2NjcwNzg0MWQ3NDM1MmQ5
ZTllZTEwZDIxODUwNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRp
b24tcm9sbGJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLXJv
bGxiYWNrLmh0bWwKQEAgLTk5LDcgKzk5LDcgQEAKICAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYy5jbG9zZSgpKTsKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlk
U3RhdGVFcnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRT
dGF0ZUVycm9yJywKICAgICAgIHBjLnNldExvY2FsRGVzY3JpcHRpb24oeyB0eXBlOiAncm9sbGJh
Y2snIH0pKTsKICAgfSwgYHNldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIGZyb20gc3RhYmxl
IHN0YXRlIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcmApOwogCkBAIC0xMTIs
NyArMTEyLDcgQEAKICAgICAgIC50aGVuKCgpID0+IHBjLmNyZWF0ZUFuc3dlcigpKSkKICAgICAu
dGhlbihhbnN3ZXIgPT4gcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpKQogICAgIC50aGVu
KCgpID0+IHsKLSAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRTdGF0ZUVy
cm9yJywKKyAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkU3RhdGVF
cnJvcicsCiAgICAgICAgIHBjLnNldExvY2FsRGVzY3JpcHRpb24oeyB0eXBlOiAncm9sbGJhY2sn
IH0pKTsKICAgICB9KTsKICAgfSwgYHNldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIGFmdGVy
IHNldHRpbmcgYW5zd2VyIGRlc2NyaXB0aW9uIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3Rh
dGVFcnJvcmApOwpAQCAtMTI3LDQgKzEyNywzMiBAQAogICAgICAgc2RwOiAnITxJbnZhbGlkIFNE
UCBDb250ZW50PjsnCiAgICAgfSkpOwogICB9LCBgc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFj
aykgc2hvdWxkIGlnbm9yZSBpbnZhbGlkIHNkcCBjb250ZW50IGFuZCBzdWNjZWVkYCk7CisKKyAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGF3
YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9S
ZWNlaXZlQXVkaW86IHRydWV9KSk7CisgICAgY29uc3Qgc2xkUHJvbWlzZSA9IHBjLnNldExvY2Fs
RGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKworICAgIGFzc2VydF9lcXVhbHMocGMu
c2lnbmFsaW5nU3RhdGUsICJoYXZlLWxvY2FsLW9mZmVyIiwgInNpZ25hbGluZ1N0YXRlIHNob3Vs
ZCBub3QgYmUgc2V0IHN5bmNocm9ub3VzbHkgYWZ0ZXIgYSBjYWxsIHRvIHNMRCIpOworCisgICAg
YXNzZXJ0X25vdF9lcXVhbHMocGMucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIG51bGwsICJwZW5k
aW5nTG9jYWxEZXNjcmlwdGlvbiBzaG91bGQgbm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVy
IGEgY2FsbCB0byBzTEQiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLnBlbmRpbmdMb2NhbERlc2Ny
aXB0aW9uLnR5cGUsICJvZmZlciIpOworICAgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ0xvY2Fs
RGVzY3JpcHRpb24uc2RwLCBwYy5sb2NhbERlc2NyaXB0aW9uLnNkcCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhwYy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJwZW5kaW5nUmVtb3RlRGVz
Y3JpcHRpb24gc2hvdWxkIG5ldmVyIGJlIHNldCBkdWUgdG8gc0xEKG9mZmVyKSIpOworCisgICAg
Y29uc3Qgc3RhYmxlUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgcGMu
b25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgcmVzb2x2ZShwYy5zaWdu
YWxpbmdTdGF0ZSk7CisgICAgICB9CisgICAgfSk7CisgICAgY29uc3QgcmFjZVZhbHVlID0gYXdh
aXQgUHJvbWlzZS5yYWNlKFtzdGFibGVQcm9taXNlLCBzbGRQcm9taXNlXSk7CisgICAgYXNzZXJ0
X2VxdWFscyhyYWNlVmFsdWUsICJzdGFibGUiLCAic2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnQg
c2hvdWxkIGZpcmUgYmVmb3JlIHNMRCByZXNvbHZlcyIpOworICAgIGFzc2VydF9lcXVhbHMocGMu
cGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIG51bGwsICJwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBz
aG91bGQgYmUgdXBkYXRlZCBiZWZvcmUgdGhlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50Iik7
CisgICAgYXNzZXJ0X2VxdWFscyhwYy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJw
ZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gc2hvdWxkIG5ldmVyIGJlIHNldCBkdWUgdG8gc0xEKG9m
ZmVyKSIpOworCisgICAgYXdhaXQgc2xkUHJvbWlzZTsKKyAgfSwgInNldExvY2FsRGVzY3JpcHRp
b24ocm9sbGJhY2spIHNob3VsZCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgd2l0aCBhIHF1ZXVlZCB0
YXNzaywgaW4gdGhlIHJpZ2h0IG9yZGVyIik7CisKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxE
ZXNjcmlwdGlvbi5odG1sCmluZGV4IDJiZWNiZDNlMjNlZmVlNmVlMTQ5ODhiNzcwYzM0ZThmYmE5
ZDM0NTUuLmM0NjcxYzMwMDhlMTk5MTc2YzU3YTI3MjhiZjI1YmFiNjRmYzJiNDAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRMb2NhbERlc2NyaXB0aW9uLmh0bWwKQEAgLTEyNSw2ICsxMjUsNyBAQAogCiAgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3Qgb2Zm
ZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOwogICAgIGxldCBldmVudFNlcXVlbmNlID0gJyc7
CiAgICAgY29uc3Qgc2lnbmFsaW5nc3RhdGVjaGFuZ2VSZXNvbHZlciA9IG5ldyBSZXNvbHZlcigp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tYW5zd2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1hbnN3ZXIuaHRtbAppbmRleCBj
YzViZDFlMDgwN2I3MWUwZTk2YzM2OGZlMThhYjZiZDBjNmQxNDJkLi43MzA2MzExYjBhZDQ4NjNi
YmRkOTY2NzI2MGRhM2M4ODViMmRjNmJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1v
dGVEZXNjcmlwdGlvbi1hbnN3ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNj
cmlwdGlvbi1hbnN3ZXIuaHRtbApAQCAtMTAyLDcgKzEwMiw3IEBACiAKICAgICByZXR1cm4gcGMu
Y3JlYXRlT2ZmZXIoKQogICAgIC50aGVuKG9mZmVyID0+Ci0gICAgICBwcm9taXNlX3JlamVjdHMo
dCwgJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0lu
dmFsaWRTdGF0ZUVycm9yJywKICAgICAgICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oeyB0eXBl
OiAnYW5zd2VyJywgc2RwOiBvZmZlci5zZHAgfSkpKTsKICAgfSwgJ0NhbGxpbmcgc2V0UmVtb3Rl
RGVzY3JpcHRpb24oYW5zd2VyKSBmcm9tIHN0YWJsZSBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGgg
SW52YWxpZFN0YXRlRXJyb3InKTsKIApAQCAtMTE2LDcgKzExNiw3IEBACiAgICAgICBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihvZmZlcikKICAgICAgIC50aGVuKCgpID0+IGdlbmVyYXRlQW5zd2Vy
KG9mZmVyKSkpCiAgICAgLnRoZW4oYW5zd2VyID0+Ci0gICAgICBwcm9taXNlX3JlamVjdHModCwg
J0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFs
aWRTdGF0ZUVycm9yJywKICAgICAgICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKSkp
OwogICB9LCAnQ2FsbGluZyBzZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpIGZyb20gaGF2ZS1y
ZW1vdGUtb2ZmZXIgc3RhdGUgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yJyk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLWV4cGVj
dGVkLnR4dAppbmRleCBkYjYxNmJjMDRhYTMwODA1YjY3NTk0ODc1Y2Y5NDUwYjI5NTg2ZDk1Li4y
MGQ3YWQ2MmI2NWMxMTZmZGMwOWNjMzM4N2U4MmRjOWRjNDY4ZTJkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1vZmZlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcg
KzEsMTYgQEAKIAorSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBVbmhhbmRsZWQgcmVq
ZWN0aW9uOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFs
aW5nIHN0YXRlCisKIFBBU1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCB2YWxpZCBvZmZlciBz
aG91bGQgc3VjY2VlZCAKIFBBU1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24gbXVsdGlwbGUgdGltZXMg
c2hvdWxkIHN1Y2NlZWQgCiBQQVNTIHNldFJlbW90ZURlc2NyaXB0aW9uIG11bHRpcGxlIHRpbWVz
IHdpdGggZGlmZmVyZW50IG9mZmVyIHNob3VsZCBzdWNjZWVkIAogRkFJTCBzZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcikgd2l0aCBpbnZhbGlkIFNEUCBzaG91bGQgcmVqZWN0IHdpdGggUlRDRXJy
b3IgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGVycm9yIGRldGFpbCBmaWVsZCB0byBzZXQgdG8gc2Rw
LXN5bnRheC1lcnJvciBleHBlY3RlZCAoc3RyaW5nKSAic2RwLXN5bnRheC1lcnJvciIgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLVBBU1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIp
IGZyb20gaGF2ZS1sb2NhbC1vZmZlciBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0
YXRlRXJyb3IgCitGQUlMIHNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSBmcm9tIGhhdmUtbG9j
YWwtb2ZmZXIgc2hvdWxkIHJvbGwgYmFjayBhbmQgc3VjY2VlZCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVz
Y3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIK
K1RJTUVPVVQgc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpIGZyb20gaGF2ZS1sb2NhbC1vZmZl
ciBmaXJlcyBzaWduYWxpbmdzdGF0ZWNoYW5nZSB0d2ljZSBUZXN0IHRpbWVkIG91dAorTk9UUlVO
IHNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSBpbiBzdGFibGUgc2hvdWxkIHVwZGF0ZSBpbnRl
cm5hbCBzdGF0ZSB3aXRoIGEgcXVldWVkIHRhc2ssIGluIHRoZSByaWdodCBvcmRlciAKK05PVFJV
TiBzZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikgaW4gaGF2ZS1sb2NhbC1vZmZlciBzaG91bGQg
dXBkYXRlIGludGVybmFsIHN0YXRlIHdpdGggYSBxdWV1ZWQgdGFzaywgaW4gdGhlIHJpZ2h0IG9y
ZGVyIAorTk9UUlVOIE5haXZlIHJvbGxiYWNrIGFwcHJvYWNoIGlzIG5vdCBnbGFyZS1wcm9vZiAo
Y29udHJvbCkgCitOT1RSVU4gc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpIGZyb20gaGF2ZS1s
b2NhbC1vZmZlciBpcyBnbGFyZS1wcm9vZiAKK05PVFJVTiBzZXRSZW1vdGVEZXNjcmlwdGlvbihp
bnZhbGlkT2ZmZXIpIGZyb20gaGF2ZS1sb2NhbC1vZmZlciBkb2VzIG5vdCB1bmRvIHJvbGxiYWNr
IAorTk9UUlVOIHJlcGVhdGVkIHNSRChvZmZlcikgd29ya3MgCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRS
ZW1vdGVEZXNjcmlwdGlvbi1vZmZlci5odG1sCmluZGV4IGNhZTYyYjI0YjZjMTgwYzA2YmU4N2Rk
NDhmZmFjMzY0NDI3NjI0ZGIuLmI0NzAyNDQ2NjEzMjU1ZGFlYzdkYjUzMjVmNjQwODlhOTE3ZmRl
ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXIuaHRtbApAQCAt
Nyw5ICs3LDYgQEAKIDxzY3JpcHQ+CiAgICd1c2Ugc3RyaWN0JzsKIAotICAvLyBUZXN0IGlzIGJh
c2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgotICAvLyBodHRwczovL3czYy5naXRo
dWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCi0KICAgLy8gVGhl
IGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVj
dGlvbi1oZWxwZXIuanM6CiAgIC8vICAgYXNzZXJ0X3Nlc3Npb25fZGVzY19zaW1pbGFyKCkKICAg
Ly8gICBnZW5lcmF0ZUF1ZGlvUmVjZWl2ZU9ubHlPZmZlcgpAQCAtMTYyLDI3ICsxNTksMTcwIEBA
CiAgICAgfSk7CiAgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikgd2l0aCBpbnZhbGlk
IFNEUCBzaG91bGQgcmVqZWN0IHdpdGggUlRDRXJyb3InKTsKIAotICAvKgotICAgIDQuMy4xLjYu
ICBTZXQgdGhlIFJUQ1Nlc3Npb25TZXNzaW9uRGVzY3JpcHRpb24KLSAgICAgIDIuMS4zLiAgSWYg
dGhlIGRlc2NyaXB0aW9uJ3MgdHlwZSBpcyBpbnZhbGlkIGZvciB0aGUgY3VycmVudCBzaWduYWxp
bmcgc3RhdGUgb2YKLSAgICAgICAgICAgICAgY29ubmVjdGlvbiwgdGhlbiByZWplY3QgcCB3aXRo
IGEgbmV3bHkgY3JlYXRlZCBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQKLSAgICAgICAgICAg
ICAgdGhlc2Ugc3RlcHMuCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9j
YWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXdhaXQgcGMxLnNl
dFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHBjMS5zaWduYWxpbmdTdGF0ZSwgJ2hhdmUtcmVtb3RlLW9mZmVyJyk7CisgIH0sICdz
ZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikgZnJvbSBoYXZlLWxvY2FsLW9mZmVyIHNob3VsZCBy
b2xsIGJhY2sgYW5kIHN1Y2NlZWQnKTsKIAotICAgIFtKU0VQXQotICAgICAgNS42LiAgSWYgdGhl
IHR5cGUgaXMgIm9mZmVyIiwgdGhlIFBlZXJDb25uZWN0aW9uIHN0YXRlIE1VU1QgYmUgZWl0aGVy
ICJzdGFibGUiIG9yCi0gICAgICAgICAgICAiaGF2ZS1yZW1vdGUtb2ZmZXIiLgotICAgKi8KLSAg
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAgICByZXR1cm4gcGMu
Y3JlYXRlT2ZmZXIoKQotICAgIC50aGVuKG9mZmVyID0+IHsKLSAgICAgIHJldHVybiBwYy5zZXRM
b2NhbERlc2NyaXB0aW9uKG9mZmVyKQotICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICByZXR1
cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCi0gICAgICAgICAgcGMu
c2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpKTsKLSAgICAgIH0pOworICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
ICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2Uo
KSk7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9m
ZmVyKCkpOworICAgIGNvbnN0IHAgPSBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMy
LmNyZWF0ZU9mZmVyKCkpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9uc2lnbmFs
aW5nc3RhdGVjaGFuZ2UgPSByKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5zaWduYWxpbmdTdGF0
ZSwgJ3N0YWJsZScpOworICAgIGFzc2VydF9lcXVhbHMocGMxLnBlbmRpbmdMb2NhbERlc2NyaXB0
aW9uLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5wZW5kaW5nUmVtb3RlRGVzY3JpcHRp
b24sIG51bGwpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMxLm9uc2lnbmFsaW5nc3Rh
dGVjaGFuZ2UgPSByKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5zaWduYWxpbmdTdGF0ZSwgJ2hh
dmUtcmVtb3RlLW9mZmVyJyk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEucGVuZGluZ0xvY2FsRGVz
Y3JpcHRpb24sIG51bGwpOworICAgIGFzc2VydF9lcXVhbHMocGMxLnBlbmRpbmdSZW1vdGVEZXNj
cmlwdGlvbi50eXBlLCAnb2ZmZXInKTsKKyAgICBhd2FpdCBwOworICB9LCAnc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpIGZyb20gaGF2ZS1sb2NhbC1vZmZlciBmaXJlcyBzaWduYWxpbmdzdGF0
ZWNoYW5nZSB0d2ljZScpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IHNyZFBy
b21pc2UgPSBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtv
ZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSkpOworCisgICAgYXNzZXJ0X2VxdWFscyhwYzIuc2ln
bmFsaW5nU3RhdGUsICJzdGFibGUiLCAic2lnbmFsaW5nU3RhdGUgc2hvdWxkIG5vdCBiZSBzZXQg
c3luY2hyb25vdXNseSBhZnRlciBhIGNhbGwgdG8gc1JEIik7CisKKyAgICBhc3NlcnRfZXF1YWxz
KHBjMi5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwsICJwZW5kaW5nUmVtb3RlRGVzY3Jp
cHRpb24gc2hvdWxkIG5vdCBiZSBzZXQgc3luY2hyb25vdXNseSBhZnRlciBhIGNhbGwgdG8gc1JE
Iik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuY3VycmVudFJlbW90ZURlc2NyaXB0aW9uLCBudWxs
LCAiY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBub3QgYmUgc2V0IHN5bmNocm9ub3Vz
bHkgYWZ0ZXIgYSBjYWxsIHRvIHNSRCIpOworCisgICAgY29uc3Qgc3RhdGVQcm9taXNlID0gbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICBwYzIub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9
ICgpID0+IHsKKyAgICAgICAgcmVzb2x2ZShwYzIuc2lnbmFsaW5nU3RhdGUpOworICAgICAgfQog
ICAgIH0pOwotICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpIGZyb20gaGF2ZS1sb2Nh
bC1vZmZlciBzdGF0ZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3InKTsKKwor
ICAgIGNvbnN0IHJhY2VWYWx1ZSA9IGF3YWl0IFByb21pc2UucmFjZShbc3RhdGVQcm9taXNlLCBz
cmRQcm9taXNlXSk7CisgICAgYXNzZXJ0X2VxdWFscyhyYWNlVmFsdWUsICJoYXZlLXJlbW90ZS1v
ZmZlciIsICJzaWduYWxpbmdzdGF0ZWNoYW5nZSBldmVudCBzaG91bGQgZmlyZSBiZWZvcmUgc1JE
IHJlc29sdmVzIik7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMocGMyLnBlbmRpbmdSZW1vdGVEZXNj
cmlwdGlvbiwgbnVsbCwgInBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgYmUgdXBkYXRl
ZCBiZWZvcmUgdGhlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50Iik7CisgICAgYXNzZXJ0X2Vx
dWFscyhwYzIucGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIpOworICAgIGFz
c2VydF9lcXVhbHMocGMyLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbi5zZHAsIHBjMi5yZW1vdGVE
ZXNjcmlwdGlvbi5zZHApOworICAgIGFzc2VydF9lcXVhbHMocGMyLmN1cnJlbnRSZW1vdGVEZXNj
cmlwdGlvbiwgbnVsbCwgImN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgbm90IGJlIHNl
dCBhZnRlciBhIGNhbGwgdG8gc1JEKG9mZmVyKSIpOworCisgICAgYXdhaXQgc3JkUHJvbWlzZTsK
KyAgfSwgInNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSBpbiBzdGFibGUgc2hvdWxkIHVwZGF0
ZSBpbnRlcm5hbCBzdGF0ZSB3aXRoIGEgcXVldWVkIHRhc2ssIGluIHRoZSByaWdodCBvcmRlciIp
OworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsK
KyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0
aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pKTsK
KworICAgIC8vIEltcGxpY2l0IHJvbGxiYWNrIQorICAgIGNvbnN0IHNyZFByb21pc2UgPSBwYzIu
c2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2
ZUF1ZGlvOiB0cnVlfSkpOworCisgICAgYXNzZXJ0X2VxdWFscyhwYzIuc2lnbmFsaW5nU3RhdGUs
ICJoYXZlLWxvY2FsLW9mZmVyIiwgInNpZ25hbGluZ1N0YXRlIHNob3VsZCBub3QgYmUgc2V0IHN5
bmNocm9ub3VzbHkgYWZ0ZXIgYSBjYWxsIHRvIHNSRCIpOworCisgICAgYXNzZXJ0X2VxdWFscyhw
YzIucGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBudWxsLCAicGVuZGluZ1JlbW90ZURlc2NyaXB0
aW9uIHNob3VsZCBub3QgYmUgc2V0IHN5bmNocm9ub3VzbHkgYWZ0ZXIgYSBjYWxsIHRvIHNSRCIp
OworICAgIGFzc2VydF9ub3RfZXF1YWxzKHBjMi5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwgbnVs
bCwgInBlbmRpbmdMb2NhbERlc2NyaXB0aW9uIHNob3VsZCBub3QgYmUgc2V0IHN5bmNocm9ub3Vz
bHkgYWZ0ZXIgYSBjYWxsIHRvIHNSRCIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLnBlbmRpbmdM
b2NhbERlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLnBl
bmRpbmdMb2NhbERlc2NyaXB0aW9uLnNkcCwgcGMyLmxvY2FsRGVzY3JpcHRpb24uc2RwKTsKKwor
ICAgIC8vIEZpcnN0LCB3ZSBzaG91bGQgZ28gdGhyb3VnaCBzdGFibGUgKHRoZSBpbXBsaWNpdCBy
b2xsYmFjayBwYXJ0KQorICAgIGNvbnN0IHN0YWJsZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgIHBjMi5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gKCkgPT4geworICAg
ICAgICByZXNvbHZlKHBjMi5zaWduYWxpbmdTdGF0ZSk7CisgICAgICB9CisgICAgfSk7CisKKyAg
ICBsZXQgcmFjZVZhbHVlID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtzdGFibGVQcm9taXNlLCBzcmRQ
cm9taXNlXSk7CisgICAgYXNzZXJ0X2VxdWFscyhyYWNlVmFsdWUsICJzdGFibGUiLCAic2lnbmFs
aW5nc3RhdGVjaGFuZ2UgZXZlbnQgc2hvdWxkIGZpcmUgYmVmb3JlIHNSRCByZXNvbHZlcyIpOwor
ICAgIGFzc2VydF9lcXVhbHMocGMyLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLCBudWxsLCAicGVu
ZGluZ0xvY2FsRGVzY3JpcHRpb24gc2hvdWxkIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBzaWduYWxp
bmdzdGF0ZWNoYW5nZSBldmVudCIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLnBlbmRpbmdSZW1v
dGVEZXNjcmlwdGlvbiwgbnVsbCwgInBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgYmUg
dXBkYXRlZCBiZWZvcmUgdGhlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50Iik7CisKKyAgICBj
b25zdCBoYXZlUmVtb3RlT2ZmZXJQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Cisg
ICAgICBwYzIub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgcmVzb2x2
ZShwYzIuc2lnbmFsaW5nU3RhdGUpOworICAgICAgfQorICAgIH0pOworCisgICAgcmFjZVZhbHVl
ID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtoYXZlUmVtb3RlT2ZmZXJQcm9taXNlLCBzcmRQcm9taXNl
XSk7CisgICAgYXNzZXJ0X2VxdWFscyhyYWNlVmFsdWUsICJoYXZlLXJlbW90ZS1vZmZlciIsICJz
aWduYWxpbmdzdGF0ZWNoYW5nZSBldmVudCBzaG91bGQgZmlyZSBiZWZvcmUgc1JEIHJlc29sdmVz
Iik7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMocGMyLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwg
bnVsbCwgInBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgYmUgdXBkYXRlZCBiZWZvcmUg
dGhlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50Iik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIu
cGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIpOworICAgIGFzc2VydF9lcXVh
bHMocGMyLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbi5zZHAsIHBjMi5yZW1vdGVEZXNjcmlwdGlv
bi5zZHApOworICAgIGFzc2VydF9lcXVhbHMocGMyLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLCBu
dWxsLCAicGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gc2hvdWxkIGJlIHVwZGF0ZWQgYmVmb3JlIHRo
ZSBzaWduYWxpbmdzdGF0ZWNoYW5nZSBldmVudCIpOworCisgICAgYXdhaXQgc3JkUHJvbWlzZTsK
KyAgfSwgInNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSBpbiBoYXZlLWxvY2FsLW9mZmVyIHNo
b3VsZCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgd2l0aCBhIHF1ZXVlZCB0YXNrLCBpbiB0aGUgcmln
aHQgb3JkZXIiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgICAgYXdhaXQgcGMxLnNldExvY2Fs
RGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAgIGNvbnN0IG9mZmVyID0g
YXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCk7CisgICAgY29uc3QgcDEgPSBwYzEuc2V0TG9jYWxEZXNj
cmlwdGlvbih7dHlwZTogJ3JvbGxiYWNrJ30pOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
cGMxLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSByKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5z
aWduYWxpbmdTdGF0ZSwgJ3N0YWJsZScpOworICAgIGNvbnN0IHAyID0gcGMxLmFkZEljZUNhbmRp
ZGF0ZSgpOworICAgIGNvbnN0IHAzID0gcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsK
KyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsIHAy
KTsKKyAgICBhd2FpdCBwMTsKKyAgICBhd2FpdCBwMzsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5z
aWduYWxpbmdTdGF0ZSwgJ2hhdmUtcmVtb3RlLW9mZmVyJyk7CisgIH0sICdOYWl2ZSByb2xsYmFj
ayBhcHByb2FjaCBpcyBub3QgZ2xhcmUtcHJvb2YgKGNvbnRyb2wpJyk7CisKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVh
dGVPZmZlcigpKTsKKyAgICBjb25zdCBwID0gcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0
IHBjMi5jcmVhdGVPZmZlcigpKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbnNp
Z25hbGluZ3N0YXRlY2hhbmdlID0gcik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuc2lnbmFsaW5n
U3RhdGUsICdzdGFibGUnKTsKKyAgICBhd2FpdCBwYzEuYWRkSWNlQ2FuZGlkYXRlKCk7CisgICAg
YXdhaXQgcDsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5zaWduYWxpbmdTdGF0ZSwgJ2hhdmUtcmVt
b3RlLW9mZmVyJyk7CisgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikgZnJvbSBoYXZl
LWxvY2FsLW9mZmVyIGlzIGdsYXJlLXByb29mJyk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICAg
IGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsK
KyAgICBjb25zdCBwID0gcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBz
ZHA6ICdJbnZhbGlkIFNEUCd9KTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjMS5vbnNp
Z25hbGluZ3N0YXRlY2hhbmdlID0gcik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuc2lnbmFsaW5n
U3RhdGUsICdzdGFibGUnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5wZW5kaW5nTG9jYWxEZXNj
cmlwdGlvbiwgbnVsbCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEucGVuZGluZ1JlbW90ZURlc2Ny
aXB0aW9uLCBudWxsKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdSVENFcnJv
cicsIHApOworICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24oaW52YWxpZE9mZmVyKSBmcm9tIGhh
dmUtbG9jYWwtb2ZmZXIgZG9lcyBub3QgdW5kbyByb2xsYmFjaycpOworCisgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CisgICAgY29uc3Qgb2ZmZXIg
PSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ob2ZmZXIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxl
bmd0aCwgMSk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICAgIGF3
YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBjb25zdCBhbnN3ZXIgPSBh
d2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsK
KyAgfSwgJ3JlcGVhdGVkIHNSRChvZmZlcikgd29ya3MnKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1wcmFuc3dlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbAppbmRleCBjMjdlZTIw
ODU1YmVhMDNlNGFhOGEyY2E4MGI5MDY1M2Y1ZTlkNWI1Li4xZjhiZGUwZjI5NGE4MWNiZmM5OGU2
YzRiM2FhMDZmMTlmMzZlMjMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNj
cmlwdGlvbi1wcmFuc3dlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0
aW9uLXByYW5zd2VyLmh0bWwKQEAgLTY2LDcgKzY2LDcgQEAKIAogICAgIHJldHVybiBwYy5jcmVh
dGVPZmZlcigpCiAgICAgLnRoZW4ob2ZmZXIgPT4KLSAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAn
SW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxp
ZFN0YXRlRXJyb3InLAogICAgICAgICBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7IHR5cGU6ICdw
cmFuc3dlcicsIHNkcDogb2ZmZXIuc2RwIH0pKSk7CiAgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlv
bihwcmFuc3dlcikgZnJvbSBzdGFibGUgc3RhdGUgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRT
dGF0ZUVycm9yJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0
aW9uLXJvbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0
aW9uLXJvbGxiYWNrLWV4cGVjdGVkLnR4dAppbmRleCA2MDMwMGVkNmE2OWI3OWUxZTgzNzIyNTFm
MmI2YjJlN2UwZGRlM2VmLi4zOWJkZjcwODNlYmIzZTI2ODU1YzM1OTQxOTEyZjdhZTA0YjNiYzA1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1yb2xsYmFjay1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tcm9sbGJh
Y2stZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMjUgQEAKIAorSGFybmVzcyBFcnJvciAoRkFJTCks
IG1lc3NhZ2UgPSBVbmhhbmRsZWQgcmVqZWN0aW9uOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0
aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlCisKIEZBSUwgc2V0UmVtb3RlRGVzY3Jp
cHRpb24ocm9sbGJhY2spIGluIGhhdmUtcmVtb3RlLW9mZmVyIHN0YXRlIHNob3VsZCByZXZlcnQg
dG8gc3RhYmxlIHN0YXRlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0
aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgogUEFTUyBzZXRSZW1vdGVEZXNjcmlw
dGlvbihyb2xsYmFjaykgZnJvbSBzdGFibGUgc3RhdGUgc2hvdWxkIHJlamVjdCB3aXRoIEludmFs
aWRTdGF0ZUVycm9yIAogRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbihyb2xsYmFjaykgc2hvdWxk
IGlnbm9yZSBpbnZhbGlkIHNkcCBjb250ZW50IGFuZCBzdWNjZWVkIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBE
ZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRl
IgogRkFJTCBsb2NhbCBvZmZlciBjcmVhdGVkIGJlZm9yZSBzZXRSZW1vdGVEZXNjcmlwdGlvbihy
ZW1vdGUgb2ZmZXIpIHRoZW4gcm9sbGJhY2sgc2hvdWxkIHN0aWxsIGJlIHVzYWJsZSBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3Rh
dGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25h
bGluZyBzdGF0ZSIKK0ZBSUwgbG9jYWwgb2ZmZXIgY3JlYXRlZCBiZWZvcmUgc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocmVtb3RlIG9mZmVyKSB3aXRoIGRpZmZlcmVudCB0cmFuc2NlaXZlciBsZXZlbCBh
c3NpZ25tZW50cyB0aGVuIHJvbGxiYWNrIHNob3VsZCBzdGlsbCBiZSB1c2FibGUgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRl
RXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxp
bmcgc3RhdGUiCitGQUlMIHJvbGxiYWNrIG9mIGEgcmVtb3RlIG9mZmVyIHNob3VsZCByZW1vdmUg
YSB0cmFuc2NlaXZlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGli
bGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKK0ZBSUwgcm9sbGJhY2sgb2YgYSByZW1v
dGUgb2ZmZXIgc2hvdWxkIHJlbW92ZSB0b3VjaGVkIHRyYW5zY2VpdmVyIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9y
OiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0
YXRlIgorRkFJTCByb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZlciBzaG91bGQga2VlcCBhIHRyYW5z
Y2VpdmVyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRo
IGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgorRkFJTCByb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZl
ciBzaG91bGQga2VlcCBhIHRyYW5zY2VpdmVyIGNyZWF0ZWQgYnkgYWRkdHJhY2sgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRl
RXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxp
bmcgc3RhdGUiCitGQUlMIHJvbGxiYWNrIG9mIGEgcmVtb3RlIG9mZmVyIHNob3VsZCBrZWVwIGEg
dHJhbnNjZWl2ZXIgd2l0aG91dCB0cmFja3MgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5
cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCitGQUlMIGV4cGxp
Y2l0IHJvbGxiYWNrIG9mIGxvY2FsIG9mZmVyIHNob3VsZCByZW1vdmUgdHJhbnNjZWl2ZXJzIGFu
ZCB0cmFuc3BvcnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxl
IHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCitGQUlMIHdoZW4gdXNpbmcgYWRkVHJhbnNj
ZWl2ZXIsIGltcGxpY2l0IHJvbGxiYWNrIG9mIGEgbG9jYWwgb2ZmZXIgc2hvdWxkIHZpc2l0IHN0
YWJsZSBzdGF0ZSwgYnV0IG5vdCBmaXJlIG5lZ290aWF0aW9ubmVlZGVkIHVudGlsIHdlIHNldHRs
ZSBpbiBzdGFibGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxl
IHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCitGQUlMIHdoZW4gdXNpbmcgYWRkVHJhY2ss
IGltcGxpY2l0IHJvbGxiYWNrIG9mIGEgbG9jYWwgb2ZmZXIgc2hvdWxkIHZpc2l0IHN0YWJsZSBz
dGF0ZSwgYnV0IG5vdCBmaXJlIG5lZ290aWF0aW9ubmVlZGVkIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNj
cmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgor
RkFJTCByb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZlciB0byBuZWdvdGlhdGVkIHN0YWJsZSBzdGF0
ZSBzaG91bGQgZW5hYmxlIGFwcGx5aW5nIG9mIGEgbG9jYWwgb2ZmZXIgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6
IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3Rh
dGUiCitGQUlMIHJvbGxiYWNrIG9mIGEgbG9jYWwgb2ZmZXIgdG8gbmVnb3RpYXRlZCBzdGFibGUg
c3RhdGUgc2hvdWxkIGVuYWJsZSBhcHBseWluZyBvZiBhIHJlbW90ZSBvZmZlciBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVF
cnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGlu
ZyBzdGF0ZSIKK0ZBSUwgcm9sbGJhY2sgYSBsb2NhbCBvZmZlciB3aXRoIGF1ZGlvIGRpcmVjdGlv
biBjaGFuZ2UgdG8gbmVnb3RpYXRlZCBzdGFibGUgc3RhdGUgYW5kIHRoZW4gYWRkIHZpZGVvIHJl
Y2VpdmVyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRo
IGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgorRkFJTCB0d28gdHJhbnNjZWl2ZXJzIHdpdGggc2Ft
ZSBtaWRzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRo
IGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgorRkFJTCBvbnJlbW92ZXRyYWNrIGZpcmVzIGR1cmlu
ZyByZW1vdGUgcm9sbGJhY2sgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21w
YXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCitGQUlMIHJvbGxiYWNrIG9mIGEg
cmVtb3RlIG9mZmVyIHdpdGggc3RyZWFtIGNoYW5nZXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBwYzEuZ2V0VHJhbnNjZWl2
ZXJzKClbMF0uc2VuZGVyLnNldFN0cmVhbXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMxLmdl
dFRyYW5zY2VpdmVycygpWzBdLnNlbmRlci5zZXRTdHJlYW1zKHN0cmVhbTIpJywgJ3BjMS5nZXRU
cmFuc2NlaXZlcnMoKVswXS5zZW5kZXIuc2V0U3RyZWFtcycgaXMgdW5kZWZpbmVkKSIKK1BBU1Mg
cmVtb3ZlVHJhY2soKSB3aXRoIGEgc2VuZGVyIGJlaW5nIHJvbGxlZCBiYWNrIGRvZXMgbm90IGNy
YXNoIG9yIHRocm93IAorRkFJTCBJbXBsaWNpdCByb2xsYmFjayB3aXRoIG9ubHkgYSBkYXRhY2hh
bm5lbCB3b3JrcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUg
d2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
c2V0UmVtb3RlRGVzY3JpcHRpb24tcm9sbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90
ZURlc2NyaXB0aW9uLXJvbGxiYWNrLmh0bWwKaW5kZXggZjJkYmYwYjk2ZjNjNjcwYTIxOWEyZjA3
YTg1ZTc3ZjBkMjMxYTViOC4uYTAzMWE2MDE1ZjQyNzRkNzgzZmMzYTVhMWJjZTAzYTdlMjNkZmZl
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tcm9sbGJhY2su
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1yb2xsYmFjay5odG1s
CkBAIC03Miw3ICs3Miw3IEBACiAgICAgICBhc3NlcnRfbm90X2VxdWFscyhwYy5wZW5kaW5nUmVt
b3RlRGVzY3JpcHRpb24sIG51bGwpOwogICAgICAgYXNzZXJ0X2VxdWFscyhwYy5jdXJyZW50UmVt
b3RlRGVzY3JpcHRpb24sIG51bGwpOwogCi0gICAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oeyB0eXBlOiAncm9sbGJhY2snIH0pOworICAgICAgcmV0dXJuIHBjLnNldFJlbW90ZURl
c2NyaXB0aW9uKHt0eXBlOiAncm9sbGJhY2snfSk7CiAgICAgfSkKICAgICAudGhlbigoKSA9PiB7
CiAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAnc3RhYmxlJyk7CkBAIC05
OSw4ICs5OSw4IEBACiAgIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
Ci0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAotICAg
ICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oeyB0eXBlOiAncm9sbGJhY2snIH0pKTsKKyAgICBy
ZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAg
cGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KSk7CiAgIH0sIGBzZXRS
ZW1vdGVEZXNjcmlwdGlvbihyb2xsYmFjaykgZnJvbSBzdGFibGUgc3RhdGUgc2hvdWxkIHJlamVj
dCB3aXRoIEludmFsaWRTdGF0ZUVycm9yYCk7CiAKICAgcHJvbWlzZV90ZXN0KHQgPT4gewpAQCAt
MTMyLDQgKzEzMiw0NjAgQEAKICAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZl
cjEpOwogICB9LCBgbG9jYWwgb2ZmZXIgY3JlYXRlZCBiZWZvcmUgc2V0UmVtb3RlRGVzY3JpcHRp
b24ocmVtb3RlIG9mZmVyKSB0aGVuIHJvbGxiYWNrIHNob3VsZCBzdGlsbCBiZSB1c2FibGVgKTsK
IAorICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lz
ZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5n
ZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMS5hZGRU
cmFjayhzdHJlYW0uZ2V0VHJhY2tzKClbMF0sIHN0cmVhbSk7CisKKyAgICAvLyBXZSBkb24ndCB1
c2UgdGhpcyByaWdodCBhd2F5LiBwYzEgaGFzIHByb3Zpc2lvbmFsbHkgZGVjaWRlZCB0aGF0IHRo
ZQorICAgIC8vIChvbmx5KSB0cmFuc2NlaXZlciBpcyBib3VuZCB0byBsZXZlbCAwLgorICAgIGNv
bnN0IG9mZmVyMSA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworCisgICAgLy8gQ3JlYXRlIG9m
ZmVyIGZyb20gcGMyLCBhcHBseSBhbmQgcm9sbGJhY2sgb24gcGMxCisgICAgY29uc3Qgb2ZmZXIy
ID0gYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlLCBvZmZl
clRvUmVjZWl2ZVZpZGVvOiB0cnVlfSk7CisgICAgLy8gcGMxIG5vdyBzaG91bGQgY2hhbmdlIGl0
cyBtaW5kIGFib3V0IHdoYXQgbGV2ZWwgaXRzIHZpZGVvIHRyYW5zY2VpdmVyIGlzCisgICAgLy8g
Ym91bmQgdG8uIEl0IHdhcyAwLCBub3cgaXQgaXMgMS4KKyAgICBhd2FpdCBwYzEuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ob2ZmZXIyKTsKKworICAgIC8vIFJvbGxpbmcgYmFjayBzaG91bGQgcHV0IHRo
aW5ncyBiYWNrIHRoZSB3YXkgdGhleSB3ZXJlLgorICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNj
cmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOworCisgICAgLy8gVGhlbiB0cnkgYXBwbHlpbmcg
cGMxJ3Mgb2xkIG9mZmVyCisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIx
KTsKKyAgfSwgImxvY2FsIG9mZmVyIGNyZWF0ZWQgYmVmb3JlIHNldFJlbW90ZURlc2NyaXB0aW9u
KHJlbW90ZSBvZmZlcikgd2l0aCBkaWZmZXJlbnQgdHJhbnNjZWl2ZXIgbGV2ZWwgYXNzaWdubWVu
dHMgdGhlbiByb2xsYmFjayBzaG91bGQgc3RpbGwgYmUgdXNhYmxlIik7CisKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVv
OiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9y
RWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBwYzEuYWRkVHJhY2soc3RyZWFtLmdl
dFRyYWNrcygpWzBdLCBzdHJlYW0pOworCisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0
aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRU
cmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbih7dHlwZTogInJvbGxiYWNrIn0pOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5z
Y2VpdmVycygpLmxlbmd0aCwgMCk7CisgIH0sICJyb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZlciBz
aG91bGQgcmVtb3ZlIGEgdHJhbnNjZWl2ZXIiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAg
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+
IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMS5hZGRUcmFjayhzdHJlYW0uZ2V0VHJhY2tzKClbMF0s
IHN0cmVhbSk7CisKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQgcGMx
LmNyZWF0ZU9mZmVyKCkpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygp
Lmxlbmd0aCwgMSk7CisKKyAgICBjb25zdCBzdHJlYW0yID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0o
e3ZpZGVvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0yLmdldFRyYWNr
cygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgY29uc3QgdHJhY2sgPSBz
dHJlYW0yLmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgYXdhaXQgcGMyLmdldFRyYW5zY2VpdmVy
cygpWzBdLnNlbmRlci5yZXBsYWNlVHJhY2sodHJhY2spOworCisgICAgYXdhaXQgcGMyLnNldFJl
bW90ZURlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7CisgICAgYXNzZXJ0X2VxdWFscyhw
YzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsKKyAgfSwgInJvbGxiYWNrIG9mIGEgcmVt
b3RlIG9mZmVyIHNob3VsZCByZW1vdmUgdG91Y2hlZCB0cmFuc2NlaXZlciIpOworCisgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
Mi5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2
aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygp
LmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMxLmFkZFRyYWNrKHN0cmVh
bS5nZXRUcmFja3MoKVswXSwgc3RyZWFtKTsKKworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIu
Z2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxKTsKKworICAgIGNvbnN0IHN0cmVhbTIgPSBhd2Fp
dCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHN0cmVhbTIuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAg
ICBwYzIuYWRkVHJhY2soc3RyZWFtMi5nZXRUcmFja3MoKVswXSwgc3RyZWFtMik7CisKKyAgICBh
d2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKyAgICBh
c3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICAgIGFzc2Vy
dF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpWzBdLm1pZCwgbnVsbCk7CisgICAgYXNzZXJ0
X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ucmVjZWl2ZXIudHJhbnNwb3J0LCBudWxs
KTsKKyAgfSwgInJvbGxiYWNrIG9mIGEgcmVtb3RlIG9mZmVyIHNob3VsZCBrZWVwIGEgdHJhbnNj
ZWl2ZXIiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2Fp
dCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAg
IHBjMS5hZGRUcmFjayhzdHJlYW0uZ2V0VHJhY2tzKClbMF0sIHN0cmVhbSk7CisKKyAgICBjb25z
dCBzdHJlYW0yID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgICAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0yLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJh
Y2suc3RvcCgpKSk7CisgICAgcGMyLmFkZFRyYWNrKHN0cmVhbTIuZ2V0VHJhY2tzKClbMF0sIHN0
cmVhbTIpOworCisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMS5j
cmVhdGVPZmZlcigpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5s
ZW5ndGgsIDEpOworCisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAi
cm9sbGJhY2sifSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVu
Z3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5taWQs
IG51bGwpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpWzBdLnJlY2Vp
dmVyLnRyYW5zcG9ydCwgbnVsbCk7CisgIH0sICJyb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZlciBz
aG91bGQga2VlcCBhIHRyYW5zY2VpdmVyIGNyZWF0ZWQgYnkgYWRkdHJhY2siKTsKKworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7
dmlkZW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3Mo
KS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMS5hZGRUcmFjayhzdHJl
YW0uZ2V0VHJhY2tzKClbMF0sIHN0cmVhbSk7CisKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAgIGFzc2VydF9lcXVhbHMocGMy
LmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSk7CisKKyAgICBjb25zdCBzdHJlYW0yID0gYXdh
aXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBzdHJlYW0yLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7Cisg
ICAgcGMyLmFkZFRyYWNrKHN0cmVhbTIuZ2V0VHJhY2tzKClbMF0sIHN0cmVhbTIpOworICAgIGF3
YWl0IHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5zZW5kZXIucmVwbGFjZVRyYWNrKG51bGwpOwor
ICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOwor
ICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSk7CisgIH0s
ICJyb2xsYmFjayBvZiBhIHJlbW90ZSBvZmZlciBzaG91bGQga2VlcCBhIHRyYW5zY2VpdmVyIHdp
dGhvdXQgdHJhY2tzIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2
aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygp
LmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMuYWRkVHJhY2soc3RyZWFt
LmdldFRyYWNrcygpWzBdLCBzdHJlYW0pOworCisgICAgY29uc3Qgc3RhdGVzID0gW107CisgICAg
Y29uc3Qgc2lnbmFsaW5nc3RhdGVjaGFuZ2VSZXNvbHZlciA9IG5ldyBSZXNvbHZlcigpOworICAg
IHBjLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICBzdGF0ZXMucHVzaChw
Yy5zaWduYWxpbmdTdGF0ZSk7CisgICAgICBzaWduYWxpbmdzdGF0ZWNoYW5nZVJlc29sdmVyLnJl
c29sdmUoKTsKKyAgICB9OworCisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZl
cigpOworICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpWzBdLnNlbmRlci50cmFuc3BvcnQsIG51
bGwpOworICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKVswXS5taWQsIG51bGwpCisgICAg
YXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKVswXS5zZW5kZXIudHJhbnNwb3J0LCBu
dWxsKTsKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSk7CisgICAgYXdhaXQgc2ln
bmFsaW5nc3RhdGVjaGFuZ2VSZXNvbHZlci5wcm9taXNlOworICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoc3RhdGVzLCBbJ2hhdmUtbG9jYWwtb2ZmZXInLCAnc3RhYmxlJywgJ2hhdmUtbG9jYWwtb2Zm
ZXInXSk7CisgIH0sICJleHBsaWNpdCByb2xsYmFjayBvZiBsb2NhbCBvZmZlciBzaG91bGQgcmVt
b3ZlIHRyYW5zY2VpdmVycyBhbmQgdHJhbnNwb3J0Iik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
CisgICAgY29uc3Qgc3RhdGVzID0gW107CisgICAgY29uc3Qgc2lnbmFsaW5nc3RhdGVjaGFuZ2VS
ZXNvbHZlciA9IG5ldyBSZXNvbHZlcigpOworICAgIHBjMS5vbnNpZ25hbGluZ3N0YXRlY2hhbmdl
ID0gKCkgPT4geworICAgICAgc3RhdGVzLnB1c2gocGMxLnNpZ25hbGluZ1N0YXRlKTsKKyAgICAg
IHNpZ25hbGluZ3N0YXRlY2hhbmdlUmVzb2x2ZXIucmVzb2x2ZSgpOworICAgIH07CisgICAgY29u
c3Qgc3RyZWFtMSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtMS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRy
YWNrLnN0b3AoKSkpOworICAgIHBjMS5hZGRUcmFuc2NlaXZlcihzdHJlYW0xLmdldFRyYWNrcygp
WzBdLCBzdHJlYW0xKTsKKworICAgIGNvbnN0IHN0cmVhbTIgPSBhd2FpdCBnZXROb2lzZVN0cmVh
bSh7YXVkaW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbTIuZ2V0VHJh
Y2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBwYzIuYWRkVHJhbnNj
ZWl2ZXIoc3RyZWFtMi5nZXRUcmFja3MoKVswXSwgc3RyZWFtMik7CisKKyAgICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgcGMxLm9u
bmVnb3RpYXRpb25uZWVkZWQgPSB0LnN0ZXBfZnVuYygoKSA9PiBhc3NlcnRfdHJ1ZShmYWxzZSwg
IlRoZXJlIHNob3VsZCBiZSBubyBuZWdvdGlhdGlvbm5lZWRlZCBldmVudCByaWdodCBub3ciKSk7
CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZl
cigpKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRl
QW5zd2VyKCkpOworICAgIGF3YWl0IHNpZ25hbGluZ3N0YXRlY2hhbmdlUmVzb2x2ZXIucHJvbWlz
ZTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHN0YXRlcywgWydoYXZlLWxvY2FsLW9mZmVyJywg
J3N0YWJsZScsICdoYXZlLXJlbW90ZS1vZmZlcicsICdzdGFibGUnXSk7CisgICAgYXdhaXQgbmV3
IFByb21pc2UociA9PiBwYzEub25uZWdvdGlhdGlvbm5lZWRlZCA9IHIpOworICB9LCAid2hlbiB1
c2luZyBhZGRUcmFuc2NlaXZlciwgaW1wbGljaXQgcm9sbGJhY2sgb2YgYSBsb2NhbCBvZmZlciBz
aG91bGQgdmlzaXQgc3RhYmxlIHN0YXRlLCBidXQgbm90IGZpcmUgbmVnb3RpYXRpb25uZWVkZWQg
dW50aWwgd2Ugc2V0dGxlIGluIHN0YWJsZSIpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAg
IGNvbnN0IHN0YXRlcyA9IFtdOworICAgIGNvbnN0IHNpZ25hbGluZ3N0YXRlY2hhbmdlUmVzb2x2
ZXIgPSBuZXcgUmVzb2x2ZXIoKTsKKyAgICBwYzEub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9ICgp
ID0+IHsKKyAgICAgIHN0YXRlcy5wdXNoKHBjMS5zaWduYWxpbmdTdGF0ZSk7CisgICAgICBzaWdu
YWxpbmdzdGF0ZWNoYW5nZVJlc29sdmVyLnJlc29sdmUoKTsKKyAgICB9OworICAgIGNvbnN0IHN0
cmVhbTEgPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHN0cmVhbTEuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5z
dG9wKCkpKTsKKyAgICBwYzEuYWRkVHJhY2soc3RyZWFtMS5nZXRUcmFja3MoKVswXSwgc3RyZWFt
MSk7CisKKyAgICBjb25zdCBzdHJlYW0yID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0
cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0yLmdldFRyYWNrcygpLmZvckVh
Y2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMyLmFkZFRyYWNrKHN0cmVhbTIuZ2V0
VHJhY2tzKClbMF0sIHN0cmVhbTIpOworCisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAgIHBjMS5vbm5lZ290aWF0aW9ubmVlZGVk
ID0gdC5zdGVwX2Z1bmMoKCkgPT4gYXNzZXJ0X3RydWUoZmFsc2UsICJUaGVyZSBzaG91bGQgYmUg
bm8gbmVnb3RpYXRpb25uZWVkZWQgZXZlbnQgaW4gdGhpcyB0ZXN0IikpOworICAgIGF3YWl0IHBj
MS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXdh
aXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpKTsKKyAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKHN0YXRlcywgWydoYXZlLWxvY2FsLW9mZmVyJywgJ3N0YWJs
ZScsICdoYXZlLXJlbW90ZS1vZmZlcicsICdzdGFibGUnXSk7CisgICAgYXdhaXQgbmV3IFByb21p
c2UociA9PiB0LnN0ZXBfdGltZW91dChyLCAwKSk7CisgIH0sICJ3aGVuIHVzaW5nIGFkZFRyYWNr
LCBpbXBsaWNpdCByb2xsYmFjayBvZiBhIGxvY2FsIG9mZmVyIHNob3VsZCB2aXNpdCBzdGFibGUg
c3RhdGUsIGJ1dCBub3QgZmlyZSBuZWdvdGlhdGlvbm5lZWRlZCIpOworCisgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzog
dHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVh
Y2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMxLmFkZFRyYWNrKHN0cmVhbS5nZXRU
cmFja3MoKVswXSwgc3RyZWFtKTsKKworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ocGMxLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uKTsKKworICAgIGF3YWl0IHBjMi5zZXRM
b2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgICAgYXdhaXQgcGMx
LnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIC8vIElu
IHN0YWJsZSBzdGF0ZSBhZGQgdmlkZW8gb24gYm90aCBlbmQgYW5kIG1ha2Ugc3VyZSB2aWRlbyB0
cmFuc2NlaXZlciBpcyBub3Qga2lsbGVkLgorCisgICAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IGdl
dE5vaXNlU3RyZWFtKHt2aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3Ry
ZWFtMS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBj
MS5hZGRUcmFjayhzdHJlYW0xLmdldFRyYWNrcygpWzBdLCBzdHJlYW0xKTsKKyAgICBhd2FpdCBw
YzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisKKyAgICBj
b25zdCBzdHJlYW0yID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0yLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4g
dHJhY2suc3RvcCgpKSk7CisgICAgcGMyLmFkZFRyYWNrKHN0cmVhbTIuZ2V0VHJhY2tzKClbMF0s
IHN0cmVhbTIpOworICAgIGNvbnN0IG9mZmVyMiA9IGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpOwor
ICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEucGVuZGluZ0xvY2FsRGVzY3Jp
cHRpb24pOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogInJvbGxi
YWNrIn0pOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwg
Mik7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgfSwgInJv
bGxiYWNrIG9mIGEgcmVtb3RlIG9mZmVyIHRvIG5lZ290aWF0ZWQgc3RhYmxlIHN0YXRlIHNob3Vs
ZCBlbmFibGUgIiArCisgICAgICJhcHBseWluZyBvZiBhIGxvY2FsIG9mZmVyIik7CisKKyAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0o
e2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tz
KCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBwYzEuYWRkVHJhY2soc3Ry
ZWFtLmdldFRyYWNrcygpWzBdLCBzdHJlYW0pOworCisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVz
Y3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAgIGF3YWl0IHBjMi5zZXRSZW1v
dGVEZXNjcmlwdGlvbihwYzEucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24pOworCisgICAgYXdhaXQg
cGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKKyAgICBh
d2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisg
ICAgLy8gQm90aCBlbmRzIHdhbnQgdG8gYWRkIHZpZGVvIGF0IHRoZSBzYW1lIHRpbWUuIHBjMiBy
b2xscyBiYWNrLgorCisgICAgY29uc3Qgc3RyZWFtMiA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2
aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtMi5nZXRUcmFja3Mo
KS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMi5hZGRUcmFjayhzdHJl
YW0yLmdldFRyYWNrcygpWzBdLCBzdHJlYW0yKTsKKyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNj
cmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIu
Z2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhwYzIu
Z2V0VHJhbnNjZWl2ZXJzKClbMV0uc2VuZGVyLnRyYW5zcG9ydCwgbnVsbCk7CisgICAgYXdhaXQg
cGMyLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDIpOworICAgIC8vIFJvbGxiYWNr
IGRpZG4ndCB0b3VjaCBhdWRpbyB0cmFuc2NlaXZlciBhbmQgdHJhbnNwb3J0IGlzIGludGFjdC4K
KyAgICBhc3NlcnRfbm90X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc2VuZGVyLnRy
YW5zcG9ydCwgbnVsbCk7CisgICAgLy8gVmlkZW8gdHJhbnNwb3J0IGdvdCBraWxsZWQuCisgICAg
YXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uc2VuZGVyLnRyYW5zcG9ydCwg
bnVsbCk7CisgICAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRlbzog
dHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtMS5nZXRUcmFja3MoKS5mb3JF
YWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMS5hZGRUcmFjayhzdHJlYW0xLmdl
dFRyYWNrcygpWzBdLCBzdHJlYW0xKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlv
bihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHBjMS5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbik7CisgIH0sICJyb2xsYmFjayBvZiBh
IGxvY2FsIG9mZmVyIHRvIG5lZ290aWF0ZWQgc3RhYmxlIHN0YXRlIHNob3VsZCBlbmFibGUgIiAr
CisgICAgICJhcHBseWluZyBvZiBhIHJlbW90ZSBvZmZlciIpOworCisgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1
ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2go
dHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMxLmFkZFRyYWNrKHN0cmVhbS5nZXRUcmFj
a3MoKVswXSwgc3RyZWFtKTsKKworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3
YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRp
b24ocGMxLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uKTsKKworICAgIGF3YWl0IHBjMi5zZXRMb2Nh
bERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgICAgYXdhaXQgcGMxLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKworICAgIC8vIHBjMSBh
ZGRzIHZpZGVvIGFuZCBwYzIgYWRkcyBhdWRpby4gcGMyIHJvbGxzIGJhY2suCisgICAgYXNzZXJ0
X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uZGlyZWN0aW9uLCAicmVjdm9ubHkiKTsK
KyAgICBjb25zdCBzdHJlYW0yID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0yLmdldFRyYWNrcygpLmZvckVhY2godHJh
Y2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMyLmFkZFRyYWNrKHN0cmVhbTIuZ2V0VHJhY2tz
KClbMF0sIHN0cmVhbTIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygp
WzBdLmRpcmVjdGlvbiwgInNlbmRyZWN2Iik7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3Jp
cHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdl
dFRyYW5zY2VpdmVycygpWzBdLmRpcmVjdGlvbiwgInNlbmRyZWN2Iik7CisgICAgYXdhaXQgcGMy
LnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKKyAgICBhc3NlcnRfZXF1
YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICAgIC8vIHNldExvY2FsRGVz
Y3JpcHRpb24gZGlkbid0IGNoYW5nZSBkaXJlY3Rpb24uIFNvIGRpcmVjdGlvbiByZW1haW5zICJz
ZW5kcmVjdiIKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5kaXJl
Y3Rpb24sICJzZW5kcmVjdiIpOworICAgIC8vIFJvbGxiYWNrIGRpZG4ndCB0b3VjaCBhdWRpbyB0
cmFuc2NlaXZlciBhbmQgdHJhbnNwb3J0IGlzIGludGFjdC4gU3RpbGwgY2FuIHJlY2VpdmUgYXVk
aW8uCisgICAgYXNzZXJ0X25vdF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpWzBdLnJlY2Vp
dmVyLnRyYW5zcG9ydCwgbnVsbCk7CisgICAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IGdldE5vaXNl
U3RyZWFtKHt2aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtMS5n
ZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOworICAgIHBjMS5hZGRU
cmFjayhzdHJlYW0xLmdldFRyYWNrcygpWzBdLCBzdHJlYW0xKTsKKyAgICBhd2FpdCBwYzEuc2V0
TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXdhaXQgcGMy
LnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbik7CisgIH0s
ICJyb2xsYmFjayBhIGxvY2FsIG9mZmVyIHdpdGggYXVkaW8gZGlyZWN0aW9uIGNoYW5nZSB0byBu
ZWdvdGlhdGVkICIgKworICAgICAic3RhYmxlIHN0YXRlIGFuZCB0aGVuIGFkZCB2aWRlbyByZWNl
aXZlciIpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIHBjMS5hZGRUcmFuc2NlaXZlcign
dmlkZW8nLCB7ZGlyZWN0aW9uOiAnc2VuZG9ubHknfSk7CisgICAgcGMyLmFkZFRyYW5zY2VpdmVy
KCd2aWRlbycsIHtkaXJlY3Rpb246ICdzZW5kb25seSd9KTsKKyAgICBhd2FpdCBwYzEuc2V0TG9j
YWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgY29uc3QgcGMxRmly
c3RNaWQgPSBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ubWlkOworICAgIGF3YWl0IHBjMi5zZXRM
b2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVPZmZlcigpKTsKKyAgICBjb25zdCBwYzJG
aXJzdE1pZCA9IHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5taWQ7CisgICAgLy8gSSBkb24ndCB0
aGluayBpdCBpcyBtYW5kYXRlZCB0aGF0IHRoaXMgaGFzIHRvIGJlIHRydWUsIGJ1dCBhbnkgaW1w
bGVtZW50YXRpb24gSSBrbm93IG9mIHdvdWxkCisgICAgLy8gaGF2ZSBwcmVkaWN0YWJsZSBtaWRz
IChlLmcuIDAsIDEsIDIuLi4pIHNvIHBjMSBhbmQgcGMyIHNob3VsZCBvZmZlciB3aXRoIHRoZSBz
YW1lIG1pZHMuCisgICAgYXNzZXJ0X2VxdWFscyhwYzFGaXJzdE1pZCwgcGMyRmlyc3RNaWQpOwor
ICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIucGVuZGluZ0xvY2FsRGVzY3Jp
cHRpb24pOworICAgIC8vIFdlJ3ZlIGltcGxpY2l0bHkgcm9sbGVkIGJhY2sgYW5kIHRoZSBTUkQg
Y2F1c2VkIGEgc2Vjb25kIHRyYW5zY2VpdmVyIHRvIGJlIGNyZWF0ZWQuCisgICAgLy8gQXMgc3Vj
aCwgdGhlIGZpcnN0IHRyYW5zY2VpdmVyJ3MgbWlkIHdpbGwgbm93IGJlIG51bGwsIGFuZCB0aGUg
c2Vjb25kIHRyYW5zY2VpdmVyJ3MgbWlkIHdpbGwKKyAgICAvLyBtYXRjaCB0aGUgcmVtb3RlIG9m
ZmVyLgorICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMik7
CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ubWlkLCBudWxsKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsxXS5taWQsIHBjMkZpcnN0
TWlkKTsKKyAgICAvLyBJZiB3ZSBub3cgZG8gYW4gb2ZmZXIgdGhlIGZpcnN0IHRyYW5zY2VpdmVy
IHdpbGwgZ2V0IGEgZGlmZmVyZW50IG1pZCB0aGFuIGluIHRoZSBmaXJzdAorICAgIC8vIHBjMS5j
cmVhdGVPZmZlcigpIQorICAgIHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVh
dGVBbnN3ZXIoKSk7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMx
LmNyZWF0ZU9mZmVyKCkpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZl
cnMoKVswXS5taWQsIHBjMUZpcnN0TWlkKTsKKyAgfSwgInR3byB0cmFuc2NlaXZlcnMgd2l0aCBz
YW1lIG1pZHMiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdh
aXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2su
c3RvcCgpKSk7CisgICAgY29uc3QgYXVkaW8gPSBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXTsK
KyAgICBwYzEuYWRkVHJhY2soYXVkaW8sIHN0cmVhbSk7CisgICAgY29uc3QgdmlkZW8gPSBzdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICBwYzEuYWRkVHJhY2sodmlkZW8sIHN0cmVhbSk7
CisKKyAgICBsZXQgcmVtb3RlU3RyZWFtID0gbnVsbDsKKyAgICBwYzIub250cmFjayA9IGUgPT4g
eyByZW1vdGVTdHJlYW0gPSBlLnN0cmVhbXNbMF07IH0KKyAgICBhd2FpdCBwYzIuc2V0UmVtb3Rl
RGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAgIGFzc2VydF90cnVlKHJl
bW90ZVN0cmVhbSAhPSBudWxsKTsKKyAgICBsZXQgcmVtb3RlVHJhY2tzID0gcmVtb3RlU3RyZWFt
LmdldFRyYWNrcygpOworICAgIGNvbnN0IHJlbW92ZWRUcmFja3MgPSBbXTsKKyAgICByZW1vdGVT
dHJlYW0ub25yZW1vdmV0cmFjayA9IGUgPT4geyByZW1vdmVkVHJhY2tzLnB1c2goZS50cmFjay5p
ZCk7IH0KKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFj
ayJ9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlbW92ZWRUcmFja3MubGVuZ3RoLCAyLAorICAgICAg
ICAgICAgICAgICAgIlJvbGxiYWNrIHNob3VsZCBoYXZlIHJlbW92ZWQgdHdvIHRyYWNrcyIpOwor
ICAgIGFzc2VydF90cnVlKHJlbW92ZWRUcmFja3MuaW5jbHVkZXMocmVtb3RlVHJhY2tzWzBdLmlk
KSwKKyAgICAgICAgICAgICAgICAiRmlyc3QgdHJhY2sgc2hvdWxkIGJlIHJlbW92ZWQiKTsKKyAg
ICBhc3NlcnRfdHJ1ZShyZW1vdmVkVHJhY2tzLmluY2x1ZGVzKHJlbW90ZVRyYWNrc1sxXS5pZCks
CisgICAgICAgICAgICAgICAgIlNlY29uZCB0cmFjayBzaG91bGQgYmUgcmVtb3ZlZCIpOworCisg
IH0sICJvbnJlbW92ZXRyYWNrIGZpcmVzIGR1cmluZyByZW1vdGUgcm9sbGJhY2siKTsKKworICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0xID0gYXdhaXQgZ2V0Tm9pc2VTdHJl
YW0oe2F1ZGlvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0xLmdldFRy
YWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgICAgcGMxLmFkZFRyYWNr
KHN0cmVhbTEuZ2V0VHJhY2tzKClbMF0sIHN0cmVhbTEpOworCisgICAgY29uc3Qgb2ZmZXIxID0g
YXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisKKyAgICBjb25zdCByZW1vdGVTdHJlYW1zID0gW107
CisgICAgcGMyLm9udHJhY2sgPSBlID0+IHsgcmVtb3RlU3RyZWFtcy5wdXNoKGUuc3RyZWFtc1sw
XSk7IH0KKworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyMSk7CisgICAg
YXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5wZW5kaW5nTG9jYWxEZXNjcmlwdGlv
bik7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFu
c3dlcigpKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVz
Y3JpcHRpb24pOworCisgICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVTdHJlYW1zLmxlbmd0aCwgMSwg
Ik51bWJlciBvZiByZW1vdGUgc3RyZWFtcyIpOworICAgIGFzc2VydF9lcXVhbHMocmVtb3RlU3Ry
ZWFtc1swXS5nZXRUcmFja3MoKS5sZW5ndGgsIDEsICJOdW1iZXIgb2YgcmVtb3RlIHRyYWNrcyIp
OworICAgIGNvbnN0IHRyYWNrID0gcmVtb3RlU3RyZWFtc1swXS5nZXRUcmFja3MoKVswXTsKKwor
ICAgIGNvbnN0IHN0cmVhbTIgPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbTIuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFj
ayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc2VuZGVy
LnNldFN0cmVhbXMoc3RyZWFtMik7CisKKyAgICBjb25zdCBvZmZlcjIgPSBhd2FpdCBwYzEuY3Jl
YXRlT2ZmZXIoKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIyKTsK
KworICAgIGFzc2VydF9lcXVhbHMocmVtb3RlU3RyZWFtcy5sZW5ndGgsIDIpOworICAgIGFzc2Vy
dF9lcXVhbHMocmVtb3RlU3RyZWFtc1swXS5nZXRUcmFja3MoKS5sZW5ndGgsIDApOworICAgIGFz
c2VydF9lcXVhbHMocmVtb3RlU3RyZWFtc1sxXS5nZXRUcmFja3MoKVswXS5pZCwgdHJhY2suaWQp
OworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0p
OworICAgIGFzc2VydF9lcXVhbHMocmVtb3RlU3RyZWFtcy5sZW5ndGgsIDMpOworICAgIGFzc2Vy
dF9lcXVhbHMocmVtb3RlU3RyZWFtc1swXS5pZCwgcmVtb3RlU3RyZWFtc1syXS5pZCk7CisgICAg
YXNzZXJ0X2VxdWFscyhyZW1vdGVTdHJlYW1zWzFdLmdldFRyYWNrcygpLmxlbmd0aCwgMCk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVTdHJlYW1zWzJdLmdldFRyYWNrcygpLmxlbmd0aCwgMSk7
CisgICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVTdHJlYW1zWzJdLmdldFRyYWNrcygpWzBdLmlkLCB0
cmFjay5pZCk7CisKKyAgfSwgInJvbGxiYWNrIG9mIGEgcmVtb3RlIG9mZmVyIHdpdGggc3RyZWFt
IGNoYW5nZXMiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgICAgcGMyLmFkZFRyYW5zY2VpdmVy
KCdhdWRpbycpOworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCk7Cisg
ICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBjb25zdCBbdHJh
bnNjZWl2ZXJdID0gcGMxLmdldFRyYW5zY2VpdmVycygpOworICAgIHBjMS5zZXRSZW1vdGVEZXNj
cmlwdGlvbih7dHlwZToncm9sbGJhY2snfSk7CisgICAgcGMxLnJlbW92ZVRyYWNrKHRyYW5zY2Vp
dmVyLnNlbmRlcik7CisgIH0sICdyZW1vdmVUcmFjaygpIHdpdGggYSBzZW5kZXIgYmVpbmcgcm9s
bGVkIGJhY2sgZG9lcyBub3QgY3Jhc2ggb3IgdGhyb3cnKTsKKworICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworICAgIGNvbnN0IGNoYW5uZWwgPSBw
YzIuY3JlYXRlRGF0YUNoYW5uZWwoJ2R1bW15Jyk7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVz
Y3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkpOworICAgIGF3YWl0IHBjMi5zZXRSZW1v
dGVEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisgICAgYXNzZXJ0X2VxdWFs
cyhwYzIuc2lnbmFsaW5nU3RhdGUsICdoYXZlLXJlbW90ZS1vZmZlcicpOworICAgIGF3YWl0IHBj
Mi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgICAgYXdh
aXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCkpOworICAg
IGFzc2VydF9lcXVhbHMoY2hhbm5lbC5yZWFkeVN0YXRlLCAnY29ubmVjdGluZycpOworICB9LCAn
SW1wbGljaXQgcm9sbGJhY2sgd2l0aCBvbmx5IGEgZGF0YWNoYW5uZWwgd29ya3MnKTsKKwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1zaW11
bGNhc3QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRp
b24tc2ltdWxjYXN0Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTkyZjNkZGQwMTVj
MjMwOGU2NjkxNjY0OTA3NDMwMjUzNjZjYjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tc2V0UmVtb3RlRGVzY3JpcHRpb24tc2ltdWxjYXN0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworRkFJTCBjcmVhdGVBbnN3ZXIoKSBhdHRhY2hlcyB0byBhbiBleGlzdGlu
ZyB0cmFuc2NlaXZlciB3aXRoIGEgcmVtb3RlIHNpbXVsY2FzdCBvZmZlciBhc3NlcnRfZXF1YWxz
OiBFeHBlY3RlZCBleGFjdGx5IG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1zaW11bGNhc3Qu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXNpbXVsY2FzdC5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4YjVkMmJhYjdhYTk0MjkzNTJhMTg0MjM2MGM2YzZhOGE3
NWMxODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlv
bi1zaW11bGNhc3QuaHR0cHMuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IWRvY3R5cGUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBl
LnNldFJlbW90ZURlc2NyaXB0aW9uIHJvbGxiYWNrPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29u
bmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKy8v
IFRlc3QgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2VicnRjLXBjL3B1bGwvMjE1NQorcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCBbdHJhY2ss
IHN0cmVhbV0gPSBhd2FpdCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ3ZpZGVvJyk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gdHJhY2suc3RvcCgpKTsKKworICBwYy5hZGRUcmFjayh0cmFjaywgc3Ry
ZWFtKTsKKworICBjb25zdCBvZmZlcl9zZHAgPSBgdj0wCitvPS0gMzg0MDIzMjQ2MjQ3MTU4Mzgy
NyAyIElOIElQNCAxMjcuMC4wLjEKK3M9LQordD0wIDAKK2E9Z3JvdXA6QlVORExFIDAKK2E9bXNp
ZC1zZW1hbnRpYzogV01TCittPXZpZGVvIDkgVURQL1RMUy9SVFAvU0FWUEYgOTYKK2M9SU4gSVA0
IDAuMC4wLjAKK2E9cnRjcDo5IElOIElQNCAwLjAuMC4wCithPWljZS11ZnJhZzpMaTYrCithPWlj
ZS1wd2Q6M0MwNUNUWkJSUVZtR0NBcTdoVmFzSGxUCithPWljZS1vcHRpb25zOnRyaWNrbGUKK2E9
ZmluZ2VycHJpbnQ6c2hhLTI1NiA1QjpEMzo4RTo2NjowRTo3RDpEMzpGMzo4RTpFNjo4MDoyODox
OTpGQzo1NTpBRDo1ODo1RDpCOTozRDpBODpERTo0NTo0QTpFNzo4NzowMjpGODozQzowQjozQjpC
MworYT1zZXR1cDphY3RwYXNzCithPW1pZDowCithPWV4dG1hcDo0IHVybjppZXRmOnBhcmFtczpy
dHAtaGRyZXh0OnNkZXM6cnRwLXN0cmVhbS1pZAorYT1yZWN2b25seQorYT1ydGNwLW11eAorYT1y
dHBtYXA6OTYgVlA4LzkwMDAwCithPXJ0Y3AtZmI6OTYgZ29vZy1yZW1iCithPXJ0Y3AtZmI6OTYg
dHJhbnNwb3J0LWNjCithPXJ0Y3AtZmI6OTYgY2NtIGZpcgorYT1yaWQ6Zm9vIHJlY3YKK2E9cmlk
OmJhciByZWN2CithPXJpZDpiYXogcmVjdgorYT1zaW11bGNhc3Q6cmVjdiBmb287YmFyO2Jhegor
YDsKKworICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2Rw
OiBvZmZlcl9zZHB9KTsKKyAgY29uc3QgdHJhbnNjZWl2ZXJzID0gcGMuZ2V0VHJhbnNjZWl2ZXJz
KCk7CisgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXJzLmxlbmd0aCwgMSwgJ0V4cGVjdGVkIGV4
YWN0bHkgb25lIHRyYW5zY2VpdmVyJyk7Cit9LCAnY3JlYXRlQW5zd2VyKCkgYXR0YWNoZXMgdG8g
YW4gZXhpc3RpbmcgdHJhbnNjZWl2ZXIgd2l0aCBhIHJlbW90ZSBzaW11bGNhc3Qgb2ZmZXInKTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24t
dHJhY2tzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi10cmFj
a3MuaHR0cHMuaHRtbAppbmRleCA0ZTk1NjhmMGJjZGI0ODEzZDk3MzE5NzY0MGFhN2VhMjAwNTk4
YjU2Li5kMmVlNjQ2ZTJjMTdjN2QwYWExZDYzMjg4MjgzOGEwN2E2ZDVhNjg1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi10cmFja3MuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi10cmFja3MuaHR0cHMuaHRtbApAQCAt
MSw1ICsxLDYgQEAKIDwhZG9jdHlwZSBodG1sPgogPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRh
IG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9u
LnByb3RvdHlwZS5zZXRSZW1vdGVEZXNjcmlwdGlvbiAtIGFkZC9yZW1vdmUgcmVtb3RlIHRyYWNr
czwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CkBAIC0yNyw4ICsyOCw2IEBACiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBsb2NhbFN0cmVh
bS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwogICAgIGNhbGxl
ci5hZGRUcmFjayhsb2NhbFN0cmVhbS5nZXRUcmFja3MoKVswXSk7CiAgICAgY29uc3Qgb250cmFj
a1Byb21pc2UgPSBhZGRFdmVudExpc3RlbmVyUHJvbWlzZSh0LCBjYWxsZWUsICd0cmFjaycsIGUg
PT4gewotICAgICAgYXNzZXJ0X2VxdWFscyhlLnRyYWNrLmlkLCBsb2NhbFN0cmVhbS5nZXRUcmFj
a3MoKVswXS5pZCwKLSAgICAgICAgICAgICAgICAgICAgJ0xvY2FsIGFuZCByZW1vdGUgdHJhY2sg
SURzIG1hdGNoLicpOwogICAgICAgYXNzZXJ0X2VxdWFscyhlLnN0cmVhbXMubGVuZ3RoLCAwLCAn
Tm8gcmVtb3RlIHN0cmVhbSBjcmVhdGVkLicpOwogICAgIH0pOwogICAgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXIoY2FsbGVyLCBjYWxsZWUpOwpAQCAtNDUsOCArNDQsNiBAQAogICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gbG9jYWxTdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5z
dG9wKCkpKTsKICAgICBjYWxsZXIuYWRkVHJhY2sobG9jYWxTdHJlYW0uZ2V0VHJhY2tzKClbMF0s
IGxvY2FsU3RyZWFtKTsKICAgICBjb25zdCBvbnRyYWNrUHJvbWlzZSA9IGFkZEV2ZW50TGlzdGVu
ZXJQcm9taXNlKHQsIGNhbGxlZSwgJ3RyYWNrJywgZSA9PiB7Ci0gICAgICBhc3NlcnRfZXF1YWxz
KGUudHJhY2suaWQsIGxvY2FsU3RyZWFtLmdldFRyYWNrcygpWzBdLmlkLAotICAgICAgICAgICAg
ICAgICAgICAnTG9jYWwgYW5kIHJlbW90ZSB0cmFjayBJRHMgbWF0Y2guJyk7CiAgICAgICBhc3Nl
cnRfZXF1YWxzKGUuc3RyZWFtcy5sZW5ndGgsIDEsICdDcmVhdGVkIGEgc2luZ2xlIHJlbW90ZSBz
dHJlYW0uJyk7CiAgICAgICBhc3NlcnRfZXF1YWxzKGUuc3RyZWFtc1swXS5pZCwgbG9jYWxTdHJl
YW0uaWQsCiAgICAgICAgICAgICAgICAgICAgICdMb2NhbCBhbmQgcmVtb3RlIHN0cmVhbSBJRHMg
bWF0Y2guJyk7CkBAIC05NiwxOCArOTMsMTIgQEAKICAgICB9KTsKICAgICBhd2FpdCBleGNoYW5n
ZU9mZmVyKGNhbGxlciwgY2FsbGVlKTsKICAgICBsZXQgZmlyc3RUcmFja0V2ZW50ID0gYXdhaXQg
b250cmFja0V2ZW50UmVzb2x2ZXJzWzBdOwotICAgIGFzc2VydF9lcXVhbHMoZmlyc3RUcmFja0V2
ZW50LnRyYWNrLmlkLAotICAgICAgICAgICAgICAgICAgbG9jYWxTdHJlYW1zWzBdLmdldFRyYWNr
cygpWzBdLmlkLAotICAgICAgICAgICAgICAgICAgJ0ZpcnN0IG9udHJhY2tcJ3MgdHJhY2sgSUQg
bWF0Y2hlcyBmaXJzdCBsb2NhbCB0cmFjay4nKTsKICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0VHJh
Y2tFdmVudC5zdHJlYW1zLmxlbmd0aCwgMSwKICAgICAgICAgICAgICAgICAgICdGaXJzdCBvbnRy
YWNrIGZpcmVzIHdpdGggYSBzaW5nbGUgc3RyZWFtLicpOwogICAgIGFzc2VydF9lcXVhbHMoZmly
c3RUcmFja0V2ZW50LnN0cmVhbXNbMF0uaWQsCiAgICAgICAgICAgICAgICAgICBsb2NhbFN0cmVh
bXNbMF0uaWQsCiAgICAgICAgICAgICAgICAgICAnRmlyc3Qgb250cmFja1wncyBzdHJlYW0gSUQg
bWF0Y2hlcyBsb2NhbCBzdHJlYW0uJyk7CiAgICAgbGV0IHNlY29uZFRyYWNrRXZlbnQgPSBhd2Fp
dCBvbnRyYWNrRXZlbnRSZXNvbHZlcnNbMV07Ci0gICAgYXNzZXJ0X2VxdWFscyhzZWNvbmRUcmFj
a0V2ZW50LnRyYWNrLmlkLAotICAgICAgICAgICAgICAgICAgbG9jYWxTdHJlYW1zWzFdLmdldFRy
YWNrcygpWzBdLmlkLAotICAgICAgICAgICAgICAgICAgJ1NlY29uZCBvbnRyYWNrXCdzIHRyYWNr
IElEIG1hdGNoZXMgc2Vjb25kIGxvY2FsIHRyYWNrLicpOwogICAgIGFzc2VydF9lcXVhbHMoc2Vj
b25kVHJhY2tFdmVudC5zdHJlYW1zLmxlbmd0aCwgMSwKICAgICAgICAgICAgICAgICAgICdTZWNv
bmQgb250cmFjayBmaXJlcyB3aXRoIGEgc2luZ2xlIHN0cmVhbS4nKTsKICAgICBhc3NlcnRfZXF1
YWxzKHNlY29uZFRyYWNrRXZlbnQuc3RyZWFtc1swXS5pZCwKQEAgLTE0NSwxNyArMTM2LDE2IEBA
CiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKGNhbGxlciwgY2FsbGVlKTsKICAgICBhd2FpdCBl
eGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKICAgICBhc3NlcnRfZXF1YWxzKHJl
bW90ZVN0cmVhbXMubGVuZ3RoLCAxLCAnT25lIHJlbW90ZSBzdHJlYW0gY3JlYXRlZC4nKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKHJlbW90ZVN0cmVhbXNbMF0uZ2V0VHJhY2tzKClbMF0uaWQsCi0gICAg
ICAgICAgICAgICAgICBsb2NhbFN0cmVhbXNbMF0uZ2V0VHJhY2tzKClbMF0uaWQsCi0gICAgICAg
ICAgICAgICAgICAnRmlyc3QgbG9jYWwgYW5kIHJlbW90ZSB0cmFja3MgaGF2ZSB0aGUgc2FtZSBJ
RC4nKTsKLSAgICBjb25zdCBvbmFkZHRyYWNrUHJvbWlzZSA9Ci0gICAgICAgIGFkZEV2ZW50TGlz
dGVuZXJQcm9taXNlKHQsIHJlbW90ZVN0cmVhbXNbMF0sICdhZGR0cmFjaycsIGUgPT4gewotICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRyYWNrLmlkLCBsb2NhbFN0cmVhbXNbMV0uZ2V0VHJhY2tzKClb
MF0uaWQsCi0gICAgICAgICAgICAgICAgICAgICdTZWNvbmQgbG9jYWwgYW5kIHJlbW90ZSB0cmFj
a3MgaGF2ZSB0aGUgc2FtZSBJRC4nKTsKLSAgICB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlbW90
ZVN0cmVhbXNbMF0uaWQsIGxvY2FsU3RyZWFtc1swXS5pZCwKKyAgICAgICAgICAgICAgICAgICdG
aXJzdCBsb2NhbCBhbmQgcmVtb3RlIHN0cmVhbXMgaGF2ZSB0aGUgc2FtZSBJRC4nKTsKKyAgICBj
b25zdCBmaXJzdFJlbW90ZVRyYWNrID0gcmVtb3RlU3RyZWFtc1swXS5nZXRUcmFja3MoKVswXTsK
KyAgICBjb25zdCBvbmFkZHRyYWNrUHJvbWlzZSA9IGFkZEV2ZW50TGlzdGVuZXJQcm9taXNlKHQs
IHJlbW90ZVN0cmVhbXNbMF0sICdhZGR0cmFjaycpOwogICAgIGNhbGxlci5hZGRUcmFjayhsb2Nh
bFN0cmVhbXNbMV0uZ2V0VHJhY2tzKClbMF0sIGxvY2FsU3RyZWFtc1swXSk7CiAgICAgYXdhaXQg
ZXhjaGFuZ2VPZmZlcihjYWxsZXIsIGNhbGxlZSk7Ci0gICAgYXdhaXQgb25hZGR0cmFja1Byb21p
c2U7CisgICAgY29uc3QgZSA9IGF3YWl0IG9uYWRkdHJhY2tQcm9taXNlOworICAgIGFzc2VydF9l
cXVhbHMocmVtb3RlU3RyZWFtc1swXS5nZXRUcmFja3MoKS5sZW5ndGgsIDIsICdzdHJlYW0gaGFz
IHR3byB0cmFja3MnKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhlLnRyYWNrLmlkLCBmaXJzdFJl
bW90ZVRyYWNrLmlkLAorICAgICAgICAgICAgICAgICAgICAgICdhZGR0cmFjayBldmVudCBoYXMg
YSBuZXcgdHJhY2snKTsKICAgICBhc3NlcnRfZXF1YWxzKHJlbW90ZVN0cmVhbXMubGVuZ3RoLCAx
LCAnU3RpbGwgYSBzaW5nbGUgcmVtb3RlIHN0cmVhbS4nKTsKICAgfSwgJ2FkZFRyYWNrKCkgZm9y
IGFuIGV4aXN0aW5nIHN0cmVhbSBtYWtlcyBzdHJlYW0ub25hZGR0cmFjayBmaXJlLicpOwogCkBA
IC0yMDYsOCArMTk2LDYgQEAKICAgICBjYWxsZXIuYWRkVHJhY2sobG9jYWxTdHJlYW1zWzBdLmdl
dFRyYWNrcygpWzBdLAogICAgICAgICAgICAgICAgICAgICBsb2NhbFN0cmVhbXNbMF0sIGxvY2Fs
U3RyZWFtc1sxXSk7CiAgICAgY29uc3Qgb250cmFja1Byb21pc2UgPSBhZGRFdmVudExpc3RlbmVy
UHJvbWlzZSh0LCBjYWxsZWUsICd0cmFjaycsIGUgPT4gewotICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRyYWNrLmlkLCBsb2NhbFN0cmVhbXNbMF0uZ2V0VHJhY2tzKClbMF0uaWQsCi0gICAgICAgICAg
ICAgICAgICAgICdMb2NhbCBhbmQgcmVtb3RlIHRyYWNrIElEcyBtYXRjaC4nKTsKICAgICAgIGFz
c2VydF9lcXVhbHMoZS5zdHJlYW1zLmxlbmd0aCwgMiwgJ1R3byByZW1vdGUgc3RyZWFtIGNyZWF0
ZWQuJyk7CiAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuc3RyZWFtc1swXS5nZXRUcmFja3Mo
KSwgW2UudHJhY2tdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAnRmlyc3QgcmVtb3RlIHN0
cmVhbSA9PSBbcmVtb3RlIHRyYWNrXS4nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJl
bW90ZURlc2NyaXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi5o
dG1sCmluZGV4IDQ2NGUxNmQ3MzZhMDIwODVlMzEyMzUwNTk3YzVlYmU0OTJkZTNjMWMuLjNmMzM1
ZDcxYjlhYjY0MGMzNGI4NzlkNjI0ZmE3NzIxNTQ4OGQ1Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3Rl
RGVzY3JpcHRpb24uaHRtbApAQCAtNTQsNyArNTQsNyBAQAogICAgICAgYXdhaXQgcGMuc2V0UmVt
b3RlRGVzY3JpcHRpb24oeyB0eXBlOiAnYm9ndXMnLCBzZHA6ICdib2d1cycgfSk7CiAgICAgICB0
LnVucmVhY2hlZF9mdW5jKCJTaG91bGQgaGF2ZSByZWplY3RlZC4iKTsKICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4geyB0aHJvdyBl
IH0pOworICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsgdGhyb3cgZSB9
KTsKICAgICB9CiAgIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGludmFsaWQgdHlwZSBh
bmQgaW52YWxpZCBTRFAgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcicpOwogCkBAIC02Nyw3
ICs2Nyw3IEBACiAgICAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7IHR5cGU6ICdh
bnN3ZXInLCBzZHA6ICdpbnZhbGlkJyB9KTsKICAgICAgIHQudW5yZWFjaGVkX2Z1bmMoIlNob3Vs
ZCBoYXZlIHJlamVjdGVkLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgIGFzc2VydF90aHJv
d3MoJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4geyB0aHJvdyBlIH0pOworICAgICAgYXNzZXJ0
X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgKCkgPT4geyB0aHJvdyBlIH0pOwogICAg
IH0KICAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uKCkgd2l0aCBpbnZhbGlkIFNEUCBhbmQgc3Rh
YmxlIHN0YXRlIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcicpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
dHJhY2stc3RhdHMuaHR0cHMuaHRtbAppbmRleCAyZDBjZTMwMmEwMWJjZjE1ZDNmNDljYjM3Mjhl
MmE0NTg0N2VjZTJhLi44M2M5ZjE5MTZjZDAyYTVlOTEwMzFlNGU2MTgzMTk2MjhkYTUyY2NjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXRyYWNrLXN0YXRzLmh0dHBzLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgJ3VzZSBz
dHJpY3QnOwogCiAgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVk
IGZyb20gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzOgotICAvLyAgIGRvU2lnbmFsaW5nSGFu
ZHNoYWtlCisgIC8vICAgZXhjaGFuZ2VPZmZlckFuc3dlcgogICAvLyAgIGdldFVzZXJNZWRpYVRy
YWNrc0FuZFN0cmVhbXMKICAgLy8gICB3YWl0Rm9yUnRwQW5kUnRjcFN0YXRzCiAKQEAgLTIwOCw3
ICsyMDgsNyBAQAogICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiB0cmFja3MuZm9yRWFjaCh0cmFj
ayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICAgIHNlbmRpbmdUcmFjayA9IHRyYWNrc1swXTsKICAg
ICAgIGNhbGxlci5hZGRUcmFjayhzZW5kaW5nVHJhY2ssIHN0cmVhbXNbMF0pOwotICAgICAgcmV0
dXJuIGRvU2lnbmFsaW5nSGFuZHNoYWtlKGNhbGxlciwgY2FsbGVlKTsKKyAgICAgIHJldHVybiBl
eGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKICAgICB9KSkKICAgICAudGhlbih0
LnN0ZXBfZnVuYygoKSA9PiB7CiAgICAgICByZXR1cm4gY2FsbGVyLmdldFN0YXRzKCk7CkBAIC0y
NDIsNyArMjQyLDcgQEAKICAgICAudGhlbih0LnN0ZXBfZnVuYygoW3RyYWNrcywgc3RyZWFtc10p
ID0+IHsKICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gdHJhY2tzLmZvckVhY2godHJhY2sgPT4g
dHJhY2suc3RvcCgpKSk7CiAgICAgICBjYWxsZXIuYWRkVHJhY2sodHJhY2tzWzBdLCBzdHJlYW1z
WzBdKTsKLSAgICAgIHJldHVybiBkb1NpZ25hbGluZ0hhbmRzaGFrZShjYWxsZXIsIGNhbGxlZSk7
CisgICAgICByZXR1cm4gZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7CiAgICAg
fSkpCiAgICAgLnRoZW4odC5zdGVwX2Z1bmMoKCkgPT4gewogICAgICAgcmV0dXJuIGNhbGxlZS5n
ZXRTdGF0cygpOwpAQCAtMzQ1LDcgKzM0NSw3IEBACiAgICAgICBzZW5kaW5nVHJhY2sxID0gdHJh
Y2tzWzBdOwogICAgICAgc2VuZGluZ1RyYWNrMiA9IHRyYWNrc1sxXTsKICAgICAgIHNlbmRlciA9
IGNhbGxlci5hZGRUcmFjayhzZW5kaW5nVHJhY2sxLCBzdHJlYW1zWzBdKTsKLSAgICAgIHJldHVy
biBkb1NpZ25hbGluZ0hhbmRzaGFrZShjYWxsZXIsIGNhbGxlZSk7CisgICAgICByZXR1cm4gZXhj
aGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxlZSk7CiAgICAgfSkpCiAgICAgLnRoZW4odC5z
dGVwX2Z1bmMoKCkgPT4gewogICAgICAgcmV0dXJuIHNlbmRlci5yZXBsYWNlVHJhY2soc2VuZGlu
Z1RyYWNrMik7CkBAIC0zODIsNyArMzgyLDcgQEAKICAgICAgIHNlbmRpbmdUcmFjazEgPSB0cmFj
a3NbMF07CiAgICAgICBzZW5kaW5nVHJhY2syID0gdHJhY2tzWzFdOwogICAgICAgc2VuZGVyID0g
Y2FsbGVyLmFkZFRyYWNrKHNlbmRpbmdUcmFjazEsIHN0cmVhbXNbMF0pOwotICAgICAgcmV0dXJu
IGRvU2lnbmFsaW5nSGFuZHNoYWtlKGNhbGxlciwgY2FsbGVlKTsKKyAgICAgIHJldHVybiBleGNo
YW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKICAgICB9KSkKICAgICAudGhlbih0LnN0
ZXBfZnVuYygoKSA9PiB7CiAgICAgICByZXR1cm4gc2VuZGVyLnJlcGxhY2VUcmFjayhzZW5kaW5n
VHJhY2syKTsKQEAgLTQxNiw3ICs0MTYsNyBAQAogICAgIGxldCBzZW5kZXIgPSBjYWxsZXIuYWRk
VHJhY2sodHJhY2tzWzBdLCBzdHJlYW1zWzBdKTsKICAgICBjYWxsZWUuYWRkVHJhY2sodHJhY2tz
WzFdLCBzdHJlYW1zWzFdKTsKICAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMoY2FsbGVyLCBjYWxs
ZWUpOwotICAgIGF3YWl0IGRvU2lnbmFsaW5nSGFuZHNoYWtlKGNhbGxlciwgY2FsbGVlKTsKKyAg
ICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKICAgICBhd2FpdCBs
aXN0ZW5Ub0Nvbm5lY3RlZChjYWxsZXIpOwogICAgIGxldCByZWNlaXZlciA9IGNhbGxlci5nZXRS
ZWNlaXZlcnMoKVswXTsKIApAQCAtNDY1LDcgKzQ2NSw3IEBACiAgICAgbGV0IHNlbmRlciA9IGNh
bGxlci5hZGRUcmFjayh0cmFja3NbMF0sIHN0cmVhbXNbMF0pOwogICAgIGNhbGxlZS5hZGRUcmFj
ayh0cmFja3NbMV0sIHN0cmVhbXNbMV0pOwogICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhjYWxs
ZXIsIGNhbGxlZSk7Ci0gICAgYXdhaXQgZG9TaWduYWxpbmdIYW5kc2hha2UoY2FsbGVyLCBjYWxs
ZWUpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2FsbGVyLCBjYWxsZWUpOwogICAg
IGF3YWl0IGxpc3RlblRvQ29ubmVjdGVkKGNhbGxlcik7CiAgICAgbGV0IHJlY2VpdmVyID0gY2Fs
bGVyLmdldFJlY2VpdmVycygpWzBdOwogCkBAIC01MTQsNyArNTE0LDcgQEAKICAgICBsZXQgc2Vu
ZGVyID0gY2FsbGVyLmFkZFRyYWNrKHRyYWNrc1swXSwgc3RyZWFtc1swXSk7CiAgICAgY2FsbGVl
LmFkZFRyYWNrKHRyYWNrc1sxXSwgc3RyZWFtc1sxXSk7CiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRh
dGVzKGNhbGxlciwgY2FsbGVlKTsKLSAgICBhd2FpdCBkb1NpZ25hbGluZ0hhbmRzaGFrZShjYWxs
ZXIsIGNhbGxlZSk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIsIGNhbGxl
ZSk7CiAgICAgYXdhaXQgbGlzdGVuVG9JY2VDb25uZWN0ZWQoY2FsbGVyKTsKIAogICAgIC8vIFdh
aXQgdW50aWwgUlRDUCBoYXMgYXJyaXZlZCBzbyB0aGF0IGl0IGNhbiBub3QgYXJyaXZlIGJldHdl
ZW4KQEAgLTU0Niw3ICs1NDYsNyBAQAogICAgIGxldCBzZW5kZXIgPSBjYWxsZXIuYWRkVHJhY2so
dHJhY2tzWzBdLCBzdHJlYW1zWzBdKTsKICAgICBjYWxsZWUuYWRkVHJhY2sodHJhY2tzWzFdLCBz
dHJlYW1zWzFdKTsKICAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMoY2FsbGVyLCBjYWxsZWUpOwot
ICAgIGF3YWl0IGRvU2lnbmFsaW5nSGFuZHNoYWtlKGNhbGxlciwgY2FsbGVlKTsKKyAgICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKICAgICBhd2FpdCBsaXN0ZW5U
b0ljZUNvbm5lY3RlZChjYWxsZXIpOwogICAgIGxldCByZWNlaXZlciA9IGNhbGxlci5nZXRSZWNl
aXZlcnMoKVswXTsKIApAQCAtNTc0LDcgKzU3NCw3IEBACiAgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKICAgICBsZXQgW3RyYWNrcywgc3RyZWFtc10gPSBhd2FpdCBnZXRVc2Vy
TWVkaWFUcmFja3NBbmRTdHJlYW1zKDEpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gdHJhY2tz
LmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7Ci0gICAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLCBwYy5nZXRTdGF0cyh0cmFja3NbMF0pKTsKKyAg
ICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLCBwYy5n
ZXRTdGF0cyh0cmFja3NbMF0pKTsKICAgfSwgJ1JUQ1BlZXJDb25uZWN0aW9uLmdldFN0YXRzKHRy
YWNrKSB0aHJvd3MgSW52YWxpZEFjY2Vzc0Vycm9yIHdoZW4gdGhlcmUgJyArCiAgICAgICdhcmUg
emVybyBzZW5kZXJzIG9yIHJlY2VpdmVycyBmb3IgdGhlIHRyYWNrJyk7CiAKQEAgLTU4Niw3ICs1
ODYsNyBAQAogICAgIGxldCBzZW5kZXIxID0gcGMuYWRkVHJhY2sodHJhY2tzWzBdLCBzdHJlYW1z
WzBdKTsKICAgICBsZXQgc2VuZGVyMiA9IHBjLmFkZFRyYWNrKHRyYWNrc1sxXSwgc3RyZWFtc1sx
XSk7CiAgICAgYXdhaXQgc2VuZGVyMi5yZXBsYWNlVHJhY2soc2VuZGVyMS50cmFjayk7Ci0gICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLCBwYy5nZXRTdGF0
cyhzZW5kZXIxLnRyYWNrKSk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52
YWxpZEFjY2Vzc0Vycm9yJywgcGMuZ2V0U3RhdHMoc2VuZGVyMS50cmFjaykpOwogICB9LCAnUlRD
UGVlckNvbm5lY3Rpb24uZ2V0U3RhdHModHJhY2spIHRocm93cyBJbnZhbGlkQWNjZXNzRXJyb3Ig
d2hlbiB0aGVyZSAnICsKICAgICAgJ2FyZSBtdWx0aXBsZSBzZW5kZXJzIGZvciB0aGUgdHJhY2sn
KTsKIApAQCAtNjQ4LDE1ICs2NDgsNCBAQAogICAgICAgfQogICAgIH0KICAgfQotCi0gIGFzeW5j
IGZ1bmN0aW9uIGFzeW5jX2Fzc2VydF90aHJvd3MoZXhjZXB0aW9uTmFtZSwgcHJvbWlzZSwgZGVz
Y3JpcHRpb24pIHsKLSAgICB0cnkgewotICAgICAgYXdhaXQgcHJvbWlzZTsKLSAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgZXhjZXB0aW9uTmFtZSk7Ci0gICAg
ICByZXR1cm47Ci0gICAgfQotICAgIGFzc2VydF91bnJlYWNoZWQoJ05vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duLicpOwotICB9Ci0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJh
bnNjZWl2ZXJzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYW5zY2VpdmVycy5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggODBiNGVhZGU4NTAwNTI4ZDIyYzRjODE2Y2Q2Y2YzOWQ5
MTNjMzUzMy4uZDM5YmYzZTUyZTk2NDU1YzE1YWFjYzhlYjM2OTIxZWEyNjA5N2Q2MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tdHJhbnNjZWl2ZXJzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi10cmFuc2NlaXZlcnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00MSw0ICs0MSw2
IEBAIFBBU1MgYWRkVHJhbnNjZWl2ZXIgZG9lcyBub3QgcmV1c2UgcmV1c2FibGUgdHJhbnNjZWl2
ZXJzCiBQQVNTIENhbiBzZXR1cCB0d28td2F5IGNhbGwgdXNpbmcgYSBzaW5nbGUgdHJhbnNjZWl2
ZXIgCiBQQVNTIENsb3NpbmcgdGhlIFBDIHN0b3BzIHRoZSB0cmFuc2NlaXZlcnMgCiBQQVNTIENo
YW5naW5nIHRyYW5zY2VpdmVyIGRpcmVjdGlvbiB0byAnc2VuZHJlY3YnIG1ha2VzIG9udHJhY2sg
ZmlyZSAKK0ZBSUwgdHJhbnNjZWl2ZXIuc2VuZGVyLnRyYWNrIGRvZXMgbm90IHJldmVydCB0byBh
biBvbGQgc3RhdGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAncGMxLmdldFJlY2VpdmVycygpWzBdLnRyYWNrJykiCitGQUlMIHRyYW5zY2VpdmVyLmRpcmVj
dGlvbiBkb2VzIG5vdCByZXZlcnQgdG8gYW4gb2xkIHN0YXRlIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5kaXJl
Y3Rpb24gPSAnaW5hY3RpdmUnJykiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYW5zY2Vp
dmVycy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhbnNjZWl2ZXJzLmh0dHBzLmh0bWwKaW5k
ZXggOWIzYTlhODU0MTNlMmRjZmRiY2JiZWZlMmI4YjA1YTBmZmQwNWNhMC4uMTEwNjM4Y2Q3NGU4
ZDkxMDY1ZmI3ZWYzYTI4Y2UxYTgwNTFjNjM3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJh
bnNjZWl2ZXJzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhbnNjZWl2ZXJzLmh0dHBz
Lmh0bWwKQEAgLTIxMCwxMCArMjEwLDEwIEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAg
Y29uc3QgdHJhY2tFdmVudCA9IGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbmRMaXN0ZW5Ub09udHJhY2so
dCwgcGMxLCBwYzIpOwogICBjb25zdCB0cmFuc2NlaXZlciA9IHRyYWNrRXZlbnQudHJhbnNjZWl2
ZXI7CiAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgbnVsbCwK
LSAgICAgICAgICAgICAgICAnU1JEKG9mZmVyKTogdHJhbnNjaWV2ZXIuY3VycmVudERpcmVjdGlv
biBpcyBudWxsJyk7CisgICAgICAgICAgICAgICAgJ1NSRChvZmZlcik6IHRyYW5zY2VpdmVyLmN1
cnJlbnREaXJlY3Rpb24gaXMgbnVsbCcpOwogICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlv
bihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOwogICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVy
LmN1cnJlbnREaXJlY3Rpb24sICdyZWN2b25seScsCi0gICAgICAgICAgICAgICAgJ1NMRChhbnN3
ZXIpOiB0cmFuc2NpZXZlci5jdXJyZW50RGlyZWN0aW9uIGlzIHJlY3Zvbmx5Jyk7CisgICAgICAg
ICAgICAgICAgJ1NMRChhbnN3ZXIpOiB0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uIGlzIHJl
Y3Zvbmx5Jyk7CiB9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOiB0cmFuc2NlaXZlci5j
dXJyZW50RGlyZWN0aW9uIGlzIHJlY3Zvbmx5Jyk7CiAKIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKQEAgLTIyMywxMCArMjIzLDEwIEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgY29u
c3QgcGMyID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKICAgYXdhaXQgZXhj
aGFuZ2VPZmZlcihwYzEsIHBjMik7CiAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVu
dERpcmVjdGlvbiwgbnVsbCwKLSAgICAgICAgICAgICAgICAnU0xEKG9mZmVyKTogdHJhbnNjaWV2
ZXIuY3VycmVudERpcmVjdGlvbiBpcyBudWxsJyk7CisgICAgICAgICAgICAgICAgJ1NMRChvZmZl
cik6IHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24gaXMgbnVsbCcpOwogICBhd2FpdCBleGNo
YW5nZUFuc3dlcihwYzEsIHBjMik7CiAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVu
dERpcmVjdGlvbiwgJ3NlbmRvbmx5JywKLSAgICAgICAgICAgICAgICAnU1JEKGFuc3dlcik6IHRy
YW5zY2lldmVyLmN1cnJlbnREaXJlY3Rpb24gaXMgc2VuZG9ubHknKTsKKyAgICAgICAgICAgICAg
ICAnU1JEKGFuc3dlcik6IHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24gaXMgc2VuZG9ubHkn
KTsKIH0sICdzZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik6IHRyYW5zY2VpdmVyLmN1cnJlbnRE
aXJlY3Rpb24gaXMgc2VuZG9ubHknKTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewpAQCAt
NDY5LDQgKzQ2OSwzNSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbmRMaXN0ZW5Ub09udHJhY2sodCwgcGMxLCBwYzIpOwogfSwgJ0NoYW5naW5nIHRy
YW5zY2VpdmVyIGRpcmVjdGlvbiB0byBcJ3NlbmRyZWN2XCcgbWFrZXMgb250cmFjayBmaXJlJyk7
CiAKKy8vIFJlZ3Jlc3Npb24gdGVzdCBjb3ZlcmFnZSBmb3IgaHR0cHM6Ly9jcmJ1Zy5jb20vOTUw
MjgwLgorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMi5jbG9zZSgpKTsKKyAgY29uc3QgcGMyUHJvbWlzZSA9IHBjMi5jcmVhdGVPZmZlcigpCisg
ICAgLnRoZW4oKG9mZmVyKSA9PiB7IHJldHVybiBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2Zm
ZXIpOyB9KQorICAgIC50aGVuKCgpID0+IHsgcmV0dXJuIHBjMS5jcmVhdGVBbnN3ZXIoKTsgfSkK
KyAgICAudGhlbigoYW5zd2VyKSA9PiB7IHJldHVybiBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihh
bnN3ZXIpOyB9KTsKKyAgY29uc3QgcGMxUHJvbWlzZSA9IHBjMS5jcmVhdGVPZmZlcih7IG9mZmVy
VG9SZWNlaXZlQXVkaW86IHRydWV9KQorICAgIC50aGVuKCgpID0+IHsgcGMxLmFkZFRyYWNrKHBj
MS5nZXRSZWNlaXZlcnMoKVswXS50cmFjayk7IH0pOworICBhd2FpdCBQcm9taXNlLmFsbChbcGMx
UHJvbWlzZSwgcGMyUHJvbWlzZV0pOworICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRTZW5kZXJzKClb
MF0udHJhY2ssIHBjMS5nZXRSZWNlaXZlcnMoKVswXS50cmFjayk7Cit9LCAndHJhbnNjZWl2ZXIu
c2VuZGVyLnRyYWNrIGRvZXMgbm90IHJldmVydCB0byBhbiBvbGQgc3RhdGUnKTsKKworLy8gUmVn
cmVzc2lvbiB0ZXN0IGNvdmVyYWdlIGZvciBodHRwczovL2NyYnVnLmNvbS85NTAyODAuCitwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3Nl
KCkpOworICBjb25zdCBwYzJQcm9taXNlID0gcGMyLmNyZWF0ZU9mZmVyKCkKKyAgICAudGhlbigo
b2ZmZXIpID0+IHsgcmV0dXJuIHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7IH0pCisg
ICAgLnRoZW4oKCkgPT4geyByZXR1cm4gcGMxLmNyZWF0ZUFuc3dlcigpOyB9KTsKKyAgY29uc3Qg
cGMxUHJvbWlzZSA9IHBjMS5jcmVhdGVPZmZlcih7IG9mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9
KQorICAgIC50aGVuKCgpID0+IHsgcGMxLmdldFRyYW5zY2VpdmVycygpWzBdLmRpcmVjdGlvbiA9
ICdpbmFjdGl2ZSc7IH0pOworICBhd2FpdCBQcm9taXNlLmFsbChbcGMxUHJvbWlzZSwgcGMyUHJv
bWlzZV0pOworICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5kaXJlY3Rp
b24sICdpbmFjdGl2ZScpOworfSwgJ3RyYW5zY2VpdmVyLmRpcmVjdGlvbiBkb2VzIG5vdCByZXZl
cnQgdG8gYW4gb2xkIHN0YXRlJyk7CisKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tdmlkZW9EZXRlY3RvclRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRl
Y3RvclRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjMTVkNTk2NjdhODA3NjBjNzA3MjIz
NmY0NzZkYjU4ZTUwYzQ5NGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi12aWRlb0Rl
dGVjdG9yVGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgU2lnbmFsIGRl
dGVjdG9yIGRldGVjdHMgdHJhY2sgY2hhbmdlIHdpdGhpbiByZWFzb25hYmxlIHRpbWUgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXZpZGVvRGV0ZWN0b3JUZXN0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi12aWRlb0RldGVjdG9yVGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxZmZmZGM2ODYwMzQ2NWIyMmIz
MmRhNzM4YWI1ZmVkYWIzNzhmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi12aWRl
b0RldGVjdG9yVGVzdC5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1l
dGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgor
PHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIFZpZGVvIGRldGVjdG9yIHRlc3Q8L3RpdGxlPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3Vz
ZSBzdHJpY3QnOworCisvLyBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgaGVscGVyIGZ1bmN0
aW9uICJkZXRlY3RTaWduYWwiIGZyb20KKy8vIFJUQ1BlZXJDb25uZWN0aW9uSGVscGVyLCB3aGlj
aCBpcyB1c2VkIHRvIGRldGVjdCBjaGFuZ2VzIGluIGEgdmlkZW8KKy8vIHNpZ25hbCwgcGVyZm9y
bXMgcHJvcGVybHkgZm9yIGEgcmFuZ2Ugb2YgInNpZ25hbCIgdmFsdWVzLgorCisvLyBJZiBpdCBm
YWlscywgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIHZpZGVvIGNvZGVjIHVzZWQgaW4gdGhpcyBwYXJ0
aWN1bGFyCisvLyBicm93c2VyIGF0IHRoaXMgdGltZSBkb2Vzbid0IHJlcHJvZHVjZSB0aGUgbHVt
YSBzaWduYWwgcmVsaWFibHkgZW5vdWdoCisvLyBmb3IgdGhpcyBwYXJ0aWN1bGFyIGFwcGxpY2F0
aW9uLCB3aGljaCBtYXkgbGVhZCB0byBvdGhlciB0ZXN0cyB0aGF0CisvLyB1c2UgdGhlICJkZXRl
Y3RTaWduYWwiIGhlbHBlciBmYWlsaW5nIHdpdGhvdXQgYW4gb2J2aW91cyBjYXVzZS4KKworLy8g
VGhlIG1vc3QgbGlrZWx5IGZhaWx1cmUgaXMgdGltZW91dCAtIHdoaWNoIHdpbGwgaGFwcGVuIGlm
IHRoZQorLy8gbHVtYSB2YWx1ZSBkZXRlY3RlZCBkb2Vzbid0IHNldHRsZSB3aXRoaW4gdGhlIG1h
cmdpbiBvZiBlcnJvciBiZWZvcmUKKy8vIHRoZSB0ZXN0IHRpbWVzIG91dC4KKworYXN5bmMgZnVu
Y3Rpb24gc2lnbmFsU2V0dGxlbWVudFRpbWUodCwgdiwgc2VuZGVyLCBzaWduYWwsIGJhY2tncm91
bmRUcmFjaykgeworICBjb25zdCBkZXRlY3Rpb25TdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVh
bSh7dmlkZW86IHtzaWduYWw6IHNpZ25hbH19KTsKKyAgY29uc3QgW2RldGVjdGlvblRyYWNrXSA9
IGRldGVjdGlvblN0cmVhbS5nZXRUcmFja3MoKTsKKyAgYXdhaXQgc2VuZGVyLnJlcGxhY2VUcmFj
ayhkZXRlY3Rpb25UcmFjayk7CisgIGNvbnN0IGZyYW1lc0JlZm9yZSA9IHYuZ2V0VmlkZW9QbGF5
YmFja1F1YWxpdHkoKS50b3RhbFZpZGVvRnJhbWVzOworICBhd2FpdCBkZXRlY3RTaWduYWwodCwg
diwgc2lnbmFsKTsKKyAgY29uc3QgZnJhbWVzQWZ0ZXIgPSB2LmdldFZpZGVvUGxheWJhY2tRdWFs
aXR5KCkudG90YWxWaWRlb0ZyYW1lczsKKyAgYXdhaXQgc2VuZGVyLnJlcGxhY2VUcmFjayhiYWNr
Z3JvdW5kVHJhY2spOworICBhd2FpdCBkZXRlY3RTaWduYWwodCwgdiwgMTAwKTsKKyAgZGV0ZWN0
aW9uU3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKTsKKyAg
cmV0dXJuIChmcmFtZXNBZnRlciAtIGZyYW1lc0JlZm9yZSk7Cit9CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7
CisgIHYuYXV0b3BsYXkgPSB0cnVlOworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKyAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRlbzoge3Np
Z25hbDogMTAwfX0pOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbTEuZ2V0VHJhY2tzKCku
Zm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgY29uc3QgW3RyYWNrMV0gPSBzdHJl
YW0xLmdldFRyYWNrcygpOworICBjb25zdCBzZW5kZXIgPSBwYzEuYWRkVHJhY2sodHJhY2sxKTsK
KyAgcGMyLm9udHJhY2sgPSB0LnN0ZXBfZnVuYygoZSkgPT4geworICAgIHYuc3JjT2JqZWN0ID0g
bmV3IE1lZGlhU3RyZWFtKFtlLnRyYWNrXSk7CisgIH0pOworICBjb25zdCBtZXRhZGF0YVRvQmVM
b2FkZWQgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIHYuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZGVkbWV0YWRhdGEnLCByZXNvbHZlKTsKKyAgfSk7CisgIGV4Y2hhbmdlSWNlQ2FuZGlk
YXRlcyhwYzEsIHBjMik7CisgIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhd2Fp
dCBtZXRhZGF0YVRvQmVMb2FkZWQ7CisgIC8vIFRoZSBiYXNpYyBzaWduYWwgaXMgYSB0cmFjayB3
aXRoIHNpZ25hbCAxMDAuIFdlIHJlcGxhY2UgdGhpcworICAvLyB3aXRoIHRyYWNrcyB3aXRoIHNp
Z25hbCBmcm9tIDAgdG8gMjU1IGFuZCBzZWUgaWYgdGhleSBhcmUgYWxsCisgIC8vIHJlbGlhYmx5
IGRldGVjdGVkLgorICBhd2FpdCBkZXRlY3RTaWduYWwodCwgdiwgMTAwKTsKKyAgLy8gQSBmZXcg
YnVmZmVyZWQgZnJhbWVzIGFyZSByZWNlaXZlZCB3aXRoIHRoZSBvbGQgY29udGVudCwgYW5kIGEg
ZmV3CisgIC8vIGZyYW1lcyBtYXkgbm90IGhhdmUgc2V0dGxlZCBvbiBleGFjdGx5IHRoZSByaWdo
dCB2YWx1ZS4gSW4gdGVzdGluZywKKyAgLy8gdGhpcyB0ZXN0IHBhc3NlcyB3aXRoIG1heEZyYW1l
cyA9IDM7IGdpdmUgYSBsaXR0bGUgbW9yZSBtYXJnaW4uCisgIGNvbnN0IG1heEZyYW1lcyA9IDc7
CisgIC8vIFRlc3QgdmFsdWVzIDAgYW5kIDI1NQorICBsZXQgbWF4Q291bnQgPSBhd2FpdCBzaWdu
YWxTZXR0bGVtZW50VGltZSh0LCB2LCBzZW5kZXIsIDAsIHRyYWNrMSk7CisgIGFzc2VydF9sZXNz
X3RoYW4obWF4Q291bnQsIG1heEZyYW1lcywKKyAgICAgICdTaG91bGQgZ2V0IHRoZSBibGFjayB2
YWx1ZSB3aXRoaW4gJyArIG1heEZyYW1lcyArICcgZnJhbWVzJyk7CisgIG1heENvdW50ID0gTWF0
aC5tYXgoCisgICAgICBhd2FpdCBzaWduYWxTZXR0bGVtZW50VGltZSh0LCB2LCBzZW5kZXIsIDI1
NSwgdHJhY2sxKSwgbWF4Q291bnQpOworICBhc3NlcnRfbGVzc190aGFuKG1heENvdW50LCBtYXhG
cmFtZXMsCisgICAgICAnU2hvdWxkIGdldCB0aGUgd2hpdGUgdmFsdWUgd2l0aGluICcgKyBtYXhG
cmFtZXMgKyAnIGZyYW1lcycpOworICAvLyBUZXN0IGEgc2V0IG9mIG90aGVyIHZhbHVlcyAtIGZh
ciBlbm91Z2ggYXBhcnQgdG8gbWFrZSB0aGUgdGVzdCBmYXN0LgorICBmb3IgKGxldCBzaWduYWwg
PSAyOyBzaWduYWwgPD0gMjU1OyBzaWduYWwgKz0gNDcpIHsKKyAgICBpZiAoTWF0aC5hYnMoc2ln
bmFsIC0gMTAwKSA+IDEwKSB7CisgICAgICBjb25zdCBjb3VudCA9IGF3YWl0IHNpZ25hbFNldHRs
ZW1lbnRUaW1lKHQsIHYsIHNlbmRlciwgc2lnbmFsLCB0cmFjazEpOworICAgICAgbWF4Q291bnQg
PSBNYXRoLm1heChjb3VudCwgbWF4Q291bnQpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihtYXhD
b3VudCwgMTAsCisgICAgICAgICAgJ1Nob3VsZCBnZXQgdmFsdWUgJyArIHNpZ25hbCArICcgd2l0
aGluICcgKyBtYXhGcmFtZXMgKyAnIGZyYW1lcycpOworICAgIH0KKyAgfQorICBhc3NlcnRfbGVz
c190aGFuKG1heENvdW50LCAxMCwgJ1Nob3VsZCBnZXQgdGhlIHJpZ2h0IHZhbHVlIHdpdGhpbiAx
MCBmcmFtZXMnKTsKK30sICdTaWduYWwgZGV0ZWN0b3IgZGV0ZWN0cyB0cmFjayBjaGFuZ2Ugd2l0
aGluIHJlYXNvbmFibGUgdGltZScpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bkljZUV2ZW50LWNvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LWNvbnN0cnVj
dG9yLmh0bWwKaW5kZXggN2RlN2ZjYWViMTBlZjIwOWVjZTYzYWQzNDZmNjY4ZTFjNjM0YzRkYi4u
NDQ3MDAyZGNhMWZhMzU4MTZmZGQyNGM3NGRkNzYxYzFkNDhjZjAyOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb25JY2VFdmVudC1jb25zdHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uSWNlRXZl
bnQtY29uc3RydWN0b3IuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBpbnRlcmZhY2UgUlRDUGVlckNv
bm5lY3Rpb25JY2VFdmVudCA6IEV2ZW50IHsKIH07CiAgKi8KIHRlc3QoKCkgPT4gewotICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4geworICBhc3NlcnRfdGhyb3dzX2pzKFR5
cGVFcnJvciwgKCkgPT4gewogICAgIG5ldyBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50KCk7CiAg
IH0pOwogfSwgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgd2l0aCBubyBhcmd1bWVudHMgdGhy
b3dzIFR5cGVFcnJvciIpOwpAQCAtMTA5LDcgKzEwOSw3IEBAIHRlc3QoKCkgPT4gewogCiB0ZXN0
KCgpID0+IHsKICAgY29uc3QgcGxhaW4gPSB7IGNhbmRpZGF0ZSwgc2RwTWlkLCBzZHBNTGluZUlu
ZGV4LCB1c2VybmFtZUZyYWdtZW50IH07Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCAoKSA9PiBuZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCgidHlwZSIsIHsgY2FuZGlkYXRl
OiBwbGFpbiB9KSk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBuZXcgUlRD
UGVlckNvbm5lY3Rpb25JY2VFdmVudCgidHlwZSIsIHsgY2FuZGlkYXRlOiBwbGFpbiB9KSk7CiB9
LCAiUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCB3aXRoIG5vbiBSVENJY2VDYW5kaWRhdGUgb2Jq
ZWN0IHRocm93cyIpOwogCiB0ZXN0KCgpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtY29k
ZWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWNvZGVjcy5odG1sCmluZGV4IDAyMzM5MDUxYzljZjUzMjI0
ZDdlNDdlOGU3MWMyMTVjZDFlMTQ5ZGQuLmY1ZmE2NWUyYWM5YmU3MDZhNzJmZWI0OWMwOWIzN2Rl
ZjY1OTg2ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtY29kZWNzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1l
dGVycy1jb2RlY3MuaHRtbApAQCAtMjgsNyArMjgsNiBAQAogICAgICAgICBzZXF1ZW5jZTxSVENS
dHBIZWFkZXJFeHRlbnNpb25QYXJhbWV0ZXJzPiBoZWFkZXJFeHRlbnNpb25zOwogICAgICAgICBS
VENSdGNwUGFyYW1ldGVycyAgICAgICAgICAgICAgICAgICAgICAgICBydGNwOwogICAgICAgICBz
ZXF1ZW5jZTxSVENSdHBDb2RlY1BhcmFtZXRlcnM+ICAgICAgICAgICBjb2RlY3M7Ci0gICAgICAg
IFJUQ0RlZ3JhZGF0aW9uUHJlZmVyZW5jZSAgICAgICAgICAgICAgICAgIGRlZ3JhZGF0aW9uUHJl
ZmVyZW5jZTsKICAgICAgIH07CiAKICAgICAgIGRpY3Rpb25hcnkgUlRDUnRwQ29kZWNQYXJhbWV0
ZXJzIHsKQEAgLTk5LDcgKzk4LDcgQEAKICAgICAgIGNvZGVjLnBheWxvYWRUeXBlICs9IDE7CiAg
ICAgfQogCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZE1vZGlmaWNhdGlv
bkVycm9yJywKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yJywKICAgICAgIHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtKSk7CiAgIH0s
ICdzZXRQYXJhbWV0ZXJzKCkgd2l0aCBjb2RlYy5wYXlsb2FkVHlwZSBtb2RpZmllZCBzaG91bGQg
cmVqZWN0IHdpdGggSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJyk7CiAKQEAgLTExOSw3ICsxMTgs
NyBAQAogICAgICAgY29kZWMubWltZVR5cGUgPSBgJHtjb2RlYy5taW1lVHlwZX0tbW9kaWZpZWRg
OwogICAgIH0KIAotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2RpZmlj
YXRpb25FcnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRN
b2RpZmljYXRpb25FcnJvcicsCiAgICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkpOwog
ICB9LCAnc2V0UGFyYW1ldGVycygpIHdpdGggY29kZWMubWltZVR5cGUgbW9kaWZpZWQgc2hvdWxk
IHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJvcicpOwogCkBAIC0xMzksNyArMTM4
LDcgQEAKICAgICAgIGNvZGVjLmNsb2NrUmF0ZSArPSAxOwogICAgIH0KIAotICAgIHJldHVybiBw
cm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCisgICAgcmV0dXJu
IHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCiAgICAg
ICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkpOwogICB9LCAnc2V0UGFyYW1ldGVycygpIHdp
dGggY29kZWMuY2xvY2tSYXRlIG1vZGlmaWVkIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9k
aWZpY2F0aW9uRXJyb3InKTsKIApAQCAtMTU5LDcgKzE1OCw3IEBACiAgICAgICBjb2RlYy5jaGFu
bmVscyArPSAxOwogICAgIH0KIAotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFs
aWRNb2RpZmljYXRpb25FcnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwg
J0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCiAgICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhw
YXJhbSkpOwogICB9LCAnc2V0UGFyYW1ldGVycygpIHdpdGggY29kZWMuY2hhbm5lbHMgbW9kaWZp
ZWQgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJvcicpOwogCkBAIC0x
NzksNyArMTc4LDcgQEAKICAgICAgIGNvZGVjLnNkcEZtdHBMaW5lID0gYCR7Y29kZWMuc2RwRm10
cExpbmV9O2Zvbz0xYDsKICAgICB9CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJ
bnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAorICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9t
KHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAogICAgICAgc2VuZGVyLnNldFBhcmFtZXRl
cnMocGFyYW0pKTsKICAgfSwgJ3NldFBhcmFtZXRlcnMoKSB3aXRoIGNvZGVjLnNkcEZtdHBMaW5l
IG1vZGlmaWVkIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InKTsK
IApAQCAtMjAwLDcgKzE5OSw3IEBACiAgICAgICBjaGFubmVsczogMgogICAgIH0pOwogCi0gICAg
cmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywKKyAg
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9y
JywKICAgICAgIHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtKSk7CiAgIH0sICdzZXRQYXJhbWV0
ZXJzKCkgd2l0aCBuZXcgY29kZWNzIGluc2VydGVkIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlk
TW9kaWZpY2F0aW9uRXJyb3InKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlv
blByZWZlcmVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVu
Y2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODYzMWEwOTcx
ZTE3NDFiYzhmNjU4YjhkMzIwMjM4NjczY2QwMWRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1GQUlMIHNldFBhcmFt
ZXRlcnMgd2l0aCBkZWdyYWRhdGlvblByZWZlcmVuY2Ugc2V0IHNob3VsZCBzdWNjZWVkIGFzc2Vy
dF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUgcGxhaW4gb2JqZWN0IGV4cGVj
dGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgc2V0UGFyYW1ldGVycyB3aXRo
IGRlZ3JhZGF0aW9uUHJlZmVyZW5jZSB1bnNldCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxz
OiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2Jq
ZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFk
YXRpb25QcmVmZXJlbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmM5MmJjMWMwODE0ZjI5NGUxYjkx
NTNmZWJjNzY4ODZjZjJmZGI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw4NyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRm
LTg+Ci08dGl0bGU+UlRDUnRwUGFyYW1ldGVycyBkZWdyYWRhdGlvblByZWZlcmVuY2U8L3RpdGxl
PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9ImRpY3Rpb25hcnktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJS
VENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAndXNlIHN0
cmljdCc7Ci0KLSAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFm
dDoKLSAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYw
NS93ZWJydGMuaHRtbAotCi0gIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUg
Y2FsbGVkIGZyb20gUlRDUnRwUGFyYW1ldGVycy1oZWxwZXIuanM6Ci0gIC8vICAgdmFsaWRhdGVT
ZW5kZXJSdHBQYXJhbWV0ZXJzCi0KLSAgLyoKLSAgICA1LjIuICBSVENSdHBTZW5kZXIgSW50ZXJm
YWNlCi0gICAgICBpbnRlcmZhY2UgUlRDUnRwU2VuZGVyIHsKLSAgICAgICAgUHJvbWlzZTx2b2lk
PiAgICAgICAgICAgc2V0UGFyYW1ldGVycyhvcHRpb25hbCBSVENSdHBQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnMpOwotICAgICAgICBSVENSdHBQYXJhbWV0ZXJzICAgICAgICBnZXRQYXJhbWV0ZXJzKCk7
Ci0gICAgICB9OwotCi0gICAgICBkaWN0aW9uYXJ5IFJUQ1J0cFBhcmFtZXRlcnMgewotICAgICAg
ICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbklk
OwotICAgICAgICBzZXF1ZW5jZTxSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnM+ICAgICAgICBlbmNv
ZGluZ3M7Ci0gICAgICAgIHNlcXVlbmNlPFJUQ1J0cEhlYWRlckV4dGVuc2lvblBhcmFtZXRlcnM+
IGhlYWRlckV4dGVuc2lvbnM7Ci0gICAgICAgIFJUQ1J0Y3BQYXJhbWV0ZXJzICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ0Y3A7Ci0gICAgICAgIHNlcXVlbmNlPFJUQ1J0cENvZGVjUGFyYW1ldGVy
cz4gICAgICAgICAgIGNvZGVjczsKLSAgICAgICAgUlRDRGVncmFkYXRpb25QcmVmZXJlbmNlICAg
ICAgICAgICAgICAgICAgZGVncmFkYXRpb25QcmVmZXJlbmNlOwotICAgICAgfTsKLQotICAgICAg
ZW51bSBSVENEZWdyYWRhdGlvblByZWZlcmVuY2UgewotICAgICAgICAibWFpbnRhaW4tZnJhbWVy
YXRlIiwKLSAgICAgICAgIm1haW50YWluLXJlc29sdXRpb24iLAotICAgICAgICAiYmFsYW5jZWQi
Ci0gICAgICB9OwotCi0gICAgICAtIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZSBpcyBzZXQgdG8gdGhl
IGxhc3QgdmFsdWUgcGFzc2VkIGludG8gc2V0UGFyYW1ldGVycywKLSAgICAgICAgb3IgdGhlIGRl
ZmF1bHQgdmFsdWUgb2YgImJhbGFuY2VkIiBpZiBzZXRQYXJhbWV0ZXJzIGhhc24ndCBiZWVuIGNh
bGxlZC4KLSAgICovCi0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKLSAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7Ci0K
LSAgICBjb25zdCBwYXJhbSA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7Ci0gICAgdmFsaWRhdGVT
ZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsKLQotICAgIGFzc2VydF9lcXVhbHMocGFyYW0uZGVn
cmFkYXRpb25QcmVmZXJlbmNlLCAnYmFsYW5jZWQnLAotICAgICAgJ0V4cGVjdCBpbml0aWFsIHBh
cmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSB0byBiZSBiYWxhbmNlZCcpOwotCi0gICAgcGFyYW0u
ZGVncmFkYXRpb25QcmVmZXJlbmNlID0gJ21haW50YWluLWZyYW1lcmF0ZSc7Ci0KLSAgICByZXR1
cm4gcGMuc2V0UGFyYW1ldGVycyhwYXJhbSkKLSAgICAudGhlbigoKSA9PiB7Ci0gICAgICBjb25z
dCBwYXJhbSA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7Ci0gICAgICB2YWxpZGF0ZVNlbmRlclJ0
cFBhcmFtZXRlcnMocGFyYW0pOwotCi0gICAgICBhc3NlcnRfZXF1YWxzKHBhcmFtLmRlZ3JhZGF0
aW9uUHJlZmVyZW5jZSwgJ21haW50YWluLWZyYW1lcmF0ZScpOwotICAgIH0pOwotICB9LCAnc2V0
UGFyYW1ldGVycyB3aXRoIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZSBzZXQgc2hvdWxkIHN1Y2NlZWQn
KTsKLQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAgIGNv
bnN0IHsgc2VuZGVyIH0gPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKLQotICAgIGNvbnN0
IHBhcmFtID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKLSAgICB2YWxpZGF0ZVNlbmRlclJ0cFBh
cmFtZXRlcnMocGFyYW0pOwotCi0gICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5kZWdyYWRhdGlvblBy
ZWZlcmVuY2UsICdiYWxhbmNlZCcsCi0gICAgICAnRXhwZWN0IGluaXRpYWwgcGFyYW0uZGVncmFk
YXRpb25QcmVmZXJlbmNlIHRvIGJlIGJhbGFuY2VkJyk7Ci0KLSAgICBwYXJhbS5kZWdyYWRhdGlv
blByZWZlcmVuY2UgPSB1bmRlZmluZWQ7Ci0KLSAgICByZXR1cm4gcGMuc2V0UGFyYW1ldGVycyhw
YXJhbSkKLSAgICAudGhlbigoKSA9PiB7Ci0gICAgICBjb25zdCBwYXJhbSA9IHNlbmRlci5nZXRQ
YXJhbWV0ZXJzKCk7Ci0gICAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0pOwot
Ci0gICAgICBhc3NlcnRfZXF1YWxzKHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSwgdW5kZWZp
bmVkKTsKLSAgICB9KTsKLSAgfSwgJ3NldFBhcmFtZXRlcnMgd2l0aCBkZWdyYWRhdGlvblByZWZl
cmVuY2UgdW5zZXQgc2hvdWxkIHN1Y2NlZWQnKTsKLQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQ
YXJhbWV0ZXJzLWVuY29kaW5ncy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWVuY29kaW5ncy1l
eHBlY3RlZC50eHQKaW5kZXggYWZmMDk3YjlhZTA4ZjI0NjIwNGRjZTljYThkZDE5YWNjZTRlZWNh
OS4uMWYyOGQ5NzhiYTI1YTEzZjVhMWI2N2YwZmQ3MjU5N2EzYzcxYzEwYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1lbmNvZGluZ3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2Rp
bmdzLWV4cGVjdGVkLnR4dApAQCAtNywyMCArNywxMCBAQCBGQUlMIHNlbmRlci5zZXRQYXJhbWV0
ZXJzKCkgd2l0aCBlbmNvZGluZ3MgdW5zZXQgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvciBh
cwogRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5yaWQgZmllbGQg
c2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJvciBhc3NlcnRfZXF1YWxz
OiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2Jq
ZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCiBGQUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIGVuY29k
aW5nLnNjYWxlUmVzb2x1dGlvbkRvd25CeSBmaWVsZCBzZXQgdG8gbGVzcyB0aGFuIDEuMCBzaG91
bGQgcmVqZWN0IHdpdGggUmFuZ2VFcnJvciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFy
eS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRl
ZmluZWQiCiBGQUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIGVuY29kaW5nLnNjYWxlUmVzb2x1dGlv
bkRvd25CeSBmaWVsZCBzZXQgdG8gZ3JlYXRlciB0aGFuIDEuMCBzaG91bGQgc3VjY2VlZCBhc3Nl
cnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBl
Y3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCi1GQUlMIHNldFBhcmFtZXRlcnMoKSB3
aXRoIG1vZGlmaWVkIGVuY29kaW5nLmR0eCBzaG91bGQgc3VjY2VlZCB3aXRoIFJUQ1J0cFRyYW5z
Y2VpdmVySW5pdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBs
YWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCi1GQUlMIHNl
dFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5nLmR0eCBzaG91bGQgc3VjY2VlZCB3
aXRob3V0IFJUQ1J0cFRyYW5zY2VpdmVySW5pdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlv
bmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1
bmRlZmluZWQiCi1GQUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIHVuc2V0IGVuY29kaW5nLmR0eCBz
aG91bGQgc3VjY2VlZCB3aXRoIFJUQ1J0cFRyYW5zY2VpdmVySW5pdCBhc3NlcnRfZXF1YWxzOiBF
eHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0
IiBidXQgZ290ICJ1bmRlZmluZWQiCi1GQUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIHVuc2V0IGVu
Y29kaW5nLmR0eCBzaG91bGQgc3VjY2VlZCB3aXRob3V0IFJUQ1J0cFRyYW5zY2VpdmVySW5pdCBh
c3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBl
eHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCiBGQUlMIHNldFBhcmFtZXRlcnMo
KSB3aXRoIG1vZGlmaWVkIGVuY29kaW5nLmFjdGl2ZSBzaG91bGQgc3VjY2VlZCB3aXRoIFJUQ1J0
cFRyYW5zY2VpdmVySW5pdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRv
IGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCiBG
QUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5nLmFjdGl2ZSBzaG91bGQg
c3VjY2VlZCB3aXRob3V0IFJUQ1J0cFRyYW5zY2VpdmVySW5pdCBhc3NlcnRfZXF1YWxzOiBFeHBl
Y3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBi
dXQgZ290ICJ1bmRlZmluZWQiCi1GQUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVu
Y29kaW5nLnByaW9yaXR5IHNob3VsZCBzdWNjZWVkIHdpdGggUlRDUnRwVHJhbnNjZWl2ZXJJbml0
IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUgcGxhaW4gb2JqZWN0
IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgc2V0UGFyYW1ldGVy
cygpIHdpdGggbW9kaWZpZWQgZW5jb2RpbmcucHJpb3JpdHkgc2hvdWxkIHN1Y2NlZWQgd2l0aG91
dCBSVENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnku
cnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZp
bmVkIgotRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5uZXR3b3Jr
UHJpb3JpdHkgc2hvdWxkIHN1Y2NlZWQgd2l0aCBSVENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0
X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0
ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0
aCBtb2RpZmllZCBlbmNvZGluZy5uZXR3b3JrUHJpb3JpdHkgc2hvdWxkIHN1Y2NlZWQgd2l0aG91
dCBSVENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnku
cnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZp
bmVkIgotRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5wdGltZSBz
aG91bGQgc3VjY2VlZCB3aXRoIFJUQ1J0cFRyYW5zY2VpdmVySW5pdCBhc3NlcnRfZXF1YWxzOiBF
eHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0
IiBidXQgZ290ICJ1bmRlZmluZWQiCi1GQUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVk
IGVuY29kaW5nLnB0aW1lIHNob3VsZCBzdWNjZWVkIHdpdGhvdXQgUlRDUnRwVHJhbnNjZWl2ZXJJ
bml0IGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUgcGxhaW4gb2Jq
ZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKIEZBSUwgc2V0UGFyYW1l
dGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2RpbmcubWF4Qml0cmF0ZSBzaG91bGQgc3VjY2VlZCB3
aXRoIFJUQ1J0cFRyYW5zY2VpdmVySW5pdCBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFy
eS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRl
ZmluZWQiCiBGQUlMIHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5nLm1heEJp
dHJhdGUgc2hvdWxkIHN1Y2NlZWQgd2l0aG91dCBSVENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0
X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0
ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0
aCBtb2RpZmllZCBlbmNvZGluZy5tYXhGcmFtZXJhdGUgc2hvdWxkIHN1Y2NlZWQgd2l0aCBSVENS
dHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0
byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgot
RkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5tYXhGcmFtZXJhdGUg
c2hvdWxkIHN1Y2NlZWQgd2l0aG91dCBSVENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2VxdWFs
czogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9i
amVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2Rp
ZmllZCBlbmNvZGluZy5zY2FsZVJlc29sdXRpb25Eb3duQnkgc2hvdWxkIHN1Y2NlZWQgd2l0aCBS
VENSdHBUcmFuc2NlaXZlckluaXQgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRj
cCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVk
IgorRkFJTCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5zY2FsZVJlc29s
dXRpb25Eb3duQnkgc2hvdWxkIHN1Y2NlZWQgd2l0aG91dCBSVENSdHBUcmFuc2NlaXZlckluaXQg
YXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3Qg
ZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJh
bWV0ZXJzLWVuY29kaW5ncy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbAppbmRleCAw
ZDNkMDhhMWEyYjFkODE0ODkxNWY1MzhiNGQ1N2QzYTNlYTZlZWEyLi41MzliMjY5MjgwNjkzNDI1
NGM0ZWM0YjhkOGJiMTRlZjEyOTYyMDdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWVuY29kaW5n
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2RpbmdzLmh0bWwKQEAgLTQxLDE3ICs0MSwxMSBA
QAogICAgICAgICBzZXF1ZW5jZTxSVENSdHBIZWFkZXJFeHRlbnNpb25QYXJhbWV0ZXJzPiBoZWFk
ZXJFeHRlbnNpb25zOwogICAgICAgICBSVENSdGNwUGFyYW1ldGVycyAgICAgICAgICAgICAgICAg
ICAgICAgICBydGNwOwogICAgICAgICBzZXF1ZW5jZTxSVENSdHBDb2RlY1BhcmFtZXRlcnM+ICAg
ICAgICAgICBjb2RlY3M7Ci0gICAgICAgIFJUQ0RlZ3JhZGF0aW9uUHJlZmVyZW5jZSAgICAgICAg
ICAgICAgICAgIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZTsKICAgICAgIH07CiAKICAgICAgIGRpY3Rp
b25hcnkgUlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzIHsKLSAgICAgICAgUlRDRHR4U3RhdHVzICAg
ICAgICBkdHg7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICAgYWN0aXZlOwotICAgICAgICBS
VENQcmlvcml0eVR5cGUgICAgIHByaW9yaXR5OwotICAgICAgICBSVENQcmlvcml0eVR5cGUgICAg
IG5ldHdvcmtQcmlvcml0eTsKLSAgICAgICAgdW5zaWduZWQgbG9uZyAgICAgICBwdGltZTsKICAg
ICAgICAgdW5zaWduZWQgbG9uZyAgICAgICBtYXhCaXRyYXRlOwotICAgICAgICBkb3VibGUgICAg
ICAgICAgICAgIG1heEZyYW1lcmF0ZTsKIAogICAgICAgICBbcmVhZG9ubHldCiAgICAgICAgIERP
TVN0cmluZyAgICAgICAgICAgcmlkOwpAQCAtNTksMzAgKzUzLDEwIEBACiAgICAgICAgIGRvdWJs
ZSAgICAgICAgICAgICAgc2NhbGVSZXNvbHV0aW9uRG93bkJ5OwogICAgICAgfTsKIAotICAgICAg
ZW51bSBSVENEdHhTdGF0dXMgewotICAgICAgICAiZGlzYWJsZWQiLAotICAgICAgICAiZW5hYmxl
ZCIKLSAgICAgIH07Ci0KLSAgICAgIGVudW0gUlRDUHJpb3JpdHlUeXBlIHsKLSAgICAgICAgInZl
cnktbG93IiwKLSAgICAgICAgImxvdyIsCi0gICAgICAgICJtZWRpdW0iLAotICAgICAgICAiaGln
aCIKLSAgICAgIH07Ci0KICAgICAgIGdldFBhcmFtZXRlcnMKICAgICAgICAgLSBlbmNvZGluZ3Mg
aXMgc2V0IHRvIHRoZSB2YWx1ZSBvZiB0aGUgW1tzZW5kIGVuY29kaW5nc11dIGludGVybmFsIHNs
b3QuCiAgICAqLwogCi0gIC8vIEdldCB0aGUgZmlyc3QgZW5jb2RpbmcgaW4gcGFyYW0uZW5jb2Rp
bmdzLgotICAvLyBBc3NlcnRzIHRoYXQgcGFyYW0uZW5jb2RpbmdzIGhhcyBhdCBsZWFzdCBvbmUg
ZWxlbWVudC4KLSAgZnVuY3Rpb24gZ2V0Rmlyc3RFbmNvZGluZyhwYXJhbSkgewotICAgIGNvbnN0
IHsgZW5jb2RpbmdzIH0gPSBwYXJhbTsKLSAgICBhc3NlcnRfZXF1YWxzKGVuY29kaW5ncy5sZW5n
dGgsIDEpOwotICAgIHJldHVybiBlbmNvZGluZ3NbMF07Ci0gIH0KLQogICAvKgogICAgIDUuMS4g
IGFkZFRyYW5zY2VpdmVyCiAgICAgICA3LiBDcmVhdGUgYW4gUlRDUnRwU2VuZGVyIHdpdGggdHJh
Y2ssIHN0cmVhbXMgYW5kIHNlbmRFbmNvZGluZ3MgYW5kIGxldCBzZW5kZXIKQEAgLTE0MiwxMyAr
MTE2LDkgQEAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKLSAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywgewor
ICAgIGNvbnN0IHsgc2VuZGVyIH0gPSBwYy5hZGRUcmFuc2NlaXZlcigndmlkZW8nLCB7CiAgICAg
ICBzZW5kRW5jb2RpbmdzOiBbewotICAgICAgICBkdHg6ICdlbmFibGVkJywKICAgICAgICAgYWN0
aXZlOiBmYWxzZSwKLSAgICAgICAgcHJpb3JpdHk6ICdsb3cnLAotICAgICAgICBuZXR3b3JrUHJp
b3JpdHk6ICdsb3cnLAotICAgICAgICBwdGltZTogNSwKICAgICAgICAgbWF4Qml0cmF0ZTogOCwK
ICAgICAgICAgbWF4RnJhbWVyYXRlOiAyNSwKICAgICAgICAgcmlkOiAnZm9vJwpAQCAtMTYwLDE0
ICsxMzAsOSBAQAogICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJhbSk7CiAgICAg
Y29uc3QgZW5jb2RpbmcgPSBnZXRGaXJzdEVuY29kaW5nKHBhcmFtKTsKIAotICAgIGFzc2VydF9l
cXVhbHMoZW5jb2RpbmcuZHR4LCAnZW5hYmxlZCcpOwogICAgIGFzc2VydF9lcXVhbHMoZW5jb2Rp
bmcuYWN0aXZlLCBmYWxzZSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhlbmNvZGluZy5wcmlvcml0eSwg
J2xvdycpOwotICAgIGFzc2VydF9lcXVhbHMoZW5jb2RpbmcubmV0d29ya1ByaW9yaXR5LCAnbG93
Jyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhlbmNvZGluZy5wdGltZSwgNSk7CiAgICAgYXNzZXJ0X2Vx
dWFscyhlbmNvZGluZy5tYXhCaXRyYXRlLCA4KTsKLSAgICBhc3NlcnRfZXF1YWxzKGVuY29kaW5n
Lm1heEZyYW1lcmF0ZSwgMjUpOwotICAgIGFzc2VydF9lcXVhbHMoZW5jb2RpbmcucmlkLCAnZm9v
Jyk7CisgICAgYXNzZXJ0X25vdF9vd25fcHJvcGVydHkoZW5jb2RpbmcsICJyaWQiLCAicmlkIHNo
b3VsZCBiZSByZW1vdmVkIHdpdGggYSBzaW5nbGUgZW5jb2RpbmciKTsKIAogICB9LCBgc2VuZGVy
LmdldFBhcmFtZXRlcnMoKSBzaG91bGQgcmV0dXJuIHNlbmRFbmNvZGluZ3Mgc2V0IGJ5IGFkZFRy
YW5zY2VpdmVyKClgKTsKIApAQCAtMTk4LDcgKzE2Myw3IEBACiAgICAgZW5jb2RpbmdzLnB1c2go
e30pOwogICAgIGFzc2VydF9lcXVhbHMocGFyYW0uZW5jb2RpbmdzLmxlbmd0aCwgMik7CiAKLSAg
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAor
ICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3InLAogICAgICAgc2VuZGVyLnNldFBhcmFtZXRlcnMocGFyYW0pKTsKICAgfSwgYHNlbmRlci5z
ZXRQYXJhbWV0ZXJzKCkgd2l0aCBtaXNtYXRjaCBudW1iZXIgb2YgZW5jb2RpbmdzIHNob3VsZCBy
ZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIApAQCAtMjEzLDcgKzE3OCw3
IEBACiAKICAgICBwYXJhbS5lbmNvZGluZ3MgPSB1bmRlZmluZWQ7CiAKLSAgICByZXR1cm4gcHJv
bWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwKKyAgICByZXR1cm4gcHJvbWlzZV9yZWpl
Y3RzX2pzKHQsIFR5cGVFcnJvciwKICAgICAgIHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtKSk7
CiAgIH0sIGBzZW5kZXIuc2V0UGFyYW1ldGVycygpIHdpdGggZW5jb2RpbmdzIHVuc2V0IHNob3Vs
ZCByZWplY3Qgd2l0aCBUeXBlRXJyb3JgKTsKIApAQCAtMjMyLDcgKzE5Nyw3IEBACiAgICAgYXNz
ZXJ0X2VxdWFscyhlbmNvZGluZy5yaWQsICdmb28nKTsKIAogICAgIGVuY29kaW5nLnJpZCA9ICdi
YXInOwotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2RpZmljYXRpb25F
cnJvcicsCisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRNb2RpZmlj
YXRpb25FcnJvcicsCiAgICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkpOwogICB9LCBg
c2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2RpbmcucmlkIGZpZWxkIHNob3VsZCBy
ZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIApAQCAtMjUzLDE0ICsyMTgs
MTQgQEAKICAgICBjb25zdCBlbmNvZGluZyA9IGdldEZpcnN0RW5jb2RpbmcocGFyYW0pOwogCiAg
ICAgZW5jb2Rpbmcuc2NhbGVSZXNvbHV0aW9uRG93bkJ5ID0gMC41OwotICAgIHJldHVybiBwcm9t
aXNlX3JlamVjdHModCwgbmV3IFJhbmdlRXJyb3IoKSwKKyAgICByZXR1cm4gcHJvbWlzZV9yZWpl
Y3RzX2pzKHQsIFJhbmdlRXJyb3IsCiAgICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkp
OwogICB9LCBgc2V0UGFyYW1ldGVycygpIHdpdGggZW5jb2Rpbmcuc2NhbGVSZXNvbHV0aW9uRG93
bkJ5IGZpZWxkIHNldCB0byBsZXNzIHRoYW4gMS4wIHNob3VsZCByZWplY3Qgd2l0aCBSYW5nZUVy
cm9yYCk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKLSAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7Cisg
ICAgY29uc3QgeyBzZW5kZXIgfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOwogICAgIGF3
YWl0IGRvT2ZmZXJBbnN3ZXJFeGNoYW5nZSh0LCBwYyk7CiAKICAgICBjb25zdCBwYXJhbSA9IHNl
bmRlci5nZXRQYXJhbWV0ZXJzKCk7CkBAIC0yNzgsODAgKzI0MywxMyBAQAogICAgIH0pOwogICB9
LCBgc2V0UGFyYW1ldGVycygpIHdpdGggZW5jb2Rpbmcuc2NhbGVSZXNvbHV0aW9uRG93bkJ5IGZp
ZWxkIHNldCB0byBncmVhdGVyIHRoYW4gMS4wIHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgLy8gSGVs
cGVyIGZ1bmN0aW9uIHRvIHRlc3QgdGhhdCBtb2RpZnlpbmcgYW4gZW5jb2RpbmcgZmllbGQgc2hv
dWxkIHN1Y2NlZWQKLSAgZnVuY3Rpb24gdGVzdF9tb2RpZmllZF9lbmNvZGluZyhraW5kLCBmaWVs
ZCwgdmFsdWUxLCB2YWx1ZTIsIGRlc2MpIHsKLSAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
Ci0gICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAgICAgIGNvbnN0IHsgc2VuZGVyIH0gPSBwYy5h
ZGRUcmFuc2NlaXZlcihraW5kLCB7Ci0gICAgICAgIHNlbmRFbmNvZGluZ3M6IFt7Ci0gICAgICAg
ICAgW2ZpZWxkXTogdmFsdWUxCi0gICAgICAgIH1dCi0gICAgICB9KTsKLSAgICAgIGF3YWl0IGRv
T2ZmZXJBbnN3ZXJFeGNoYW5nZSh0LCBwYyk7Ci0KLSAgICAgIGNvbnN0IHBhcmFtMSA9IHNlbmRl
ci5nZXRQYXJhbWV0ZXJzKCk7Ci0gICAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFy
YW0xKTsKLSAgICAgIGNvbnN0IGVuY29kaW5nMSA9IGdldEZpcnN0RW5jb2RpbmcocGFyYW0xKTsK
LQotICAgICAgYXNzZXJ0X2VxdWFscyhlbmNvZGluZzFbZmllbGRdLCB2YWx1ZTEpOwotICAgICAg
ZW5jb2RpbmcxW2ZpZWxkXSA9IHZhbHVlMjsKLQotICAgICAgYXdhaXQgc2VuZGVyLnNldFBhcmFt
ZXRlcnMocGFyYW0xKTsKLSAgICAgIGNvbnN0IHBhcmFtMiA9IHNlbmRlci5nZXRQYXJhbWV0ZXJz
KCk7Ci0gICAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0yKTsKLSAgICAgIGNv
bnN0IGVuY29kaW5nMiA9IGdldEZpcnN0RW5jb2RpbmcocGFyYW0yKTsKLSAgICAgIGFzc2VydF9l
cXVhbHMoZW5jb2RpbmcyW2ZpZWxkXSwgdmFsdWUyKTsKLSAgICB9LCBkZXNjICsgJyB3aXRoIFJU
Q1J0cFRyYW5zY2VpdmVySW5pdCcpOwotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewot
ICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRk
VHJhbnNjZWl2ZXIoa2luZCk7Ci0gICAgICBhd2FpdCBkb09mZmVyQW5zd2VyRXhjaGFuZ2UodCwg
cGMpOwotCi0gICAgICBjb25zdCBpbml0UGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOwot
ICAgICAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKGluaXRQYXJhbSk7Ci0gICAgICBpbml0
UGFyYW0uZW5jb2RpbmdzWzBdW2ZpZWxkXSA9IHZhbHVlMTsKLSAgICAgIGF3YWl0IHNlbmRlci5z
ZXRQYXJhbWV0ZXJzKGluaXRQYXJhbSk7Ci0KLSAgICAgIGNvbnN0IHBhcmFtMSA9IHNlbmRlci5n
ZXRQYXJhbWV0ZXJzKCk7Ci0gICAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0x
KTsKLSAgICAgIGNvbnN0IGVuY29kaW5nMSA9IGdldEZpcnN0RW5jb2RpbmcocGFyYW0xKTsKLQot
ICAgICAgYXNzZXJ0X2VxdWFscyhlbmNvZGluZzFbZmllbGRdLCB2YWx1ZTEpOwotICAgICAgZW5j
b2RpbmcxW2ZpZWxkXSA9IHZhbHVlMjsKLQotICAgICAgYXdhaXQgc2VuZGVyLnNldFBhcmFtZXRl
cnMocGFyYW0xKTsKLSAgICAgIGNvbnN0IHBhcmFtMiA9IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7
Ci0gICAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0yKTsKLSAgICAgIGNvbnN0
IGVuY29kaW5nMiA9IGdldEZpcnN0RW5jb2RpbmcocGFyYW0yKTsKLSAgICAgIGFzc2VydF9lcXVh
bHMoZW5jb2RpbmcyW2ZpZWxkXSwgdmFsdWUyKTsKLSAgICB9LCBkZXNjICsgJyB3aXRob3V0IFJU
Q1J0cFRyYW5zY2VpdmVySW5pdCcpOwotICB9Ci0KLSAgdGVzdF9tb2RpZmllZF9lbmNvZGluZygn
YXVkaW8nLCAnZHR4JywgJ2VuYWJsZWQnLCAnZGlzYWJsZWQnLAotICAgICdzZXRQYXJhbWV0ZXJz
KCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5kdHggc2hvdWxkIHN1Y2NlZWQnKTsKLQotICB0ZXN0
X21vZGlmaWVkX2VuY29kaW5nKCdhdWRpbycsICdkdHgnLCAnZW5hYmxlZCcsIHVuZGVmaW5lZCwK
LSAgICAnc2V0UGFyYW1ldGVycygpIHdpdGggdW5zZXQgZW5jb2RpbmcuZHR4IHNob3VsZCBzdWNj
ZWVkJyk7Ci0KICAgdGVzdF9tb2RpZmllZF9lbmNvZGluZygnYXVkaW8nLCAnYWN0aXZlJywgZmFs
c2UsIHRydWUsCiAgICAgJ3NldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5nLmFj
dGl2ZSBzaG91bGQgc3VjY2VlZCcpOwogCi0gIHRlc3RfbW9kaWZpZWRfZW5jb2RpbmcoJ2F1ZGlv
JywgJ3ByaW9yaXR5JywgJ3ZlcnktbG93JywgJ2hpZ2gnLAotICAgICdzZXRQYXJhbWV0ZXJzKCkg
d2l0aCBtb2RpZmllZCBlbmNvZGluZy5wcmlvcml0eSBzaG91bGQgc3VjY2VlZCcpOwotCi0gIHRl
c3RfbW9kaWZpZWRfZW5jb2RpbmcoJ2F1ZGlvJywgJ25ldHdvcmtQcmlvcml0eScsICd2ZXJ5LWxv
dycsICdoaWdoJywKLSAgICAnc2V0UGFyYW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2Rpbmcu
bmV0d29ya1ByaW9yaXR5IHNob3VsZCBzdWNjZWVkJyk7Ci0KLSAgdGVzdF9tb2RpZmllZF9lbmNv
ZGluZygnYXVkaW8nLCAncHRpbWUnLCAyLCA0LAotICAgICdzZXRQYXJhbWV0ZXJzKCkgd2l0aCBt
b2RpZmllZCBlbmNvZGluZy5wdGltZSBzaG91bGQgc3VjY2VlZCcpOwotCiAgIHRlc3RfbW9kaWZp
ZWRfZW5jb2RpbmcoJ2F1ZGlvJywgJ21heEJpdHJhdGUnLCAxMDAwMCwgMjAwMDAsCiAgICAgJ3Nl
dFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5nLm1heEJpdHJhdGUgc2hvdWxkIHN1
Y2NlZWQnKTsKIAotICB0ZXN0X21vZGlmaWVkX2VuY29kaW5nKCd2aWRlbycsICdtYXhGcmFtZXJh
dGUnLCAyNCwgMTYsCi0gICAgJ3NldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5n
Lm1heEZyYW1lcmF0ZSBzaG91bGQgc3VjY2VlZCcpOworICB0ZXN0X21vZGlmaWVkX2VuY29kaW5n
KCd2aWRlbycsICdzY2FsZVJlc29sdXRpb25Eb3duQnknLCAyLCA0LAorICAgICdzZXRQYXJhbWV0
ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5zY2FsZVJlc29sdXRpb25Eb3duQnkgc2hvdWxk
IHN1Y2NlZWQnKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlYWRlckV4
dGVuc2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVhZGVyRXh0ZW5zaW9ucy5odG1sCmluZGV4IDVj
ZWMwNTllYjdmY2IwOGM5NGM5ZWRmNDU5YzE5MTYxNDAwNDA3MTguLjdkZTJiNzVmNGVlODViMzM4
ZDZiMzZmZjdjMTJjNWIxN2JiNjE3NzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVhZGVyRXh0
ZW5zaW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVhZGVyRXh0ZW5zaW9ucy5odG1sCkBAIC0y
Nyw3ICsyNyw2IEBACiAgICAgICAgIHNlcXVlbmNlPFJUQ1J0cEhlYWRlckV4dGVuc2lvblBhcmFt
ZXRlcnM+IGhlYWRlckV4dGVuc2lvbnM7CiAgICAgICAgIFJUQ1J0Y3BQYXJhbWV0ZXJzICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ0Y3A7CiAgICAgICAgIHNlcXVlbmNlPFJUQ1J0cENvZGVjUGFy
YW1ldGVycz4gICAgICAgICAgIGNvZGVjczsKLSAgICAgICAgUlRDRGVncmFkYXRpb25QcmVmZXJl
bmNlICAgICAgICAgICAgICAgICAgZGVncmFkYXRpb25QcmVmZXJlbmNlOwogICAgICAgfTsKIAog
ICAgICAgZGljdGlvbmFyeSBSVENSdHBIZWFkZXJFeHRlbnNpb25QYXJhbWV0ZXJzIHsKQEAgLTY4
LDcgKzY3LDcgQEAKICAgICAgIGVuY3J5cHRlZDogZmFsc2UKICAgICB9XTsKIAotICAgIHJldHVy
biBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCisgICAgcmV0
dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCiAg
ICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkpOwogICB9LCBgc2V0UGFyYW1ldGVycygp
IHdpdGggbW9kaWZpZWQgaGVhZGVyRXh0ZW5zaW9ucyBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UnRwUGFyYW1ldGVycy1oZWxwZXIuanMKaW5kZXggZDcwNjk0OTMwMDg2NTkwYWIzNjE2YzFjZGUw
ZmVjNDE5YzFiNjNkYS4uMTdlY2ZiYWY5OWU4ZmYxMzMzNzNmMTQ4N2EyODJkYmFhYjc1NjJmNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1oZWxwZXIu
anMKQEAgLTQ2LDkgKzQ2LDYgQEAgYXN5bmMgZnVuY3Rpb24gZG9PZmZlckFuc3dlckV4Y2hhbmdl
KHQsIGNhbGxlcikgewogCiAgICAgICAtIHJ0Y3AuY25hbWUgaXMgc2V0IHRvIHRoZSBDTkFNRSBv
ZiB0aGUgYXNzb2NpYXRlZCBSVENQZWVyQ29ubmVjdGlvbi4gcnRjcC5yZWR1Y2VkU2l6ZQogICAg
ICAgICBpcyBzZXQgdG8gdHJ1ZSBpZiByZWR1Y2VkLXNpemUgUlRDUCBoYXMgYmVlbiBuZWdvdGlh
dGVkIGZvciBzZW5kaW5nLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgotCi0gICAgICAtIGRlZ3JhZGF0
aW9uUHJlZmVyZW5jZSBpcyBzZXQgdG8gdGhlIGxhc3QgdmFsdWUgcGFzc2VkIGludG8gc2V0UGFy
YW1ldGVycywgb3IgdGhlCi0gICAgICAgIGRlZmF1bHQgdmFsdWUgb2YgImJhbGFuY2VkIiBpZiBz
ZXRQYXJhbWV0ZXJzIGhhc24ndCBiZWVuIGNhbGxlZC4KICAqLwogZnVuY3Rpb24gdmFsaWRhdGVT
ZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAgIHZhbGlkYXRlUnRwUGFyYW1ldGVycyhwYXJh
bSk7CkBAIC04MCw3ICs3Nyw3IEBAIGZ1bmN0aW9uIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVy
cyhwYXJhbSkgewogICAgICAgLSBydGNwLnJlZHVjZWRTaXplIGlzIHNldCB0byB0cnVlIGlmIHRo
ZSByZWNlaXZlciBpcyBjdXJyZW50bHkgcHJlcGFyZWQgdG8gcmVjZWl2ZQogICAgICAgICByZWR1
Y2VkLXNpemUgUlRDUCBwYWNrZXRzLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLiBydGNwLmNuYW1lIGlz
IGxlZnQgdW5kZWZpbmVkLgogCi0gICAgICAtIHRyYW5zYWN0aW9uSWQgYW5kIGRlZ3JhZGF0aW9u
UHJlZmVyZW5jZSBhcmUgbGVmdCB1bmRlZmluZWQuCisgICAgICAtIHRyYW5zYWN0aW9uSWQgaXMg
bGVmdCB1bmRlZmluZWQuCiAgKi8KIGZ1bmN0aW9uIHZhbGlkYXRlUmVjZWl2ZXJSdHBQYXJhbWV0
ZXJzKHBhcmFtKSB7CiAgIHZhbGlkYXRlUnRwUGFyYW1ldGVycyhwYXJhbSk7CkBAIC05Myw5ICs5
MCw2IEBAIGZ1bmN0aW9uIHZhbGlkYXRlUmVjZWl2ZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAK
ICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5ydGNwLmNuYW1lLCB1bmRlZmluZWQsCiAgICAgJ0V4cGVj
dCByZWNlaXZlciBwYXJhbS5ydGNwLmNuYW1lIHRvIGJlIHVuc2V0Jyk7Ci0KLSAgYXNzZXJ0X2Vx
dWFscyhwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVuY2UsIHVuZGVmaW5lZCwKLSAgICAnRXhwZWN0
IHJlY2VpdmVyIHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSB0byBiZSB1bnNldCcpOwogfQog
CiAvKgpAQCAtMTA1LDcgKzk5LDYgQEAgZnVuY3Rpb24gdmFsaWRhdGVSZWNlaXZlclJ0cFBhcmFt
ZXRlcnMocGFyYW0pIHsKICAgICBzZXF1ZW5jZTxSVENSdHBIZWFkZXJFeHRlbnNpb25QYXJhbWV0
ZXJzPiBoZWFkZXJFeHRlbnNpb25zOwogICAgIFJUQ1J0Y3BQYXJhbWV0ZXJzICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ0Y3A7CiAgICAgc2VxdWVuY2U8UlRDUnRwQ29kZWNQYXJhbWV0ZXJzPiAg
ICAgICAgICAgY29kZWNzOwotICAgIFJUQ0RlZ3JhZGF0aW9uUHJlZmVyZW5jZSAgICAgICAgICAg
ICAgICAgIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZTsKICAgfTsKIAogICBlbnVtIFJUQ0RlZ3JhZGF0
aW9uUHJlZmVyZW5jZSB7CkBAIC0xMzQsOSArMTI3LDYgQEAgZnVuY3Rpb24gdmFsaWRhdGVSdHBQ
YXJhbWV0ZXJzKHBhcmFtKSB7CiAgIGZvcihjb25zdCBjb2RlYyBvZiBwYXJhbS5jb2RlY3MpIHsK
ICAgICB2YWxpZGF0ZUNvZGVjUGFyYW1ldGVycyhjb2RlYyk7CiAgIH0KLQotICBhc3NlcnRfb3B0
aW9uYWxfZW51bV9maWVsZChwYXJhbSwgJ2RlZ3JhZGF0aW9uUHJlZmVyZW5jZScsCi0gICAgWydt
YWludGFpbi1mcmFtZXJhdGUnLCAnbWFpbnRhaW4tcmVzb2x1dGlvbicsICdiYWxhbmNlZCddKTsK
IH0KIAogLyoKQEAgLTI0MiwzICsyMzIsNjkgQEAgZnVuY3Rpb24gdmFsaWRhdGVDb2RlY1BhcmFt
ZXRlcnMoY29kZWMpIHsKICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChjb2Rl
YywgJ2NoYW5uZWxzJyk7CiAgIGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQoY29kZWMsICdz
ZHBGbXRwTGluZScpOwogfQorCisvLyBHZXQgdGhlIGZpcnN0IGVuY29kaW5nIGluIHBhcmFtLmVu
Y29kaW5ncy4KKy8vIEFzc2VydHMgdGhhdCBwYXJhbS5lbmNvZGluZ3MgaGFzIGF0IGxlYXN0IG9u
ZSBlbGVtZW50LgorZnVuY3Rpb24gZ2V0Rmlyc3RFbmNvZGluZyhwYXJhbSkgeworICBjb25zdCB7
CisgICAgZW5jb2RpbmdzCisgIH0gPSBwYXJhbTsKKyAgYXNzZXJ0X2VxdWFscyhlbmNvZGluZ3Mu
bGVuZ3RoLCAxKTsKKyAgcmV0dXJuIGVuY29kaW5nc1swXTsKK30KKworLy8gSGVscGVyIGZ1bmN0
aW9uIHRvIHRlc3QgdGhhdCBtb2RpZnlpbmcgYW4gZW5jb2RpbmcgZmllbGQgc2hvdWxkIHN1Y2Nl
ZWQKK2Z1bmN0aW9uIHRlc3RfbW9kaWZpZWRfZW5jb2Rpbmcoa2luZCwgZmllbGQsIHZhbHVlMSwg
dmFsdWUyLCBkZXNjKSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisgICAgY29uc3QgeworICAgICAgc2VuZGVyCisgICAgfSA9IHBjLmFkZFRyYW5z
Y2VpdmVyKGtpbmQsIHsKKyAgICAgIHNlbmRFbmNvZGluZ3M6IFt7CisgICAgICAgIFtmaWVsZF06
IHZhbHVlMQorICAgICAgfV0KKyAgICB9KTsKKyAgICBhd2FpdCBkb09mZmVyQW5zd2VyRXhjaGFu
Z2UodCwgcGMpOworCisgICAgY29uc3QgcGFyYW0xID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsK
KyAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRlcnMocGFyYW0xKTsKKyAgICBjb25zdCBlbmNv
ZGluZzEgPSBnZXRGaXJzdEVuY29kaW5nKHBhcmFtMSk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGVu
Y29kaW5nMVtmaWVsZF0sIHZhbHVlMSk7CisgICAgZW5jb2RpbmcxW2ZpZWxkXSA9IHZhbHVlMjsK
KworICAgIGF3YWl0IHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtMSk7CisgICAgY29uc3QgcGFy
YW0yID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFt
ZXRlcnMocGFyYW0yKTsKKyAgICBjb25zdCBlbmNvZGluZzIgPSBnZXRGaXJzdEVuY29kaW5nKHBh
cmFtMik7CisgICAgYXNzZXJ0X2VxdWFscyhlbmNvZGluZzJbZmllbGRdLCB2YWx1ZTIpOworICB9
LCBkZXNjICsgJyB3aXRoIFJUQ1J0cFRyYW5zY2VpdmVySW5pdCcpOworCisgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgICAgY29uc3QgeworICAgICAg
c2VuZGVyCisgICAgfSA9IHBjLmFkZFRyYW5zY2VpdmVyKGtpbmQpOworICAgIGF3YWl0IGRvT2Zm
ZXJBbnN3ZXJFeGNoYW5nZSh0LCBwYyk7CisKKyAgICBjb25zdCBpbml0UGFyYW0gPSBzZW5kZXIu
Z2V0UGFyYW1ldGVycygpOworICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhpbml0UGFy
YW0pOworICAgIGluaXRQYXJhbS5lbmNvZGluZ3NbMF1bZmllbGRdID0gdmFsdWUxOworICAgIGF3
YWl0IHNlbmRlci5zZXRQYXJhbWV0ZXJzKGluaXRQYXJhbSk7CisKKyAgICBjb25zdCBwYXJhbTEg
PSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOworICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVy
cyhwYXJhbTEpOworICAgIGNvbnN0IGVuY29kaW5nMSA9IGdldEZpcnN0RW5jb2RpbmcocGFyYW0x
KTsKKworICAgIGFzc2VydF9lcXVhbHMoZW5jb2RpbmcxW2ZpZWxkXSwgdmFsdWUxKTsKKyAgICBl
bmNvZGluZzFbZmllbGRdID0gdmFsdWUyOworCisgICAgYXdhaXQgc2VuZGVyLnNldFBhcmFtZXRl
cnMocGFyYW0xKTsKKyAgICBjb25zdCBwYXJhbTIgPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOwor
ICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJhbTIpOworICAgIGNvbnN0IGVuY29k
aW5nMiA9IGdldEZpcnN0RW5jb2RpbmcocGFyYW0yKTsKKyAgICBhc3NlcnRfZXF1YWxzKGVuY29k
aW5nMltmaWVsZF0sIHZhbHVlMik7CisgIH0sIGRlc2MgKyAnIHdpdGhvdXQgUlRDUnRwVHJhbnNj
ZWl2ZXJJbml0Jyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLXJ0Y3AuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFt
ZXRlcnMtcnRjcC5odG1sCmluZGV4IGM0MGVkZjI1Njk4ODQyY2I4ZTdhMDI2YjE1NjNkZDVjNjAy
ZjY2ODkuLjc5NjUzMDQ1MjAwZTY2N2Y0MDVhNzQ5YWU2ZjUxYTA4M2RjMWY5OWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFBhcmFtZXRlcnMtcnRjcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtcnRjcC5odG1sCkBAIC0y
Nyw3ICsyNyw2IEBACiAgICAgICAgIHNlcXVlbmNlPFJUQ1J0cEhlYWRlckV4dGVuc2lvblBhcmFt
ZXRlcnM+IGhlYWRlckV4dGVuc2lvbnM7CiAgICAgICAgIFJUQ1J0Y3BQYXJhbWV0ZXJzICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ0Y3A7CiAgICAgICAgIHNlcXVlbmNlPFJUQ1J0cENvZGVjUGFy
YW1ldGVycz4gICAgICAgICAgIGNvZGVjczsKLSAgICAgICAgUlRDRGVncmFkYXRpb25QcmVmZXJl
bmNlICAgICAgICAgICAgICAgICAgZGVncmFkYXRpb25QcmVmZXJlbmNlOwogICAgICAgfTsKIAog
ICAgICAgZGljdGlvbmFyeSBSVENSdGNwUGFyYW1ldGVycyB7CkBAIC03NCw3ICs3Myw3IEBACiAg
ICAgICBydGNwLmNuYW1lID0gYCR7cnRjcC5jbmFtZX0tbW9kaWZpZWRgOwogICAgIH0KIAotICAg
IHJldHVybiBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsCisg
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRNb2RpZmljYXRpb25FcnJv
cicsCiAgICAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkpOwogICB9LCBgc2V0UGFyYW1l
dGVycygpIHdpdGggbW9kaWZpZWQgcnRjcC5jbmFtZSBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKQEAgLTk4LDcgKzk3LDcgQEAKICAgICAgIHJ0Y3AucmVk
dWNlZFNpemUgPSAhcnRjcC5yZWR1Y2VkU2l6ZTsKICAgICB9CiAKLSAgICByZXR1cm4gcHJvbWlz
ZV9yZWplY3RzKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAorICAgIHJldHVybiBwcm9t
aXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLAogICAgICAgc2Vu
ZGVyLnNldFBhcmFtZXRlcnMocGFyYW0pKTsKICAgfSwgYHNldFBhcmFtZXRlcnMoKSB3aXRoIG1v
ZGlmaWVkIHJ0Y3AucmVkdWNlZFNpemUgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmlj
YXRpb25FcnJvcmApOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLXRyYW5zYWN0aW9uSWQuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFBhcmFtZXRlcnMtdHJhbnNhY3Rpb25JZC5odG1sCmluZGV4IDQ3MmIwNDM5YjVjYzc3ZDU1
M2I0ODAwMGY2YTdkZTNkZGE5MGI3ZDQuLmE3Yjc4NjU1MzJiODc3ZTE3YmYxN2VkYWIwYWI0NGVj
M2NhMjg4ZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtdHJhbnNhY3Rpb25JZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFBhcmFtZXRlcnMtdHJhbnNhY3Rpb25JZC5odG1sCkBAIC00OCw3ICs0OCw2IEBACiAgICAgICAg
IHNlcXVlbmNlPFJUQ1J0cEhlYWRlckV4dGVuc2lvblBhcmFtZXRlcnM+IGhlYWRlckV4dGVuc2lv
bnM7CiAgICAgICAgIFJUQ1J0Y3BQYXJhbWV0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgIHJ0
Y3A7CiAgICAgICAgIHNlcXVlbmNlPFJUQ1J0cENvZGVjUGFyYW1ldGVycz4gICAgICAgICAgIGNv
ZGVjczsKLSAgICAgICAgUlRDRGVncmFkYXRpb25QcmVmZXJlbmNlICAgICAgICAgICAgICAgICAg
ZGVncmFkYXRpb25QcmVmZXJlbmNlOwogICAgICAgfTsKIAogICAgICAgZ2V0UGFyYW1ldGVycwpA
QCAtNjMsNiArNjIsNyBAQAogICAgKi8KICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2
ZXIoJ2F1ZGlvJyk7CiAgICAgYXdhaXQgZG9PZmZlckFuc3dlckV4Y2hhbmdlKHQsIHBjKTsKIApA
QCAtNzMsNyArNzMsNiBAQAogICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJhbTIp
OwogCiAgICAgYXNzZXJ0X25vdF9lcXVhbHMocGFyYW0xLnRyYW5zYWN0aW9uSWQsIHBhcmFtMi50
cmFuc2FjdGlvbklkKTsKLQogICB9LCBgc2VuZGVyLmdldFBhcmFtZXRlcnMoKSBzaG91bGQgcmV0
dXJuIGRpZmZlcmVudCB0cmFuc2FjdGlvbiBJRHMgZm9yIGVhY2ggY2FsbGApOwogCiAgIC8qCkBA
IC05Nyw3ICs5Niw3IEBACiAgICAgY29uc3QgeyB0cmFuc2FjdGlvbklkIH0gPSBwYXJhbTsKICAg
ICBwYXJhbS50cmFuc2FjdGlvbklkID0gYCR7dHJhbnNhY3Rpb25JZH0tbW9kaWZpZWRgOwogCi0g
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywK
KyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yJywKICAgICAgIHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtKSk7CiAgIH0sIGBzZW5kZXIu
c2V0UGFyYW1ldGVycygpIHdpdGggdHJhbnNhY3Rpb24gSUQgZGlmZmVyZW50IGZyb20gbGFzdCBn
ZXRQYXJhbWV0ZXJzKCkgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJv
cmApOwogCkBAIC0xMTIsNyArMTExLDcgQEAKIAogICAgIHBhcmFtLnRyYW5zYWN0aW9uSWQgPSB1
bmRlZmluZWQ7CiAKLSAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3Io
KSwKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwKICAgICAgIHNl
bmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtKSk7CiAgIH0sIGBzZW5kZXIuc2V0UGFyYW1ldGVycygp
IHdpdGggdHJhbnNhY3Rpb24gSUQgdW5zZXQgc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcmAp
OwogCkBAIC0xMjcsNyArMTI2LDcgQEAKIAogICAgIHJldHVybiBzZW5kZXIuc2V0UGFyYW1ldGVy
cyhwYXJhbSkKICAgICAudGhlbigoKSA9PgotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdJbnZh
bGlkU3RhdGVFcnJvcicsCisgICAgICBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkU3Rh
dGVFcnJvcicsCiAgICAgICAgIHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtKSkpOwogICB9LCBg
c2V0UGFyYW1ldGVycygpIHR3aWNlIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycyBzaG91bGQgcmVq
ZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3JgKTsKIApAQCAtMTQ1LDcgKzE0NCw3IEBACiAKICAg
ICBhc3NlcnRfbm90X2VxdWFscyhwYXJhbTEudHJhbnNhY3Rpb25JZCwgcGFyYW0yLnRyYW5zYWN0
aW9uSWQpOwogCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZE1vZGlmaWNh
dGlvbkVycm9yJywKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yJywKICAgICAgIHNlbmRlci5zZXRQYXJhbWV0ZXJzKHBhcmFtMSkpOwog
ICB9LCBgc2V0UGFyYW1ldGVycygpIHdpdGggcGFyYW1ldGVycyBvbGRlciB0aGFuIGxhc3QgZ2V0
UGFyYW1ldGVycygpIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Jg
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0Q29udHJpYnV0aW5nU291cmNlcy5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwUmVjZWl2ZXItZ2V0Q29udHJpYnV0aW5nU291cmNlcy5odHRwcy5odG1sCmluZGV4IGFh
NTlmMWI5MTBhY2ExNGIyMTAxYjA2MzY1NGExN2QxNjAyYmEyNmIuLjcyNDVkNDc3Y2M4OTk0MDk4
ZTFkMGFmMmE4YTVkZGJmMmY1NzYyMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldENvbnRyaWJ1
dGluZ1NvdXJjZXMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRDb250cmlidXRpbmdTb3Vy
Y2VzLmh0dHBzLmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAgYXN5bmMgZnVuY3Rpb24gY29ubmVjdEFu
ZEV4cGVjdE5vQ3NyY3ModCwga2luZCkgewogICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CiAKLSAgY29uc3Qg
c3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe1traW5k
XTp0cnVlfSk7CisgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHtba2luZF06
dHJ1ZX0pOwogICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICB0LmFkZF9j
bGVhbnVwKCgpID0+IHRyYWNrLnN0b3AoKSk7CiAgIHBjMS5hZGRUcmFjayh0cmFjaywgc3RyZWFt
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdl
dFBhcmFtZXRlcnMuaHRtbAppbmRleCA3ZjhhYzY3M2E2MGM3MzY4MTEyMmRmNTI0M2Y2MDU0Yjgy
ZjMxZmZmLi40YmUwZTNiOTVlYzQ1YmQ5NjkzYTRkYTM4YjE0NmM1OGIzNzgxMGY4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0UGFyYW1l
dGVycy5odG1sCkBAIC0zMCw5ICszMCw3IEBACiAKICAgICAgICAgLSBydGNwLnJlZHVjZWRTaXpl
IGlzIHNldCB0byB0cnVlIGlmIHRoZSByZWNlaXZlciBpcyBjdXJyZW50bHkgcHJlcGFyZWQgdG8g
cmVjZWl2ZQogICAgICAgICAgIHJlZHVjZWQtc2l6ZSBSVENQIHBhY2tldHMsIGFuZCBmYWxzZSBv
dGhlcndpc2UuIHJ0Y3AuY25hbWUgaXMgbGVmdCB1bmRlZmluZWQuCi0KLSAgICAgICAgLSB0cmFu
c2FjdGlvbklkIGFuZCBkZWdyYWRhdGlvblByZWZlcmVuY2UgYXJlIGxlZnQgdW5kZWZpbmVkLgot
ICAgKi8KKyAgKi8KICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFN0YXRzLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZl
ci1nZXRTdGF0cy5odHRwcy5odG1sCmluZGV4IDdjZDU5ODM5MzcwOGI1MDFlMGIzZGJkNDlkMzFl
ZGE4MjMwZGFlODguLjIwNDQ4ZDhhNmMxMGIyMDE2OGM0ODkwYWFkMmIzNzk3NTIxOWI2ZGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1J0cFJlY2VpdmVyLWdldFN0YXRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0
U3RhdHMuaHR0cHMuaHRtbApAQCAtMTQsNyArMTQsNyBAQAogICAvLyBodHRwczovL3czYy5naXRo
dWIuaW8vd2VicnRjLXN0YXRzL2FyY2hpdmVzLzIwMTcwNjE0L3dlYnJ0Yy1zdGF0cy5odG1sCiAK
ICAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQ
ZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6Ci0gIC8vICAgZG9TaWduYWxpbmdIYW5kc2hha2UKKyAg
Ly8gICBleGNoYW5nZU9mZmVyQW5zd2VyCiAKICAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVu
Y3Rpb24gaXMgY2FsbGVkIGZyb20gUlRDU3RhdHMtaGVscGVyLmpzCiAgIC8vICAgdmFsaWRhdGVT
dGF0c1JlcG9ydApAQCAtNTcsNyArNTcsNyBAQAogCiAgICAgY29uc3QgeyByZWNlaXZlciB9ID0g
Y2FsbGVyLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogCi0gICAgYXdhaXQgZG9TaWduYWxpbmdI
YW5kc2hha2UoY2FsbGVyLCBjYWxsZWUpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIo
Y2FsbGVyLCBjYWxsZWUpOwogICAgIGNvbnN0IHN0YXRzUmVwb3J0ID0gYXdhaXQgcmVjZWl2ZXIu
Z2V0U3RhdHMoKTsKICAgICB2YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRzUmVwb3J0KTsKICAgICBh
c3NlcnRfc3RhdHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0c1JlcG9ydCwgWydpbmJvdW5kLXJ0cCdd
KTsKQEAgLTczLDcgKzczLDcgQEAKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNr
cygpOwogICAgIGNhbGxlci5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKIAotICAgIGF3YWl0IGRv
U2lnbmFsaW5nSGFuZHNoYWtlKGNhbGxlciwgY2FsbGVlKTsKKyAgICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKICAgICBjb25zdCByZWNlaXZlciA9IGNhbGxlZS5n
ZXRSZWNlaXZlcnMoKVswXTsKICAgICBjb25zdCBzdGF0c1JlcG9ydCA9IGF3YWl0IHJlY2VpdmVy
LmdldFN0YXRzKCk7CiAgICAgdmFsaWRhdGVTdGF0c1JlcG9ydChzdGF0c1JlcG9ydCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFJlY2VpdmVyLWdldFN5bmNocm9uaXphdGlvblNvdXJjZXMuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGM5YjNmZGNlMzNkYjU5NGQ1MDZkMjNhM2Q3Yzk1MmYyNDg0ZDNmYWMuLjM3ZWE4
YzE1MjRlNmZmMWFlZmVjM2M0YmU5NGQwOTEyYzY1OGI5MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVy
LWdldFN5bmNocm9uaXphdGlvblNvdXJjZXMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2Vp
dmVyLWdldFN5bmNocm9uaXphdGlvblNvdXJjZXMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEx
ICsxLDEzIEBACiAKIFBBU1MgW2F1ZGlvXSBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCkgZXZl
bnR1YWxseSByZXR1cm5zIGEgbm9uLWVtcHR5IGxpc3QgCiBQQVNTIFthdWRpb10gUlRDUnRwU3lu
Y2hyb25pemF0aW9uU291cmNlLnRpbWVzdGFtcCBpcyBhIG51bWJlciAKK0ZBSUwgW2F1ZGlvXSBS
VENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UucnRwVGltZXN0YW1wIGlzIGEgbnVtYmVyIFswLCAy
XjMyLTFdIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5l
ZCIKIFBBU1MgW2F1ZGlvXSBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCkgZG9lcyBub3QgY29u
dGFpbiBTU1JDcyBvbGRlciB0aGFuIDEwIHNlY29uZHMgCiBGQUlMIFthdWRpb10gUlRDUnRwU3lu
Y2hyb25pemF0aW9uU291cmNlLnRpbWVzdGFtcCBpcyBjb21wYXJhYmxlIHRvIHBlcmZvcm1hbmNl
LnRpbWVPcmlnaW4gKyBwZXJmb3JtYW5jZS5ub3coKSBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKIFBBU1MgW2F1ZGlvXSBSVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2Uuc291
cmNlIGlzIGEgbnVtYmVyIAogUEFTUyBbdmlkZW9dIGdldFN5bmNocm9uaXphdGlvblNvdXJjZXMo
KSBldmVudHVhbGx5IHJldHVybnMgYSBub24tZW1wdHkgbGlzdCAKIFBBU1MgW3ZpZGVvXSBSVENS
dHBTeW5jaHJvbml6YXRpb25Tb3VyY2UudGltZXN0YW1wIGlzIGEgbnVtYmVyIAorRkFJTCBbdmlk
ZW9dIFJUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS5ydHBUaW1lc3RhbXAgaXMgYSBudW1iZXIg
WzAsIDJeMzItMV0gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm51bWJlciIgYnV0IGdvdCAidW5k
ZWZpbmVkIgogUEFTUyBbdmlkZW9dIGdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKSBkb2VzIG5v
dCBjb250YWluIFNTUkNzIG9sZGVyIHRoYW4gMTAgc2Vjb25kcyAKIEZBSUwgW3ZpZGVvXSBSVENS
dHBTeW5jaHJvbml6YXRpb25Tb3VyY2UudGltZXN0YW1wIGlzIGNvbXBhcmFibGUgdG8gcGVyZm9y
bWFuY2UudGltZU9yaWdpbiArIHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBbdmlkZW9dIFJUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJj
ZS5zb3VyY2UgaXMgYSBudW1iZXIgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6
YXRpb25Tb3VyY2VzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3Vy
Y2VzLmh0dHBzLmh0bWwKaW5kZXggODJjZTNiZDg0NjdiNmEyOWU0YjQwYTEwNTE1MWI1MDMxNGI1
YmY0Ni4uODQzNmE0NGViY2QyMjdmYTkzNGNlYmE1NDg4OTE4YjEwZDkyYWNkMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UnRwUmVjZWl2ZXItZ2V0U3luY2hyb25pemF0aW9uU291cmNlcy5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJl
Y2VpdmVyLWdldFN5bmNocm9uaXphdGlvblNvdXJjZXMuaHR0cHMuaHRtbApAQCAtMTUsNyArMTUs
NyBAQCBhc3luYyBmdW5jdGlvbiBpbml0aWF0ZVNpbmdsZVRyYWNrQ2FsbEFuZFJldHVyblJlY2Vp
dmVyKHQsIGtpbmQpIHsKICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwogCi0gIGNvbnN0IHN0cmVhbSA9IGF3
YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHtba2luZF06dHJ1ZX0pOwor
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7W2tpbmRdOnRydWV9KTsKICAg
Y29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKICAgdC5hZGRfY2xlYW51cCgoKSA9
PiB0cmFjay5zdG9wKCkpOwogICBwYzEuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7CkBAIC00MSw2
ICs0MSwxNSBAQCBmb3IgKGNvbnN0IGtpbmQgb2YgWydhdWRpbycsICd2aWRlbyddKSB7CiAgICAg
YXNzZXJ0X3RydWUoc3NyYy50aW1lc3RhbXAgPj0gc3RhcnRUaW1lKTsKICAgfSwgJ1snICsga2lu
ZCArICddIFJUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS50aW1lc3RhbXAgaXMgYSBudW1iZXIn
KTsKIAorICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcmVjZWl2ZXIgPSBh
d2FpdCBpbml0aWF0ZVNpbmdsZVRyYWNrQ2FsbEFuZFJldHVyblJlY2VpdmVyKHQsIGtpbmQpOwor
ICAgIGNvbnN0IFtzc3JjXSA9IGF3YWl0IGxpc3RlbkZvclNTUkNzKHQsIHJlY2VpdmVyKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBzc3JjLnJ0cFRpbWVzdGFtcCwgJ251bWJlcicpOworICAg
IGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoc3NyYy5ydHBUaW1lc3RhbXAsIDApOworICAgIGFz
c2VydF9sZXNzX3RoYW5fZXF1YWwoc3NyYy5ydHBUaW1lc3RhbXAsIDB4ZmZmZmZmZmYpOworICB9
LCAnWycgKyBraW5kICsgJ10gUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLnJ0cFRpbWVzdGFt
cCBpcyBhIG51bWJlciAnICsKKyAgICAgJ1swLCAyXjMyLTFdJyk7CisKICAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHJlY2VpdmVyID0gYXdhaXQgaW5pdGlhdGVTaW5nbGVU
cmFja0NhbGxBbmRSZXR1cm5SZWNlaXZlcih0LCBraW5kKTsKICAgICAvLyBXYWl0IGZvciBwYWNr
ZXRzIHRvIHN0YXJ0IGZsb3dpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZ2V0U3RhdHMuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwU2VuZGVyLWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2
ZjAyMTZjMWZmZTViNzhjNTFlZmQ1ZGFkOTFiOThkOWU1OWExNGYwLi4xOTU1Njg3MDgxOTI5ODg1
NzFmYTI2N2I4MzlmZGZiODMzYTJlMWFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZ2V0U3RhdHMuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACiAKLUZBSUwgc2VuZGVyLmdldFN0YXRzKCkgdmlhIGFkZFRyYW5zY2Vp
dmVyIHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgb3V0Ym91bmQtcnRwIHN0
YXRzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LmF1ZGlvTGV2ZWwgdG8gYmUgbnVt
YmVyIGV4cGVjdGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgc2VuZGVyLmdl
dFN0YXRzKCkgdmlhIGFkZFRyYWNrIHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5p
bmcgb3V0Ym91bmQtcnRwIHN0YXRzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LmF1
ZGlvTGV2ZWwgdG8gYmUgbnVtYmVyIGV4cGVjdGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5l
ZCIKK0ZBSUwgc2VuZGVyLmdldFN0YXRzKCkgdmlhIGFkZFRyYW5zY2VpdmVyIHNob3VsZCByZXR1
cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgb3V0Ym91bmQtcnRwIHN0YXRzIGFzc2VydF9lcXVh
bHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnRvdGFsQXVkaW9FbmVyZ3kgdG8gYmUgbnVtYmVyIGV4cGVj
dGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgc2VuZGVyLmdldFN0YXRzKCkg
dmlhIGFkZFRyYWNrIHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgb3V0Ym91
bmQtcnRwIHN0YXRzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnRvdGFsQXVkaW9F
bmVyZ3kgdG8gYmUgbnVtYmVyIGV4cGVjdGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5lZCIK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwU2VuZGVyLWdldFN0YXRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZ2V0U3Rh
dHMuaHR0cHMuaHRtbAppbmRleCAxYWY4Mjg1ZjRjMzI1ZjM4YjMyMmQyNmFhNTgyZjNiZWQ3Zjcw
NTg1Li43MGM2MzMyMzIzMjViYzgxMWRiNmNjMGJjYTY5NDJiNWZmYmQ3YWIyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBTZW5kZXItZ2V0U3RhdHMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZ2V0U3RhdHMuaHR0cHMu
aHRtbApAQCAtMTQsNyArMTQsNyBAQAogICAvLyB3ZWJydGMtc3RhdHMgMjAxNzExMjIKIAogICAv
LyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJD
b25uZWN0aW9uLWhlbHBlci5qczoKLSAgLy8gICBkb1NpZ25hbGluZ0hhbmRzaGFrZQorICAvLyAg
IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIKIAogICAvLyBUaGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlv
biBpcyBjYWxsZWQgZnJvbSBSVENTdGF0cy1oZWxwZXIuanMKICAgLy8gICB2YWxpZGF0ZVN0YXRz
UmVwb3J0CkBAIC01MCw3ICs1MCw3IEBACiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRU
cmFja3MoKTsKICAgICBjb25zdCB7IHNlbmRlciB9ID0gY2FsbGVyLmFkZFRyYW5zY2VpdmVyKHRy
YWNrKTsKIAotICAgIGF3YWl0IGRvU2lnbmFsaW5nSGFuZHNoYWtlKGNhbGxlciwgY2FsbGVlKTsK
KyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVlKTsKICAgICBjb25z
dCBzdGF0c1JlcG9ydCA9IGF3YWl0IHNlbmRlci5nZXRTdGF0cygpOwogICAgIHZhbGlkYXRlU3Rh
dHNSZXBvcnQoc3RhdHNSZXBvcnQpOwogICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRz
KHN0YXRzUmVwb3J0LCBbJ291dGJvdW5kLXJ0cCddKTsKQEAgLTY2LDcgKzY2LDcgQEAKICAgICBj
b25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICAgIGNvbnN0IHNlbmRlciA9IGNh
bGxlci5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKIAotICAgIGF3YWl0IGRvU2lnbmFsaW5nSGFu
ZHNoYWtlKGNhbGxlciwgY2FsbGVlKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKGNh
bGxlciwgY2FsbGVlKTsKICAgICBjb25zdCBzdGF0c1JlcG9ydCA9IGF3YWl0IHNlbmRlci5nZXRT
dGF0cygpOwogICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQoc3RhdHNSZXBvcnQpOwogICAgIGFzc2Vy
dF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzUmVwb3J0LCBbJ291dGJvdW5kLXJ0cCddKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2Vu
ZGVyLXJlcGxhY2VUcmFjay5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZmM2NGI1MDExMzUwMjk4
OWU1ZjJiNWMzZTUyZjZjOGVmZGQ1ZjNlYy4uYzFjM2MwMjA5ZDAzN2UwNGY2MmYxNjUyZjU0MTVi
MjQxNGI3M2M4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTgs
NCArOCw1IEBAIFBBU1MgQ2FsbGluZyByZXBsYWNlVHJhY2sobnVsbCkgb24gc2VuZGVyIG5vdCBz
ZXQgdG8gc2Vzc2lvbiBkZXNjcmlwdGlvbiBzaG91bGQKIFBBU1MgQ2FsbGluZyByZXBsYWNlVHJh
Y2sobnVsbCkgb24gc2VuZGVyIHNldCB0byBzZXNzaW9uIGRlc2NyaXB0aW9uIHNob3VsZCByZXNv
bHZlIHdpdGggc2VuZGVyLnRyYWNrIHNldCB0byBudWxsIAogUEFTUyBDYWxsaW5nIHJlcGxhY2VU
cmFjayBvbiBzZW5kZXIgd2l0aCBzdG9wcGVkIHRyYWNrIGFuZCBhbmQgc2V0IHRvIHNlc3Npb24g
ZGVzY3JpcHRpb24gc2hvdWxkIHJlc29sdmUgd2l0aCBzZW5kZXIudHJhY2sgc2V0IHRvIGdpdmVu
IHRyYWNrIAogUEFTUyBDYWxsaW5nIHJlcGxhY2VUcmFjayBvbiBzZW5kZXIgd2l0aCBzaW1pbGFy
IHRyYWNrIGFuZCBhbmQgc2V0IHRvIHNlc3Npb24gZGVzY3JpcHRpb24gc2hvdWxkIHJlc29sdmUg
d2l0aCBzZW5kZXIudHJhY2sgc2V0IHRvIG5ldyB0cmFjayAKK1BBU1MgUmVwbGFjZVRyYWNrIHRy
YW5zbWl0cyB0aGUgbmV3IHRyYWNrIG5vdCB0aGUgb2xkIHRyYWNrIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBT
ZW5kZXItcmVwbGFjZVRyYWNrLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLmh0dHBz
Lmh0bWwKaW5kZXggNTAxODczMTc4MGFiNjYwNDVjYzg2ZDI3ZDAzMTQyNjg3MjE0MzRmOS4uYTM3
MGI2YzA1OWE1MjQ3OWNkYjYyYTUyYWRmMWU0YWI1YTVmNmI3NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVy
LXJlcGxhY2VUcmFjay5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHR0cHMu
aHRtbApAQCAtMSw1ICsxLDYgQEAKIDwhZG9jdHlwZSBodG1sPgogPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHRpdGxlPlJUQ1J0cFNl
bmRlci5wcm90b3R5cGUucmVwbGFjZVRyYWNrPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KQEAgLTM5LDcgKzQwLDcgQEAKICAgICBjb25z
dCB7IHNlbmRlciB9ID0gdHJhbnNjZWl2ZXI7CiAgICAgcGMuY2xvc2UoKTsKIAotICAgIHJldHVy
biBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICByZXR1cm4gcHJv
bWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZFN0YXRlRXJyb3InLAogICAgICAgc2VuZGVyLnJl
cGxhY2VUcmFjayh0cmFjaykpOwogICB9LCAnQ2FsbGluZyByZXBsYWNlVHJhY2sgb24gY2xvc2Vk
IGNvbm5lY3Rpb24gc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yJyk7CiAKQEAg
LTU5LDcgKzYwLDcgQEAKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVy
KCdhdWRpbycpOwogICAgIGNvbnN0IHsgc2VuZGVyIH0gPSB0cmFuc2NlaXZlcjsKIAotICAgIHJl
dHVybiBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAorICAgIHJldHVybiBwcm9t
aXNlX3JlamVjdHNfanModCwgVHlwZUVycm9yLAogICAgICAgc2VuZGVyLnJlcGxhY2VUcmFjayh0
cmFjaykpOwogICB9LCAnQ2FsbGluZyByZXBsYWNlVHJhY2sgd2l0aCB0cmFjayBvZiBkaWZmZXJl
bnQga2luZCBzaG91bGQgcmVqZWN0IHdpdGggVHlwZUVycm9yJyk7CiAKQEAgLTc5LDcgKzgwLDcg
QEAKICAgICBjb25zdCB7IHNlbmRlciB9ID0gdHJhbnNjZWl2ZXI7CiAgICAgdHJhbnNjZWl2ZXIu
c3RvcCgpOwogCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAnSW52YWxpZFN0YXRlRXJy
b3InLAorICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkU3RhdGVFcnJv
cicsCiAgICAgICBzZW5kZXIucmVwbGFjZVRyYWNrKHRyYWNrKSk7CiAgIH0sICdDYWxsaW5nIHJl
cGxhY2VUcmFjayBvbiBzdG9wcGVkIHNlbmRlciBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0
YXRlRXJyb3InKTsKIApAQCAtMjcyLDUgKzI3MywzNSBAQAogICAgICAgICAgICAgICAgIHdpdGhv
dXQgbmVnb3RpYXRpbmcuCiAgICAgICAgICAgICAzLiAgUXVldWUgYSB0YXNrIHRoYXQgcnVucyB0
aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICAgICAgICAxLiAgSWYgY29ubmVjdGlvbidzIFtb
aXNDbG9zZWRdXSBzbG90IGlzIHRydWUsIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgKi8KKyAgKi8K
KworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCB2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgndmlkZW8nKTsKKyAgdi5hdXRvcGxheSA9IHRydWU7CisgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBjb25zdCBzdHJlYW0xID0gYXdhaXQgZ2V0Tm9pc2VT
dHJlYW0oe3ZpZGVvOiB7c2lnbmFsOiAyMH19KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJl
YW0xLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIGNvbnN0
IFt0cmFjazFdID0gc3RyZWFtMS5nZXRUcmFja3MoKTsKKyAgY29uc3Qgc3RyZWFtMiA9IGF3YWl0
IGdldE5vaXNlU3RyZWFtKHt2aWRlbzoge3NpZ25hbDogMjUwfX0pOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHN0cmVhbTIuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkp
KTsKKyAgY29uc3QgW3RyYWNrMl0gPSBzdHJlYW0yLmdldFRyYWNrcygpOworICBjb25zdCBzZW5k
ZXIgPSBwYzEuYWRkVHJhY2sodHJhY2sxKTsKKyAgcGMyLm9udHJhY2sgPSAoZSkgPT4geworICAg
IHYuc3JjT2JqZWN0ID0gbmV3IE1lZGlhU3RyZWFtKFtlLnRyYWNrXSk7CisgIH07CisgIGNvbnN0
IG1ldGFkYXRhVG9CZUxvYWRlZCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgdi5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsICgpID0+IHsKKyAgICAgIHJlc29sdmUo
KTsKKyAgICB9KTsKKyAgfSk7CisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Cisg
IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhd2FpdCBtZXRhZGF0YVRvQmVMb2Fk
ZWQ7CisgIGF3YWl0IGRldGVjdFNpZ25hbCh0LCB2LCAyMCk7CisgIGF3YWl0IHNlbmRlci5yZXBs
YWNlVHJhY2sodHJhY2syKTsKKyAgYXdhaXQgZGV0ZWN0U2lnbmFsKHQsIHYsIDI1MCk7Cit9LCAn
UmVwbGFjZVRyYWNrIHRyYW5zbWl0cyB0aGUgbmV3IHRyYWNrIG5vdCB0aGUgb2xkIHRyYWNrJyk7
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1zZXRQYXJhbWV0ZXJzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5k
ZXItc2V0UGFyYW1ldGVycy5odG1sCmluZGV4IDEyNzg3Mzc0MTRjNDE4YTJiMTYwNGVhZTMyNTkw
YzA5OTllMGQ2NDUuLjAzNWQxMjdlNzQ0OGZlMTFmMzYzYzg5MzUxYmM0YzBlYjMyMmVmNTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1J0cFNlbmRlci1zZXRQYXJhbWV0ZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXNldFBhcmFt
ZXRlcnMuaHRtbApAQCAtMjMsNyArMjMsNyBAQAogICAgIGNvbnN0IHBhcmFtID0gc2VuZGVyLmdl
dFBhcmFtZXRlcnMoKTsKICAgICB0cmFuc2NlaXZlci5zdG9wKCk7CiAKLSAgICByZXR1cm4gcHJv
bWlzZV9yZWplY3RzKHQsICdJbnZhbGlkU3RhdGVFcnJvcicsCisgICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0c19kb20odCwgJ0ludmFsaWRTdGF0ZUVycm9yJywKICAgICAgIHNlbmRlci5zZXRQYXJh
bWV0ZXJzKHBhcmFtKSk7CiAgIH0sIGBzZXRQYXJhbWV0ZXJzKCkgd2hlbiB0cmFuc2NlaXZlciBp
cyBzdG9wcGVkIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcmApOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBTZW5kZXItc2V0U3RyZWFtcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItc2V0
U3RyZWFtcy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzcwYjU1YWEyNGQxMzRkODc2
YmY1NzlkNjM5ZTJiZjM5ZjRkZWYzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1zZXRTdHJl
YW1zLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworRkFJTCBzZXRTdHJlYW1z
IGNhdXNlcyBzdHJlYW1zIHRvIGJlIHJlcG9ydGVkIHZpYSBvbnRyYWNrIG9uIGNhbGxlZSBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IHNlbmRlci5zZXRTdHJlYW1zIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3NlbmRlci5zZXRT
dHJlYW1zKHN0cmVhbTEsIHN0cmVhbTIpJywgJ3NlbmRlci5zZXRTdHJlYW1zJyBpcyB1bmRlZmlu
ZWQpIgorRkFJTCBzZXRTdHJlYW1zIGNhbiBiZSB1c2VkIHRvIHJlY29uc3RydWN0IGEgc3RyZWFt
IHdpdGggYSB0cmFjayBvbiB0aGUgcmVtb3RlIHNpZGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBzZW5kZXIuc2V0U3RyZWFt
cyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdzZW5kZXIuc2V0U3RyZWFtcyhzdHJlYW0pJywgJ3Nl
bmRlci5zZXRTdHJlYW1zJyBpcyB1bmRlZmluZWQpIgorRkFJTCBBZGRpbmcgc3RyZWFtcyBhbmQg
Y2hhbmdpbmcgZGlyZWN0aW9uIGNhdXNlcyBuZXcgc3RyZWFtcyB0byBiZSByZXBvcnRlZCB2aWEg
b250cmFjayBvbiBjYWxsZWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcyBp
cyBub3QgYSBmdW5jdGlvbi4gKEluICd0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcyhzdHJl
YW0xLCBzdHJlYW0yKScsICd0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcycgaXMgdW5kZWZp
bmVkKSIKK0ZBSUwgQWRkaW5nIHN0cmVhbXMgdG8gYW4gYWN0aXZlIHRyYW5zY2VpdmVyIGNhdXNl
cyBuZXcgc3RyZWFtcyB0byBiZSByZXBvcnRlZCB2aWEgb250cmFjayBvbiBjYWxsZWUgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiB0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0
cmFuc2NlaXZlci5zZW5kZXIuc2V0U3RyZWFtcyhzdHJlYW0xLCBzdHJlYW0yKScsICd0cmFuc2Nl
aXZlci5zZW5kZXIuc2V0U3RyZWFtcycgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgc2V0U3RyZWFtcygp
IGZpcmVzIEludmFsaWRTdGF0ZUVycm9yIG9uIGEgY2xvc2VkIHBlZXIgY29ubmVjdGlvbi4gYXNz
ZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB0cmFuc2NlaXZlci5zZW5kZXIuc2V0U3Ry
ZWFtcyhzdHJlYW0xLCBzdHJlYW0yKSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IHRyYW5zY2Vp
dmVyLnNlbmRlci5zZXRTdHJlYW1zIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RyYW5zY2VpdmVy
LnNlbmRlci5zZXRTdHJlYW1zKHN0cmVhbTEsIHN0cmVhbTIpJywgJ3RyYW5zY2VpdmVyLnNlbmRl
ci5zZXRTdHJlYW1zJyBpcyB1bmRlZmluZWQpIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJ
bnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwg
ZXhwZWN0ZWQgMTEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXNldFN0cmVhbXMuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFNlbmRlci1zZXRTdHJlYW1zLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDViNDdkMDZhNmM5YzI5
NTZmOTNhZTA5Mzc5ZjY4ZWNmYTU2NTU5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1zZXRT
dHJlYW1zLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxMjggQEAKKzwhZG9jdHlwZSBodG1sPgorPG1l
dGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENSdHBTZW5kZXIucHJvdG90eXBlLnNldFN0cmVh
bXM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IGNhbGxlci5jbG9zZSgpKTsKKyAgY29uc3QgY2FsbGVlID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworICBjb25z
dCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5z
dG9wKCkpKTsKKyAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKKworICBjb25z
dCBzZW5kZXIgPSBjYWxsZXIuYWRkVHJhY2sodHJhY2spOworICBjb25zdCBzdHJlYW0xID0gbmV3
IE1lZGlhU3RyZWFtKCk7CisgIGNvbnN0IHN0cmVhbTIgPSBuZXcgTWVkaWFTdHJlYW0oKTsKKyAg
c2VuZGVyLnNldFN0cmVhbXMoc3RyZWFtMSwgc3RyZWFtMik7CisKKyAgY29uc3Qgb2ZmZXIgPSBh
d2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKyAgY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9u
KG9mZmVyKTsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gY2FsbGVlLm9udHJhY2sg
PSB0LnN0ZXBfZnVuYyhldmVudCA9PnsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnN0cmVhbXMu
bGVuZ3RoLCAyKTsKKyAgICBjb25zdCBjYWxsZWVTdHJlYW1JZHMgPSBldmVudC5zdHJlYW1zLm1h
cChzID0+IHMuaWQpOworICAgIGFzc2VydF9pbl9hcnJheShzdHJlYW0xLmlkLCBjYWxsZWVTdHJl
YW1JZHMpOworICAgIGFzc2VydF9pbl9hcnJheShzdHJlYW0yLmlkLCBjYWxsZWVTdHJlYW1JZHMp
OworICAgIHJlc29sdmUoKTsKKyAgfSkpOworfSwgJ3NldFN0cmVhbXMgY2F1c2VzIHN0cmVhbXMg
dG8gYmUgcmVwb3J0ZWQgdmlhIG9udHJhY2sgb24gY2FsbGVlJyk7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICBjb25zdCBjYWxsZWUgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xv
c2UoKSk7CisgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1
ZX0pOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRy
YWNrID0+IHRyYWNrLnN0b3AoKSkpOworICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNr
cygpOworCisgIGNvbnN0IHNlbmRlciA9IGNhbGxlci5hZGRUcmFjayh0cmFjayk7CisgIHNlbmRl
ci5zZXRTdHJlYW1zKHN0cmVhbSk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3Jl
YXRlT2ZmZXIoKTsKKyAgY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgcmV0
dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gY2FsbGVlLm9udHJhY2sgPSB0LnN0ZXBfZnVuYyhl
dmVudCA9PnsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnN0cmVhbXMubGVuZ3RoLCAxKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5pZCwgZXZlbnQuc3RyZWFtc1swXS5pZCk7CisgICAgYXNz
ZXJ0X2VxdWFscyh0cmFjay5pZCwgZXZlbnQudHJhY2suaWQpOworICAgIGFzc2VydF9lcXVhbHMo
ZXZlbnQuc3RyZWFtc1swXS5nZXRUcmFja3MoKVswXSwgZXZlbnQudHJhY2spOworICAgIHJlc29s
dmUoKTsKKyAgfSkpOworfSwgJ3NldFN0cmVhbXMgY2FuIGJlIHVzZWQgdG8gcmVjb25zdHJ1Y3Qg
YSBzdHJlYW0gd2l0aCBhIHRyYWNrIG9uIHRoZSByZW1vdGUgc2lkZScpOworCisKK3Byb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICBjb25zdCBjYWxs
ZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxs
ZWUuY2xvc2UoKSk7CisKKyAgY2FsbGVlLm9udHJhY2sgPSB0LnVucmVhY2hlZF9mdW5jKCk7Cisg
IGNvbnN0IHRyYW5zY2VpdmVyID0gY2FsbGVyLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHtkaXJl
Y3Rpb246ICdpbmFjdGl2ZSd9KTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihjYWxsZXIs
IGNhbGxlZSk7CisKKyAgY29uc3Qgc3RyZWFtMSA9IG5ldyBNZWRpYVN0cmVhbSgpOworICBjb25z
dCBzdHJlYW0yID0gbmV3IE1lZGlhU3RyZWFtKCk7CisgIHRyYW5zY2VpdmVyLmRpcmVjdGlvbiA9
ICdzZW5kcmVjdic7CisgIHRyYW5zY2VpdmVyLnNlbmRlci5zZXRTdHJlYW1zKHN0cmVhbTEsIHN0
cmVhbTIpOworCisgIGNvbnN0IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7Cisg
IGNhbGxlZS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIHJldHVybiBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IGNhbGxlZS5vbnRyYWNrID0gdC5zdGVwX2Z1bmMoZXZlbnQgPT57CisgICAg
YXNzZXJ0X2VxdWFscyhldmVudC5zdHJlYW1zLmxlbmd0aCwgMik7CisgICAgY29uc3QgY2FsbGVl
U3RyZWFtSWRzID0gZXZlbnQuc3RyZWFtcy5tYXAocyA9PiBzLmlkKTsKKyAgICBhc3NlcnRfaW5f
YXJyYXkoc3RyZWFtMS5pZCwgY2FsbGVlU3RyZWFtSWRzKTsKKyAgICBhc3NlcnRfaW5fYXJyYXko
c3RyZWFtMi5pZCwgY2FsbGVlU3RyZWFtSWRzKTsKKyAgICBhc3NlcnRfaW5fYXJyYXkoZXZlbnQu
dHJhY2ssIGV2ZW50LnN0cmVhbXNbMF0uZ2V0VHJhY2tzKCkpOworICAgIGFzc2VydF9pbl9hcnJh
eShldmVudC50cmFjaywgZXZlbnQuc3RyZWFtc1sxXS5nZXRUcmFja3MoKSk7CisgICAgcmVzb2x2
ZSgpOworICB9KSk7Cit9LCAnQWRkaW5nIHN0cmVhbXMgYW5kIGNoYW5naW5nIGRpcmVjdGlvbiBj
YXVzZXMgbmV3IHN0cmVhbXMgdG8gYmUgcmVwb3J0ZWQgdmlhIG9udHJhY2sgb24gY2FsbGVlJyk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOwor
ICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisKKyAgY29uc3Qgc3RyZWFtMSA9IG5ldyBNZWRpYVN0
cmVhbSgpOworICBjb25zdCBzdHJlYW0yID0gbmV3IE1lZGlhU3RyZWFtKCk7CisgIGxldCBjYWxs
ZWVUcmFjayA9IG51bGw7CisgIGNhbGxlZS5vbnRyYWNrID0gdC5zdGVwX2Z1bmMoZXZlbnQgPT4g
eworICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuc3RyZWFtcy5sZW5ndGgsIDApOworICAgIGNhbGxl
ZVRyYWNrID0gZXZlbnQudHJhY2s7CisgIH0pOworICBjb25zdCB0cmFuc2NlaXZlciA9IGNhbGxl
ci5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7ZGlyZWN0aW9uOiAnc2VuZHJlY3YnfSk7CisgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2FsbGVyLCBjYWxsZWUpOworICBhc3NlcnRfdHJ1ZShj
YWxsZWVUcmFjayBpbnN0YW5jZW9mIE1lZGlhU3RyZWFtVHJhY2spOworCisgIHRyYW5zY2VpdmVy
LnNlbmRlci5zZXRTdHJlYW1zKHN0cmVhbTEsIHN0cmVhbTIpOworICBjb25zdCBvZmZlciA9IGF3
YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOworICBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24o
b2ZmZXIpOworICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBjYWxsZWUub250cmFjayA9
IHQuc3RlcF9mdW5jKGV2ZW50ID0+eworICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuc3RyZWFtcy5s
ZW5ndGgsIDIpOworICAgIGNvbnN0IGNhbGxlZVN0cmVhbUlkcyA9IGV2ZW50LnN0cmVhbXMubWFw
KHMgPT4gcy5pZCk7CisgICAgYXNzZXJ0X2luX2FycmF5KHN0cmVhbTEuaWQsIGNhbGxlZVN0cmVh
bUlkcyk7CisgICAgYXNzZXJ0X2luX2FycmF5KHN0cmVhbTIuaWQsIGNhbGxlZVN0cmVhbUlkcyk7
CisgICAgYXNzZXJ0X2luX2FycmF5KGV2ZW50LnRyYWNrLCBldmVudC5zdHJlYW1zWzBdLmdldFRy
YWNrcygpKTsKKyAgICBhc3NlcnRfaW5fYXJyYXkoZXZlbnQudHJhY2ssIGV2ZW50LnN0cmVhbXNb
MV0uZ2V0VHJhY2tzKCkpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudHJhY2ssIGNhbGxlZVRy
YWNrKTsKKyAgICByZXNvbHZlKCk7CisgIH0pKTsKK30sICdBZGRpbmcgc3RyZWFtcyB0byBhbiBh
Y3RpdmUgdHJhbnNjZWl2ZXIgY2F1c2VzIG5ldyBzdHJlYW1zIHRvIGJlIHJlcG9ydGVkIHZpYSBv
bnRyYWNrIG9uIGNhbGxlZScpOworCit0ZXN0KHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBzdHJlYW0xID0gbmV3IE1lZGlhU3RyZWFtKCk7Cisg
IGNvbnN0IHN0cmVhbTIgPSBuZXcgTWVkaWFTdHJlYW0oKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIg
PSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKworICBwYy5jbG9zZSgpOworICBhc3NlcnRf
dGhyb3dzX2RvbSgnSW52YWxpZFN0YXRlRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZW5kZXIu
c2V0U3RyZWFtcyhzdHJlYW0xLCBzdHJlYW0yKSk7Cit9LCAnc2V0U3RyZWFtcygpIGZpcmVzIElu
dmFsaWRTdGF0ZUVycm9yIG9uIGEgY2xvc2VkIHBlZXIgY29ubmVjdGlvbi4nKTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwU2VuZGVyLXRyYW5zcG9ydC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5k
ZXItdHJhbnNwb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2Y2VjMzk4NWRlYTJhNjllYzg1
YjYwZGZiZDZmOGI1YzU1MDY3YzBlLi4wNWI5MTQwYWJhOGIzYTdhMjQ4ZjUyZTQ4NTdkNWQ5Y2Y5
MGNlZTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItdHJhbnNwb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBTZW5kZXItdHJhbnNwb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDkgQEAK
IEZBSUwgUlRDUnRwU2VuZGVyLnRyYW5zcG9ydCBpcyBudWxsIHdoZW4gdW5jb25uZWN0ZWQgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVu
ZGVmaW5lZAogRkFJTCBSVENSdHBTZW5kZXIvcmVjZWl2ZXIudHJhbnNwb3J0IGhhcyBhIHZhbHVl
IHdoZW4gY29ubmVjdGVkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ3NlbmRlci50cmFuc3BvcnQuaWNlVHJhbnNwb3J0JykiCiBGQUlMIFJUQ1J0cFNlbmRl
ci9yZWNlaXZlci50cmFuc3BvcnQgYXQgdGhlIHJpZ2h0IHRpbWUsIHdpdGggYnVuZGxlIHBvbGlj
eSBiYWxhbmNlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3Qg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkCitGQUlMIFJUQ1J0cFNlbmRlci9yZWNlaXZlci9TQ1RQIHRy
YW5zcG9ydCBhdCB0aGUgcmlnaHQgdGltZSwgd2l0aCBidW5kbGUgcG9saWN5IGJhbGFuY2VkIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1
bmRlZmluZWQKIEZBSUwgUlRDUnRwU2VuZGVyL3JlY2VpdmVyLnRyYW5zcG9ydCBhdCB0aGUgcmln
aHQgdGltZSwgd2l0aCBidW5kbGUgcG9saWN5IG1heC1idW5kbGUgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBS
VENSdHBTZW5kZXIvcmVjZWl2ZXIvU0NUUCB0cmFuc3BvcnQgYXQgdGhlIHJpZ2h0IHRpbWUsIHdp
dGggYnVuZGxlIHBvbGljeSBtYXgtYnVuZGxlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmpl
Y3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKIEZBSUwgUlRDUnRwU2VuZGVy
L3JlY2VpdmVyLnRyYW5zcG9ydCBhdCB0aGUgcmlnaHQgdGltZSwgd2l0aCBidW5kbGUgcG9saWN5
IG1heC1jb21wYXQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290
ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBSVENSdHBTZW5kZXIvcmVjZWl2ZXIvU0NUUCB0
cmFuc3BvcnQgYXQgdGhlIHJpZ2h0IHRpbWUsIHdpdGggYnVuZGxlIHBvbGljeSBtYXgtY29tcGF0
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVk
KSB1bmRlZmluZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXRyYW5zcG9ydC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
U2VuZGVyLXRyYW5zcG9ydC5odHRwcy5odG1sCmluZGV4IGU3NDQ5NWZlYzQ4ZTQyMGJhZThjYWUx
ZTE0ODFiOTBiOWUzOGVjOGIuLmNkNDE5ZWJjMTg2YjcyMGMyYTVmOTYxNDUxZWVjNzIzYWQyMjlm
YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFNlbmRlci10cmFuc3BvcnQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXIt
dHJhbnNwb3J0Lmh0dHBzLmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAKICAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4gewogICAgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwog
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNsb3NlKCkpOwotICAgIGNvbnN0IHN0cmVh
bSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1
ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1
ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2go
dHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29uc3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRU
cmFja3MoKTsKICAgICBjb25zdCBzZW5kZXIgPSBjYWxsZXIuYWRkVHJhY2sodHJhY2spOwpAQCAt
MjQsNyArMjQsNyBAQAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgY2Fs
bGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBj
YWxsZXIuY2xvc2UoKSk7Ci0gICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CisgICAgY29uc3Qgc3RyZWFtID0g
YXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CiAgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsK
ICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICAgIGNvbnN0IHNlbmRl
ciA9IGNhbGxlci5hZGRUcmFjayh0cmFjayk7CkBAIC00NSw3ICs0NSw3IEBACiAgICAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewogICAgICAgICBjb25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oe2J1bmRsZVBvbGljeTogYnVuZGxlX3BvbGljeX0pOwogICAgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7Ci0gICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgKKyAgICAgIGNvbnN0IHN0cmVhbSA9
IGF3YWl0IGdldE5vaXNlU3RyZWFtKAogICAgICAgICAgIHthdWRpbzogdHJ1ZSwgdmlkZW86dHJ1
ZX0pOwogICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFj
aCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICAgIGNvbnN0IFt0cmFjazEsIHRyYWNrMl0g
PSBzdHJlYW0uZ2V0VHJhY2tzKCk7CkBAIC04Niw1ICs4Niw2NyBAQAogICAgICAgYXNzZXJ0X2Vx
dWFscyhjYWxsZXJfdHJhbnNjZWl2ZXIxLnJlY2VpdmVyLnRyYW5zcG9ydCwKICAgICAgICAgICAg
ICAgICAgICAgY2FsbGVyX3RyYW5zY2VpdmVyMi5yZWNlaXZlci50cmFuc3BvcnQpOwogICAgIH0s
ICdSVENSdHBTZW5kZXIvcmVjZWl2ZXIudHJhbnNwb3J0IGF0IHRoZSByaWdodCB0aW1lLCB3aXRo
IGJ1bmRsZSBwb2xpY3kgJyArIGJ1bmRsZV9wb2xpY3kpOworCisgICAgLy8gRG8gdGhlIHNhbWUg
dGVzdCBhZ2Fpbiwgd2l0aCBEYXRhQ2hhbm5lbCBpbiB0aGUgbWl4LgorICAgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICAgICAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKHtidW5kbGVQb2xpY3k6IGJ1bmRsZV9wb2xpY3l9KTsKKyAgICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9p
c2VTdHJlYW0oCisgICAgICAgICAge2F1ZGlvOiB0cnVlLCB2aWRlbzp0cnVlfSk7CisgICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRy
YWNrLnN0b3AoKSkpOworICAgICAgY29uc3QgW3RyYWNrMSwgdHJhY2syXSA9IHN0cmVhbS5nZXRU
cmFja3MoKTsKKyAgICAgIGNvbnN0IHNlbmRlcjEgPSBjYWxsZXIuYWRkVHJhY2sodHJhY2sxKTsK
KyAgICAgIGNvbnN0IHNlbmRlcjIgPSBjYWxsZXIuYWRkVHJhY2sodHJhY2syKTsKKyAgICAgIGNh
bGxlci5jcmVhdGVEYXRhQ2hhbm5lbCgnZGF0YWNoYW5uZWwnKTsKKyAgICAgIGNvbnN0IGNhbGxl
ZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBj
YWxsZWUuY2xvc2UoKSk7CisgICAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMoY2FsbGVyLCBjYWxs
ZWUpOworICAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIoKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2VuZGVyMS50cmFuc3BvcnQsIG51bGwpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzZW5kZXIyLnRyYW5zcG9ydCwgbnVsbCk7CisgICAgICBpZiAoY2FsbGVyLnNjdHAp
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjYWxsZXIuc2N0cC50cmFuc3BvcnQsIG51bGwpOwor
ICAgICAgfQorICAgICAgYXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOwor
ICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoc2VuZGVyMS50cmFuc3BvcnQsIG51bGwpOworICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMoc2VuZGVyMi50cmFuc3BvcnQsIG51bGwpOworICAgICAgYXNzZXJ0
X25vdF9lcXVhbHMoY2FsbGVyLnNjdHAudHJhbnNwb3J0LCBudWxsKTsKKyAgICAgIGNvbnN0IFtj
YWxsZXJfdHJhbnNjZWl2ZXIxLCBjYWxsZXJfdHJhbnNjZWl2ZXIyXSA9IGNhbGxlci5nZXRUcmFu
c2NlaXZlcnMoKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2VuZGVyMS50cmFuc3BvcnQsIGNhbGxl
cl90cmFuc2NlaXZlcjEuc2VuZGVyLnRyYW5zcG9ydCk7CisgICAgICBpZiAoYnVuZGxlX3BvbGlj
eSA9PSAnbWF4LWJ1bmRsZScpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjYWxsZXJfdHJhbnNj
ZWl2ZXIxLnNlbmRlci50cmFuc3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgY2FsbGVyX3Ry
YW5zY2VpdmVyMi5zZW5kZXIudHJhbnNwb3J0KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjYWxs
ZXJfdHJhbnNjZWl2ZXIxLnNlbmRlci50cmFuc3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAg
Y2FsbGVyLnNjdHAudHJhbnNwb3J0KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGFzc2VydF9u
b3RfZXF1YWxzKGNhbGxlcl90cmFuc2NlaXZlcjEuc2VuZGVyLnRyYW5zcG9ydCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FsbGVyX3RyYW5zY2VpdmVyMi5zZW5kZXIudHJhbnNwb3J0KTsK
KyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoY2FsbGVyX3RyYW5zY2VpdmVyMS5zZW5kZXIudHJh
bnNwb3J0LAorICAgICAgICAgICAgICAgICAgICAgIGNhbGxlci5zY3RwLnRyYW5zcG9ydCk7Cisg
ICAgICB9CisgICAgICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwor
ICAgICAgY29uc3QgW2NhbGxlZV90cmFuc2NlaXZlcjEsIGNhbGxlZV90cmFuc2NlaXZlcjJdID0g
Y2FsbGVlLmdldFRyYW5zY2VpdmVycygpOworICAgICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMsIHNl
dFJlbW90ZURlc2NyaXB0aW9uIG9ubHkgdXBkYXRlcyB0aGUgdHJhbnNwb3J0cworICAgICAgLy8g
aWYgdGhlIHJlbW90ZSBkZXNjcmlwdGlvbiBpcyBhbiBhbnN3ZXIuCisgICAgICBhc3NlcnRfZXF1
YWxzKGNhbGxlZV90cmFuc2NlaXZlcjEucmVjZWl2ZXIudHJhbnNwb3J0LCBudWxsKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoY2FsbGVlX3RyYW5zY2VpdmVyMi5yZWNlaXZlci50cmFuc3BvcnQsIG51
bGwpOworICAgICAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpOwor
ICAgICAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgICAgIGFz
c2VydF9ub3RfZXF1YWxzKGNhbGxlZV90cmFuc2NlaXZlcjEucmVjZWl2ZXIudHJhbnNwb3J0LCBu
dWxsKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGNhbGxlZV90cmFuc2NlaXZlcjIucmVjZWl2
ZXIudHJhbnNwb3J0LCBudWxsKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGNhbGxlZS5zY3Rw
LnRyYW5zcG9ydCwgbnVsbCk7CisgICAgICAvLyBBdCB0aGlzIHBvaW50LCBidW5kbGUgc2hvdWxk
IGhhdmUga2lja2VkIGluLgorICAgICAgYXNzZXJ0X2VxdWFscyhjYWxsZWVfdHJhbnNjZWl2ZXIx
LnJlY2VpdmVyLnRyYW5zcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgY2FsbGVlX3RyYW5zY2Vp
dmVyMi5yZWNlaXZlci50cmFuc3BvcnQpOworICAgICAgYXNzZXJ0X2VxdWFscyhjYWxsZWVfdHJh
bnNjZWl2ZXIxLnJlY2VpdmVyLnRyYW5zcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgY2FsbGVl
LnNjdHAudHJhbnNwb3J0LAorICAgICAgICAgICAgICAgICAgICAnQ2FsbGVlIFNDVFAgdHJhbnNw
b3J0IGRvZXMgbm90IG1hdGNoOicpOworICAgICAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKGFuc3dlcik7CisgICAgICBhc3NlcnRfZXF1YWxzKGNhbGxlcl90cmFuc2NlaXZlcjEu
cmVjZWl2ZXIudHJhbnNwb3J0LAorICAgICAgICAgICAgICAgICAgICBjYWxsZXJfdHJhbnNjZWl2
ZXIyLnJlY2VpdmVyLnRyYW5zcG9ydCk7CisgICAgICBhc3NlcnRfZXF1YWxzKGNhbGxlcl90cmFu
c2NlaXZlcjEucmVjZWl2ZXIudHJhbnNwb3J0LAorICAgICAgICAgICAgICAgICAgICBjYWxsZXIu
c2N0cC50cmFuc3BvcnQsCisgICAgICAgICAgICAgICAgICAgICdDYWxsZXIgU0NUUCB0cmFuc3Bv
cnQgZG9lcyBub3QgbWF0Y2g6Jyk7CisgICAgfSwgJ1JUQ1J0cFNlbmRlci9yZWNlaXZlci9TQ1RQ
IHRyYW5zcG9ydCBhdCB0aGUgcmlnaHQgdGltZSwgd2l0aCBidW5kbGUgcG9saWN5ICcgKyBidW5k
bGVfcG9saWN5KTsKICAgfQogIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0
Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZl
cmVuY2VzLWV4cGVjdGVkLnR4dAppbmRleCA2ZjA5OTBkOWI2YzMzNmU2YWIzMTViODhlNmRhMWQy
ZDY0MWI4M2Y5Li43M2EyNTFlZWM4N2U0MWZjOWVhNDdhZTE2NWIyYTcwYzQ5NDI2NDcyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVuY2VzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVuY2VzLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0
LDEzIEBAIFBBU1Mgc2V0Q29kZWNQcmVmZXJlbmNlcygpIG9uIHZpZGVvIHRyYW5zY2VpdmVyIHdp
dGggY29kZWNzIHJldHVybmVkIGZyb20gUlRDUnRwCiBQQVNTIHNldENvZGVjUHJlZmVyZW5jZXMo
KSB3aXRoIGJvdGggc2VuZGVyIHJlY2VpdmVyIGNvZGVjcyBjb21iaW5lZCBzaG91bGQgc3VjY2Vl
ZCAKIFBBU1Mgc2V0Q29kZWNQcmVmZXJlbmNlcyhbXSkgc2hvdWxkIHN1Y2NlZWQgCiBQQVNTIHNl
dENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIHJlb3JkZXJlZCBjb2RlY3Mgc2hvdWxkIHN1Y2NlZWQg
Ci1GQUlMIHNldENvZGVjUHJlZmVyZW5jZXMoKSBvbiBhdWRpbyB0cmFuc2NlaXZlciB3aXRoIGNv
ZGVjcyByZXR1cm5lZCBmcm9tIGdldENhcGFiaWxpdGllcygndmlkZW8nKSBzaG91bGQgdGhyb3cg
SW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF90aHJvd3M6IHVuZGVmaW5lZCB0aHJldyBvYmplY3Qg
IlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2Z1bmMu
Y2FsbCcpIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiAoKSA9PiB0cmFuc2NlaXZlci5zZXRD
b2RlY1ByZWZlcmVuY2VzKGNhcGFiaWxpdGllcy5jb2RlY3MpOiBwcm9wZXJ0eSAiY29kZSIgaXMg
ZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCBmdW5jdGlvbiAiKCkgPT4gdHJhbnNjZWl2ZXIu
c2V0Q29kZWNQcmVmZXJlbmNlcyhjYXBhYmlsaXRpZXMuY29kZWNzKSIKLUZBSUwgc2V0Q29kZWNQ
cmVmZXJlbmNlcygpIHdpdGggdXNlciBkZWZpbmVkIGNvZGVjIHNob3VsZCB0aHJvdyBJbnZhbGlk
QWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93czogdW5kZWZpbmVkIHRocmV3IG9iamVjdCAiVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnZnVuYy5jYWxsJyki
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uICgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJl
ZmVyZW5jZXMoY29kZWNzKTogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwg
ZXhwZWN0ZWQgZnVuY3Rpb24gIigpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMo
Y29kZWNzKSIKLUZBSUwgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggdXNlciBkZWZpbmVkIGNv
ZGVjIHRvZ2V0aGVyIHdpdGggY29kZWNzIHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0aWVzKCkg
c2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzOiB1bmRlZmluZWQg
dGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICdmdW5jLmNhbGwnKSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gKCkgPT4gdHJh
bnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpOiBwcm9wZXJ0eSAiY29kZSIgaXMg
ZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCBmdW5jdGlvbiAiKCkgPT4gdHJhbnNjZWl2ZXIu
c2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpIgotRkFJTCBzZXRDb2RlY1ByZWZlcmVuY2VzKCkg
d2l0aCBtb2RpZmllZCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBnZXRDYXBhYmlsaXRpZXMoKSBzaG91
bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF90aHJvd3M6IHVuZGVmaW5lZCB0aHJl
dyBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ2Z1bmMuY2FsbCcpIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiAoKSA9PiB0cmFuc2Nl
aXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcyk6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVh
bCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIGZ1bmN0aW9uICIoKSA9PiB0cmFuc2NlaXZlci5zZXRD
b2RlY1ByZWZlcmVuY2VzKGNvZGVjcykiCitQQVNTIHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRo
IG9ubHkgb25lIHZpZGVvIGNvZGVjIHNob3VsZCBzdWNjZWVkIAorRkFJTCBzZXRDb2RlY1ByZWZl
cmVuY2VzKCkgb24gYXVkaW8gdHJhbnNjZWl2ZXIgd2l0aCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBn
ZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJykgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25F
cnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IHRyYW5zY2VpdmVyLnNldENv
ZGVjUHJlZmVyZW5jZXMoY2FwYWJpbGl0aWVzLmNvZGVjcykiIGRpZCBub3QgdGhyb3cKK0ZBSUwg
c2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggdXNlciBkZWZpbmVkIGNvZGVjIHdpdGggaW52YWxp
ZCBtaW1lVHlwZSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIGFzc2VydF90
aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNl
cyhjb2RlY3MpIiBkaWQgbm90IHRocm93CitGQUlMIHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRo
IHVzZXIgZGVmaW5lZCBjb2RlYyBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9y
IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQ
cmVmZXJlbmNlcyhjb2RlY3MpIiBkaWQgbm90IHRocm93CitGQUlMIHNldENvZGVjUHJlZmVyZW5j
ZXMoKSB3aXRoIHVzZXIgZGVmaW5lZCBjb2RlYyB0b2dldGhlciB3aXRoIGNvZGVjcyByZXR1cm5l
ZCBmcm9tIGdldENhcGFiaWxpdGllcygpIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB0cmFuc2NlaXZlci5zZXRD
b2RlY1ByZWZlcmVuY2VzKGNvZGVjcykiIGRpZCBub3QgdGhyb3cKK0ZBSUwgc2V0Q29kZWNQcmVm
ZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWMgY2xvY2sgcmF0ZSBzaG91bGQgdGhyb3cgSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4g
dHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpIiBkaWQgbm90IHRocm93CitG
QUlMIHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIG1vZGlmaWVkIGNvZGVjIGNoYW5uZWwgY291
bnQgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvciBhc3NlcnRfdGhyb3dzX2Rv
bTogZnVuY3Rpb24gIigpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNz
KSIgZGlkIG5vdCB0aHJvdworRkFJTCBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmll
ZCBjb2RlYyBwYXJhbWV0ZXJzIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Ig
YXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1By
ZWZlcmVuY2VzKGNvZGVjcykiIGRpZCBub3QgdGhyb3cKK0ZBSUwgc2V0Q29kZWNQcmVmZXJlbmNl
cygpIHdpdGggbW9kaWZpZWQgY29kZWNzIHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0aWVzKCkg
c2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvciBhc3NlcnRfdGhyb3dzX2RvbTog
ZnVuY3Rpb24gIigpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSIg
ZGlkIG5vdCB0aHJvdwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVu
Y2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVuY2VzLmh0bWwKaW5kZXggYTFm
Nzg1NGUxYTJmMTgwMzYwNDBmODgyODg5ZmY2NzU4ZTk5NjhjMC4uZjc5YzQzYjI5MTk1NDVjMTU3
MzBkMTA5ZmJmMDNhYmJjOWFmYjQxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQ
cmVmZXJlbmNlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5jZXMuaHRt
bApAQCAtMjYsNyArMjYsNyBAQAogICAgICAgICAgIFJUQ1J0cFRyYW5zY2VpdmVyIG9uIHdoaWNo
IHRoZSBtZXRob2QgaXMgY2FsbGVkLiBBZGRpdGlvbmFsbHksIHRoZQogICAgICAgICAgIFJUQ1J0
cENvZGVjUGFyYW1ldGVycyBkaWN0aW9uYXJ5IG1lbWJlcnMgY2Fubm90IGJlIG1vZGlmaWVkLiBJ
ZgogICAgICAgICAgIGNvZGVjcyBkb2VzIG5vdCBmdWxmaWxsIHRoZXNlIHJlcXVpcmVtZW50cywg
dGhlIHVzZXIgYWdlbnQgTVVTVCB0aHJvdwotICAgICAgICAgIGFuIEludmFsaWRBY2Nlc3NFcnJv
ci4KKyAgICAgICAgICBhbiBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IuCiAgICAqLwogCiAgIHRl
c3QoKCkgPT4gewpAQCAtNzcsMTMgKzc3LDQ0IEBACiAKICAgfSwgYHNldENvZGVjUHJlZmVyZW5j
ZXMoKSB3aXRoIHJlb3JkZXJlZCBjb2RlY3Mgc2hvdWxkIHN1Y2NlZWRgKTsKIAorICB0ZXN0KCgp
ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0
IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CisgICAgY29uc3QgY2Fw
YWJpbGl0aWVzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKTsKKyAgICBj
b25zdCB7IGNvZGVjcyB9ID0gY2FwYWJpbGl0aWVzOworICAgIC8vIFRoaXMgdGVzdCB2ZXJpZmll
cyB0aGF0IHRoZSBtYW5kYXRvcnkgVlA4IGNvZGVjIGlzIHByZXNlbnQKKyAgICAvLyBhbmQgY2Fu
IGJlIHNldC4KKyAgICBsZXQgdHJpZWQgPSBmYWxzZTsKKyAgICBjb2RlY3MuZm9yRWFjaChjb2Rl
YyA9PiB7CisgICAgICBpZiAoY29kZWMubWltZVR5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ3ZpZGVv
L3ZwOCcpIHsKKyAgICAgICAgdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhbY29kZWNz
WzBdXSk7CisgICAgICAgIHRyaWVkID0gdHJ1ZTsKKyAgICAgIH0KKyAgICB9KTsKKyAgICBhc3Nl
cnRfdHJ1ZSh0cmllZCwgJ1ZQOCB2aWRlbyBjb2RlYyB3YXMgZm91bmQgYW5kIHRyaWVkJyk7Cisg
IH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBvbmx5IG9uZSB2aWRlbyBjb2RlYyBzaG91
bGQgc3VjY2VlZGApOworCiAgIHRlc3QoKCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZl
cignYXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBTZW5kZXIuZ2V0Q2Fw
YWJpbGl0aWVzKCd2aWRlbycpOwotICAgIGFzc2VydF90aHJvd3MoKCkgPT4gdHJhbnNjZWl2ZXIu
c2V0Q29kZWNQcmVmZXJlbmNlcyhjYXBhYmlsaXRpZXMuY29kZWNzKSk7CisgICAgYXNzZXJ0X3Ro
cm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+IHRyYW5zY2VpdmVyLnNl
dENvZGVjUHJlZmVyZW5jZXMoY2FwYWJpbGl0aWVzLmNvZGVjcykpOwogCi0gIH0sIGBzZXRDb2Rl
Y1ByZWZlcmVuY2VzKCkgb24gYXVkaW8gdHJhbnNjZWl2ZXIgd2l0aCBjb2RlY3MgcmV0dXJuZWQg
ZnJvbSBnZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJykgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NF
cnJvcmApOworICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIG9uIGF1ZGlvIHRyYW5zY2VpdmVy
IHdpdGggY29kZWNzIHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpIHNob3Vs
ZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKKworICB0ZXN0KCgpID0+IHsKKyAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHRyYW5zY2Vp
dmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgICAgY29uc3QgY29kZWNzID0gW3sK
KyAgICAgIG1pbWVUeXBlOiAnZGF0YScsCisgICAgICBjbG9ja1JhdGU6IDIwMDAsCisgICAgICBj
aGFubmVsczogMiwKKyAgICAgIHNkcEZtdHBMaW5lOiAnMC0xNScKKyAgICB9XTsKKworICAgIGFz
c2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0cmFuc2Nl
aXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOworCisgIH0sIGBzZXRDb2RlY1ByZWZl
cmVuY2VzKCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMgd2l0aCBpbnZhbGlkIG1pbWVUeXBlIHNo
b3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAogICB0ZXN0KCgpID0+IHsK
ICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwpAQCAtOTIsMTIgKzEyMywx
MiBAQAogICAgICAgbWltZVR5cGU6ICdhdWRpby9waWVwaXBlcicsCiAgICAgICBjbG9ja1JhdGU6
IDIwMDAsCiAgICAgICBjaGFubmVsczogMiwKLSAgICAgIHNkcEZtdHBMaW5lOiAnYT1mbXRwOjk4
IDAtMTUnCisgICAgICBzZHBGbXRwTGluZTogJzAtMTUnCiAgICAgfV07CiAKLSAgICBhc3NlcnRf
dGhyb3dzKCgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSk7Cisg
ICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+IHRy
YW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSk7CiAKLSAgfSwgYHNldENvZGVj
UHJlZmVyZW5jZXMoKSB3aXRoIHVzZXIgZGVmaW5lZCBjb2RlYyBzaG91bGQgdGhyb3cgSW52YWxp
ZEFjY2Vzc0Vycm9yYCk7CisgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCB1c2VyIGRl
ZmluZWQgY29kZWMgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwogCiAg
IHRlc3QoKCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CkBA
IC0xMDksMTIgKzE0MCw0NSBAQAogICAgICAgICBtaW1lVHlwZTogJ2F1ZGlvL3BpZXBpcGVyJywK
ICAgICAgICAgY2xvY2tSYXRlOiAyMDAwLAogICAgICAgICBjaGFubmVsczogMiwKLSAgICAgICAg
c2RwRm10cExpbmU6ICdhPWZtdHA6OTggMC0xNScKKyAgICAgICAgc2RwRm10cExpbmU6ICcwLTE1
JwogICAgICAgfV07CiAKLSAgICBhc3NlcnRfdGhyb3dzKCgpID0+IHRyYW5zY2VpdmVyLnNldENv
ZGVjUHJlZmVyZW5jZXMoY29kZWNzKSk7CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRN
b2RpZmljYXRpb25FcnJvcicsICgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMo
Y29kZWNzKSk7CisKKyAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIHVzZXIgZGVmaW5l
ZCBjb2RlYyB0b2dldGhlciB3aXRoIGNvZGVjcyByZXR1cm5lZCBmcm9tIGdldENhcGFiaWxpdGll
cygpIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKKworICB0ZXN0KCgp
ID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0
IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgICAgY29uc3QgY2Fw
YWJpbGl0aWVzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKKyAgICBj
b25zdCBjb2RlY3MgPSBbY2FwYWJpbGl0aWVzLmNvZGVjc1swXV07CisgICAgY29kZWNzWzBdLmNs
b2NrUmF0ZSA9IGNvZGVjc1swXS5jbG9ja1JhdGUgLyAyOworCisgICAgYXNzZXJ0X3Rocm93c19k
b20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVj
UHJlZmVyZW5jZXMoY29kZWNzKSk7CisKKyAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRo
IG1vZGlmaWVkIGNvZGVjIGNsb2NrIHJhdGUgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRp
b25FcnJvcmApOworCisgIHRlc3QoKCkgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcign
YXVkaW8nKTsKKyAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJp
bGl0aWVzKCdhdWRpbycpOworICAgIGNvbnN0IGNvZGVjcyA9IFtjYXBhYmlsaXRpZXMuY29kZWNz
WzBdXTsKKyAgICBjb2RlY3NbMF0uY2hhbm5lbHMgPSBjb2RlY3NbMF0uY2hhbm5lbHMgKyAxMTsK
KworICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9
PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOworCisgIH0sIGBzZXRD
b2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBjaGFubmVsIGNvdW50IHNob3Vs
ZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKKworICB0ZXN0KCgpID0+IHsKKyAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHRyYW5zY2Vp
dmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgICAgY29uc3QgY2FwYWJpbGl0aWVz
ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKKyAgICBjb25zdCBjb2Rl
Y3MgPSBbY2FwYWJpbGl0aWVzLmNvZGVjc1swXV07CisgICAgY29kZWNzWzBdLnNkcEZtdHBMaW5l
ID0gIm1vZGlmaWVkcGFyYW1ldGVyPTEiOworCisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFs
aWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5j
ZXMoY29kZWNzKSk7CiAKLSAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIHVzZXIgZGVm
aW5lZCBjb2RlYyB0b2dldGhlciB3aXRoIGNvZGVjcyByZXR1cm5lZCBmcm9tIGdldENhcGFiaWxp
dGllcygpIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3JgKTsKKyAgfSwgYHNldENvZGVj
UHJlZmVyZW5jZXMoKSB3aXRoIG1vZGlmaWVkIGNvZGVjIHBhcmFtZXRlcnMgc2hvdWxkIHRocm93
IEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwogCiAgIHRlc3QoKCkgPT4gewogICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CkBAIC0xMjksOCArMTkzLDggQEAKICAgICBj
b25zdCB7IGNoYW5uZWxzPTIgfSA9IGNvZGVjOwogICAgIGNvZGVjLmNoYW5uZWxzID0gY2hhbm5l
bHMrMTsKIAotICAgIGFzc2VydF90aHJvd3MoKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVm
ZXJlbmNlcyhjb2RlY3MpKTsKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlmaWNh
dGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3Mp
KTsKIAotICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWNzIHJl
dHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0aWVzKCkgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NF
cnJvcmApOworICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWNz
IHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0aWVzKCkgc2hvdWxkIHRocm93IEludmFsaWRNb2Rp
ZmljYXRpb25FcnJvcmApOwogCiAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
ZDE4MDc2MjkzMzRhYzk3ODRiNDk1ODY3MDk1MzI5NTEzOWEyZjI1YS4uZjhjZjY2Nzk5ZjEwNjlh
ODMzYmMxYjIxNDNlMGQxMzJiYTJjZDc1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMjQs
OSArMjQsOSBAQCBQQVNTIGNoZWNrUmVwbGFjZVRyYWNrTnVsbERvZXNudFByZXZlbnRQYWlyaW5n
CiBQQVNTIGNoZWNrUmVtb3ZlQW5kUmVhZGQgCiBQQVNTIGNoZWNrQWRkVHJhY2tFeGlzdGluZ1Ry
YW5zY2VpdmVyVGhlblJlbW92ZSAKIEZBSUwgY2hlY2tSZW1vdmVUcmFja05lZ290aWF0aW9uIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFs
aWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQg
c2lnbmFsaW5nIHN0YXRlIgotVElNRU9VVCBjaGVja011dGUgVGVzdCB0aW1lZCBvdXQKLU5PVFJV
TiBjaGVja1N0b3AgCi1OT1RSVU4gY2hlY2tTdG9wQWZ0ZXJDcmVhdGVPZmZlciAKK0ZBSUwgY2hl
Y2tNdXRlIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBjaGVja1N0
b3AgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlt7Y3VycmVudERpcmVjdGlvbjpudWxsLGRpcmVj
dGlvbjpcInNlbmRyZWN2XCIscmVjZWl2ZXI6e3RyYWNrOntraW5kOlwiYXVkaW9cIixyZWFkeVN0
YXRlOlwiZW5kZWRcIn19LHNlbmRlcjp7dHJhY2s6e2tpbmQ6XCJhdWRpb1wifX0sc3RvcHBlZDp0
cnVlfV0iIGJ1dCBnb3QgIlt7Y3VycmVudERpcmVjdGlvbjpudWxsLGRpcmVjdGlvbjpcInNlbmRy
ZWN2XCIscmVjZWl2ZXI6e3RyYWNrOntraW5kOlwiYXVkaW9cIixyZWFkeVN0YXRlOlwiZW5kZWRc
In19LHNlbmRlcjp7dHJhY2s6bnVsbH0sc3RvcHBlZDp0cnVlfV0iCitUSU1FT1VUIGNoZWNrU3Rv
cEFmdGVyQ3JlYXRlT2ZmZXIgVGVzdCB0aW1lZCBvdXQKIE5PVFJVTiBjaGVja1N0b3BBZnRlclNl
dExvY2FsT2ZmZXIgCiBOT1RSVU4gY2hlY2tTdG9wQWZ0ZXJTZXRSZW1vdGVPZmZlciAKIE5PVFJV
TiBjaGVja1N0b3BBZnRlckNyZWF0ZUFuc3dlciAKQEAgLTM2LDQgKzM2LDcgQEAgTk9UUlVOIGNo
ZWNrTG9jYWxSb2xsYmFjawogTk9UUlVOIGNoZWNrUm9sbGJhY2tBbmRTZXRSZW1vdGVPZmZlcldp
dGhEaWZmZXJlbnRUeXBlIAogTk9UUlVOIGNoZWNrUmVtb3RlUm9sbGJhY2sgCiBOT1RSVU4gY2hl
Y2tNc2VjdGlvblJldXNlIAorTk9UUlVOIGNoZWNrU3RvcEFmdGVyQ3JlYXRlT2ZmZXJXaXRoUmV1
c2VkTXNlY3Rpb24gCitOT1RSVU4gY2hlY2tBZGRJY2VDYW5kaWRhdGVUb1N0b3BwZWRUcmFuc2Nl
aXZlciAKK05PVFJVTiBjaGVja0J1bmRsZVRhZ1JlamVjdGVkIAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFu
c2NlaXZlci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbAppbmRleCBiNWYzYzU1
ZWU1ODEwZjMwZWU4NDM5ZTBiMzNkZjg0YjM3OWQ5NzVjLi40ODc3NzQ5ODIyOTgzNzZiN2NlMjdh
MmNiZmFlYTdhZDNjNzE2ZTI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwKQEAgLTEsNSArMSw2IEBACiA8IWRvY3R5cGUgaHRt
bD4KIDxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIj4KIDx0aXRsZT5SVENSdHBUcmFuc2NlaXZlcjwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CkBAIC0zOTksOCArNDAwLDkgQEAKICAg
ICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOwogICAgIGF3YWl0IHBjMS5z
ZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKICAgICAvLyBSZW1vdmUgdHJhY2staWQgZnJvbSBt
c2lkCi0gICAgb2ZmZXIuc2RwID0gb2ZmZXIuc2RwLnJlcGxhY2UoLyhhPW1zaWQ6W14gXHRdKyku
KlxyXG4vZywgIiQxXHJcbiIpOwotICAgIGFzc2VydF90cnVlKG9mZmVyLnNkcC5pbmNsdWRlcyhg
YT1tc2lkOiR7c3RyZWFtLmlkfVxyXG5gKSk7CisgICAgLy8gRml4YXRlIHN0cmVhbS1pZCBzbyB0
aGF0IGVycm9yIG1lc3NhZ2UgaXMgY29uc2lzdGVudC4KKyAgICBvZmZlci5zZHAgPSBvZmZlci5z
ZHAucmVwbGFjZSgvKGE9bXNpZDpbXiBcdF0rKS4qXHJcbi9nLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJhPW1zaWQ6ZmFrZS1zdHJlYW0taWRcclxuIik7CiAgICAgYXdhaXQg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKICAgICBjb25zdCBhbnN3ZXIgPSBhd2Fp
dCBwYzIuY3JlYXRlQW5zd2VyKCk7CiAgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9u
KGFuc3dlcik7CkBAIC00NDcsNyArNDQ5LDcgQEAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAotICAg
IGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KHthdWRpbzogdHJ1ZX0pOworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFt
KHthdWRpbzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RvcFRyYWNrcyhzdHJl
YW0pKTsKICAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwogICAg
IHBjMS5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKQEAgLTQ1NSw2ICs0NTcsMjAgQEAKICAgICBj
b25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOwogICAgIGF3YWl0IHBjMS5zZXRM
b2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRp
b24ob2ZmZXIpOworCisgICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMS5nZXRUcmFuc2NlaXZl
cnMoKSwKKyAgICAgIFsKKyAgICAgICAgeworICAgICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtr
aW5kOiAiYXVkaW8ifX0sCisgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8i
fX0sCisgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAorICAgICAgICAgIGN1cnJlbnRE
aXJlY3Rpb246IG51bGwsCisgICAgICAgICAgc3RvcHBlZDogZmFsc2UKKyAgICAgICAgfQorICAg
ICAgXSk7CisKKyAgICBjb25zdCBsYXN0TWlkID0gcGMxLmdldFRyYW5zY2VpdmVycygpWzBdLm1p
ZDsKKwogICAgIGxldCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CiAgICAgLy8g
UmVtb3ZlIG1pZCBhdHRyCiAgICAgYW5zd2VyLnNkcCA9IGFuc3dlci5zZHAucmVwbGFjZSgiYT1t
aWQ6IiwgImE9dW5rbm93bmF0dHI6Iik7CkBAIC00NjIsMTkgKzQ3OCwzMSBAQAogICAgIGFuc3dl
ci5zZHAgPSBhbnN3ZXIuc2RwLnJlcGxhY2UoImE9Z3JvdXA6IiwgImE9dW5rbm93bmF0dHI6Iik7
CiAgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CiAKLSAgICBoYXNQ
cm9wc0FuZFVuaXF1ZU1pZHMocGMxLmdldFRyYW5zY2VpdmVycygpLAorICAgIGhhc1Byb3BzKHBj
MS5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAgICAgICAgewogICAgICAgICAgIHJlY2Vp
dmVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8ifX0sCiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6
IHtraW5kOiAiYXVkaW8ifX0sCiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAg
ICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5kb25seSIsCi0gICAgICAgICAgc3RvcHBlZDog
ZmFsc2UKKyAgICAgICAgICBzdG9wcGVkOiBmYWxzZSwKKyAgICAgICAgICBtaWQ6IGxhc3RNaWQK
ICAgICAgICAgfQogICAgICAgXSk7CiAKICAgICBjb25zdCByZW9mZmVyID0gYXdhaXQgcGMxLmNy
ZWF0ZU9mZmVyKCk7CiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ocmVvZmZlcik7
CisgICAgaGFzUHJvcHMocGMxLmdldFRyYW5zY2VpdmVycygpLAorICAgICAgWworICAgICAgICB7
CisgICAgICAgICAgcmVjZWl2ZXI6IHt0cmFjazoge2tpbmQ6ICJhdWRpbyJ9fSwKKyAgICAgICAg
ICBzZW5kZXI6IHt0cmFjazoge2tpbmQ6ICJhdWRpbyJ9fSwKKyAgICAgICAgICBkaXJlY3Rpb246
ICJzZW5kcmVjdiIsCisgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogInNlbmRvbmx5IiwKKyAg
ICAgICAgICBzdG9wcGVkOiBmYWxzZSwKKyAgICAgICAgICBtaWQ6IGxhc3RNaWQKKyAgICAgICAg
fQorICAgICAgXSk7CiAgIH07CiAKICAgY29uc3QgY2hlY2tBZGRUcmFuc2NlaXZlck5vVHJhY2tE
b2VzbnRQYWlyID0gYXN5bmMgdCA9PiB7CkBAIC05OTAsNiArMTAxOCw5IEBACiAgICAgICBdKTsK
IAogICAgIGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwgW3tjdXJyZW50RGlyZWN0aW9u
OiAic2VuZHJlY3YifV0pOworCisgICAgcGMyLmNsb3NlKCk7CisgICAgaGFzUHJvcHMocGMyLmdl
dFRyYW5zY2VpdmVycygpLCBbe2N1cnJlbnREaXJlY3Rpb246IG51bGx9XSk7CiAgIH07CiAKICAg
Y29uc3QgY2hlY2tTZW5kcmVjdldpdGhOb1NlbmRUcmFjayA9IGFzeW5jIHQgPT4gewpAQCAtMTEx
NiwxMCArMTE0NywxNiBAQAogCiAgICAgbGV0IGdvdFVubXV0ZUF1ZGlvMiA9IGdvdFVubXV0ZUV2
ZW50KHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5yZWNlaXZlci50cmFjayk7CiAgICAgbGV0IGdv
dFVubXV0ZVZpZGVvMiA9IGdvdFVubXV0ZUV2ZW50KHBjMi5nZXRUcmFuc2NlaXZlcnMoKVsxXS5y
ZWNlaXZlci50cmFjayk7CisgICAgLy8gSnVtcCBvdXQgYmVmb3JlIHdhaXRpbmcgaWYgYSB0cmFj
ayBpcyB1bm11dGVkIGJlZm9yZSBSVFAgc3RhcnRzIGZsb3dpbmcuCisgICAgYXNzZXJ0X3RydWUo
cGMxLmdldFRyYW5zY2VpdmVycygpWzBdLnJlY2VpdmVyLnRyYWNrLm11dGVkKTsKKyAgICBhc3Nl
cnRfdHJ1ZShwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMV0ucmVjZWl2ZXIudHJhY2subXV0ZWQpOwor
ICAgIGFzc2VydF90cnVlKHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5yZWNlaXZlci50cmFjay5t
dXRlZCk7CisgICAgYXNzZXJ0X3RydWUocGMyLmdldFRyYW5zY2VpdmVycygpWzFdLnJlY2VpdmVy
LnRyYWNrLm11dGVkKTsKIAogICAgIGF3YWl0IGljZUNvbm5lY3RlZChwYzEpOwogICAgIGF3YWl0
IGljZUNvbm5lY3RlZChwYzIpOwogCisKICAgICAvLyBDaGVjayB0aGF0IHJlY2VpdmUgdHJhY2tz
IGFyZSB1bm11dGVkIHdoZW4gUlRQIHN0YXJ0cyBmbG93aW5nCiAgICAgYXdhaXQgZ290VW5tdXRl
QXVkaW8xOwogICAgIGF3YWl0IGdvdFVubXV0ZVZpZGVvMTsKQEAgLTEyNzcsOCArMTMxNCwxMCBA
QAogICAgIHBjMS5jbG9zZSgpOwogICAgIHBjMi5jbG9zZSgpOwogCi0gICAgLy8gU3RpbGwgc2hv
dWxkbid0IHRocm93Ci0gICAgc3RvcHBlZFRyYW5zY2VpdmVyLnN0b3AoKTsKKyAgICAvLyBTcGVj
IHNheXMgdGhlIGNsb3NlZCBjaGVjayBjb21lcyBiZWZvcmUgdGhlIHN0b3BwZWQgY2hlY2ssIHNv
IHRoaXMKKyAgICAvLyBzaG91bGQgdGhyb3cgbm93LgorICAgIGNoZWNrVGhyb3dzKCgpID0+IHN0
b3BwZWRUcmFuc2NlaXZlci5zdG9wKCksCisgICAgICAgICAgICAgICAgIkludmFsaWRTdGF0ZUVy
cm9yIiwgIlJUQ1J0cFRyYW5zY2VpdmVyLnN0b3AoKSB3aXRoIGNsb3NlZCBQQyIpOwogICB9Owog
CiAgIGNvbnN0IGNoZWNrU3RvcEFmdGVyQ3JlYXRlT2ZmZXIgPSBhc3luYyB0ID0+IHsKQEAgLTEz
MjAsMTAgKzEzNTksMTEgQEAKICAgICAgICAgfQogICAgICAgXSk7CiAKKyAgICBhd2FpdCBuZWdv
dGlhdGlvbk5lZWRlZChwYzEpOworCiAgICAgdHJpY2tsZSh0LCBwYzIsIHBjMSk7CiAgICAgYXdh
aXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKIAotICAgIGF3YWl0IG5lZ290aWF0
aW9uTmVlZGVkKHBjMSk7CiAgICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBjMSk7CiAgICAgYXdhaXQg
aWNlQ29ubmVjdGVkKHBjMik7CiAKQEAgLTE5NjYsNiArMjAwNiwzMCBAQAogICAgICAgXSk7CiAg
IH07CiAKKyAgY29uc3QgY2hlY2tCdW5kbGVUYWdSZWplY3RlZCA9IGFzeW5jIHQgPT4geworICAg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qg
c3RyZWFtMSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHthdWRpbzogdHJ1ZX0pOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gc3RvcFRyYWNrcyhzdHJlYW0xKSk7CisgICAgY29uc3QgdHJhY2sxID0g
c3RyZWFtMS5nZXRBdWRpb1RyYWNrcygpWzBdOworICAgIGNvbnN0IHN0cmVhbTIgPSBhd2FpdCBn
ZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0
b3BUcmFja3Moc3RyZWFtMikpOworICAgIGNvbnN0IHRyYWNrMiA9IHN0cmVhbTIuZ2V0QXVkaW9U
cmFja3MoKVswXTsKKworICAgIHBjMS5hZGRUcmFjayh0cmFjazEsIHN0cmVhbTEpOworICAgIHBj
MS5hZGRUcmFjayh0cmFjazIsIHN0cmVhbTIpOworCisgICAgYXdhaXQgb2ZmZXJBbnN3ZXIocGMx
LCBwYzIpOworCisgICAgcGMyLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsKKworICAgIGF3
YWl0IG9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgICBhd2FpdCBvZmZlckFuc3dlcihwYzIsIHBj
MSk7CisgIH07CisKICAgY29uc3QgY2hlY2tNc2VjdGlvblJldXNlID0gYXN5bmMgdCA9PiB7CiAg
ICAgLy8gVXNlIG1heC1jb21wYXQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gY2hlY2sgZm9yIGRpc2Fi
bGVkIG0tc2VjdGlvbnMKICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBi
dW5kbGVQb2xpY3k6ICJtYXgtY29tcGF0IiB9KTsKQEAgLTIxODIsNiArMjI0Niw2OCBAQAogICAg
ICAgICAgICAgICAgICAgIk5vIHJlamVjdGVkIG0tbGluZSwgYmVjYXVzZSBpdCB3YXMgcmV1c2Vk
Iik7CiAgIH07CiAKKyAgY29uc3QgY2hlY2tTdG9wQWZ0ZXJDcmVhdGVPZmZlcldpdGhSZXVzZWRN
c2VjdGlvbiA9IGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICAgIGNvbnN0
IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0o
e2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3Rv
cFRyYWNrcyhzdHJlYW0pKTsKKyAgICBjb25zdCBhdWRpbyA9IHN0cmVhbS5nZXRBdWRpb1RyYWNr
cygpWzBdOworICAgIGNvbnN0IHZpZGVvID0gc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisK
KyAgICBwYzEuYWRkVHJhY2soYXVkaW8sIHN0cmVhbSk7CisgICAgcGMxLmFkZFRyYWNrKHZpZGVv
LCBzdHJlYW0pOworCisgICAgYXdhaXQgb2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICAgIHBjMS5n
ZXRUcmFuc2NlaXZlcnMoKVsxXS5zdG9wKCk7CisgICAgYXdhaXQgb2ZmZXJBbnN3ZXIocGMxLCBw
YzIpOworCisgICAgLy8gU2Vjb25kICh2aWRlbykgbS1zZWN0aW9uIGhhcyBiZWVuIG5lZ290aWF0
ZWQgZGlzYWJsZWQuCisgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYzEuYWRkVHJhbnNjZWl2ZXIo
InZpZGVvIik7CisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAg
ICB0cmFuc2NlaXZlci5zdG9wKCk7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24o
b2ZmZXIpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisKKyAg
ICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgICAgYXdhaXQgcGMy
LnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYW5zd2VyKTsKKyAgfTsKKworICBjb25zdCBjaGVja0FkZEljZUNhbmRpZGF0ZVRv
U3RvcHBlZFRyYW5zY2VpdmVyID0gYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7
CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXRO
b2lzZVN0cmVhbSh7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBzdG9wVHJhY2tzKHN0cmVhbSkpOworICAgIGNvbnN0IGF1ZGlvID0gc3RyZWFtLmdl
dEF1ZGlvVHJhY2tzKClbMF07CisgICAgY29uc3QgdmlkZW8gPSBzdHJlYW0uZ2V0VmlkZW9UcmFj
a3MoKVswXTsKKworICAgIHBjMS5hZGRUcmFjayhhdWRpbywgc3RyZWFtKTsKKyAgICBwYzEuYWRk
VHJhY2sodmlkZW8sIHN0cmVhbSk7CisKKyAgICBwYzIuYWRkVHJhY2soYXVkaW8sIHN0cmVhbSk7
CisgICAgcGMyLmFkZFRyYWNrKHZpZGVvLCBzdHJlYW0pOworCisgICAgYXdhaXQgcGMxLnNldExv
Y2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworICAgIHBjMS5nZXRUcmFu
c2NlaXZlcnMoKVsxXS5zdG9wKCk7CisgICAgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6
ICJyb2xsYmFjayJ9KTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMyLmNyZWF0ZU9mZmVy
KCk7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisKKyAgICBhd2FpdCBwYzEuYWRkSWNl
Q2FuZGlkYXRlKAorICAgICAgeworICAgICAgICBjYW5kaWRhdGU6ICJjYW5kaWRhdGU6MCAxIFVE
UCAyMTIyMjUyNTQzIDE5Mi4xNjguMS4xMTIgNjQyNjEgdHlwIGhvc3QiLAorICAgICAgICBzZHBN
aWQ6IHBjMi5nZXRUcmFuc2NlaXZlcnMoKVsxXS5taWQKKyAgICAgIH0pOworICB9OworCiBjb25z
dCB0ZXN0cyA9IFsKICAgY2hlY2tBZGRUcmFuc2NlaXZlck5vVHJhY2ssCiAgIGNoZWNrQWRkVHJh
bnNjZWl2ZXJXaXRoVHJhY2ssCkBAIC0yMjE3LDcgKzIzNDMsMTAgQEAgY29uc3QgdGVzdHMgPSBb
CiAgIGNoZWNrTG9jYWxSb2xsYmFjaywKICAgY2hlY2tSb2xsYmFja0FuZFNldFJlbW90ZU9mZmVy
V2l0aERpZmZlcmVudFR5cGUsCiAgIGNoZWNrUmVtb3RlUm9sbGJhY2ssCi0gIGNoZWNrTXNlY3Rp
b25SZXVzZQorICBjaGVja01zZWN0aW9uUmV1c2UsCisgIGNoZWNrU3RvcEFmdGVyQ3JlYXRlT2Zm
ZXJXaXRoUmV1c2VkTXNlY3Rpb24sCisgIGNoZWNrQWRkSWNlQ2FuZGlkYXRlVG9TdG9wcGVkVHJh
bnNjZWl2ZXIsCisgIGNoZWNrQnVuZGxlVGFnUmVqZWN0ZWQKIF0uZm9yRWFjaCh0ZXN0ID0+IHBy
b21pc2VfdGVzdCh0ZXN0LCB0ZXN0Lm5hbWUpKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3Rw
VHJhbnNwb3J0LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtY29uc3RydWN0
b3ItZXhwZWN0ZWQudHh0CmluZGV4IGQzYTI3MDcwM2RiOWQ2ODAwMzE5M2M5Y2U0MjQ1NzA4NGJm
ZjRmMmQuLjEzN2ZiYzNiYzFjZDc1OTFlNDYyNjVkZTdhZjIxMGIzM2YxZjg5YTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1NjdHBUcmFuc3BvcnQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQt
Y29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNiBAQAogCi1GQUlMIHNldFJlbW90
ZURlc2NyaXB0aW9uKCkgd2l0aCBhbnN3ZXIgY29udGFpbmluZyBkYXRhIG1lZGlhIHNob3VsZCBp
bml0aWFsaXplIHBjLnNjdHAgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBi
dXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKCkg
d2l0aCBhbnN3ZXIgY29udGFpbmluZyBkYXRhIG1lZGlhIHNob3VsZCBpbml0aWFsaXplIHBjLnNj
dHAgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmlu
ZWQpIHVuZGVmaW5lZAorRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHdpdGggYW5zd2VyIG5v
dCBjb250YWluaW5nIGRhdGEgbWVkaWEgc2hvdWxkIG5vdCBpbml0aWFsaXplIHBjLnNjdHAgYXNz
ZXJ0X2VxdWFsczogUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIG51bGwgZXhwZWN0ZWQgKG9iamVj
dCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBzZXRMb2NhbERlc2Ny
aXB0aW9uKCkgd2l0aCBhbnN3ZXIgbm90IGNvbnRhaW5pbmcgZGF0YSBtZWRpYSBzaG91bGQgbm90
IGluaXRpYWxpemUgcGMuc2N0cCBhc3NlcnRfZXF1YWxzOiBSVENTY3RwVHJhbnNwb3J0IG11c3Qg
YmUgbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkCitGQUlMIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgd2l0aCBhbnN3ZXIgY29udGFpbmluZyBk
YXRhIG1lZGlhIHNob3VsZCBpbml0aWFsaXplIHBjLnNjdHAgYXNzZXJ0X2VxdWFsczogUlRDU2N0
cFRyYW5zcG9ydCBtdXN0IGJlIG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1
bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKCkgd2l0aCBhbnN3
ZXIgY29udGFpbmluZyBkYXRhIG1lZGlhIHNob3VsZCBpbml0aWFsaXplIHBjLnNjdHAgYXNzZXJ0
X2VxdWFsczogUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIG51bGwgZXhwZWN0ZWQgKG9iamVjdCkg
bnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNw
b3J0LWNvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9yLmh0bWwKaW5kZXgg
N2QzZGYwNTFkODc2ZTQ5MGM5MjY2Mzk0OTljMTNiYTBkY2Y4ZDMwYS4uNThjODgzZDUzMzc3NTJm
OWNmZjg3MjcyNmY2ZDk4NWE2NDcyMjljYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1jb25zdHJ1
Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtY29uc3RydWN0b3IuaHRtbApAQCAtNSw4NSArNSwx
MjEgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhl
IGZvbGxvd2luZyBlZGl0b3IgZHJhZnQ6Ci0gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJy
dGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKLQotICAvLyBUaGUgZm9sbG93aW5n
IGhlbHBlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tIFJUQ1BlZXJDb25uZWN0aW9uLWhlbHBl
ci5qczoKLSAgLy8gICBnZW5lcmF0ZURhdGFDaGFubmVsT2ZmZXIoKQotICAvLyAgIGdlbmVyYXRl
QW5zd2VyKCkKLQotICAvKgotICAgIDYuMS4gIFJUQ1BlZXJDb25uZWN0aW9uIEludGVyZmFjZSBF
eHRlbnNpb25zCi0gICAgICBwYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiB7Ci0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTY3RwVHJhbnNwb3J0PyBzY3RwOwotICAgICAg
ICAuLi4KLSAgICAgIH07Ci0KLSAgICAgIDEuMS4gIFJUQ1NjdHBUcmFuc3BvcnQgSW50ZXJmYWNl
Ci0gICAgICAgIGludGVyZmFjZSBSVENTY3RwVHJhbnNwb3J0IHsKLSAgICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgUlRDRHRsc1RyYW5zcG9ydCB0cmFuc3BvcnQ7Ci0gICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgICAgbWF4TWVzc2FnZVNpemU7Ci0gICAgICAgIH07
Ci0KLSAgICA0LjQuMS4xLiAgQ29uc3RydWN0b3IKLSAgICAgIDguICBMZXQgY29ubmVjdGlvbiBo
YXZlIGFuIFtbc2N0cFRyYW5zcG9ydF1dIGludGVybmFsIHNsb3QsIGluaXRpYWxpemVkIHRvIG51
bGwuCi0KLSAgICA0LjMuMS42LiAgU2V0IHRoZSBSVENTZXNzaW9uU2Vzc2lvbkRlc2NyaXB0aW9u
Ci0gICAgICAyLjIuNi4gIElmIGRlc2NyaXB0aW9uIGlzIG9mIHR5cGUgImFuc3dlciIgb3IgInBy
YW5zd2VyIiwgdGhlbiBydW4gdGhlCi0gICAgICAgICAgICAgIGZvbGxvd2luZyBzdGVwczoKLSAg
ICAgICAgMS4gIElmIGRlc2NyaXB0aW9uIGluaXRpYXRlcyB0aGUgZXN0YWJsaXNobWVudCBvZiBh
IG5ldyBTQ1RQIGFzc29jaWF0aW9uLAotICAgICAgICAgICAgYXMgZGVmaW5lZCBpbiBbU0NUUC1T
RFBdLCBTZWN0aW9ucyAxMC4zIGFuZCAxMC40LCBzZXQgdGhlIHZhbHVlIG9mCi0gICAgICAgICAg
ICBjb25uZWN0aW9uJ3MgW1tTY3RwVHJhbnNwb3J0XV0gaW50ZXJuYWwgc2xvdCB0byBhIG5ld2x5
IGNyZWF0ZWQKLSAgICAgICAgICAgIFJUQ1NjdHBUcmFuc3BvcnQuCi0gICAqLwotCi0gIHByb21p
c2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwot
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhw
Yy5zY3RwLCBudWxsKTsKLSAgICBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcpOwotCi0gICAg
cmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCkKLSAgICAudGhlbihvZmZlciA9PgotICAgICAgcGMuc2V0
TG9jYWxEZXNjcmlwdGlvbihvZmZlcikKLSAgICAgIC50aGVuKCgpID0+IGdlbmVyYXRlQW5zd2Vy
KG9mZmVyKSkpCi0gICAgLnRoZW4oYW5zd2VyID0+IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcikpCi0gICAgLnRoZW4oKCkgPT4gewotICAgICAgY29uc3QgeyBzY3RwIH0gPSBwYzsKLSAg
ICAgIGFzc2VydF9ub3RfZXF1YWxzKHNjdHAsIG51bGwpOwotICAgICAgYXNzZXJ0X3RydWUoc2N0
cCBpbnN0YW5jZW9mIFJUQ1NjdHBUcmFuc3BvcnQsCi0gICAgICAgICdFeHBlY3QgcGMuc2N0cCB0
byBiZSBpbnN0YW5jZSBvZiBSVENTY3RwVHJhbnNwb3J0Jyk7Ci0KLSAgICAgIGFzc2VydF90cnVl
KHNjdHAudHJhbnNwb3J0IGluc3RhbmNlb2YgUlRDRHRsc1RyYW5zcG9ydCwKLSAgICAgICAgJ0V4
cGVjdCBzY3RwLnRyYW5zcG9ydCB0byBiZSBpbnN0YW5jZSBvZiBSVENEdGxzVHJhbnNwb3J0Jyk7
Ci0KLSAgICAgIGFzc2VydF90cnVlKHR5cGVvZiBzY3RwLm1heE1lc3NhZ2VTaXplLCAnbnVtYmVy
JywKLSAgICAgICAgJ0V4cGVjdCBzY3RwLm1heE1lc3NhZ2VTaXplIHRvIGJlIGEgbnVtYmVyJyk7
Ci0gICAgfSk7Ci0gIH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHdpdGggYW5zd2VyIGNvbnRh
aW5pbmcgZGF0YSBtZWRpYSBzaG91bGQgaW5pdGlhbGl6ZSBwYy5zY3RwJyk7Ci0KLSAgcHJvbWlz
ZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0g
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAgICBhc3NlcnRfZXF1YWxzKHBj
LnNjdHAsIG51bGwpOwotCi0gICAgcmV0dXJuIGdlbmVyYXRlRGF0YUNoYW5uZWxPZmZlcihwYykK
LSAgICAudGhlbihvZmZlciA9PiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpCi0gICAg
LnRoZW4oKCkgPT4gcGMuY3JlYXRlQW5zd2VyKCkpCi0gICAgLnRoZW4oYW5zd2VyID0+IHBjLnNl
dExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSkKLSAgICAudGhlbigoKSA9PiB7Ci0gICAgICBjb25z
dCB7IHNjdHAgfSA9IHBjOwotICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoc2N0cCwgbnVsbCk7Ci0g
ICAgICBhc3NlcnRfdHJ1ZShzY3RwIGluc3RhbmNlb2YgUlRDU2N0cFRyYW5zcG9ydCwKLSAgICAg
ICAgJ0V4cGVjdCBwYy5zY3RwIHRvIGJlIGluc3RhbmNlIG9mIFJUQ1NjdHBUcmFuc3BvcnQnKTsK
LQotICAgICAgYXNzZXJ0X3RydWUoc2N0cC50cmFuc3BvcnQgaW5zdGFuY2VvZiBSVENEdGxzVHJh
bnNwb3J0LAotICAgICAgICAnRXhwZWN0IHNjdHAudHJhbnNwb3J0IHRvIGJlIGluc3RhbmNlIG9m
IFJUQ0R0bHNUcmFuc3BvcnQnKTsKLQotICAgICAgYXNzZXJ0X3RydWUodHlwZW9mIHNjdHAubWF4
TWVzc2FnZVNpemUsICdudW1iZXInLAotICAgICAgICAnRXhwZWN0IHNjdHAubWF4TWVzc2FnZVNp
emUgdG8gYmUgYSBudW1iZXInKTsKLSAgICB9KTsKLSAgfSwgJ3NldExvY2FsRGVzY3JpcHRpb24o
KSB3aXRoIGFuc3dlciBjb250YWluaW5nIGRhdGEgbWVkaWEgc2hvdWxkIGluaXRpYWxpemUgcGMu
c2N0cCcpOworJ3VzZSBzdHJpY3QnOworCisvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dp
bmcgcmV2aXNpb246CisvLyBodHRwczovL3Jhd2dpdC5jb20vdzNjL3dlYnJ0Yy1wYy8xY2M1YmZj
M2ZmMTg3NDEwMzNkODA0YzRhNzFmNzg5MTI0MmZiNWIzL3dlYnJ0Yy5odG1sCisKKy8vIFRoZSBm
b2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gUlRDUGVlckNvbm5lY3Rp
b24taGVscGVyLmpzOgorLy8gICBnZW5lcmF0ZURhdGFDaGFubmVsT2ZmZXIoKQorLy8gICBnZW5l
cmF0ZUFuc3dlcigpCisKKy8qCisgIDYuMS4KKworICAgIHBhcnRpYWwgaW50ZXJmYWNlIFJUQ1Bl
ZXJDb25uZWN0aW9uIHsKKyAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTY3RwVHJhbnNwb3J0
PyBzY3RwOworICAgICAgLi4uCisgICAgfTsKKworICA2LjEuMS4KKworICAgIGludGVyZmFjZSBS
VENTY3RwVHJhbnNwb3J0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0R0bHNUcmFu
c3BvcnQgICAgICB0cmFuc3BvcnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTY3Rw
VHJhbnNwb3J0U3RhdGUgc3RhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3Ry
aWN0ZWQgZG91YmxlICAgbWF4TWVzc2FnZVNpemU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgICAgICAgICAgb25zdGF0ZWNoYW5nZTsKKyAgICB9OworCisgIDQuNC4x
LjEuICBDb25zdHJ1Y3RvcgorICAgIDkuICAgICAgTGV0IGNvbm5lY3Rpb24gaGF2ZSBhbiBbW1Nj
dHBUcmFuc3BvcnRdXSBpbnRlcm5hbCBzbG90LCBpbml0aWFsaXplZCB0byBudWxsLgorCisgIDQu
NC4xLjYuICBTZXQgdGhlIFJUQ1Nlc3Npb25TZXNzaW9uRGVzY3JpcHRpb24KKyAgICAyLjIuNi4g
IElmIGRlc2NyaXB0aW9uIGlzIG9mIHR5cGUgImFuc3dlciIgb3IgInByYW5zd2VyIiwgdGhlbiBy
dW4gdGhlCisgICAgICAgICAgICBmb2xsb3dpbmcgc3RlcHM6CisgICAgICAxLiAgICBJZiBkZXNj
cmlwdGlvbiBpbml0aWF0ZXMgdGhlIGVzdGFibGlzaG1lbnQgb2YgYSBuZXcgU0NUUCBhc3NvY2lh
dGlvbiwgYXMgZGVmaW5lZCBpbgorICAgICAgICAgICAgW1NDVFAtU0RQXSwgU2VjdGlvbnMgMTAu
MyBhbmQgMTAuNCwgY3JlYXRlIGFuIFJUQ1NjdHBUcmFuc3BvcnQgd2l0aCBhbiBpbml0aWFsIHN0
YXRlCisgICAgICAgICAgICBvZiAiY29ubmVjdGluZyIgYW5kIGFzc2lnbiB0aGUgcmVzdWx0IHRv
IHRoZSBbW1NjdHBUcmFuc3BvcnRdXSBzbG90LgorICovCisKK3Byb21pc2VfdGVzdChhc3luYyAo
dCkgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBhc3Nl
cnRfZXF1YWxzKHBjMS5zY3RwLCBudWxsLCAnUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIG51bGwn
KTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IGdlbmVyYXRlQXVkaW9SZWNlaXZlT25seU9mZmVy
KHBjMSk7CisgIGF3YWl0IFByb21pc2UuYWxsKFtwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZl
ciksIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcildKTsKKyAgY29uc3QgYW5zd2VyID0g
YXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYW5zd2VyKTsKKworICBhc3NlcnRfZXF1YWxzKHBjMS5zY3RwLCBudWxsLCAnUlRDU2N0cFRy
YW5zcG9ydCBtdXN0IHJlbWFpbiBudWxsJyk7Cit9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24oKSB3
aXRoIGFuc3dlciBub3QgY29udGFpbmluZyBkYXRhIG1lZGlhIHNob3VsZCBub3QgaW5pdGlhbGl6
ZSBwYy5zY3RwJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICBjb25zdCBwYzEg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBhc3NlcnRfZXF1YWxzKHBjMS5zY3RwLCBu
dWxsLCAnUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIG51bGwnKTsKKworICBjb25zdCBvZmZlciA9
IGF3YWl0IGdlbmVyYXRlQXVkaW9SZWNlaXZlT25seU9mZmVyKHBjMik7CisgIGF3YWl0IFByb21p
c2UuYWxsKFtwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlciksIHBjMS5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcildKTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMxLmNyZWF0ZUFuc3dl
cigpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworCisgIGFzc2Vy
dF9lcXVhbHMocGMxLnNjdHAsIG51bGwsICdSVENTY3RwVHJhbnNwb3J0IG11c3QgcmVtYWluIG51
bGwnKTsKK30sICdzZXRMb2NhbERlc2NyaXB0aW9uKCkgd2l0aCBhbnN3ZXIgbm90IGNvbnRhaW5p
bmcgZGF0YSBtZWRpYSBzaG91bGQgbm90IGluaXRpYWxpemUgcGMuc2N0cCcpOworCitmdW5jdGlv
biB2YWxpZGF0ZVNjdHBUcmFuc3BvcnQoc2N0cCkgeworICBhc3NlcnRfbm90X2VxdWFscyhzY3Rw
LCBudWxsLCAnUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIGF2YWlsYWJsZScpOworCisgIGFzc2Vy
dF90cnVlKHNjdHAgaW5zdGFuY2VvZiBSVENTY3RwVHJhbnNwb3J0LAorICAgICdFeHBlY3QgcGMu
c2N0cCB0byBiZSBpbnN0YW5jZSBvZiBSVENTY3RwVHJhbnNwb3J0Jyk7CisKKyAgYXNzZXJ0X3Ry
dWUoc2N0cC50cmFuc3BvcnQgaW5zdGFuY2VvZiBSVENEdGxzVHJhbnNwb3J0LAorICAgICdFeHBl
Y3Qgc2N0cC50cmFuc3BvcnQgdG8gYmUgaW5zdGFuY2Ugb2YgUlRDRHRsc1RyYW5zcG9ydCcpOwor
CisgIGFzc2VydF9lcXVhbHMoc2N0cC5zdGF0ZSwgJ2Nvbm5lY3RpbmcnLCAnUlRDU2N0cFRyYW5z
cG9ydCBzaG91bGQgYmUgaW4gdGhlIGNvbm5lY3Rpbmcgc3RhdGUnKTsKKworICAvLyBOb3RlOiBZ
ZXMsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSBpcyBhbHNvIGEgJ251bWJlcicKKyAgYXNzZXJ0
X3RydWUodHlwZW9mIHNjdHAubWF4TWVzc2FnZVNpemUgPT09ICdudW1iZXInLAorICAgICdFeHBl
Y3Qgc2N0cC5tYXhNZXNzYWdlU2l6ZSB0byBiZSBhIG51bWJlcicpOworfQorCitwcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7
CisKKyAgYXNzZXJ0X2VxdWFscyhwYzEuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVz
dCBiZSBudWxsJyk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBnZW5lcmF0ZURhdGFDaGFubmVs
T2ZmZXIocGMxKTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwoW3BjMS5zZXRMb2NhbERlc2NyaXB0aW9u
KG9mZmVyKSwgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKV0pOworICBjb25zdCBhbnN3
ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNj
cmlwdGlvbihhbnN3ZXIpOworCisgIHZhbGlkYXRlU2N0cFRyYW5zcG9ydChwYzEuc2N0cCk7Cit9
LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24oKSB3aXRoIGFuc3dlciBjb250YWluaW5nIGRhdGEgbWVk
aWEgc2hvdWxkIGluaXRpYWxpemUgcGMuc2N0cCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHQp
ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgYXNzZXJ0
X2VxdWFscyhwYzEuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBudWxsJyk7
CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBnZW5lcmF0ZURhdGFDaGFubmVsT2ZmZXIocGMyKTsK
KyAgYXdhaXQgUHJvbWlzZS5hbGwoW3BjMi5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKSwgcGMx
LnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKV0pOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBw
YzEuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dl
cik7CisKKyAgdmFsaWRhdGVTY3RwVHJhbnNwb3J0KHBjMS5zY3RwKTsKK30sICdzZXRMb2NhbERl
c2NyaXB0aW9uKCkgd2l0aCBhbnN3ZXIgY29udGFpbmluZyBkYXRhIG1lZGlhIHNob3VsZCBpbml0
aWFsaXplIHBjLnNjdHAnKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWV2
ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTMwNmFjYWNhOTBlYzdkMjJhMjIxNGJkNDkwZWZmYjUwZGI0ZmE4NAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1NjdHBUcmFuc3BvcnQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
KworSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBVbmhhbmRsZWQgcmVqZWN0aW9uOiB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndHJhbnNwb3J0LnN0YXRlJykK
KworRkFJTCBTY3RwVHJhbnNwb3J0IG9iamVjdHMgYXJlIGNyZWF0ZWQgYXQgYXBwcm9wcmlhdGUg
dGltZXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBn
b3QgKG9iamVjdCkgbnVsbAorRkFJTCBTY3RwVHJhbnNwb3J0IHJlYWNoZXMgY29ubmVjdGVkIGFu
ZCBjbG9zZWQgc3RhdGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAndHJhbnNwb3J0LnN0YXRlJykiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtZXZlbnRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENTY3RwVHJhbnNwb3J0LWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3YjY5MWE5Y2Q2MjBm
YTM4MzZkOWU2NDVjNzEyZTRjYmRkNDA5NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0
LWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hh
cnNldD11dGYtOD4KKzx0aXRsZT5SVENJY2VUcmFuc3BvcnQ8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1Bl
ZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3Qn
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMyLmNsb3NlKCkpOworICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJycpOworICBhc3NlcnRfZXF1
YWxzKG51bGwsIHBjMS5zY3RwKTsKKyAgYXNzZXJ0X2VxdWFscyhudWxsLCBwYzIuc2N0cCk7Cisg
IGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjMS5zZXRM
b2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMobnVsbCwgcGMxLnNj
dHApOworICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBhc3NlcnRf
bm90X2VxdWFscyhudWxsLCBwYzIuc2N0cCk7CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5j
cmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsK
KyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisgIC8vIFNpbmNlIHRo
aXMgdGVzdCBkb2VzIG5vdCBleGNoYW5nZSBjYW5kaWRhdGVzLCBzdGF0ZSByZW1haW5zICJjb25u
ZWN0aW5nIi4KKyAgYXNzZXJ0X2VxdWFscyhwYzEuc2N0cC5zdGF0ZSwgImNvbm5lY3RpbmciKTsK
KyAgYXNzZXJ0X2VxdWFscyhwYzIuc2N0cC5zdGF0ZSwgImNvbm5lY3RpbmciKTsKK30sICdTY3Rw
VHJhbnNwb3J0IG9iamVjdHMgYXJlIGNyZWF0ZWQgYXQgYXBwcm9wcmlhdGUgdGltZXMnKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgcGMxLmNyZWF0
ZURhdGFDaGFubmVsKCcnKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIo
KTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBwYzFD
b25uZWN0ZWRXYWl0ZXIgPSB3YWl0Rm9yU3RhdGUocGMxLnNjdHAsICdjb25uZWN0ZWQnKTsKKyAg
YXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3QgcGMyQ29ubmVj
dGVkV2FpdGVyID0gd2FpdEZvclN0YXRlKHBjMi5zY3RwLCAnY29ubmVjdGVkJyk7CisgIGNvbnN0
IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMyLnNldExvY2Fs
RGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcik7CisgIGF3YWl0IHBjMUNvbm5lY3RlZFdhaXRlcjsKKyAgYXdhaXQgcGMyQ29ubmVjdGVk
V2FpdGVyOworICBjb25zdCBwYzFDbG9zZWRXYWl0ZXIgPSB3YWl0Rm9yU3RhdGUocGMxLnNjdHAs
ICdjbG9zZWQnKTsKKyAgY29uc3QgcGMyQ2xvc2VkV2FpdGVyID0gd2FpdEZvclN0YXRlKHBjMi5z
Y3RwLCAnY2xvc2VkJyk7CisgIHBjMS5jbG9zZSgpOworICBhd2FpdCBwYzFDbG9zZWRXYWl0ZXI7
CisgIGF3YWl0IHBjMkNsb3NlZFdhaXRlcjsKK30sICdTY3RwVHJhbnNwb3J0IHJlYWNoZXMgY29u
bmVjdGVkIGFuZCBjbG9zZWQgc3RhdGUnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJh
bnNwb3J0LW1heENoYW5uZWxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtbWF4Q2hhbm5lbHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1YWNkMjlkMjNjZDZkMjJkYjQ0Zjc3NGMyN2Q1YjU4
MTQ0Y2IwNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LW1heENoYW5uZWxzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2Ug
PSBVbmhhbmRsZWQgcmVqZWN0aW9uOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAndHJhbnNwb3J0LnN0YXRlJykKKworRkFJTCBBbiB1bmNvbm5lY3RlZCBwZWVyY29ubmVj
dGlvbiBtdXN0IG5vdCBoYXZlIG1heENoYW5uZWxzIHNldCBhc3NlcnRfZXF1YWxzOiBSVENTY3Rw
VHJhbnNwb3J0IG11c3QgYmUgbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVu
ZGVmaW5lZCkgdW5kZWZpbmVkCitGQUlMIG1heENoYW5uZWxzIGdldHMgaW5zdGFudGlhdGVkIGFm
dGVyIGNvbm5lY3RpbmcgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAncGMxLnNjdHAubWF4Q2hhbm5lbHMnKSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1t
YXhDaGFubmVscy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1tYXhDaGFubmVscy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIxNzNlMTFjNzRhNTZjMTUxYzc4MzhiY2JlMDQwMzBjNDUyNTljY2UKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENTY3RwVHJhbnNwb3J0LW1heENoYW5uZWxzLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1NjdHBUcmFuc3BvcnQu
cHJvdG90eXBlLm1heENoYW5uZWxzPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jcnRjc2N0cHRyYW5zcG9ydC1pbnRlcmZhY2Ui
PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cisn
dXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3Nl
KCkpOworCisgIGFzc2VydF9lcXVhbHMocGMuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQg
bXVzdCBiZSBudWxsJyk7CisgIHBjLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0Jyk7CisgIGNvbnN0
IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYy5jcmVhdGVBbnN3ZXIo
KTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworCisgIGFzc2VydF9u
b3RfZXF1YWxzKHBjLnNjdHAsIG51bGwsICdSVENTY3RwVHJhbnNwb3J0IG11c3QgYmUgYXZhaWxh
YmxlJyk7CisgIGFzc2VydF9lcXVhbHMocGMuc2N0cC5tYXhDaGFubmVscywgbnVsbCwgJ21heENo
YW5uZWxzIG11c3Qgbm90IGJlIHNldCcpOworfSwgJ0FuIHVuY29ubmVjdGVkIHBlZXJjb25uZWN0
aW9uIG11c3Qgbm90IGhhdmUgbWF4Q2hhbm5lbHMgc2V0Jyk7CisKK3Byb21pc2VfdGVzdChhc3lu
YyAodCkgPT4geworICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBl
eGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwo
JycpOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworICBhd2FpdCBw
YzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgIGNvbnN0IHBjMUNvbm5lY3RlZFdhaXRl
ciA9IHdhaXRGb3JTdGF0ZShwYzEuc2N0cCwgJ2Nvbm5lY3RlZCcpOworICBhd2FpdCBwYzIuc2V0
UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBwYzJDb25uZWN0ZWRXYWl0ZXIgPSB3
YWl0Rm9yU3RhdGUocGMyLnNjdHAsICdjb25uZWN0ZWQnKTsKKyAgY29uc3QgYW5zd2VyID0gYXdh
aXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihh
bnN3ZXIpOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXNz
ZXJ0X2VxdWFscyhudWxsLCBwYzEuc2N0cC5tYXhDaGFubmVscyk7CisgIGFzc2VydF9lcXVhbHMo
bnVsbCwgcGMyLnNjdHAubWF4Q2hhbm5lbHMpOworICBhd2FpdCBwYzFDb25uZWN0ZWRXYWl0ZXI7
CisgIGF3YWl0IHBjMkNvbm5lY3RlZFdhaXRlcjsKKyAgYXNzZXJ0X25vdF9lcXVhbHMobnVsbCwg
cGMxLnNjdHAubWF4Q2hhbm5lbHMpOworICBhc3NlcnRfbm90X2VxdWFscyhudWxsLCBwYzIuc2N0
cC5tYXhDaGFubmVscyk7CisgIGFzc2VydF9lcXVhbHMocGMxLnNjdHAubWF4Q2hhbm5lbHMsIHBj
Mi5zY3RwLm1heENoYW5uZWxzKTsKK30sICdtYXhDaGFubmVscyBnZXRzIGluc3RhbnRpYXRlZCBh
ZnRlciBjb25uZWN0aW5nJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtbWF4
TWVzc2FnZVNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1tYXhNZXNzYWdlU2l6ZS1leHBl
Y3RlZC50eHQKaW5kZXggMDBlM2RlMDkyOGFlZGM4NDRmNjczM2M0ZGQ2YzQ2NzdkN2EzNTU2OC4u
OTMwMWE0ZTY4MWM2MjI0MDUyZTcxNTlhNzE0ZmQ5MDJlNTQ2Njk0NCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRy
YW5zcG9ydC1tYXhNZXNzYWdlU2l6ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1tYXhN
ZXNzYWdlU2l6ZS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKLUZBSUwgRGV0ZXJtaW5l
IHRoZSBsb2NhbCBzaWRlIHNlbmQgbGltaXRhdGlvbiAoY2FuU2VuZFNpemUpIGJ5IG9mZmVyaW5n
IGEgbWF4LW1lc3NhZ2Utc2l6ZSBvZiAwIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3Qp
IG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgUmVtb3RlIG9mZmVyIFNE
UCBtaXNzaW5nIG1heC1tZXNzYWdlLXNpemUgYXR0cmlidXRlIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgbWF4
LW1lc3NhZ2Utc2l6ZSB3aXRoIGEgKG5vbi16ZXJvKSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcmVt
b3RlIHBlZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1
bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBSZW5lZ290aWF0ZSBtYXgtbWVzc2FnZS1zaXplIHdp
dGggYSAobm9uLXplcm8pIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSByZW1vdGUgcGVlciBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkCi1GQUlMIG1heC1tZXNzYWdlLXNpemUgd2l0aCBhIChub24temVybykgdmFsdWUgbGFyZ2Vy
IHRoYW4gY2FuU2VuZFNpemUgcHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVyIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQK
K0ZBSUwgRGV0ZXJtaW5lIHRoZSBsb2NhbCBzaWRlIHNlbmQgbGltaXRhdGlvbiAoY2FuU2VuZFNp
emUpIGJ5IG9mZmVyaW5nIGEgbWF4LW1lc3NhZ2Utc2l6ZSBvZiAwIGFzc2VydF9lcXVhbHM6IFJU
Q1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwgUmVtb3RlIG9mZmVyIFNEUCBtaXNzaW5nIG1h
eC1tZXNzYWdlLXNpemUgYXR0cmlidXRlIGFzc2VydF9ub3RfZXF1YWxzOiBjYW5TZW5kU2l6ZSBu
ZWVkcyB0byBiZSBkZXRlcm1pbmVkIGdvdCBkaXNhbGxvd2VkIHZhbHVlIG51bGwKK0ZBSUwgbWF4
LW1lc3NhZ2Utc2l6ZSB3aXRoIGEgKG5vbi16ZXJvKSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcmVt
b3RlIHBlZXIgYXNzZXJ0X25vdF9lcXVhbHM6IGNhblNlbmRTaXplIG5lZWRzIHRvIGJlIGRldGVy
bWluZWQgZ290IGRpc2FsbG93ZWQgdmFsdWUgbnVsbAorRkFJTCBSZW5lZ290aWF0ZSBtYXgtbWVz
c2FnZS1zaXplIHdpdGggdmFyaW91cyB2YWx1ZXMgcHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVy
IGFzc2VydF9ub3RfZXF1YWxzOiBjYW5TZW5kU2l6ZSBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIGdv
dCBkaXNhbGxvd2VkIHZhbHVlIG51bGwKK0ZBSUwgbWF4LW1lc3NhZ2Utc2l6ZSB3aXRoIGEgKG5v
bi16ZXJvKSB2YWx1ZSBsYXJnZXIgdGhhbiBjYW5TZW5kU2l6ZSBwcm92aWRlZCBieSB0aGUgcmVt
b3RlIHBlZXIgYXNzZXJ0X25vdF9lcXVhbHM6IGNhblNlbmRTaXplIG5lZWRzIHRvIGJlIGRldGVy
bWluZWQgZ290IGRpc2FsbG93ZWQgdmFsdWUgbnVsbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0
LW1heE1lc3NhZ2VTaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LW1heE1lc3NhZ2VTaXplLmh0bWwKaW5k
ZXggOTE2M2E2NmFmMTUxZTNlMmYxM2FiN2M0YTQwZTU2ZTNmMTYyYzk3Zi4uOTk3Njc2MTE1MDkx
OTdhM2QxMDM3OTU3NTUxZmVhMzk3ZWNhZDIxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1tYXhN
ZXNzYWdlU2l6ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtbWF4TWVzc2FnZVNpemUuaHRtbApAQCAt
OSwxMCArOSwxMyBAQAogJ3VzZSBzdHJpY3QnOwogCiAvLyBUaGlzIHRlc3QgaGFzIGFuIGFzc2Vy
dF91bnJlYWNoZWQoKSB0aGF0IHJlcXVpcmVzIHRoYXQgdGhlIHZhcmlhYmxlCi0vLyBjYW5TZW5k
U2l6ZSAoaW5pdGlhdGVkIGJlbG93KSBpcyBncmVhdGVyIHRoYW4gMiwgaWYgbm9uLXplcm8uIFRo
ZSByZWFzb24KLS8vIGlzIHRoYXQgd2UgbmVlZCB0d28gbm9uLXplcm8gdmFsdWVzIHRoYXQgYXJl
IGxlc3MgdGhhdCB0aGF0IHZhbHVlIGZvcgotLy8gdGVzdGluZyB3aXRoIHByZWRpY3RhYmxlIHJl
c3VsdHMuIFRoaXMgaXMgYSBiaXQgdW5mb3J0dW5hdGUgYnV0IHNob3VsZG4ndAotLy8gaGF2ZSBh
bnkgcHJhY3RpY2FsIGltcGFjdC4KKy8vIGNhblNlbmRTaXplIChpbml0aWF0ZWQgYmVsb3cpIG11
c3QgYmUgMCBvciBncmVhdGVyIHRoYW4gMi4gVGhlIHJlYXNvbgorLy8gaXMgdGhhdCB3ZSBuZWVk
IHR3byBub24temVybyB2YWx1ZXMgZm9yIHRlc3RpbmcgdGhlIGZvbGxvd2luZyB0d28gY2FzZXM6
CisvLworLy8gKiBpZiByZW1vdGUgTU1TIGAxYCA8IGNhblNlbmRTaXplIGl0IHNob3VsZCByZXN1
bHQgaW4gYDFgLgorLy8gKiByZW5lZ290aWF0aW9uIG9mIHRoZSBhYm92ZSBjYXNlIHdpdGggcmVt
b3RlTU1TIGAyYCBzaG91bGQgcmVzdWx0IGluIGAyYC4KKy8vCisvLyBUaGlzIGlzIGEgYml0IHVu
Zm9ydHVuYXRlIGJ1dCBzaG91bGRuJ3QgaGF2ZSBhbnkgcHJhY3RpY2FsIGltcGFjdC4KIAogLy8g
SGVscGVyIGNsYXNzIHRvIHJlYWQgU0RQIGF0dHJpYnV0ZXMgYW5kIGdlbmVyYXRlIFNEUHMgd2l0
aCBtb2RpZmllZCBhdHRyaWJ1dGUgdmFsdWVzCiBjbGFzcyBTRFBBdHRyaWJ1dGVIZWxwZXIgewpA
QCAtMzksMTQ4ICs0MiwxNjUgQEAgY2xhc3MgU0RQQXR0cmlidXRlSGVscGVyIHsKIH0KIAogY29u
c3QgbW1zQXR0cmlidXRlSGVscGVyID0gbmV3IFNEUEF0dHJpYnV0ZUhlbHBlcignbWF4LW1lc3Nh
Z2Utc2l6ZScsICdcXGQrJyk7Ci1sZXQgY2FuU2VuZFNpemU7Ci1jb25zdCByZW1vdGVWYWx1ZTEg
PSAxOwotY29uc3QgcmVtb3RlVmFsdWUyID0gMjsKK2xldCBjYW5TZW5kU2l6ZSA9IG51bGw7Citj
b25zdCByZW1vdGVTaXplMSA9IDE7Citjb25zdCByZW1vdGVTaXplMiA9IDI7CiAKLXByb21pc2Vf
dGVzdCh0ID0+IHsKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OwotICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAsIG51bGwpOwotICBsZXQgbWF4TWVzc2FnZVNpemU7
Ci0KLSAgcmV0dXJuIGdlbmVyYXRlRGF0YUNoYW5uZWxPZmZlcihwYykKLSAgLnRoZW4oKG9mZmVy
KSA9PiB7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMobW1zQXR0cmlidXRlSGVscGVyLmdldFZhbHVl
KG9mZmVyLnNkcCksIG51bGwsCi0gICAgICAnU0RQIHNob3VsZCBoYXZlIG1heC1tZXNzYWdlLXNp
emUgYXR0cmlidXRlJyk7Ci0KLSAgICBvZmZlciA9IHsgdHlwZTogJ29mZmVyJywgc2RwOiBtbXNB
dHRyaWJ1dGVIZWxwZXIuc2RwV2l0aFZhbHVlKG9mZmVyLnNkcCwgMCkgfTsKLSAgICByZXR1cm4g
cGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwotICB9KQotICAudGhlbigoKSA9PiBwYy5j
cmVhdGVBbnN3ZXIoKSkKLSAgLnRoZW4oKGFuc3dlcikgPT4gcGMuc2V0TG9jYWxEZXNjcmlwdGlv
bihhbnN3ZXIpKQotICAudGhlbigoKSA9PiB7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMocGMuc2N0
cCwgbnVsbCk7Ci0gICAgY2FuU2VuZFNpemUgPSBwYy5zY3RwLm1heE1lc3NhZ2VTaXplID09IE51
bWJlci5QT1NJVElWRV9JTkZJTklUWSA/IDAgOiBwYy5zY3RwLm1heE1lc3NhZ2VTaXplOwotICAg
IGlmIChjYW5TZW5kU2l6ZSAhPSAwICYmIGNhblNlbmRTaXplIDwgcmVtb3RlVmFsdWUyKSB7Ci0g
ICAgICBhc3NlcnRfdW5yZWFjaGVkKCdUaGlzIHRlc3QgbmVlZHMgdHdvIHZhbHVlcyB0aGF0IGFy
ZSBsZXNzIHRoYW4gY2FuU2VuZFNpemUgKHVubGVzcyBpdCBpcyB6ZXJvKScpOwotICAgIH0KLSAg
fSk7CisKKyAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLCBudWxsLCAnUlRDU2N0cFRyYW5zcG9ydCBt
dXN0IGJlIG51bGwnKTsKKworICBsZXQgb2ZmZXIgPSBhd2FpdCBnZW5lcmF0ZURhdGFDaGFubmVs
T2ZmZXIocGMpOworICBhc3NlcnRfbm90X2VxdWFscyhtbXNBdHRyaWJ1dGVIZWxwZXIuZ2V0VmFs
dWUob2ZmZXIuc2RwKSwgbnVsbCwKKyAgICAnU0RQIHNob3VsZCBoYXZlIG1heC1tZXNzYWdlLXNp
emUgYXR0cmlidXRlJyk7CisgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1tc0F0dHJp
YnV0ZUhlbHBlci5zZHBXaXRoVmFsdWUob2ZmZXIuc2RwLCAwKSB9OworICBhd2FpdCBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0
ZUFuc3dlcigpOworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAg
YXNzZXJ0X25vdF9lcXVhbHMocGMuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBi
ZSBhdmFpbGFibGUnKTsKKyAgY2FuU2VuZFNpemUgPSBwYy5zY3RwLm1heE1lc3NhZ2VTaXplID09
PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgPyAwIDogcGMuc2N0cC5tYXhNZXNzYWdlU2l6ZTsK
KyAgaWYgKGNhblNlbmRTaXplICE9PSAwICYmIGNhblNlbmRTaXplIDwgcmVtb3RlU2l6ZTIpIHsK
KyAgICBhc3NlcnRfdW5yZWFjaGVkKAorICAgICAgJ1RoaXMgdGVzdCBuZWVkcyBjYW5TZW5kU2l6
ZSB0byBiZSAwIG9yID4gMiBmb3IgZnVydGhlciAiYmVsb3ciIGFuZCAiYWJvdmUiIHRlc3RzJyk7
CisgIH0KIH0sICdEZXRlcm1pbmUgdGhlIGxvY2FsIHNpZGUgc2VuZCBsaW1pdGF0aW9uIChjYW5T
ZW5kU2l6ZSkgYnkgb2ZmZXJpbmcgYSBtYXgtbWVzc2FnZS1zaXplIG9mIDAnKTsKIAotcHJvbWlz
ZV90ZXN0KHQgPT4geworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGFzc2VydF9ub3Rf
ZXF1YWxzKGNhblNlbmRTaXplLCBudWxsLCAnY2FuU2VuZFNpemUgbmVlZHMgdG8gYmUgZGV0ZXJt
aW5lZCcpOworCiAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gIGFzc2VydF9lcXVhbHMocGMuc2N0cCwgbnVs
bCk7Ci0KLSAgcmV0dXJuIGdlbmVyYXRlRGF0YUNoYW5uZWxPZmZlcihwYykKLSAgLnRoZW4oKG9m
ZmVyKSA9PiB7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMobW1zQXR0cmlidXRlSGVscGVyLmdldFZh
bHVlKG9mZmVyLnNkcCksIG51bGwsCi0gICAgICAnU0RQIHNob3VsZCBoYXZlIG1heC1tZXNzYWdl
LXNpemUgYXR0cmlidXRlJyk7Ci0KLSAgICAvLyBSZW1vdmUgdGhlIG1heC1tZXNzYWdlLXNpemUg
U0RQIGF0dHJpYnV0ZQotICAgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1tc0F0dHJp
YnV0ZUhlbHBlci5zZHBXaXRob3V0QXR0cmlidXRlKG9mZmVyLnNkcCkgfTsKLSAgICByZXR1cm4g
cGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpCi0gIH0pCi0gIC50aGVuKCgpID0+IHBjLmNy
ZWF0ZUFuc3dlcigpKQotICAudGhlbigoYW5zd2VyKSA9PiBwYy5zZXRMb2NhbERlc2NyaXB0aW9u
KGFuc3dlcikpCi0gIC50aGVuKCgpID0+IHsKLSAgICBhc3NlcnRfbm90X2VxdWFscyhwYy5zY3Rw
LCBudWxsKTsKLSAgICAvLyBUZXN0IG91dGNvbWUgZGVwZW5kcyBvbiBjYW5TZW5kU2l6ZSB2YWx1
ZQotICAgIGlmIChjYW5TZW5kU2l6ZSkgewotICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLm1h
eE1lc3NhZ2VTaXplLCBNYXRoLm1pbig2NTUzNiwgY2FuU2VuZFNpemUpLAotICAgICAgICAnTWlz
c2luZyBTRFAgYXR0cmlidXRlIGFuZCBhIG5vbi16ZXJvIGNhblNlbmRTaXplIHNob3VsZCBnaXZl
IGFuIG1heE1lc3NhZ2VTaXplIG9mIG1pbig2NTUzNiwgY2FuU2VuZFNpemUpJyk7Ci0gICAgfSBl
bHNlIHsKLSAgICAgIGFzc2VydF9lcXVhbHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6ZSwgNjU1MzYs
Ci0gICAgICAgICdNaXNzaW5nIFNEUCBhdHRyaWJ1dGUgYW5kIGEgY2FuU2VuZFNpemUgb2YgMCBz
aG91bGQgZ2l2ZSBhbiBtYXhNZXNzYWdlU2l6ZSBvZiA2NTUzNicpOwotICAgIH0KLSAgfSk7CisK
KyAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLCBudWxsLCAnUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJl
IG51bGwnKTsKKworICBsZXQgb2ZmZXIgPSBhd2FpdCBnZW5lcmF0ZURhdGFDaGFubmVsT2ZmZXIo
cGMpOworICBhc3NlcnRfbm90X2VxdWFscyhtbXNBdHRyaWJ1dGVIZWxwZXIuZ2V0VmFsdWUob2Zm
ZXIuc2RwKSwgbnVsbCwKKyAgICAnU0RQIHNob3VsZCBoYXZlIG1heC1tZXNzYWdlLXNpemUgYXR0
cmlidXRlJyk7CisKKyAgLy8gUmVtb3ZlIHRoZSBtYXgtbWVzc2FnZS1zaXplIFNEUCBhdHRyaWJ1
dGUKKyAgb2ZmZXIgPSB7IHR5cGU6ICdvZmZlcicsIHNkcDogbW1zQXR0cmlidXRlSGVscGVyLnNk
cFdpdGhvdXRBdHRyaWJ1dGUob2ZmZXIuc2RwKSB9OworICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcik7CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigp
OworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgYXNzZXJ0X25v
dF9lcXVhbHMocGMuc2N0cCwgbnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBhdmFpbGFi
bGUnKTsKKyAgLy8gVGVzdCBvdXRjb21lIGRlcGVuZHMgb24gY2FuU2VuZFNpemUgdmFsdWUKKyAg
aWYgKGNhblNlbmRTaXplICE9PSAwKSB7CisgICAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLm1heE1l
c3NhZ2VTaXplLCBNYXRoLm1pbig2NTUzNiwgY2FuU2VuZFNpemUpLAorICAgICAgJ01pc3Npbmcg
U0RQIGF0dHJpYnV0ZSBhbmQgYSBub24temVybyBjYW5TZW5kU2l6ZSBzaG91bGQgZ2l2ZSBhbiBt
YXhNZXNzYWdlU2l6ZSBvZiBtaW4oNjU1MzYsIGNhblNlbmRTaXplKScpOworICB9IGVsc2Ugewor
ICAgIGFzc2VydF9lcXVhbHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6ZSwgNjU1MzYsCisgICAgICAn
TWlzc2luZyBTRFAgYXR0cmlidXRlIGFuZCBhIGNhblNlbmRTaXplIG9mIDAgc2hvdWxkIGdpdmUg
YW4gbWF4TWVzc2FnZVNpemUgb2YgNjU1MzYnKTsKKyAgfQogfSwgJ1JlbW90ZSBvZmZlciBTRFAg
bWlzc2luZyBtYXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZScpOwogCi1wcm9taXNlX3Rlc3QodCA9
PiB7Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoY2Fu
U2VuZFNpemUsIG51bGwsICdjYW5TZW5kU2l6ZSBuZWVkcyB0byBiZSBkZXRlcm1pbmVkJyk7CisK
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYy5jbG9zZSgpKTsKLSAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLCBudWxsKTsKLQotICBy
ZXR1cm4gZ2VuZXJhdGVEYXRhQ2hhbm5lbE9mZmVyKHBjKQotICAudGhlbigob2ZmZXIpID0+IHsK
LSAgICBhc3NlcnRfbm90X2VxdWFscyhtbXNBdHRyaWJ1dGVIZWxwZXIuZ2V0VmFsdWUob2ZmZXIu
c2RwKSwgbnVsbCwKLSAgICAgICdTRFAgc2hvdWxkIGhhdmUgbWF4LW1lc3NhZ2Utc2l6ZSBhdHRy
aWJ1dGUnKTsKLQotICAgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1tc0F0dHJpYnV0
ZUhlbHBlci5zZHBXaXRoVmFsdWUob2ZmZXIuc2RwLCByZW1vdGVWYWx1ZTEpIH07Ci0gICAgcmV0
dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKLSAgfSkKLSAgLnRoZW4oKCkgPT4g
cGMuY3JlYXRlQW5zd2VyKCkpCi0gIC50aGVuKChhbnN3ZXIpID0+IHBjLnNldExvY2FsRGVzY3Jp
cHRpb24oYW5zd2VyKSkKLSAgLnRoZW4oKCkgPT4gewotICAgIGFzc2VydF9ub3RfZXF1YWxzKHBj
LnNjdHAsIG51bGwpOwotICAgIGFzc2VydF9lcXVhbHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6ZSwg
cmVtb3RlVmFsdWUxLAotICAgICAgJ21heE1lc3NhZ2VTaXplIHNob3VsZCBiZSB0aGUgdmFsdWUg
cHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVyIChhcyBsb25nIGFzIGl0IGlzIGxlc3MgdGhhbiBj
YW5TZW5kU2l6ZSknKTsKLSAgfSk7CisKKyAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLCBudWxsLCAn
UlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIG51bGwnKTsKKworICBsZXQgb2ZmZXIgPSBhd2FpdCBn
ZW5lcmF0ZURhdGFDaGFubmVsT2ZmZXIocGMpOworICBhc3NlcnRfbm90X2VxdWFscyhtbXNBdHRy
aWJ1dGVIZWxwZXIuZ2V0VmFsdWUob2ZmZXIuc2RwKSwgbnVsbCwKKyAgICAnU0RQIHNob3VsZCBo
YXZlIG1heC1tZXNzYWdlLXNpemUgYXR0cmlidXRlJyk7CisKKyAgb2ZmZXIgPSB7IHR5cGU6ICdv
ZmZlcicsIHNkcDogbW1zQXR0cmlidXRlSGVscGVyLnNkcFdpdGhWYWx1ZShvZmZlci5zZHAsIHJl
bW90ZVNpemUxKSB9OworICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7Cisg
IGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYy5zZXRM
b2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgYXNzZXJ0X25vdF9lcXVhbHMocGMuc2N0cCwg
bnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBhdmFpbGFibGUnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhwYy5zY3RwLm1heE1lc3NhZ2VTaXplLCByZW1vdGVTaXplMSwKKyAgICAnbWF4TWVzc2Fn
ZVNpemUgc2hvdWxkIGJlIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcmVtb3RlIHBlZXIgKGFz
IGxvbmcgYXMgaXQgaXMgbGVzcyB0aGFuIGNhblNlbmRTaXplKScpOwogfSwgJ21heC1tZXNzYWdl
LXNpemUgd2l0aCBhIChub24temVybykgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVy
Jyk7CiAKLXByb21pc2VfdGVzdCh0ID0+IHsKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4gewor
ICBhc3NlcnRfbm90X2VxdWFscyhjYW5TZW5kU2l6ZSwgbnVsbCwgJ2NhblNlbmRTaXplIG5lZWRz
IHRvIGJlIGRldGVybWluZWQnKTsKKwogICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICBhc3NlcnRfZXF1YWxz
KHBjLnNjdHAsIG51bGwpOwotCi0gIHJldHVybiBnZW5lcmF0ZURhdGFDaGFubmVsT2ZmZXIocGMp
Ci0gIC50aGVuKChvZmZlcikgPT4gewotICAgIGFzc2VydF9ub3RfZXF1YWxzKG1tc0F0dHJpYnV0
ZUhlbHBlci5nZXRWYWx1ZShvZmZlci5zZHApLCBudWxsLAotICAgICAgJ1NEUCBzaG91bGQgaGF2
ZSBtYXgtbWVzc2FnZS1zaXplIGF0dHJpYnV0ZScpOwotCi0gICAgb2ZmZXIgPSB7IHR5cGU6ICdv
ZmZlcicsIHNkcDogbW1zQXR0cmlidXRlSGVscGVyLnNkcFdpdGhWYWx1ZShvZmZlci5zZHAsIHJl
bW90ZVZhbHVlMSkgfTsKLSAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIp
Ci0gIH0pCi0gIC50aGVuKCgpID0+IHBjLmNyZWF0ZUFuc3dlcigpKQotICAudGhlbigoYW5zd2Vy
KSA9PiBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikpCi0gIC50aGVuKCgpID0+IHsKLSAg
ICBhc3NlcnRfbm90X2VxdWFscyhwYy5zY3RwLCBudWxsKTsKLSAgICBhc3NlcnRfZXF1YWxzKHBj
LnNjdHAubWF4TWVzc2FnZVNpemUsIHJlbW90ZVZhbHVlMSwKLSAgICAgICdtYXhNZXNzYWdlU2l6
ZSBzaG91bGQgYmUgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSByZW1vdGUgcGVlciAoYXMgbG9u
ZyBhcyBpdCBpcyBsZXNzIHRoYW4gY2FuU2VuZFNpemUpJyk7Ci0gIH0pCi0gIC50aGVuKCgpID0+
IHBjLmNyZWF0ZU9mZmVyKCkpIC8vIFN0YXJ0IG5ldyBPL0EgZXhjaGFuZ2UgdGhhdCB1cGRhdGVz
IG1heC1tZXNzYWdlLXNpemUKLSAgLnRoZW4oKG9mZmVyKSA9PiB7Ci0gICAgb2ZmZXIgPSB7IHR5
cGU6ICdvZmZlcicsIHNkcDogbW1zQXR0cmlidXRlSGVscGVyLnNkcFdpdGhWYWx1ZShvZmZlci5z
ZHAsIHJlbW90ZVZhbHVlMil9OwotICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihv
ZmZlcikKLSAgfSkKLSAgLnRoZW4oKCkgPT4gcGMuY3JlYXRlQW5zd2VyKCkpCi0gIC50aGVuKChh
bnN3ZXIpID0+IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSkKLSAgLnRoZW4oKCkgPT4g
ewotICAgIGFzc2VydF9ub3RfZXF1YWxzKHBjLnNjdHAsIG51bGwpOwotICAgIGFzc2VydF9lcXVh
bHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6ZSwgcmVtb3RlVmFsdWUyLAotICAgICAgJ21heE1lc3Nh
Z2VTaXplIHNob3VsZCBiZSB0aGUgbmV3IHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSByZW1vdGUgcGVl
ciAoYXMgbG9uZyBhcyBpdCBpcyBsZXNzIHRoYW4gY2FuU2VuZFNpemUpJyk7Ci0gIH0pCi0gIDsK
LX0sICdSZW5lZ290aWF0ZSBtYXgtbWVzc2FnZS1zaXplIHdpdGggYSAobm9uLXplcm8pIHZhbHVl
IHByb3ZpZGVkIGJ5IHRoZSByZW1vdGUgcGVlcicpOwotCi1wcm9taXNlX3Rlc3QodCA9PiB7CisK
KyAgYXNzZXJ0X2VxdWFscyhwYy5zY3RwLCBudWxsLCAnUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJl
IG51bGwnKTsKKworICBsZXQgb2ZmZXIgPSBhd2FpdCBnZW5lcmF0ZURhdGFDaGFubmVsT2ZmZXIo
cGMpOworICBhc3NlcnRfbm90X2VxdWFscyhtbXNBdHRyaWJ1dGVIZWxwZXIuZ2V0VmFsdWUob2Zm
ZXIuc2RwKSwgbnVsbCwKKyAgICAnU0RQIHNob3VsZCBoYXZlIG1heC1tZXNzYWdlLXNpemUgYXR0
cmlidXRlJyk7CisKKyAgb2ZmZXIgPSB7IHR5cGU6ICdvZmZlcicsIHNkcDogbW1zQXR0cmlidXRl
SGVscGVyLnNkcFdpdGhWYWx1ZShvZmZlci5zZHAsIHJlbW90ZVNpemUxKSB9OworICBhd2FpdCBw
Yy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGxldCBhbnN3ZXIgPSBhd2FpdCBwYy5j
cmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOwor
CisgIGFzc2VydF9ub3RfZXF1YWxzKHBjLnNjdHAsIG51bGwsICdSVENTY3RwVHJhbnNwb3J0IG11
c3QgYmUgYXZhaWxhYmxlJyk7CisgIGFzc2VydF9lcXVhbHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6
ZSwgcmVtb3RlU2l6ZTEsCisgICAgJ21heE1lc3NhZ2VTaXplIHNob3VsZCBiZSB0aGUgdmFsdWUg
cHJvdmlkZWQgYnkgdGhlIHJlbW90ZSBwZWVyIChhcyBsb25nIGFzIGl0IGlzIGxlc3MgdGhhbiBj
YW5TZW5kU2l6ZSknKTsKKworICAvLyBTdGFydCBuZXcgTy9BIGV4Y2hhbmdlIHRoYXQgdXBkYXRl
cyBtYXgtbWVzc2FnZS1zaXplIHRvIHJlbW90ZVNpemUyCisgIG9mZmVyID0gYXdhaXQgcGMuY3Jl
YXRlT2ZmZXIoKTsKKyAgb2ZmZXIgPSB7IHR5cGU6ICdvZmZlcicsIHNkcDogbW1zQXR0cmlidXRl
SGVscGVyLnNkcFdpdGhWYWx1ZShvZmZlci5zZHAsIHJlbW90ZVNpemUyKX07CisgIGF3YWl0IHBj
LnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYW5zd2VyID0gYXdhaXQgcGMuY3JlYXRl
QW5zd2VyKCk7CisgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBh
c3NlcnRfbm90X2VxdWFscyhwYy5zY3RwLCBudWxsLCAnUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJl
IGF2YWlsYWJsZScpOworICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAubWF4TWVzc2FnZVNpemUsIHJl
bW90ZVNpemUyLAorICAgICdtYXhNZXNzYWdlU2l6ZSBzaG91bGQgYmUgdGhlIG5ldyB2YWx1ZSBw
cm92aWRlZCBieSB0aGUgcmVtb3RlIHBlZXIgKGFzIGxvbmcgYXMgaXQgaXMgbGVzcyB0aGFuIGNh
blNlbmRTaXplKScpOworCisgIC8vIFN0YXJ0IG5ldyBPL0EgZXhjaGFuZ2UgdGhhdCB1cGRhdGVz
IG1heC1tZXNzYWdlLXNpemUgdG8gemVybworICBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVy
KCk7CisgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1tc0F0dHJpYnV0ZUhlbHBlci5z
ZHBXaXRoVmFsdWUob2ZmZXIuc2RwLCAwKX07CisgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0
aW9uKG9mZmVyKTsKKyAgYW5zd2VyID0gYXdhaXQgcGMuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0
IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBhc3NlcnRfbm90X2VxdWFscyhw
Yy5zY3RwLCBudWxsLCAnUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIGF2YWlsYWJsZScpOworICBh
c3NlcnRfZXF1YWxzKHBjLnNjdHAubWF4TWVzc2FnZVNpemUsIGNhblNlbmRTaXplLAorICAgICdt
YXhNZXNzYWdlU2l6ZSBzaG91bGQgYmUgY2FuU2VuZFNpemUnKTsKKworICAvLyBTdGFydCBuZXcg
Ty9BIGV4Y2hhbmdlIHRoYXQgdXBkYXRlcyBtYXgtbWVzc2FnZS1zaXplIHRvIHJlbW90ZVNpemUx
IGFnYWluCisgIG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgb2ZmZXIgPSB7IHR5
cGU6ICdvZmZlcicsIHNkcDogbW1zQXR0cmlidXRlSGVscGVyLnNkcFdpdGhWYWx1ZShvZmZlci5z
ZHAsIHJlbW90ZVNpemUxKX07CisgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVy
KTsKKyAgYW5zd2VyID0gYXdhaXQgcGMuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjLnNldExv
Y2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBhc3NlcnRfbm90X2VxdWFscyhwYy5zY3RwLCBu
dWxsLCAnUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIGF2YWlsYWJsZScpOworICBhc3NlcnRfZXF1
YWxzKHBjLnNjdHAubWF4TWVzc2FnZVNpemUsIHJlbW90ZVNpemUxLAorICAgICdtYXhNZXNzYWdl
U2l6ZSBzaG91bGQgYmUgdGhlIG5ldyB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcmVtb3RlIHBlZXIg
KGFzIGxvbmcgYXMgaXQgaXMgbGVzcyB0aGFuIGNhblNlbmRTaXplKScpOworfSwgJ1JlbmVnb3Rp
YXRlIG1heC1tZXNzYWdlLXNpemUgd2l0aCB2YXJpb3VzIHZhbHVlcyBwcm92aWRlZCBieSB0aGUg
cmVtb3RlIHBlZXInKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGFzc2VydF9u
b3RfZXF1YWxzKGNhblNlbmRTaXplLCBudWxsLCAnY2FuU2VuZFNpemUgbmVlZHMgdG8gYmUgZGV0
ZXJtaW5lZCcpOworCiAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gIGFzc2VydF9lcXVhbHMocGMuc2N0cCwg
bnVsbCk7Ci0gIGNvbnN0IGxhcmdlclRoYW5DYW5TZW5kU2l6ZSA9IGNhblNlbmRTaXplICsgMTsK
LQotICByZXR1cm4gZ2VuZXJhdGVEYXRhQ2hhbm5lbE9mZmVyKHBjKQotICAudGhlbigob2ZmZXIp
ID0+IHsKLSAgICBhc3NlcnRfbm90X2VxdWFscyhtbXNBdHRyaWJ1dGVIZWxwZXIuZ2V0VmFsdWUo
b2ZmZXIuc2RwKSwgbnVsbCwKLSAgICAgICdTRFAgc2hvdWxkIGhhdmUgbWF4LW1lc3NhZ2Utc2l6
ZSBhdHRyaWJ1dGUnKTsKLQotICAgIG9mZmVyID0geyB0eXBlOiAnb2ZmZXInLCBzZHA6IG1tc0F0
dHJpYnV0ZUhlbHBlci5zZHBXaXRoVmFsdWUob2ZmZXIuc2RwLCBsYXJnZXJUaGFuQ2FuU2VuZFNp
emUpIH07Ci0gICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKQotICB9KQot
ICAudGhlbigoKSA9PiBwYy5jcmVhdGVBbnN3ZXIoKSkKLSAgLnRoZW4oKGFuc3dlcikgPT4gcGMu
c2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpKQotICAudGhlbigoKSA9PiB7Ci0gICAgYXNzZXJ0
X25vdF9lcXVhbHMocGMuc2N0cCwgbnVsbCk7Ci0gICAgLy8gVGVzdCBvdXRjb21lIGRlcGVuZHMg
b24gY2FuU2VuZFNpemUgdmFsdWUKLSAgICBpZiAoY2FuU2VuZFNpemUpIHsKLSAgICAgIGFzc2Vy
dF9lcXVhbHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6ZSwgY2FuU2VuZFNpemUsCi0gICAgICAgICdB
IHJlbW90ZSB2YWx1ZSBsYXJnZXIgdGhhbiBhIG5vbi16ZXJvIGNhblNlbmRTaXplIHNob3VsZCBs
aW1pdCBtYXhNZXNzYWdlU2l6ZSB0byBjYW5TZW5kU2l6ZScpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICBhc3NlcnRfZXF1YWxzKHBjLnNjdHAubWF4TWVzc2FnZVNpemUsIDY1NTM2LAotICAgICAgICAn
QSBjYW5TZW5kU2l6ZSBvZiB6ZXJvIHNob3VsZCBsZXQgdGhlIHJlbW90ZSB2YWx1ZSBzZXQgbWF4
TWVzc2FnZVNpemUnKTsKLSAgICB9Ci0gIH0pOworCisgIGFzc2VydF9lcXVhbHMocGMuc2N0cCwg
bnVsbCwgJ1JUQ1NjdHBUcmFuc3BvcnQgbXVzdCBiZSBudWxsJyk7CisgIGNvbnN0IGxhcmdlclRo
YW5DYW5TZW5kU2l6ZSA9IGNhblNlbmRTaXplID09PSAwID8gMCA6IGNhblNlbmRTaXplICsgMTsK
KworICBsZXQgb2ZmZXIgPSBhd2FpdCBnZW5lcmF0ZURhdGFDaGFubmVsT2ZmZXIocGMpOworICBh
c3NlcnRfbm90X2VxdWFscyhtbXNBdHRyaWJ1dGVIZWxwZXIuZ2V0VmFsdWUob2ZmZXIuc2RwKSwg
bnVsbCwKKyAgICAnU0RQIHNob3VsZCBoYXZlIG1heC1tZXNzYWdlLXNpemUgYXR0cmlidXRlJyk7
CisKKyAgb2ZmZXIgPSB7IHR5cGU6ICdvZmZlcicsIHNkcDogbW1zQXR0cmlidXRlSGVscGVyLnNk
cFdpdGhWYWx1ZShvZmZlci5zZHAsIGxhcmdlclRoYW5DYW5TZW5kU2l6ZSkgfTsKKyAgYXdhaXQg
cGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBw
Yy5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIp
OworCisgIGFzc2VydF9ub3RfZXF1YWxzKHBjLnNjdHAsIG51bGwsICdSVENTY3RwVHJhbnNwb3J0
IG11c3QgYmUgYXZhaWxhYmxlJyk7CisgIC8vIFRlc3Qgb3V0Y29tZSBkZXBlbmRzIG9uIGNhblNl
bmRTaXplIHZhbHVlCisgIGlmIChjYW5TZW5kU2l6ZSAhPT0gMCkgeworICAgIGFzc2VydF9lcXVh
bHMocGMuc2N0cC5tYXhNZXNzYWdlU2l6ZSwgY2FuU2VuZFNpemUsCisgICAgICAnQSByZW1vdGUg
dmFsdWUgbGFyZ2VyIHRoYW4gYSBub24temVybyBjYW5TZW5kU2l6ZSBzaG91bGQgbGltaXQgbWF4
TWVzc2FnZVNpemUgdG8gY2FuU2VuZFNpemUnKTsKKyAgfSBlbHNlIHsKKyAgICBhc3NlcnRfZXF1
YWxzKHBjLnNjdHAubWF4TWVzc2FnZVNpemUsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSwKKyAg
ICAgICdBIHJlbW90ZSB2YWx1ZSBvZiB6ZXJvIGFuZCBjYW5TZW5kU2l6ZSB6ZXJvIHNob3VsZCBy
ZXN1bHQgaW4gImluZmluaXR5IicpOworICB9CiB9LCAnbWF4LW1lc3NhZ2Utc2l6ZSB3aXRoIGEg
KG5vbi16ZXJvKSB2YWx1ZSBsYXJnZXIgdGhhbiBjYW5TZW5kU2l6ZSBwcm92aWRlZCBieSB0aGUg
cmVtb3RlIHBlZXInKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0cy1oZWxwZXIuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTdGF0
cy1oZWxwZXIuanMKaW5kZXggZTkxYjQwYjY4NTRmMWNjNmM1OWY3ZDgxYmYwNmE0MGU2ZGMwZDMx
Zi4uODFhYmUyNDU2ZTk0YmI4NGU0ZDU2Yzk3ODFkYzMwMmE1MDI0OTBlNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU3Rh
dHMtaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcwpAQCAtMjUsNyArMjUsOCBAQAogICAgICAg
ImNhbmRpZGF0ZS1wYWlyIiwKICAgICAgICJsb2NhbC1jYW5kaWRhdGUiLAogICAgICAgInJlbW90
ZS1jYW5kaWRhdGUiLAotICAgICAgImNlcnRpZmljYXRlIgorICAgICAgImNlcnRpZmljYXRlIiwK
KyAgICAgICJpY2Utc2VydmVyIgogICAgIH07CiAgKi8KIGNvbnN0IHN0YXRzVmFsaWRhdG9yVGFi
bGUgPSB7CkBAIC0zNCwxNiArMzUsMTkgQEAgY29uc3Qgc3RhdHNWYWxpZGF0b3JUYWJsZSA9IHsK
ICAgJ291dGJvdW5kLXJ0cCc6IHZhbGlkYXRlT3V0Ym91bmRSdHBTdHJlYW1TdGF0cywKICAgJ3Jl
bW90ZS1pbmJvdW5kLXJ0cCc6IHZhbGlkYXRlUmVtb3RlSW5ib3VuZFJ0cFN0cmVhbVN0YXRzLAog
ICAncmVtb3RlLW91dGJvdW5kLXJ0cCc6IHZhbGlkYXRlUmVtb3RlT3V0Ym91bmRSdHBTdHJlYW1T
dGF0cywKKyAgJ21lZGlhLXNvdXJjZSc6IHZhbGlkYXRlTWVkaWFTb3VyY2VTdGF0cywKICAgJ2Nz
cmMnOiB2YWxpZGF0ZUNvbnRyaWJ1dGluZ1NvdXJjZVN0YXRzLAogICAncGVlci1jb25uZWN0aW9u
JzogdmFsaWRhdGVQZWVyQ29ubmVjdGlvblN0YXRzLAogICAnZGF0YS1jaGFubmVsJzogdmFsaWRh
dGVEYXRhQ2hhbm5lbFN0YXRzLAotICAnc3RyZWFtJzogdmFsaWRhdGVNZWRpYVN0cmVhbVN0YXRz
LAotICAndHJhY2snOiB2YWxpZGF0ZU1lZGlhU3RyZWFtVHJhY2tTdGF0cywKKyAgJ3RyYW5zY2Vp
dmVyJzogdmFsaWRhdGVUcmFuc2NlaXZlclN0YXRzLAorICAnc2VuZGVyJzogdmFsaWRhdGVTZW5k
ZXJTdGF0cywKKyAgJ3JlY2VpdmVyJzogdmFsaWRhdGVSZWNlaXZlclN0YXRzLAogICAndHJhbnNw
b3J0JzogdmFsaWRhdGVUcmFuc3BvcnRTdGF0cywKICAgJ2NhbmRpZGF0ZS1wYWlyJzogdmFsaWRh
dGVJY2VDYW5kaWRhdGVQYWlyU3RhdHMsCiAgICdsb2NhbC1jYW5kaWRhdGUnOiB2YWxpZGF0ZUlj
ZUNhbmRpZGF0ZVN0YXRzLAogICAncmVtb3RlLWNhbmRpZGF0ZSc6IHZhbGlkYXRlSWNlQ2FuZGlk
YXRlU3RhdHMsCi0gICdjZXJ0aWZpY2F0ZSc6IHZhbGlkYXRlQ2VydGlmaWNhdGVTdGF0cworICAn
Y2VydGlmaWNhdGUnOiB2YWxpZGF0ZUNlcnRpZmljYXRlU3RhdHMsCisgICdpY2Utc2VydmVyJzog
dmFsaWRhdGVJY2VTZXJ2ZXJTdGF0cwogfTsKIAogLy8gVmFsaWRhdGUgdGhhdCB0aGUgc3RhdHMg
b2JqZWN0cyBpbiBhIHN0YXRzIHJlcG9ydApAQCAtMTQzLDU4ICsxNDcsNDQgQEAgZnVuY3Rpb24g
dmFsaWRhdGVSdGNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKIAogLyoKICAgW3dlYnJ0Yy1z
dGF0c10KLSAgNy4xLiAgUlRDUlRQU3RyZWFtU3RhdHMgZGljdGlvbmFyeQotICAgIGRpY3Rpb25h
cnkgUlRDUlRQU3RyZWFtU3RhdHMgOiBSVENTdGF0cyB7Ci0gICAgICB1bnNpZ25lZCBsb25nICAg
ICAgc3NyYzsKLSAgICAgIERPTVN0cmluZyAgICAgICAgICBtZWRpYVR5cGU7Ci0gICAgICBET01T
dHJpbmcgICAgICAgICAgdHJhY2tJZDsKLSAgICAgIERPTVN0cmluZyAgICAgICAgICB0cmFuc3Bv
cnRJZDsKLSAgICAgIERPTVN0cmluZyAgICAgICAgICBjb2RlY0lkOwotICAgICAgdW5zaWduZWQg
bG9uZyAgICAgIGZpckNvdW50OwotICAgICAgdW5zaWduZWQgbG9uZyAgICAgIHBsaUNvdW50Owot
ICAgICAgdW5zaWduZWQgbG9uZyAgICAgIG5hY2tDb3VudDsKLSAgICAgIHVuc2lnbmVkIGxvbmcg
ICAgICBzbGlDb3VudDsKLSAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBxcFN1bTsKKyAgNy4xLiAg
UlRDUnRwU3RyZWFtU3RhdHMgZGljdGlvbmFyeQorICAgIGRpY3Rpb25hcnkgUlRDUnRwU3RyZWFt
U3RhdHMgOiBSVENTdGF0cyB7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgIHNzcmM7CisgICAg
ICBET01TdHJpbmcgICAgICAgICAgIGtpbmQ7CisgICAgICBET01TdHJpbmcgICAgICAgICAgIHRy
YW5zcG9ydElkOworICAgICAgRE9NU3RyaW5nICAgICAgICAgICBjb2RlY0lkOwogICAgIH07CiAK
LSAgICBtZWRpYVR5cGUgb2YgdHlwZSBET01TdHJpbmcKKyAgICBraW5kIG9mIHR5cGUgRE9NU3Ry
aW5nCiAgICAgICBFaXRoZXIgImF1ZGlvIiBvciAidmlkZW8iLgogCiAgIFt3ZWJydGMtcGNdCiAg
IDguNi4gIE1hbmRhdG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKLSAgICAtIFJUQ1JUUFN0cmVhbVN0
YXRzLCB3aXRoIGF0dHJpYnV0ZXMgc3NyYywgbWVkaWFUeXBlLCB0cmFja0lkLAotICAgICAgdHJh
bnNwb3J0SWQsIGNvZGVjSWQsIG5hY2tDb3VudAorICAgIC0gUlRDUnRwU3RyZWFtU3RhdHMsIHdp
dGggYXR0cmlidXRlcyBzc3JjLCBraW5kLCB0cmFuc3BvcnRJZCwgY29kZWNJZAogICovCiBmdW5j
dGlvbiB2YWxpZGF0ZVJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogICB2YWxp
ZGF0ZVJ0Y1N0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cyk7CiAKICAgYXNzZXJ0X3Vuc2lnbmVkX2lu
dF9maWVsZChzdGF0cywgJ3NzcmMnKTsKLSAgYXNzZXJ0X3N0cmluZ19maWVsZChzdGF0cywgJ21l
ZGlhVHlwZScpOwotICBhc3NlcnRfZW51bV9maWVsZChzdGF0cywgJ21lZGlhVHlwZScsIFsnYXVk
aW8nLCAndmlkZW8nXSkKKyAgYXNzZXJ0X3N0cmluZ19maWVsZChzdGF0cywgJ2tpbmQnKTsKKyAg
YXNzZXJ0X2VudW1fZmllbGQoc3RhdHMsICdraW5kJywgWydhdWRpbycsICd2aWRlbyddKQogCi0g
IHZhbGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICd0cmFja0lkJywgJ3RyYWNrJyk7
CiAgIHZhbGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICd0cmFuc3BvcnRJZCcsICd0
cmFuc3BvcnQnKTsKICAgdmFsaWRhdGVJZEZpZWxkKHN0YXRzUmVwb3J0LCBzdGF0cywgJ2NvZGVj
SWQnLCAnY29kZWMnKTsKIAotICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0
YXRzLCAnZmlyQ291bnQnKTsKLSAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChz
dGF0cywgJ3BsaUNvdW50Jyk7Ci0gIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQo
c3RhdHMsICduYWNrQ291bnQnKTsKLSAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVs
ZChzdGF0cywgJ3NsaUNvdW50Jyk7Ci0gIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmll
bGQoc3RhdHMsICdxcFN1bScpOwogfQogCiAvKgogICBbd2VicnRjLXN0YXRzXQogICA3LjIuICBS
VENDb2RlY1N0YXRzIGRpY3Rpb25hcnkKICAgICBkaWN0aW9uYXJ5IFJUQ0NvZGVjU3RhdHMgOiBS
VENTdGF0cyB7Ci0gICAgICB1bnNpZ25lZCBsb25nIHBheWxvYWRUeXBlOworICAgICAgcmVxdWly
ZWQgdW5zaWduZWQgbG9uZyBwYXlsb2FkVHlwZTsKICAgICAgIFJUQ0NvZGVjVHlwZSAgY29kZWNU
eXBlOwotICAgICAgRE9NU3RyaW5nICAgICB0cmFuc3BvcnRJZDsKLSAgICAgIERPTVN0cmluZyAg
ICAgbWltZVR5cGU7CisgICAgICByZXF1aXJlZCBET01TdHJpbmcgICAgIHRyYW5zcG9ydElkOwor
ICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nICAgICBtaW1lVHlwZTsKICAgICAgIHVuc2lnbmVkIGxv
bmcgY2xvY2tSYXRlOwogICAgICAgdW5zaWduZWQgbG9uZyBjaGFubmVsczsKICAgICAgIERPTVN0
cmluZyAgICAgc2RwRm10cExpbmU7Ci0gICAgICBET01TdHJpbmcgICAgIGltcGxlbWVudGF0aW9u
OwogICAgIH07CiAKICAgICBlbnVtIFJUQ0NvZGVjVHlwZSB7CkBAIC0yMDQsNyArMTk0LDcgQEAg
ZnVuY3Rpb24gdmFsaWRhdGVSdHBTdHJlYW1TdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKIAog
ICBbd2VicnRjLXBjXQogICA4LjYuICBNYW5kYXRvcnkgVG8gSW1wbGVtZW50IFN0YXRzCi0gICAg
LSBSVENDb2RlY1N0YXRzLCB3aXRoIGF0dHJpYnV0ZXMgcGF5bG9hZFR5cGUsIGNvZGVjLCBjbG9j
a1JhdGUsIGNoYW5uZWxzLCBzZHBGbXRwTGluZQorICAgIC0gUlRDQ29kZWNTdGF0cywgd2l0aCBh
dHRyaWJ1dGVzIHBheWxvYWRUeXBlLCBjb2RlY1R5cGUsIG1pbWVUeXBlLCBjbG9ja1JhdGUsIGNo
YW5uZWxzLCBzZHBGbXRwTGluZQogICovCiAKIGZ1bmN0aW9uIHZhbGlkYXRlQ29kZWNTdGF0cyhz
dGF0c1JlcG9ydCwgc3RhdHMpIHsKQEAgLTIxNSw1NCArMjA1LDUyIEBAIGZ1bmN0aW9uIHZhbGlk
YXRlQ29kZWNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKIAogICB2YWxpZGF0ZU9wdGlvbmFs
SWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICd0cmFuc3BvcnRJZCcsICd0cmFuc3BvcnQnKTsK
IAotICBhc3NlcnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxkKHN0YXRzLCAnbWltZVR5cGUnKTsKKyAg
YXNzZXJ0X3N0cmluZ19maWVsZChzdGF0cywgJ21pbWVUeXBlJyk7CiAgIGFzc2VydF91bnNpZ25l
ZF9pbnRfZmllbGQoc3RhdHMsICdjbG9ja1JhdGUnKTsKLSAgYXNzZXJ0X29wdGlvbmFsX3Vuc2ln
bmVkX2ludF9maWVsZChzdGF0cywgJ2NoYW5uZWxzJyk7CisgIGFzc2VydF91bnNpZ25lZF9pbnRf
ZmllbGQoc3RhdHMsICdjaGFubmVscycpOwogCi0gIGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmll
bGQoc3RhdHMsICdzZHBGbXRwTGluZScpOwotICBhc3NlcnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxk
KHN0YXRzLCAnaW1wbGVtZW50YXRpb24nKTsKKyAgYXNzZXJ0X3N0cmluZ19maWVsZChzdGF0cywg
J3NkcEZtdHBMaW5lJyk7CiB9CiAKIC8qCiAgIFt3ZWJydGMtc3RhdHNdCi0gIDcuMy4gIFJUQ1Jl
Y2VpdmVkUlRQU3RyZWFtU3RhdHMgZGljdGlvbmFyeQotICAgIGRpY3Rpb25hcnkgUlRDUmVjZWl2
ZWRSVFBTdHJlYW1TdGF0cyA6IFJUQ1JUUFN0cmVhbVN0YXRzIHsKLSAgICAgICAgdW5zaWduZWQg
bG9uZyAgICAgIHBhY2tldHNSZWNlaXZlZDsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGJ5
dGVzUmVjZWl2ZWQ7Ci0gICAgICAgIGxvbmcgICAgICAgICAgICAgICBwYWNrZXRzTG9zdDsKLSAg
ICAgICAgZG91YmxlICAgICAgICAgICAgIGppdHRlcjsKLSAgICAgICAgZG91YmxlICAgICAgICAg
ICAgIGZyYWN0aW9uTG9zdDsKLSAgICAgICAgdW5zaWduZWQgbG9uZyAgICAgIHBhY2tldHNEaXNj
YXJkZWQ7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICBwYWNrZXRzRmFpbGVkRGVjcnlwdGlv
bjsKLSAgICAgICAgdW5zaWduZWQgbG9uZyAgICAgIHBhY2tldHNSZXBhaXJlZDsKLSAgICAgICAg
dW5zaWduZWQgbG9uZyAgICAgIGJ1cnN0UGFja2V0c0xvc3Q7Ci0gICAgICAgIHVuc2lnbmVkIGxv
bmcgICAgICBidXJzdFBhY2tldHNEaXNjYXJkZWQ7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgICAg
ICBidXJzdExvc3NDb3VudDsKLSAgICAgICAgdW5zaWduZWQgbG9uZyAgICAgIGJ1cnN0RGlzY2Fy
ZENvdW50OwotICAgICAgICBkb3VibGUgICAgICAgICAgICAgYnVyc3RMb3NzUmF0ZTsKLSAgICAg
ICAgZG91YmxlICAgICAgICAgICAgIGJ1cnN0RGlzY2FyZFJhdGU7Ci0gICAgICAgIGRvdWJsZSAg
ICAgICAgICAgICBnYXBMb3NzUmF0ZTsKLSAgICAgICAgZG91YmxlICAgICAgICAgICAgIGdhcERp
c2NhcmRSYXRlOworICA3LjMuICBSVENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzIGRpY3Rpb25hcnkK
KyAgICBkaWN0aW9uYXJ5IFJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMgOiBSVENSdHBTdHJlYW1T
dGF0cyB7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBwYWNrZXRzUmVjZWl2ZWQ7CisgICAg
ICBsb25nIGxvbmcgICAgICAgICAgICBwYWNrZXRzTG9zdDsKKyAgICAgIGRvdWJsZSAgICAgICAg
ICAgICAgIGppdHRlcjsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIHBhY2tldHNEaXNjYXJk
ZWQ7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBwYWNrZXRzUmVwYWlyZWQ7CisgICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgICBidXJzdFBhY2tldHNMb3N0OworICAgICAgdW5zaWduZWQgbG9u
ZyBsb25nICAgYnVyc3RQYWNrZXRzRGlzY2FyZGVkOworICAgICAgdW5zaWduZWQgbG9uZyAgICAg
ICAgYnVyc3RMb3NzQ291bnQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBidXJzdERpc2Nh
cmRDb3VudDsKKyAgICAgIGRvdWJsZSAgICAgICAgICAgICAgIGJ1cnN0TG9zc1JhdGU7CisgICAg
ICBkb3VibGUgICAgICAgICAgICAgICBidXJzdERpc2NhcmRSYXRlOworICAgICAgZG91YmxlICAg
ICAgICAgICAgICAgZ2FwTG9zc1JhdGU7CisgICAgICBkb3VibGUgICAgICAgICAgICAgICBnYXBE
aXNjYXJkUmF0ZTsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIGZyYW1lc0Ryb3BwZWQ7Cisg
ICAgICB1bnNpZ25lZCBsb25nICAgICAgICBwYXJ0aWFsRnJhbWVzTG9zdDsKKyAgICAgIHVuc2ln
bmVkIGxvbmcgICAgICAgIGZ1bGxGcmFtZXNMb3N0OwogICAgIH07CiAKICAgICBbd2VicnRjLXBj
XQogICAgIDguNi4gIE1hbmRhdG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKLSAgICAgIC0gUlRDUmVj
ZWl2ZWRSVFBTdHJlYW1TdGF0cywgd2l0aCBhbGwgcmVxdWlyZWQgYXR0cmlidXRlcyBmcm9tIGl0
cworICAgICAgLSBSVENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzLCB3aXRoIGFsbCByZXF1aXJlZCBh
dHRyaWJ1dGVzIGZyb20gaXRzCiAgICAgICAgIGluaGVyaXRlZCBkaWN0aW9uYXJpZXMsIGFuZCBh
bHNvIGF0dHJpYnV0ZXMgcGFja2V0c1JlY2VpdmVkLAotICAgICAgICBieXRlc1JlY2VpdmVkLCBw
YWNrZXRzTG9zdCwgaml0dGVyLCBwYWNrZXRzRGlzY2FyZGVkCisgICAgICAgIHBhY2tldHNMb3N0
LCBqaXR0ZXIsIHBhY2tldHNEaXNjYXJkZWQsIGZyYW1lc0Ryb3BwZWQKICAqLwogZnVuY3Rpb24g
dmFsaWRhdGVSZWNlaXZlZFJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogICB2
YWxpZGF0ZVJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cyk7CiAKICAgYXNzZXJ0X3Vu
c2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhY2tldHNSZWNlaXZlZCcpOwotICBhc3NlcnRfdW5z
aWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnYnl0ZXNSZWNlaXZlZCcpOwogICBhc3NlcnRfdW5zaWdu
ZWRfaW50X2ZpZWxkKHN0YXRzLCAncGFja2V0c0xvc3QnKTsKIAogICBhc3NlcnRfbnVtYmVyX2Zp
ZWxkKHN0YXRzLCAnaml0dGVyJyk7Ci0gIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3Rh
dHMsICdmcmFjdGlvbkxvc3QnKTsKIAogICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRz
LCAncGFja2V0c0Rpc2NhcmRlZCcpOwotICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2Zp
ZWxkKHN0YXRzLCAncGFja2V0c0ZhaWxlZERlY3J5cHRpb24nKTsKKyAgYXNzZXJ0X3Vuc2lnbmVk
X2ludF9maWVsZChzdGF0cywgJ2ZyYW1lc0Ryb3BwZWQnKTsKKwogICBhc3NlcnRfb3B0aW9uYWxf
dW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncGFja2V0c1JlcGFpcmVkJyk7CiAgIGFzc2VydF9v
cHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdidXJzdFBhY2tldHNMb3N0Jyk7CiAg
IGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdidXJzdFBhY2tldHNE
aXNjYXJkZWQnKTsKQEAgLTI3Myw0MSArMjYxLDE0MyBAQCBmdW5jdGlvbiB2YWxpZGF0ZVJlY2Vp
dmVkUnRwU3RyZWFtU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CiAgIGFzc2VydF9vcHRpb25h
bF9udW1iZXJfZmllbGQoc3RhdHMsICdidXJzdERpc2NhcmRSYXRlJyk7CiAgIGFzc2VydF9vcHRp
b25hbF9udW1iZXJfZmllbGQoc3RhdHMsICdnYXBMb3NzUmF0ZScpOwogICBhc3NlcnRfb3B0aW9u
YWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnZ2FwRGlzY2FyZFJhdGUnKTsKKworICBhc3NlcnRfb3B0
aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncGFydGlhbEZyYW1lc0xvc3QnKTsKKyAg
YXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2Z1bGxGcmFtZXNMb3N0
Jyk7CiB9CiAKIC8qCiAgIFt3ZWJydGMtc3RhdHNdCi0gIDcuNC4gIFJUQ0luYm91bmRSVFBTdHJl
YW1TdGF0cyBkaWN0aW9uYXJ5Ci0gICAgZGljdGlvbmFyeSBSVENJbmJvdW5kUlRQU3RyZWFtU3Rh
dHMgOiBSVENSZWNlaXZlZFJUUFN0cmVhbVN0YXRzIHsKLSAgICAgIERPTVN0cmluZyAgICAgICAg
ICAgcmVtb3RlSWQ7Ci0gICAgICB1bnNpZ25lZCBsb25nICAgICAgIGZyYW1lc0RlY29kZWQ7Ci0g
ICAgICBET01IaWdoUmVzVGltZVN0YW1wIGxhc3RQYWNrZXRSZWNlaXZlZFRpbWVzdGFtcDsKKyAg
Ny40LiAgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0YXRzIGRpY3Rpb25hcnkKKyAgICBkaWN0aW9uYXJ5
IFJUQ0luYm91bmRSdHBTdHJlYW1TdGF0cyA6IFJUQ1JlY2VpdmVkUnRwU3RyZWFtU3RhdHMgewor
ICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgdHJhY2tJZDsKKyAgICAgIERPTVN0cmluZyAgICAg
ICAgICAgIHJlY2VpdmVySWQ7CisgICAgICBET01TdHJpbmcgICAgICAgICAgICByZW1vdGVJZDsK
KyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIGZyYW1lc0RlY29kZWQ7CisgICAgICB1bnNpZ25l
ZCBsb25nICAgICAgICBrZXlGcmFtZXNEZWNvZGVkOworICAgICAgdW5zaWduZWQgbG9uZyAgICAg
ICAgZnJhbWVXaWR0aDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIGZyYW1lSGVpZ2h0Owor
ICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgZnJhbWVCaXREZXB0aDsKKyAgICAgIGRvdWJsZSAg
ICAgICAgICAgICAgIGZyYW1lc1BlclNlY29uZDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAg
IHFwU3VtOworICAgICAgZG91YmxlICAgICAgICAgICAgICAgdG90YWxEZWNvZGVUaW1lOworICAg
ICAgZG91YmxlICAgICAgICAgICAgICAgdG90YWxJbnRlckZyYW1lRGVsYXk7CisgICAgICBkb3Vi
bGUgICAgICAgICAgICAgICB0b3RhbFNxdWFyZWRJbnRlckZyYW1lRGVsYXk7CisgICAgICBib29s
ZWFuICAgICAgICAgICAgICB2b2ljZUFjdGl2aXR5RmxhZzsKKyAgICAgIERPTUhpZ2hSZXNUaW1l
U3RhbXAgIGxhc3RQYWNrZXRSZWNlaXZlZFRpbWVzdGFtcDsKKyAgICAgIGRvdWJsZSAgICAgICAg
ICAgICAgIGF2ZXJhZ2VSdGNwSW50ZXJ2YWw7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBo
ZWFkZXJCeXRlc1JlY2VpdmVkOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgZmVjUGFja2V0
c1JlY2VpdmVkOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgZmVjUGFja2V0c0Rpc2NhcmRl
ZDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIGJ5dGVzUmVjZWl2ZWQ7CisgICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgICBwYWNrZXRzRmFpbGVkRGVjcnlwdGlvbjsKKyAgICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyAgIHBhY2tldHNEdXBsaWNhdGVkOworICAgICAgcmVjb3JkPFVTVlN0cmluZywg
dW5zaWduZWQgbG9uZyBsb25nPiBwZXJEc2NwUGFja2V0c1JlY2VpdmVkOworICAgICAgdW5zaWdu
ZWQgbG9uZyAgICAgICAgbmFja0NvdW50OworICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgZmly
Q291bnQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBwbGlDb3VudDsKKyAgICAgIHVuc2ln
bmVkIGxvbmcgICAgICAgIHNsaUNvdW50OworICAgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCAgZXN0
aW1hdGVkUGxheW91dFRpbWVzdGFtcDsKKyAgICAgIGRvdWJsZSAgICAgICAgaml0dGVyQnVmZmVy
RGVsYXk7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBqaXR0ZXJCdWZmZXJFbWl0dGVkQ291
bnQ7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICB0b3RhbFNhbXBsZXNSZWNlaXZlZDsKKyAg
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIHNhbXBsZXNEZWNvZGVkV2l0aFNpbGs7CisgICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgICBzYW1wbGVzRGVjb2RlZFdpdGhDZWx0OworICAgICAgdW5zaWdu
ZWQgbG9uZyBsb25nICAgY29uY2VhbGVkU2FtcGxlczsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyAgIHNpbGVudENvbmNlYWxlZFNhbXBsZXM7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBj
b25jZWFsbWVudEV2ZW50czsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIGluc2VydGVkU2Ft
cGxlc0ZvckRlY2VsZXJhdGlvbjsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIHJlbW92ZWRT
YW1wbGVzRm9yQWNjZWxlcmF0aW9uOworICAgICAgZG91YmxlICAgICAgICAgICAgICAgYXVkaW9M
ZXZlbDsKKyAgICAgIGRvdWJsZSAgICAgICAgICAgICAgIHRvdGFsQXVkaW9FbmVyZ3k7CisgICAg
ICBkb3VibGUgICAgICAgICAgICAgICB0b3RhbFNhbXBsZXNEdXJhdGlvbjsKKyAgICAgIHVuc2ln
bmVkIGxvbmcgICAgICAgIGZyYW1lc1JlY2VpdmVkOworICAgICAgRE9NU3RyaW5nICAgICAgICAg
ICAgZGVjb2RlckltcGxlbWVudGF0aW9uOwogICAgIH07CiAKICAgW3dlYnJ0Yy1wY10KICAgOC42
LiAgTWFuZGF0b3J5IFRvIEltcGxlbWVudCBTdGF0cwotICAgIC0gUlRDSW5ib3VuZFJUUFN0cmVh
bVN0YXRzLCB3aXRoIGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzIGZyb20gaXRzIGluaGVyaXRlZAot
ICAgICAgZGljdGlvbmFyaWVzLCBhbmQgYWxzbyBhdHRyaWJ1dGVzIHJlbW90ZUlkLCBmcmFtZXNE
ZWNvZGVkCisgICAgLSBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHMsIHdpdGggYWxsIHJlcXVpcmVk
IGF0dHJpYnV0ZXMgZnJvbSBpdHMgaW5oZXJpdGVkCisgICAgICBkaWN0aW9uYXJpZXMsIGFuZCBh
bHNvIGF0dHJpYnV0ZXMgcmVjZWl2ZXJJZCwgcmVtb3RlSWQsIGZyYW1lc0RlY29kZWQsIG5hY2tD
b3VudCwgZnJhbWVzUmVjZWl2ZWQsIGJ5dGVzUmVjZWl2ZWQsIHRvdGFsQXVkaW9FbmVyZ3ksIHRv
dGFsU2FtcGxlRHVyYXRpb24KICAqLwogZnVuY3Rpb24gdmFsaWRhdGVJbmJvdW5kUnRwU3RyZWFt
U3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CiAgIHZhbGlkYXRlUmVjZWl2ZWRSdHBTdHJlYW1T
dGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpOwotCisgIHZhbGlkYXRlT3B0aW9uYWxJZEZpZWxkKHN0
YXRzUmVwb3J0LCBzdGF0cywgJ3RyYWNrSWQnLCAndHJhY2snKTsKKyAgdmFsaWRhdGVJZEZpZWxk
KHN0YXRzUmVwb3J0LCBzdGF0cywgJ3JlY2VpdmVySWQnLCAncmVjZWl2ZXInKTsKICAgdmFsaWRh
dGVJZEZpZWxkKHN0YXRzUmVwb3J0LCBzdGF0cywgJ3JlbW90ZUlkJywgJ3JlbW90ZS1vdXRib3Vu
ZC1ydHAnKTsKICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZyYW1lc0RlY29k
ZWQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2tleUZy
YW1lc0RlY29kZWQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0
cywgJ2ZyYW1lV2lkdGgnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChz
dGF0cywgJ2ZyYW1lSGVpZ2h0Jyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmll
bGQoc3RhdHMsICdmcmFtZUJpdERlcHRoJyk7CisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmll
bGQoc3RhdHMsICdmcmFtZXNQZXJTZWNvbmQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVk
X2ludF9maWVsZChzdGF0cywgJ3FwU3VtJyk7CisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmll
bGQoc3RhdHMsICd0b3RhbERlY29kZVRpbWUnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9m
aWVsZChzdGF0cywgJ3RvdGFsSW50ZXJGcmFtZURlbGF5Jyk7CisgIGFzc2VydF9vcHRpb25hbF9u
dW1iZXJfZmllbGQoc3RhdHMsICd0b3RhbFNxdWFyZWRJbnRlckZyYW1lRGVsYXknKTsKKworICBh
c3NlcnRfb3B0aW9uYWxfYm9vbGVhbl9maWVsZChzdGF0cywgJ3ZvaWNlQWN0aXZpdHlGbGFnJyk7
CisKICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywgJ2xhc3RQYWNrZXRSZWNl
aXZlZFRpbWVTdGFtcCcpOworICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAn
YXZlcmFnZVJ0Y3BJbnRlcnZhbCcpOworCisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRf
ZmllbGQoc3RhdHMsICdmZWNQYWNrZXRzUmVjZWl2ZWQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vu
c2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZlY1BhY2tldHNEaXNjYXJkZWQnKTsKKyAgYXNzZXJ0
X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2J5dGVzUmVjZWl2ZWQnKTsKKyAgYXNzZXJ0X29w
dGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhY2tldHNGYWlsZWREZWNyeXB0aW9u
Jyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdwYWNrZXRz
RHVwbGljYXRlZCcpOworCisgIGFzc2VydF9vcHRpb25hbF9kaWN0X2ZpZWxkKHN0YXRzLCAncGVy
RHNjcFBhY2tldHNSZWNlaXZlZCcpOworICBpZiAoc3RhdHNbJ3BlckRzY3BQYWNrZXRzUmVjZWl2
ZWQnXSkgeworICAgIE9iamVjdC5rZXlzKHN0YXRzWydwZXJEc2NwUGFja2V0c1JlY2VpdmVkJ10p
CisgICAgICAuZm9yRWFjaChrID0+CisgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVv
ZiBrLCAnc3RyaW5nJywgJ0V4cGVjdCBrZXlzIG9mIHBlckRzY3BQYWNrZXRzUmVjZWl2ZWQgdG8g
YmUgc3RyaW5ncycpCisgICAgICAgICAgICAgICk7CisgICAgT2JqZWN0LnZhbHVlcyhzdGF0c1sn
cGVyRHNjcFBhY2tldHNSZWNlaXZlZCddKQorICAgICAgLmZvckVhY2godiA9PgorICAgICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoTnVtYmVyLmlzSW50ZWdlcih2KSAmJiAodiA+PSAwKSwgJ0V4cGVj
dCB2YWx1ZXMgb2YgcGVyRHNjcFBhY2tldHNSZWNlaXZlZCB0byBiZSBzdHJpbmdzJykKKyAgICAg
ICAgICAgICAgKTsKKyAgfQorCisgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdu
YWNrQ291bnQnKTsKKworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRz
LCAnZmlyQ291bnQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0
cywgJ3BsaUNvdW50Jyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3Rh
dHMsICdzbGlDb3VudCcpOworCisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3RhdHMs
ICdlc3RpbWF0ZWRQbGF5b3V0VGltZXN0YW1wJyk7CisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJf
ZmllbGQoc3RhdHMsICdqaXR0ZXJCdWZmZXJEZWxheScpOworICBhc3NlcnRfb3B0aW9uYWxfdW5z
aWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnaml0dGVyQnVmZmVyRW1pdHRlZENvdW50Jyk7CisgIGFz
c2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICd0b3RhbFNhbXBsZXNSZWNl
aXZlZCcpOworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnc2Ft
cGxlc0RlY29kZWRXaXRoU2lsaycpOworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2Zp
ZWxkKHN0YXRzLCAnc2FtcGxlc0RlY29kZWRXaXRoQ2VsdCcpOworICBhc3NlcnRfb3B0aW9uYWxf
dW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY29uY2VhbGVkU2FtcGxlcycpOworICBhc3NlcnRf
b3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnc2lsZW50Q29uY2VhbGVkU2FtcGxl
cycpOworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY29uY2Vh
bG1lbnRFdmVudHMnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0
cywgJ2luc2VydGVkU2FtcGxlc0ZvckRlY2VsZXJhdGlvbicpOworICBhc3NlcnRfb3B0aW9uYWxf
dW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncmVtb3ZlZFNhbXBsZXNGb3JBY2NlbGVyYXRpb24n
KTsKKyAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywgJ2F1ZGlvTGV2ZWwnKTsK
KyAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywgJ3RvdGFsQXVkaW9FbmVyZ3kn
KTsKKyAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywgJ3RvdGFsU2FtcGxlc0R1
cmF0aW9uJyk7CisgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZXNSZWNl
aXZlZCcpOworICBhc3NlcnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxkKHN0YXRzLCAnZGVjb2Rlcklt
cGxlbWVudGF0aW9uJyk7CiB9CiAKIC8qCiAgIFt3ZWJydGMtc3RhdHNdCi0gIDcuNS4gIFJUQ1Jl
bW90ZUluYm91bmRSVFBTdHJlYW1TdGF0cyBkaWN0aW9uYXJ5Ci0gICAgZGljdGlvbmFyeSBSVENS
ZW1vdGVJbmJvdW5kUlRQU3RyZWFtU3RhdHMgOiBSVENSZWNlaXZlZFJUUFN0cmVhbVN0YXRzIHsK
LSAgICAgICAgRE9NU3RyaW5nIGxvY2FsSWQ7Ci0gICAgICAgIGRvdWJsZSAgICByb3VuZFRyaXBU
aW1lOworICA3LjUuICBSVENSZW1vdGVJbmJvdW5kUnRwU3RyZWFtU3RhdHMgZGljdGlvbmFyeQor
ICAgIGRpY3Rpb25hcnkgUlRDUmVtb3RlSW5ib3VuZFJ0cFN0cmVhbVN0YXRzIDogUlRDUmVjZWl2
ZWRSdHBTdHJlYW1TdGF0cyB7CisgICAgICBET01TdHJpbmcgICAgICAgICAgICBsb2NhbElkOwor
ICAgICAgZG91YmxlICAgICAgICAgICAgICAgcm91bmRUcmlwVGltZTsKKyAgICAgIGRvdWJsZSAg
ICAgICAgICAgICAgIHRvdGFsUm91bmRUcmlwVGltZTsKKyAgICAgIGRvdWJsZSAgICAgICAgICAg
ICAgIGZyYWN0aW9uTG9zdDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIHJlcG9ydHNSZWNl
aXZlZDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIHJvdW5kVHJpcFRpbWVNZWFzdXJlbWVu
dHM7CiAgICAgfTsKIAogICBbd2VicnRjLXBjXQogICA4LjYuICBNYW5kYXRvcnkgVG8gSW1wbGVt
ZW50IFN0YXRzCi0gICAgLSBSVENSZW1vdGVJbmJvdW5kUlRQU3RyZWFtU3RhdHMsIHdpdGggYWxs
IHJlcXVpcmVkIGF0dHJpYnV0ZXMgZnJvbSBpdHMKKyAgICAtIFJUQ1JlbW90ZUluYm91bmRSdHBT
dHJlYW1TdGF0cywgd2l0aCBhbGwgcmVxdWlyZWQgYXR0cmlidXRlcyBmcm9tIGl0cwogICAgICAg
aW5oZXJpdGVkIGRpY3Rpb25hcmllcywgYW5kIGFsc28gYXR0cmlidXRlcyBsb2NhbElkLCByb3Vu
ZFRyaXBUaW1lCiAgKi8KIGZ1bmN0aW9uIHZhbGlkYXRlUmVtb3RlSW5ib3VuZFJ0cFN0cmVhbVN0
YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewpAQCAtMzE1LDc0ICs0MDUsMTc0IEBAIGZ1bmN0aW9u
IHZhbGlkYXRlUmVtb3RlSW5ib3VuZFJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykg
ewogCiAgIHZhbGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICdsb2NhbElkJywgJ291
dGJvdW5kLXJ0cCcpOwogICBhc3NlcnRfbnVtYmVyX2ZpZWxkKHN0YXRzLCAncm91bmRUcmlwVGlt
ZScpOworICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAndG90YWxSb3VuZFRy
aXBUaW1lJyk7CisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3RhdHMsICdmcmFjdGlv
bkxvc3QnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3Jl
cG9ydHNSZWNlaXZlZCcpOworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0
YXRzLCAncm91bmRUcmlwVGltZU1lYXN1cmVtZW50cycpOwogfQogCiAvKgogICBbd2VicnRjLXN0
YXRzXQotICA3LjYuICBSVENTZW50UlRQU3RyZWFtU3RhdHMgZGljdGlvbmFyeQotICAgIGRpY3Rp
b25hcnkgUlRDU2VudFJUUFN0cmVhbVN0YXRzIDogUlRDUlRQU3RyZWFtU3RhdHMgeworICA3LjYu
ICBSVENTZW50UnRwU3RyZWFtU3RhdHMgZGljdGlvbmFyeQorICAgIGRpY3Rpb25hcnkgUlRDU2Vu
dFJ0cFN0cmVhbVN0YXRzIDogUlRDUnRwU3RyZWFtU3RhdHMgewogICAgICAgdW5zaWduZWQgbG9u
ZyAgICAgIHBhY2tldHNTZW50OwotICAgICAgdW5zaWduZWQgbG9uZyAgICAgIHBhY2tldHNEaXNj
YXJkZWRPblNlbmQ7CiAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50OwotICAgICAg
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzRGlzY2FyZGVkT25TZW5kOwogICAgIH07CiAKICAgICBb
d2VicnRjLXBjXQogICAgIDguNi4gIE1hbmRhdG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKLSAgICAg
IC0gUlRDU2VudFJUUFN0cmVhbVN0YXRzLCB3aXRoIGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzIGZy
b20gaXRzIGluaGVyaXRlZAorICAgICAgLSBSVENTZW50UnRwU3RyZWFtU3RhdHMsIHdpdGggYWxs
IHJlcXVpcmVkIGF0dHJpYnV0ZXMgZnJvbSBpdHMgaW5oZXJpdGVkCiAgICAgICAgIGRpY3Rpb25h
cmllcywgYW5kIGFsc28gYXR0cmlidXRlcyBwYWNrZXRzU2VudCwgYnl0ZXNTZW50CiAgKi8KIGZ1
bmN0aW9uIHZhbGlkYXRlU2VudFJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewog
ICB2YWxpZGF0ZVJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cyk7CiAKICAgYXNzZXJ0
X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhY2tldHNTZW50Jyk7Ci0gIGFzc2VydF9vcHRp
b25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdwYWNrZXRzRGlzY2FyZGVkT25TZW5kJyk7
CiAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdieXRlc1NlbnQnKTsKLSAgYXNz
ZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2J5dGVzRGlzY2FyZGVkT25T
ZW5kJyk7CiB9CiAKIC8qCiAgIFt3ZWJydGMtc3RhdHNdCi0gIDcuNy4gIFJUQ091dGJvdW5kUlRQ
U3RyZWFtU3RhdHMgZGljdGlvbmFyeQotICAgIGRpY3Rpb25hcnkgUlRDT3V0Ym91bmRSVFBTdHJl
YW1TdGF0cyA6IFJUQ1NlbnRSVFBTdHJlYW1TdGF0cyB7Ci0gICAgICBET01TdHJpbmcgICAgICAg
ICAgIHJlbW90ZUlkOwotICAgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBsYXN0UGFja2V0U2VudFRp
bWVzdGFtcDsKLSAgICAgIGRvdWJsZSAgICAgICAgICAgICAgdGFyZ2V0Qml0cmF0ZTsKLSAgICAg
IHVuc2lnbmVkIGxvbmcgICAgICAgZnJhbWVzRW5jb2RlZDsKLSAgICAgIGRvdWJsZSAgICAgICAg
ICAgICAgdG90YWxFbmNvZGVUaW1lOwotICAgICAgZG91YmxlICAgICAgICAgICAgICBhdmVyYWdl
UlRDUEludGVydmFsOworICA3LjcuICBSVENPdXRib3VuZFJ0cFN0cmVhbVN0YXRzIGRpY3Rpb25h
cnkKKyAgICBkaWN0aW9uYXJ5IFJUQ091dGJvdW5kUnRwU3RyZWFtU3RhdHMgOiBSVENTZW50UnRw
U3RyZWFtU3RhdHMgeworICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgbWVkaWFTb3VyY2VJZDsK
KyAgICAgIERPTVN0cmluZyAgICAgICAgICAgIHNlbmRlcklkOworICAgICAgRE9NU3RyaW5nICAg
ICAgICAgICAgcmVtb3RlSWQ7CisgICAgICBET01TdHJpbmcgICAgICAgICAgICByaWQ7CisgICAg
ICBET01IaWdoUmVzVGltZVN0YW1wICBsYXN0UGFja2V0U2VudFRpbWVzdGFtcDsKKyAgICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyAgIGhlYWRlckJ5dGVzU2VudDsKKyAgICAgIHVuc2lnbmVkIGxvbmcg
ICAgICAgIHBhY2tldHNEaXNjYXJkZWRPblNlbmQ7CisgICAgICB1bnNpZ25lZCBsb25nIGxvbmcg
ICBieXRlc0Rpc2NhcmRlZE9uU2VuZDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIGZlY1Bh
Y2tldHNTZW50OworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgcmV0cmFuc21pdHRlZFBhY2tl
dHNTZW50OworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgcmV0cmFuc21pdHRlZEJ5dGVzU2Vu
dDsKKyAgICAgIGRvdWJsZSAgICAgICAgICAgICAgIHRhcmdldEJpdHJhdGU7CisgICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgICB0b3RhbEVuY29kZWRCeXRlc1RhcmdldDsKKyAgICAgIHVuc2lnbmVk
IGxvbmcgICAgICAgIGZyYW1lV2lkdGg7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBmcmFt
ZUhlaWdodDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIGZyYW1lQml0RGVwdGg7CisgICAg
ICBkb3VibGUgICAgICAgICAgICAgICBmcmFtZXNQZXJTZWNvbmQ7CisgICAgICB1bnNpZ25lZCBs
b25nICAgICAgICBmcmFtZXNTZW50OworICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgaHVnZUZy
YW1lc1NlbnQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBmcmFtZXNFbmNvZGVkOworICAg
ICAgdW5zaWduZWQgbG9uZyAgICAgICAga2V5RnJhbWVzRW5jb2RlZDsKKyAgICAgIHVuc2lnbmVk
IGxvbmcgICAgICAgIGZyYW1lc0Rpc2NhcmRlZE9uU2VuZDsKKyAgICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyAgIHFwU3VtOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgdG90YWxTYW1wbGVzU2Vu
dDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgIHNhbXBsZXNFbmNvZGVkV2l0aFNpbGs7Cisg
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICBzYW1wbGVzRW5jb2RlZFdpdGhDZWx0OworICAgICAg
Ym9vbGVhbiAgICAgICAgICAgICAgdm9pY2VBY3Rpdml0eUZsYWc7CisgICAgICBkb3VibGUgICAg
ICAgICAgICAgICB0b3RhbEVuY29kZVRpbWU7CisgICAgICBkb3VibGUgICAgICAgICAgICAgICB0
b3RhbFBhY2tldFNlbmREZWxheTsKKyAgICAgIGRvdWJsZSAgICAgICAgICAgICAgIGF2ZXJhZ2VS
dGNwSW50ZXJ2YWw7CisgICAgICBSVENRdWFsaXR5TGltaXRhdGlvblJlYXNvbiAgICAgICAgICBx
dWFsaXR5TGltaXRhdGlvblJlYXNvbjsKKyAgICAgIHJlY29yZDxET01TdHJpbmcsIGRvdWJsZT4g
cXVhbGl0eUxpbWl0YXRpb25EdXJhdGlvbnM7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBx
dWFsaXR5TGltaXRhdGlvblJlc29sdXRpb25DaGFuZ2VzOworICAgICAgcmVjb3JkPFVTVlN0cmlu
ZywgdW5zaWduZWQgbG9uZyBsb25nPiBwZXJEc2NwUGFja2V0c1NlbnQ7CisgICAgICB1bnNpZ25l
ZCBsb25nICAgICAgICBuYWNrQ291bnQ7CisgICAgICB1bnNpZ25lZCBsb25nICAgICAgICBmaXJD
b3VudDsKKyAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIHBsaUNvdW50OworICAgICAgdW5zaWdu
ZWQgbG9uZyAgICAgICAgc2xpQ291bnQ7CisgICAgICBET01TdHJpbmcgICAgICAgICAgICBlbmNv
ZGVySW1wbGVtZW50YXRpb247CisgICAgfTsKKyAgICBPYnNvbGV0ZSBtZW1iZXJzOgorICAgIHBh
cnRpYWwgZGljdGlvbmFyeSBSVENPdXRib3VuZFN0cmVhbVN0YXRzIHsKKyAgICAgIERPTVN0cmlu
ZyAgICAgICAgICAgIHRyYWNrSWQ7CiAgICAgfTsKLQogICAgIFt3ZWJydGMtcGNdCiAgICAgOC42
LiAgTWFuZGF0b3J5IFRvIEltcGxlbWVudCBTdGF0cwotICAgICAgLSBSVENPdXRib3VuZFJUUFN0
cmVhbVN0YXRzLCB3aXRoIGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzIGZyb20gaXRzCi0gICAgICAg
IGluaGVyaXRlZCBkaWN0aW9uYXJpZXMsIGFuZCBhbHNvIGF0dHJpYnV0ZXMgcmVtb3RlSWQsIGZy
YW1lc0VuY29kZWQKKyAgICAgIC0gUlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0cywgd2l0aCBhbGwg
cmVxdWlyZWQgYXR0cmlidXRlcyBmcm9tIGl0cworICAgICAgICBpbmhlcml0ZWQgZGljdGlvbmFy
aWVzLCBhbmQgYWxzbyBhdHRyaWJ1dGVzIHNlbmRlcklkLCByZW1vdGVJZCwgZnJhbWVzRW5jb2Rl
ZCwgbmFja0NvdW50LCBmcmFtZXNTZW50CiAgKi8KIGZ1bmN0aW9uIHZhbGlkYXRlT3V0Ym91bmRS
dHBTdHJlYW1TdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgdmFsaWRhdGVTZW50UnRwU3Ry
ZWFtU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKQogCisgIHZhbGlkYXRlT3B0aW9uYWxJZEZpZWxk
KHN0YXRzUmVwb3J0LCBzdGF0cywgJ21lZGlhU291cmNlSWQnLCAnbWVkaWEtc291cmNlJyk7Cisg
IHZhbGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICdzZW5kZXJJZCcsICdzZW5kZXIn
KTsKICAgdmFsaWRhdGVJZEZpZWxkKHN0YXRzUmVwb3J0LCBzdGF0cywgJ3JlbW90ZUlkJywgJ3Jl
bW90ZS1pbmJvdW5kLXJ0cCcpOwogCisgIGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQoc3Rh
dHMsICdyaWQnKTsKKwogICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnbGFz
dFBhY2tldFNlbnRUaW1lc3RhbXAnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9m
aWVsZChzdGF0cywgJ2hlYWRlckJ5dGVzU2VudCcpOworICBhc3NlcnRfb3B0aW9uYWxfdW5zaWdu
ZWRfaW50X2ZpZWxkKHN0YXRzLCAncGFja2V0c0Rpc2NhcmRlZE9uU2VuZCcpOworICBhc3NlcnRf
b3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnYnl0ZXNEaXNjYXJkZWRPblNlbmQn
KTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZlY1BhY2tl
dHNTZW50Jyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdy
ZXRyYW5zbWl0dGVkUGFja2V0c1NlbnQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2lu
dF9maWVsZChzdGF0cywgJ3JldHJhbnNtaXR0ZWRCeXRlc1NlbnQnKTsKICAgYXNzZXJ0X29wdGlv
bmFsX251bWJlcl9maWVsZChzdGF0cywgJ3RhcmdldEJpdHJhdGUnKTsKLSAgaWYgKHN0YXRzWydt
ZWRpYVR5cGUnXSA9PSAndmlkZW8nKSB7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRf
ZmllbGQoc3RhdHMsICd0b3RhbEVuY29kZWRCeXRlc1RhcmdldCcpOworICBpZiAoc3RhdHNbJ2tp
bmQnXSA9PT0gJ3ZpZGVvJykgeworICAgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmll
bGQoc3RhdHMsICdmcmFtZVdpZHRoJyk7CisgICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2lu
dF9maWVsZChzdGF0cywgJ2ZyYW1lSGVpZ2h0Jyk7CisgICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2ln
bmVkX2ludF9maWVsZChzdGF0cywgJ2ZyYW1lQml0RGVwdGgnKTsKKyAgICBhc3NlcnRfb3B0aW9u
YWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnZnJhbWVzUGVyU2Vjb25kJyk7CisgICAgYXNzZXJ0X3Vu
c2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZyYW1lc1NlbnQnKTsKKyAgICBhc3NlcnRfb3B0aW9u
YWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnaHVnZUZyYW1lc1NlbnQnKTsKICAgICBhc3Nl
cnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZnJhbWVzRW5jb2RlZCcpOworICAgIGFzc2Vy
dF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdrZXlGcmFtZXNFbmNvZGVkJyk7
CisgICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZyYW1lc0Rp
c2NhcmRlZE9uU2VuZCcpOworICAgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQo
c3RhdHMsICdxcFN1bScpOworICB9IGVsc2UgICBpZiAoc3RhdHNbJ2tpbmQnXSA9PT0gJ2F1ZGlv
JykgeworICAgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICd0b3Rh
bFNhbXBsZXNTZW50Jyk7CisgICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChz
dGF0cywgJ3NhbXBsZXNFbmNvZGVkV2l0aFNpbGsnKTsKKyAgICBhc3NlcnRfb3B0aW9uYWxfdW5z
aWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnc2FtcGxlc0VuY29kZWRXaXRoQ2VsdCcpOworICAgIGFz
c2VydF9vcHRpb25hbF9ib29sZWFuX2ZpZWxkKHN0YXRzLCAndm9pY2VBY3Rpdml0eUZsYWcnKTsK
ICAgfQogICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAndG90YWxFbmNvZGVU
aW1lJyk7CisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3RhdHMsICd0b3RhbFBhY2tl
dFNlbmREZWxheScpOwogICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnYXZl
cmFnZVJUQ1BJbnRlcnZhbCcpOworCisgIGlmIChzdGF0c1sna2luZCddID09PSAndmlkZW8nKSB7
CisgICAgYXNzZXJ0X29wdGlvbmFsX2VudW1fZmllbGQoc3RhdHMsICdxdWFsaXR5TGltaXRhdGlv
blJlYXNvbicsIFsnbm9uZScsICdjcHUnLCAnYmFuZHdpZHRoJywgJ290aGVyJ10pOworCisgICAg
YXNzZXJ0X29wdGlvbmFsX2RpY3RfZmllbGQoc3RhdHMsICdxdWFsaXR5TGltaXRhdGlvbkR1cmF0
aW9ucycpOworICAgIGlmIChzdGF0c1sncXVhbGl0eUxpbWl0YXRpb25EdXJhdGlvbnMnXSkgewor
ICAgICAgT2JqZWN0LmtleXMoc3RhdHNbJ3F1YWxpdHlMaW1pdGF0aW9uRHVyYXRpb25zJ10pCisg
ICAgICAgIC5mb3JFYWNoKGsgPT4KKyAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBl
b2YgaywgJ3N0cmluZycsICdFeHBlY3Qga2V5cyBvZiBxdWFsaXR5TGltaXRhdGlvbkR1cmF0aW9u
cyB0byBiZSBzdHJpbmdzJykKKyAgICAgICAgICAgICAgICApOworICAgICAgT2JqZWN0LnZhbHVl
cyhzdGF0c1sncXVhbGl0eUxpbWl0YXRpb25EdXJhdGlvbnMnXSkKKyAgICAgICAgLmZvckVhY2go
diA9PgorICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBudW0sICdudW1iZXIn
LCAnRXhwZWN0IHZhbHVlcyBvZiBxdWFsaXR5TGltaXRhdGlvbkR1cmF0aW9ucyB0byBiZSBudW1i
ZXJzJykKKyAgICAgICAgICAgICAgICApOworICAgIH0KKworICAgIGFzc2VydF9vcHRpb25hbF91
bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdxdWFsaXR5TGltaXRhdGlvblJlc29sdXRpb25DaGFu
Z2VzJyk7CisgICAgfQorICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnbmFja0Nv
dW50Jyk7CisgIGFzc2VydF9vcHRpb25hbF9kaWN0X2ZpZWxkKHN0YXRzLCAncGVyRHNjcFBhY2tl
dHNTZW50Jyk7CisgIGlmIChzdGF0c1sncGVyRHNjcFBhY2tldHNTZW50J10pIHsKKyAgICBPYmpl
Y3Qua2V5cyhzdGF0c1sncGVyRHNjcFBhY2tldHNTZW50J10pCisgICAgICAuZm9yRWFjaChrID0+
CisgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBrLCAnc3RyaW5nJywgJ0V4cGVj
dCBrZXlzIG9mIHBlckRzY3BQYWNrZXRzU2VudCB0byBiZSBzdHJpbmdzJykKKyAgICAgICAgICAg
ICAgKTsKKyAgICBPYmplY3QudmFsdWVzKHN0YXRzWydwZXJEc2NwUGFja2V0c1NlbnQnXSkKKyAg
ICAgIC5mb3JFYWNoKHYgPT4KKyAgICAgICAgICAgICAgIGFzc2VydF90cnVlKE51bWJlci5pc0lu
dGVnZXIodikgJiYgKHYgPj0gMCksICdFeHBlY3QgdmFsdWVzIG9mIHBlckRzY3BQYWNrZXRzU2Vu
dCB0byBiZSBzdHJpbmdzJykKKyAgICAgICAgICAgICAgKTsKKyAgfQorCisgIGFzc2VydF9vcHRp
b25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmaXJDb3VudCcpOworICBhc3NlcnRfb3B0
aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncGxpQ291bnQnKTsKKyAgYXNzZXJ0X29w
dGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3NsaUNvdW50Jyk7CisgIGFzc2VydF9v
cHRpb25hbF9zdHJpbmdfZmllbGQoc3RhdHMsICdlbmNvZGVySW1wbGVtZW50YXRpb24nKTsKKyAg
Ly8gT2Jzb2xldGUgc3RhdHMKKyAgdmFsaWRhdGVPcHRpb25hbElkRmllbGQoc3RhdHNSZXBvcnQs
IHN0YXRzLCAndHJhY2tJZCcsICd0cmFjaycpOwogfQogCiAvKgogICBbd2VicnRjLXN0YXRzXQot
ICA3LjguICBSVENSZW1vdGVPdXRib3VuZFJUUFN0cmVhbVN0YXRzIGRpY3Rpb25hcnkKLSAgICBk
aWN0aW9uYXJ5IFJUQ1JlbW90ZU91dGJvdW5kUlRQU3RyZWFtU3RhdHMgOiBSVENTZW50UlRQU3Ry
ZWFtU3RhdHMgeworICA3LjguICBSVENSZW1vdGVPdXRib3VuZFJ0cFN0cmVhbVN0YXRzIGRpY3Rp
b25hcnkKKyAgICBkaWN0aW9uYXJ5IFJUQ1JlbW90ZU91dGJvdW5kUnRwU3RyZWFtU3RhdHMgOiBS
VENTZW50UnRwU3RyZWFtU3RhdHMgewogICAgICAgRE9NU3RyaW5nICAgICAgICAgICBsb2NhbElk
OwogICAgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCByZW1vdGVUaW1lc3RhbXA7CisgICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgIHJlcG9ydHNTZW50OwogICAgIH07CiAKICAgW3dlYnJ0Yy1wY10KICAg
OC42LiAgTWFuZGF0b3J5IFRvIEltcGxlbWVudCBTdGF0cwotICAgIC0gUlRDUmVtb3RlT3V0Ym91
bmRSVFBTdHJlYW1TdGF0cywgd2l0aCBhbGwgcmVxdWlyZWQgYXR0cmlidXRlcyBmcm9tIGl0cwor
ICAgIC0gUlRDUmVtb3RlT3V0Ym91bmRSdHBTdHJlYW1TdGF0cywgd2l0aCBhbGwgcmVxdWlyZWQg
YXR0cmlidXRlcyBmcm9tIGl0cwogICAgICAgaW5oZXJpdGVkIGRpY3Rpb25hcmllcywgYW5kIGFs
c28gYXR0cmlidXRlcyBsb2NhbElkLCByZW1vdGVUaW1lc3RhbXAKICAqLwogZnVuY3Rpb24gdmFs
aWRhdGVSZW1vdGVPdXRib3VuZFJ0cFN0cmVhbVN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewpA
QCAtMzkwLDYgKzU4MCw1OCBAQCBmdW5jdGlvbiB2YWxpZGF0ZVJlbW90ZU91dGJvdW5kUnRwU3Ry
ZWFtU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CiAKICAgdmFsaWRhdGVJZEZpZWxkKHN0YXRz
UmVwb3J0LCBzdGF0cywgJ2xvY2FsSWQnLCAnaW5ib3VuZC1ydHAnKTsKICAgYXNzZXJ0X251bWJl
cl9maWVsZChzdGF0cywgJ3JlbW90ZVRpbWVTdGFtcCcpOworICBhc3NlcnRfb3B0aW9uYWxfdW5z
aWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncmVwb3J0c1NlbnQnKTsKK30KKworLyoKKyAgW3dlYnJ0
Yy1zdGF0c10KKyAgNy4xMSBSVENNZWRpYVNvdXJjZVN0YXRzIGRpY3Rpb25hcnkKKyAgZGljdGlv
bmFyeSBSVENNZWRpYVNvdXJjZVN0YXRzIDogUlRDU3RhdHMgeworICAgICAgRE9NU3RyaW5nICAg
ICAgIHRyYWNrSWRlbnRpZmllcjsKKyAgICAgIERPTVN0cmluZyAgICAgICBraW5kOworICB9Owor
CisgIGRpY3Rpb25hcnkgUlRDQXVkaW9Tb3VyY2VTdGF0cyA6IFJUQ01lZGlhU291cmNlU3RhdHMg
eworICAgICAgIGRvdWJsZSAgICAgICBhdWRpb0xldmVsOworICAgICAgIGRvdWJsZSAgICAgICB0
b3RhbEF1ZGlvRW5lcmd5OworICAgICAgIGRvdWJsZSAgICAgICB0b3RhbFNhbXBsZXNEdXJhdGlv
bjsKKyAgICAgICBkb3VibGUgICAgICAgZWNob1JldHVybkxvc3M7CisgICAgICAgZG91YmxlICAg
ICAgIGVjaG9SZXR1cm5Mb3NzRW5oYW5jZW1lbnQ7CisgIH07CisKKyAgZGljdGlvbmFyeSBSVENW
aWRlb1NvdXJjZVN0YXRzIDogUlRDTWVkaWFTb3VyY2VTdGF0cyB7CisgICAgICB1bnNpZ25lZCBs
b25nICAgd2lkdGg7CisgICAgICB1bnNpZ25lZCBsb25nICAgaGVpZ2h0OworICAgICAgdW5zaWdu
ZWQgbG9uZyAgIGJpdERlcHRoOworICAgICAgdW5zaWduZWQgbG9uZyAgIGZyYW1lczsKKyAgICAg
IC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1zdGF0cy9pc3N1ZXMvNTQwCisg
ICAgICBkb3VibGUgICBmcmFtZXNQZXJTZWNvbmQ7CisgIH07CisKKyAgW3dlYnJ0Yy1wY10KKyAg
OC42LiAgTWFuZGF0b3J5IFRvIEltcGxlbWVudCBTdGF0cworICBSVENNZWRpYVNvdXJjZVN0YXRz
IHdpdGggYXR0cmlidXRlcyB0cmFja0lkZW50aWZpZXIsIGtpbmQKKyAgUlRDQXVkaW9Tb3VyY2VT
dGF0cywgd2l0aCBhbGwgcmVxdWlyZWQgYXR0cmlidXRlcyBmcm9tIGl0cyBpbmhlcml0ZWQgZGlj
dGlvbmFyaWVzIGFuZCB0b3RhbEF1ZGlvRW5lcmd5LCB0b3RhbFNhbXBsZXNEdXJhdGlvbgorICBS
VENWaWRlb1NvdXJjZVN0YXRzLCB3aXRoIGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzIGZyb20gaXRz
IGluaGVyaXRlZCBkaWN0aW9uYXJpZXMgYW5kIHdpZHRoLCBoZWlnaHQsIGZyYW1lc1BlclNlY29u
ZAorKi8KK2Z1bmN0aW9uIHZhbGlkYXRlTWVkaWFTb3VyY2VTdGF0cyhzdGF0c1JlcG9ydCwgc3Rh
dHMpIHsKKyAgdmFsaWRhdGVSdGNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpOworICBhc3NlcnRf
c3RyaW5nX2ZpZWxkKHN0YXRzLCAndHJhY2tJZGVudGlmaWVyJyk7CisgIGFzc2VydF9lbnVtX2Zp
ZWxkKHN0YXRzLCAna2luZCcsIFsnYXVkaW8nLCAndmlkZW8nXSk7CisKKyAgaWYgKHN0YXRzLmtp
bmQgPT09ICdhdWRpbycpIHsKKyAgICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRz
LCAnYXVkaW9MZXZlbCcpOworICAgIGFzc2VydF9udW1iZXJfZmllbGQoc3RhdHMsICd0b3RhbEF1
ZGlvRW5lcmd5Jyk7CisgICAgYXNzZXJ0X251bWJlcl9maWVsZChzdGF0cywgJ3RvdGFsU2FtcGxl
c0R1cmF0aW9uJyk7CisgICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywgJ2Vj
aG9SZXR1cm5Mb3NzJyk7CisgICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChzdGF0cywg
J2VjaG9SZXR1cm5Mb3NzRW5oYW5jZW1lbnQnKTsKKyAgfSBlbHNlIGlmIChzdGF0cy5raW5kID09
PSAndmlkZW8nKSB7CisgICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3dpZHRo
Jyk7CisgICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2hlaWdodCcpOworICAg
IGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdiaXREcGV0aCcpOwor
ICAgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZXMnKTsK
KyAgICBhc3NlcnRfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnZnJhbWVzUGVyU2Vjb25kJyk7CisgIH0K
IH0KIAogLyoKQEAgLTQzNSwxNDMgKzY3NywxMDIgQEAgZnVuY3Rpb24gdmFsaWRhdGVQZWVyQ29u
bmVjdGlvblN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogICBhc3NlcnRfb3B0aW9uYWxfdW5z
aWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZGF0YUNoYW5uZWxzQWNjZXB0ZWQnKTsKIH0KIAotLyoK
LSAgW3dlYnJ0Yy1zdGF0c10KLSAgNy4xMS4gUlRDTWVkaWFTdHJlYW1TdGF0cyBkaWN0aW9uYXJ5
Ci0gICAgZGljdGlvbmFyeSBSVENNZWRpYVN0cmVhbVN0YXRzIDogUlRDU3RhdHMgewotICAgICAg
RE9NU3RyaW5nICAgICAgICAgICBzdHJlYW1JZGVudGlmaWVyOwotICAgICAgc2VxdWVuY2U8RE9N
U3RyaW5nPiB0cmFja0lkczsKLSAgICB9OwotCi0gIFt3ZWJydGMtcGNdCi0gIDguNi4gIE1hbmRh
dG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKLSAgICAtIFJUQ01lZGlhU3RyZWFtU3RhdHMsIHdpdGgg
YXR0cmlidXRlcyBzdHJlYW1JZGVudGlmZXIsIHRyYWNrSWRzCi0gKi8KLWZ1bmN0aW9uIHZhbGlk
YXRlTWVkaWFTdHJlYW1TdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKKy8qIFt3ZWJydGMtc3Rh
dHNdCisgIDcuMTYgUlRDUnRwVHJhbnNjZWl2ZXJTdGF0cyBkaWN0aW9uYXJ5CisgIGRpY3Rpb25h
cnkgUlRDUnRwVHJhbnNjZWl2ZXJTdGF0cyB7CisgICAgRE9NU3RyaW5nIHNlbmRlcklkOworICAg
IERPTVN0cmluZyByZWNlaXZlcklkOworICAgIERPTVN0cmluZyBtaWQ7CisgIH07CisqLworZnVu
Y3Rpb24gdmFsaWRhdGVUcmFuc2NlaXZlclN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogICB2
YWxpZGF0ZVJ0Y1N0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cyk7Ci0KLSAgYXNzZXJ0X3N0cmluZ19m
aWVsZChzdGF0cywgJ3N0cmVhbUlkZW50aWZpZXInKTsKLSAgYXNzZXJ0X2FycmF5X2ZpZWxkKHN0
YXRzLCAndHJhY2tJZHMnKTsKLQotICBmb3IoY29uc3QgdHJhY2tJZCBvZiBzdGF0cy50cmFja0lk
cykgewotICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHRyYWNrSWQsICdzdHJpbmcnLAotICAgICAg
J0V4cGVjdCB0cmFja0lkIGVsZW1lbnRzIHRvIGJlIHN0cmluZycpOwotCi0gICAgYXNzZXJ0X3Ry
dWUoc3RhdHNSZXBvcnQuaGFzKHRyYWNrSWQpLAotICAgICAgYEV4cGVjdCBzdGF0cyByZXBvcnQg
dG8gaGF2ZSBzdGF0cyBvYmplY3Qgd2l0aCBpZCAke3RyYWNrSWR9YCk7Ci0KLSAgICBjb25zdCB0
cmFja1N0YXRzID0gc3RhdHNSZXBvcnQuZ2V0KHRyYWNrSWQpOwotICAgIGFzc2VydF9lcXVhbHMo
dHJhY2tTdGF0cy50eXBlLCAndHJhY2snLAotICAgICAgYEV4cGVjdCB0cmFjayBzdGF0cyBvYmpl
Y3QgdG8gaGF2ZSB0eXBlICd0cmFjaydgKTsKLSAgfQorICB2YWxpZGF0ZU9wdGlvbmFsSWRGaWVs
ZChzdGF0c1JlcG9ydCwgc3RhdHMsICdzZW5kZXJJZCcsICdzZW5kZXInKTsKKyAgdmFsaWRhdGVP
cHRpb25hbElkRmllbGQoc3RhdHNSZXBvcnQsIHN0YXRzLCAncmVjZWl2ZXJJZCcsICdzZW5kZXIn
KTsKKyAgYXNzZXJ0X29wdGlvbmFsX3N0cmluZ19maWVsZChzdGF0cywgJ21pZCcpOwogfQogCiAv
KgogICBbd2VicnRjLXN0YXRzXQotICA3LjEyLiBSVENNZWRpYVN0cmVhbVRyYWNrU3RhdHMgZGlj
dGlvbmFyeQotICAgIGRpY3Rpb25hcnkgUlRDTWVkaWFTdHJlYW1UcmFja1N0YXRzIDogUlRDU3Rh
dHMgeworICBkaWN0aW9uYXJ5IFJUQ01lZGlhSGFuZGxlclN0YXRzIDogUlRDU3RhdHMgewogICAg
ICAgRE9NU3RyaW5nICAgICAgICAgICB0cmFja0lkZW50aWZpZXI7Ci0gICAgICBib29sZWFuICAg
ICAgICAgICAgIHJlbW90ZVNvdXJjZTsKLSAgICAgIGJvb2xlYW4gICAgICAgICAgICAgZW5kZWQ7
Ci0gICAgICBib29sZWFuICAgICAgICAgICAgIGRldGFjaGVkOworICAgICAgYm9vbGVhbiAgICAg
IHJlbW90ZVNvdXJjZTsKKyAgICAgIGJvb2xlYW4gICAgICBlbmRlZDsKICAgICAgIERPTVN0cmlu
ZyAgICAgICAgICAga2luZDsKLSAgICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgZXN0aW1hdGVkUGxh
eW91dFRpbWVzdGFtcDsKLSAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgZnJhbWVXaWR0aDsKLSAg
ICAgIHVuc2lnbmVkIGxvbmcgICAgICAgZnJhbWVIZWlnaHQ7Ci0gICAgICBkb3VibGUgICAgICAg
ICAgICAgIGZyYW1lc1BlclNlY29uZDsKLSAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgZnJhbWVz
Q2FwdHVyZWQ7Ci0gICAgICB1bnNpZ25lZCBsb25nICAgICAgIGZyYW1lc1NlbnQ7Ci0gICAgICB1
bnNpZ25lZCBsb25nICAgICAgIGtleUZyYW1lc1NlbnQ7Ci0gICAgICB1bnNpZ25lZCBsb25nICAg
ICAgIGZyYW1lc1JlY2VpdmVkOwotICAgICAgdW5zaWduZWQgbG9uZyAgICAgICBrZXlGcmFtZXNS
ZWNlaXZlZDsKLSAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgZnJhbWVzRGVjb2RlZDsKLSAgICAg
IHVuc2lnbmVkIGxvbmcgICAgICAgZnJhbWVzRHJvcHBlZDsKLSAgICAgIHVuc2lnbmVkIGxvbmcg
ICAgICAgZnJhbWVzQ29ycnVwdGVkOwotICAgICAgdW5zaWduZWQgbG9uZyAgICAgICBwYXJ0aWFs
RnJhbWVzTG9zdDsKLSAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgZnVsbEZyYW1lc0xvc3Q7Ci0g
ICAgICBkb3VibGUgICAgICAgICAgICAgIGF1ZGlvTGV2ZWw7Ci0gICAgICBkb3VibGUgICAgICAg
ICAgICAgIHRvdGFsQXVkaW9FbmVyZ3k7Ci0gICAgICBib29sZWFuICAgICAgICAgICAgIHZvaWNl
QWN0aXZpdHlGbGFnOwotICAgICAgZG91YmxlICAgICAgICAgICAgICBlY2hvUmV0dXJuTG9zczsK
LSAgICAgIGRvdWJsZSAgICAgICAgICAgICAgZWNob1JldHVybkxvc3NFbmhhbmNlbWVudDsKLSAg
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgdG90YWxTYW1wbGVzU2VudDsKLSAgICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyAgdG90YWxTYW1wbGVzUmVjZWl2ZWQ7Ci0gICAgICBkb3VibGUgICAgICAgICAg
ICAgIHRvdGFsU2FtcGxlc0R1cmF0aW9uOwotICAgICAgdW5zaWduZWQgbG9uZyBsb25nICBjb25j
ZWFsZWRTYW1wbGVzOwotICAgICAgdW5zaWduZWQgbG9uZyBsb25nICBjb25jZWFsbWVudEV2ZW50
czsKLSAgICAgIGRvdWJsZSAgICAgICAgICAgICAgaml0dGVyQnVmZmVyRGVsYXk7CiAgICAgICBS
VENQcmlvcml0eVR5cGUgICAgIHByaW9yaXR5OwotICAgIH07CisgIH07CisgIGRpY3Rpb25hcnkg
UlRDVmlkZW9IYW5kbGVyU3RhdHMgOiBSVENNZWRpYUhhbmRsZXJTdGF0cyB7CisgIH07CisgIGRp
Y3Rpb25hcnkgUlRDQXVkaW9IYW5kbGVyU3RhdHMgOiBSVENNZWRpYUhhbmRsZXJTdGF0cyB7Cisg
IH07CisgIFVzZWQgZnJvbSB2YWxpZGF0ZVNlbmRlclN0YXRzIGFuZCB2YWxpZGF0ZVJlY2VpdmVy
U3RhdHMKKworICBbd2VicnRjLXByaW9yaXR5XQorICBlbnVtIFJUQ1ByaW9yaXR5VHlwZSB7Cisg
ICAgInZlcnktbG93IiwKKyAgICAibG93IiwKKyAgICAibWVkaXVtIiwKKyAgICAiaGlnaCIKKyAg
fTsKIAogICBbd2VicnRjLXBjXQotICA0LjkuMS4gIFJUQ1ByaW9yaXR5VHlwZSBFbnVtCi0gICAg
ZW51bSBSVENQcmlvcml0eVR5cGUgewotICAgICAgInZlcnktbG93IiwKLSAgICAgICJsb3ciLAot
ICAgICAgIm1lZGl1bSIsCi0gICAgICAiaGlnaCIKLSAgICB9OworICBNVEk6CisgIFJUQ01lZGlh
SGFuZGxlclN0YXRzIHdpdGggYXR0cmlidXRlcyB0cmFja0lkZW50aWZpZXIKKyAgUlRDQXVkaW9I
YW5kbGVyU3RhdHMsIHdpdGggYWxsIHJlcXVpcmVkIGF0dHJpYnV0ZXMgZnJvbSBpdHMgaW5oZXJp
dGVkIGRpY3Rpb25hcmllcworICBSVENWaWRlb0hhbmRsZXJTdGF0cywgd2l0aCBhbGwgcmVxdWly
ZWQgYXR0cmlidXRlcyBmcm9tIGl0cyBpbmhlcml0ZWQgZGljdGlvbmFyaWVzCiAKLSAgOC42LiAg
TWFuZGF0b3J5IFRvIEltcGxlbWVudCBTdGF0cwotICAgIC0gUlRDTWVkaWFTdHJlYW1UcmFja1N0
YXRzLCB3aXRoIGF0dHJpYnV0ZXMgdHJhY2tJZGVudGlmaWVyLCByZW1vdGVTb3VyY2UsCi0gICAg
ICBlbmRlZCwgZGV0YWNoZWQsIGZyYW1lV2lkdGgsIGZyYW1lSGVpZ2h0LCBmcmFtZXNQZXJTZWNv
bmQsIGZyYW1lc1NlbnQsCi0gICAgICBmcmFtZXNSZWNlaXZlZCwgZnJhbWVzRGVjb2RlZCwgZnJh
bWVzRHJvcHBlZCwgZnJhbWVzQ29ycnVwdGVkLCBhdWRpb0xldmVsCi0gKi8KLQotZnVuY3Rpb24g
dmFsaWRhdGVNZWRpYVN0cmVhbVRyYWNrU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CisqLwor
ZnVuY3Rpb24gdmFsaWRhdGVNZWRpYUhhbmRsZXJTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsK
ICAgdmFsaWRhdGVSdGNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpOwotCiAgIGFzc2VydF9zdHJp
bmdfZmllbGQoc3RhdHMsICd0cmFja0lkZW50aWZpZXInKTsKLSAgYXNzZXJ0X2Jvb2xlYW5fZmll
bGQoc3RhdHMsICdyZW1vdGVTb3VyY2UnKTsKLSAgYXNzZXJ0X2Jvb2xlYW5fZmllbGQoc3RhdHMs
ICdlbmRlZCcpOwotICBhc3NlcnRfYm9vbGVhbl9maWVsZChzdGF0cywgJ2RldGFjaGVkJyk7Cisg
IGFzc2VydF9vcHRpb25hbF9ib29sZWFuX2ZpZWxkKHN0YXRzLCAncmVtb3RlU291cmNlJyk7Cisg
IGFzc2VydF9vcHRpb25hbF9ib29sZWFuX2ZpZWxkKHN0YXRzLCAnZW5kZWQnKTsKKyAgYXNzZXJ0
X29wdGlvbmFsX3N0cmluZ19maWVsZChzdGF0cywgJ2tpbmQnKTsKKyAgYXNzZXJ0X2VudW1fZmll
bGQoc3RhdHMsICdwcmlvcml0eScsIFsndmVyeS1sb3cnLCAnbG93JywgJ21lZGl1bScsICdoaWdo
J10pOworfQogCi0gIGFzc2VydF9vcHRpb25hbF9lbnVtX2ZpZWxkKHN0YXRzLCAna2luZCcsIFsn
YXVkaW8nLCAndmlkZW8nXSk7Ci0gIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3RhdHMs
ICdlc3RpbWF0ZWRQbGF5b3V0VGltZXN0YW1wJyk7Ci0gIGlmIChzdGF0c1sna2luZCddID09PSAn
dmlkZW8nKSB7Ci0gICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZyYW1lV2lk
dGgnKTsKLSAgICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnZnJhbWVIZWlnaHQn
KTsKLSAgICBhc3NlcnRfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnZnJhbWVzUGVyU2Vjb25kJyk7Ci0g
ICAgaWYgKHN0YXRzWydmcmFtZXNTZW50J10pIHsKLSAgICAgIGFzc2VydF9vcHRpb25hbF91bnNp
Z25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZXNDYXB0dXJlZCcpOwotICAgICAgYXNzZXJ0X3Vu
c2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2ZyYW1lc1NlbnQnKTsKLSAgICAgIGFzc2VydF9vcHRp
b25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdrZXlGcmFtZXNTZW50Jyk7Ci0gICAgfSBl
bHNlIHsKLSAgICAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdmcmFtZXNSZWNl
aXZlZCcpOwotICAgICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywg
J2tleUZyYW1lc1JlY2VpdmVkJyk7Ci0gICAgICBhc3NlcnRfdW5zaWduZWRfaW50X2ZpZWxkKHN0
YXRzLCAnZnJhbWVzRGVjb2RlZCcpOwotICAgICAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChz
dGF0cywgJ2ZyYW1lc0Ryb3BwZWQnKTsKLSAgICAgIGFzc2VydF91bnNpZ25lZF9pbnRfZmllbGQo
c3RhdHMsICdmcmFtZXNDb3JydXB0ZWQnKTsKLSAgICB9CisvKgorIFt3ZWJydGMtc3RhdHNdCisg
IGRpY3Rpb25hcnkgUlRDQXVkaW9TZW5kZXJTdGF0cyA6IFJUQ0F1ZGlvSGFuZGxlclN0YXRzIHsK
KyAgICAgIERPTVN0cmluZyAgICAgICAgICAgbWVkaWFTb3VyY2VJZDsKKyAgfTsKKyAgZGljdGlv
bmFyeSBSVENWaWRlb1NlbmRlclN0YXRzIDogUlRDVmlkZW9IYW5kbGVyU3RhdHMgeworICAgICAg
RE9NU3RyaW5nICAgICAgICAgICBtZWRpYVNvdXJjZUlkOworICB9OwogCi0gICAgYXNzZXJ0X29w
dGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhcnRpYWxGcmFtZXNMb3N0Jyk7Ci0g
ICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ2Z1bGxGcmFtZXNM
b3N0Jyk7Ci0gIH0gZWxzZSB7Ci0gICAgYXNzZXJ0X251bWJlcl9maWVsZChzdGF0cywgJ2F1ZGlv
TGV2ZWwnKTsKLSAgICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAndG90YWxB
dWRpb0VuZXJneScpOwotICAgIGFzc2VydF9vcHRpb25hbF9ib29sZWFuX2ZpZWxkKHN0YXRzLCAn
dm9pY2VBY3Rpdml0eUZsYWcnKTsKLSAgICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0
YXRzLCAnZWNob1JldHVybkxvc3MnKTsKLSAgICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxk
KHN0YXRzLCAnZWNob1JldHVybkxvc3NFbmhhbmNlbWVudCcpOworICBbd2VicnRjLXBjXQorICBN
VEk6CisgIFJUQ1ZpZGVvU2VuZGVyU3RhdHMsIHdpdGggYWxsIHJlcXVpcmVkIGF0dHJpYnV0ZXMg
ZnJvbSBpdHMgaW5oZXJpdGVkIGRpY3Rpb25hcmllcworKi8KK2Z1bmN0aW9uIHZhbGlkYXRlU2Vu
ZGVyU3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CisgIHZhbGlkYXRlTWVkaWFIYW5kbGVyU3Rh
dHMoc3RhdHNSZXBvcnQsIHN0YXRzKTsKKyAgdmFsaWRhdGVPcHRpb25hbElkRmllbGQoc3RhdHNS
ZXBvcnQsIHN0YXRzLCAnbWVkaWFTb3VyY2VJZCcsICdtZWRpYS1zb3VyY2UnKTsKK30KIAotICAg
IGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICd0b3RhbFNhbXBsZXNT
ZW50Jyk7Ci0gICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3Rv
dGFsU2FtcGxlc1JlY2VpdmVkJyk7Ci0gICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChz
dGF0cywgJ3RvdGFsU2FtcGxlc0R1cmF0aW9uJyk7Ci0gICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2ln
bmVkX2ludF9maWVsZChzdGF0cywgJ2NvbmNlYWxlZFNhbXBsZXMnKTsKLSAgICBhc3NlcnRfb3B0
aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY29uY2VhbG1lbnRFdmVudHMnKTsKLSAg
ICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnaml0dGVyQnVmZmVyRGVsYXkn
KTsKLSAgfQorLyoKKyBbd2VicnRjLXN0YXRzXQorICBkaWN0aW9uYXJ5IFJUQ0F1ZGlvUmVjZWl2
ZXJTdGF0cyA6IFJUQ0F1ZGlvSGFuZGxlclN0YXRzIHsKKyAgfTsKKyAgZGljdGlvbmFyeSBSVENW
aWRlb1JlY2VpdmVyU3RhdHMgOiBSVENWaWRlb0hhbmRsZXJTdGF0cyB7CisgIH07CiAKLSAgYXNz
ZXJ0X29wdGlvbmFsX2VudW1fZmllbGQoc3RhdHMsICdwcmlvcml0eScsCi0gICAgWyd2ZXJ5LWxv
dycsICdsb3cnLCAnbWVkaXVtJywgJ2hpZ2gnXSk7CisgIFt3ZWJydGMtcGNdCisgIE1USToKKyAg
UlRDVmlkZW9SZWNlaXZlclN0YXRzLCB3aXRoIGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzIGZyb20g
aXRzIGluaGVyaXRlZCBkaWN0aW9uYXJpZXMKKyovCitmdW5jdGlvbiB2YWxpZGF0ZVJlY2VpdmVy
U3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7CisgIHZhbGlkYXRlTWVkaWFIYW5kbGVyU3RhdHMo
c3RhdHNSZXBvcnQsIHN0YXRzKTsKIH0KIAorCiAvKgogICBbd2VicnRjLXN0YXRzXQogICA3LjEz
LiBSVENEYXRhQ2hhbm5lbFN0YXRzIGRpY3Rpb25hcnkKICAgICBkaWN0aW9uYXJ5IFJUQ0RhdGFD
aGFubmVsU3RhdHMgOiBSVENTdGF0cyB7CiAgICAgICBET01TdHJpbmcgICAgICAgICAgIGxhYmVs
OwogICAgICAgRE9NU3RyaW5nICAgICAgICAgICBwcm90b2NvbDsKLSAgICAgIGxvbmcgICAgICAg
ICAgICAgICAgZGF0YUNoYW5uZWxJZGVudGlmaWVyOworICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0
aHViLmNvbS93M2Mvd2VicnRjLXN0YXRzL2lzc3Vlcy81NDEKKyAgICAgIHVuc2lnbmVkIHNob3J0
ICAgICAgZGF0YUNoYW5uZWxJZGVudGlmaWVyOwogICAgICAgRE9NU3RyaW5nICAgICAgICAgICB0
cmFuc3BvcnRJZDsKICAgICAgIFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGU7CiAgICAgICB1bnNp
Z25lZCBsb25nICAgICAgIG1lc3NhZ2VzU2VudDsKQEAgLTU5MCw3ICs3OTEsNyBAQCBmdW5jdGlv
biB2YWxpZGF0ZU1lZGlhU3RyZWFtVHJhY2tTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAg
ICB9OwogCiAgIDguNi4gIE1hbmRhdG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKLSAgICAtIFJUQ0Rh
dGFDaGFubmVsU3RhdHMsIHdpdGggYXR0cmlidXRlcyBsYWJlbCwgcHJvdG9jb2wsIGRhdGFjaGFu
bmVsSWQsIHN0YXRlLAorICAgIC0gUlRDRGF0YUNoYW5uZWxTdGF0cywgd2l0aCBhdHRyaWJ1dGVz
IGxhYmVsLCBwcm90b2NvbCwgZGF0YWNoYW5uZWxJZGVudGlmaWVyLCBzdGF0ZSwKICAgICAgIG1l
c3NhZ2VzU2VudCwgYnl0ZXNTZW50LCBtZXNzYWdlc1JlY2VpdmVkLCBieXRlc1JlY2VpdmVkCiAg
Ki8KIGZ1bmN0aW9uIHZhbGlkYXRlRGF0YUNoYW5uZWxTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMp
IHsKQEAgLTU5OCw3ICs3OTksNyBAQCBmdW5jdGlvbiB2YWxpZGF0ZURhdGFDaGFubmVsU3RhdHMo
c3RhdHNSZXBvcnQsIHN0YXRzKSB7CiAKICAgYXNzZXJ0X3N0cmluZ19maWVsZChzdGF0cywgJ2xh
YmVsJyk7CiAgIGFzc2VydF9zdHJpbmdfZmllbGQoc3RhdHMsICdwcm90b2NvbCcpOwotICBhc3Nl
cnRfaW50X2ZpZWxkKHN0YXRzLCAnZGF0YUNoYW5uZWxJZGVudGlmaWVyJyk7CisgIGFzc2VydF91
bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdkYXRhQ2hhbm5lbElkZW50aWZpZXInKTsKIAogICB2
YWxpZGF0ZU9wdGlvbmFsSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICd0cmFuc3BvcnRJZCcs
ICd0cmFuc3BvcnQnKTsKIApAQCAtNjE1LDggKzgxNiw4IEBAIGZ1bmN0aW9uIHZhbGlkYXRlRGF0
YUNoYW5uZWxTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgW3dlYnJ0Yy1zdGF0c10KICAg
Ny4xNC4gUlRDVHJhbnNwb3J0U3RhdHMgZGljdGlvbmFyeQogICAgIGRpY3Rpb25hcnkgUlRDVHJh
bnNwb3J0U3RhdHMgOiBSVENTdGF0cyB7Ci0gICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgcGFj
a2V0c1NlbnQ7Ci0gICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgcGFja2V0c1JlY2VpdmVkOwor
ICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgIHBhY2tldHNTZW50OworICAgICAgdW5zaWduZWQg
bG9uZyBsb25nICAgIHBhY2tldHNSZWNlaXZlZDsKICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAg
ICBieXRlc1NlbnQ7CiAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgICAgYnl0ZXNSZWNlaXZlZDsK
ICAgICAgIERPTVN0cmluZyAgICAgICAgICAgICBydGNwVHJhbnNwb3J0U3RhdHNJZDsKQEAgLTYy
NSw2ICs4MjYsMTEgQEAgZnVuY3Rpb24gdmFsaWRhdGVEYXRhQ2hhbm5lbFN0YXRzKHN0YXRzUmVw
b3J0LCBzdGF0cykgewogICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgIHNlbGVjdGVkQ2FuZGlk
YXRlUGFpcklkOwogICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgIGxvY2FsQ2VydGlmaWNhdGVJ
ZDsKICAgICAgIERPTVN0cmluZyAgICAgICAgICAgICByZW1vdGVDZXJ0aWZpY2F0ZUlkOworICAg
ICAgRE9NU3RyaW5nICAgICAgICAgICAgIHRsc1ZlcnNpb247CisgICAgICBET01TdHJpbmcgICAg
ICAgICAgICAgZHRsc0NpcGhlcjsKKyAgICAgIERPTVN0cmluZyAgICAgICAgICAgICBzcnRwQ2lw
aGVyOworICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgIHRsc0dyb3VwOworICAgICAgdW5zaWdu
ZWQgbG9uZyAgICAgICAgIHNlbGVjdGVkQ2FuZGlkYXRlUGFpckNoYW5nZXM7CiAgICAgfTsKIAog
ICBbd2VicnRjLXBjXQpAQCAtNjM5LDEzICs4NDUsMTQgQEAgZnVuY3Rpb24gdmFsaWRhdGVEYXRh
Q2hhbm5lbFN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogCiAgIDUuNi4gIFJUQ0ljZVJvbGUg
RW51bQogICAgIGVudW0gUlRDSWNlUm9sZSB7CisgICAgICAidW5rbm93biIsCiAgICAgICAiY29u
dHJvbGxpbmciLAogICAgICAgImNvbnRyb2xsZWQiCiAgICAgfTsKIAogICA4LjYuICBNYW5kYXRv
cnkgVG8gSW1wbGVtZW50IFN0YXRzCiAgICAgLSBSVENUcmFuc3BvcnRTdGF0cywgd2l0aCBhdHRy
aWJ1dGVzIGJ5dGVzU2VudCwgYnl0ZXNSZWNlaXZlZCwKLSAgICAgIHJ0Y3BUcmFuc3BvcnRTdGF0
c0lkLCBzZWxlY3RlZENhbmRpZGF0ZVBhaXJJZCwgbG9jYWxDZXJ0aWZpY2F0ZUlkLAorICAgICAg
c2VsZWN0ZWRDYW5kaWRhdGVQYWlySWQsIGxvY2FsQ2VydGlmaWNhdGVJZCwKICAgICAgIHJlbW90
ZUNlcnRpZmljYXRlSWQKICAqLwogZnVuY3Rpb24gdmFsaWRhdGVUcmFuc3BvcnRTdGF0cyhzdGF0
c1JlcG9ydCwgc3RhdHMpIHsKQEAgLTY2MCw3ICs4NjcsNyBAQCBmdW5jdGlvbiB2YWxpZGF0ZVRy
YW5zcG9ydFN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAndHJhbnNwb3J0Jyk7CiAKICAgYXNzZXJ0X29wdGlvbmFsX2VudW1fZmllbGQoc3RhdHMs
ICdpY2VSb2xlJywKLSAgICBbJ2NvbnRyb2xsaW5nJywgJ2NvbnRyb2xsZWQnXSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsndW5rbm93bicsICdjb250cm9sbGluZycsICdjb250cm9s
bGVkJ10pOwogCiAgIGFzc2VydF9vcHRpb25hbF9lbnVtX2ZpZWxkKHN0YXRzLCAnZHRsc1N0YXRl
JywKICAgICBbJ25ldycsICdjb25uZWN0aW5nJywgJ2Nvbm5lY3RlZCcsICdjbG9zZWQnLCAnZmFp
bGVkJ10pOwpAQCAtNjY4LDMzICs4NzUsMjUgQEAgZnVuY3Rpb24gdmFsaWRhdGVUcmFuc3BvcnRT
dGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgdmFsaWRhdGVJZEZpZWxkKHN0YXRzUmVwb3J0
LCBzdGF0cywgJ3NlbGVjdGVkQ2FuZGlkYXRlUGFpcklkJywgJ2NhbmRpZGF0ZS1wYWlyJyk7CiAg
IHZhbGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICdsb2NhbENlcnRpZmljYXRlSWQn
LCAnY2VydGlmaWNhdGUnKTsKICAgdmFsaWRhdGVJZEZpZWxkKHN0YXRzUmVwb3J0LCBzdGF0cywg
J3JlbW90ZUNlcnRpZmljYXRlSWQnLCAnY2VydGlmaWNhdGUnKTsKKyAgYXNzZXJ0X29wdGlvbmFs
X3N0cmluZ19maWVsZChzdGF0cywgJ3Rsc1ZlcnNpb24nKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3N0
cmluZ19maWVsZChzdGF0cywgJ2R0bHNDaXBoZXInKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3N0cmlu
Z19maWVsZChzdGF0cywgJ3NydHBDaXBoZXInKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3N0cmluZ19m
aWVsZChzdGF0cywgJ3Rsc0dyb3VwJyk7CisgIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRf
ZmllbGQoc3RhdHMsICdzZWxlY3RlZENhbmRpZGF0ZVBhaXJDaGFuZ2VzJyk7CiB9CiAKIC8qCiAg
IFt3ZWJydGMtc3RhdHNdCiAgIDcuMTUuIFJUQ0ljZUNhbmRpZGF0ZVN0YXRzIGRpY3Rpb25hcnkK
ICAgICBkaWN0aW9uYXJ5IFJUQ0ljZUNhbmRpZGF0ZVN0YXRzIDogUlRDU3RhdHMgewotICAgICAg
RE9NU3RyaW5nICAgICAgICAgICB0cmFuc3BvcnRJZDsKLSAgICAgIGJvb2xlYW4gICAgICAgICAg
ICAgaXNSZW1vdGU7Ci0gICAgICBSVENOZXR3b3JrVHlwZSAgICAgIG5ldHdvcmtUeXBlOwotICAg
ICAgRE9NU3RyaW5nICAgICAgICAgICBpcDsKKyAgICAgIHJlcXVpcmVkIERPTVN0cmluZyAgdHJh
bnNwb3J0SWQ7CisgICAgICBET01TdHJpbmc/ICAgICAgICAgIGFkZHJlc3M7CiAgICAgICBsb25n
ICAgICAgICAgICAgICAgIHBvcnQ7CiAgICAgICBET01TdHJpbmcgICAgICAgICAgIHByb3RvY29s
OwogICAgICAgUlRDSWNlQ2FuZGlkYXRlVHlwZSBjYW5kaWRhdGVUeXBlOwogICAgICAgbG9uZyAg
ICAgICAgICAgICAgICBwcmlvcml0eTsKICAgICAgIERPTVN0cmluZyAgICAgICAgICAgdXJsOwog
ICAgICAgRE9NU3RyaW5nICAgICAgICAgICByZWxheVByb3RvY29sOwotICAgICAgYm9vbGVhbiAg
ICAgICAgICAgICBkZWxldGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIGVudW0gUlRDTmV0d29y
a1R5cGUgewotICAgICAgImJsdWV0b290aCIsCi0gICAgICAiY2VsbHVsYXIiLAotICAgICAgImV0
aGVybmV0IiwKLSAgICAgICJ3aWZpIiwKLSAgICAgICJ3aW1heCIsCi0gICAgICAidnBuIiwKLSAg
ICAgICJ1bmtub3duIgogICAgIH07CiAKICAgW3dlYnJ0Yy1wY10KQEAgLTcwNywyOSArOTA2LDMz
IEBAIGZ1bmN0aW9uIHZhbGlkYXRlVHJhbnNwb3J0U3RhdHMoc3RhdHNSZXBvcnQsIHN0YXRzKSB7
CiAgICAgfTsKIAogICA4LjYuICBNYW5kYXRvcnkgVG8gSW1wbGVtZW50IFN0YXRzCi0gICAgLSBS
VENJY2VDYW5kaWRhdGVTdGF0cywgd2l0aCBhdHRyaWJ1dGVzIGlwLCBwb3J0LCBwcm90b2NvbCwg
Y2FuZGlkYXRlVHlwZSwKLSAgICAgIHByaW9yaXR5LCB1cmwKKyAgICAtIFJUQ0ljZUNhbmRpZGF0
ZVN0YXRzLCB3aXRoIGF0dHJpYnV0ZXMgYWRkcmVzcywgcG9ydCwgcHJvdG9jb2wsIGNhbmRpZGF0
ZVR5cGUsIHVybAogICovCiBmdW5jdGlvbiB2YWxpZGF0ZUljZUNhbmRpZGF0ZVN0YXRzKHN0YXRz
UmVwb3J0LCBzdGF0cykgewogICB2YWxpZGF0ZVJ0Y1N0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cyk7
CiAKLSAgdmFsaWRhdGVPcHRpb25hbElkRmllbGQoc3RhdHNSZXBvcnQsIHN0YXRzLCAndHJhbnNw
b3J0SWQnLCAndHJhbnNwb3J0Jyk7Ci0gIGFzc2VydF9vcHRpb25hbF9ib29sZWFuX2ZpZWxkKHN0
YXRzLCAnaXNSZW1vdGUnKTsKLQotICBhc3NlcnRfb3B0aW9uYWxfZW51bV9maWVsZChzdGF0cywg
J25ldHdvcmtUeXBlJywKLSAgICBbJ2JsdWV0b290aCcsICdjZWxsdWxhcicsICdldGhlcm5ldCcs
ICd3aWZpJywgJ3dpbWF4JywgJ3ZwbicsICd1bmtub3duJ10pCi0KLSAgYXNzZXJ0X3N0cmluZ19m
aWVsZChzdGF0cywgJ2lwJyk7Ci0gIGFzc2VydF9pbnRfZmllbGQoc3RhdHMsICdwb3J0Jyk7Cisg
IHZhbGlkYXRlSWRGaWVsZChzdGF0c1JlcG9ydCwgc3RhdHMsICd0cmFuc3BvcnRJZCcsICd0cmFu
c3BvcnQnKTsKKyAgLy8gVGhlIGFkZHJlc3MgaXMgbWFuZGF0b3J5IHRvIGltcGxlbWVudCwgYnV0
IGlzIGFsbG93ZWQgdG8gYmUgbnVsbAorICAvLyB3aGVuIGhpZGRlbiBmb3IgcHJpdmFjeSByZWFz
b25zLgorICBpZiAoc3RhdHMuYWRkcmVzcyAhPSBudWxsKSB7CisgICAgLy8gRGVwYXJ0dXJlIGZy
b20gc3RyaWN0IHNwZWMgcmVhZGluZzoKKyAgICAvLyBUaGlzIGZpZWxkIGlzIHBvcHVsYXRlZCBp
biBhIHJhY3kgbWFubmVyIGluIENocm9tZS4KKyAgICAvLyBXZSBhbGxvdyBpdCB0byBiZSBwcmVz
ZW50IG9yIG5vdCBwcmVzZW50IGZvciB0aGUgdGltZSBiZWluZy4KKyAgICAvLyBUT0RPKGh0dHBz
Oi8vYnVncy5jaHJvbWl1bS5vcmcvMTA5MjcyMSk6IEJlY29tZSBjb25zaXN0ZW50LgorICAgIGFz
c2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQoc3RhdHMsICdhZGRyZXNzJyk7CisgIH0KKyAgYXNz
ZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BvcnQnKTsKICAgYXNzZXJ0X3N0cmluZ19m
aWVsZChzdGF0cywgJ3Byb3RvY29sJyk7CiAKICAgYXNzZXJ0X2VudW1fZmllbGQoc3RhdHMsICdj
YW5kaWRhdGVUeXBlJywKICAgICBbJ2hvc3QnLCAnc3JmbHgnLCAncHJmbHgnLCAncmVsYXknXSk7
CiAKLSAgYXNzZXJ0X2ludF9maWVsZChzdGF0cywgJ3ByaW9yaXR5Jyk7CisgIGFzc2VydF9vcHRp
b25hbF9pbnRfZmllbGQoc3RhdHMsICdwcmlvcml0eScpOworICAvLyBUaGUgdXJsIGZpZWxkIGlz
IG1hbmRhdG9yeSBmb3IgbG9jYWwgY2FuZGlkYXRlcyBnYXRoZXJlZCBmcm9tCisgIC8vIGEgU1RV
TiBvciBUVVJOIHNlcnZlciwgYW5kIE1VU1QgTk9UIGJlIHByZXNlbnQgb3RoZXJ3aXNlLgorICAv
LyBUT0RPKGh0YSk6IEltcHJvdmUgY2hlY2tpbmcuCiAgIGFzc2VydF9vcHRpb25hbF9zdHJpbmdf
ZmllbGQoc3RhdHMsICd1cmwnKTsKICAgYXNzZXJ0X29wdGlvbmFsX3N0cmluZ19maWVsZChzdGF0
cywgJ3JlbGF5UHJvdG9jb2wnKTsKLSAgYXNzZXJ0X29wdGlvbmFsX2Jvb2xlYW5fZmllbGQoc3Rh
dHMsICdkZWxldGVkJyk7CiB9CiAKIC8qCkBAIC03NDAsNyArOTQzLDYgQEAgZnVuY3Rpb24gdmFs
aWRhdGVJY2VDYW5kaWRhdGVTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpIHsKICAgICAgIERPTVN0
cmluZyAgICAgICAgICAgICAgICAgICAgIGxvY2FsQ2FuZGlkYXRlSWQ7CiAgICAgICBET01TdHJp
bmcgICAgICAgICAgICAgICAgICAgICByZW1vdGVDYW5kaWRhdGVJZDsKICAgICAgIFJUQ1N0YXRz
SWNlQ2FuZGlkYXRlUGFpclN0YXRlIHN0YXRlOwotICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAg
ICAgICAgICAgcHJpb3JpdHk7CiAgICAgICBib29sZWFuICAgICAgICAgICAgICAgICAgICAgICBu
b21pbmF0ZWQ7CiAgICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICAgICAgICBwYWNrZXRzU2Vu
dDsKICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICAgICAgICAgIHBhY2tldHNSZWNlaXZlZDsK
QEAgLTc2NCw3ICs5NjYsOCBAQCBmdW5jdGlvbiB2YWxpZGF0ZUljZUNhbmRpZGF0ZVN0YXRzKHN0
YXRzUmVwb3J0LCBzdGF0cykgewogICAgICAgdW5zaWduZWQgbG9uZyBsb25nICAgICAgICAgICAg
cmV0cmFuc21pc3Npb25zU2VudDsKICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAgICAgICAgICAg
IGNvbnNlbnRSZXF1ZXN0c1NlbnQ7CiAgICAgICBET01IaWdoUmVzVGltZVN0YW1wICAgICAgICAg
ICBjb25zZW50RXhwaXJlZFRpbWVzdGFtcDsKLSAgICB9OworICAgICAgdW5zaWduZWQgbG9uZyAg
ICAgICAgICAgICAgICAgcGFja2V0c0Rpc2NhcmRlZE9uU2VuZDsKKyAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyAgICAgICAgICAgIGJ5dGVzRGlzY2FyZGVkT25TZW5kOyAgICB9OwogCiAgICAgZW51
bSBSVENTdGF0c0ljZUNhbmRpZGF0ZVBhaXJTdGF0ZSB7CiAgICAgICAiZnJvemVuIiwKQEAgLTc3
Nyw3ICs5ODAsOCBAQCBmdW5jdGlvbiB2YWxpZGF0ZUljZUNhbmRpZGF0ZVN0YXRzKHN0YXRzUmVw
b3J0LCBzdGF0cykgewogICBbd2VicnRjLXBjXQogICA4LjYuICBNYW5kYXRvcnkgVG8gSW1wbGVt
ZW50IFN0YXRzCiAgICAgLSBSVENJY2VDYW5kaWRhdGVQYWlyU3RhdHMsIHdpdGggYXR0cmlidXRl
cyB0cmFuc3BvcnRJZCwgbG9jYWxDYW5kaWRhdGVJZCwKLSAgICAgIHJlbW90ZUNhbmRpZGF0ZUlk
LCBzdGF0ZSwgcHJpb3JpdHksIG5vbWluYXRlZCwgYnl0ZXNTZW50LCBieXRlc1JlY2VpdmVkLCB0
b3RhbFJvdW5kVHJpcFRpbWUsIGN1cnJlbnRSb3VuZFRyaXBUaW1lCisgICAgICByZW1vdGVDYW5k
aWRhdGVJZCwgc3RhdGUsIG5vbWluYXRlZCwgYnl0ZXNTZW50LCBieXRlc1JlY2VpdmVkLCB0b3Rh
bFJvdW5kVHJpcFRpbWUsIGN1cnJlbnRSb3VuZFRyaXBUaW1lCisgICAvLyBub3QgaW5jbHVkaW5n
IHByaW9yaXR5IHBlciBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1wYy9pc3N1ZXMvMjQ1
NwogICovCiBmdW5jdGlvbiB2YWxpZGF0ZUljZUNhbmRpZGF0ZVBhaXJTdGF0cyhzdGF0c1JlcG9y
dCwgc3RhdHMpIHsKICAgdmFsaWRhdGVSdGNTdGF0cyhzdGF0c1JlcG9ydCwgc3RhdHMpOwpAQCAt
Nzg5LDcgKzk5Myw2IEBAIGZ1bmN0aW9uIHZhbGlkYXRlSWNlQ2FuZGlkYXRlUGFpclN0YXRzKHN0
YXRzUmVwb3J0LCBzdGF0cykgewogICBhc3NlcnRfZW51bV9maWVsZChzdGF0cywgJ3N0YXRlJywK
ICAgICBbJ2Zyb3plbicsICd3YWl0aW5nJywgJ2luLXByb2dyZXNzJywgJ2ZhaWxlZCcsICdzdWNj
ZWVkZWQnXSk7CiAKLSAgYXNzZXJ0X3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3ByaW9yaXR5
Jyk7CiAgIGFzc2VydF9ib29sZWFuX2ZpZWxkKHN0YXRzLCAnbm9taW5hdGVkJyk7CiAgIGFzc2Vy
dF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICdwYWNrZXRzU2VudCcpOwogICBh
c3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAncGFja2V0c1JlY2VpdmVk
Jyk7CkBAIC04MTcsNiArMTAyMCw4IEBAIGZ1bmN0aW9uIHZhbGlkYXRlSWNlQ2FuZGlkYXRlUGFp
clN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgewogICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRf
aW50X2ZpZWxkKHN0YXRzLCAncmV0cmFuc21pc3Npb25zU2VudCcpOwogICBhc3NlcnRfb3B0aW9u
YWxfdW5zaWduZWRfaW50X2ZpZWxkKHN0YXRzLCAnY29uc2VudFJlcXVlc3RzU2VudCcpOwogICBh
c3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKHN0YXRzLCAnY29uc2VudEV4cGlyZWRUaW1lc3Rh
bXAnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3BhY2tl
dHNEaXNjYXJkZWRPblNlbmQnKTsKKyAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVs
ZChzdGF0cywgJ2J5dGVzRGlzY2FyZGVkT25TZW5kJyk7CiB9CiAKIC8qCkBAIC04NDIsMyArMTA0
NywyNiBAQCBmdW5jdGlvbiB2YWxpZGF0ZUNlcnRpZmljYXRlU3RhdHMoc3RhdHNSZXBvcnQsIHN0
YXRzKSB7CiAgIGFzc2VydF9zdHJpbmdfZmllbGQoc3RhdHMsICdiYXNlNjRDZXJ0aWZpY2F0ZScp
OwogICBhc3NlcnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxkKHN0YXRzLCAnaXNzdWVyQ2VydGlmaWNh
dGVJZCcpOwogfQorCisvKgorICBbd2VicnRjLXN0YXRzXQorICA3LjMwLiBSVENJY2VTZXJ2ZXJT
dGF0cyBkaWN0aW9uYXJ5CisgIGRpY3Rpb25hcnkgUlRDSWNlU2VydmVyU3RhdHMgOiBSVENTdGF0
cyB7CisgICAgICBET01TdHJpbmcgdXJsOworICAgICAgbG9uZyBwb3J0OworICAgICAgRE9NU3Ry
aW5nIHByb3RvY29sOworICAgICAgdW5zaWduZWQgbG9uZyB0b3RhbFJlcXVlc3RzU2VudDsKKyAg
ICAgIHVuc2lnbmVkIGxvbmcgdG90YWxSZXNwb25zZXNSZWNlaXZlZDsKKyAgICAgIGRvdWJsZSB0
b3RhbFJvdW5kVHJpcFRpbWU7CisgICAgfTsKKyovCitmdW5jdGlvbiB2YWxpZGF0ZUljZVNlcnZl
clN0YXRzKHN0YXRzUmVwb3J0LCBzdGF0cykgeworICB2YWxpZGF0ZVJ0Y1N0YXRzKHN0YXRzUmVw
b3J0LCBzdGF0cyk7CisKKyAgYXNzZXJ0X29wdGlvbmFsX3N0cmluZ19maWVsZChzdGF0cywgJ3Vy
bCcpOworICBhc3NlcnRfb3B0aW9uYWxfaW50X2ZpZWxkKHN0YXRzLCAncG9ydCcpOworICBhc3Nl
cnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxkKHN0YXRzLCAncHJvdG9jb2wnKTsKKyAgYXNzZXJ0X29w
dGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChzdGF0cywgJ3RvdGFsUmVxdWVzdHNTZW50Jyk7Cisg
IGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoc3RhdHMsICd0b3RhbFJlc3BvbnNl
c1JlY2VpdmVkJyk7CisgIGFzc2VydF9vcHRpb25hbF9udW1iZXJfZmllbGQoc3RhdHMsICd0b3Rh
bFJvdW5kVHJpcFRpbWUnKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNrRXZlbnQtY29uc3RydWN0b3IuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1RyYWNrRXZlbnQtY29uc3RydWN0b3IuaHRtbAppbmRleCBhMGMwMzFlYWE1YTI1NzI5NjM5ZDI1
OTVmMWE1NzQ4YWU1OTk1NWNiLi5jOTEwNWU2OTNhZjY2NjFjNzRiYTg2ODg1ODczMmEyOWQyYjg0
MDk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENUcmFja0V2ZW50LWNvbnN0cnVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDVHJhY2tFdmVudC1j
b25zdHJ1Y3Rvci5odG1sCkBAIC0xMTcsNyArMTE3LDcgQEAKICAgICBjb25zdCB7IHJlY2VpdmVy
IH0gPSB0cmFuc2NlaXZlcjsKICAgICBjb25zdCB7IHRyYWNrIH0gPSByZWNlaXZlcjsKIAotICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PgorICAgIGFzc2VydF90aHJvd3Nf
anMoVHlwZUVycm9yLCAoKSA9PgogICAgICAgbmV3IFJUQ1RyYWNrRXZlbnQoJ3RyYWNrJywgewog
ICAgICAgICByZWNlaXZlciwgdHJhY2sKICAgICAgIH0pKTsKQEAgLTEyOSw3ICsxMjksNyBAQAog
ICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAgICAg
Y29uc3QgeyByZWNlaXZlciB9ID0gdHJhbnNjZWl2ZXI7CiAKLSAgICBhc3NlcnRfdGhyb3dzKG5l
dyBUeXBlRXJyb3IoKSwgKCkgPT4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkg
PT4KICAgICAgIG5ldyBSVENUcmFja0V2ZW50KCd0cmFjaycsIHsKICAgICAgICAgcmVjZWl2ZXIs
IHRyYW5zY2VpdmVyCiAgICAgICB9KSk7CkBAIC0xNDIsNyArMTQyLDcgQEAKICAgICBjb25zdCB7
IHJlY2VpdmVyIH0gPSB0cmFuc2NlaXZlcjsKICAgICBjb25zdCB7IHRyYWNrIH0gPSByZWNlaXZl
cjsKIAotICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PgorICAgIGFzc2Vy
dF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PgogICAgICAgbmV3IFJUQ1RyYWNrRXZlbnQoJ3Ry
YWNrJywgewogICAgICAgICB0cmFjaywgdHJhbnNjZWl2ZXIKICAgICAgIH0pKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1RyYWNrRXZlbnQtZmlyZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDVHJhY2tFdmVudC1maXJlLmh0bWwKaW5kZXggMmUyMjZjMzUx
NzRlYzIwMzA1NTBjYmQxNzg4NzM3NTczY2E0OWVlYi4uOTQzNWQ3YjZlNTRkY2I0OTZjOTg1MzNl
MGFhZTUxMTdhODA2Nzg2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDVHJhY2tFdmVudC1maXJlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDVHJhY2tF
dmVudC1maXJlLmh0bWwKQEAgLTM2LDYgKzM2LDI4IEBAIGE9c3NyYzozIGNuYW1lOjQKIGE9c3Ny
YzozIG1zaWQ6MSAyCiBgOwogCitjb25zdCBzZHAyID0gc2RwQmFzZSArIGAKK2E9c3NyYzozIGNu
YW1lOjQKK2E9c3NyYzozIG1zaWQ6MSAyCitgOworCitjb25zdCBzZHAzID0gc2RwQmFzZSArIGAK
K2E9bXNpZDoxIDIKK2E9c3NyYzozIGNuYW1lOjQKK2E9c3NyYzozIG1zaWQ6MyAyCitgOworCitj
b25zdCBzZHA0ID0gc2RwMS5yZXBsYWNlKCdtc2lkLXNlbWFudGljJywgJ3Vua25vd25hdHRyJyk7
CisKK2NvbnN0IHNkcDUgPSBzZHBCYXNlICsgYAorYT1tc2lkOi0KK2A7CisKK2NvbnN0IHNkcDYg
PSBzZHBCYXNlICsgYAorYT1tc2lkOjEgMgorYT1tc2lkOjEgMgorYDsKKwogYXN5bmMgZnVuY3Rp
b24gYXBwbHlSZW1vdGVEZXNjcmlwdGlvbkFuZFJldHVyblJlbW90ZVRyYWNrQW5kU3RyZWFtcyhw
Yywgc2RwKQogewogICAgIGNvbnN0IHRlc3RUcmFja1Byb21pc2UgPSBuZXcgUHJvbWlzZShyZXNv
bHZlICA9PiB7CkBAIC00NSw2ICs2Nyw3MiBAQCBhc3luYyBmdW5jdGlvbiBhcHBseVJlbW90ZURl
c2NyaXB0aW9uQW5kUmV0dXJuUmVtb3RlVHJhY2tBbmRTdHJlYW1zKHBjLCBzZHApCiAgICAgcmV0
dXJuIHRlc3RUcmFja1Byb21pc2U7CiB9CiAKK3Byb21pc2VfdGVzdChhc3luYyB0ZXN0ID0+IHsK
KyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHRlc3QuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBjb25zdCBbdHJhY2ssIHN0cmVhbXNdID0g
YXdhaXQgYXBwbHlSZW1vdGVEZXNjcmlwdGlvbkFuZFJldHVyblJlbW90ZVRyYWNrQW5kU3RyZWFt
cyhwYywgc2RwMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW1zLmxlbmd0aCwgMSwgInRyYWNr
IGV2ZW50IGhhcyBhIHN0cmVhbSIpOworfSwgIldoZW4gYT1tc2lkIGlzIGFic2VudCwgdGhlIHRy
YWNrIHNob3VsZCBzdGlsbCBiZSBhc3NvY2lhdGVkIHdpdGggYSBzdHJlYW0iKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHRlc3QgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGNv
bnN0IFt0cmFjaywgc3RyZWFtc10gPSBhd2FpdCBhcHBseVJlbW90ZURlc2NyaXB0aW9uQW5kUmV0
dXJuUmVtb3RlVHJhY2tBbmRTdHJlYW1zKHBjLCBzZHAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0
cmVhbXMubGVuZ3RoLCAxLCAidHJhY2sgZXZlbnQgaGFzIGEgc3RyZWFtIik7CisgICAgYXNzZXJ0
X2VxdWFscyhzdHJlYW1zWzBdLmlkLCAiMSIsICJtc2lkIHNob3VsZCBtYXRjaCIpOworfSwgIlNv
dXJjZS1sZXZlbCBtc2lkIHNob3VsZCBiZSBpZ25vcmVkIGlmIG1lZGlhLWxldmVsIG1zaWQgaXMg
cHJlc2VudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdGVzdCA9PiB7CisgICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOworCisgICAgY29uc3QgW3RyYWNrLCBzdHJlYW1zXSA9IGF3YWl0IGFwcGx5UmVt
b3RlRGVzY3JpcHRpb25BbmRSZXR1cm5SZW1vdGVUcmFja0FuZFN0cmVhbXMocGMsIHNkcDIpOwor
ICAgIGFzc2VydF9lcXVhbHMoc3RyZWFtcy5sZW5ndGgsIDEsICJ0cmFjayBldmVudCBoYXMgYSBz
dHJlYW0iKTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbXNbMF0uaWQsICIxIiwgIm1zaWQgc2hv
dWxkIG1hdGNoIik7Cit9LCAiU291cmNlLWxldmVsIG1zaWQgc2hvdWxkIGJlIHBhcnNlZCBpZiBt
ZWRpYS1sZXZlbCBtc2lkIGlzIGFic2VudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdGVzdCA9
PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0ZXN0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgbGV0IHRyYWNrOworICAgIGxldCBz
dHJlYW1zOworICAgIHRyeSB7CisgICAgICBbdHJhY2ssIHN0cmVhbXNdID0gYXdhaXQgYXBwbHlS
ZW1vdGVEZXNjcmlwdGlvbkFuZFJldHVyblJlbW90ZVRyYWNrQW5kU3RyZWFtcyhwYywgc2RwMyk7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhc3NlcnRfZXF1
YWxzKHN0cmVhbXMubGVuZ3RoLCAxLCAidHJhY2sgZXZlbnQgaGFzIGEgc3RyZWFtIik7CisgICAg
YXNzZXJ0X2VxdWFscyhzdHJlYW1zWzBdLmlkLCAiMSIsICJtc2lkIHNob3VsZCBtYXRjaCIpOwor
fSwgIlNvdXJjZS1sZXZlbCBtc2lkIHNob3VsZCBiZSBpZ25vcmVkLCBvciBhbiBlcnJvciBzaG91
bGQgYmUgdGhyb3duLCBpZiBhIGRpZmZlcmVudCBtZWRpYS1sZXZlbCBtc2lkIGlzIHByZXNlbnQi
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHRlc3QgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKworICAgIGNvbnN0IFt0cmFjaywgc3RyZWFtc10gPSBhd2FpdCBhcHBseVJlbW90ZURlc2Ny
aXB0aW9uQW5kUmV0dXJuUmVtb3RlVHJhY2tBbmRTdHJlYW1zKHBjLCBzZHA0KTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHN0cmVhbXMubGVuZ3RoLCAxLCAidHJhY2sgZXZlbnQgaGFzIGEgc3RyZWFtIik7
CisgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW1zWzBdLmlkLCAiMSIsICJtc2lkIHNob3VsZCBtYXRj
aCIpOworfSwgInN0cmVhbSBpZHMgc2hvdWxkIGJlIGZvdW5kIGV2ZW4gaWYgbXNpZC1zZW1hbnRp
YyBpcyBhYnNlbnQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHRlc3QgPT4geworICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKworICAgIGNvbnN0IFt0cmFjaywgc3RyZWFtc10gPSBhd2FpdCBhcHBs
eVJlbW90ZURlc2NyaXB0aW9uQW5kUmV0dXJuUmVtb3RlVHJhY2tBbmRTdHJlYW1zKHBjLCBzZHA1
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbXMubGVuZ3RoLCAwLCAidHJhY2sgZXZlbnQgaGFz
IG5vIHN0cmVhbSIpOworfSwgImE9bXNpZDotIHNob3VsZCByZXN1bHQgaW4gYSB0cmFjayBldmVu
dCB3aXRoIG5vIHN0cmVhbXMiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHRlc3QgPT4geworICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdGVzdC5hZGRfY2xlYW51
cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGNvbnN0IFt0cmFjaywgc3RyZWFtc10gPSBhd2Fp
dCBhcHBseVJlbW90ZURlc2NyaXB0aW9uQW5kUmV0dXJuUmVtb3RlVHJhY2tBbmRTdHJlYW1zKHBj
LCBzZHA2KTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbXMubGVuZ3RoLCAxLCAidHJhY2sgZXZl
bnQgaGFzIG9uZSBzdHJlYW0iKTsKK30sICJEdXBsaWNhdGUgYT1tc2lkIHNob3VsZCByZXN1bHQg
aW4gYSB0cmFjayBldmVudCB3aXRoIG9uZSBzdHJlYW0iKTsKKwogcHJvbWlzZV90ZXN0KGFzeW5j
IHRlc3QgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAg
dGVzdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVt
cHR5c3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sCmluZGV4IDZhZjQzNmExZDFi
ZDRmYjBjM2JiODA2NWY0ODQ3NTU4MmM4N2UzM2EuLjQ1NmJhYzczNjdlNmY5MDM0ZjgzYmJlZTY5
OTgzMTNiNzg5YjhjMGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvZGF0YWNo
YW5uZWwtZW1wdHlzdHJpbmcuaHRtbApAQCAtNzYsOCArNzYsMTAgQEAgYW5kIGVuc3VyZXMgdGhh
dCBhbiBlbXB0eSBzdHJpbmcgc2VudCBieSBvbmUgaXMgcmVjZWl2ZWQgYnkgdGhlIHNlY29uZC4K
IAogICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgZ0ZpcnN0Q29ubmVjdGlvbiA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbihudWxsKTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdGaXJz
dENvbm5lY3Rpb24uY2xvc2UoKSk7CiAKICAgICBnU2Vjb25kQ29ubmVjdGlvbiA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbihudWxsKTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdTZWNvbmRD
b25uZWN0aW9uLmNsb3NlKCkpOwogCiAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5vbmljZWNhbmRpZGF0
ZSA9IGV4Y2hhbmdlSWNlKGdTZWNvbmRDb25uZWN0aW9uKTsKICAgICBnU2Vjb25kQ29ubmVjdGlv
bi5vbmljZWNhbmRpZGF0ZSA9IGV4Y2hhbmdlSWNlKGdGaXJzdENvbm5lY3Rpb24pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
Z2V0c3RhdHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL2dldHN0YXRzLmh0bWwKaW5kZXggOTc5ZTk5YzBiMjdjYzM5YWYzZjNhMDUwZGYx
NmE3MGI4ZjEyMjFlOC4uMDk1MGEzNzRjM2NkOGE0NGNiYjhiZmZjMjk5MWZjNmRjOTU0MTdjOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvZ2V0c3RhdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sCkBAIC04MSwxMCArODEsMTIgQEAgVGhp
cyB0ZXN0IHVzZXMgZGF0YSBvbmx5LCBhbmQgdGh1cyBkb2VzIG5vdCByZXF1aXJlIGZha2UgbWVk
aWEgZGV2aWNlcy4KICAgLy8gVGhpcyBmdW5jdGlvbiBzdGFydHMgdGhlIHRlc3QuCiAgIHRlc3Qu
c3RlcChmdW5jdGlvbigpIHsKICAgICBnRmlyc3RDb25uZWN0aW9uID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKG51bGwpOworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gZ0ZpcnN0Q29ubmVjdGlv
bi5jbG9zZSgpKTsKICAgICBnRmlyc3RDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0gb25JY2VD
YW5kaWRhdGVUb0ZpcnN0OwogICAgIGdGaXJzdENvbm5lY3Rpb24ub25pY2Vjb25uZWN0aW9uc3Rh
dGVjaGFuZ2UgPSBvbkljZUNvbm5lY3Rpb25TdGF0ZUNoYW5nZTsKIAogICAgIGdTZWNvbmRDb25u
ZWN0aW9uID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOworICAgIHRlc3QuYWRkX2NsZWFu
dXAoKCkgPT4gZ1NlY29uZENvbm5lY3Rpb24uY2xvc2UoKSk7CiAgICAgZ1NlY29uZENvbm5lY3Rp
b24ub25pY2VjYW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0ZVRvU2Vjb25kOwogCiAgICAgLy8gVGhl
IGNyZWF0ZURhdGFDaGFubmVsIGlzIG5lY2Vzc2FyeSBhbmQgc3VmZmljaWVudCB0byBtYWtlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0CmluZGV4IGM4
Yzg5ODQ1Yjg5OTUxNGQ4ZTU5NjNlYzU1ZjEwMjMwNjBjM2MyNDYuLjUzMGIxY2RkOTU5YjJlN2M3
ZDgzZWE2NDgxZDBiNmNlYWQ3ZDE2ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2hp
c3RvcmljYWwtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNiBAQAogCiBQQVNTIFJUQ0RhdGFDaGFu
bmVsIG1lbWJlciByZWxpYWJsZSBzaG91bGQgbm90IGV4aXN0IAorUEFTUyBSVENEYXRhQ2hhbm5l
bCBtZW1iZXIgbWF4UmV0cmFuc21pdFRpbWUgc2hvdWxkIG5vdCBleGlzdCAKIFBBU1MgUlRDUGVl
ckNvbm5lY3Rpb24gbWVtYmVyIGFkZFN0cmVhbSBzaG91bGQgbm90IGV4aXN0IAogUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBtZW1iZXIgY3JlYXRlRFRNRlNlbmRlciBzaG91bGQgbm90IGV4aXN0IAog
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBtZW1iZXIgZ2V0TG9jYWxTdHJlYW1zIHNob3VsZCBub3Qg
ZXhpc3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9oaXN0b3JpY2FsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9oaXN0b3JpY2FsLmh0bWwKaW5kZXggZmZhMjhiZTVi
Y2EzMDdlNjY2MmIyZDM3MjBmOTczNjdmOGM0N2NkZS4uYWU3YTI5ZGVjMGMxODRkNWJjNTJlMmRi
MTRiOTE5YmRkNmI3MDBiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaGlzdG9yaWNhbC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2hpc3RvcmljYWwuaHRtbApA
QCAtNCw5ICs0LDE0IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CiA8ZGl2IGlkPSJsb2ciPjwvZGl2PgogPHNjcmlwdD4KLXRlc3QoZnVu
Y3Rpb24oKSB7Ci0gIGFzc2VydF9mYWxzZSgicmVsaWFibGUiIGluIFJUQ0RhdGFDaGFubmVsLnBy
b3RvdHlwZSk7Ci19LCAiUlRDRGF0YUNoYW5uZWwgbWVtYmVyIHJlbGlhYmxlIHNob3VsZCBub3Qg
ZXhpc3QiKTsKK1sKKyAgJ3JlbGlhYmxlJywKKyAgJ21heFJldHJhbnNtaXRUaW1lJywKK10uZm9y
RWFjaCgobWVtYmVyKSA9PiB7CisgIHRlc3QoKCkgPT4geworICAgIGFzc2VydF9mYWxzZShtZW1i
ZXIgaW4gUlRDRGF0YUNoYW5uZWwucHJvdG90eXBlKTsKKyAgfSwgYFJUQ0RhdGFDaGFubmVsIG1l
bWJlciAke21lbWJlcn0gc2hvdWxkIG5vdCBleGlzdGApOworfSk7CiAKIFsKICAgImFkZFN0cmVh
bSIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGxoYXJuZXNzLmh0
dHBzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggN2Q5Y2Y1ZmY0ZDJhZjc1NzE3YjUxOTUwMTE1
NDYwYTc3NDRjMWRhMS4uMTkzMzNmNzVhZDIyM2RiNDNlM2UyNDY3YTljYTA5ODgyN2M4ZmQ4MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkbGhhcm5lc3MuaHR0
cHMud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBpZGxfdGVzdCBz
ZXR1cCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJSVENFcnJvciBpbmhlcml0cyBET01FeGNlcHRpb24sIGJ1dCBET01FeGNlcHRpb24gaXMgdW5k
ZWZpbmVkLiIKK1BBU1MgaWRsX3Rlc3Qgc2V0dXAgCiBQQVNTIGlkbF90ZXN0IHZhbGlkYXRpb24g
CiBQQVNTIFRlc3QgZHJpdmVyIGZvciBhc3luY0luaXRDZXJ0aWZpY2F0ZSAKIEZBSUwgVGVzdCBk
cml2ZXIgZm9yIGFzeW5jSW5pdFRyYW5zcG9ydHMgYXNzZXJ0X3VucmVhY2hlZDogRmFpbGVkIHRv
IHJ1biBhc3luY0luaXRUcmFuc3BvcnRzOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogUlRDU2N0cFRyYW5zcG9ydCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKQEAgLTE2LDQg
KzE2LDQ5MyBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJUQ1J0cFNlbmRlcjogb3JpZ2luYWwg
aW50ZXJmYWNlIGRlZmluZWQKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgUlRDUnRwU2VuZGVyOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNv
bm5lY3Rpb25bNF06IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAogUEFTUyBQYXJ0aWFsIGlu
dGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbls0XTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQ
QVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBSVENQZWVyQ29ubmVj
dGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gY3JlYXRlT2ZmZXIob3B0aW9uYWwgUlRDT2Zm
ZXJPcHRpb25zKSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24g
Y3JlYXRlQW5zd2VyKG9wdGlvbmFsIFJUQ0Fuc3dlck9wdGlvbnMpIAorRkFJTCBSVENQZWVyQ29u
bmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRMb2NhbERlc2NyaXB0aW9uKG9wdGlvbmFs
IFJUQ0xvY2FsU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdCkgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkg
aGFzIHdyb25nIC5sZW5ndGggZXhwZWN0ZWQgMCBidXQgZ290IDEKK1BBU1MgUlRDUGVlckNvbm5l
Y3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbG9jYWxEZXNjcmlwdGlvbiAKK1BBU1MgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY3VycmVudExvY2FsRGVzY3JpcHRpb24g
CitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHBlbmRpbmdMb2Nh
bERlc2NyaXB0aW9uIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlv
biBzZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb25Jbml0KSAKK1BBU1Mg
UlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVtb3RlRGVzY3JpcHRpb24g
CitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGN1cnJlbnRSZW1v
dGVEZXNjcmlwdGlvbiAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uIAorRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBhZGRJY2VDYW5kaWRhdGUob3B0aW9uYWwgUlRDSWNlQ2FuZGlkYXRl
SW5pdCkgYXNzZXJ0X2VxdWFsczogcHJvcGVydHkgaGFzIHdyb25nIC5sZW5ndGggZXhwZWN0ZWQg
MCBidXQgZ290IDEKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
c2lnbmFsaW5nU3RhdGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmli
dXRlIGljZUdhdGhlcmluZ1N0YXRlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBpY2VDb25uZWN0aW9uU3RhdGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIGNvbm5lY3Rpb25TdGF0ZSAKK0ZBSUwgUlRDUGVlckNvbm5lY3Rp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMgYXNzZXJ0X3Ry
dWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJjYW5Ucmlja2xl
SWNlQ2FuZGlkYXRlcyIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDUGVlckNvbm5l
Y3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVzdGFydEljZSgpIGFzc2VydF9vd25fcHJvcGVy
dHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRp
b24gZXhwZWN0ZWQgcHJvcGVydHkgInJlc3RhcnRJY2UiIG1pc3NpbmcKK1BBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0Q29uZmlndXJhdGlvbigpIAorRkFJTCBS
VENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRDb25maWd1cmF0aW9uKG9w
dGlvbmFsIFJUQ0NvbmZpZ3VyYXRpb24pIGFzc2VydF9lcXVhbHM6IHByb3BlcnR5IGhhcyB3cm9u
ZyAubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGNsb3NlKCkgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogYXR0cmlidXRlIG9ubmVnb3RpYXRpb25uZWVkZWQgCitQQVNTIFJUQ1BlZXJDb25uZWN0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uaWNlY2FuZGlkYXRlIAorRkFJTCBSVENQZWVyQ29u
bmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmljZWNhbmRpZGF0ZWVycm9yIGFzc2VydF90
cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAib25pY2VjYW5k
aWRhdGVlcnJvciIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgUlRDUGVlckNvbm5lY3Rp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zaWduYWxpbmdzdGF0ZWNoYW5nZSAKK1BBU1MgUlRD
UGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25pY2Vjb25uZWN0aW9uc3RhdGVj
aGFuZ2UgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uaWNl
Z2F0aGVyaW5nc3RhdGVjaGFuZ2UgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIG9uY29ubmVjdGlvbnN0YXRlY2hhbmdlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlv
biBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjcmVhdGVPZmZlcihSVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrLCBvcHRpb25hbCBSVENPZmZl
ck9wdGlvbnMpIAorRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBz
ZXRMb2NhbERlc2NyaXB0aW9uKG9wdGlvbmFsIFJUQ0xvY2FsU2Vzc2lvbkRlc2NyaXB0aW9uSW5p
dCwgVm9pZEZ1bmN0aW9uLCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2spIGFzc2VydF9l
cXVhbHM6IHByb3BlcnR5IGhhcyB3cm9uZyAubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCitQ
QVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZUFuc3dlcihS
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxi
YWNrKSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0UmVt
b3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdCwgVm9pZEZ1bmN0aW9uLCBS
VENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2spIAorRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlSW5pdCwg
Vm9pZEZ1bmN0aW9uLCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2spIGFzc2VydF9lcXVh
bHM6IHByb3BlcnR5IGhhcyB3cm9uZyAubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCitQQVNT
IFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGdlbmVyYXRlQ2VydGlmaWNh
dGUoQWxnb3JpdGhtSWRlbnRpZmllcikgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFj
ZTogb3BlcmF0aW9uIGdldFNlbmRlcnMoKSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBvcGVyYXRpb24gZ2V0UmVjZWl2ZXJzKCkgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGdldFRyYW5zY2VpdmVycygpIAorUEFTUyBSVENQZWVyQ29ubmVj
dGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrLCBNZWRp
YVN0cmVhbS4uLikgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9u
IHJlbW92ZVRyYWNrKFJUQ1J0cFNlbmRlcikgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogb3BlcmF0aW9uIGFkZFRyYW5zY2VpdmVyKChNZWRpYVN0cmVhbVRyYWNrIG9yIERPTVN0
cmluZyksIG9wdGlvbmFsIFJUQ1J0cFRyYW5zY2VpdmVySW5pdCkgCitQQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9udHJhY2sgCitGQUlMIFJUQ1BlZXJDb25uZWN0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHNjdHAgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUg
b2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJzY3RwIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjcmVhdGVEYXRh
Q2hhbm5lbChVU1ZTdHJpbmcsIG9wdGlvbmFsIFJUQ0RhdGFDaGFubmVsSW5pdCkgCitQQVNTIFJU
Q1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uZGF0YWNoYW5uZWwgCitQQVNT
IFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFN0YXRzKG9wdGlvbmFs
IE1lZGlhU3RyZWFtVHJhY2s/KSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gbXVzdCBiZSBwcmlt
YXJ5IGludGVyZmFjZSBvZiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSAKK1BBU1MgU3RyaW5naWZp
Y2F0aW9uIG9mIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIAorUEFTUyBSVENQZWVyQ29ubmVjdGlv
biBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiY3JlYXRlT2ZmZXIob3B0aW9uYWwgUlRDT2ZmZXJPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBjcmVhdGVP
ZmZlcihvcHRpb25hbCBSVENPZmZlck9wdGlvbnMpIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJjcmVhdGVBbnN3ZXIob3B0aW9uYWwgUlRDQW5zd2VyT3B0aW9ucykiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNh
bGxpbmcgY3JlYXRlQW5zd2VyKG9wdGlvbmFsIFJUQ0Fuc3dlck9wdGlvbnMpIG9uIG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRMb2NhbERlc2NyaXB0aW9uKG9wdGlvbmFs
IFJUQ0xvY2FsU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAor
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0TG9jYWxEZXNjcmlw
dGlvbihvcHRpb25hbCBSVENMb2NhbFNlc3Npb25EZXNjcmlwdGlvbkluaXQpIG9uIG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsb2NhbERlc2NyaXB0aW9uIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImN1cnJlbnRMb2NhbERlc2NyaXB0
aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBlbmRp
bmdMb2NhbERlc2NyaXB0aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkluaXQp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNl
OiBjYWxsaW5nIHNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkluaXQp
IG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdGVEZXNjcmlwdGlv
biIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFj
ZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjdXJyZW50
UmVtb3RlRGVzY3JpcHRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29u
bmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEljZUNhbmRpZGF0ZShvcHRpb25hbCBSVENJY2VD
YW5kaWRhdGVJbml0KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0
aW9uIGludGVyZmFjZTogY2FsbGluZyBhZGRJY2VDYW5kaWRhdGUob3B0aW9uYWwgUlRDSWNlQ2Fu
ZGlkYXRlSW5pdCkgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNpZ25h
bGluZ1N0YXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24g
aW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImljZUdhdGhlcmluZ1N0YXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImljZUNvbm5lY3Rpb25TdGF0ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJjb25uZWN0aW9uU3RhdGUiIHdpdGggdGhlIHByb3BlciB0eXBl
IAorRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMiIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNhblRyaWNrbGVJY2VD
YW5kaWRhdGVzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZXN0YXJ0SWNlKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0
czogcHJvcGVydHkgInJlc3RhcnRJY2UiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BB
U1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImdldENvbmZpZ3VyYXRpb24oKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRDb25maWd1cmF0aW9uKG9wdGlvbmFs
IFJUQ0NvbmZpZ3VyYXRpb24pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIHNldENvbmZpZ3VyYXRpb24ob3B0aW9uYWwgUlRD
Q29uZmlndXJhdGlvbikgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50
ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNs
b3NlKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25u
ZWdvdGlhdGlvbm5lZWRlZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbmljZWNhbmRpZGF0ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJvbmljZWNhbmRpZGF0ZWVycm9yIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJvbmljZWNhbmRpZGF0ZWVycm9yIiBub3QgZm91bmQg
aW4gcHJvdG90eXBlIGNoYWluCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNpZ25hbGluZ3N0
YXRlY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24g
aW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Im9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
UlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgIm9uaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25jb25uZWN0aW9uc3RhdGVjaGFu
Z2UiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3JlYXRl
T2ZmZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9uRXJy
b3JDYWxsYmFjaywgb3B0aW9uYWwgUlRDT2ZmZXJPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBjcmVhdGVPZmZl
cihSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNh
bGxiYWNrLCBvcHRpb25hbCBSVENPZmZlck9wdGlvbnMpIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJU
Q1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzZXRMb2NhbERlc2NyaXB0aW9uKG9wdGlvbmFsIFJUQ0xvY2FsU2Vz
c2lvbkRlc2NyaXB0aW9uSW5pdCwgVm9pZEZ1bmN0aW9uLCBSVENQZWVyQ29ubmVjdGlvbkVycm9y
Q2FsbGJhY2spIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24g
aW50ZXJmYWNlOiBjYWxsaW5nIHNldExvY2FsRGVzY3JpcHRpb24ob3B0aW9uYWwgUlRDTG9jYWxT
ZXNzaW9uRGVzY3JpcHRpb25Jbml0LCBWb2lkRnVuY3Rpb24sIFJUQ1BlZXJDb25uZWN0aW9uRXJy
b3JDYWxsYmFjaykgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0
ZUFuc3dlcihSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25F
cnJvckNhbGxiYWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0
aW9uIGludGVyZmFjZTogY2FsbGluZyBjcmVhdGVBbnN3ZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaykgb24gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
K1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkluaXQsIFZvaWRGdW5jdGlvbiwgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxi
YWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogY2FsbGluZyBzZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb25J
bml0LCBWb2lkRnVuY3Rpb24sIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaykgb24gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEljZUNhbmRpZGF0ZShSVENJY2VD
YW5kaWRhdGVJbml0LCBWb2lkRnVuY3Rpb24sIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFj
aykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2U6IGNhbGxpbmcgYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZUluaXQsIFZvaWRGdW5j
dGlvbiwgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSBvbiBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFT
UyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2VuZXJhdGVDZXJ0aWZpY2F0ZShBbGdvcml0aG1JZGVudGlm
aWVyKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogY2FsbGluZyBnZW5lcmF0ZUNlcnRpZmljYXRlKEFsZ29yaXRobUlkZW50aWZpZXIpIG9u
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRTZW5kZXJzKCkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0UmVjZWl2ZXJzKCki
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0VHJhbnNj
ZWl2ZXJzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
YWRkVHJhY2soTWVkaWFTdHJlYW1UcmFjaywgTWVkaWFTdHJlYW0uLi4pIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGFkZFRy
YWNrKE1lZGlhU3RyZWFtVHJhY2ssIE1lZGlhU3RyZWFtLi4uKSBvbiBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFT
UyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlVHJhY2soUlRDUnRwU2VuZGVyKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBy
ZW1vdmVUcmFjayhSVENSdHBTZW5kZXIpIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJhZGRUcmFuc2NlaXZlcigoTWVkaWFTdHJlYW1UcmFjayBvciBET01TdHJpbmcpLCBv
cHRpb25hbCBSVENSdHBUcmFuc2NlaXZlckluaXQpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BB
U1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGFkZFRyYW5zY2VpdmVyKChN
ZWRpYVN0cmVhbVRyYWNrIG9yIERPTVN0cmluZyksIG9wdGlvbmFsIFJUQ1J0cFRyYW5zY2VpdmVy
SW5pdCkgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9udHJhY2siIHdp
dGggdGhlIHByb3BlciB0eXBlIAorRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2N0cCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic2N0cCIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3JlYXRlRGF0YUNo
YW5uZWwoVVNWU3RyaW5nLCBvcHRpb25hbCBSVENEYXRhQ2hhbm5lbEluaXQpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGNy
ZWF0ZURhdGFDaGFubmVsKFVTVlN0cmluZywgb3B0aW9uYWwgUlRDRGF0YUNoYW5uZWxJbml0KSBv
biBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25kYXRhY2hhbm5lbCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRTdGF0cyhvcHRp
b25hbCBNZWRpYVN0cmVhbVRyYWNrPykiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgZ2V0U3RhdHMob3B0aW9uYWwgTWVkaWFT
dHJlYW1UcmFjaz8pIG9uIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAor
UEFTUyBSVENTZXNzaW9uRGVzY3JpcHRpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNT
IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUgCitQQVNTIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzZHAgCitQQVNTIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0b0pTT04oKSAKK1BBU1MgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbih7IHR5cGU6ICdvZmZlcicgfSkgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uKHsgdHlwZTogJ29mZmVyJyB9KSAKK1BBU1MgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uIGludGVyZmFjZTogbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7IHR5cGU6ICdv
ZmZlcicgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKK1BBU1MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGludGVyZmFjZTogbmV3IFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbih7IHR5cGU6ICdvZmZlcicgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZHAi
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENTZXNzaW9uRGVzY3JpcHRpb24gaW50ZXJm
YWNlOiBuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHsgdHlwZTogJ29mZmVyJyB9KSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uIGludGVyZmFjZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9u
IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oeyB0eXBlOiAnb2ZmZXInIH0pIAorUEFTUyBSVENJ
Y2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZSBvYmplY3QgbGVuZ3Ro
IGFzc2VydF9lcXVhbHM6IHdyb25nIHZhbHVlIGZvciBSVENJY2VDYW5kaWRhdGUubGVuZ3RoIGV4
cGVjdGVkIDAgYnV0IGdvdCAxCitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUgCitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgUlRDSWNlQ2FuZGlk
YXRlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgUlRDSWNlQ2FuZGlk
YXRlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUlRDSWNlQ2FuZGlk
YXRlIGludGVyZmFjZTogYXR0cmlidXRlIGNhbmRpZGF0ZSAKK1BBU1MgUlRDSWNlQ2FuZGlkYXRl
IGludGVyZmFjZTogYXR0cmlidXRlIHNkcE1pZCAKK1BBU1MgUlRDSWNlQ2FuZGlkYXRlIGludGVy
ZmFjZTogYXR0cmlidXRlIHNkcE1MaW5lSW5kZXggCitGQUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBmb3VuZGF0aW9uIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9i
amVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZm91bmRhdGlvbiIgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogYXR0cmlidXRlIGNvbXBvbmVu
dCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkg
ImNvbXBvbmVudCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDSWNlQ2FuZGlkYXRl
IGludGVyZmFjZTogYXR0cmlidXRlIHByaW9yaXR5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBl
IG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAicHJpb3JpdHkiIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCitGQUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhZGRyZXNz
IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
YWRkcmVzcyIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGlu
dGVyZmFjZTogYXR0cmlidXRlIHByb3RvY29sIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9i
amVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAicHJvdG9jb2wiIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitGQUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwb3J0IGFzc2Vy
dF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAicG9ydCIg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTog
YXR0cmlidXRlIHR5cGUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2
ZSBhIHByb3BlcnR5ICJ0eXBlIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSVENJY2VD
YW5kaWRhdGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdGNwVHlwZSBhc3NlcnRfdHJ1ZTogVGhlIHBy
b3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInRjcFR5cGUiIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitGQUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBy
ZWxhdGVkQWRkcmVzcyBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZl
IGEgcHJvcGVydHkgInJlbGF0ZWRBZGRyZXNzIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVsYXRlZFBvcnQgYXNzZXJ0
X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJyZWxhdGVk
UG9ydCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVy
ZmFjZTogYXR0cmlidXRlIHVzZXJuYW1lRnJhZ21lbnQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5
cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ1c2VybmFtZUZyYWdtZW50IiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBvcGVyYXRp
b24gdG9KU09OKCkgCitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJm
YWNlIG9mIG5ldyBSVENJY2VDYW5kaWRhdGUoeyBzZHBNaWQ6IDEgfSkgCitQQVNTIFN0cmluZ2lm
aWNhdGlvbiBvZiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgc2RwTWlkOiAxIH0pIAorUEFTUyBSVENJ
Y2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgc2RwTWlkOiAxIH0p
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuZGlkYXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNk
cE1pZDogMSB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNkcE1pZCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCitQQVNTIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IG5ldyBSVENJY2VDYW5kaWRh
dGUoeyBzZHBNaWQ6IDEgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZHBNTGluZUluZGV4IiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogbmV3
IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZv
dW5kYXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
ImZvdW5kYXRpb24iIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgUlRDSWNlQ2Fu
ZGlkYXRlIGludGVyZmFjZTogbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9KSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImNvbXBvbmVudCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2luaGVyaXRzOiBwcm9wZXJ0eSAiY29tcG9uZW50IiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitGQUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IG5ldyBSVENJY2VDYW5kaWRhdGUo
eyBzZHBNaWQ6IDEgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwcmlvcml0eSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAicHJpb3JpdHkiIG5vdCBmb3Vu
ZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogbmV3
IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFk
ZHJlc3MiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImFk
ZHJlc3MiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgUlRDSWNlQ2FuZGlkYXRl
IGludGVyZmFjZTogbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9KSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInByb3RvY29sIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJp
dHM6IHByb3BlcnR5ICJwcm90b2NvbCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJ
TCBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgc2RwTWlk
OiAxIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicG9ydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAicG9ydCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBj
aGFpbgorRkFJTCBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBuZXcgUlRDSWNlQ2FuZGlkYXRl
KHsgc2RwTWlkOiAxIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAidHlwZSIgbm90IGZvdW5kIGluIHBy
b3RvdHlwZSBjaGFpbgorRkFJTCBSVENJY2VDYW5kaWRhdGUgaW50ZXJmYWNlOiBuZXcgUlRDSWNl
Q2FuZGlkYXRlKHsgc2RwTWlkOiAxIH0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGNwVHlwZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAidGNwVHlwZSIg
bm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBSVENJY2VDYW5kaWRhdGUgaW50ZXJm
YWNlOiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgc2RwTWlkOiAxIH0pIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVsYXRlZEFkZHJlc3MiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0
czogcHJvcGVydHkgInJlbGF0ZWRBZGRyZXNzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWlu
CitGQUlMIFJUQ0ljZUNhbmRpZGF0ZSBpbnRlcmZhY2U6IG5ldyBSVENJY2VDYW5kaWRhdGUoeyBz
ZHBNaWQ6IDEgfSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZWxhdGVkUG9ydCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAicmVsYXRlZFBvcnQiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTog
bmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNkcE1pZDogMSB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InVzZXJuYW1lRnJhZ21lbnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgInVzZXJuYW1lRnJhZ21lbnQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4K
K1BBU1MgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IHNk
cE1pZDogMSB9KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKK1BBU1MgUlRDSWNlQ2FuZGlkYXRlIGludGVyZmFjZTogdG9KU09OIG9wZXJhdGlv
biBvbiBuZXcgUlRDSWNlQ2FuZGlkYXRlKHsgc2RwTWlkOiAxIH0pIAorUEFTUyBSVENQZWVyQ29u
bmVjdGlvbkljZUV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgaW50ZXJmYWNl
IG9iamVjdCBsZW5ndGggCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgaW50ZXJmYWNl
IG9iamVjdCBuYW1lIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAor
UEFTUyBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBw
cm9wZXJ0eSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgCitQQVNTIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgY2FuZGlkYXRlIAorUEFTUyBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50
IGludGVyZmFjZTogYXR0cmlidXRlIHVybCAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVu
dCBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBSVENQZWVyQ29ubmVjdGlvbkljZUV2
ZW50KCdpY2UnKSAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBSVENQZWVyQ29ubmVjdGlv
bkljZUV2ZW50KCdpY2UnKSAKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBpbnRlcmZh
Y2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50KCdpY2UnKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImNhbmRpZGF0ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uSWNlRXZlbnQgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCgn
aWNlJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1cmwiIHdpdGggdGhlIHByb3BlciB0eXBlIAor
RkFJTCBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9y
RXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQi
IG1pc3NpbmcKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIgbWlzc2luZworRkFJTCBSVENQZWVy
Q29ubmVjdGlvbkljZUVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ1BlZXJDb25uZWN0
aW9uSWNlRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ1BlZXJDb25uZWN0aW9uSWNl
RXJyb3JFdmVudCIgbWlzc2luZworRkFJTCBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAi
UlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IiBtaXNzaW5nCitGQUlMIFJUQ1BlZXJDb25u
ZWN0aW9uSWNlRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDUGVl
ckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDUGVlckNvbm5l
Y3Rpb25JY2VFcnJvckV2ZW50IiBtaXNzaW5nCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJy
b3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDUGVlckNvbm5lY3Rpb25J
Y2VFcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJv
ckV2ZW50IiBtaXNzaW5nCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBhZGRyZXNzIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIgZXhw
ZWN0ZWQgcHJvcGVydHkgIlJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIgbWlzc2luZwor
RkFJTCBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
cG9ydCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENQ
ZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiIG1pc3NpbmcKK0ZBSUwgUlRDUGVlckNvbm5lY3Rp
b25JY2VFcnJvckV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHVybCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbklj
ZUVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9y
RXZlbnQiIG1pc3NpbmcKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IGludGVy
ZmFjZTogYXR0cmlidXRlIGVycm9yQ29kZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiIGV4
cGVjdGVkIHByb3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiIG1pc3NpbmcK
K0ZBSUwgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IGludGVyZmFjZTogYXR0cmlidXRl
IGVycm9yVGV4dCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5
ICJSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQiIG1pc3NpbmcKK0ZBSUwgUlRDUGVlckNv
bm5lY3Rpb25JY2VFcnJvckV2ZW50IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFJU
Q1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCgnaWNlLWVycm9yJywgeyBwb3J0OiAwLCBlcnJv
ckNvZGU6IDcwMSB9KTsgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBl
dmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50
IgorRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JF
dmVudCgnaWNlLWVycm9yJywgeyBwb3J0OiAwLCBlcnJvckNvZGU6IDcwMSB9KTsgYXNzZXJ0X2Vx
dWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IgorRkFJTCBSVENQZWVyQ29ubmVjdGlv
bkljZUVycm9yRXZlbnQgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2
ZW50KCdpY2UtZXJyb3InLCB7IHBvcnQ6IDAsIGVycm9yQ29kZTogNzAxIH0pOyBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImFkZHJlc3MiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6
IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVs
bCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFJU
Q1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCIKK0ZBSUwgUlRDUGVlckNvbm5lY3Rpb25JY2VF
cnJvckV2ZW50IGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCgn
aWNlLWVycm9yJywgeyBwb3J0OiAwLCBlcnJvckNvZGU6IDcwMSB9KTsgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJwb3J0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVj
dGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdv
dCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENQZWVyQ29u
bmVjdGlvbkljZUVycm9yRXZlbnQiCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVu
dCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQoJ2ljZS1lcnJv
cicsIHsgcG9ydDogMCwgZXJyb3JDb2RlOiA3MDEgfSk7IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
dXJsIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2Vw
dGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3Qg
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENQZWVyQ29ubmVjdGlvbklj
ZUVycm9yRXZlbnQiCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBpbnRlcmZh
Y2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQoJ2ljZS1lcnJvcicsIHsgcG9y
dDogMCwgZXJyb3JDb2RlOiA3MDEgfSk7IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZXJyb3JDb2Rl
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENQZWVyQ29ubmVjdGlvbkljZUVy
cm9yRXZlbnQiCitGQUlMIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBpbnRlcmZhY2U6
IG5ldyBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQoJ2ljZS1lcnJvcicsIHsgcG9ydDog
MCwgZXJyb3JDb2RlOiA3MDEgfSk7IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZXJyb3JUZXh0IiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3
aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9y
RXZlbnQiCitQQVNTIFJUQ0NlcnRpZmljYXRlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFJUQ0NlcnRpZmljYXRlIGludGVyZmFj
ZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBSVENDZXJ0aWZpY2F0ZSBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgCitQQVNTIFJUQ0NlcnRpZmljYXRlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBSVENDZXJ0aWZpY2F0ZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFJUQ0NlcnRpZmljYXRlIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUlRDQ2VydGlmaWNhdGUgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgZXhwaXJlcyAKK1BBU1MgUlRDQ2VydGlmaWNhdGUgaW50ZXJmYWNl
OiBvcGVyYXRpb24gZ2V0RmluZ2VycHJpbnRzKCkgCitQQVNTIFJUQ0NlcnRpZmljYXRlIG11c3Qg
YmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgaWRsVGVzdE9iamVjdHMuY2VydGlmaWNhdGUgCitQQVNT
IFN0cmluZ2lmaWNhdGlvbiBvZiBpZGxUZXN0T2JqZWN0cy5jZXJ0aWZpY2F0ZSAKK1BBU1MgUlRD
Q2VydGlmaWNhdGUgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5jZXJ0aWZpY2F0ZSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImV4cGlyZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVEND
ZXJ0aWZpY2F0ZSBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3RzLmNlcnRpZmljYXRlIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiZ2V0RmluZ2VycHJpbnRzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAor
UEFTUyBSVENSdHBTZW5kZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoIAorUEFTUyBSVENSdHBTZW5kZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAorUEFTUyBSVENS
dHBTZW5kZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1
Y3RvciIgcHJvcGVydHkgCitQQVNTIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkgCitQQVNTIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0cmFj
ayAKK0ZBSUwgUlRDUnRwU2VuZGVyIGludGVyZmFjZTogYXR0cmlidXRlIHRyYW5zcG9ydCBhc3Nl
cnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInRyYW5z
cG9ydCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFj
ZTogb3BlcmF0aW9uIGdldENhcGFiaWxpdGllcyhET01TdHJpbmcpIAorUEFTUyBSVENSdHBTZW5k
ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0UGFyYW1ldGVycyhSVENSdHBTZW5kUGFyYW1ldGVy
cykgCitQQVNTIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRQYXJhbWV0ZXJz
KCkgCitQQVNTIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXBsYWNlVHJhY2so
TWVkaWFTdHJlYW1UcmFjaz8pIAorRkFJTCBSVENSdHBTZW5kZXIgaW50ZXJmYWNlOiBvcGVyYXRp
b24gc2V0U3RyZWFtcyhNZWRpYVN0cmVhbS4uLikgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3Rl
ZCBwcm9wZXJ0eSAic2V0U3RyZWFtcyIgbWlzc2luZworUEFTUyBSVENSdHBTZW5kZXIgaW50ZXJm
YWNlOiBvcGVyYXRpb24gZ2V0U3RhdHMoKSAKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFjZTog
YXR0cmlidXRlIGR0bWYgCitQQVNTIFJUQ1J0cFNlbmRlciBtdXN0IGJlIHByaW1hcnkgaW50ZXJm
YWNlIG9mIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnNl
bmRlciAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFk
ZFRyYW5zY2VpdmVyKCdhdWRpbycpLnNlbmRlciAKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFj
ZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykuc2VuZGVy
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHJhY2siIHdpdGggdGhlIHByb3BlciB0eXBlIAorRkFJ
TCBSVENSdHBTZW5kZXIgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFu
c2NlaXZlcignYXVkaW8nKS5zZW5kZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0cmFuc3BvcnQi
IHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInRyYW5zcG9y
dCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBSVENSdHBTZW5kZXIgaW50ZXJm
YWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5zZW5k
ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRDYXBhYmlsaXRpZXMoRE9NU3RyaW5nKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IGNhbGxpbmcg
Z2V0Q2FwYWJpbGl0aWVzKERPTVN0cmluZykgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRk
VHJhbnNjZWl2ZXIoJ2F1ZGlvJykuc2VuZGVyIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1J0cFNlbmRlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnNlbmRlciBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNldFBhcmFtZXRlcnMoUlRDUnRwU2VuZFBhcmFtZXRlcnMpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFjZTogY2FsbGluZyBzZXRQYXJh
bWV0ZXJzKFJUQ1J0cFNlbmRQYXJhbWV0ZXJzKSBvbiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5h
ZGRUcmFuc2NlaXZlcignYXVkaW8nKS5zZW5kZXIgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKK1BBU1MgUlRDUnRwU2VuZGVyIGludGVyZmFjZTogbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykuc2VuZGVyIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZ2V0UGFyYW1ldGVycygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1Mg
UlRDUnRwU2VuZGVyIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNj
ZWl2ZXIoJ2F1ZGlvJykuc2VuZGVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZVRyYWNr
KE1lZGlhU3RyZWFtVHJhY2s/KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0cFNl
bmRlciBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2s/KSBv
biBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5zZW5kZXIg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK0ZBSUwgUlRDUnRw
U2VuZGVyIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIo
J2F1ZGlvJykuc2VuZGVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0U3RyZWFtcyhNZWRpYVN0
cmVhbS4uLikiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
InNldFN0cmVhbXMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgUlRDUnRwU2Vu
ZGVyIGludGVyZmFjZTogY2FsbGluZyBzZXRTdHJlYW1zKE1lZGlhU3RyZWFtLi4uKSBvbiBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5zZW5kZXIgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHBy
b3BlcnR5ICJzZXRTdHJlYW1zIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIFJU
Q1J0cFNlbmRlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2Vp
dmVyKCdhdWRpbycpLnNlbmRlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldFN0YXRzKCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENSdHBTZW5kZXIgaW50ZXJmYWNlOiBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5zZW5kZXIgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJkdG1mIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwUmVj
ZWl2ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdCAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNT
IFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgUlRDUnRwUmVjZWl2
ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgCitQQVNTIFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eSAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5IAorUEFTUyBSVENSdHBSZWNlaXZlciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0cmFj
ayAKK0ZBSUwgUlRDUnRwUmVjZWl2ZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHJhbnNwb3J0IGFz
c2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAidHJh
bnNwb3J0IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBSVENSdHBSZWNlaXZlciBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBnZXRDYXBhYmlsaXRpZXMoRE9NU3RyaW5nKSAKK1BBU1MgUlRDUnRw
UmVjZWl2ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0UGFyYW1ldGVycygpIAorUEFTUyBSVENS
dHBSZWNlaXZlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRDb250cmlidXRpbmdTb3VyY2VzKCkg
CitQQVNTIFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFN5bmNocm9uaXph
dGlvblNvdXJjZXMoKSAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24g
Z2V0U3RhdHMoKSAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFj
ZSBvZiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5yZWNl
aXZlciAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFk
ZFRyYW5zY2VpdmVyKCdhdWRpbycpLnJlY2VpdmVyIAorUEFTUyBSVENSdHBSZWNlaXZlciBpbnRl
cmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnJl
Y2VpdmVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHJhY2siIHdpdGggdGhlIHByb3BlciB0eXBl
IAorRkFJTCBSVENSdHBSZWNlaXZlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
LmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnJlY2VpdmVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
dHJhbnNwb3J0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5
ICJ0cmFuc3BvcnQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgUlRDUnRwUmVj
ZWl2ZXIgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcign
YXVkaW8nKS5yZWNlaXZlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldENhcGFiaWxpdGllcyhE
T01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIgaW50
ZXJmYWNlOiBjYWxsaW5nIGdldENhcGFiaWxpdGllcyhET01TdHJpbmcpIG9uIG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnJlY2VpdmVyIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ1J0cFJlY2VpdmVyIGlu
dGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyku
cmVjZWl2ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRQYXJhbWV0ZXJzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIAorUEFTUyBSVENSdHBSZWNlaXZlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnJlY2VpdmVyIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZ2V0Q29udHJpYnV0aW5nU291cmNlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5yZWNlaXZlciBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ1J0cFJlY2VpdmVyIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJh
bnNjZWl2ZXIoJ2F1ZGlvJykucmVjZWl2ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRTdGF0
cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1Mg
UlRDUnRwVHJhbnNjZWl2ZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIFJUQ1J0cFRy
YW5zY2VpdmVyIGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eSAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFi
bGVzIHByb3BlcnR5IAorUEFTUyBSVENSdHBUcmFuc2NlaXZlciBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBtaWQgCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogYXR0cmlidXRlIHNlbmRl
ciAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVjZWl2ZXIg
CitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogYXR0cmlidXRlIGRpcmVjdGlvbiAK
K1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY3VycmVudERpcmVj
dGlvbiAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gc3RvcCgp
IAorUEFTUyBSVENSdHBUcmFuc2NlaXZlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRDb2RlY1By
ZWZlcmVuY2VzKHNlcXVlbmNlPFJUQ1J0cENvZGVjQ2FwYWJpbGl0eT4pIAorUEFTUyBSVENSdHBU
cmFuc2NlaXZlciBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2Yg
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykgCitQQVNTIFJU
Q1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJh
bnNjZWl2ZXIoJ2F1ZGlvJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtaWQiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAorUEFTUyBSVENSdHBUcmFuc2NlaXZlciBpbnRlcmZhY2U6IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2VuZGVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIg
aW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5hZGRUcmFuc2NlaXZlcignYXVkaW8n
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlY2VpdmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRpcmVjdGlv
biIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFj
ZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJjdXJyZW50RGlyZWN0aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KS5hZGRUcmFuc2NlaXZlcignYXVkaW8nKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0b3AoKSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ1J0cFRyYW5zY2VpdmVyIGludGVyZmFjZTog
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJzZXRDb2RlY1ByZWZlcmVuY2VzKHNlcXVlbmNlPFJUQ1J0cENvZGVjQ2Fw
YWJpbGl0eT4pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDUnRwVHJhbnNjZWl2ZXIg
aW50ZXJmYWNlOiBjYWxsaW5nIHNldENvZGVjUHJlZmVyZW5jZXMoc2VxdWVuY2U8UlRDUnRwQ29k
ZWNDYXBhYmlsaXR5Pikgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuYWRkVHJhbnNjZWl2ZXIo
J2F1ZGlvJykgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKK0ZB
SUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENE
dGxzVHJhbnNwb3J0IiBtaXNzaW5nCitGQUlMIFJUQ0R0bHNUcmFuc3BvcnQgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0R0bHNUcmFu
c3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
UlRDRHRsc1RyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQiIG1p
c3NpbmcKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENEdGxzVHJhbnNwb3J0IiBleHBl
Y3RlZCBwcm9wZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIgbWlzc2luZworRkFJTCBSVENEdGxzVHJh
bnNwb3J0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENEdGxzVHJhbnNwb3J0IiBl
eHBlY3RlZCBwcm9wZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIgbWlzc2luZworRkFJTCBSVENEdGxz
VHJhbnNwb3J0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENEdGxzVHJhbnNwb3J0
IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIgbWlzc2luZworRkFJTCBSVENE
dGxzVHJhbnNwb3J0IGludGVyZmFjZTogYXR0cmlidXRlIGljZVRyYW5zcG9ydCBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENEdGxzVHJhbnNw
b3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIgbWlzc2luZworRkFJTCBS
VENEdGxzVHJhbnNwb3J0IGludGVyZmFjZTogYXR0cmlidXRlIHN0YXRlIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQi
IGV4cGVjdGVkIHByb3BlcnR5ICJSVENEdGxzVHJhbnNwb3J0IiBtaXNzaW5nCitGQUlMIFJUQ0R0
bHNUcmFuc3BvcnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0UmVtb3RlQ2VydGlmaWNhdGVzKCkg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRD
RHRsc1RyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0R0bHNUcmFuc3BvcnQiIG1pc3Np
bmcKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnN0YXRlY2hh
bmdlIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlJUQ0R0bHNUcmFuc3BvcnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENEdGxzVHJhbnNwb3J0IiBt
aXNzaW5nCitGQUlMIFJUQ0R0bHNUcmFuc3BvcnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25lcnJv
ciBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJS
VENEdGxzVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDRHRsc1RyYW5zcG9ydCIgbWlz
c2luZworRkFJTCBSVENEdGxzVHJhbnNwb3J0IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2Yg
aWRsVGVzdE9iamVjdHMuZHRsc1RyYW5zcG9ydCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Yg
b2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgU3RyaW5n
aWZpY2F0aW9uIG9mIGlkbFRlc3RPYmplY3RzLmR0bHNUcmFuc3BvcnQgYXNzZXJ0X2VxdWFsczog
d3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQi
CitGQUlMIFJUQ0R0bHNUcmFuc3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5kdGxzVHJh
bnNwb3J0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaWNlVHJhbnNwb3J0IiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVkICJvYmpl
Y3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDRHRsc1RyYW5zcG9ydCBpbnRlcmZhY2U6
IGlkbFRlc3RPYmplY3RzLmR0bHNUcmFuc3BvcnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdGF0
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVj
dCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJUQ0R0bHNUcmFu
c3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5kdGxzVHJhbnNwb3J0IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZ2V0UmVtb3RlQ2VydGlmaWNhdGVzKCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0
IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSVENEdGxzVHJhbnNwb3J0IGludGVyZmFjZTogaWRsVGVz
dE9iamVjdHMuZHRsc1RyYW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uc3RhdGVjaGFu
Z2UiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmpl
Y3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSVENEdGxzVHJh
bnNwb3J0IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuZHRsc1RyYW5zcG9ydCBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm9uZXJyb3IiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6
IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVk
IgorRkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfZXF1YWxzOiBwcm90b3R5cGUgb2YgUlRDSWNl
VHJhbnNwb3J0IGlzIG5vdCBFdmVudFRhcmdldCBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rpb24g
RXZlbnRUYXJnZXQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgYnV0IGdvdCBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iCitQQVNTIFJUQ0ljZVRyYW5zcG9y
dCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKK1BBU1MgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFj
ZSBvYmplY3QgbmFtZSAKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9lcXVh
bHM6IHByb3RvdHlwZSBvZiBSVENJY2VUcmFuc3BvcnQucHJvdG90eXBlIGlzIG5vdCBFdmVudFRh
cmdldC5wcm90b3R5cGUgZXhwZWN0ZWQgb2JqZWN0ICJbb2JqZWN0IEV2ZW50VGFyZ2V0XSIgYnV0
IGdvdCBvYmplY3QgIltvYmplY3QgT2JqZWN0XSIKK1BBU1MgUlRDSWNlVHJhbnNwb3J0IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgUlRDSWNlVHJhbnNwb3J0IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVy
ZmFjZTogYXR0cmlidXRlIHJvbGUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11
c3QgaGF2ZSBhIHByb3BlcnR5ICJyb2xlIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBS
VENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29tcG9uZW50IGFzc2VydF90cnVl
OiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiY29tcG9uZW50IiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgc3RhdGUgCitQQVNTIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBnYXRoZXJpbmdTdGF0ZSAKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTogb3BlcmF0
aW9uIGdldExvY2FsQ2FuZGlkYXRlcygpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJv
cGVydHkgImdldExvY2FsQ2FuZGlkYXRlcyIgbWlzc2luZworRkFJTCBSVENJY2VUcmFuc3BvcnQg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0UmVtb3RlQ2FuZGlkYXRlcygpIGFzc2VydF9vd25fcHJv
cGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVy
YXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldFJlbW90ZUNhbmRpZGF0ZXMiIG1pc3NpbmcKK0ZB
SUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTogb3BlcmF0aW9uIGdldFNlbGVjdGVkQ2FuZGlk
YXRlUGFpcigpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldFNlbGVj
dGVkQ2FuZGlkYXRlUGFpciIgbWlzc2luZworRkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNl
OiBvcGVyYXRpb24gZ2V0TG9jYWxQYXJhbWV0ZXJzKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBl
Y3RlZCBwcm9wZXJ0eSAiZ2V0TG9jYWxQYXJhbWV0ZXJzIiBtaXNzaW5nCitGQUlMIFJUQ0ljZVRy
YW5zcG9ydCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRSZW1vdGVQYXJhbWV0ZXJzKCkgYXNzZXJ0
X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3Rh
dGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiZ2V0UmVtb3RlUGFyYW1ldGVycyIgbWlz
c2luZworRkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zdGF0ZWNo
YW5nZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVy
dHkgIm9uc3RhdGVjaGFuZ2UiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJUQ0ljZVRy
YW5zcG9ydCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmdhdGhlcmluZ3N0YXRlY2hhbmdlIGFzc2Vy
dF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAib25nYXRo
ZXJpbmdzdGF0ZWNoYW5nZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgUlRDSWNlVHJh
bnNwb3J0IGludGVyZmFjZTogYXR0cmlidXRlIG9uc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdl
IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
b25zZWxlY3RlZGNhbmRpZGF0ZXBhaXJjaGFuZ2UiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMIFJUQ0ljZVRyYW5zcG9ydCBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIGlkbFRlc3RP
YmplY3RzLmljZVRyYW5zcG9ydCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4
cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgU3RyaW5naWZpY2F0aW9u
IG9mIGlkbFRlc3RPYmplY3RzLmljZVRyYW5zcG9ydCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBl
b2Ygb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRD
SWNlVHJhbnNwb3J0IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuaWNlVHJhbnNwb3J0IG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicm9sZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFs
czogd3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmlu
ZWQiCitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3RzLmljZVRy
YW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbXBvbmVudCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0
IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGlk
bFRlc3RPYmplY3RzLmljZVRyYW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0YXRlIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4
cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0
IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuaWNlVHJhbnNwb3J0IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiZ2F0aGVyaW5nU3RhdGUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6
IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVk
IgorRkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5pY2VUcmFu
c3BvcnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRMb2NhbENhbmRpZGF0ZXMoKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3Rl
ZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRl
cmZhY2U6IGlkbFRlc3RPYmplY3RzLmljZVRyYW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImdldFJlbW90ZUNhbmRpZGF0ZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFs
czogd3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmlu
ZWQiCitGQUlMIFJUQ0ljZVRyYW5zcG9ydCBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3RzLmljZVRy
YW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldFNlbGVjdGVkQ2FuZGlkYXRlUGFpcigp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0
IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDSWNlVHJhbnNw
b3J0IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuaWNlVHJhbnNwb3J0IG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiZ2V0TG9jYWxQYXJhbWV0ZXJzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAi
dW5kZWZpbmVkIgorRkFJTCBSVENJY2VUcmFuc3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0
cy5pY2VUcmFuc3BvcnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRSZW1vdGVQYXJhbWV0ZXJz
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmpl
Y3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSVENJY2VUcmFu
c3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5pY2VUcmFuc3BvcnQgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvbnN0YXRlY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1
YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVm
aW5lZCIKK0ZBSUwgUlRDSWNlVHJhbnNwb3J0IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuaWNl
VHJhbnNwb3J0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25nYXRoZXJpbmdzdGF0ZWNoYW5nZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVjdCBl
eHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJUQ0ljZVRyYW5zcG9y
dCBpbnRlcmZhY2U6IGlkbFRlc3RPYmplY3RzLmljZVRyYW5zcG9ydCBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9uc2VsZWN0ZWRjYW5kaWRhdGVwYWlyY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1
dCBnb3QgInVuZGVmaW5lZCIKK1BBU1MgUlRDVHJhY2tFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBSVENUcmFja0V2ZW50
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBSVENUcmFja0V2ZW50IGludGVyZmFjZSBv
YmplY3QgbmFtZSAKK1BBU1MgUlRDVHJhY2tFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgUlRDVHJhY2tF
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFJUQ1RyYWNrRXZl
bnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAorUEFTUyBSVENUcmFja0V2ZW50
IGludGVyZmFjZTogYXR0cmlidXRlIHJlY2VpdmVyIAorUEFTUyBSVENUcmFja0V2ZW50IGludGVy
ZmFjZTogYXR0cmlidXRlIHRyYWNrIAorUEFTUyBSVENUcmFja0V2ZW50IGludGVyZmFjZTogYXR0
cmlidXRlIHN0cmVhbXMgCitQQVNTIFJUQ1RyYWNrRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
dHJhbnNjZWl2ZXIgCitQQVNTIFJUQ1RyYWNrRXZlbnQgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFj
ZSBvZiBpbml0VHJhY2tFdmVudCgpIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgaW5pdFRyYWNr
RXZlbnQoKSAKK1BBU1MgUlRDVHJhY2tFdmVudCBpbnRlcmZhY2U6IGluaXRUcmFja0V2ZW50KCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZWNlaXZlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIFJUQ1RyYWNrRXZlbnQgaW50ZXJmYWNlOiBpbml0VHJhY2tFdmVudCgpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAidHJhY2siIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENUcmFja0V2
ZW50IGludGVyZmFjZTogaW5pdFRyYWNrRXZlbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0
cmVhbXMiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENUcmFja0V2ZW50IGludGVyZmFj
ZTogaW5pdFRyYWNrRXZlbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRyYW5zY2VpdmVyIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ1NjdHBUcmFuc3BvcnQi
IGV4cGVjdGVkIHByb3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0IiBtaXNzaW5nCitGQUlMIFJUQ1Nj
dHBUcmFuc3BvcnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIgZXhwZWN0
ZWQgcHJvcGVydHkgIlJUQ1NjdHBUcmFuc3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDU2N0cFRyYW5z
cG9ydCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlJUQ1NjdHBUcmFuc3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJSVENTY3RwVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIg
bWlzc2luZworRkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBw
cm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJSVENTY3RwVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9y
dCIgbWlzc2luZworRkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5z
cG9ydCIgbWlzc2luZworRkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZTogYXR0cmlidXRl
IHRyYW5zcG9ydCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5z
cG9ydCIgbWlzc2luZworRkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZTogYXR0cmlidXRl
IHN0YXRlIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIlJUQ1NjdHBUcmFuc3BvcnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0
IiBtaXNzaW5nCitGQUlMIFJUQ1NjdHBUcmFuc3BvcnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWF4
TWVzc2FnZVNpemUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ1NjdHBUcmFu
c3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBtYXhDaGFubmVscyBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJSVENTY3RwVHJhbnNwb3J0IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDU2N0cFRy
YW5zcG9ydCIgbWlzc2luZworRkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZTogYXR0cmli
dXRlIG9uc3RhdGVjaGFuZ2UgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiUlRDU2N0cFRyYW5zcG9ydCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ1Nj
dHBUcmFuc3BvcnQiIG1pc3NpbmcKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBtdXN0IGJlIHByaW1h
cnkgaW50ZXJmYWNlIG9mIGlkbFRlc3RPYmplY3RzLnNjdHBUcmFuc3BvcnQgYXNzZXJ0X2VxdWFs
czogd3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmlu
ZWQiCitGQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBpZGxUZXN0T2JqZWN0cy5zY3RwVHJhbnNwb3J0
IGFzc2VydF9lcXVhbHM6IHdyb25nIHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0
IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZTogaWRsVGVz
dE9iamVjdHMuc2N0cFRyYW5zcG9ydCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRyYW5zcG9ydCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVjdCBl
eHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJUQ1NjdHBUcmFuc3Bv
cnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5zY3RwVHJhbnNwb3J0IG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAic3RhdGUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IHdyb25n
IHR5cGVvZiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJ
TCBSVENTY3RwVHJhbnNwb3J0IGludGVyZmFjZTogaWRsVGVzdE9iamVjdHMuc2N0cFRyYW5zcG9y
dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1heE1lc3NhZ2VTaXplIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfZXF1YWxzOiB3cm9uZyB0eXBlb2Ygb2JqZWN0IGV4cGVjdGVkICJvYmplY3Qi
IGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUlRDU2N0cFRyYW5zcG9ydCBpbnRlcmZhY2U6IGlk
bFRlc3RPYmplY3RzLnNjdHBUcmFuc3BvcnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXhDaGFu
bmVscyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogd3JvbmcgdHlwZW9mIG9i
amVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJUQ1NjdHBU
cmFuc3BvcnQgaW50ZXJmYWNlOiBpZGxUZXN0T2JqZWN0cy5zY3RwVHJhbnNwb3J0IG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAib25zdGF0ZWNoYW5nZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2VxdWFsczogd3JvbmcgdHlwZW9mIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1
bmRlZmluZWQiCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBSVENEYXRhQ2hhbm5l
bCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFJUQ0RhdGFDaGFubmVs
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWwgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFj
ZTogYXR0cmlidXRlIG9yZGVyZWQgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogYXR0
cmlidXRlIG1heFBhY2tldExpZmVUaW1lIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBtYXhSZXRyYW5zbWl0cyAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgcHJvdG9jb2wgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogYXR0
cmlidXRlIG5lZ290aWF0ZWQgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogYXR0cmli
dXRlIGlkIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZWFkeVN0
YXRlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBidWZmZXJlZEFt
b3VudCAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYnVmZmVyZWRB
bW91bnRMb3dUaHJlc2hvbGQgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogYXR0cmli
dXRlIG9ub3BlbiAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25i
dWZmZXJlZGFtb3VudGxvdyAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgb25lcnJvciAKK0ZBSUwgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25j
bG9zaW5nIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9w
ZXJ0eSAib25jbG9zaW5nIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBSVENEYXRhQ2hh
bm5lbCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmNsb3NlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBjbG9zZSgpIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbm1lc3NhZ2UgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTog
YXR0cmlidXRlIGJpbmFyeVR5cGUgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogb3Bl
cmF0aW9uIHNlbmQoVVNWU3RyaW5nKSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBv
cGVyYXRpb24gc2VuZChCbG9iKSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBvcGVy
YXRpb24gc2VuZChBcnJheUJ1ZmZlcikgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTog
b3BlcmF0aW9uIHNlbmQoQXJyYXlCdWZmZXJWaWV3KSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVE
YXRhQ2hhbm5lbCgnJykgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVy
ZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAibGFiZWwiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENE
YXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFD
aGFubmVsKCcnKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9yZGVyZWQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1heFBh
Y2tldExpZmVUaW1lIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwg
aW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXhSZXRyYW5zbWl0cyIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJvdG9jb2wi
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm5lZ290aWF0ZWQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENEYXRh
Q2hhbm5lbCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFu
bmVsKCcnKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5j
cmVhdGVEYXRhQ2hhbm5lbCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZWFkeVN0YXRlIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJidWZmZXJlZEFtb3VudCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ0Rh
dGFDaGFubmVsIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNo
YW5uZWwoJycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hv
bGQiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm9ub3BlbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ0RhdGFD
aGFubmVsIGludGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5u
ZWwoJycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25idWZmZXJlZGFtb3VudGxvdyIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAib25lcnJvciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitGQUlMIFJUQ0RhdGFDaGFubmVsIGlu
dGVyZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25jbG9zaW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3Nl
cnRfaW5oZXJpdHM6IHByb3BlcnR5ICJvbmNsb3NpbmciIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUg
Y2hhaW4KK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmNsb3Nl
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5lbCgnJykgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJjbG9zZSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgUlRDRGF0YUNo
YW5uZWwgaW50ZXJmYWNlOiBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhQ2hhbm5l
bCgnJykgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbm1lc3NhZ2UiIHdpdGggdGhlIHByb3BlciB0
eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJpbmFyeVR5
cGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInNlbmQoVVNWU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogY2FsbGluZyBzZW5kKFVTVlN0cmluZykgb24gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVy
ZmFjZTogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAic2VuZChCbG9iKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNT
IFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogY2FsbGluZyBzZW5kKEJsb2IpIG9uIG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBpbnRlcmZhY2U6
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInNlbmQoQXJyYXlCdWZmZXIpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BB
U1MgUlRDRGF0YUNoYW5uZWwgaW50ZXJmYWNlOiBjYWxsaW5nIHNlbmQoQXJyYXlCdWZmZXIpIG9u
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBSVENEYXRhQ2hhbm5lbCBp
bnRlcmZhY2U6IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmNyZWF0ZURhdGFDaGFubmVsKCcnKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNlbmQoQXJyYXlCdWZmZXJWaWV3KSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCitQQVNTIFJUQ0RhdGFDaGFubmVsIGludGVyZmFjZTogY2FsbGluZyBzZW5kKEFy
cmF5QnVmZmVyVmlldykgb24gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5u
ZWwoJycpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNT
IFJUQ0RhdGFDaGFubmVsRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgUlRDRGF0YUNoYW5uZWxFdmVudCBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aCAKK1BBU1MgUlRDRGF0YUNoYW5uZWxFdmVudCBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUgCitQQVNTIFJUQ0RhdGFDaGFubmVsRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFJUQ0RhdGFD
aGFubmVsRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBSVENE
YXRhQ2hhbm5lbEV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1Mg
UlRDRGF0YUNoYW5uZWxFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjaGFubmVsIAorUEFTUyBS
VENEYXRhQ2hhbm5lbEV2ZW50IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFJUQ0Rh
dGFDaGFubmVsRXZlbnQoJ2NoYW5uZWwnLCB7CisgICAgICAgICAgY2hhbm5lbDogbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpCisgICAgICAgIH0pIAorUEFTUyBT
dHJpbmdpZmljYXRpb24gb2YgbmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQoJ2NoYW5uZWwnLCB7Cisg
ICAgICAgICAgY2hhbm5lbDogbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5u
ZWwoJycpCisgICAgICAgIH0pIAorUEFTUyBSVENEYXRhQ2hhbm5lbEV2ZW50IGludGVyZmFjZTog
bmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQoJ2NoYW5uZWwnLCB7CisgICAgICAgICAgY2hhbm5lbDog
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCkuY3JlYXRlRGF0YUNoYW5uZWwoJycpCisgICAgICAgIH0p
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2hhbm5lbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIFJUQ0RUTUZTZW5kZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgUlRDRFRNRlNlbmRlciBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCAKK1BBU1MgUlRDRFRNRlNlbmRlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFJU
Q0RUTUZTZW5kZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFJUQ0RUTUZTZW5kZXIgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29u
c3RydWN0b3IiIHByb3BlcnR5IAorUEFTUyBSVENEVE1GU2VuZGVyIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNj
b3BhYmxlcyBwcm9wZXJ0eSAKK1BBU1MgUlRDRFRNRlNlbmRlciBpbnRlcmZhY2U6IG9wZXJhdGlv
biBpbnNlcnREVE1GKERPTVN0cmluZywgb3B0aW9uYWwgdW5zaWduZWQgbG9uZywgb3B0aW9uYWwg
dW5zaWduZWQgbG9uZykgCitQQVNTIFJUQ0RUTUZTZW5kZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
b250b25lY2hhbmdlIAorUEFTUyBSVENEVE1GU2VuZGVyIGludGVyZmFjZTogYXR0cmlidXRlIGNh
bkluc2VydERUTUYgCitQQVNTIFJUQ0RUTUZTZW5kZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdG9u
ZUJ1ZmZlciAKK1BBU1MgUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAorUEFTUyBSVENEVE1GVG9uZUNo
YW5nZUV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBSVENEVE1GVG9uZUNoYW5n
ZUV2ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgUlRDRFRNRlRvbmVDaGFuZ2VFdmVu
dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAKK1BBU1MgUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkgCitQQVNTIFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAorUEFTUyBSVENEVE1GVG9uZUNoYW5nZUV2ZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIHRvbmUgCitQQVNTIFJUQ1N0YXRzUmVwb3J0IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCitQQVNTIFJUQ1N0
YXRzUmVwb3J0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBSVENTdGF0c1JlcG9ydCBp
bnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFJUQ1N0YXRzUmVwb3J0IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFT
UyBSVENTdGF0c1JlcG9ydCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQQVNT
IFJUQ1N0YXRzUmVwb3J0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKK0ZBSUwg
UlRDRXJyb3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJSVENFcnJvciIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0Vycm9yIiBtaXNzaW5nCitGQUlM
IFJUQ0Vycm9yIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ0Vycm9yIiBleHBlY3RlZCBwcm9wZXJ0
eSAiUlRDRXJyb3IiIG1pc3NpbmcKK0ZBSUwgUlRDRXJyb3IgaW50ZXJmYWNlIG9iamVjdCBuYW1l
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlJU
Q0Vycm9yIiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDRXJyb3IiIG1pc3NpbmcKK0ZBSUwgUlRDRXJy
b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiUlRDRXJyb3IiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENFcnJvciIgbWlzc2luZwor
RkFJTCBSVENFcnJvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3IiIGV4
cGVjdGVkIHByb3BlcnR5ICJSVENFcnJvciIgbWlzc2luZworRkFJTCBSVENFcnJvciBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3IiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENF
cnJvciIgbWlzc2luZworRkFJTCBSVENFcnJvciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlcnJvckRl
dGFpbCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJSVENFcnJvciIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0Vycm9yIiBtaXNzaW5nCitGQUlMIFJU
Q0Vycm9yIGludGVyZmFjZTogYXR0cmlidXRlIHNkcExpbmVOdW1iZXIgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3IiIGV4cGVjdGVk
IHByb3BlcnR5ICJSVENFcnJvciIgbWlzc2luZworRkFJTCBSVENFcnJvciBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBzY3RwQ2F1c2VDb2RlIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlJUQ0Vycm9yIiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDRXJyb3Ii
IG1pc3NpbmcKK0ZBSUwgUlRDRXJyb3IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVjZWl2ZWRBbGVy
dCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJS
VENFcnJvciIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0Vycm9yIiBtaXNzaW5nCitGQUlMIFJUQ0Vy
cm9yIGludGVyZmFjZTogYXR0cmlidXRlIHNlbnRBbGVydCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENFcnJvciIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlJUQ0Vycm9yIiBtaXNzaW5nCitGQUlMIFJUQ0Vycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJSVENFcnJvckV2ZW50IiBleHBl
Y3RlZCBwcm9wZXJ0eSAiUlRDRXJyb3JFdmVudCIgbWlzc2luZworRkFJTCBSVENFcnJvckV2ZW50
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlJUQ0Vycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJS
VENFcnJvckV2ZW50IiBtaXNzaW5nCitGQUlMIFJUQ0Vycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVj
dCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIlJUQ0Vycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJSVENFcnJvckV2ZW50IiBtaXNz
aW5nCitGQUlMIFJUQ0Vycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJv
cGVydHkgIlJUQ0Vycm9yRXZlbnQiIG1pc3NpbmcKK0ZBSUwgUlRDRXJyb3JFdmVudCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkg
IlJUQ0Vycm9yRXZlbnQiIG1pc3NpbmcKK0ZBSUwgUlRDRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBA
dW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiUlRDRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlJUQ0Vy
cm9yRXZlbnQiIG1pc3NpbmcKK0ZBSUwgUlRDRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBlcnJvciBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJSVENFcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiUlRDRXJyb3JFdmVudCIgbWlz
c2luZworRkFJTCBSVENFcnJvckV2ZW50IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3
IFJUQ0Vycm9yRXZlbnQoJ2Vycm9yJykgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRp
b24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDRXJyb3JFdmVudCIKK0ZBSUwg
U3RyaW5naWZpY2F0aW9uIG9mIG5ldyBSVENFcnJvckV2ZW50KCdlcnJvcicpIGFzc2VydF9lcXVh
bHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQg
bnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IFJUQ0Vycm9yRXZlbnQiCitGQUlMIFJUQ0Vycm9yRXZlbnQgaW50ZXJmYWNlOiBuZXcgUlRDRXJy
b3JFdmVudCgnZXJyb3InKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVycm9yIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBSVENFcnJvckV2ZW50IgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCmluZGV4IDZlOWI3ZTlhZmEy
YTFhMWVmMDQ0ODMwN2IyZTM5ZTdmYmM3YTM1OGYuLmFlMThjYzYzNTM4MzFhOGMxODkyOGYxZTY4
ZTZhODBhYzQwMGJiMGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkbGhhcm5l
c3MuaHR0cHMud2luZG93LmpzCkBAIC0xLDYgKzEsNyBAQAogLy8gTUVUQTogc2NyaXB0PS9yZXNv
dXJjZXMvV2ViSURMUGFyc2VyLmpzCiAvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9pZGxoYXJu
ZXNzLmpzCiAvLyBNRVRBOiBzY3JpcHQ9Li9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMKKy8v
IE1FVEE6IHRpbWVvdXQ9bG9uZwogCiAndXNlIHN0cmljdCc7CiAKQEAgLTEwMiw3ICsxMDMsNyBA
QCBmdW5jdGlvbiBhc3luY0luaXQoKSB7CiAKIGlkbF90ZXN0KAogICBbJ3dlYnJ0YyddLAotICBb
J21lZGlhY2FwdHVyZS1zdHJlYW1zJywgJ2RvbSddLAorICBbJ1dlYklETCcsICdtZWRpYWNhcHR1
cmUtc3RyZWFtcycsICdkb20nLCAnaHRtbCddLAogICBhc3luYyBpZGxBcnJheSA9PiB7CiAgICAg
aWRsQXJyYXkuYWRkX29iamVjdHMoewogICAgICAgUlRDUGVlckNvbm5lY3Rpb246IFtgbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKClgXSwKQEAgLTExNCw3ICsxMTUsNyBAQCBpZGxfdGVzdCgKICAgICAg
IFJUQ1J0cFJlY2VpdmVyOiBbYG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYW5zY2VpdmVy
KCdhdWRpbycpLnJlY2VpdmVyYF0sCiAgICAgICBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50OiBb
YG5ldyBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50KCdpY2UnKWBdLAogICAgICAgUlRDUGVlckNv
bm5lY3Rpb25JY2VFcnJvckV2ZW50OiBbCi0gICAgICAgIGBuZXcgUlRDUGVlckNvbm5lY3Rpb25J
Y2VFcnJvckV2ZW50KCdpY2UtZXJyb3InLCB7IGVycm9yQ29kZTogNzAxIH0pO2AKKyAgICAgICAg
YG5ldyBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQoJ2ljZS1lcnJvcicsIHsgcG9ydDog
MCwgZXJyb3JDb2RlOiA3MDEgfSk7YAogICAgICAgXSwKICAgICAgIFJUQ1RyYWNrRXZlbnQ6IFtg
aW5pdFRyYWNrRXZlbnQoKWBdLAogICAgICAgUlRDRXJyb3JFdmVudDogW2BuZXcgUlRDRXJyb3JF
dmVudCgnZXJyb3InKWBdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JFQURNRS50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvUkVBRE1FLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YWRiZjZhYTE3Mzk0OTcxOGE5MGJkNTRjYzk1MzYxZTFhODgwMWJhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvbGVnYWN5L1JFQURNRS50eHQKQEAgLTAsMCArMSwyIEBACitUaGlzIGRpcmVjdG9y
eSBjb250YWlucyBmaWxlcyB0aGF0IHRlc3QgZm9yIGJlaGF2aW9yIHJlbGV2YW50IHRvIHdlYnJ0
YywKK3BhcnRpY3VsYXJseSBkZWZpbmVkIGluIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMt
cGMvI2xlZ2FjeS1pbnRlcmZhY2UtZXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1BlZXJDb25u
ZWN0aW9uLWFkZFN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvUlRDUGVlckNvbm5lY3Rpb24t
YWRkU3RyZWFtLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGY0MDJmYWRkZmQwZjU4
MDhhNGVhY2QwMjUxM2Y5NmNlODhhZjJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1BlZXJDb25u
ZWN0aW9uLWFkZFN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZB
SUwgTGVnYWN5IGFkZFN0cmVhbSgpOiBNZWRpYSBzdHJlYW0gc3RhdHMgcmVmZXJlbmNlcyB0cmFj
ayBzdGF0cyBwYy5hZGRTdHJlYW0gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMuYWRkU3RyZWFt
KHN0cmVhbSknLCAncGMuYWRkU3RyZWFtJyBpcyB1bmRlZmluZWQpCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9S
VENQZWVyQ29ubmVjdGlvbi1hZGRTdHJlYW0uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9SVENQZWVyQ29ubmVjdGlv
bi1hZGRTdHJlYW0uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTM1ZWJjNTNiOGQ3Y2UzODU3ZDQ4
NjlhNDc2ZTBlOTlhOTA3OGM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1BlZXJDb25uZWN0aW9u
LWFkZFN0cmVhbS5odHRwcy5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhZG9jdHlwZSBodG1sPgor
PG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxvbmci
PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIGxlZ2FjeSBhZGRTdHJlYW08L3RpdGxlPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vUlRDU3RhdHMtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9kaWN0
aW9uYXJ5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisK
KyAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQ
ZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6CisgIC8vICAgZ2V0VXNlck1lZGlhVHJhY2tzQW5kU3Ry
ZWFtcworCisgIC8vIFRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZy
b20gUlRDU3RhdHMtaGVscGVyLmpzCisgIC8vIChkZXBlbmRzIG9uIGRpY3Rpb25hcnktaGVscGVy
LmpzKToKKyAgLy8gICB2YWxpZGF0ZVJ0Y1N0YXRzCisKKyAgLy8gVE9ETyhoYm9zKTogYWRkU3Ry
ZWFtKCkgaXMgbGVnYWN5IEFQSSBub3QgaW4gdGhlIHNwZWMuIEJhc2VkIG9uIGRpc2N1c3Npb24K
KyAgLy8gd2hldGhlciB0byBzdGFuZGFyZGl6ZSBpbiBsZWdhY3kgc2VjdGlvbiwgY29uc2lkZXIg
cmVtb3ZpbmcgdGhpcyB0ZXN0IG9yCisgIC8vIGtlZXBpbmcgaXQgdW50aWwgYWRkVHJhY2soKSBo
YXMgd2lkZSBzdXBwb3J0LgorICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1wYy9p
c3N1ZXMvMTcwNQorICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1wYy9pc3N1ZXMv
MTEyNQorICBhc3luY190ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBsZXQg
dHJhY2s7CisgICAgbGV0IHN0cmVhbTsKKyAgICByZXR1cm4gZ2V0VXNlck1lZGlhVHJhY2tzQW5k
U3RyZWFtcygxKQorICAgIC50aGVuKHQuc3RlcF9mdW5jKChbdHJhY2tzLCBzdHJlYW1zXSkgPT4g
eworICAgICAgdHJhY2sgPSB0cmFja3NbMF07CisgICAgICBzdHJlYW0gPSBzdHJlYW1zWzBdOwor
ICAgICAgc3RyZWFtLmFkZFRyYWNrKHRyYWNrKTsKKyAgICAgIHBjLmFkZFN0cmVhbShzdHJlYW0p
OworICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCk7CisgICAgfSkpCisgICAgLnRoZW4odC5z
dGVwX2Z1bmMob2ZmZXIgPT4geworICAgICAgcmV0dXJuIHBjLnNldExvY2FsRGVzY3JpcHRpb24o
b2ZmZXIpOworICAgIH0pKQorICAgIC50aGVuKHQuc3RlcF9mdW5jKCgpID0+IHsKKyAgICAgIHJl
dHVybiBwYy5nZXRTdGF0cygpOworICAgIH0pKQorICAgIC50aGVuKHQuc3RlcF9mdW5jKHJlcG9y
dCA9PiB7CisgICAgICBsZXQgdHJhY2tTdGF0cyA9IGZpbmRTdGF0c0J5VHlwZUFuZElkKHJlcG9y
dCwgJ3RyYWNrJywgdHJhY2suaWQpOworICAgICAgbGV0IHN0cmVhbVN0YXRzID0gZmluZFN0YXRz
QnlUeXBlQW5kSWQocmVwb3J0LCAnc3RyZWFtJywgc3RyZWFtLmlkKTsKKyAgICAgIGFzc2VydF90
cnVlKHRyYWNrU3RhdHMgIT0gbnVsbCAmJiBzdHJlYW1TdGF0cyAhPSBudWxsLAorICAgICAgICAg
ICAgICAgICAgJ0hhcyBzdGF0cyBmb3IgdHJhY2sgYW5kIHN0cmVhbScpOworICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhzdHJlYW1TdGF0cy50cmFja0lkcywgWyB0cmFja1N0YXRzLmlkIF0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICdzdHJlYW1TdGF0cy50cmFja0lkcyA9PSBbIHRyYWNr
U3RhdHMuaWQgXScpOworICAgICAgdmFsaWRhdGVSdGNTdGF0cyhyZXBvcnQsIHRyYWNrU3RhdHMp
OworICAgICAgdmFsaWRhdGVSdGNTdGF0cyhyZXBvcnQsIHN0cmVhbVN0YXRzKTsKKyAgICAgIHQu
ZG9uZSgpOworICAgIH0pKQorICAgIC5jYXRjaCh0LnN0ZXBfZnVuYyhyZWFzb24gPT4geworICAg
ICAgYXNzZXJ0X3VucmVhY2hlZChyZWFzb24pOworICAgIH0pKTsKKyAgfSwgJ0xlZ2FjeSBhZGRT
dHJlYW0oKTogTWVkaWEgc3RyZWFtIHN0YXRzIHJlZmVyZW5jZXMgdHJhY2sgc3RhdHMnKTsKKwor
ICBmdW5jdGlvbiBmaW5kU3RhdHNCeVR5cGVBbmRJZChyZXBvcnQsIHR5cGUsIGlkZW50aWZpZXIp
IHsKKyAgICByZXR1cm4gZmluZFN0YXRzKHJlcG9ydCwgc3RhdHMgPT4geworICAgICAgcmV0dXJu
IHN0YXRzLnR5cGUgPT0gdHlwZSAmJiBzdGF0c1t0eXBlICsgJ0lkZW50aWZpZXInXSA9PSBpZGVu
dGlmaWVyOworICAgIH0pOworICB9CisKKyAgZnVuY3Rpb24gZmluZFN0YXRzKHJlcG9ydCwgZmlu
ZEZ1bmMpIHsKKyAgICBmb3IgKGxldCBpdCA9IHJlcG9ydC52YWx1ZXMoKSwgbiA9IGl0Lm5leHQo
KTsgIW4uZG9uZTsgbiA9IGl0Lm5leHQoKSkgeworICAgICAgaWYgKGZpbmRGdW5jKG4udmFsdWUp
KQorICAgICAgICByZXR1cm4gbi52YWx1ZTsKKyAgICB9CisgICAgcmV0dXJuIG51bGw7CisgIH0K
KworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIt
b2ZmZXJUb1JlY2VpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9m
ZmVyLW9mZmVyVG9SZWNlaXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWFjODEyYzIwYjBj
YWU5MjA3MmM1ODQzOTZkOTM3NDJiZmU3ZjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1BlZXJD
b25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIwIEBACisKK0ZBSUwgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlQXVkaW8g
c2hvdWxkIGFkZCBhdWRpbyBsaW5lIHRvIGFsbCBzdWJzZXF1ZW50IGNyZWF0ZWQgb2ZmZXJzIGFz
c2VydF9lcXVhbHM6IEV4cGVjdCBjcmVhdGVkIG9mZmVyIHRvIGhhdmUgYXVkaW8gbGluZSBleHBl
Y3RlZCAxIGJ1dCBnb3QgMAorRkFJTCBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmVW
aWRlbyBzaG91bGQgYWRkIHZpZGVvIGxpbmUgdG8gYWxsIHN1YnNlcXVlbnQgY3JlYXRlZCBvZmZl
cnMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGNyZWF0ZWQgb2ZmZXIgdG8gaGF2ZSB2aWRlbyBsaW5l
IGV4cGVjdGVkIDEgYnV0IGdvdCAwCitGQUlMIGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZlclRvUmVj
ZWl2ZUF1ZGlvOnRydWUsIHRoZW4gd2l0aCBvZmZlclRvUmVjZWl2ZVZpZGVvOnRydWUsIHNob3Vs
ZCBoYXZlIHJlc3VsdCBvZmZlciB3aXRoIGJvdGggYXVkaW8gYW5kIHZpZGVvIGxpbmUgYXNzZXJ0
X2VxdWFsczogRXhwZWN0IGF1ZGlvIGxpbmUgdG8gYmUgZm91bmQgaW4gY3JlYXRlZCBvZmZlciBl
eHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2Vp
dmVBdWRpbyBzZXQgdG8gZmFsc2Ugc2hvdWxkIG5vdCBjcmVhdGUgYSB0cmFuc2NlaXZlciAKK0ZB
SUwgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlQXVkaW8gc2hvdWxkIGNyZWF0ZSBh
ICJyZWN2b25seSIgdHJhbnNjZWl2ZXIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRvIGhhdmUg
b25lIHRyYW5zY2VpdmVyIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitGQUlMIG9mZmVyVG9SZWNlaXZl
QXVkaW8gb3B0aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3BwZWQgInJlY3Zvbmx5
IiB0cmFuc2NlaXZlciBleGlzdHMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRvIGhhdmUgb25l
IHRyYW5zY2VpdmVyIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIG9mZmVyVG9SZWNlaXZlQXVk
aW8gb3B0aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3BwZWQgInNlbmRyZWN2IiB0
cmFuc2NlaXZlciBleGlzdHMgCitGQUlMIG9mZmVyVG9SZWNlaXZlQXVkaW8gc2V0IHRvIGZhbHNl
IHdpdGggYSB0cmFjayBzaG91bGQgY3JlYXRlIGEgInNlbmRvbmx5IiB0cmFuc2NlaXZlciBhc3Nl
cnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVjdGlv
biBleHBlY3RlZCAic2VuZG9ubHkiIGJ1dCBnb3QgInNlbmRyZWN2IgorRkFJTCBvZmZlclRvUmVj
ZWl2ZUF1ZGlvIHNldCB0byBmYWxzZSB3aXRoIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBzaG91
bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gImluYWN0aXZlIiBhc3NlcnRfZXF1YWxzOiBFeHBl
Y3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAiaW5hY3RpdmUiIGRpcmVjdGlvbiBleHBlY3RlZCAiaW5h
Y3RpdmUiIGJ1dCBnb3QgInJlY3Zvbmx5IgorRkFJTCBzdWJzZXF1ZW50IG9mZmVyVG9SZWNlaXZl
QXVkaW8gc2V0IHRvIGZhbHNlIHdpdGggYSB0cmFjayBzaG91bGQgY2hhbmdlIHRoZSBkaXJlY3Rp
b24gdG8gInNlbmRvbmx5IiBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2
ZSAic2VuZG9ubHkiIGRpcmVjdGlvbiBleHBlY3RlZCAic2VuZG9ubHkiIGJ1dCBnb3QgInNlbmRy
ZWN2IgorUEFTUyBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmVWaWRlbyBzZXQgdG8g
ZmFsc2Ugc2hvdWxkIG5vdCBjcmVhdGUgYSB0cmFuc2NlaXZlciAKK0ZBSUwgY3JlYXRlT2ZmZXIo
KSB3aXRoIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2hvdWxkIGNyZWF0ZSBhICJyZWN2b25seSIgdHJh
bnNjZWl2ZXIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVy
IGV4cGVjdGVkIDEgYnV0IGdvdCAwCitGQUlMIG9mZmVyVG9SZWNlaXZlVmlkZW8gb3B0aW9uIHNo
b3VsZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3BwZWQgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBl
eGlzdHMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyIGV4
cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIG9mZmVyVG9SZWNlaXZlVmlkZW8gb3B0aW9uIHNob3Vs
ZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3BwZWQgInNlbmRyZWN2IiB0cmFuc2NlaXZlciBleGlz
dHMgCitGQUlMIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2V0IHRvIGZhbHNlIHdpdGggYSB0cmFjayBz
aG91bGQgY3JlYXRlIGEgInNlbmRvbmx5IiB0cmFuc2NlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBl
Y3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVjdGlvbiBleHBlY3RlZCAic2Vu
ZG9ubHkiIGJ1dCBnb3QgInNlbmRyZWN2IgorRkFJTCBvZmZlclRvUmVjZWl2ZVZpZGVvIHNldCB0
byBmYWxzZSB3aXRoIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBzaG91bGQgY2hhbmdlIHRoZSBk
aXJlY3Rpb24gdG8gImluYWN0aXZlIiBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIg
dG8gaGF2ZSAiaW5hY3RpdmUiIGRpcmVjdGlvbiBleHBlY3RlZCAiaW5hY3RpdmUiIGJ1dCBnb3Qg
InJlY3Zvbmx5IgorRkFJTCBzdWJzZXF1ZW50IG9mZmVyVG9SZWNlaXZlVmlkZW8gc2V0IHRvIGZh
bHNlIHdpdGggYSB0cmFjayBzaG91bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gInNlbmRvbmx5
IiBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRp
cmVjdGlvbiBleHBlY3RlZCAic2VuZG9ubHkiIGJ1dCBnb3QgInNlbmRyZWN2IgorRkFJTCBvZmZl
clRvUmVjZWl2ZUF1ZGlvIGFuZCBWaWRlbyBzaG91bGQgY3JlYXRlIHR3byAicmVjdm9ubHkiIHRy
YW5zY2VpdmVycyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgcGMgdG8gaGF2ZSB0d28gdHJhbnNjZWl2
ZXJzIGV4cGVjdGVkIDIgYnV0IGdvdCAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9SVENQZWVyQ29ubmVjdGlv
bi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1BlZXJDb25uZWN0aW9uLWNy
ZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjcxMDQ5OGU3NWYxYmU1
ODdjNjZkMWQwZGZlMjE1Y2IxMzZjYzc0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9SVENQZWVyQ29u
bmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sCkBAIC0wLDAgKzEsMjc0IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+VGVzdCBsZWdh
Y3kgb2ZmZXJUb1JlY2VpdmVBdWRpby9WaWRlbyBvcHRpb25zPC90aXRsZT4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jbGVnYWN5LWNvbmZp
Z3VyYXRpb24tZXh0ZW5zaW9ucyI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvKgorICAgKiAg
NC4zLjMuMiBDb25maWd1cmF0aW9uIGRhdGEgZXh0ZW5zaW9ucworICAgKiAgcGFydGlhbCBkaWN0
aW9uYXJ5IFJUQ09mZmVyT3B0aW9ucworICAgKi8KKworICAvKgorICAgKiAgb2ZmZXJUb1JlY2Vp
dmVBdWRpbyBvZiB0eXBlIGJvb2xlYW4KKyAgICogICAgV2hlbiB0aGlzIGlzIGdpdmVuIGEgbm9u
LWZhbHNlIHZhbHVlLCBubyBvdXRnb2luZyB0cmFjayBvZiB0eXBlCisgICAqICAgICJhdWRpbyIg
aXMgYXR0YWNoZWQgdG8gdGhlIFBlZXJDb25uZWN0aW9uLCBhbmQgdGhlIGV4aXN0aW5nCisgICAq
ICAgIGxvY2FsRGVzY3JpcHRpb24gKGlmIGFueSkgZG9lc24ndCBjb250YWluIGFueSBzZW5kcmVj
diBvciByZWN2CisgICAqICAgIGF1ZGlvIG1lZGlhIHNlY3Rpb25zLCBjcmVhdGVPZmZlcigpIHdp
bGwgYmVoYXZlIGFzIGlmCisgICAqICAgIGFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpIGhhZCBiZWVu
IGNhbGxlZCBvbmNlIHByaW9yIHRvIHRoZSBjcmVhdGVPZmZlcigpIGNhbGwuCisgICAqLworICBw
cm9taXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICByZXR1cm4g
cGMuY3JlYXRlT2ZmZXIoeyBvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlIH0pCisgICAgLnRoZW4o
b2ZmZXIxID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoY291bnRBdWRpb0xpbmUob2ZmZXIxLnNk
cCksIDEsCisgICAgICAgICdFeHBlY3QgY3JlYXRlZCBvZmZlciB0byBoYXZlIGF1ZGlvIGxpbmUn
KTsKKworICAgICAgLy8gVGhlIGZpcnN0IGNyZWF0ZU9mZmVyIGltcGxpY2l0bHkgY2FsbHMgYWRk
VHJhbnNjZWl2ZXIoJ2F1ZGlvJyksCisgICAgICAvLyBzbyBhbGwgZm9sbG93aW5nIG9mZmVycyB3
aWxsIGFsc28gaGF2ZSBhdWRpbyBtZWRpYSBzZWN0aW9uCisgICAgICAvLyBpbiB0aGVpciBTRFAu
CisgICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoeyBvZmZlclRvUmVjZWl2ZUF1ZGlvOiBmYWxz
ZSB9KQorICAgICAgLnRoZW4ob2ZmZXIyID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3Vu
dEF1ZGlvTGluZShvZmZlcjIuc2RwKSwgMSwKKyAgICAgICAgICAnRXhwZWN0IGF1ZGlvIGxpbmUg
dG8gcmVtYWluIGluIGNyZWF0ZWQgb2ZmZXInKTsKKyAgICAgIH0pCisgICAgfSk7CisgIH0sICdj
cmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmVBdWRpbyBzaG91bGQgYWRkIGF1ZGlvIGxp
bmUgdG8gYWxsIHN1YnNlcXVlbnQgY3JlYXRlZCBvZmZlcnMnKTsKKworICAvKgorICAgKiAgb2Zm
ZXJUb1JlY2VpdmVWaWRlbyBvZiB0eXBlIGJvb2xlYW4KKyAgICogICAgV2hlbiB0aGlzIGlzIGdp
dmVuIGEgbm9uLWZhbHNlIHZhbHVlLCBhbmQgbm8gb3V0Z29pbmcgdHJhY2sKKyAgICogICAgb2Yg
dHlwZSAidmlkZW8iIGlzIGF0dGFjaGVkIHRvIHRoZSBQZWVyQ29ubmVjdGlvbiwgYW5kIHRoZQor
ICAgKiAgICBleGlzdGluZyBsb2NhbERlc2NyaXB0aW9uIChpZiBhbnkpIGRvZXNuJ3QgY29udGFp
biBhbnkgc2VuZGVjdgorICAgKiAgICBvciByZWN2IHZpZGVvIG1lZGlhIHNlY3Rpb25zLCBjcmVh
dGVPZmZlcigpIHdpbGwgYmVoYXZlIGFzIGlmCisgICAqICAgIGFkZFRyYW5zY2VpdmVyKCJ2aWRl
byIpIGhhZCBiZWVuIGNhbGxlZCBwcmlvciB0byB0aGUgY3JlYXRlT2ZmZXIoKSBjYWxsLgorICAg
Ki8KKyAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAg
cmV0dXJuIHBjLmNyZWF0ZU9mZmVyKHsgb2ZmZXJUb1JlY2VpdmVWaWRlbzogdHJ1ZSB9KQorICAg
IC50aGVuKG9mZmVyMSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50VmlkZW9MaW5lKG9m
ZmVyMS5zZHApLCAxLAorICAgICAgJ0V4cGVjdCBjcmVhdGVkIG9mZmVyIHRvIGhhdmUgdmlkZW8g
bGluZScpOworCisgICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoeyBvZmZlclRvUmVjZWl2ZVZp
ZGVvOiBmYWxzZSB9KQorICAgICAgLnRoZW4ob2ZmZXIyID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjb3VudFZpZGVvTGluZShvZmZlcjIuc2RwKSwgMSwKKyAgICAgICAgICAnRXhwZWN0IHZp
ZGVvIGxpbmUgdG8gcmVtYWluIGluIGNyZWF0ZWQgb2ZmZXInKTsKKyAgICAgIH0pCisgICAgfSk7
CisgIH0sICdjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmVWaWRlbyBzaG91bGQgYWRk
IHZpZGVvIGxpbmUgdG8gYWxsIHN1YnNlcXVlbnQgY3JlYXRlZCBvZmZlcnMnKTsKKworICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICByZXR1cm4gcGMu
Y3JlYXRlT2ZmZXIoeworICAgICAgb2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZSwKKyAgICAgIG9m
ZmVyVG9SZWNlaXZlVmlkZW86IGZhbHNlCisgICAgfSkudGhlbihvZmZlcjEgPT4geworICAgICAg
YXNzZXJ0X2VxdWFscyhjb3VudEF1ZGlvTGluZShvZmZlcjEuc2RwKSwgMSwKKyAgICAgICAgJ0V4
cGVjdCBhdWRpbyBsaW5lIHRvIGJlIGZvdW5kIGluIGNyZWF0ZWQgb2ZmZXInKTsKKworICAgICAg
YXNzZXJ0X2VxdWFscyhjb3VudFZpZGVvTGluZShvZmZlcjEuc2RwKSwgMCwKKyAgICAgICAgJ0V4
cGVjdCB2aWRlbyBsaW5lIHRvIG5vdCBiZSBmb3VuZCBpbiBjcmVhdGUgb2ZmZXInKTsKKworICAg
ICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKHsKKyAgICAgICAgb2ZmZXJUb1JlY2VpdmVBdWRpbzog
ZmFsc2UsCisgICAgICAgIG9mZmVyVG9SZWNlaXZlVmlkZW86IHRydWUKKyAgICAgIH0pLnRoZW4o
b2ZmZXIyID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudEF1ZGlvTGluZShvZmZlcjIu
c2RwKSwgMSwKKyAgICAgICAgICAnRXhwZWN0IGF1ZGlvIGxpbmUgdG8gcmVtYWluIGluIGNyZWF0
ZWQgb2ZmZXInKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50VmlkZW9MaW5lKG9mZmVy
Mi5zZHApLCAxLAorICAgICAgICAgICdFeHBlY3QgdmlkZW8gbGluZSB0byBiZSBmb3VuZCBpbiBj
cmVhdGUgb2ZmZXInKTsKKyAgICAgIH0pCisgICAgfSk7CisgIH0sICdjcmVhdGVPZmZlcigpIHdp
dGggb2ZmZXJUb1JlY2VpdmVBdWRpbzp0cnVlLCB0aGVuIHdpdGggb2ZmZXJUb1JlY2VpdmVWaWRl
bzp0cnVlLCBzaG91bGQgaGF2ZSByZXN1bHQgb2ZmZXIgd2l0aCBib3RoIGF1ZGlvIGFuZCB2aWRl
byBsaW5lJyk7CisKKworICAvLyBSdW4gc29tZSB0ZXN0cyBmb3IgYm90aCBhdWRpbyBhbmQgdmlk
ZW8ga2luZHMKKyAgWydhdWRpbycsICd2aWRlbyddLmZvckVhY2goKGtpbmQpID0+IHsKKyAgICBj
b25zdCBjYXBzS2luZCA9IGtpbmRbMF0udG9VcHBlckNhc2UoKSArIGtpbmQuc2xpY2UoMSk7CisK
KyAgICBjb25zdCBvZmZlclRvUmVjZWl2ZVRydWUgPSB7fTsKKyAgICBvZmZlclRvUmVjZWl2ZVRy
dWVbYG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH1gXSA9IHRydWU7CisKKyAgICBjb25zdCBvZmZl
clRvUmVjZWl2ZUZhbHNlID0ge307CisgICAgb2ZmZXJUb1JlY2VpdmVGYWxzZVtgb2ZmZXJUb1Jl
Y2VpdmUke2NhcHNLaW5kfWBdID0gZmFsc2U7CisKKyAgICAvLyBTdGFydCB0ZXN0aW5nCisgICAg
cHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgICAgICBjb25z
dCBkdW1teSA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCdmb28nKTsgLy8gSnVzdCB0byBoYXZlIHNv
bWV0aGluZyB0byBvZmZlcgorCisgICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1Jl
Y2VpdmVGYWxzZSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhw
Yy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDAsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBo
YXZlIG5vIHRyYW5zY2VpdmVycycpOworICAgICAgfSk7CisgICAgfSwgYGNyZWF0ZU9mZmVyKCkg
d2l0aCBvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IHNldCB0byBmYWxzZSBzaG91bGQgbm90IGNy
ZWF0ZSBhIHRyYW5zY2VpdmVyYCk7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJU
b1JlY2VpdmVUcnVlKQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRv
IGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAgICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBw
Yy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZl
ci5kaXJlY3Rpb24sICdyZWN2b25seScsCisgICAgICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0
byBoYXZlICJyZWN2b25seSIgZGlyZWN0aW9uJyk7CisgICAgICB9KTsKKyAgICB9LCBgY3JlYXRl
T2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gc2hvdWxkIGNyZWF0ZSBhICJy
ZWN2b25seSIgdHJhbnNjZWl2ZXJgKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcihvZmZl
clRvUmVjZWl2ZVRydWUpCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAorICAgICAgICAgICdFeHBlY3QgcGMg
dG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXInKTsKKworICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9
IHBjLmdldFRyYW5zY2VpdmVycygpWzBdOworICAgICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2Vp
dmVyLmRpcmVjdGlvbiwgJ3JlY3Zvbmx5JywKKyAgICAgICAgICAnRXhwZWN0IHRyYW5zY2VpdmVy
IHRvIGhhdmUgInJlY3Zvbmx5IiBkaXJlY3Rpb24nKTsKKyAgICAgIH0pCisgICAgICAudGhlbigo
KSA9PiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZVRydWUpKQorICAgICAgLnRoZW4oKCkg
PT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwg
MSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIHN0aWxsIGhhdmUgb25seSBvbmUgdHJhbnNjZWl2
ZXInKTsKKyAgICAgIH0pCisgICAgICA7CisgICAgfSwgYG9mZmVyVG9SZWNlaXZlJHtjYXBzS2lu
ZH0gb3B0aW9uIHNob3VsZCBiZSBpZ25vcmVkIGlmIGEgbm9uLXN0b3BwZWQgInJlY3Zvbmx5IiB0
cmFuc2NlaXZlciBleGlzdHNgKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICAgIHJldHVybiBnZXRUcmFja0Zyb21Vc2VyTWVkaWEo
a2luZCkKKyAgICAgIC50aGVuKChbdHJhY2ssIHN0cmVhbV0pID0+IHsKKyAgICAgICAgcGMuYWRk
VHJhY2sodHJhY2ssIHN0cmVhbSk7CisgICAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcigpOwor
ICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5n
ZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZl
IG9uZSB0cmFuc2NlaXZlcicpOworCisgICAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0
VHJhbnNjZWl2ZXJzKClbMF07CisgICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGly
ZWN0aW9uLCAnc2VuZHJlY3YnLAorICAgICAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2
ZSAic2VuZHJlY3YiIGRpcmVjdGlvbicpOworICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHBj
LmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlVHJ1ZSkpCisgICAgICAudGhlbigoKSA9PiB7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAorICAg
ICAgICAgICdFeHBlY3QgcGMgdG8gc3RpbGwgaGF2ZSBvbmx5IG9uZSB0cmFuc2NlaXZlcicpOwor
ICAgICAgfSkKKyAgICAgIDsKKyAgICB9LCBgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfSBvcHRp
b24gc2hvdWxkIGJlIGlnbm9yZWQgaWYgYSBub24tc3RvcHBlZCAic2VuZHJlY3YiIHRyYW5zY2Vp
dmVyIGV4aXN0c2ApOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKKworICAgICAgcmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYShraW5kKQor
ICAgICAgLnRoZW4oKFt0cmFjaywgc3RyZWFtXSkgPT4geworICAgICAgICBwYy5hZGRUcmFjayh0
cmFjaywgc3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNl
aXZlRmFsc2UpOworICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVj
dCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicpOworCisgICAgICAgIGNvbnN0IHRyYW5zY2Vp
dmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CisgICAgICAgIGFzc2VydF9lcXVhbHModHJh
bnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZG9ubHknLAorICAgICAgICAgICdFeHBlY3QgdHJhbnNj
ZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVjdGlvbicpOworICAgICAgfSkKKyAgICAgIDsK
KyAgICB9LCBgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfSBzZXQgdG8gZmFsc2Ugd2l0aCBhIHRy
YWNrIHNob3VsZCBjcmVhdGUgYSAic2VuZG9ubHkiIHRyYW5zY2VpdmVyYCk7CisKKyAgICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworCisgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgICBwYy5h
ZGRUcmFuc2NlaXZlcihraW5kLCB7ZGlyZWN0aW9uOiAncmVjdm9ubHknfSk7CisKKyAgICAgIHJl
dHVybiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZUZhbHNlKQorICAgICAgLnRoZW4oKCkg
PT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwg
MSwKKyAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7CisKKyAg
ICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdpbmFjdGl2ZScsCisgICAg
ICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJpbmFjdGl2ZSIgZGlyZWN0aW9uJyk7
CisgICAgICB9KQorICAgICAgOworICAgIH0sIGBvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IHNl
dCB0byBmYWxzZSB3aXRoIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBzaG91bGQgY2hhbmdlIHRo
ZSBkaXJlY3Rpb24gdG8gImluYWN0aXZlImApOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKworICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisK
KyAgICAgIHJldHVybiBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoa2luZCkKKyAgICAgIC50aGVuKChb
dHJhY2ssIHN0cmVhbV0pID0+IHsKKyAgICAgICAgcGMuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7
CisgICAgICAgIHJldHVybiBwYy5jcmVhdGVPZmZlcigpOworICAgICAgfSkKKyAgICAgIC50aGVu
KChvZmZlcikgPT4gcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikpCisgICAgICAudGhlbigo
KSA9PiBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMubG9jYWxEZXNjcmlwdGlvbikpCisgICAg
ICAudGhlbigoKSA9PiBwYzIuY3JlYXRlQW5zd2VyKCkpCisgICAgICAudGhlbigoYW5zd2VyKSA9
PiBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpKQorICAgICAgLnRoZW4oKCkgPT4gcGMu
c2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pKQorICAgICAgLnRoZW4o
KCkgPT4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVGYWxzZSkpCisgICAgICAudGhlbigo
b2ZmZXIpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5s
ZW5ndGgsIDEsCisgICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicp
OworCisgICAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07
CisgICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZG9ubHkn
LAorICAgICAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVj
dGlvbicpOworICAgICAgfSkKKyAgICAgIDsKKyAgICB9LCBgc3Vic2VxdWVudCBvZmZlclRvUmVj
ZWl2ZSR7Y2Fwc0tpbmR9IHNldCB0byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNoYW5nZSB0
aGUgZGlyZWN0aW9uIHRvICJzZW5kb25seSJgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KHQg
PT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVy
KHsgb2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZSwgb2ZmZXJUb1JlY2VpdmVWaWRlbzogdHJ1ZSB9
KQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2
ZXJzKCkubGVuZ3RoLCAyLAorICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgdHdvIHRyYW5zY2Vp
dmVycycpOworCisgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpWzBdLmRp
cmVjdGlvbiwgJ3JlY3Zvbmx5JywKKyAgICAgICAgJ0V4cGVjdCBmaXJzdCB0cmFuc2NlaXZlciB0
byBoYXZlICJyZWN2b25seSIgZGlyZWN0aW9uJyk7CisgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdl
dFRyYW5zY2VpdmVycygpWzFdLmRpcmVjdGlvbiwgJ3JlY3Zvbmx5JywKKyAgICAgICAgJ0V4cGVj
dCBzZWNvbmQgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAicmVjdm9ubHkiIGRpcmVjdGlvbicpOworICAg
IH0pOworICB9LCAnb2ZmZXJUb1JlY2VpdmVBdWRpbyBhbmQgVmlkZW8gc2hvdWxkIGNyZWF0ZSB0
d28gInJlY3Zvbmx5IiB0cmFuc2NlaXZlcnMnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kv
UlRDUnRwVHJhbnNjZWl2ZXItd2l0aC1PZmZlclRvUmVjZWl2ZS1vcHRpb25zLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL2xlZ2FjeS9SVENSdHBUcmFuc2NlaXZlci13aXRoLU9mZmVyVG9SZWNlaXZlLW9wdGlvbnMu
aHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllMDdiZTRkYTczZWRiZGZiZTFkNWQ1Njli
ZWJhZDFmOTQzMjkwNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvUlRDUnRwVHJhbnNjZWl2ZXItd2l0
aC1PZmZlclRvUmVjZWl2ZS1vcHRpb25zLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKKworUEFTUyBjaGVja0FkZFRyYW5zY2VpdmVyV2l0aFN0cmVhbSAKK0ZBSUwgY2hlY2tBZGRU
cmFuc2NlaXZlcldpdGhPZmZlclRvUmVjZWl2ZUF1ZGlvIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJbe2N1cnJlbnREaXJlY3Rpb246bnVsbCxkaXJlY3Rpb246XCJyZWN2b25seVwiLG1pZDpudWxs
LHJlY2VpdmVyOnt0cmFjazp7a2luZDpcImF1ZGlvXCJ9fSxzZW5kZXI6e3RyYWNrOm51bGx9LHN0
b3BwZWQ6ZmFsc2V9XSIgYnV0IGdvdCAiW10iCitGQUlMIGNoZWNrQWRkVHJhbnNjZWl2ZXJXaXRo
T2ZmZXJUb1JlY2VpdmVWaWRlbyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiW3tjdXJyZW50RGly
ZWN0aW9uOm51bGwsZGlyZWN0aW9uOlwicmVjdm9ubHlcIixtaWQ6bnVsbCxyZWNlaXZlcjp7dHJh
Y2s6e2tpbmQ6XCJ2aWRlb1wifX0sc2VuZGVyOnt0cmFjazpudWxsfSxzdG9wcGVkOmZhbHNlfV0i
IGJ1dCBnb3QgIltdIgorRkFJTCBjaGVja0FkZFRyYW5zY2VpdmVyV2l0aE9mZmVyVG9SZWNlaXZl
Qm90aCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiW3tjdXJyZW50RGlyZWN0aW9uOm51bGwsZGly
ZWN0aW9uOlwicmVjdm9ubHlcIixtaWQ6bnVsbCxyZWNlaXZlcjp7dHJhY2s6e2tpbmQ6XCJhdWRp
b1wifX0sc2VuZGVyOnt0cmFjazpudWxsfSxzdG9wcGVkOmZhbHNlfSx7Y3VycmVudERpcmVjdGlv
bjpudWxsLGRpcmVjdGlvbjpcInJlY3Zvbmx5XCIsbWlkOm51bGwscmVjZWl2ZXI6e3RyYWNrOntr
aW5kOlwidmlkZW9cIn19LHNlbmRlcjp7dHJhY2s6bnVsbH0sc3RvcHBlZDpmYWxzZX1dIiBidXQg
Z290ICJbXSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1J0cFRyYW5zY2VpdmVyLXdpdGgtT2ZmZXJUb1Jl
Y2VpdmUtb3B0aW9ucy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JUQ1J0cFRyYW5zY2VpdmVyLXdpdGgtT2ZmZXJU
b1JlY2VpdmUtb3B0aW9ucy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZGRiMDA5ODczNDMyMGU5
ODQwNGU3OTExYTkyMGI2Yjg1ZjI3NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvUlRDUnRwVHJhbnNj
ZWl2ZXItd2l0aC1PZmZlclRvUmVjZWl2ZS1vcHRpb25zLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwx
NjkgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENS
dHBUcmFuc2NlaXZlciB3aXRoIE9mZmVyVG9SZWNlaXZlIGxlZ2FjeSBvcHRpb25zPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIGNvbnN0IHN0b3BUcmFja3MgPSAoLi4uc3RyZWFtcykg
PT4geworICAgIHN0cmVhbXMuZm9yRWFjaChzdHJlYW0gPT4gc3RyZWFtLmdldFRyYWNrcygpLmZv
ckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIH07CisKKyAgLy8gY29tcGFyYWJsZSgp
IC0gcHJvZHVjZXMgY29weSBvZiBvYmplY3QgdGhhdCBpcyBKU09OIGNvbXBhcmFibGUuCisgIC8v
IG8gPSBvcmlnaW5hbCBvYmplY3QgKHJlcXVpcmVkKQorICAvLyB0ID0gdGVtcGxhdGUgb2Ygd2hh
dCB0byBleGFtaW5lLiBVc2VmdWwgaWYgbyBpcyBub24tZW51bWVyYWJsZSAob3B0aW9uYWwpCisK
KyAgY29uc3QgY29tcGFyYWJsZSA9IChvLCB0ID0gbykgPT4geworICAgIGlmICh0eXBlb2YgbyAh
PSAnb2JqZWN0JyB8fCAhbykgeworICAgICAgcmV0dXJuIG87CisgICAgfQorICAgIGlmIChBcnJh
eS5pc0FycmF5KHQpICYmIEFycmF5LmlzQXJyYXkobykpIHsKKyAgICAgIHJldHVybiBvLm1hcCgo
biwgaSkgPT4gY29tcGFyYWJsZShuLCB0W2ldKSk7CisgICAgfQorICAgIHJldHVybiBPYmplY3Qu
a2V5cyh0KS5zb3J0KCkKKyAgICAgICAgLnJlZHVjZSgociwga2V5KSA9PiAocltrZXldID0gY29t
cGFyYWJsZShvW2tleV0sIHRba2V5XSksIHIpLCB7fSk7CisgIH07CisKKyAgY29uc3Qgc3RyaXBL
ZXlRdW90ZXMgPSBzID0+IHMucmVwbGFjZSgvIihcdyspIjovZywgIiQxOiIpOworCisgIGNvbnN0
IGhhc1Byb3BzID0gKG9ic2VydmVkLCBleHBlY3RlZCkgPT4geworICAgIGNvbnN0IG9ic2VydmFi
bGUgPSBjb21wYXJhYmxlKG9ic2VydmVkLCBleHBlY3RlZCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
dHJpcEtleVF1b3RlcyhKU09OLnN0cmluZ2lmeShvYnNlcnZhYmxlKSksCisgICAgICAgc3RyaXBL
ZXlRdW90ZXMoSlNPTi5zdHJpbmdpZnkoY29tcGFyYWJsZShleHBlY3RlZCkpKSk7CisgIH07CisK
KyAgY29uc3QgY2hlY2tBZGRUcmFuc2NlaXZlcldpdGhTdHJlYW0gPSBhc3luYyB0ID0+IHsKKyAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CisKKyAgICBjb25zdCBhdWRpb1N0cmVhbSA9IGF3YWl0IG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOworICAgIGNvbnN0
IHZpZGVvU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
e3ZpZGVvOiB0cnVlfSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdG9wVHJhY2tzKGF1ZGlv
U3RyZWFtLCB2aWRlb1N0cmVhbSkpOworCisgICAgY29uc3QgYXVkaW8gPSBhdWRpb1N0cmVhbS5n
ZXRBdWRpb1RyYWNrcygpWzBdOworICAgIGNvbnN0IHZpZGVvID0gdmlkZW9TdHJlYW0uZ2V0Vmlk
ZW9UcmFja3MoKVswXTsKKworICAgIHBjLmFkZFRyYW5zY2VpdmVyKGF1ZGlvLCB7c3RyZWFtczog
W2F1ZGlvU3RyZWFtXX0pOworICAgIHBjLmFkZFRyYW5zY2VpdmVyKHZpZGVvLCB7c3RyZWFtczog
W3ZpZGVvU3RyZWFtXX0pOworCisgICAgaGFzUHJvcHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCksCisg
ICAgICBbCisgICAgICAgIHsKKyAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogImF1
ZGlvIn19LAorICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiBhdWRpb30sCisgICAgICAgICAgZGly
ZWN0aW9uOiAic2VuZHJlY3YiLAorICAgICAgICAgIG1pZDogbnVsbCwKKyAgICAgICAgICBjdXJy
ZW50RGlyZWN0aW9uOiBudWxsLAorICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZpZGVvIn19
LAorICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB2aWRlb30sCisgICAgICAgICAgZGlyZWN0aW9u
OiAic2VuZHJlY3YiLAorICAgICAgICAgIG1pZDogbnVsbCwKKyAgICAgICAgICBjdXJyZW50RGly
ZWN0aW9uOiBudWxsLAorICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCisgICAgICAgIH0KKyAgICAg
IF0pOworCisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICAgIGFz
c2VydF90cnVlKG9mZmVyLnNkcC5pbmNsdWRlcygiYT1tc2lkOiIgKyBhdWRpb1N0cmVhbS5pZCks
CisgICAgICAib2ZmZXIgY29udGFpbnMgdGhlIGV4cGVjdGVkIGF1ZGlvIG1zaWQiKTsKKyAgICBh
c3NlcnRfdHJ1ZShvZmZlci5zZHAuaW5jbHVkZXMoImE9bXNpZDoiICsgdmlkZW9TdHJlYW0uaWQp
LAorICAgICAgIm9mZmVyIGNvbnRhaW5zIHRoZSBleHBlY3RlZCB2aWRlbyBtc2lkIik7CisgIH07
CisKKyAgY29uc3QgY2hlY2tBZGRUcmFuc2NlaXZlcldpdGhPZmZlclRvUmVjZWl2ZSA9IGFzeW5j
ICh0LCBraW5kcykgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICAgIGNvbnN0IHByb3Bz
VG9TZXQgPSBraW5kcy5tYXAoa2luZCA9PiB7CisgICAgICBpZiAoa2luZCA9PSAiYXVkaW8iKSB7
CisgICAgICAgIHJldHVybiAib2ZmZXJUb1JlY2VpdmVBdWRpbyI7CisgICAgICB9IGVsc2UgaWYg
KGtpbmQgPT0gInZpZGVvIikgeworICAgICAgICByZXR1cm4gIm9mZmVyVG9SZWNlaXZlVmlkZW8i
OworICAgICAgfQorICAgIH0pOworCisgICAgY29uc3Qgb3B0aW9ucyA9IHt9OworCisgICAgZm9y
IChjb25zdCBwcm9wIG9mIHByb3BzVG9TZXQpIHsKKyAgICAgIG9wdGlvbnNbcHJvcF0gPSB0cnVl
OworICAgIH0KKworICAgIGxldCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKG9wdGlvbnMp
OworCisgICAgY29uc3QgZXhwZWN0ZWQgPSBbXTsKKworICAgIGlmIChvcHRpb25zLm9mZmVyVG9S
ZWNlaXZlQXVkaW8pIHsKKyAgICAgIGV4cGVjdGVkLnB1c2goCisgICAgICAgIHsKKyAgICAgICAg
ICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAorICAgICAgICAgIHNlbmRlcjog
e3RyYWNrOiBudWxsfSwKKyAgICAgICAgICBkaXJlY3Rpb246ICJyZWN2b25seSIsCisgICAgICAg
ICAgbWlkOiBudWxsLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCisgICAgICAg
ICAgc3RvcHBlZDogZmFsc2UKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKG9wdGlvbnMu
b2ZmZXJUb1JlY2VpdmVWaWRlbykgeworICAgICAgZXhwZWN0ZWQucHVzaCgKKyAgICAgICAgewor
ICAgICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5kOiAidmlkZW8ifX0sCisgICAgICAgICAg
c2VuZGVyOiB7dHJhY2s6IG51bGx9LAorICAgICAgICAgIGRpcmVjdGlvbjogInJlY3Zvbmx5IiwK
KyAgICAgICAgICBtaWQ6IG51bGwsCisgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwK
KyAgICAgICAgICBzdG9wcGVkOiBmYWxzZQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBoYXNQ
cm9wcyhwYy5nZXRUcmFuc2NlaXZlcnMoKSwgZXhwZWN0ZWQpOworCisgICAgLy8gVGVzdCBvZmZl
clRvUmVjZWl2ZTogZmFsc2UKKyAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHNUb1NldCkgewor
ICAgICAgb3B0aW9uc1twcm9wXSA9IGZhbHNlOworICAgIH0KKworICAgIC8vIENoZWNrIHRoYXQg
c2VuZHJlY3YgZ29lcyB0byBzZW5kb25seQorICAgIGZvciAoY29uc3QgdHJhbnNjZWl2ZXIgb2Yg
cGMuZ2V0VHJhbnNjZWl2ZXJzKCkpIHsKKyAgICAgIHRyYW5zY2VpdmVyLmRpcmVjdGlvbiA9ICJz
ZW5kcmVjdiI7CisgICAgfQorCisgICAgZm9yIChjb25zdCB0cmFuc2NlaXZlckNoZWNrIG9mIGV4
cGVjdGVkKSB7CisgICAgICB0cmFuc2NlaXZlckNoZWNrLmRpcmVjdGlvbiA9ICJzZW5kb25seSI7
CisgICAgfQorCisgICAgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcihvcHRpb25zKTsKKyAg
ICBoYXNQcm9wcyhwYy5nZXRUcmFuc2NlaXZlcnMoKSwgZXhwZWN0ZWQpOworCisgICAgLy8gQ2hl
Y2sgdGhhdCByZWN2b25seSBnb2VzIHRvIGluYWN0aXZlCisgICAgZm9yIChjb25zdCB0cmFuc2Nl
aXZlciBvZiBwYy5nZXRUcmFuc2NlaXZlcnMoKSkgeworICAgICAgdHJhbnNjZWl2ZXIuZGlyZWN0
aW9uID0gInJlY3Zvbmx5IjsKKyAgICB9CisKKyAgICBmb3IgKGNvbnN0IHRyYW5zY2VpdmVyQ2hl
Y2sgb2YgZXhwZWN0ZWQpIHsKKyAgICAgIHRyYW5zY2VpdmVyQ2hlY2suZGlyZWN0aW9uID0gImlu
YWN0aXZlIjsKKyAgICB9CisKKyAgICBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKG9wdGlv
bnMpOworICAgIGhhc1Byb3BzKHBjLmdldFRyYW5zY2VpdmVycygpLCBleHBlY3RlZCk7CisgIH07
CisKK2NvbnN0IHRlc3RzID0gWworICBjaGVja0FkZFRyYW5zY2VpdmVyV2l0aFN0cmVhbSwKKyAg
ZnVuY3Rpb24gY2hlY2tBZGRUcmFuc2NlaXZlcldpdGhPZmZlclRvUmVjZWl2ZUF1ZGlvKHQpIHsK
KyAgICByZXR1cm4gY2hlY2tBZGRUcmFuc2NlaXZlcldpdGhPZmZlclRvUmVjZWl2ZSh0LCBbImF1
ZGlvIl0pOworICB9LAorICBmdW5jdGlvbiBjaGVja0FkZFRyYW5zY2VpdmVyV2l0aE9mZmVyVG9S
ZWNlaXZlVmlkZW8odCkgeworICAgIHJldHVybiBjaGVja0FkZFRyYW5zY2VpdmVyV2l0aE9mZmVy
VG9SZWNlaXZlKHQsIFsidmlkZW8iXSk7CisgIH0sCisgIGZ1bmN0aW9uIGNoZWNrQWRkVHJhbnNj
ZWl2ZXJXaXRoT2ZmZXJUb1JlY2VpdmVCb3RoKHQpIHsKKyAgICByZXR1cm4gY2hlY2tBZGRUcmFu
c2NlaXZlcldpdGhPZmZlclRvUmVjZWl2ZSh0LCBbImF1ZGlvIiwgInZpZGVvIl0pOworICB9Citd
LmZvckVhY2godGVzdCA9PiBwcm9taXNlX3Rlc3QodGVzdCwgdGVzdC5uYW1lKSk7CisKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvbGVnYWN5L29uYWRkc3RyZWFtLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9vbmFk
ZHN0cmVhbS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFkYzA2ZjFhMDIwY2IzMWM0
ZWQ3YjMwMDYxNTAyMWY0NDU5MTEyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9vbmFkZHN0cmVhbS5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgQ2hlY2sgb25hZGRzdHJl
YW0gYXNzZXJ0X2VxdWFsczogU2hvdWxkIGhhdmUgMSBhZGRzdHJlYW0gZXZlbnQgZXhwZWN0ZWQg
MSBidXQgZ290IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L29uYWRkc3RyZWFtLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvb25h
ZGRzdHJlYW0uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWExNmIzNmEyNGUxYmNlM2MyODZjYzVh
ZWMyNDlhODkxYmY3NmYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L29uYWRkc3RyZWFtLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSwxNTMgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzx0aXRsZT5vbmFkZHN0cmVhbSB0ZXN0czwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7
CisKKyAgY29uc3Qgc3RvcFRyYWNrcyA9ICguLi5zdHJlYW1zKSA9PiB7CisgICAgc3RyZWFtcy5m
b3JFYWNoKHN0cmVhbSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFj
ay5zdG9wKCkpKTsKKyAgfTsKKworICBjb25zdCBjb2xsZWN0RXZlbnRzID0gKHRhcmdldCwgbmFt
ZSwgY2hlY2spID0+IHsKKyAgICBjb25zdCBldmVudHMgPSBbXTsKKyAgICBjb25zdCBoYW5kbGVy
ID0gZSA9PiB7CisgICAgICBjaGVjayhlKTsKKyAgICAgIGV2ZW50cy5wdXNoKGUpOworICAgIH07
CisKKyAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyKTsKKworICAgIGNv
bnN0IGZpbmlzaENvbGxlY3RpbmcgPSAoKSA9PiB7CisgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRM
aXN0ZW5lcihuYW1lLCBoYW5kbGVyKTsKKyAgICAgIHJldHVybiBldmVudHM7CisgICAgfTsKKwor
ICAgIHJldHVybiB7ZmluaXNoOiBmaW5pc2hDb2xsZWN0aW5nfTsKKyAgfTsKKworICBjb25zdCBj
b2xsZWN0QWRkVHJhY2tFdmVudHMgPSBzdHJlYW0gPT4geworICAgIGNvbnN0IGNoZWNrRXZlbnQg
PSBlID0+IHsKKyAgICAgIGFzc2VydF90cnVlKGUudHJhY2sgaW5zdGFuY2VvZiBNZWRpYVN0cmVh
bVRyYWNrLCAiVHJhY2sgaXMgc2V0IG9uIGV2ZW50Iik7CisgICAgICBhc3NlcnRfdHJ1ZShzdHJl
YW0uZ2V0VHJhY2tzKCkuaW5jbHVkZXMoZS50cmFjayksCisgICAgICAgICJ0cmFjayBpbiBhZGR0
cmFjayBldmVudCBpcyBpbiB0aGUgc3RyZWFtIik7CisgICAgfTsKKyAgICByZXR1cm4gY29sbGVj
dEV2ZW50cyhzdHJlYW0sICJhZGR0cmFjayIsIGNoZWNrRXZlbnQpOworICB9OworCisgIGNvbnN0
IGNvbGxlY3RSZW1vdmVUcmFja0V2ZW50cyA9IHN0cmVhbSA9PiB7CisgICAgY29uc3QgY2hlY2tF
dmVudCA9IGUgPT4geworICAgICAgYXNzZXJ0X3RydWUoZS50cmFjayBpbnN0YW5jZW9mIE1lZGlh
U3RyZWFtVHJhY2ssICJUcmFjayBpcyBzZXQgb24gZXZlbnQiKTsKKyAgICAgIGFzc2VydF90cnVl
KCFzdHJlYW0uZ2V0VHJhY2tzKCkuaW5jbHVkZXMoZS50cmFjayksCisgICAgICAgICJ0cmFjayBp
biByZW1vdmV0cmFjayBldmVudCBpcyBub3QgaW4gdGhlIHN0cmVhbSIpOworICAgIH07CisgICAg
cmV0dXJuIGNvbGxlY3RFdmVudHMoc3RyZWFtLCAicmVtb3ZldHJhY2siLCBjaGVja0V2ZW50KTsK
KyAgfTsKKworICBjb25zdCBjb2xsZWN0VHJhY2tFdmVudHMgPSBwYyA9PiB7CisgICAgY29uc3Qg
Y2hlY2tFdmVudCA9IGUgPT4geworICAgICAgYXNzZXJ0X3RydWUoZS50cmFjayBpbnN0YW5jZW9m
IE1lZGlhU3RyZWFtVHJhY2ssICJUcmFjayBpcyBzZXQgb24gZXZlbnQiKTsKKyAgICAgIGFzc2Vy
dF90cnVlKGUucmVjZWl2ZXIgaW5zdGFuY2VvZiBSVENSdHBSZWNlaXZlciwgIlJlY2VpdmVyIGlz
IHNldCBvbiBldmVudCIpOworICAgICAgYXNzZXJ0X3RydWUoZS50cmFuc2NlaXZlciBpbnN0YW5j
ZW9mIFJUQ1J0cFRyYW5zY2VpdmVyLCAiVHJhbnNjZWl2ZXIgaXMgc2V0IG9uIGV2ZW50Iik7Cisg
ICAgICBhc3NlcnRfdHJ1ZShBcnJheS5pc0FycmF5KGUuc3RyZWFtcyksICJTdHJlYW1zIGlzIHNl
dCBvbiBldmVudCIpOworICAgICAgZS5zdHJlYW1zLmZvckVhY2goc3RyZWFtID0+IHsKKyAgICAg
ICAgYXNzZXJ0X3RydWUoc3RyZWFtLmdldFRyYWNrcygpLmluY2x1ZGVzKGUudHJhY2spLAorICAg
ICAgICAgICAiRWFjaCBzdHJlYW0gaW4gZXZlbnQgY29udGFpbnMgdGhlIHRyYWNrIik7CisgICAg
ICB9KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoZS5yZWNlaXZlciwgZS50cmFuc2NlaXZlci5yZWNl
aXZlciwKKyAgICAgICAgICAgICAgICAgICAgIlJlY2VpdmVyIGJlbG9uZ3MgdG8gdHJhbnNjZWl2
ZXIiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoZS50cmFjaywgZS5yZWNlaXZlci50cmFjaywKKyAg
ICAgICAgICAgICAgICAgICAgIlRyYWNrIGJlbG9uZ3MgdG8gcmVjZWl2ZXIiKTsKKyAgICB9Owor
CisgICAgcmV0dXJuIGNvbGxlY3RFdmVudHMocGMsICJ0cmFjayIsIGNoZWNrRXZlbnQpOworICB9
OworCisgIC8vIGNvbXBhcmFibGUoKSAtIHByb2R1Y2VzIGNvcHkgb2Ygb2JqZWN0IHRoYXQgaXMg
SlNPTiBjb21wYXJhYmxlLgorICAvLyBvID0gb3JpZ2luYWwgb2JqZWN0IChyZXF1aXJlZCkKKyAg
Ly8gdCA9IHRlbXBsYXRlIG9mIHdoYXQgdG8gZXhhbWluZS4gVXNlZnVsIGlmIG8gaXMgbm9uLWVu
dW1lcmFibGUgKG9wdGlvbmFsKQorCisgIGNvbnN0IGNvbXBhcmFibGUgPSAobywgdCA9IG8pID0+
IHsKKyAgICBpZiAodHlwZW9mIG8gIT0gJ29iamVjdCcgfHwgIW8pIHsKKyAgICAgIHJldHVybiBv
OworICAgIH0KKyAgICBpZiAoQXJyYXkuaXNBcnJheSh0KSAmJiBBcnJheS5pc0FycmF5KG8pKSB7
CisgICAgICByZXR1cm4gby5tYXAoKG4sIGkpID0+IGNvbXBhcmFibGUobiwgdFtpXSkpOworICAg
IH0KKyAgICByZXR1cm4gT2JqZWN0LmtleXModCkuc29ydCgpCisgICAgICAgIC5yZWR1Y2UoKHIs
IGtleSkgPT4gKHJba2V5XSA9IGNvbXBhcmFibGUob1trZXldLCB0W2tleV0pLCByKSwge30pOwor
ICB9OworCisgIGNvbnN0IHN0cmlwS2V5UXVvdGVzID0gcyA9PiBzLnJlcGxhY2UoLyIoXHcrKSI6
L2csICIkMToiKTsKKworICBjb25zdCBoYXNQcm9wcyA9IChvYnNlcnZlZCwgZXhwZWN0ZWQpID0+
IHsKKyAgICBjb25zdCBvYnNlcnZhYmxlID0gY29tcGFyYWJsZShvYnNlcnZlZCwgZXhwZWN0ZWQp
OworICAgIGFzc2VydF9lcXVhbHMoc3RyaXBLZXlRdW90ZXMoSlNPTi5zdHJpbmdpZnkob2JzZXJ2
YWJsZSkpLAorICAgICAgIHN0cmlwS2V5UXVvdGVzKEpTT04uc3RyaW5naWZ5KGNvbXBhcmFibGUo
ZXhwZWN0ZWQpKSkpOworICB9OworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBj
b25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBzdHJlYW0xID0gYXdhaXQgbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pOworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gc3RvcFRyYWNrcyhzdHJlYW0xKSk7CisgICAgY29uc3QgYXVk
aW8xID0gc3RyZWFtMS5nZXRBdWRpb1RyYWNrcygpWzBdOworICAgIHBjMS5hZGRUcmFjayhhdWRp
bzEsIHN0cmVhbTEpOworICAgIGNvbnN0IHZpZGVvMSA9IHN0cmVhbTEuZ2V0VmlkZW9UcmFja3Mo
KVswXTsKKyAgICBwYzEuYWRkVHJhY2sodmlkZW8xLCBzdHJlYW0xKTsKKworICAgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworICAgIGNvbnN0IHN0cmVhbTIgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfSk7CisgICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBzdG9wVHJhY2tzKHN0cmVhbTIpKTsKKyAgICBjb25zdCBhdWRpbzIgPSBz
dHJlYW0yLmdldEF1ZGlvVHJhY2tzKClbMF07CisgICAgcGMyLmFkZFRyYWNrKGF1ZGlvMiwgc3Ry
ZWFtMik7CisgICAgY29uc3QgdmlkZW8yID0gc3RyZWFtMi5nZXRWaWRlb1RyYWNrcygpWzBdOwor
ICAgIHBjMi5hZGRUcmFjayh2aWRlbzIsIHN0cmVhbTIpOworCisgICAgY29uc3Qgb2ZmZXIgPSBh
d2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKworICAgIGxldCB0cmFja0V2ZW50Q29sbGVjdG9yID0g
Y29sbGVjdFRyYWNrRXZlbnRzKHBjMik7CisgICAgbGV0IGFkZHN0cmVhbUV2ZW50Q29sbGVjdG9y
ID0gY29sbGVjdEV2ZW50cyhwYzIsICJhZGRzdHJlYW0iLCBlID0+IHsKKyAgICAgIGhhc1Byb3Bz
KGUsIHtzdHJlYW06IHtpZDogc3RyZWFtMS5pZH19KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoZS5z
dHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgsIDEsICJPbmUgYXVkaW8gdHJhY2siKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoZS5zdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgsIDEsICJP
bmUgdmlkZW8gdHJhY2siKTsKKyAgICB9KTsKKworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcik7CisKKyAgICBsZXQgYWRkc3RyZWFtRXZlbnRzID0gYWRkc3RyZWFtRXZl
bnRDb2xsZWN0b3IuZmluaXNoKCk7CisgICAgYXNzZXJ0X2VxdWFscyhhZGRzdHJlYW1FdmVudHMu
bGVuZ3RoLCAxLCAiU2hvdWxkIGhhdmUgMSBhZGRzdHJlYW0gZXZlbnQiKTsKKworICAgIGxldCB0
cmFja0V2ZW50cyA9IHRyYWNrRXZlbnRDb2xsZWN0b3IuZmluaXNoKCk7CisKKyAgICBoYXNQcm9w
cyh0cmFja0V2ZW50cywKKyAgICAgIFsKKyAgICAgICAge3N0cmVhbXM6IFthZGRzdHJlYW1FdmVu
dHNbMF0uc3RyZWFtXX0sCisgICAgICAgIHtzdHJlYW1zOiBbYWRkc3RyZWFtRXZlbnRzWzBdLnN0
cmVhbV19CisgICAgICBdKTsKKworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9m
ZmVyKTsKKyAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisKKyAg
ICB0cmFja0V2ZW50Q29sbGVjdG9yID0gY29sbGVjdFRyYWNrRXZlbnRzKHBjMSk7CisgICAgYWRk
c3RyZWFtRXZlbnRDb2xsZWN0b3IgPSBjb2xsZWN0RXZlbnRzKHBjMSwgImFkZHN0cmVhbSIsIGUg
PT4geworICAgICAgaGFzUHJvcHMoZSwge3N0cmVhbToge2lkOiBzdHJlYW0yLmlkfX0pOworICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCwgMSwgIk9u
ZSBhdWRpbyB0cmFjayIpOworICAgICAgYXNzZXJ0X2VxdWFscyhlLnN0cmVhbS5nZXRWaWRlb1Ry
YWNrcygpLmxlbmd0aCwgMSwgIk9uZSB2aWRlbyB0cmFjayIpOworICAgIH0pOworCisgICAgYXdh
aXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisgICAgYWRkc3RyZWFtRXZlbnRz
ID0gYWRkc3RyZWFtRXZlbnRDb2xsZWN0b3IuZmluaXNoKCk7CisgICAgYXNzZXJ0X2VxdWFscyhh
ZGRzdHJlYW1FdmVudHMubGVuZ3RoLCAxLCAiU2hvdWxkIGhhdmUgMSBhZGRzdHJlYW0gZXZlbnQi
KTsKKworICAgIHRyYWNrRXZlbnRzID0gdHJhY2tFdmVudENvbGxlY3Rvci5maW5pc2goKTsKKwor
ICAgIGhhc1Byb3BzKHRyYWNrRXZlbnRzLAorICAgICAgWworICAgICAgICB7c3RyZWFtczogW2Fk
ZHN0cmVhbUV2ZW50c1swXS5zdHJlYW1dfSwKKyAgICAgICAge3N0cmVhbXM6IFthZGRzdHJlYW1F
dmVudHNbMF0uc3RyZWFtXX0KKyAgICAgIF0pOworICB9LCJDaGVjayBvbmFkZHN0cmVhbSIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvdzNjLWltcG9ydC5sb2cK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmVhMmQyOGVhZDU5ZDgyODgyYmI0NDdhYzYxNTRkNmJiOTdlM2RlMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL2xlZ2FjeS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIxIEBACitUaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdh
Y3kvUkVBRE1FLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL2xlZ2FjeS9SVENQZWVyQ29ubmVjdGlvbi1hZGRTdHJlYW0uaHR0cHMuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2Fj
eS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5L1JU
Q1J0cFRyYW5zY2VpdmVyLXdpdGgtT2ZmZXJUb1JlY2VpdmUtb3B0aW9ucy5odHRwcy5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbGVnYWN5
L29uYWRkc3RyZWFtLmh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNhbGwuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL25vLW1lZGlhLWNh
bGwuaHRtbAppbmRleCAxMDkzM2ZhZTRjMzk2MTk4YWRlMDkxODk0ZWE4NTM4ZDFhMTc0ZWFmLi5i
MWViYTA4ZDBiNDMzYzYwYzYzMzIxOTljZDM1Mjk0ODQ3MDI4YTBjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRpYS1j
YWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sCkBAIC0xNCw3ICsxNCw3IEBACiAgIDwhLS0gVGhl
c2UgZmlsZXMgYXJlIGluIHBsYWNlIHdoZW4gZXhlY3V0aW5nIG9uIFczQy4gLS0+CiAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0
IHNyYz0iL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorICA8
c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoJ0Nh
biBzZXQgdXAgYSBiYXNpYyBXZWJSVEMgY2FsbCB3aXRoIG5vIGRhdGEuJyk7CiAKQEAgLTExMywx
MCArMTEzLDEyIEBACiAgIC8vIFRoaXMgZnVuY3Rpb24gc3RhcnRzIHRoZSB0ZXN0LgogICB0ZXN0
LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgZ0ZpcnN0Q29ubmVjdGlvbiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbihudWxsKTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdGaXJzdENvbm5lY3Rp
b24uY2xvc2UoKSk7CiAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IG9uSWNl
Q2FuZGlkYXRlVG9GaXJzdDsKICAgICBnRmlyc3RDb25uZWN0aW9uLm9uaWNlY29ubmVjdGlvbnN0
YXRlY2hhbmdlID0gb25JY2VDb25uZWN0aW9uU3RhdGVDaGFuZ2U7CiAKICAgICBnU2Vjb25kQ29u
bmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKKyAgICB0ZXN0LmFkZF9jbGVh
bnVwKCgpID0+IGdTZWNvbmRDb25uZWN0aW9uLmNsb3NlKCkpOwogICAgIGdTZWNvbmRDb25uZWN0
aW9uLm9uaWNlY2FuZGlkYXRlID0gb25JY2VDYW5kaWRhdGVUb1NlY29uZDsKICAgICBnU2Vjb25k
Q29ubmVjdGlvbi5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9IG9uSWNlQ29ubmVjdGlvblN0
YXRlQ2hhbmdlOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwKaW5k
ZXggY2ViNmFiMjU4Y2NiYWFlYmIzOWI2Mzc0MmE0OGEzNzlkYjM1YmM0Ni4uOGI5YTI3NTU0OTcz
NTMxZTg1Mjg0MDZhNTJkMzhiN2M1NTkzMmYzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2FsbC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b21pc2VzLWNhbGwuaHRtbApAQCAtNjYsMTAgKzY2LDEyIEBAIFRoaXMgdGVzdCB1c2VzIGRhdGEg
b25seSwgYW5kIHRodXMgZG9lcyBub3QgcmVxdWlyZSBmYWtlIG1lZGlhIGRldmljZXMuCiAgIC8v
IFRoaXMgZnVuY3Rpb24gc3RhcnRzIHRoZSB0ZXN0LgogICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKSB7
CiAgICAgZ0ZpcnN0Q29ubmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKKyAg
ICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdGaXJzdENvbm5lY3Rpb24uY2xvc2UoKSk7CiAgICAg
Z0ZpcnN0Q29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9GaXJzdDsK
ICAgICBnRmlyc3RDb25uZWN0aW9uLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gb25JY2VD
b25uZWN0aW9uU3RhdGVDaGFuZ2U7CiAKICAgICBnU2Vjb25kQ29ubmVjdGlvbiA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbihudWxsKTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdTZWNvbmRD
b25uZWN0aW9uLmNsb3NlKCkpOwogICAgIGdTZWNvbmRDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRl
ID0gb25JY2VDYW5kaWRhdGVUb1NlY29uZDsKICAgICBnU2Vjb25kQ29ubmVjdGlvbi5vbmljZWNv
bm5lY3Rpb25zdGF0ZWNoYW5nZSA9IG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9idW5kbGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvYnVuZGxlLmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDEwZDVhZjkzZWY0OTM3Nzk2NmQyMTdhOTU5MmU3OGI1
MjgxMTE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvYnVuZGxlLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKworRkFJTCBub3QgbmVnb3RpYXRpbmcgQlVORExFIGNyZWF0ZXMgdHdv
IHNlcGFyYXRlIGljZSBhbmQgZHRscyB0cmFuc3BvcnRzIGFzc2VydF9ub3RfZXF1YWxzOiBnb3Qg
ZGlzYWxsb3dlZCB2YWx1ZSB1bmRlZmluZWQKK0ZBSUwgYnVuZGxlcyBvbiB0aGUgZmlyc3QgdHJh
bnNwb3J0IGFuZCBjbG9zZXMgdGhlIHNlY29uZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2Fs
bG93ZWQgdmFsdWUgdW5kZWZpbmVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2J1bmRsZS5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvYnVuZGxlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFkMWZmOGFjMTA4Mjk3ZGFmZTMz
MzY5NGRkZDExOTRmZjUzZmUyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2J1bmRsZS5odHRwcy5o
dG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBCVU5ETEU8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JU
Q1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJp
Y3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IGNhbGxlciA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlci5jbG9zZSgp
KTsKKyAgY29uc3QgY2FsbGVlID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXRO
b2lzZVN0cmVhbSh7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfSk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7
CisgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5hZGRUcmFjayh0
cmFjaywgc3RyZWFtKSk7CisKKyAgbGV0IG1ldGFkYXRhVG9CZUxvYWRlZDsKKyAgY2FsbGVlLm9u
dHJhY2sgPSAoZSkgPT4geworICAgIGNvbnN0IHN0cmVhbSA9IGUuc3RyZWFtc1swXTsKKyAgICBj
b25zdCB2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICB2LmF1dG9wbGF5
ID0gdHJ1ZTsKKyAgICB2LnNyY09iamVjdCA9IHN0cmVhbTsKKyAgICB2LmlkID0gc3RyZWFtLmlk
CisgICAgbWV0YWRhdGFUb0JlTG9hZGVkID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAg
ICAgIHYuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCAoKSA9PiB7CisgICAgICAg
IHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9OworICBleGNoYW5nZUljZUNhbmRp
ZGF0ZXMoY2FsbGVyLCBjYWxsZWUpOworICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVh
dGVPZmZlcigpOworICAvLyByZW1vdmUgdGhlIGE9Z3JvdXA6QlVORExFIGZyb20gdGhlIFNEUCB3
aGVuIHNpZ25hbGluZy4KKyAgY29uc3Qgc2RwID0gb2ZmZXIuc2RwLnJlcGxhY2UoL2E9Z3JvdXA6
QlVORExFICguKilcclxuLywgJycpOworICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRp
b24oe3R5cGU6ICdvZmZlcicsIHNkcH0pOworICBhd2FpdCBjYWxsZXIuc2V0TG9jYWxEZXNjcmlw
dGlvbihvZmZlcik7CisKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dl
cigpOworICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdh
aXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBhd2FpdCBtZXRhZGF0
YVRvQmVMb2FkZWQ7CisgIGNvbnN0IHNlbmRlcnMgPSBjYWxsZXIuZ2V0U2VuZGVycygpOworICBj
b25zdCBkdGxzVHJhbnNwb3J0cyA9IHNlbmRlcnMubWFwKHMgPT4gcy50cmFuc3BvcnQpOworICBh
c3NlcnRfZXF1YWxzKGR0bHNUcmFuc3BvcnRzLmxlbmd0aCwgMik7CisgIGFzc2VydF9ub3RfZXF1
YWxzKGR0bHNUcmFuc3BvcnRzWzBdLCBkdGxzVHJhbnNwb3J0c1sxXSk7CisKKyAgY29uc3QgaWNl
VHJhbnNwb3J0cyA9IGR0bHNUcmFuc3BvcnRzLm1hcCh0ID0+IHQuaWNlVHJhbnNwb3J0KTsKKyAg
YXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnRzLmxlbmd0aCwgMik7CisgIGFzc2VydF9ub3RfZXF1
YWxzKGljZVRyYW5zcG9ydHNbMF0sIGljZVRyYW5zcG9ydHNbMV0pOworfSwgJ25vdCBuZWdvdGlh
dGluZyBCVU5ETEUgY3JlYXRlcyB0d28gc2VwYXJhdGUgaWNlIGFuZCBkdGxzIHRyYW5zcG9ydHMn
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBjYWxsZXIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7
CisgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9p
c2VTdHJlYW0oe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwor
ICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiBjYWxsZXIuYWRkVHJhY2sodHJh
Y2ssIHN0cmVhbSkpOworCisgIGxldCBtZXRhZGF0YVRvQmVMb2FkZWQ7CisgIGNhbGxlZS5vbnRy
YWNrID0gKGUpID0+IHsKKyAgICBjb25zdCBzdHJlYW0gPSBlLnN0cmVhbXNbMF07CisgICAgY29u
c3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgdi5hdXRvcGxheSA9
IHRydWU7CisgICAgdi5zcmNPYmplY3QgPSBzdHJlYW07CisgICAgdi5pZCA9IHN0cmVhbS5pZAor
ICAgIG1ldGFkYXRhVG9CZUxvYWRlZCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAg
ICB2LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgKCkgPT4geworICAgICAgICBy
ZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRh
dGVzKGNhbGxlciwgY2FsbGVlKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRl
T2ZmZXIoKTsKKyAgYXdhaXQgY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAg
YXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBzZWNvbmRU
cmFuc3BvcnQgPSBjYWxsZXIuZ2V0U2VuZGVycygpWzFdLnRyYW5zcG9ydDsgLy8gU2F2ZSBhIHJl
ZmVyZW5jZSB0byB0aGlzIHRyYW5zcG9ydC4KKworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBjYWxs
ZWUuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IGNhbGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihh
bnN3ZXIpOworICBhd2FpdCBjYWxsZWUuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworCisg
IGF3YWl0IG1ldGFkYXRhVG9CZUxvYWRlZDsKKyAgY29uc3Qgc2VuZGVycyA9IGNhbGxlci5nZXRT
ZW5kZXJzKCk7CisgIGNvbnN0IGR0bHNUcmFuc3BvcnRzID0gc2VuZGVycy5tYXAocyA9PiBzLnRy
YW5zcG9ydCk7CisgIGFzc2VydF9lcXVhbHMoZHRsc1RyYW5zcG9ydHMubGVuZ3RoLCAyKTsKKyAg
YXNzZXJ0X2VxdWFscyhkdGxzVHJhbnNwb3J0c1swXSwgZHRsc1RyYW5zcG9ydHNbMV0pOworICBh
c3NlcnRfbm90X2VxdWFscyhkdGxzVHJhbnNwb3J0c1sxXSwgc2Vjb25kVHJhbnNwb3J0KTsKKyAg
YXNzZXJ0X2VxdWFscyhzZWNvbmRUcmFuc3BvcnQuc3RhdGUsICdjbG9zZWQnKTsKK30sICdidW5k
bGVzIG9uIHRoZSBmaXJzdCB0cmFuc3BvcnQgYW5kIGNsb3NlcyB0aGUgc2Vjb25kJyk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFlZDc5NTBiNzQ4ODZhN2ZmMTE0M2FmY2MwNTlmMmYxZmQ1OWU4MjMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NyBAQAorCitQQVNTIFR3byB3YXkgSUNFIGV4Y2hhbmdlIHdvcmtzIAorRkFJTCBBZGRpbmcgb25s
eSBjYWxsZXIgLT4gY2FsbGVlIGNhbmRpZGF0ZXMgZ2l2ZXMgYSBjb25uZWN0aW9uIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMS5zY3RwLnRyYW5zcG9y
dCcpIgorRkFJTCBBZGRpbmcgb25seSBjYWxsZWUgLT4gY2FsbGVyIGNhbmRpZGF0ZXMgZ2l2ZXMg
YSBjb25uZWN0aW9uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ3BjMi5zY3RwLnRyYW5zcG9ydCcpIgorRkFJTCBBZGRpbmcgY2FsbGVlIC0+IGNhbGxlciBj
YW5kaWRhdGVzIGZyb20gZW5kLW9mLWNhbmRpZGF0ZXMgZ2l2ZXMgYSBjb25uZWN0aW9uIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMi5zY3RwLnRyYW5z
cG9ydCcpIgorRkFJTCBFeHBsaWNpdCBvZmZlci9hbnN3ZXIgZXhjaGFuZ2UgZ2l2ZXMgYSBjb25u
ZWN0aW9uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3Bj
MS5zY3RwLnRyYW5zcG9ydCcpIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2Uu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUzMmJjNGQwZDEzZDcyMTcwZjllNTIxY2JlZGE3ZDJlNjU2ZTMxN2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDIwOCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkNhbmRpZGF0ZSBleGNoYW5n
ZTwvdGl0bGU+Cis8bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25nPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JU
Q1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIGljZUdhdGhlcmluZ0NvbXBsZXRlV2FpdGVyKHBjKSB7CisgIGNv
bnN0IHdhaXRlciA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgY29uc3QgZXZlbnRI
YW5kbGVyID0gKCkgPT4geworICAgICAgaWYgKHBjLmljZUdhdGhlcmluZ1N0YXRlID09ICdjb21w
bGV0ZScpIHsKKyAgICAgICAgcGMucmVtb3ZlRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3Rh
dGVjaGFuZ2UnLCBldmVudEhhbmRsZXIsIGZhbHNlKTsKKyAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgfQorICAgIH07CisgICAgaWYgKHBjLmljZUdhdGhlcmluZ1N0YXRlID09ICdjb21wbGV0ZScp
IHsKKyAgICAgIHJlc29sdmUoKTsKKyAgICB9IGVsc2UgeworICAgICAgcGMuYWRkRXZlbnRMaXN0
ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCBldmVudEhhbmRsZXIsIGZhbHNlKTsKKyAg
ICB9CisgIH0pOworICByZXR1cm4gd2FpdGVyOworfQorCitjbGFzcyBTdGF0ZUxvZ2dlciB7Cisg
IGNvbnN0cnVjdG9yKHNvdXJjZSwgZXZlbnRuYW1lLCBmaWVsZCkgeworICAgIHNvdXJjZS5hZGRF
dmVudExpc3RlbmVyKGV2ZW50bmFtZSwgZXZlbnQgPT4geworICAgICAgdGhpcy5ldmVudHMucHVz
aChzb3VyY2VbZmllbGRdKTsKKyAgICB9KTsKKyAgICB0aGlzLmV2ZW50cyA9IFtzb3VyY2VbZmll
bGRdXTsKKyAgfQorfQorCitjbGFzcyBJY2VTdGF0ZUxvZ2dlciBleHRlbmRzIFN0YXRlTG9nZ2Vy
IHsKKyAgY29uc3RydWN0b3Ioc291cmNlKSB7CisgICAgc3VwZXIoc291cmNlLCAnaWNlY29ubmVj
dGlvbnN0YXRlY2hhbmdlJywgJ2ljZUNvbm5lY3Rpb25TdGF0ZScpOworICB9Cit9CisKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2Uo
KSk7CisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnZGF0YWNoYW5uZWwnKTsKKyAgcGMxSWNlU3Rh
dGVzID0gbmV3IEljZVN0YXRlTG9nZ2VyKHBjMSk7CisgIHBjMkljZVN0YXRlcyA9IG5ldyBJY2VT
dGF0ZUxvZ2dlcihwYzEpOworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBh
d2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgLy8gTm90ZSAtIGl0J3MgYmVl
biBjbGFpbWVkIHRoYXQgdGhpcyBzdGF0ZSBzb21ldGltZXMganVtcHMgc3RyYWlnaHQKKyAgLy8g
dG8gImNvbXBsZXRlZCIuIElmIHNvLCB0aGlzIHRlc3Qgc2hvdWxkIGJlIGZsYWt5LgorICBhd2Fp
dCB3YWl0Rm9ySWNlU3RhdGVDaGFuZ2UocGMxLCBbJ2Nvbm5lY3RlZCddKTsKKyAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhwYzFJY2VTdGF0ZXMuZXZlbnRzLCBbJ25ldycsICdjaGVja2luZycsICdjb25u
ZWN0ZWQnXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMocGMySWNlU3RhdGVzLmV2ZW50cywgWydu
ZXcnLCAnY2hlY2tpbmcnLCAnY29ubmVjdGVkJ10pOworfSwgJ1R3byB3YXkgSUNFIGV4Y2hhbmdl
IHdvcmtzJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIHBjMUljZVN0YXRlcyA9IG5ldyBJY2VTdGF0ZUxvZ2dl
cihwYzEpOworICBwYzJJY2VTdGF0ZXMgPSBuZXcgSWNlU3RhdGVMb2dnZXIocGMxKTsKKyAgbGV0
IGNhbmRpZGF0ZXMgPSBbXTsKKyAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdkYXRhY2hhbm5lbCcp
OworICBwYzEub25pY2VjYW5kaWRhdGUgPSBlID0+IHsKKyAgICBjYW5kaWRhdGVzLnB1c2goZS5j
YW5kaWRhdGUpOworICB9CisgIC8vIENhbmRpZGF0ZXMgZnJvbSBQQzIgYXJlIG5vdCBkZWxpdmVy
ZWQgdG8gcGMxLCBzbyBwYzEgd2lsbCB1c2UKKyAgLy8gcGVlci1yZWZsZXhpdmUgY2FuZGlkYXRl
cy4KKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgIGNvbnN0IHdhaXRl
ciA9IGljZUdhdGhlcmluZ0NvbXBsZXRlV2FpdGVyKHBjMSk7CisgIGF3YWl0IHdhaXRlcjsKKyAg
Zm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykgeworICAgIGlmIChjYW5kaWRhdGUp
IHsKKyAgICAgIHBjMi5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKKyAgICB9CisgIH0KKyAg
YXdhaXQgUHJvbWlzZS5hbGwoW3dhaXRGb3JJY2VTdGF0ZUNoYW5nZShwYzEsIFsnY29ubmVjdGVk
JywgJ2NvbXBsZXRlZCddKSwKKyAgICAgICAgICAgICAgICAgICAgIHdhaXRGb3JJY2VTdGF0ZUNo
YW5nZShwYzIsIFsnY29ubmVjdGVkJywgJ2NvbXBsZXRlZCddKV0pOworICBjb25zdCBjYW5kaWRh
dGVfcGFpciA9IHBjMS5zY3RwLnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQuZ2V0U2VsZWN0ZWRDYW5k
aWRhdGVQYWlyKCk7CisgIGFzc2VydF9lcXVhbHMoY2FuZGlkYXRlX3BhaXIubG9jYWwudHlwZSwg
J2hvc3QnKTsKKyAgYXNzZXJ0X2VxdWFscyhjYW5kaWRhdGVfcGFpci5yZW1vdGUudHlwZSwgJ3By
Zmx4Jyk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMocGMxSWNlU3RhdGVzLmV2ZW50cywgWyduZXcn
LCAnY2hlY2tpbmcnLCAnY29ubmVjdGVkJ10pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBjMklj
ZVN0YXRlcy5ldmVudHMsIFsnbmV3JywgJ2NoZWNraW5nJywgJ2Nvbm5lY3RlZCddKTsKK30sICdB
ZGRpbmcgb25seSBjYWxsZXIgLT4gY2FsbGVlIGNhbmRpZGF0ZXMgZ2l2ZXMgYSBjb25uZWN0aW9u
Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7CisgIHBjMUljZVN0YXRlcyA9IG5ldyBJY2VTdGF0ZUxvZ2dlcihwYzEp
OworICBwYzJJY2VTdGF0ZXMgPSBuZXcgSWNlU3RhdGVMb2dnZXIocGMxKTsKKyAgbGV0IGNhbmRp
ZGF0ZXMgPSBbXTsKKyAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdkYXRhY2hhbm5lbCcpOworICBw
YzIub25pY2VjYW5kaWRhdGUgPSBlID0+IHsKKyAgICBjYW5kaWRhdGVzLnB1c2goZS5jYW5kaWRh
dGUpOworICB9CisgIC8vIENhbmRpZGF0ZXMgZnJvbSBwYzEgYXJlIG5vdCBkZWxpdmVyZWQgdG8g
cGMyLiAgc28gcGMyIHdpbGwgdXNlCisgIC8vIHBlZXItcmVmbGV4aXZlIGNhbmRpZGF0ZXMuCisg
IGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBjb25zdCB3YWl0ZXIgPSBp
Y2VHYXRoZXJpbmdDb21wbGV0ZVdhaXRlcihwYzIpOworICBhd2FpdCB3YWl0ZXI7CisgIGZvciAo
Y29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHsKKyAgICBpZiAoY2FuZGlkYXRlKSB7Cisg
ICAgICBwYzEuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CisgICAgfQorICB9CisgIGF3YWl0
IFByb21pc2UuYWxsKFt3YWl0Rm9ySWNlU3RhdGVDaGFuZ2UocGMxLCBbJ2Nvbm5lY3RlZCcsICdj
b21wbGV0ZWQnXSksCisgICAgICAgICAgICAgICAgICAgICB3YWl0Rm9ySWNlU3RhdGVDaGFuZ2Uo
cGMyLCBbJ2Nvbm5lY3RlZCcsICdjb21wbGV0ZWQnXSldKTsKKyAgY29uc3QgY2FuZGlkYXRlX3Bh
aXIgPSBwYzIuc2N0cC50cmFuc3BvcnQuaWNlVHJhbnNwb3J0LmdldFNlbGVjdGVkQ2FuZGlkYXRl
UGFpcigpOworICBhc3NlcnRfZXF1YWxzKGNhbmRpZGF0ZV9wYWlyLmxvY2FsLnR5cGUsICdob3N0
Jyk7CisgIGFzc2VydF9lcXVhbHMoY2FuZGlkYXRlX3BhaXIucmVtb3RlLnR5cGUsICdwcmZseCcp
OworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBjMUljZVN0YXRlcy5ldmVudHMsIFsnbmV3JywgJ2No
ZWNraW5nJywgJ2Nvbm5lY3RlZCddKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhwYzJJY2VTdGF0
ZXMuZXZlbnRzLCBbJ25ldycsICdjaGVja2luZycsICdjb25uZWN0ZWQnXSk7Cit9LCAnQWRkaW5n
IG9ubHkgY2FsbGVlIC0+IGNhbGxlciBjYW5kaWRhdGVzIGdpdmVzIGEgY29ubmVjdGlvbicpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworICBwYzFJY2VTdGF0ZXMgPSBuZXcgSWNlU3RhdGVMb2dnZXIocGMxKTsKKyAg
cGMySWNlU3RhdGVzID0gbmV3IEljZVN0YXRlTG9nZ2VyKHBjMSk7CisgIGxldCBwYzJUb1BjMUNh
bmRpZGF0ZXMgPSBbXTsKKyAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdkYXRhY2hhbm5lbCcpOwor
ICBwYzIub25pY2VjYW5kaWRhdGUgPSBlID0+IHsKKyAgICBwYzJUb1BjMUNhbmRpZGF0ZXMucHVz
aChlLmNhbmRpZGF0ZSk7CisgICAgLy8gVGhpcyBwYXJ0aWN1bGFyIHRlc3QgdmVyaWZpZXMgdGhh
dCBjYW5kaWRhdGVzIHdvcmsKKyAgICAvLyBwcm9wZXJseSBpZiBhZGRlZCBmcm9tIHRoZSBwYzIg
b25pY2VjYW5kaWRhdGUgZXZlbnQuCisgICAgaWYgKCFlLmNhbmRpZGF0ZSkgeworICAgICAgZm9y
IChjb25zdCBjYW5kaWRhdGUgb2YgcGMyVG9QYzFDYW5kaWRhdGVzKSB7CisgICAgICAgIGlmIChj
YW5kaWRhdGUpIHsKKyAgICAgICAgICBwYzEuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7Cisg
ICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgIH0KKyAgLy8gQ2FuZGlkYXRlcyBmcm9tIHxwYzF8
IGFyZSBub3QgZGVsaXZlcmVkIHRvIHxwYzJ8LiB8cGMyfCB3aWxsIHVzZQorICAvLyBwZWVyLXJl
ZmxleGl2ZSBjYW5kaWRhdGVzLgorICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMy
KTsKKyAgYXdhaXQgUHJvbWlzZS5hbGwoW3dhaXRGb3JJY2VTdGF0ZUNoYW5nZShwYzEsIFsnY29u
bmVjdGVkJywgJ2NvbXBsZXRlZCddKSwKKyAgICAgICAgICAgICAgICAgICAgIHdhaXRGb3JJY2VT
dGF0ZUNoYW5nZShwYzIsIFsnY29ubmVjdGVkJywgJ2NvbXBsZXRlZCddKV0pOworICBjb25zdCBj
YW5kaWRhdGVfcGFpciA9IHBjMi5zY3RwLnRyYW5zcG9ydC5pY2VUcmFuc3BvcnQuZ2V0U2VsZWN0
ZWRDYW5kaWRhdGVQYWlyKCk7CisgIGFzc2VydF9lcXVhbHMoY2FuZGlkYXRlX3BhaXIubG9jYWwu
dHlwZSwgJ2hvc3QnKTsKKyAgYXNzZXJ0X2VxdWFscyhjYW5kaWRhdGVfcGFpci5yZW1vdGUudHlw
ZSwgJ3ByZmx4Jyk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMocGMxSWNlU3RhdGVzLmV2ZW50cywg
WyduZXcnLCAnY2hlY2tpbmcnLCAnY29ubmVjdGVkJ10pOworICBhc3NlcnRfYXJyYXlfZXF1YWxz
KHBjMkljZVN0YXRlcy5ldmVudHMsIFsnbmV3JywgJ2NoZWNraW5nJywgJ2Nvbm5lY3RlZCddKTsK
K30sICdBZGRpbmcgY2FsbGVlIC0+IGNhbGxlciBjYW5kaWRhdGVzIGZyb20gZW5kLW9mLWNhbmRp
ZGF0ZXMgZ2l2ZXMgYSBjb25uZWN0aW9uJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIHBjMUljZVN0YXRlcyA9
IG5ldyBJY2VTdGF0ZUxvZ2dlcihwYzEpOworICBwYzJJY2VTdGF0ZXMgPSBuZXcgSWNlU3RhdGVM
b2dnZXIocGMxKTsKKyAgbGV0IHBjMVRvUGMyQ2FuZGlkYXRlcyA9IFtdOworICBsZXQgcGMyVG9Q
YzFDYW5kaWRhdGVzID0gW107CisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnZGF0YWNoYW5uZWwn
KTsKKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7CisgICAgcGMxVG9QYzJDYW5kaWRhdGVz
LnB1c2goZS5jYW5kaWRhdGUpOworICB9CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gewor
ICAgIHBjMlRvUGMxQ2FuZGlkYXRlcy5wdXNoKGUuY2FuZGlkYXRlKTsKKyAgfQorICBjb25zdCBv
ZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworICBhd2FpdCBQcm9taXNlLmFsbChbcGMx
LnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpLAorICAgICAgICAgICAgICAgICAgICAgcGMyLnNl
dFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKV0pOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzIu
Y3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IGljZUdhdGhlcmluZ0NvbXBsZXRlV2FpdGVyKHBjMSk7
CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikudGhlbigoKSA9PiB7Cisg
ICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgcGMxVG9QYzJDYW5kaWRhdGVzKSB7CisgICAgICBp
ZiAoY2FuZGlkYXRlKSB7CisgICAgICAgIHBjMi5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsK
KyAgICAgIH0KKyAgICB9CisgIH0pOworICBhd2FpdCBpY2VHYXRoZXJpbmdDb21wbGV0ZVdhaXRl
cihwYzIpOworICBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKS50aGVuKGFzeW5jICgp
ID0+IHsKKyAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBwYzJUb1BjMUNhbmRpZGF0ZXMpIHsK
KyAgICAgIGlmIChjYW5kaWRhdGUpIHsKKyAgICAgICAgYXdhaXQgcGMxLmFkZEljZUNhbmRpZGF0
ZShjYW5kaWRhdGUpOworICAgICAgfQorICAgIH0KKyAgfSk7CisgIGF3YWl0IFByb21pc2UuYWxs
KFt3YWl0Rm9ySWNlU3RhdGVDaGFuZ2UocGMxLCBbJ2Nvbm5lY3RlZCcsICdjb21wbGV0ZWQnXSks
CisgICAgICAgICAgICAgICAgICAgICB3YWl0Rm9ySWNlU3RhdGVDaGFuZ2UocGMyLCBbJ2Nvbm5l
Y3RlZCcsICdjb21wbGV0ZWQnXSldKTsKKyAgY29uc3QgY2FuZGlkYXRlX3BhaXIgPQorICAgICAg
ICBwYzEuc2N0cC50cmFuc3BvcnQuaWNlVHJhbnNwb3J0LmdldFNlbGVjdGVkQ2FuZGlkYXRlUGFp
cigpOworICBhc3NlcnRfZXF1YWxzKGNhbmRpZGF0ZV9wYWlyLmxvY2FsLnR5cGUsICdob3N0Jyk7
CisgIC8vIFdoZW4gd2Ugc3VwcGx5IHJlbW90ZSBjYW5kaWRhdGVzLCB3ZSBleHBlY3QgYSBqdW1w
IHRvIHRoZSAnaG9zdCcgY2FuZGlkYXRlLAorICAvLyBidXQgaXQgbWlnaHQgYWxzbyByZW1haW4g
YXMgJ3ByZmx4Jy4KKyAgYXNzZXJ0X3RydWUoY2FuZGlkYXRlX3BhaXIucmVtb3RlLnR5cGUgPT0g
J2hvc3QnIHx8CisgICAgICAgICAgICAgIGNhbmRpZGF0ZV9wYWlyLnJlbW90ZS50eXBlID09ICdw
cmZseCcpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBjMUljZVN0YXRlcy5ldmVudHMsIFsnbmV3
JywgJ2NoZWNraW5nJywgJ2Nvbm5lY3RlZCddKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhwYzJJ
Y2VTdGF0ZXMuZXZlbnRzLCBbJ25ldycsICdjaGVja2luZycsICdjb25uZWN0ZWQnXSk7Cit9LCAn
RXhwbGljaXQgb2ZmZXIvYW5zd2VyIGV4Y2hhbmdlIGdpdmVzIGEgY29ubmVjdGlvbicpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NyeXB0by1zdWl0ZS5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMyMDRjMDVlYmFjNjdiYTEyMmY1ZDQ0MTllNDE3YmYyNWRmMTVkMTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKKworRkFJTCB0bHNWZXJzaW9uIGlzIGFjY2VwdGFibGUgb24gZGF0YS1vbmx5IHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMS5zY3RwLnRy
YW5zcG9ydCcpIgorRkFJTCB0bHNWZXJzaW9uIGlzIGFjY2VwdGFibGUgb24gdmlkZW8tb25seSBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0cmFuc3BvcnQu
c3RhdGUnKSIKK0ZBSUwgZHRsc0NpcGhlciBpcyBhY2NlcHRhYmxlIG9uIGRhdGEtb25seSBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdwYzEuc2N0cC50cmFu
c3BvcnQnKSIKK0ZBSUwgZHRsc0NpcGhlciBpcyBhY2NlcHRhYmxlIG9uIHZpZGVvLW9ubHkgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndHJhbnNwb3J0LnN0
YXRlJykiCitGQUlMIHNydHBDaXBoZXIgaXMgYWNjZXB0YWJsZSBvbiBkYXRhLW9ubHkgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAncGMxLnNjdHAudHJhbnNw
b3J0JykiCitGQUlMIHNydHBDaXBoZXIgaXMgYWNjZXB0YWJsZSBvbiB2aWRlby1vbmx5IHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RyYW5zcG9ydC5zdGF0
ZScpIgorRkFJTCB0bHNHcm91cCBpcyBhY2NlcHRhYmxlIG9uIGRhdGEtb25seSBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdwYzEuc2N0cC50cmFuc3BvcnQn
KSIKK0ZBSUwgdGxzR3JvdXAgaXMgYWNjZXB0YWJsZSBvbiB2aWRlby1vbmx5IHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RyYW5zcG9ydC5zdGF0ZScpIgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NyeXB0by1zdWl0
ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxYjYwNTYxYTE0MGQyMjM4ZjBmMGEyZDc5YjA3NTlj
NzFkNzU0ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDg1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8
dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLmNyZWF0ZU9mZmVyPC90aXRsZT4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL1JUQ1N0YXRzLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJp
Y3QnOworCisvLyBkcmFmdC1pZXRmLXJ0Y3dlYi1zZWN1cml0eS0yMCBzZWN0aW9uIDYuNQorLy8K
Ky8vIEFsbCBJbXBsZW1lbnRhdGlvbnMgTVVTVCBzdXBwb3J0IERUTFMgMS4yIHdpdGggdGhlCisv
LyBUTFNfRUNESEVfRUNEU0FfV0lUSF9BRVNfMTI4X0dDTV9TSEEyNTYgY2lwaGVyIHN1aXRlIGFu
ZCB0aGUgUC0yNTYKKy8vIGN1cnZlIFtGSVBTMTg2XS4KKy8vICAgLi4uLi4uLiAgVGhlIERUTFMt
U1JUUCBwcm90ZWN0aW9uIHByb2ZpbGUKKy8vIFNSVFBfQUVTMTI4X0NNX0hNQUNfU0hBMV84MCBN
VVNUIGJlIHN1cHBvcnRlZCBmb3IgU1JUUC4KKy8vIEltcGxlbWVudGF0aW9ucyBNVVNUIGZhdm9y
IGNpcGhlciBzdWl0ZXMgd2hpY2ggc3VwcG9ydCAoUGVyZmVjdAorLy8gRm9yd2FyZCBTZWNyZWN5
KSBQRlMgb3ZlciBub24tUEZTIGNpcGhlciBzdWl0ZXMgYW5kIFNIT1VMRCBmYXZvciBBRUFECisv
LyBvdmVyIG5vbi1BRUFEIGNpcGhlciBzdWl0ZXMuCisKK2NvbnN0IGFjY2VwdGFibGVUbHNWZXJz
aW9ucyA9IG5ldyBTZXQoWworICAnRkVGRCcsIC8vIERUTFMgMS4yIC0gUkZDIDY0Mzcgc2VjdGlv
biA0LjEKKyAgJzAzMDQnLCAvLyBUTFMgMS4zIC0gUkZDIDg0NDYgc2VjdGlvbiA1LjEKK10pOwor
Citjb25zdCBhY2NlcHRhYmxlRHRsc0NpcGhlcnN1aXRlcyA9IG5ldyBTZXQoWworICAnVExTX0VD
REhFX0VDRFNBX1dJVEhfQUVTXzEyOF9HQ01fU0hBMjU2JywKK10pOworCitjb25zdCBhY2NlcHRh
YmxlU3J0cENpcGhlcnN1aXRlcyA9IG5ldyBTZXQoWworICAnU1JUUF9BRVMxMjhfQ01fSE1BQ19T
SEExXzgwJywKKyAgJ0FFU19DTV8xMjhfSE1BQ19TSEExXzgwJywKK10pOworCitjb25zdCBhY2Nl
cHRhYmxlVGxzR3JvdXBzID0gbmV3IFNldChbCisgICdQLTI1NicsCitdKTsKKworY29uc3QgYWNj
ZXB0YWJsZVZhbHVlcyA9IHsKKyAgJ3Rsc1ZlcnNpb24nOiBhY2NlcHRhYmxlVGxzVmVyc2lvbnMs
CisgICdkdGxzQ2lwaGVyJzogYWNjZXB0YWJsZUR0bHNDaXBoZXJzdWl0ZXMsCisgICdzcnRwQ2lw
aGVyJzogYWNjZXB0YWJsZVNydHBDaXBoZXJzdWl0ZXMsCisgICd0bHNHcm91cCc6IGFjY2VwdGFi
bGVUbHNHcm91cHMsCit9OworCitmdW5jdGlvbiB2ZXJpZnlTdGF0KG5hbWUsIHRyYW5zcG9ydFN0
YXRzKSB7CisgIGFzc2VydF90cnVlKHR5cGVvZiB0cmFuc3BvcnRTdGF0cyAhPT0gJ3VuZGVmaW5l
ZCcpOworICBhc3NlcnRfdHJ1ZShuYW1lIGluIHRyYW5zcG9ydFN0YXRzLCAnVmFsdWUgcHJlc2Vu
dDonKTsKKyAgYXNzZXJ0X3RydWUoYWNjZXB0YWJsZVZhbHVlc1tuYW1lXS5oYXModHJhbnNwb3J0
U3RhdHNbbmFtZV0pKTsKK30KKworZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGFjY2Vw
dGFibGVWYWx1ZXMpKSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBwYzEuY3JlYXRlRGF0YUNo
YW5uZWwoJ2ZvbycpOworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgICAg
YXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgYXdhaXQgd2FpdEZvclN0
YXRlKHBjMS5zY3RwLnRyYW5zcG9ydCwgJ2Nvbm5lY3RlZCcpOworICAgIGNvbnN0IHN0YXRzUmVw
b3J0ID0gYXdhaXQgcGMxLmdldFN0YXRzKCk7CisgICAgY29uc3QgdHJhbnNwb3J0U3RhdHMgPSBm
aW5kU3RhdHNGcm9tUmVwb3J0KHN0YXRzUmVwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0cyA9PiBzdGF0cy50eXBlID09PSAndHJhbnNwb3J0
JykKKyAgICB2ZXJpZnlTdGF0KG5hbWUsIHRyYW5zcG9ydFN0YXRzKTsKKyAgfSwgbmFtZSArICcg
aXMgYWNjZXB0YWJsZSBvbiBkYXRhLW9ubHknKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzEuY2xvc2UoKSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgICAg
Y29uc3QgdHJhbnNjZWl2ZXIgPSBwYzEuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CisKKyAgICBl
eGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJB
bnN3ZXIocGMxLCBwYzIpOworICAgIGF3YWl0IHdhaXRGb3JTdGF0ZSh0cmFuc2NlaXZlci5zZW5k
ZXIudHJhbnNwb3J0LCAnY29ubmVjdGVkJyk7CisgICAgY29uc3Qgc3RhdHNSZXBvcnQgPSBhd2Fp
dCBwYzEuZ2V0U3RhdHMoKTsKKyAgICBjb25zdCB0cmFuc3BvcnRTdGF0cyA9IGZpbmRTdGF0c0Zy
b21SZXBvcnQoc3RhdHNSZXBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRzID0+IHN0YXRzLnR5cGUgPT09ICd0cmFuc3BvcnQnKQorICAgIHZl
cmlmeVN0YXQobmFtZSwgdHJhbnNwb3J0U3RhdHMpOworICB9LCBuYW1lICsgJyBpcyBhY2NlcHRh
YmxlIG9uIHZpZGVvLW9ubHknKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1m
aW5nZXJwcmludC12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJpbnQt
dmFsaWRhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ViYjdhYWNjZDJmYjBhODMxYjll
MzE4Y2UxMjMyZDI1NWJjN2U4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJp
bnQtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK0hhcm5lc3MgRXJy
b3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIENvbm5lY3Rpb24gZmFpbHMg
aWYgb25lIHNpZGUgcHJvdmlkZXMgYSB3cm9uZyBEVExTIGZpbmdlcnByaW50IFRlc3QgdGltZWQg
b3V0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2R0bHMtZmluZ2VycHJpbnQtdmFsaWRhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvZHRscy1maW5nZXJwcmludC12YWxpZGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRkYzg0ODhh
ZTU3MjEzYzliNTgxMDYzMzQzN2JjYTI3ZTRlZTlmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2R0
bHMtZmluZ2VycHJpbnQtdmFsaWRhdGlvbi5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5EVExTIGZpbmdlcnByaW50IHZhbGlkYXRp
b248L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKKy8vIFRlc3RzIHRoYXQgYW4gaW52YWxp
ZCBmaW5nZXJwcmludCBsZWFkcyB0byBhIGNvbm5lY3Rpb25TdGF0ZSAnZmFpbGVkJy4KK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2Uo
KSk7CisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgnZGF0YWNoYW5uZWwnKTsKKyAgZXhjaGFuZ2VJ
Y2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRl
T2ZmZXIoKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXdh
aXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3ZXIgPSBhd2Fp
dCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihu
ZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHsKKyAgICB0eXBlOiBhbnN3ZXIudHlwZSwKKyAgICBz
ZHA6IGFuc3dlci5zZHAucmVwbGFjZSgvYT1maW5nZXJwcmludDpzaGEtMjU2IC4qL2csCisgICAg
ICAnYT1maW5nZXJwcmludDpzaGEtMjU2IDAwOjAwOjAwOjAwOjAwOjAwOjAwOjAwOjAwOjAwOjAw
OjAwOjAwOicgKworICAgICAgJzAwOjAwOjAwOjAwOjAwOjAwOjAwOjAwOjAwOjAwOjAwOjAwOjAw
OjAwOjAwOjAwOjAwOjAwOjAwJyksCisgIH0pKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3Jp
cHRpb24oYW5zd2VyKTsKKworICBhd2FpdCB3YWl0Rm9yQ29ubmVjdGlvblN0YXRlQ2hhbmdlKHBj
MSwgWydmYWlsZWQnXSk7CisgIGF3YWl0IHdhaXRGb3JDb25uZWN0aW9uU3RhdGVDaGFuZ2UocGMy
LCBbJ2ZhaWxlZCddKTsKK30sICdDb25uZWN0aW9uIGZhaWxzIGlmIG9uZSBzaWRlIHByb3ZpZGVz
IGEgd3JvbmcgRFRMUyBmaW5nZXJwcmludCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9pY2Utc3RhdGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXN0
YXRlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2FiODM2ZGUyYTQ2NDIyYmIxYWZl
ODcwNDNjYjA3MTRlMjU0MGExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXN0YXRlLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBQQyBzaG91bGQgZW50ZXIgY29u
bmVjdGVkIChvciBjb21wbGV0ZWQpIHN0YXRlIHdoZW4gY2FuZGlkYXRlcyBhcmUgc2VudCAKK1BB
U1MgUEMgc2hvdWxkIGdlbmVyYXRlIG9mZmVyIHdpdGggYT1pY2Utb3B0aW9uczp0cmlja2xlIAor
RkFJTCBQQyBzaG91bGQgZW50ZXIgZGlzY29ubmVjdGVkIHN0YXRlIHdoZW4gYSBmYWlsaW5nIGNh
bmRpZGF0ZSBpcyBzZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiAiVW5leHBlY3RlZCBzdGF0ZSBlbmNvdW50ZXJlZDogZmFpbGVkIgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9pY2Utc3RhdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2ljZS1zdGF0ZS5odHRwcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJlY2NlNTk1MDliNzkyZGQ1ZDYzNTcxYmZmMDY1ZDkzMTg1Y2ExZmEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm90b2NvbC9pY2Utc3RhdGUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDEzMCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyI+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gRmFpbGVkIFN0YXRlPC90
aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLy8gVGVzdHMgZm9yIGNvcnJlY3QgYmVoYXZpb3Ig
b2YgSUNFIHN0YXRlLgorCisvLyBTRFAgY29waWVkIGZyb20gSlNFUCBFeGFtcGxlIDcuMQorLy8g
SXQgY29udGFpbnMgdHdvIG1lZGlhIHN0cmVhbXMgd2l0aCBkaWZmZXJlbnQgdWZyYWdzLCBhbmQg
YnVuZGxlCisvLyB0dXJuZWQgb24uCitjb25zdCBrU2RwID0gYHY9MAorbz0tIDQ5NjIzMDMzMzMx
Nzk4NzE3MjIgMSBJTiBJUDQgMC4wLjAuMAorcz0tCit0PTAgMAorYT1pY2Utb3B0aW9uczp0cmlj
a2xlCithPWdyb3VwOkJVTkRMRSBhMSB2MQorYT1ncm91cDpMUyBhMSB2MQorbT1hdWRpbyAxMDEw
MCBVRFAvVExTL1JUUC9TQVZQRiA5NiAwIDggOTcgOTgKK2M9SU4gSVA0IDIwMy4wLjExMy4xMDAK
K2E9bWlkOmExCithPXNlbmRyZWN2CithPXJ0cG1hcDo5NiBvcHVzLzQ4MDAwLzIKK2E9cnRwbWFw
OjAgUENNVS84MDAwCithPXJ0cG1hcDo4IFBDTUEvODAwMAorYT1ydHBtYXA6OTcgdGVsZXBob25l
LWV2ZW50LzgwMDAKK2E9cnRwbWFwOjk4IHRlbGVwaG9uZS1ldmVudC80ODAwMAorYT1tYXhwdGlt
ZToxMjAKK2E9ZXh0bWFwOjEgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczptaWQKK2E9
ZXh0bWFwOjIgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c3NyYy1hdWRpby1sZXZlbAorYT1t
c2lkOjQ3MDE3ZmVlLWI2YzEtNDE2Mi05MjljLWEyNTExMDI1MjQwMCBmODMwMDZjNS1hMGZmLTRl
MGEtOWVkOS1kM2U2NzQ3YmU3ZDkKK2E9aWNlLXVmcmFnOkVURW4KK2E9aWNlLXB3ZDpPdFNLMFdw
TnRwVWprWTQrODZqczdaUWwKK2E9ZmluZ2VycHJpbnQ6c2hhLTI1NiAxOTpFMjoxQzozQjo0Qjo5
Rjo4MTpFNjpCODo1QzpGNDpBNTpBODpEODo3MzowNDpCQjowNToyRjo3MDo5RjowNDpBOTowRTow
NTpFOToyNjozMzpFODo3MDo4ODpBMgorYT1zZXR1cDphY3RwYXNzCithPWR0bHMtaWQ6MQorYT1y
dGNwOjEwMTAxIElOIElQNCAyMDMuMC4xMTMuMTAwCithPXJ0Y3AtbXV4CithPXJ0Y3AtcnNpemUK
K209dmlkZW8gMTAxMDIgVURQL1RMUy9SVFAvU0FWUEYgMTAwIDEwMQorYz1JTiBJUDQgMjAzLjAu
MTEzLjEwMAorYT1taWQ6djEKK2E9c2VuZHJlY3YKK2E9cnRwbWFwOjEwMCBWUDgvOTAwMDAKK2E9
cnRwbWFwOjEwMSBydHgvOTAwMDAKK2E9Zm10cDoxMDEgYXB0PTEwMAorYT1leHRtYXA6MSB1cm46
aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZAorYT1ydGNwLWZiOjEwMCBjY20gZmlyCith
PXJ0Y3AtZmI6MTAwIG5hY2sKK2E9cnRjcC1mYjoxMDAgbmFjayBwbGkKK2E9bXNpZDo0NzAxN2Zl
ZS1iNmMxLTQxNjItOTI5Yy1hMjUxMTAyNTI0MDAgZjMwYmRiNGEtNWRiOC00OWI1LWJjZGMtZTBj
OWEyMzE3MmUwCithPWljZS11ZnJhZzpCR0trCithPWljZS1wd2Q6bXF5V3NBanZ0S3dUR252aFB6
dFE5bUlmCithPWZpbmdlcnByaW50OnNoYS0yNTYgMTk6RTI6MUM6M0I6NEI6OUY6ODE6RTY6Qjg6
NUM6RjQ6QTU6QTg6RDg6NzM6MDQ6QkI6MDU6MkY6NzA6OUY6MDQ6QTk6MEU6MDU6RTk6MjY6MzM6
RTg6NzA6ODg6QTIKK2E9c2V0dXA6YWN0cGFzcworYT1kdGxzLWlkOjEKK2E9cnRjcDoxMDEwMyBJ
TiBJUDQgMjAzLjAuMTEzLjEwMAorYT1ydGNwLW11eAorYT1ydGNwLXJzaXplCitgOworCisvLyBS
ZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gfHBjLmljZUNvbm5lY3Rpb25TdGF0
ZXwgaXMgaW4gb25lIG9mIHRoZQorLy8gd2FudGVkIHN0YXRlcywgYW5kIHJlamVjdHMgaWYgaXQg
aXMgaW4gb25lIG9mIHRoZSB1bndhbnRlZCBzdGF0ZXMuCisvLyBUaGlzIGlzIGEgdmFyaWFudCBv
ZiB0aGUgZnVuY3Rpb24gaW4gUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzLgorZnVuY3Rpb24g
d2FpdEZvckljZVN0YXRlQ2hhbmdlKHBjLCB3YW50ZWRTdGF0ZXMsIHVud2FudGVkU3RhdGVzPVtd
KSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgaWYg
KHdhbnRlZFN0YXRlcy5pbmNsdWRlcyhwYy5pY2VDb25uZWN0aW9uU3RhdGUpKSB7CisgICAgICBy
ZXNvbHZlKCk7CisgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmICh1bndhbnRlZFN0YXRlcy5p
bmNsdWRlcyhwYy5pY2VDb25uZWN0aW9uU3RhdGUpKSB7CisgICAgICByZWplY3QoJ1VuZXhwZWN0
ZWQgc3RhdGUgZW5jb3VudGVyZWQ6ICcgKyBwYy5pY2VDb25uZWN0aW9uU3RhdGUpOworICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBwYy5hZGRFdmVudExpc3RlbmVyKCdpY2Vjb25uZWN0aW9uc3Rh
dGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICBpZiAod2FudGVkU3RhdGVzLmluY2x1ZGVzKHBjLmlj
ZUNvbm5lY3Rpb25TdGF0ZSkpIHsKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSBlbHNlIGlm
ICh1bndhbnRlZFN0YXRlcy5pbmNsdWRlcyhwYy5pY2VDb25uZWN0aW9uU3RhdGUpKSB7CisgICAg
ICAgIHJlamVjdCgnVW5leHBlY3RlZCBzdGF0ZSBlbmNvdW50ZXJlZDogJyArIHBjLmljZUNvbm5l
Y3Rpb25TdGF0ZSk7CisgICAgICB9CisgICAgfSk7CisgIH0pOworfQorCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBj
b25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBs
ZXQgW3RyYWNrLCBzdHJlYW1zXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgndmlkZW8n
KTsKKyAgY29uc3Qgc2VuZGVyID0gcGMxLmFkZFRyYWNrKHRyYWNrKTsKKyAgZXhjaGFuZ2VJY2VD
YW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBj
Mik7CisgIGF3YWl0IHdhaXRGb3JJY2VTdGF0ZUNoYW5nZShwYzEsIFsnY29ubmVjdGVkJywgJ2Nv
bXBsZXRlZCddKTsKK30sICdQQyBzaG91bGQgZW50ZXIgY29ubmVjdGVkIChvciBjb21wbGV0ZWQp
IHN0YXRlIHdoZW4gY2FuZGlkYXRlcyBhcmUgc2VudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgbGV0IFt0cmFjaywgc3RyZWFtc10gPSBhd2Fp
dCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ3ZpZGVvJyk7CisgIGNvbnN0IHNlbmRlciA9IHBjMS5h
ZGRUcmFjayh0cmFjayk7CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7
CisgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2ZmZXIuc2RwLnNlYXJjaCgnYT1pY2Utb3B0
aW9uczp0cmlja2xlJyksIDApOworfSwgJ1BDIHNob3VsZCBnZW5lcmF0ZSBvZmZlciB3aXRoIGE9
aWNlLW9wdGlvbnM6dHJpY2tsZScpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAn
b2ZmZXInLCBzZHA6IGtTZHB9KTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMxLmNyZWF0ZUFu
c3dlcigpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhc3Nl
cnRfZ3JlYXRlcl90aGFuX2VxdWFsKGFuc3dlci5zZHAuc2VhcmNoKCdhPWljZS1vcHRpb25zOnRy
aWNrbGUnKSwgMCk7CisgIC8vIFdoZW4gd2UgdXNlIHRyaWNrbGUgSUNFLCBhbmQgZG9uJ3Qgc2ln
bmFsIGVuZC1vZi1jYW5pZGRhdGVzLCB3ZQorICAvLyBleHBlY3QgZmFpbHVyZSB0byByZXN1bHQg
aW4gJ2Rpc2Nvbm5lY3RlZCcgc3RhdGUgcmF0aGVyIHRoYW4gJ2ZhaWxlZCcuCisgIGNvbnN0IHN0
YXRlV2FpdGVyID0gd2FpdEZvckljZVN0YXRlQ2hhbmdlKHBjMSwgWydkaXNjb25uZWN0ZWQnXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydmYWlsZWQnXSk7
CisgIC8vIEFkZCBhIGJvZ3VzIGNhbmRpZGF0ZS4gVGhlIGNhbmRpZGF0ZSBpcyBkcmF3biBmcm9t
IHRoZQorICAvLyBJQU5BICJ0ZXN0LW5ldC0zIiBwb29sIChSRkM1NzM3KSwgc28gaXMgZ3VhcmFu
dGVlZCBub3QgdG8gcmVzcG9uZC4KKyAgY29uc3QgY2FuZGlkYXRlU3RyMSA9CisgICAgICAnY2Fu
ZGlkYXRlOjEgMSB1ZHAgMjExMzkyOTQ3MSAyMDMuMC4xMTMuMTAwIDEwMTAwIHR5cCBob3N0JzsK
KyAgYXdhaXQgcGMxLmFkZEljZUNhbmRpZGF0ZSh7Y2FuZGlkYXRlOiBjYW5kaWRhdGVTdHIxLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZHBNaWQ6ICdhMScsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVzZXJuYW1lRnJhZ21lbnQ6ICdFVEVuJ30pOworICBhd2FpdCBzdGF0
ZVdhaXRlcjsKK30sICdQQyBzaG91bGQgZW50ZXIgZGlzY29ubmVjdGVkIHN0YXRlIHdoZW4gYSBm
YWlsaW5nIGNhbmRpZGF0ZSBpcyBzZW50Jyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
aWNlLXVmcmFncHdkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2ljZS11ZnJhZ3B3ZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjU0Y2UzNGM1ZmZmMDM0NzhmMzVkOWQ3OTBhMDEyYzgxZGIwYmI0MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL2ljZS11ZnJhZ3B3ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACisKK1BBU1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGljZS11ZnJhZyBjb250YWlu
aW5nIGEgbm9uLWljZS1jaGFyIGZhaWxzIAorUEFTUyBzZXRSZW1vdGVEZXNjcmlwdGlvbiB3aXRo
IGEgaWNlLXB3ZCBjb250YWluaW5nIGEgbm9uLWljZS1jaGFyIGZhaWxzIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9pY2UtdWZyYWdwd2QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2ljZS11ZnJhZ3B3ZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJkMTUxMjg0Y2JiNzA1OTJkNzFjNjdkZGZkODljMjMwZTczN2EyMWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9pY2UtdWZyYWdwd2QuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIj4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBGYWlsZWQgU3RhdGU8L3RpdGxlPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
J3VzZSBzdHJpY3QnOworCisvLyBUZXN0cyBmb3IgdmFsaWRhdGluZyBpY2UtdWZyYWcgYW5kIGlj
ZS1wd2Qgc3ludGF4IGRlZmluZWQgaW4KKy8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9y
ZmM1MjQ1I3NlY3Rpb24tMTUuNAorLy8gQWxwaGFudW1lcmljLCAnKycgYW5kICcvJyBhcmUgYWxs
b3dlZC4KKworY29uc3QgcHJlYW1ibGUgPSBgdj0wCitvPS0gMCAzIElOIElQNCAxMjcuMC4wLjEK
K3M9LQordD0wIDAKK2E9ZmluZ2VycHJpbnQ6c2hhLTI1NiBBNzoyNDo3MjpDQTo2RTowMjo1NToz
OTpCQTo2NjpERjo2RTpDQzo0QzpEODpCMDoxQTpCRjoxQTo1Njo2NTo3RDpGNDowMzpBRDo3RTo3
Nzo0MzoyQToyOTpFQzo5MworbT12aWRlbyAxIFJUUC9TQVZQRiAxMDAKK2M9SU4gSVA0IDAuMC4w
LjAKK2E9cnRjcC1tdXgKK2E9c2VuZG9ubHkKK2E9bWlkOnZpZGVvCithPXJ0cG1hcDoxMDAgVlA4
LzMwCithPXNldHVwOmFjdHBhc3MKK2A7Citjb25zdCB2YWxpZF91ZnJhZyA9ICdhPWljZS11ZnJh
ZzpFVEVuXHJcbic7Citjb25zdCB2YWxpZF9wd2QgPSAnYT1pY2UtcHdkOk90U0swV3BOdHBVamtZ
NCs4NmpzN1ovbFxyXG4nOworY29uc3Qgbm90X2ljZV9jaGFyID0gJyQnOyAvLyBBIHNub3dtYW4g
ZW1vamkgd291bGQgYmUgY29vbCBidXQgaXMgbm90IGludGVyb3BlcmFibGUuCisKK3Byb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKworICBjb25zdCBzZHAgPSBwcmVh
bWJsZSArCisgICAgdmFsaWRfdWZyYWcucmVwbGFjZSgnRVRFbicsICdFJyArIG5vdF9pY2VfY2hh
ciArICdFbicpICsKKyAgICB2YWxpZF9wd2Q7CisKKyAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19k
b20odCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsCisgICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24o
e3R5cGU6ICdvZmZlcicsIHNkcH0pKTsKK30sICdzZXRSZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGEg
aWNlLXVmcmFnIGNvbnRhaW5pbmcgYSBub24taWNlLWNoYXIgZmFpbHMnKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworCisgIGNvbnN0IHNkcCA9IHByZWFt
YmxlICsKKyAgICB2YWxpZF91ZnJhZyArCisgICAgdmFsaWRfcHdkLnJlcGxhY2UoJ0swV3AnLCAn
SycgKyBub3RfaWNlX2NoYXIgKyAnV3AnKTsKKworICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2Rv
bSh0LCAnSW52YWxpZEFjY2Vzc0Vycm9yJywKKyAgICBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7
dHlwZTogJ29mZmVyJywgc2RwfSkpOworfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uIHdpdGggYSBp
Y2UtcHdkIGNvbnRhaW5pbmcgYSBub24taWNlLWNoYXIgZmFpbHMnKTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvanNlcC1pbml0aWFsLW9mZmVyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9qc2VwLWluaXRp
YWwtb2ZmZXIuaHR0cHMuaHRtbAppbmRleCA4OGJkZmNmYzI4NjczMzVjYTUzYzMwZjU2MzdiMzhi
M2QxMmM2NGNhLi41MDUyN2Y4OGRmZThmM2YwMjVjZmZmYWU5MWIzNDdmZGMyNTI3YTFkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9qc2VwLWluaXRpYWwtb2ZmZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9qc2VwLWlu
aXRpYWwtb2ZmZXIuaHR0cHMuaHRtbApAQCAtMTYsMTkgKzE2LDI1IEBACiAgICAgLy8gVGhlIGZp
cnN0IDMgbGluZXMgYXJlIGRpY3RhdGVkIGJ5IEpTRVAuCiAgICAgYXNzZXJ0X2VxdWFscyhvZmZl
cl9saW5lc1swXSwgInY9MCIpOwogICAgIGFzc2VydF9lcXVhbHMob2ZmZXJfbGluZXNbMV0uc2xp
Y2UoMCwgMiksICJvPSIpOwotICAgIC8vIEpTRVAgc2F5cyB0aGF0IHRoZSBhZGRyZXNzIHBhcnQg
U0hPVUxEIGJlIGEgbWVhbmluZ2xlc3MgYWRkcmVzcwotICAgIC8vICJzdWNoIGFzIiBJTiBJUDQg
MTI3LjAuMC4xLiBXZSBkbyBzdHJpY3QgbWF0Y2hpbmcgaGVyZSBpbiBvcmRlcgotICAgIC8vIHRv
IGRldGVjdCBpZiBhbnlvbmUgZXZlciB1c2VzIHNvbWV0aGluZyBkaWZmZXJlbnQuCi0gICAgYXNz
ZXJ0X3JlZ2V4cF9tYXRjaChvZmZlcl9saW5lc1sxXSwgL15vPS0gXGQrIFxkKyBJTiBJUDQgMTI3
LjAuMC4xJC8pOwotICAgIGNvbnN0IGZpZWxkcyA9IFJlZ0V4cCgvXm89LSAoXGQrKSAoXGQrKS8p
LmV4ZWMob2ZmZXJfbGluZXNbMV0pOworCisgICAgYXNzZXJ0X3JlZ2V4cF9tYXRjaChvZmZlcl9s
aW5lc1sxXSwgL15vPVxTKyBcZCsgXGQrIElOIElQNCBcUyskLyk7CisgICAgY29uc3QgZmllbGRz
ID0gUmVnRXhwKC9ebz1cUysgKFxkKykgKFxkKykgSU4gSVA0IChcUyspLykuZXhlYyhvZmZlcl9s
aW5lc1sxXSk7CiAgICAgLy8gUGVyIFJGQyAzMjY0LCB0aGUgc2Vzcy1pZCBzaG91bGQgYmUgcmVw
cmVzZW50YWJsZSBpbiBhbiB1aW50NjQKICAgICAvLyBOb3RlOiBKU0VQIC0yNCBoYXMgdGhpcyB3
cm9uZyAtIHNlZSBidWc6CiAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J0Y3dlYi13Zy9qc2Vw
L2lzc3Vlcy84NTUKICAgICBhc3NlcnRfbGVzc190aGFuKE51bWJlcihmaWVsZHNbMV0pLCAyKio2
NCk7CiAgICAgLy8gUGVyIFJGQyAzMjY0LCB0aGUgdmVyc2lvbiBzaG91bGQgYmUgbGVzcyB0aGFu
IDJeNjIgdG8gYXZvaWQgb3ZlcmZsb3cKICAgICBhc3NlcnRfbGVzc190aGFuKE51bWJlcihmaWVs
ZHNbMl0pLCAyKio2Mik7Ci0gICAgLy8gTm90ZTogdXNpbmcgLSBpbiBzPS0gaXMgYSBTSE9VTEQg
aW4gSlNFUCwgbm90IGEgTVVTVC4KLSAgICBhc3NlcnRfZXF1YWxzKG9mZmVyX2xpbmVzWzJdLCAi
cz0tIik7CisgICAgLy8gSlNFUCBzYXlzIHRoYXQgdGhlIGFkZHJlc3MgcGFydCBTSE9VTEQgYmUg
YSBtZWFuaW5nbGVzcyBhZGRyZXNzCisgICAgLy8gInN1Y2ggYXMiIElOIElQNCAwLjAuMC4wLiBU
aGlzIGlzIHRvIHByZXZlbnQgdW5pbnRlbnRpb25hbCBkaXNjbG9zdXJlCisgICAgLy8gb2YgSVAg
YWRkcmVzc2VzLCBzbyB0aGlzIGlzIGltcG9ydGFudCBlbm91Z2ggdG8gdmVyaWZ5LiBSaWdodCBu
b3cgd2UKKyAgICAvLyBhbGxvdyAxMjcuMC4wLjEgYW5kIDAuMC4wLjAsIGJ1dCB0aGVyZSBhcmUg
b3RoZXIgdGhpbmdzIHdlIGNvdWxkIGFsbG93LgorICAgIC8vIE1heWJlIDAuMC4wLjAvOCwgMTI3
LjAuMC4wLzgsIDE5Mi4wLjIuMC8yNCwgMTk4LjUxLjEwMC4wLzI0LCAyMDMuMC4xMTMuMC8yND8K
KyAgICAvLyAoU2VlIFJGQyAzMzMwLCBSRkMgNTczNykKKyAgICBhc3NlcnRfdHJ1ZShmaWVsZHNb
M10gPT0gIjAuMC4wLjAiIHx8IGZpZWxkc1szXSA9PSAiMTI3LjAuMC4xIiwKKyAgICAgIGZpZWxk
c1szXSArICIgbXVzdCBiZSBhIG1lYW5pbmdsZXNzIElQVjQgYWRkcmVzcyIpCisKKyAgICBhc3Nl
cnRfcmVnZXhwX21hdGNoKG9mZmVyX2xpbmVzWzJdLCAvXnM9XFMrJC8pOwogICAgIC8vIEFmdGVy
IHRoaXMsIHRoZSBvcmRlciBpcyBub3QgZGljdGF0ZWQgYnkgSlNFUC4KICAgICAvLyBUT0RPOiBD
aGVjayBsaW5lcyBzdWJzZXF1ZW50IHRvIHRoZSBzPSBsaW5lLgogICB9LCAnT2ZmZXIgY29uZm9y
bXMgdG8gYmFzaWMgU0RQIHJlcXVpcmVtZW50cycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvbXNpZC1wYXJz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvbXNpZC1wYXJzZS5odG1sCmluZGV4IGUwZDNlYjc2YTNhOTg0OTdlMWJjZmVk
MzZkMmNlMGU2ZDRjYjBlNzUuLjk2MzA5MTliODA4NjFiNjU1OWJiZjkwMzM5Nzg4YzgyNmY1ODE0
NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL21zaWQtcGFyc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9tc2lkLXBhcnNlLmh0
bWwKQEAgLTE0LDEwICsxNCwxMiBAQCBhPWZpbmdlcnByaW50OnNoYS0yNTYgQTc6MjQ6NzI6Q0E6
NkU6MDI6NTU6Mzk6QkE6NjY6REY6NkU6Q0M6NEM6RDg6QjA6MUE6QkY6MUE6NQogYT1pY2UtdWZy
YWc6NkhISGR6emVJaGtFMENLagogYT1pY2UtcHdkOlhZREdWcGZ2a2xRSUVuWjZZbnlMc0Fldwog
bT12aWRlbyAxIFJUUC9TQVZQRiAxMDAKK2M9SU4gSVA0IDAuMC4wLjAKIGE9cnRjcC1tdXgKIGE9
c2VuZG9ubHkKIGE9bWlkOnZpZGVvCiBhPXJ0cG1hcDoxMDAgVlA4LzMwCithPXNldHVwOmFjdHBh
c3MKIGA7CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2N0cC1mb3JtYXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
c2N0cC1mb3JtYXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3NWJmOWYwOGY3YWNkZGI2M2My
Y2U3M2EzYzIyYTFhMmM3OGI4NjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zY3RwLWZvcm1hdC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgR2VuZXJhdGVkIERhdGFjaGFubmVs
IFNEUCB1c2VzIGNvcnJlY3QgU0NUUCBvZmZlciBzeW50YXggCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Nj
dHAtZm9ybWF0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9zY3RwLWZvcm1hdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwN2U1MWQ0
YzNhYWFhYThiYzc0OWZiMDY3NjBjZDdkYTI2ZmQwZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9z
Y3RwLWZvcm1hdC5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVyY29ubmVjdGlvbiBTRFAgU0NUUCBmb3JtYXQg
dGVzdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IGNh
bGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGNh
bGxlci5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7Cisg
IGNhbGxlci5jcmVhdGVEYXRhQ2hhbm5lbCgnY2hhbm5lbCcpOworICBjb25zdCBvZmZlciA9IGF3
YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOworICBjb25zdCBbcHJlYW1ibGUsIG1lZGlhX3NlY3Rp
b24sIHBvc3RhbWJsZV0gPSBvZmZlci5zZHAuc3BsaXQoJ1xyXG5tPScpOworICBhc3NlcnRfdHJ1
ZSh0eXBlb2YocG9zdGFtYmxlKSA9PT0gJ3VuZGVmaW5lZCcpOworICBhc3NlcnRfZ3JlYXRlcl90
aGFuKG1lZGlhX3NlY3Rpb24uc2VhcmNoKAorICAgIC9eYXBwbGljYXRpb24gXGQrIFVEUFwvRFRM
U1wvU0NUUCB3ZWJydGMtZGF0YWNoYW5uZWxcclxuLyksIC0xKTsKKyAgYXNzZXJ0X2dyZWF0ZXJf
dGhhbihtZWRpYV9zZWN0aW9uLnNlYXJjaCgvXHJcbmE9c2N0cC1wb3J0OlxkK1xyXG4vKSwgLTEp
OworICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1lZGlhX3NlY3Rpb24uc2VhcmNoKC9cclxuYT1taWQ6
LyksIC0xKTsKK30sICdHZW5lcmF0ZWQgRGF0YWNoYW5uZWwgU0RQIHVzZXMgY29ycmVjdCBTQ1RQ
IG9mZmVyIHN5bnRheCcpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1h
bnN3ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2ltdWxjYXN0LWFuc3dlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmY0NjkyZDgzYWU2YzcwYWMxNjM3ZDllZGRiNGYxY2FkNGY0MDkwNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1hbnN3ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIGNyZWF0ZUFuc3dlcigpIHdpdGggbXVsdGlwbGUgc2VuZCBlbmNvZGluZ3Mg
c2hvdWxkIGNyZWF0ZSBzaW11bGNhc3QgYW5zd2VyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zaW11bGNh
c3QtYW5zd2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9zaW11bGNhc3QtYW5zd2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdi
MThhMTMwYmJlYjAxNDYxYjk0ZWU2Nzg2ZjE3YTg5MDg1ZGRlNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3NpbXVsY2FzdC1hbnN3ZXIuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IWRvY3R5cGUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gU2ltdWxj
YXN0IEFuc3dlcjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvLyBUZXN0cyBmb3IgdGhl
IGNvbnN0cnVjdGlvbiBvZiBhbnN3ZXJzIHdpdGggc2ltdWxjYXN0IGFjY29yZGluZyB0bzoKKy8v
IGRyYWZ0LWlldGYtbW11c2ljLXNkcC1zaW11bGNhc3QtMTMKKy8vIGRyYWZ0LWlldGYtbW11c2lj
LXJpZC0xNQorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBj
b25zdCBleHBlY3RlZF9yaWRzID0gWydmb28nLCAnYmFyJywgJ2JheiddOworCisgIGNvbnN0IG9m
ZmVyX3NkcCA9IGB2PTAKK289LSAzODQwMjMyNDYyNDcxNTgzODI3IDIgSU4gSVA0IDEyNy4wLjAu
MQorcz0tCit0PTAgMAorYT1ncm91cDpCVU5ETEUgMAorYT1tc2lkLXNlbWFudGljOiBXTVMKK209
dmlkZW8gOSBVRFAvVExTL1JUUC9TQVZQRiA5NgorYz1JTiBJUDQgMC4wLjAuMAorYT1ydGNwOjkg
SU4gSVA0IDAuMC4wLjAKK2E9aWNlLXVmcmFnOkxpNisKK2E9aWNlLXB3ZDozQzA1Q1RaQlJRVm1H
Q0FxN2hWYXNIbFQKK2E9aWNlLW9wdGlvbnM6dHJpY2tsZQorYT1maW5nZXJwcmludDpzaGEtMjU2
IDVCOkQzOjhFOjY2OjBFOjdEOkQzOkYzOjhFOkU2OjgwOjI4OjE5OkZDOjU1OkFEOjU4OjVEOkI5
OjNEOkE4OkRFOjQ1OjRBOkU3Ojg3OjAyOkY4OjNDOjBCOjNCOkIzCithPXNldHVwOmFjdHBhc3MK
K2E9bWlkOjAKK2E9ZXh0bWFwOjQgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczpydHAt
c3RyZWFtLWlkCithPXJlY3Zvbmx5CithPXJ0Y3AtbXV4CithPXJ0cG1hcDo5NiBWUDgvOTAwMDAK
K2E9cnRjcC1mYjo5NiBnb29nLXJlbWIKK2E9cnRjcC1mYjo5NiB0cmFuc3BvcnQtY2MKK2E9cnRj
cC1mYjo5NiBjY20gZmlyCithPXJpZDpmb28gcmVjdgorYT1yaWQ6YmFyIHJlY3YKK2E9cmlkOmJh
eiByZWN2CithPXNpbXVsY2FzdDpyZWN2IGZvbztiYXI7YmF6CitgOworCisgIGF3YWl0IHBjLnNl
dFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHA6IG9mZmVyX3NkcH0pOworICBj
b25zdCB0cmFuc2NlaXZlciA9IHBjLmdldFRyYW5zY2VpdmVycygpWzBdOworICAvLyBUaGUgY3Jl
YXRlZCB0cmFuc2NlaXZlciBzaG91bGQgYmUgaW4gInJlY3Zvbmx5IiBzdGF0ZS4gQWxsb3cgaXQg
dG8gc2VuZC4KKyAgdHJhbnNjZWl2ZXIuZGlyZWN0aW9uID0gInNlbmRvbmx5IjsKKyAgY29uc3Qg
YW5zd2VyID0gYXdhaXQgcGMuY3JlYXRlQW5zd2VyKCk7CisgIGxldCBhbnN3ZXJfbGluZXMgPSBh
bnN3ZXIuc2RwLnNwbGl0KCdcclxuJyk7CisgIC8vIENoZWNrIGZvciBhIFJJRCBsaW5lIGZvciBl
YWNoIGxheWVyLgorICBmb3IgKGNvbnN0IHJpZCBvZiBleHBlY3RlZF9yaWRzKSB7CisgICAgbGV0
IHJlc3VsdCA9IGFuc3dlcl9saW5lcy5maW5kKGxpbmUgPT4gbGluZS5zdGFydHNXaXRoKGBhPXJp
ZDoke3JpZH1gKSk7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVzdWx0LCB1bmRlZmluZWQsIGBS
SUQgYXR0cmlidXRlIGZvciAnJHtyaWR9JyBtaXNzaW5nLmApOworICB9CisKKyAgLy8gQ2hlY2sg
Zm9yIHNpbXVsY2FzdCBhdHRyaWJ1dGUgd2l0aCBzZW5kIGRpcmVjdGlvbiBhbmQgYWxsIFJJRHMu
CisgIGxldCByZXN1bHQgPSBhbnN3ZXJfbGluZXMuZmluZCgKKyAgICAgIGxpbmUgPT4gbGluZS5z
dGFydHNXaXRoKGBhPXNpbXVsY2FzdDpzZW5kICR7ZXhwZWN0ZWRfcmlkcy5qb2luKCc7Jyl9YCkp
OworICBhc3NlcnRfbm90X2VxdWFscyhyZXN1bHQsIHVuZGVmaW5lZCwgIkNvdWxkIG5vdCBmaW5k
IHNpbXVsY2FzdCBhdHRyaWJ1dGUuIik7Cit9LCAnY3JlYXRlQW5zd2VyKCkgd2l0aCBtdWx0aXBs
ZSBzZW5kIGVuY29kaW5ncyBzaG91bGQgY3JlYXRlIHNpbXVsY2FzdCBhbnN3ZXInKTsKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQu
aHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkZTJkODJlMmI5MGVkYjgyYWEyZDdhYjk5
NDQxZTNlNWUwOWZhYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ29ubmVjdCBhdWRpbyBhbmQgdmlkZW8gdG8g
dHdvIGluZGVwZW5kZW50IFBlZXJDb25uZWN0aW9ucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTAyNzcxZTIzYTUz
Njg0OGYwMDI0OTE2NmVjZTEwMjE3NzY2YTM4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NwbGl0
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIEJVTkRMRTwvdGl0bGU+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvd2VicnRjL3RoaXJkX3BhcnR5L3NkcC9zZHAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1
c2Ugc3RyaWN0JzsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgY2FsbGVyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNs
b3NlKCkpOworICBjb25zdCBjYWxsZWVBdWRpbyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZUF1ZGlvLmNsb3NlKCkpOworICBjb25zdCBjYWxs
ZWVWaWRlbyAgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBjYWxsZWVWaWRlby5jbG9zZSgpKTsKKworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lz
ZVN0cmVhbSh7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfSk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7Cisg
IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5hZGRUcmFjayh0cmFj
aywgc3RyZWFtKSk7CisKKyAgbGV0IG1ldGFkYXRhVG9CZUxvYWRlZDsKKyAgY2FsbGVlVmlkZW8u
b250cmFjayA9IChlKSA9PiB7CisgICAgY29uc3Qgc3RyZWFtID0gZS5zdHJlYW1zWzBdOworICAg
IGNvbnN0IHYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIHYuYXV0b3Bs
YXkgPSB0cnVlOworICAgIHYuc3JjT2JqZWN0ID0gc3RyZWFtOworICAgIHYuaWQgPSBzdHJlYW0u
aWQKKyAgICBtZXRhZGF0YVRvQmVMb2FkZWQgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewor
ICAgICAgdi5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsICgpID0+IHsKKyAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH07CisKKyAgY2FsbGVyLmFkZEV2
ZW50TGlzdGVuZXIoJ2ljZWNhbmRpZGF0ZScsIChlKSA9PiB7CisgICAgLy8gcm91dGUgZGVwZW5k
aW5nIG9uIHNkcE1saW5lSW5kZXgKKyAgICBpZiAoZS5jYW5kaWRhdGUpIHsKKyAgICAgIGNvbnN0
IHRhcmdldCA9IGUuY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggPT09IDAgPyBjYWxsZWVBdWRpbyA6
IGNhbGxlZVZpZGVvOworICAgICAgdGFyZ2V0LmFkZEljZUNhbmRpZGF0ZSh7c2RwTWlkOiBlLmNh
bmRpZGF0ZS5zZHBNaWQsIGNhbmRpZGF0ZTogZS5jYW5kaWRhdGUuY2FuZGlkYXRlfSk7CisgICAg
fQorICB9KTsKKyAgY2FsbGVlQXVkaW8uYWRkRXZlbnRMaXN0ZW5lcignaWNlY2FuZGlkYXRlJywg
KGUpID0+IHsKKyAgICBpZiAoZS5jYW5kaWRhdGUpIHsKKyAgICAgIGNhbGxlci5hZGRJY2VDYW5k
aWRhdGUoe3NkcE1pZDogZS5jYW5kaWRhdGUuc2RwTWlkLCBjYW5kaWRhdGU6IGUuY2FuZGlkYXRl
LmNhbmRpZGF0ZX0pOworICAgIH0KKyAgfSk7CisgIGNhbGxlZVZpZGVvLmFkZEV2ZW50TGlzdGVu
ZXIoJ2ljZWNhbmRpZGF0ZScsIChlKSA9PiB7CisgICAgaWYgKGUuY2FuZGlkYXRlKSB7CisgICAg
ICBjYWxsZXIuYWRkSWNlQ2FuZGlkYXRlKHtzZHBNaWQ6IGUuY2FuZGlkYXRlLnNkcE1pZCwgY2Fu
ZGlkYXRlOiBlLmNhbmRpZGF0ZS5jYW5kaWRhdGV9KTsKKyAgICB9CisgIH0pOworCisgIGNvbnN0
IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisgIGNvbnN0IHNlY3Rpb25zID0g
U0RQVXRpbHMuc3BsaXRTZWN0aW9ucyhvZmZlci5zZHApOworICAvLyByZW1vdmUgdGhlIGE9Z3Jv
dXA6QlVORExFIGZyb20gdGhlIFNEUCB3aGVuIHNpZ25hbGluZy4KKyAgY29uc3QgYnVuZGxlID0g
U0RQVXRpbHMubWF0Y2hQcmVmaXgoc2VjdGlvbnNbMF0sICdhPWdyb3VwOkJVTkRMRScpWzBdOwor
ICBzZWN0aW9uc1swXSA9IHNlY3Rpb25zWzBdLnJlcGxhY2UoYnVuZGxlICsgJ1xyXG4nLCAnJyk7
CisKKyAgY29uc3QgYXVkaW9TZHAgPSBzZWN0aW9uc1swXSArIHNlY3Rpb25zWzFdOworICBjb25z
dCB2aWRlb1NkcCA9IHNlY3Rpb25zWzBdICsgc2VjdGlvbnNbMl07CisKKyAgYXdhaXQgY2FsbGVl
QXVkaW8uc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcDogYXVkaW9TZHB9
KTsKKyAgYXdhaXQgY2FsbGVlVmlkZW8uc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZl
cicsIHNkcDogdmlkZW9TZHB9KTsKKyAgYXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24o
b2ZmZXIpOworCisgIGNvbnN0IGFuc3dlckF1ZGlvID0gYXdhaXQgY2FsbGVlQXVkaW8uY3JlYXRl
QW5zd2VyKCk7CisgIGNvbnN0IGFuc3dlclZpZGVvID0gYXdhaXQgY2FsbGVlVmlkZW8uY3JlYXRl
QW5zd2VyKCk7CisgIGNvbnN0IGF1ZGlvU2VjdGlvbnMgPSBTRFBVdGlscy5zcGxpdFNlY3Rpb25z
KGFuc3dlckF1ZGlvLnNkcCk7CisgIGNvbnN0IHZpZGVvU2VjdGlvbnMgPSBTRFBVdGlscy5zcGxp
dFNlY3Rpb25zKGFuc3dlclZpZGVvLnNkcCk7CisgIGNvbnN0IHNkcCA9IGF1ZGlvU2VjdGlvbnNb
MF0gKyBhdWRpb1NlY3Rpb25zWzFdICsgdmlkZW9TZWN0aW9uc1sxXTsKKyAgYXdhaXQgY2FsbGVy
LnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnYW5zd2VyJywgc2RwfSk7CisgIGF3YWl0IGNh
bGxlZUF1ZGlvLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyQXVkaW8pOworICBhd2FpdCBjYWxs
ZWVWaWRlby5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlclZpZGVvKTsKKworICBhd2FpdCBtZXRh
ZGF0YVRvQmVMb2FkZWQ7CisgIGFzc2VydF9lcXVhbHMoY2FsbGVlQXVkaW8uY29ubmVjdGlvblN0
YXRlLCAnY29ubmVjdGVkJyk7CisgIGFzc2VydF9lcXVhbHMoY2FsbGVlVmlkZW8uY29ubmVjdGlv
blN0YXRlLCAnY29ubmVjdGVkJyk7Cit9LCAnQ29ubmVjdCBhdWRpbyBhbmQgdmlkZW8gdG8gdHdv
IGluZGVwZW5kZW50IFBlZXJDb25uZWN0aW9ucycpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC92aWRlby1jb2RlY3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVjcy5odHRwcy5odG1sCmlu
ZGV4IGU3MjhlZmZiZWI5NGRlODY1ZGY5Zjg4NjBjZDQ1YzhkZTFmNjAxYzEuLmE0OTA1YWU0NDFh
OTEyNzk3Nzg4ZDZkMGIwNjVhNmM4NjFkNzA4YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVj
cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVjcy5odHRwcy5odG1sCkBAIC01MCw3ICs1
MCw3IEBAIGFzeW5jIGZ1bmN0aW9uIG5lZ290aWF0ZVBhcmFtZXRlcnMoKSB7CiAgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICBsZXQgW3RyYWNrLCBzdHJlYW1zXSA9IGF3
YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgndmlkZW8nKTsKICAgY29uc3Qgc2VuZGVyID0gcGMx
LmFkZFRyYWNrKHRyYWNrKTsKLSAgYXdhaXQgZG9TaWduYWxpbmdIYW5kc2hha2UocGMxLCBwYzIp
OworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKICAgcmV0dXJuIHNlbmRl
ci5nZXRQYXJhbWV0ZXJzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvdzNjLWltcG9ydC5sb2cKaW5kZXggYjMyNDI2NzE3NGYwZjIwNzFlODg5Njg1MjRjZGExMWMy
MWJjNWUzOC4uZjk0ZDc5YTU0N2U2YzVkYzBkMzVmYWEyNjU3NTk1OTZlZjBhZTY5NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDgg
KzE1LDE3IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SRUFE
TUUudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvYnVuZGxlLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0
cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL2NyeXB0by1zdWl0ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1maW5nZXJwcmlu
dC12YWxpZGF0aW9uLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2Utc3RhdGUuaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2ljZS11ZnJh
Z3B3ZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvanNlcC1pbml0aWFsLW9mZmVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9taXNzaW5n
LWZpZWxkcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvbXNpZC1wYXJzZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2N0cC1mb3JtYXQuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3NpbXVsY2FzdC1hbnN3ZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1vZmZlci5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
c3BsaXQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVjcy5odHRwcy5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9yZWNl
aXZlci10cmFjay1saXZlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3JlY2VpdmVyLXRyYWNrLWxpdmUuaHR0cHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlYTZiY2I5ZDNkZTJmNThlYzY2NTA3MDU0ODM2NDFj
MjgzZjQzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9yZWNlaXZlci10cmFjay1saXZlLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKKworCitQQVNTIFNldHVwIGF1ZGlvIGNhbGwgCitGQUlMIElu
YWN0aXZhdGUgdGhlIGF1ZGlvIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJs
aXZlIiBidXQgZ290ICJlbmRlZCIKK0ZBSUwgUmVhY3RpdmF0ZSB0aGUgYXVkaW8gdHJhbnNjZWl2
ZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImxpdmUiIGJ1dCBnb3QgImVuZGVkIgorUEFTUyBD
bGVhbi11cCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcmVjZWl2ZXItdHJhY2stbGl2ZS5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcmVjZWl2ZXItdHJh
Y2stbGl2ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNDE3MjRmYjU5MDE1MDY1NzU5YTA3MmEy
ZTE2YzgyNThhNTZmMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9yZWNlaXZlci10cmFjay1saXZlLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVtb3RlIHRyYWNrcyBzaG91bGQg
bm90IGdldCBlbmRlZCBleGNlcHQgZm9yIHN0b3AvY2xvc2U8L3RpdGxlPgorICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8dmlkZW8gaWQ9InZpZGVvIiBjb250cm9scyBhdXRvcGxheSBwbGF5c2lubGlu
ZT48L3ZpZGVvPgorICAgIDxzY3JpcHQ+CisgICAgbGV0IHBjMSwgcGMyOworICAgIGxldCBsb2Nh
bFRyYWNrLCByZW1vdGVUcmFjazsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsK
KyAgICAgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICAgICAgbG9jYWxUcmFjayA9IGxvY2Fs
U3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisKKyAgICAgICAgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgICAgIHBjMS5hZGRUcmFjayhsb2NhbFRyYWNrLCBsb2NhbFN0cmVh
bSk7CisgICAgICAgIHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICAgIGxl
dCB0cmFja1Byb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHBj
Mi5vbnRyYWNrID0gZSA9PiByZXNvbHZlKGUudHJhY2spOworICAgICAgICB9KTsKKworICAgICAg
ICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICAgICAgICBhd2FpdCBleGNoYW5n
ZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKworICAgICAgICByZW1vdGVUcmFjayA9IGF3YWl0IHRy
YWNrUHJvbWlzZTsKKyAgICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gbmV3IE1lZGlhU3RyZWFtKFty
ZW1vdGVUcmFja10pOworICAgICAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisgICAgfSwgIlNldHVw
IGF1ZGlvIGNhbGwiKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAg
ICAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uZGlyZWN0aW9uID0gImluYWN0aXZlIjsKKwor
ICAgICAgICBsZXQgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgICAgICAgYXdh
aXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworCisgICAgICAgIC8vIExldCdzIHJl
bW92ZSBzc3JjIGxpbmVzCisgICAgICAgIGxldCBzZHBMaW5lcyA9IG9mZmVyLnNkcC5zcGxpdCgi
XHJcbiIpOworICAgICAgICBvZmZlci5zZHAgPSBzZHBMaW5lcy5maWx0ZXIobGluZSA9PiBsaW5l
ICYmICFsaW5lLnN0YXJ0c1dpdGgoImE9c3NyYyIpKS5qb2luKCJcclxuIikgKyAiXHJcbiI7CisK
KyAgICAgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgICAg
bGV0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgICAgICAgYXdhaXQgcGMy
LnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgICAgICAgYXdhaXQgcGMxLnNldFJlbW90
ZURlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZW1vdGVUcmFj
ay5yZWFkeVN0YXRlLCAibGl2ZSIpOworICAgIH0sICJJbmFjdGl2YXRlIHRoZSBhdWRpbyB0cmFu
c2NlaXZlciIpOworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgICAg
IHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5kaXJlY3Rpb24gPSAic2VuZG9ubHkiOworCisgICAg
ICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworCisgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVtb3RlVHJhY2sucmVhZHlTdGF0ZSwgImxpdmUiKTsKKyAgICB9LCAiUmVhY3Rp
dmF0ZSB0aGUgYXVkaW8gdHJhbnNjZWl2ZXIiKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgICAgICBwYzEuY2xvc2UoKTsKKyAgICAgICAgcGMyLmNsb3NlKCk7Cisg
ICAgICAgIGxvY2FsVHJhY2suc3RvcCgpOworICAgIH0sICJDbGVhbi11cCIpOworICAgIDwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vY2FuVHJpY2ts
ZUljZUNhbmRpZGF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vY2FuVHJpY2tsZUljZUNh
bmRpZGF0ZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMmI3
NTlmMzBhMjI1Y2ZjNDk0Y2EyMmFiMTZmYzg4ZjZkN2RlOTE4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL2NhblRyaWNrbGVJY2VDYW5k
aWRhdGVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi1GQUlM
IGNhblRyaWNrbGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5IGlzIG51bGwgcHJpb3IgdG8gc2V0UmVt
b3RlRGVzY3JpcHRpb24gYXNzZXJ0X2VxdWFsczogY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMgcHJv
cGVydHkgaXMgbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkg
dW5kZWZpbmVkCi1GQUlMIGNhblRyaWNrbGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5IGlzIHRydWUg
YWZ0ZXIgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhPWljZS1vcHRpb25zOnRyaWNrbGUgYXNz
ZXJ0X3RydWU6IGNhblRyaWNrbGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5IGlzIHRydWUgYWZ0ZXIg
c2V0UmVtb3RlRGVzY3JpcHRpb24gZXhwZWN0ZWQgdHJ1ZSBnb3QgdW5kZWZpbmVkCi1GQUlMIGNh
blRyaWNrbGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5IGlzIGZhbHNlIGFmdGVyIHNldFJlbW90ZURl
c2NyaXB0aW9uIHdpdGhvdXQgYT1pY2Utb3B0aW9uczp0cmlja2xlIGFzc2VydF9mYWxzZTogY2Fu
VHJpY2tsZUljZUNhbmRpZGF0ZXMgcHJvcGVydHkgaXMgZmFsc2UgYWZ0ZXIgc2V0UmVtb3RlRGVz
Y3JpcHRpb24gZXhwZWN0ZWQgZmFsc2UgZ290IHVuZGVmaW5lZAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29u
bmVjdGlvbi9jYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vY2FuVHJp
Y2tsZUljZUNhbmRpZGF0ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI1
NTkwMDA1ZDI2ZmE3OTFkMDdmMTBiNDdjYjI2ZmE0NDE1NjQ2NC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9jYW5Ucmlja2xlSWNlQ2Fu
ZGlkYXRlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotPCFkb2N0eXBlIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Ci0gIDx0aXRsZT5SVENQZWVyQ29ubmVj
dGlvbiBjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyB0ZXN0czwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9k
eT4KLSAgPCEtLSAgVGhlc2UgZmlsZXMgYXJlIGluIHBsYWNlIHdoZW4gZXhlY3V0aW5nIG9uIFcz
Qy4gIC0tPgotICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci0gIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAvLyB0ZXN0cyBzdXBw
b3J0IGZvciBSVENQZWVyQ29ubmVjdGlvbi5jYW5Ucmlja2xlSWNlQ2FuZGlkYXRlczoKLSAgLy8g
aHR0cDovL3czYy5naXRodWIuaW8vd2VicnRjLXBjLyNkb20tcnRjcGVlcmNvbm5lY3Rpb24tY2Fu
dHJpY2tsZWljZWNhbmRpZGF0ZXMKLSAgY29uc3Qgc2RwID0gJ3Y9MFxyXG4nICsKLSAgICAgICdv
PS0gMTY2ODU1MTc2NTE0NTIxOTY0IDIgSU4gSVA0IDEyNy4wLjAuMVxyXG4nICsKLSAgICAgICdz
PS1cclxuJyArCi0gICAgICAndD0wIDBcclxuJyArCi0gICAgICAnYT1pY2Utb3B0aW9uczp0cmlj
a2xlXHJcbicgKwotICAgICAgJ209YXVkaW8gOSBVRFAvVExTL1JUUC9TQVZQRiAxMTFcclxuJyAr
Ci0gICAgICAnYz1JTiBJUDQgMC4wLjAuMFxyXG4nICsKLSAgICAgICdhPXJ0Y3A6OSBJTiBJUDQg
MC4wLjAuMFxyXG4nICsKLSAgICAgICdhPWljZS11ZnJhZzpzb21ldWZyYWdcclxuJyArCi0gICAg
ICAnYT1pY2UtcHdkOnNvbWVsb25ncHdkd2l0aGVub3VnaHJhbmRvbW5lc3NcclxuJyArCi0gICAg
ICAnYT1maW5nZXJwcmludDpzaGEtMjU2IDhDOjcxOkIzOjhEOkE1OjM4OkZEOjhGOkE0OjJFOkEy
OjY1OjZDOjg2OjUyOkJDOkUwOjZFOjk0OkYyOjlGOjdDOjREOkI1OkRGOkFGOkFBOjZGOjQ0Ojkw
OjhEOkY0XHJcbicgKwotICAgICAgJ2E9c2V0dXA6YWN0cGFzc1xyXG4nICsKLSAgICAgICdhPXJ0
Y3AtbXV4XHJcbicgKwotICAgICAgJ2E9bWlkOm1pZDFcclxuJyArCi0gICAgICAnYT1zZW5kb25s
eVxyXG4nICsKLSAgICAgICdhPW1zaWQ6c3RyZWFtMSB0cmFjazFcclxuJyArCi0gICAgICAnYT1z
c3JjOjEwMDEgY25hbWU6c29tZVxyXG4nICsKLSAgICAgICdhPXJ0cG1hcDoxMTEgb3B1cy80ODAw
MC8yXHJcbic7Ci0KLSAgdGVzdChmdW5jdGlvbigpIHsKLSAgICB2YXIgcGMgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKLSAgICBhc3NlcnRfZXF1YWxzKHBjLmNhblRyaWNrbGVJY2VDYW5kaWRh
dGVzLCBudWxsLCAnY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMgcHJvcGVydHkgaXMgbnVsbCcpOwot
ICB9LCAnY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMgcHJvcGVydHkgaXMgbnVsbCBwcmlvciB0byBz
ZXRSZW1vdGVEZXNjcmlwdGlvbicpOwotCi0gIHByb21pc2VfdGVzdChmdW5jdGlvbigpIHsKLSAg
ICB2YXIgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLQotICAgIHJldHVybiBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXIn
LCBzZHA6IHNkcH0pKQotICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgYXNzZXJ0X3RydWUo
cGMuY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMsICdjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyBwcm9w
ZXJ0eSBpcyB0cnVlIGFmdGVyIHNldFJlbW90ZURlc2NyaXB0aW9uJyk7Ci0gICAgfSkKLSAgfSwg
J2NhblRyaWNrbGVJY2VDYW5kaWRhdGVzIHByb3BlcnR5IGlzIHRydWUgYWZ0ZXIgc2V0UmVtb3Rl
RGVzY3JpcHRpb24gd2l0aCBhPWljZS1vcHRpb25zOnRyaWNrbGUnKTsKLQotICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0K
LSAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24obmV3IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbih7dHlwZTogJ29mZmVyJywgc2RwOiBzZHAucmVwbGFjZSgnYT1pY2Utb3B0aW9uczp0cmlj
a2xlXHJcbicsICcnKX0pKQotICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgYXNzZXJ0X2Zh
bHNlKHBjLmNhblRyaWNrbGVJY2VDYW5kaWRhdGVzLCAnY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMg
cHJvcGVydHkgaXMgZmFsc2UgYWZ0ZXIgc2V0UmVtb3RlRGVzY3JpcHRpb24nKTsKLSAgICB9KQot
ICB9LCAnY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMgcHJvcGVydHkgaXMgZmFsc2UgYWZ0ZXIgc2V0
UmVtb3RlRGVzY3JpcHRpb24gd2l0aG91dCBhPWljZS1vcHRpb25zOnRyaWNrbGUnKTsKLTwvc2Ny
aXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9pY2VHYXRo
ZXJpbmdTdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9pY2VHYXRoZXJpbmdTdGF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzNDJiZWQxMGZkM2M3
ZDQ0MWYxMjUyNDNmNGM3YzA5MjU1ZWMyM2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vaWNlR2F0aGVyaW5nU3RhdGUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIFRlc3RzIHRoYXQgdGhlIElDRSBnYXRoZXJp
bmcgc3RhdGUgZW5kcyB1cCBhcyAiY29tcGxldGVkIiBhZnRlciBhcHBseWluZyBhIGxvY2FsIG9m
ZmVyLiBUZXN0IHRpbWVkIG91dAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9pY2VHYXRoZXJp
bmdTdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vaWNlR2F0aGVyaW5nU3RhdGUuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU3MmIwNGUyMTUzNWZhYThjMzU0Y2FmOGM3NTk3MjBi
N2Q0YTQzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVy
Y29ubmVjdGlvbi9pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICA8bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Ci0g
IDx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBJQ0VHYXRoZXJpbmdTdGF0ZSB0ZXN0czwvdGl0bGU+
Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPCEtLSAgVGhlc2UgZmlsZXMgYXJlIGluIHBsYWNlIHdoZW4g
ZXhlY3V0aW5nIG9uIFczQy4gIC0tPgotICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgot
ICBhc3luY190ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICB2YXIgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24obnVsbCk7Ci0KLSAgICBwYy5vbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdlID0gdGVz
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIGlmIChwYy5pY2VHYXRoZXJpbmdT
dGF0ZSA9PT0gJ2NvbXBsZXRlJykgewotICAgICAgICB0ZXN0LmRvbmUoKTsKLSAgICAgIH0KLSAg
ICB9KTsKLSAgICBwYy5jcmVhdGVPZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogMX0pCi0gICAg
LnRoZW4ob2ZmZXIgPT4gcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikpCi0gICAgLmNhdGNo
KHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoJ0Vy
cm9yICcgKyBlLm5hbWUgKyAnOiAnICsgZS5tZXNzYWdlKTsKLSAgICB9KSk7Ci0gIH0sICdUZXN0
cyB0aGF0IHRoZSBJQ0UgZ2F0aGVyaW5nIHN0YXRlIGVuZHMgdXAgYXMgImNvbXBsZXRlZCIgYWZ0
ZXIgYXBwbHlpbmcgYSBsb2NhbCBvZmZlci4nKTsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9ydGNjb25maWd1cmF0aW9uLWljZWNhbmRpZGF0
ZXBvb2xzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y2NvbmZpZ3VyYXRpb24taWNl
Y2FuZGlkYXRlcG9vbHNpemUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkNjczOWMyN2NhNzgwNjQ1MzJlODE2YzQ2YmJlZjQyZWM2OWNlOGFmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y2NvbmZp
Z3VyYXRpb24taWNlY2FuZGlkYXRlcG9vbHNpemUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOSArMCwwIEBACi0KLVBBU1MgU2V0dGluZyBpY2VDYW5kaWRhdGVQb29sU2l6ZSB0byBh
IHZhbGlkIHZhbHVlOiAxMCAKLVBBU1MgU2V0dGluZyBpY2VDYW5kaWRhdGVQb29sU2l6ZSB0byBh
IHZhbGlkIHZhbHVlOiAwIAotUEFTUyBTZXR0aW5nIGljZUNhbmRpZGF0ZVBvb2xTaXplIHRvIGEg
dmFsaWQgdmFsdWU6IG51bGwgCi1QQVNTIFNldHRpbmcgaWNlQ2FuZGlkYXRlUG9vbFNpemUgdG8g
YSB2YWxpZCB2YWx1ZTogdW5kZWZpbmVkIAotUEFTUyBTZXR0aW5nIGljZUNhbmRpZGF0ZVBvb2xT
aXplIHRvIGFuIGludmFsaWQgdmFsdWU6IC0xIAotUEFTUyBTZXR0aW5nIGljZUNhbmRpZGF0ZVBv
b2xTaXplIHRvIGFuIGludmFsaWQgdmFsdWU6IDEwMDAgCi1QQVNTIFNldHRpbmcgaWNlQ2FuZGlk
YXRlUG9vbFNpemUgdG8gYW4gaW52YWxpZCB2YWx1ZTogc3RyaW5nIAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVy
Y29ubmVjdGlvbi9ydGNjb25maWd1cmF0aW9uLWljZWNhbmRpZGF0ZXBvb2xzaXplLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVy
Y29ubmVjdGlvbi9ydGNjb25maWd1cmF0aW9uLWljZWNhbmRpZGF0ZXBvb2xzaXplLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwMDg2NjE3NGYxNjcyOTg4YjIzNDA2MWE5MjJk
YWU4ZTdlZTc4OWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRj
cGVlcmNvbm5lY3Rpb24vcnRjY29uZmlndXJhdGlvbi1pY2VjYW5kaWRhdGVwb29sc2l6ZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHRpdGxlPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBSVENDb25maWd1cmF0aW9uLmlj
ZUNhbmRpZGF0ZVBvb2xTaXplIGlzIHNldDwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1m
dW5jdGlvbiB0ZXN0VmFsaWRQb29sU2l6ZShzaXplLCBleHBlY3RlZFNpemUpCi17Ci0gICAgdGVz
dChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHtp
Y2VDYW5kaWRhdGVQb29sU2l6ZTogc2l6ZX0pCi0gICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0
Q29uZmlndXJhdGlvbigpLmljZUNhbmRpZGF0ZVBvb2xTaXplLCBleHBlY3RlZFNpemUgIT09IHVu
ZGVmaW5lZCA/IGV4cGVjdGVkU2l6ZSA6IHNpemUpCi0gICAgfSwgIlNldHRpbmcgaWNlQ2FuZGlk
YXRlUG9vbFNpemUgdG8gYSB2YWxpZCB2YWx1ZTogIiArIHNpemUpCi19Ci0KLWZ1bmN0aW9uIHRl
c3RJbnZhbGlkUG9vbFNpemUoc2l6ZSkKLXsKLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAg
ICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKHtpY2VDYW5kaWRhdGVQb29sU2l6ZTogc2l6ZX0pKQotICAgIH0sICJTZXR0aW5nIGljZUNh
bmRpZGF0ZVBvb2xTaXplIHRvIGFuIGludmFsaWQgdmFsdWU6ICIgKyBzaXplKQotfQotCi10ZXN0
VmFsaWRQb29sU2l6ZSgxMCkKLXRlc3RWYWxpZFBvb2xTaXplKDApCi10ZXN0VmFsaWRQb29sU2l6
ZShudWxsLCAwKQotdGVzdFZhbGlkUG9vbFNpemUodW5kZWZpbmVkLCAwKQotCi10ZXN0SW52YWxp
ZFBvb2xTaXplKC0xKQotdGVzdEludmFsaWRQb29sU2l6ZSgxMDAwKQotdGVzdEludmFsaWRQb29s
U2l6ZSgic3RyaW5nIikKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVl
cmNvbm5lY3Rpb24vcnRjcGVlcmNvbm5lY3Rpb24tY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVl
cmNvbm5lY3Rpb24vcnRjcGVlcmNvbm5lY3Rpb24tY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNGUxNWNmMjE3NThlNjZlMTJiMWRlZDBiNTI2
NTgyN2ZiMjM3ZDYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0
Y3BlZXJjb25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLQotUEFTUyBSVENQZWVyQ29ubmVjdGlv
bi5sZW5ndGggCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpIAotUEFTUyBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24obnVsbCkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih1bmRlZmluZWQp
IAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe30pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oeyBpY2VTZXJ2ZXJzOiBudWxsIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
eyBpY2VTZXJ2ZXJzOiB1bmRlZmluZWQgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7
IGljZVNlcnZlcnM6IFtdIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2
ZXJzOiBbe31dIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBb
bnVsbF0gfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt1bmRl
ZmluZWRdIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1
cmxzOiAic3R1bjpzdHVuMS5leGFtcGxlLm5ldCIgfV0gfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29u
bmVjdGlvbih7IGljZVNlcnZlcnM6IFt7IHVybHM6IFtdIH1dIH0pIAotUEFTUyBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbInN0dW46c3R1bjEuZXhhbXBsZS5u
ZXQiXSB9XSB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogW3sg
dXJsczogWyJzdHVuOnN0dW4xLmV4YW1wbGUubmV0IiwgInN0dW46c3R1bjIuZXhhbXBsZS5uZXQi
XSB9XSB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogW3sgdXJs
czogInR1cm5zOnR1cm4uZXhhbXBsZS5vcmciLCB1c2VybmFtZTogInVzZXIiLCBjcmVkZW50aWFs
OiAiY3JlZCIgfV0gfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6
IFt7IHVybHM6ICJ0dXJuOnR1cm4uZXhhbXBsZS5uZXQiLCB1c2VybmFtZTogInVzZXIiLCBjcmVk
ZW50aWFsOiAiY3JlZCIgfV0gfSkgCi1GQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNl
cnZlcnM6IFt7IHVybHM6ICJ0dXJuczp0dXJuLmV4YW1wbGUub3JnIiwgdXNlcm5hbWU6ICIiLCBj
cmVkZW50aWFsOiAiIiB9XSB9KSBCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzCi1GQUlMIG5l
dyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJ0dXJuOnR1cm4uZXhh
bXBsZS5uZXQiLCB1c2VybmFtZTogIiIsIGNyZWRlbnRpYWw6ICIiIH1dIH0pIEJhZCBDb25maWd1
cmF0aW9uIFBhcmFtZXRlcnMKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVy
czogW3sgdXJsczogWyJ0dXJuczp0dXJuLmV4YW1wbGUub3JnIiwgInR1cm46dHVybi5leGFtcGxl
Lm5ldCJdLCB1c2VybmFtZTogInVzZXIiLCBjcmVkZW50aWFsOiAiY3JlZCIgfV0gfSkgCi1QQVNT
IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJzdHVuOnN0dW4x
LmV4YW1wbGUubmV0IiwgY3JlZGVudGlhbFR5cGU6ICJwYXNzd29yZCIgfV0gfSkgCi1QQVNTIG5l
dyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJzdHVuOnN0dW4xLmV4
YW1wbGUubmV0IiwgY3JlZGVudGlhbFR5cGU6ICJ0b2tlbiIgfV0gfSkgCi1QQVNTIG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJ0dXJuOnR1cm4uZXhhbXBsZS5u
ZXQiIH1dIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1
cmxzOiAidHVybjp0dXJuLmV4YW1wbGUubmV0IiwgdXNlcm5hbWU6ICJ1c2VyIiB9XSB9KSAKLVBB
U1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogW3sgdXJsczogInR1cm46dHVy
bi5leGFtcGxlLm5ldCIsIGNyZWRlbnRpYWw6ICJjcmVkIiB9XSB9KSAKLVBBU1MgbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogW3sgdXJsczogInR1cm5zOnR1cm4uZXhhbXBsZS5v
cmciIH1dIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1
cmxzOiAidHVybnM6dHVybi5leGFtcGxlLm9yZyIsIHVzZXJuYW1lOiAidXNlciIgfV0gfSkgCi1Q
QVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJ0dXJuczp0
dXJuLmV4YW1wbGUub3JnIiwgY3JlZGVudGlhbDogImNyZWQiIH1dIH0pIAotRkFJTCBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAicmVsYXRpdmUtdXJsIiB9XSB9
KSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgICAgICBldmFsKGV4
cHIpOwotICAgICAgfSIgdGhyZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogSUNFIHNlcnZl
ciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDksIGV4cGVjdGVkIDEyCi1GQUlM
IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJodHRwOi8vZXhh
bXBsZS5jb20iIH1dIH0pIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGV2YWwoZXhwcik7Ci0gICAgICB9IiB0aHJldyBvYmplY3QgIk5vdFN1cHBvcnRlZEVy
cm9yOiBJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiIHRoYXQgaXMgbm90IGEgRE9N
RXhjZXB0aW9uIFN5bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gOSwgZXhw
ZWN0ZWQgMTIKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVyczogW3sgdXJs
czogW10sIGNyZWRlbnRpYWxUeXBlOiAicGFzc3dvcmQiIH1dIH0pIAotUEFTUyBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oeyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbXSwgY3JlZGVudGlhbFR5cGU6ICJ0
b2tlbiIgfV0gfSkgCi1GQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt7
IHVybHM6IFtdLCBjcmVkZW50aWFsVHlwZTogImludmFsaWQiIH1dIH0pIGFzc2VydF90aHJvd3M6
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGV2YWwoZXhwcik7Ci0gICAgICB9IiBk
aWQgbm90IHRocm93Ci1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnM6IFt7
IHVybDogInN0dW46c3R1bjEuZXhhbXBsZS5uZXQiIH1dIH0pIAotUEFTUyBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oeyBpY2VUcmFuc3BvcnRQb2xpY3k6IG51bGwgfSkgCi1QQVNTIG5ldyBSVENQZWVy
Q29ubmVjdGlvbih7IGljZVRyYW5zcG9ydFBvbGljeTogdW5kZWZpbmVkIH0pIAotUEFTUyBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oeyBpY2VUcmFuc3BvcnRQb2xpY3k6ICJyZWxheSIgfSkgCi1QQVNT
IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVRyYW5zcG9ydFBvbGljeTogImFsbCIgfSkgCi1Q
QVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVRyYW5zcG9ydFBvbGljeTogImludmFsaWQi
IH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VUcmFuc3BvcnRQb2xpY3k6ICJu
b25lIiB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlVHJhbnNwb3J0czogImlu
dmFsaWQiIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBpY2VUcmFuc3BvcnRzOiAi
bm9uZSIgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGJ1bmRsZVBvbGljeTogbnVs
bCB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgYnVuZGxlUG9saWN5OiB1bmRlZmlu
ZWQgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGJ1bmRsZVBvbGljeTogImJhbGFu
Y2VkIiB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgYnVuZGxlUG9saWN5OiAibWF4
LWNvbXBhdCIgfSkgCi1QQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGJ1bmRsZVBvbGljeTog
Im1heC1idW5kbGUiIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBidW5kbGVQb2xp
Y3k6ICJpbnZhbGlkIiB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgcnRjcE11eFBv
bGljeTogbnVsbCB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgcnRjcE11eFBvbGlj
eTogdW5kZWZpbmVkIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBydGNwTXV4UG9s
aWN5OiAibmVnb3RpYXRlIiB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgcnRjcE11
eFBvbGljeTogInJlcXVpcmUiIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBydGNw
TXV4UG9saWN5OiAiaW52YWxpZCIgfSkgCi1GQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IHBl
ZXJJZGVudGl0eTogdG9TdHJpbmdUaHJvd3MgfSkgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKLSAgICAgICAgZXZhbChleHByKTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cK
LVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgY2VydGlmaWNhdGVzOiBudWxsIH0pIAotUEFT
UyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBjZXJ0aWZpY2F0ZXM6IHVuZGVmaW5lZCB9KSAKLVBB
U1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgY2VydGlmaWNhdGVzOiBbXSB9KSAKLVBBU1MgbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKHsgY2VydGlmaWNhdGVzOiBbbnVsbF0gfSkgCi1QQVNTIG5ldyBS
VENQZWVyQ29ubmVjdGlvbih7IGNlcnRpZmljYXRlczogW3VuZGVmaW5lZF0gfSkgCi1QQVNTIG5l
dyBSVENQZWVyQ29ubmVjdGlvbih7IGljZUNhbmRpZGF0ZVBvb2xTaXplOiB0b051bWJlclRocm93
cyB9KSAKLVBBU1MgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgY2VydGlmaWNhdGVzOiBbY2VydGlm
aWNhdGVdIH0pIAotUEFTUyBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBjZXJ0aWZpY2F0ZXM6IFtl
eHBpcmVkQ2VydGlmaWNhdGVdIH0pIAotUEFTUyBsb2NhbERlc2NyaXB0aW9uIGluaXRpYWwgdmFs
dWUgCi1QQVNTIGN1cnJlbnRMb2NhbERlc2NyaXB0aW9uIGluaXRpYWwgdmFsdWUgCi1QQVNTIHBl
bmRpbmdMb2NhbERlc2NyaXB0aW9uIGluaXRpYWwgdmFsdWUgCi1QQVNTIHJlbW90ZURlc2NyaXB0
aW9uIGluaXRpYWwgdmFsdWUgCi1QQVNTIGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBpbml0aWFs
IHZhbHVlIAotUEFTUyBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gaW5pdGlhbCB2YWx1ZSAKLVBB
U1Mgc2lnbmFsaW5nU3RhdGUgaW5pdGlhbCB2YWx1ZSAKLVBBU1MgaWNlR2F0aGVyaW5nU3RhdGUg
aW5pdGlhbCB2YWx1ZSAKLVBBU1MgaWNlQ29ubmVjdGlvblN0YXRlIGluaXRpYWwgdmFsdWUgCi1Q
QVNTIGNvbm5lY3Rpb25TdGF0ZSBpbml0aWFsIHZhbHVlIAotRkFJTCBjYW5Ucmlja2xlSWNlQ2Fu
ZGlkYXRlcyBpbml0aWFsIHZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG51
bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rp
b24vcnRjcGVlcmNvbm5lY3Rpb24tY29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y3Bl
ZXJjb25uZWN0aW9uLWNvbnN0cnVjdG9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGVlMzUyYWM4NGYzM2Q1ZTZhNTQ2YzM1OGQ2YTY0MDc5MDE4ZDliOWIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vcnRjcGVlcmNv
bm5lY3Rpb24tY29uc3RydWN0b3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1NiArMCwwIEBA
Ci08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+UlRDUGVlckNv
bm5lY3Rpb24gY29uc3RydWN0b3I8L3RpdGxlPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdGVzdChmdW5jdGlvbigpIHsKLSAgYXNzZXJ0
X2VxdWFscyhSVENQZWVyQ29ubmVjdGlvbi5sZW5ndGgsIDApOwotfSwgJ1JUQ1BlZXJDb25uZWN0
aW9uLmxlbmd0aCcpOwotCi0vLyBUaGVzZSBhcmUgdXNlZCBmb3Igc3RyaW5nIGFuZCBudW1iZXIg
ZGljdGlvbmFyeSBtZW1iZXJzIHRvIHNlZSBpZiB0aGV5IGFyZQotLy8gYmVpbmcgYWNjZXNzZWQg
YXQgYWxsLgotY29uc3QgdG9TdHJpbmdUaHJvd3MgPSB7IHRvU3RyaW5nOiBmdW5jdGlvbigpIHsg
dGhyb3cgbmV3IEVycm9yOyB9IH07Ci1jb25zdCB0b051bWJlclRocm93cyA9IFN5bWJvbCgpOwot
Ci0vLyBUZXN0IHRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgY29uc3RydWN0b3IuIFRoZSBrZXkg
aXMgdGhlIGFyZ3VtZW50IGl0c2VsZiwKLS8vIGFuZCB0aGUgdmFsdWUgaXMgdGhlIGZpcnN0IGFy
Z3VtZW50IGZvciBhc3NlcnRfdGhyb3dzLCBvciBmYWxzZSBpZiBubwotLy8gZXhjZXB0aW9uIHNo
b3VsZCBiZSB0aHJvd24uCi1jb25zdCB0ZXN0QXJncyA9IHsKLSAgLy8gTm8gYXJndW1lbnQgb3Ig
ZXF1aXZhbGVudC4KLSAgJyc6IGZhbHNlLAotICAnbnVsbCc6IGZhbHNlLAotICAndW5kZWZpbmVk
JzogZmFsc2UsCi0gICd7fSc6IGZhbHNlLAotCi0gIC8vIGljZVNlcnZlcnMKLSAgJ3sgaWNlU2Vy
dmVyczogbnVsbCB9JzogbmV3IFR5cGVFcnJvciwKLSAgJ3sgaWNlU2VydmVyczogdW5kZWZpbmVk
IH0nOiBmYWxzZSwKLSAgJ3sgaWNlU2VydmVyczogW10gfSc6IGZhbHNlLAotICAneyBpY2VTZXJ2
ZXJzOiBbe31dIH0nOiBuZXcgVHlwZUVycm9yLAotICAneyBpY2VTZXJ2ZXJzOiBbbnVsbF0gfSc6
IG5ldyBUeXBlRXJyb3IsCi0gICd7IGljZVNlcnZlcnM6IFt1bmRlZmluZWRdIH0nOiBuZXcgVHlw
ZUVycm9yLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAic3R1bjpzdHVuMS5leGFtcGxlLm5l
dCIgfV0gfSc6IGZhbHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbXSB9XSB9JzogZmFs
c2UsCi0gICd7IGljZVNlcnZlcnM6IFt7IHVybHM6IFsic3R1bjpzdHVuMS5leGFtcGxlLm5ldCJd
IH1dIH0nOiBmYWxzZSwKLSAgJ3sgaWNlU2VydmVyczogW3sgdXJsczogWyJzdHVuOnN0dW4xLmV4
YW1wbGUubmV0IiwgInN0dW46c3R1bjIuZXhhbXBsZS5uZXQiXSB9XSB9JzogZmFsc2UsCi0gIC8v
IHVzZXJuYW1lIGFuZCBwYXNzd29yZCByZXF1aXJlZCBmb3IgdHVybjogYW5kIHR1cm5zOgotICAn
eyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAidHVybnM6dHVybi5leGFtcGxlLm9yZyIsIHVzZXJuYW1l
OiAidXNlciIsIGNyZWRlbnRpYWw6ICJjcmVkIiB9XSB9JzogZmFsc2UsCi0gICd7IGljZVNlcnZl
cnM6IFt7IHVybHM6ICJ0dXJuOnR1cm4uZXhhbXBsZS5uZXQiLCB1c2VybmFtZTogInVzZXIiLCBj
cmVkZW50aWFsOiAiY3JlZCIgfV0gfSc6IGZhbHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxz
OiAidHVybnM6dHVybi5leGFtcGxlLm9yZyIsIHVzZXJuYW1lOiAiIiwgY3JlZGVudGlhbDogIiIg
fV0gfSc6IGZhbHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAidHVybjp0dXJuLmV4YW1w
bGUubmV0IiwgdXNlcm5hbWU6ICIiLCBjcmVkZW50aWFsOiAiIiB9XSB9JzogZmFsc2UsCi0gICd7
IGljZVNlcnZlcnM6IFt7IHVybHM6IFsidHVybnM6dHVybi5leGFtcGxlLm9yZyIsICJ0dXJuOnR1
cm4uZXhhbXBsZS5uZXQiXSwgdXNlcm5hbWU6ICJ1c2VyIiwgY3JlZGVudGlhbDogImNyZWQiIH1d
IH0nOiBmYWxzZSwKLSAgJ3sgaWNlU2VydmVyczogW3sgdXJsczogInN0dW46c3R1bjEuZXhhbXBs
ZS5uZXQiLCBjcmVkZW50aWFsVHlwZTogInBhc3N3b3JkIiB9XSB9JzogZmFsc2UsCi0gICd7IGlj
ZVNlcnZlcnM6IFt7IHVybHM6ICJzdHVuOnN0dW4xLmV4YW1wbGUubmV0IiwgY3JlZGVudGlhbFR5
cGU6ICJ0b2tlbiIgfV0gfSc6IGZhbHNlLAotICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiAidHVy
bjp0dXJuLmV4YW1wbGUubmV0IiB9XSB9JzogJ0ludmFsaWRBY2Nlc3NFcnJvcicsCi0gICd7IGlj
ZVNlcnZlcnM6IFt7IHVybHM6ICJ0dXJuOnR1cm4uZXhhbXBsZS5uZXQiLCB1c2VybmFtZTogInVz
ZXIiIH1dIH0nOiAnSW52YWxpZEFjY2Vzc0Vycm9yJywKLSAgJ3sgaWNlU2VydmVyczogW3sgdXJs
czogInR1cm46dHVybi5leGFtcGxlLm5ldCIsIGNyZWRlbnRpYWw6ICJjcmVkIiB9XSB9JzogJ0lu
dmFsaWRBY2Nlc3NFcnJvcicsCi0gICd7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJ0dXJuczp0dXJu
LmV4YW1wbGUub3JnIiB9XSB9JzogJ0ludmFsaWRBY2Nlc3NFcnJvcicsCi0gICd7IGljZVNlcnZl
cnM6IFt7IHVybHM6ICJ0dXJuczp0dXJuLmV4YW1wbGUub3JnIiwgdXNlcm5hbWU6ICJ1c2VyIiB9
XSB9JzogJ0ludmFsaWRBY2Nlc3NFcnJvcicsCi0gICd7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJ0
dXJuczp0dXJuLmV4YW1wbGUub3JnIiwgY3JlZGVudGlhbDogImNyZWQiIH1dIH0nOiAnSW52YWxp
ZEFjY2Vzc0Vycm9yJywKLSAgJ3sgaWNlU2VydmVyczogW3sgdXJsczogInJlbGF0aXZlLXVybCIg
fV0gfSc6ICdTeW50YXhFcnJvcicsCi0gICd7IGljZVNlcnZlcnM6IFt7IHVybHM6ICJodHRwOi8v
ZXhhbXBsZS5jb20iIH1dIH0nOiAnU3ludGF4RXJyb3InLAotICAvLyBjcmVkZW50aWFsVHlwZQot
ICAneyBpY2VTZXJ2ZXJzOiBbeyB1cmxzOiBbXSB9XSB9JzogZmFsc2UsCi0gICd7IGljZVNlcnZl
cnM6IFt7IHVybHM6IFtdLCBjcmVkZW50aWFsVHlwZTogInBhc3N3b3JkIiB9XSB9JzogZmFsc2Us
Ci0gICd7IGljZVNlcnZlcnM6IFt7IHVybHM6IFtdLCBjcmVkZW50aWFsVHlwZTogInRva2VuIiB9
XSB9JzogZmFsc2UsCi0gICd7IGljZVNlcnZlcnM6IFt7IHVybHM6IFtdLCBjcmVkZW50aWFsVHlw
ZTogImludmFsaWQiIH1dIH0nOiBuZXcgVHlwZUVycm9yLAotICAvLyBCbGluayBhbmQgR2Vja28g
ZmFsbCBiYWNrIHRvIHVybCwgYnV0IGl0J3Mgbm90IGluIHRoZSBzcGVjLgotICAneyBpY2VTZXJ2
ZXJzOiBbeyB1cmw6ICJzdHVuOnN0dW4xLmV4YW1wbGUubmV0IiB9XSB9JzogbmV3IFR5cGVFcnJv
ciwKLQotICAvLyBpY2VUcmFuc3BvcnRQb2xpY3kKLSAgJ3sgaWNlVHJhbnNwb3J0UG9saWN5OiBu
dWxsIH0nOiBuZXcgVHlwZUVycm9yLAotICAneyBpY2VUcmFuc3BvcnRQb2xpY3k6IHVuZGVmaW5l
ZCB9JzogZmFsc2UsCi0gICd7IGljZVRyYW5zcG9ydFBvbGljeTogInJlbGF5IiB9JzogZmFsc2Us
Ci0gICd7IGljZVRyYW5zcG9ydFBvbGljeTogImFsbCIgfSc6IGZhbHNlLAotICAneyBpY2VUcmFu
c3BvcnRQb2xpY3k6ICJpbnZhbGlkIiB9JzogbmV3IFR5cGVFcnJvciwKLSAgLy8gIm5vbmUiIGlz
IGluIEJsaW5rIGFuZCBHZWNrbydzIElETCwgYnV0IG5vdCBpbiB0aGUgc3BlYy4KLSAgJ3sgaWNl
VHJhbnNwb3J0UG9saWN5OiAibm9uZSIgfSc6IG5ldyBUeXBlRXJyb3IsCi0gIC8vIGljZVRyYW5z
cG9ydFBvbGljeSBpcyBjYWxsZWQgaWNlVHJhbnNwb3J0cyBpbiBCbGluay4KLSAgJ3sgaWNlVHJh
bnNwb3J0czogImludmFsaWQiIH0nOiBmYWxzZSwKLSAgJ3sgaWNlVHJhbnNwb3J0czogIm5vbmUi
IH0nOiBmYWxzZSwKLQotICAvLyBidW5kbGVQb2xpY3kKLSAgJ3sgYnVuZGxlUG9saWN5OiBudWxs
IH0nOiBuZXcgVHlwZUVycm9yLAotICAneyBidW5kbGVQb2xpY3k6IHVuZGVmaW5lZCB9JzogZmFs
c2UsCi0gICd7IGJ1bmRsZVBvbGljeTogImJhbGFuY2VkIiB9JzogZmFsc2UsCi0gICd7IGJ1bmRs
ZVBvbGljeTogIm1heC1jb21wYXQiIH0nOiBmYWxzZSwKLSAgJ3sgYnVuZGxlUG9saWN5OiAibWF4
LWJ1bmRsZSIgfSc6IGZhbHNlLAotICAneyBidW5kbGVQb2xpY3k6ICJpbnZhbGlkIiB9JzogbmV3
IFR5cGVFcnJvciwKLQotICAvLyBydGNwTXV4UG9saWN5Ci0gICd7IHJ0Y3BNdXhQb2xpY3k6IG51
bGwgfSc6IG5ldyBUeXBlRXJyb3IsCi0gICd7IHJ0Y3BNdXhQb2xpY3k6IHVuZGVmaW5lZCB9Jzog
ZmFsc2UsCi0gICd7IHJ0Y3BNdXhQb2xpY3k6ICJuZWdvdGlhdGUiIH0nOiBmYWxzZSwKLSAgJ3sg
cnRjcE11eFBvbGljeTogInJlcXVpcmUiIH0nOiBmYWxzZSwKLSAgJ3sgcnRjcE11eFBvbGljeTog
ImludmFsaWQiIH0nOiBuZXcgVHlwZUVycm9yLAotCi0gIC8vIHBlZXJJZGVudGl0eQotICAneyBw
ZWVySWRlbnRpdHk6IHRvU3RyaW5nVGhyb3dzIH0nOiBuZXcgRXJyb3IsCi0KLSAgLy8gY2VydGlm
aWNhdGVzCi0gICd7IGNlcnRpZmljYXRlczogbnVsbCB9JzogbmV3IFR5cGVFcnJvciwKLSAgJ3sg
Y2VydGlmaWNhdGVzOiB1bmRlZmluZWQgfSc6IGZhbHNlLAotICAneyBjZXJ0aWZpY2F0ZXM6IFtd
IH0nOiBmYWxzZSwKLSAgJ3sgY2VydGlmaWNhdGVzOiBbbnVsbF0gfSc6IG5ldyBUeXBlRXJyb3Is
Ci0gICd7IGNlcnRpZmljYXRlczogW3VuZGVmaW5lZF0gfSc6IG5ldyBUeXBlRXJyb3IsCi0KLSAg
Ly8gaWNlQ2FuZGlkYXRlUG9vbFNpemUKLSAgJ3sgaWNlQ2FuZGlkYXRlUG9vbFNpemU6IHRvTnVt
YmVyVGhyb3dzIH0nOiBuZXcgVHlwZUVycm9yLAotfQotCi1mb3IgKGNvbnN0IGFyZyBpbiB0ZXN0
QXJncykgewotICBjb25zdCBleHByID0gJ25ldyBSVENQZWVyQ29ubmVjdGlvbignICsgYXJnICsg
JyknOwotICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgIGNvbnN0IHRocm93cyA9IHRlc3RBcmdzW2Fy
Z107Ci0gICAgaWYgKHRocm93cykgewotICAgICAgYXNzZXJ0X3Rocm93cyh0aHJvd3MsIGZ1bmN0
aW9uKCkgewotICAgICAgICBldmFsKGV4cHIpOwotICAgICAgfSk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgIGV2YWwoZXhwcik7Ci0gICAgfQotICB9LCBleHByKTsKLX0KLQotcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKCkgewotICByZXR1cm4gUlRDUGVlckNvbm5lY3Rpb24uZ2VuZXJhdGVDZXJ0aWZpY2F0
ZSh7IG5hbWU6ICJFQ0RTQSIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSkKLSAgICAgIC50aGVuKGNl
cnRpZmljYXRlID0+IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGNlcnRpZmljYXRlczogW2NlcnRp
ZmljYXRlXSB9KSk7Ci19LCAnbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgY2VydGlmaWNhdGVzOiBb
Y2VydGlmaWNhdGVdIH0pJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbigpIHsKLSAgcmV0dXJu
IFJUQ1BlZXJDb25uZWN0aW9uLmdlbmVyYXRlQ2VydGlmaWNhdGUoeyBuYW1lOiAiRUNEU0EiLCBu
YW1lZEN1cnZlOiAiUC0yNTYiLCBleHBpcmVzOiAwIH0pCi0gICAgICAudGhlbihjZXJ0aWZpY2F0
ZSA9PiB7Ci0gICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoY2VydGlmaWNhdGUuZXhwaXJl
cywgRGF0ZS5ub3coKSk7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRBY2Nlc3NFcnJv
cicsIGZ1bmN0aW9uKCkgewotICAgICAgICAgIG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGNlcnRp
ZmljYXRlczogW2NlcnRpZmljYXRlXSB9KTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsKLX0sICdu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBjZXJ0aWZpY2F0ZXM6IFtleHBpcmVkQ2VydGlmaWNhdGVd
IH0pJyk7Ci0KLS8vIFRoZSBpbml0aWFsIHZhbHVlcyBvZiBhdHRyaWJ1dGVzIG9mIFJUQ1BlZXJD
b25uZWN0aW9uLgotY29uc3QgaW5pdGlhbFN0YXRlID0gewotICAnbG9jYWxEZXNjcmlwdGlvbic6
IG51bGwsCi0gICdjdXJyZW50TG9jYWxEZXNjcmlwdGlvbic6IG51bGwsCi0gICdwZW5kaW5nTG9j
YWxEZXNjcmlwdGlvbic6IG51bGwsCi0gICdyZW1vdGVEZXNjcmlwdGlvbic6IG51bGwsCi0gICdj
dXJyZW50UmVtb3RlRGVzY3JpcHRpb24nOiBudWxsLAotICAncGVuZGluZ1JlbW90ZURlc2NyaXB0
aW9uJzogbnVsbCwKLSAgJ3NpZ25hbGluZ1N0YXRlJzogJ3N0YWJsZScsCi0gICdpY2VHYXRoZXJp
bmdTdGF0ZSc6ICduZXcnLAotICAnaWNlQ29ubmVjdGlvblN0YXRlJzogJ25ldycsCi0gICdjb25u
ZWN0aW9uU3RhdGUnOiAnbmV3JywKLSAgJ2NhblRyaWNrbGVJY2VDYW5kaWRhdGVzJzogbnVsbCwK
LSAgLy8gVE9ETzogZGVmYXVsdEljZVNlcnZlcnMKLX07Ci0KLWZvciAoY29uc3QgYXR0ciBpbiBp
bml0aWFsU3RhdGUpIHsKLSAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAvLyBVc2Ugb25lIFJUQ1Bl
ZXJDb25uZWN0aW9uIGluc3RhbmNlIGZvciBhbGwgaW5pdGlhbCB2YWx1ZSB0ZXN0cy4KLSAgICBp
ZiAoIXdpbmRvdy5wYykgewotICAgICAgd2luZG93LnBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
OwotICAgIH0KLSAgICBhc3NlcnRfZXF1YWxzKHBjW2F0dHJdLCBpbml0aWFsU3RhdGVbYXR0cl0p
OwotICB9LCBhdHRyICsgJyBpbml0aWFsIHZhbHVlJyk7Ci19Ci08L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0
Y3BlZXJjb25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWlkbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29u
bmVjdGlvbi9ydGNwZWVyY29ubmVjdGlvbi1pZGwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0Nzc5ZDk0MDhhOGQ2YTZiODBmYThkZjVmZTc2YzExN2ExYTM0MmRk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0
aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWlkbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxNDkgKzAsMCBAQAotRGVzY3JpcHRpb24KLQotVGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBhdmFp
bGFiaWxpdHkgb2YgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZS4KLQotCi1QQVNTIFBh
cnRpYWwgaW50ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVm
aW5lZCAKLVBBU1MgUGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb25bMl06IG9yaWdp
bmFsIGludGVyZmFjZSBkZWZpbmVkIAotUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29u
bmVjdGlvblszXTogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgCi1QQVNTIFBhcnRpYWwgaW50
ZXJmYWNlIFJUQ1BlZXJDb25uZWN0aW9uWzRdOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAK
LVBBU1MgUGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb25bNV06IG9yaWdpbmFsIGlu
dGVyZmFjZSBkZWZpbmVkIAotUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlv
bls2XTogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgCi1QQVNTIFBhcnRpYWwgaW50ZXJmYWNl
IFJUQ1BlZXJDb25uZWN0aW9uWzddOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKLVBBU1Mg
RXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCAKLVBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCi1Q
QVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZSBvYmplY3QgbmFtZSAKLVBBU1MgRXZlbnRUYXJnZXQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCi1QQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eSAKLVBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5
IAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2Ugb2JqZWN0IGxlbmd0aCAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlIG9iamVj
dCBuYW1lIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKLVBBU1MgUlRDUGVlckNv
bm5lY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAotUEFTUyBSVENQZWVy
Q29ubmVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1QQVNTIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0
aW9ucykgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGNyZWF0
ZUFuc3dlcihSVENBbnN3ZXJPcHRpb25zKSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2V0TG9jYWxEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24p
IAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsb2NhbERlc2Ny
aXB0aW9uIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjdXJy
ZW50TG9jYWxEZXNjcmlwdGlvbiAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9u
IGludGVyZmFjZTogb3BlcmF0aW9uIHNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbikgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHJl
bW90ZURlc2NyaXB0aW9uIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24gCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiAKLVBBU1MgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNh
bmRpZGF0ZSkgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHNp
Z25hbGluZ1N0YXRlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBpY2VHYXRoZXJpbmdTdGF0ZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgaWNlQ29ubmVjdGlvblN0YXRlIAotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcyBhc3NlcnRfdHJ1ZTogVGhl
IHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImNhblRyaWNrbGVJY2VDYW5k
aWRhdGVzIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRDb25maWd1cmF0aW9uKCkgCi1QQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJh
dGlvbikgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGNsb3Nl
KCkgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9ubmVnb3Rp
YXRpb25uZWVkZWQgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IG9uaWNlY2FuZGlkYXRlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBvbnNpZ25hbGluZ3N0YXRlY2hhbmdlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBvbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSAKLVBBU1MgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25pY2VnYXRoZXJpbmdzdGF0ZWNoYW5n
ZSAKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gY3JlYXRlT2Zm
ZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JD
YWxsYmFjaywgUlRDT2ZmZXJPcHRpb25zKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlv
biB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7Ci0gICAgICAgIH0iIGRp
ZCBub3QgdGhyb3cKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24g
c2V0TG9jYWxEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24sIFZvaWRGdW5jdGlvbiwg
UlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9w
ZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7Ci0gICAgICAg
IH0iIGRpZCBub3QgdGhyb3cKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVy
YXRpb24gY3JlYXRlQW5zd2VyKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLCBSVENQZWVy
Q29ubmVjdGlvbkVycm9yQ2FsbGJhY2spIGFzc2VydF90aHJvd3M6IGNhbGxpbmcgb3BlcmF0aW9u
IHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKLSAgICAgICAgfSIgZGlk
IG5vdCB0aHJvdwotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBz
ZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24sIFZvaWRGdW5jdGlvbiwg
UlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9w
ZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7Ci0gICAgICAg
IH0iIGRpZCBub3QgdGhyb3cKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVy
YXRpb24gYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSwgVm9pZEZ1bmN0aW9uLCBSVENQ
ZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2spIGFzc2VydF90aHJvd3M6IGNhbGxpbmcgb3BlcmF0
aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKLSAgICAgICAgfSIg
ZGlkIG5vdCB0aHJvdwotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlv
biBnZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNrLCBSVENTdGF0c0NhbGxiYWNrLCBSVENQZWVyQ29u
bmVjdGlvbkVycm9yQ2FsbGJhY2spIGFzc2VydF90aHJvd3M6IGNhbGxpbmcgb3BlcmF0aW9uIHdp
dGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKLSAgICAgICAgfSIgZGlkIG5v
dCB0aHJvdwotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZW5l
cmF0ZUNlcnRpZmljYXRlKEFsZ29yaXRobUlkZW50aWZpZXIpIAotUEFTUyBSVENQZWVyQ29ubmVj
dGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTZW5kZXJzKCkgCi1QQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFJlY2VpdmVycygpIAotUEFTUyBSVENQZWVy
Q29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNr
LCBNZWRpYVN0cmVhbSkgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogb3BlcmF0
aW9uIHJlbW92ZVRyYWNrKFJUQ1J0cFNlbmRlcikgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIG9udHJhY2sgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogb3BlcmF0aW9uIGNyZWF0ZURhdGFDaGFubmVsKERPTVN0cmluZywgUlRDRGF0YUNoYW5u
ZWxJbml0KSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25k
YXRhY2hhbm5lbCAKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
ZHRtZiBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVy
dHkgImR0bWYiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9u
IGludGVyZmFjZTogb3BlcmF0aW9uIGdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2spIAotRkFJTCBS
VENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRJZGVudGl0eVByb3ZpZGVy
KERPTVN0cmluZywgRE9NU3RyaW5nLCBET01TdHJpbmcpIGFzc2VydF9vd25fcHJvcGVydHk6IGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhw
ZWN0ZWQgcHJvcGVydHkgInNldElkZW50aXR5UHJvdmlkZXIiIG1pc3NpbmcKLUZBSUwgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5v
bi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJnZXRJZGVudGl0eUFzc2VydGlv
biIgbWlzc2luZwotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBw
ZWVySWRlbnRpdHkgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBh
IHByb3BlcnR5ICJwZWVySWRlbnRpdHkiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJU
Q1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGlkcExvZ2luVXJsIGFzc2VydF90
cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiaWRwTG9naW5V
cmwiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIG11c3Qg
YmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgcGMgCi1QQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBwYyAK
LVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImNyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAot
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgY3JlYXRlT2ZmZXIoUlRD
T2ZmZXJPcHRpb25zKSBvbiBwYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiY3JlYXRlQW5zd2VyKFJUQ0Fuc3dlck9wdGlvbnMpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIGNyZWF0
ZUFuc3dlcihSVENBbnN3ZXJPcHRpb25zKSBvbiBwYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBj
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0TG9jYWxEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVz
Y3JpcHRpb24pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24g
aW50ZXJmYWNlOiBjYWxsaW5nIHNldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uKSBvbiBwYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAot
UEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAibG9jYWxEZXNjcmlwdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJD
b25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjdXJyZW50TG9j
YWxEZXNjcmlwdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0
aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwZW5kaW5nTG9jYWxEZXNj
cmlwdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGlu
dGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRSZW1vdGVEZXNjcmlwdGlvbihS
VENTZXNzaW9uRGVzY3JpcHRpb24pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIHNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbikgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInJlbW90ZURlc2NyaXB0aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
LVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNT
IFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJw
ZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkSWNl
Q2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBS
VENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkSWNlQ2FuZGlkYXRlKFJUQ0lj
ZUNhbmRpZGF0ZSkgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNpZ25hbGluZ1N0YXRlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBVbnJlY29nbml6
ZWQgdHlwZSBSVENTaWduYWxpbmdTdGF0ZQotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaWNlR2F0aGVyaW5nU3RhdGUiIHdpdGggdGhl
IHByb3BlciB0eXBlIFVucmVjb2duaXplZCB0eXBlIFJUQ0ljZUdhdGhlcmluZ1N0YXRlCi1GQUlM
IFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJp
Y2VDb25uZWN0aW9uU3RhdGUiIHdpdGggdGhlIHByb3BlciB0eXBlIFVucmVjb2duaXplZCB0eXBl
IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZQotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMiIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImNhblRyaWNrbGVJY2VD
YW5kaWRhdGVzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1QQVNTIFJUQ1BlZXJDb25u
ZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRDb25maWd1cmF0
aW9uKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0Q29uZmlndXJhdGlvbihSVENDb25m
aWd1cmF0aW9uKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9u
IGludGVyZmFjZTogY2FsbGluZyBzZXRDb25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24pIG9u
IHBjIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIFJU
Q1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbG9z
ZSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJm
YWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubmVnb3RpYXRpb25uZWVkZWQiIHdpdGgg
dGhlIHByb3BlciB0eXBlIFVucmVjb2duaXplZCB0eXBlIEV2ZW50SGFuZGxlcgotRkFJTCBSVENQ
ZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25pY2Vj
YW5kaWRhdGUiIHdpdGggdGhlIHByb3BlciB0eXBlIFVucmVjb2duaXplZCB0eXBlIEV2ZW50SGFu
ZGxlcgotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAib25zaWduYWxpbmdzdGF0ZWNoYW5nZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgVW5y
ZWNvZ25pemVkIHR5cGUgRXZlbnRIYW5kbGVyCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5n
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgVW5yZWNvZ25pemVkIHR5cGUgRXZlbnRIYW5kbGVyCi1G
QUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJvbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBVbnJlY29n
bml6ZWQgdHlwZSBFdmVudEhhbmRsZXIKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNl
OiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWF0ZU9mZmVyKFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrLCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2ssIFJUQ09mZmVyT3B0
aW9ucykiIHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2U6IGNhbGxpbmcgY3JlYXRlT2ZmZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2ss
IFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaywgUlRDT2ZmZXJPcHRpb25zKSBvbiBwYyB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotUEFTUyBSVENQZWVy
Q29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0TG9jYWxE
ZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24sIFZvaWRGdW5jdGlvbiwgUlRDUGVlckNv
bm5lY3Rpb25FcnJvckNhbGxiYWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1GQUlMIFJUQ1Bl
ZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBzZXRMb2NhbERlc2NyaXB0aW9uKFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbiwgVm9pZEZ1bmN0aW9uLCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2Fs
bGJhY2spIG9uIHBjIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7Ci0gICAgICAgIH0iIGRpZCBu
b3QgdGhyb3cKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImNyZWF0ZUFuc3dlcihSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaywg
UlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1Q
QVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBjcmVhdGVBbnN3ZXIoUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFj
aykgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBB
U1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiwgVm9pZEZ1bmN0aW9u
LCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2spIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
LUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIHNldFJlbW90ZURlc2Ny
aXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiwgVm9pZEZ1bmN0aW9uLCBSVENQZWVyQ29ubmVj
dGlvbkVycm9yQ2FsbGJhY2spIG9uIHBjIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7Ci0gICAg
ICAgIH0iIGRpZCBub3QgdGhyb3cKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBw
YyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUs
IFZvaWRGdW5jdGlvbiwgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBh
ZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlLCBWb2lkRnVuY3Rpb24sIFJUQ1BlZXJDb25u
ZWN0aW9uRXJyb3JDYWxsYmFjaykgb24gcGMgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgZm4uYXBwbHkob2JqLCBhcmdzKTsKLSAg
ICAgICAgfSIgZGlkIG5vdCB0aHJvdwotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ2V0U3RhdHMoTWVkaWFTdHJlYW1UcmFjaywgUlRD
U3RhdHNDYWxsYmFjaywgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogY2FsbGluZyBn
ZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNrLCBSVENTdGF0c0NhbGxiYWNrLCBSVENQZWVyQ29ubmVj
dGlvbkVycm9yQ2FsbGJhY2spIG9uIHBjIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJnZW5lcmF0ZUNlcnRpZmljYXRlKEFsZ29yaXRobUlkZW50aWZpZXIp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNl
OiBjYWxsaW5nIGdlbmVyYXRlQ2VydGlmaWNhdGUoQWxnb3JpdGhtSWRlbnRpZmllcikgb24gcGMg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLVBBU1MgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldFNlbmRl
cnMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVy
ZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRSZWNlaXZlcnMoKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJhZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrLCBNZWRpYVN0cmVhbSki
IHdpdGggdGhlIHByb3BlciB0eXBlIAotUEFTUyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6
IGNhbGxpbmcgYWRkVHJhY2soTWVkaWFTdHJlYW1UcmFjaywgTWVkaWFTdHJlYW0pIG9uIHBjIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1QQVNTIFJUQ1BlZXJD
b25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVUcmFj
ayhSVENSdHBTZW5kZXIpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKLVBBU1MgUlRDUGVlckNvbm5l
Y3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZVRyYWNrKFJUQ1J0cFNlbmRlcikgb24gcGMg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLUZBSUwgUlRDUGVl
ckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBwYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9udHJhY2si
IHdpdGggdGhlIHByb3BlciB0eXBlIFVucmVjb2duaXplZCB0eXBlIEV2ZW50SGFuZGxlcgotUEFT
UyBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y3JlYXRlRGF0YUNoYW5uZWwoRE9NU3RyaW5nLCBSVENEYXRhQ2hhbm5lbEluaXQpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKLVBBU1MgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBjYWxsaW5n
IGNyZWF0ZURhdGFDaGFubmVsKERPTVN0cmluZywgUlRDRGF0YUNoYW5uZWxJbml0KSBvbiBwYyB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotRkFJTCBSVENQZWVy
Q29ubmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25kYXRhY2hh
bm5lbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgVW5yZWNvZ25pemVkIHR5cGUgRXZlbnRIYW5kbGVy
Ci1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJkdG1mIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5
ICJkdG1mIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1QQVNTIFJUQ1BlZXJDb25uZWN0
aW9uIGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRTdGF0cyhNZWRpYVN0
cmVhbVRyYWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCi1QQVNTIFJUQ1BlZXJDb25uZWN0aW9u
IGludGVyZmFjZTogY2FsbGluZyBnZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNrKSBvbiBwYyB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAotRkFJTCBSVENQZWVyQ29u
bmVjdGlvbiBpbnRlcmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0SWRlbnRpdHlQ
cm92aWRlcihET01TdHJpbmcsIERPTVN0cmluZywgRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic2V0SWRlbnRpdHlQcm92aWRlciIgbm90
IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRlcmZh
Y2U6IGNhbGxpbmcgc2V0SWRlbnRpdHlQcm92aWRlcihET01TdHJpbmcsIERPTVN0cmluZywgRE9N
U3RyaW5nKSBvbiBwYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInNldElkZW50aXR5UHJvdmlkZXIiIG5vdCBmb3Vu
ZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgUlRDUGVlckNvbm5lY3Rpb24gaW50ZXJmYWNlOiBw
YyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldElkZW50aXR5QXNzZXJ0aW9uKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImdldElkZW50aXR5QXNzZXJ0
aW9uIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9u
IGludGVyZmFjZTogcGMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwZWVySWRlbnRpdHkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInBlZXJJZGVudGl0eSIg
bm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBSVENQZWVyQ29ubmVjdGlvbiBpbnRl
cmZhY2U6IHBjIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaWRwTG9naW5VcmwiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImlkcExvZ2luVXJsIiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3J0Y3BlZXJj
b25uZWN0aW9uLWlkbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vcnRjcGVlcmNvbm5lY3Rpb24taWRsLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyMzRjNTRkODNjYjI2OTNiNTYwYzc4
YWQwMWU4NGMzMWEzYTJiNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcnRjcGVlcmNvbm5lY3Rpb24vcnRjcGVlcmNvbm5lY3Rpb24taWRsLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxMDcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5JREwgY2hlY2sgb2YgUlRDUGVlckNvbm5lY3Rp
b248L3RpdGxlPgotPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJIYXJhbGQgQWx2ZXN0cmFuZCIg
aHJlZj0ibWFpbHRvOmh0YUBnb29nbGUuY29tIi8+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHA6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jcnRjcGVlcmNvbm5lY3Rpb24taW50ZXJmYWNl
Ij4KLTwvaGVhZD4KLTxib2R5PgotCi08aDEgY2xhc3M9Imluc3RydWN0aW9ucyI+RGVzY3JpcHRp
b248L2gxPgotPHAgY2xhc3M9Imluc3RydWN0aW9ucyI+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBh
dmFpbGFiaWxpdHkgb2YgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIGludGVyZmFjZS48L3A+Ci08ZGl2
IGlkPSdsb2cnPjwvZGl2PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcz48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcz48L3NjcmlwdD4KLQotPCEtLSAg
VGhlIElETCBpcyBjb3BpZWQgZnJvbSB0aGUgMjIgU2VwdGVtYmVyIDIwMTUgZWRpdG9ycycgZHJh
ZnQuICAtLT4KLTxzY3JpcHQgdHlwZT0idGV4dC9wbGFpbiI+Ci1pbnRlcmZhY2UgRXZlbnRUYXJn
ZXQgewotICAgIC8vIE9ubHkgYSBkdW1teSBkZWZpbml0aW9uIGlzIG5lZWRlZCBoZXJlLgotfTsK
LVsgQ29uc3RydWN0b3IgKG9wdGlvbmFsIFJUQ0NvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbild
Ci1pbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gOiBFdmVudFRhcmdldCAgewotICAgIFByb21p
c2U8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBjcmVhdGVPZmZlciAob3B0aW9uYWwgUlRDT2ZmZXJP
cHRpb25zIG9wdGlvbnMpOwotICAgIFByb21pc2U8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBjcmVh
dGVBbnN3ZXIgKG9wdGlvbmFsIFJUQ0Fuc3dlck9wdGlvbnMgb3B0aW9ucyk7Ci0gICAgUHJvbWlz
ZTx2b2lkPiAgICAgICAgICAgICAgICAgIHNldExvY2FsRGVzY3JpcHRpb24gKFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbiBkZXNjcmlwdGlvbik7Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbj8gbG9jYWxEZXNjcmlwdGlvbjsKLSAgICByZWFkb25seSAgICBhdHRy
aWJ1dGUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uPyBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbjsKLSAg
ICByZWFkb25seSAgICBhdHRyaWJ1dGUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uPyBwZW5kaW5nTG9j
YWxEZXNjcmlwdGlvbjsKLSAgICBQcm9taXNlPHZvaWQ+ICAgICAgICAgICAgICAgICAgc2V0UmVt
b3RlRGVzY3JpcHRpb24gKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbik7Ci0gICAg
cmVhZG9ubHkgICAgYXR0cmlidXRlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj8gcmVtb3RlRGVzY3Jp
cHRpb247Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj8g
Y3VycmVudFJlbW90ZURlc2NyaXB0aW9uOwotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBSVENT
ZXNzaW9uRGVzY3JpcHRpb24/IHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbjsKLSAgICBQcm9taXNl
PHZvaWQ+ICAgICAgICAgICAgICAgICAgYWRkSWNlQ2FuZGlkYXRlIChSVENJY2VDYW5kaWRhdGUg
Y2FuZGlkYXRlKTsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgUlRDU2lnbmFsaW5nU3RhdGUg
ICAgICBzaWduYWxpbmdTdGF0ZTsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgUlRDSWNlR2F0
aGVyaW5nU3RhdGUgICBpY2VHYXRoZXJpbmdTdGF0ZTsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1
dGUgUlRDSWNlQ29ubmVjdGlvblN0YXRlICBpY2VDb25uZWN0aW9uU3RhdGU7Ci0gICAgcmVhZG9u
bHkgICAgYXR0cmlidXRlIGJvb2xlYW4/ICAgICAgICAgICAgICAgY2FuVHJpY2tsZUljZUNhbmRp
ZGF0ZXM7Ci0gICAgUlRDQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgIGdldENvbmZpZ3VyYXRp
b24gKCk7Ci0gICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbmZpZ3VyYXRp
b24gKFJUQ0NvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbik7Ci0gICAgdm9pZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNsb3NlICgpOwotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgICAgICAgICAgIG9ubmVnb3RpYXRpb25uZWVkZWQ7Ci0gICAgICAgICAgICAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICAgICAgb25pY2VjYW5kaWRhdGU7Ci0gICAgICAg
ICAgICAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciAgICAgICAgICAgb25zaWduYWxpbmdzdGF0
ZWNoYW5nZTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyICAgICAgICAg
ICBvbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyICAgICAgICAgICBvbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdlOwotfTsKLQot
cGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gewotICAgIHZvaWQgY3JlYXRlT2Zm
ZXIgKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgUlRDUGVl
ckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgb3B0aW9uYWwgUlRDT2Zm
ZXJPcHRpb25zIG9wdGlvbnMpOwotICAgIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbiAoUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBWb2lkRnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNr
LCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICB2
b2lkIGNyZWF0ZUFuc3dlciAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2sgc3VjY2Vzc0Nh
bGxiYWNrLCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKTsK
LSAgICB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uIChSVENTZXNzaW9uRGVzY3JpcHRpb24gZGVz
Y3JpcHRpb24sIFZvaWRGdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9u
RXJyb3JDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2spOwotICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRl
IChSVENJY2VDYW5kaWRhdGUgY2FuZGlkYXRlLCBWb2lkRnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNr
LCBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICB2
b2lkIGdldFN0YXRzIChNZWRpYVN0cmVhbVRyYWNrPyBzZWxlY3RvciwgUlRDU3RhdHNDYWxsYmFj
ayBzdWNjZXNzQ2FsbGJhY2ssIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjayBmYWlsdXJl
Q2FsbGJhY2spOwotfTsKLQotcGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gewot
ICAgIHN0YXRpYyBQcm9taXNlPFJUQ0NlcnRpZmljYXRlPiBnZW5lcmF0ZUNlcnRpZmljYXRlIChB
bGdvcml0aG1JZGVudGlmaWVyIGtleWdlbkFsZ29yaXRobSk7Ci19OwotCi1wYXJ0aWFsIGludGVy
ZmFjZSBSVENQZWVyQ29ubmVjdGlvbiB7Ci0gICAgc2VxdWVuY2U8UlRDUnRwU2VuZGVyPiAgIGdl
dFNlbmRlcnMgKCk7Ci0gICAgc2VxdWVuY2U8UlRDUnRwUmVjZWl2ZXI+IGdldFJlY2VpdmVycyAo
KTsKLSAgICBSVENSdHBTZW5kZXIgICAgICAgICAgICAgYWRkVHJhY2sgKE1lZGlhU3RyZWFtVHJh
Y2sgdHJhY2ssIE1lZGlhU3RyZWFtLi4uIHN0cmVhbXMpOwotICAgIHZvaWQgICAgICAgICAgICAg
ICAgICAgICByZW1vdmVUcmFjayAoUlRDUnRwU2VuZGVyIHNlbmRlcik7Ci0gICAgICAgICAgICAg
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnRyYWNrOwotfTsKLQotcGFydGlhbCBpbnRlcmZh
Y2UgUlRDUGVlckNvbm5lY3Rpb24gewotICAgIFJUQ0RhdGFDaGFubmVsIGNyZWF0ZURhdGFDaGFu
bmVsIChbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBsYWJlbCwgb3B0aW9uYWwg
UlRDRGF0YUNoYW5uZWxJbml0IGRhdGFDaGFubmVsRGljdCk7Ci0gICAgICAgICAgICAgICAgYXR0
cmlidXRlIEV2ZW50SGFuZGxlciBvbmRhdGFjaGFubmVsOwotfTsKLQotcGFydGlhbCBpbnRlcmZh
Y2UgUlRDUGVlckNvbm5lY3Rpb24gewotICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBSVENEVE1G
U2VuZGVyPyBkdG1mOwotfTsKLQotcGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24g
ewotICAgIFByb21pc2U8UlRDU3RhdHNSZXBvcnQ+IGdldFN0YXRzIChvcHRpb25hbCBNZWRpYVN0
cmVhbVRyYWNrPyBzZWxlY3Rvcik7Ci19OwotCi1wYXJ0aWFsIGludGVyZmFjZSBSVENQZWVyQ29u
bmVjdGlvbiB7Ci0gICAgdm9pZCAgICAgICAgICAgICAgIHNldElkZW50aXR5UHJvdmlkZXIgKERP
TVN0cmluZyBwcm92aWRlciwgb3B0aW9uYWwgRE9NU3RyaW5nIHByb3RvY29sLCBvcHRpb25hbCBE
T01TdHJpbmcgdXNlcm5hbWVIaW50KTsKLSAgICBQcm9taXNlPERPTVN0cmluZz4gZ2V0SWRlbnRp
dHlBc3NlcnRpb24gKCk7Ci0gICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIFByb21pc2U8UlRDSWRl
bnRpdHlBc3NlcnRpb24+IHBlZXJJZGVudGl0eTsKLSAgICByZWFkb25seSAgICBhdHRyaWJ1dGUg
RE9NU3RyaW5nPyAgICAgICAgICAgICAgICAgICAgaWRwTG9naW5Vcmw7Ci19OwotCi08L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0oZnVuY3Rpb24oKSB7Ci0gIHZhciBpZGxfYXJyYXkgPSBuZXcgSWRsQXJy
YXkoKTsKLSAgW10uZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlw
dFt0eXBlPXRleHRcXC9wbGFpbl0iKSwKLSAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKG5vZGUp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWRsX2FycmF5LmFkZF9pZGxzKG5vZGUudGV4dENvbnRl
bnQpOwotICAgICAgICAgICAgICAgICAgfSk7Ci0gIHdpbmRvdy5wYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbihudWxsKTsKLSAgaWRsX2FycmF5LmFkZF9vYmplY3RzKHsiUlRDUGVlckNvbm5lY3Rp
b24iOiBbInBjIl19KTsKLSAgaWRsX2FycmF5LnRlc3QoKTsKLSAgZG9uZSgpOwotfSkoKTsKLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vc2V0UmVt
b3RlRGVzY3JpcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL3NldFJlbW90ZURlc2NyaXB0aW9uLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1OTNkOThkN2RlYTIzY2NjNWYwNDU4
ZWNjZDFmYjUzYmM2MTA3MGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcnRjcGVlcmNvbm5lY3Rpb24vc2V0UmVtb3RlRGVzY3JpcHRpb24uaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDU2ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAg
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiPgotICA8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gc2V0UmVtb3RlRGVzY3JpcHRp
b24gdGVzdHM8L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci0gIDwhLS0gIFRoZXNlIGZpbGVzIGFy
ZSBpbiBwbGFjZSB3aGVuIGV4ZWN1dGluZyBvbiBXM0MuICAtLT4KLSAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KLSAgLy8gdGVzdHMgdGhhdCBvbmFkZHN0cmVhbSBpcyBjYWxsZWQgYW5k
IHBhcnNlcyB0aGUgbXNpZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBTRFAgYW5kIGNyZWF0ZXMKLSAg
Ly8gdGhlIHN0cmVhbXMgYW5kIHRyYWNrcyB3aXRoIG1hdGNoaW5nIGlkZW50aWZpZXJzLgotICAv
LyBUT0RPOiBvbmFkZHN0cmVhbSBpcyBubyBsb25nZXIgcGFydCBvZiB0aGUgc3BlYyBidXQgaXMg
bW9yZSB3aWRlbHkgaW1wbGVtZW50ZWQgdGhhbiBvbnRyYWNrCi0gIC8vICAgICAgIGFzIG9mIEZl
Yi4gMjAxNy4gVGhpcyB0ZXN0IHNob3VsZCBiZSBkZXByZWNhdGVkIG9uY2Ugb250cmFjayBpcyBt
b3JlIHdpZGVseSBpbXBsZW1lbnRlZC4KLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0g
ICAgY29uc3Qgc2RwID0gJ3Y9MFxyXG4nICsKLSAgICAgICAgJ289LSAxNjY4NTUxNzY1MTQ1MjE5
NjQgMiBJTiBJUDQgMTI3LjAuMC4xXHJcbicgKwotICAgICAgICAncz0tXHJcbicgKwotICAgICAg
ICAndD0wIDBcclxuJyArCi0gICAgICAgICdhPW1zaWQtc2VtYW50aWM6V01TICpcclxuJyArCi0g
ICAgICAgICdtPWF1ZGlvIDkgVURQL1RMUy9SVFAvU0FWUEYgMTExXHJcbicgKwotICAgICAgICAn
Yz1JTiBJUDQgMC4wLjAuMFxyXG4nICsKLSAgICAgICAgJ2E9cnRjcDo5IElOIElQNCAwLjAuMC4w
XHJcbicgKwotICAgICAgICAnYT1pY2UtdWZyYWc6c29tZXVmcmFnXHJcbicgKwotICAgICAgICAn
YT1pY2UtcHdkOnNvbWVsb25ncHdkd2l0aGVub3VnaHJhbmRvbW5lc3NcclxuJyArCi0gICAgICAg
ICdhPWZpbmdlcnByaW50OnNoYS0yNTYgOEM6NzE6QjM6OEQ6QTU6Mzg6RkQ6OEY6QTQ6MkU6QTI6
NjU6NkM6ODY6NTI6QkM6RTA6NkU6OTQ6RjI6OUY6N0M6NEQ6QjU6REY6QUY6QUE6NkY6NDQ6OTA6
OEQ6RjRcclxuJyArCi0gICAgICAgICdhPXNldHVwOmFjdHBhc3NcclxuJyArCi0gICAgICAgICdh
PXJ0Y3AtbXV4XHJcbicgKwotICAgICAgICAnYT1taWQ6bWlkMVxyXG4nICsKLSAgICAgICAgJ2E9
c2VuZG9ubHlcclxuJyArCi0gICAgICAgICdhPXJ0cG1hcDoxMTEgb3B1cy80ODAwMC8yXHJcbicg
KwotICAgICAgICAnYT1tc2lkOnN0cmVhbTEgdHJhY2sxXHJcbicgKwotICAgICAgICAnYT1zc3Jj
OjEwMDEgY25hbWU6c29tZVxyXG4nOwotCi0gICAgdmFyIHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKG51bGwpOwotCi0gICAgcGMub25hZGRzdHJlYW0gPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlv
bihldmVudCkgewotICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5zdHJlYW0uZ2V0VHJhY2tzKCku
bGVuZ3RoLCAxLCAndGhlIHN0cmVhbSBjb250YWlucyBvbmUgdHJhY2snKTsKLSAgICAgIGFzc2Vy
dF9lcXVhbHMoZXZlbnQuc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoLCAxLCAndGhlIHN0
cmVhbSBjb250YWlucyBvbmUgYXVkaW8gdHJhY2snKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoZXZl
bnQuc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoLCAwLCAndGhlIHN0cmVhbSBjb250YWlu
cyBubyB2aWRlbyB0cmFja3MnKTsKLQotICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5zdHJlYW0u
aWQsICdzdHJlYW0xJywgJ3RoZSBzdHJlYW0gbmFtZSBpcyBwYXJzZWQgZnJvbSB0aGUgTVNJRCBs
aW5lJyk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnN0cmVhbS5nZXRUcmFja3MoKVswXS5p
ZCwgJ3RyYWNrMScsICd0aGUgdHJhY2sgbmFtZSBpcyBwYXJzZWQgZnJvbSB0aGUgTVNJRCBsaW5l
Jyk7Ci0gICAgICB0ZXN0LmRvbmUoKTsKLSAgICB9KTsKLQotICAgIHBjLnNldFJlbW90ZURlc2Ny
aXB0aW9uKG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcDogc2Rw
fSkpCi0gICAgLmNhdGNoKHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoJ0Vycm9yICcgKyBlLm5hbWUgKyAnOiAnICsgZS5tZXNzYWdlKTsKLSAgICB9
KSk7Ci0gIH0sICdUcmlnZ2VycyBvbmFkZHN0cmVhbSB3aGVuIGNhbGxlZCB3aXRoIGEgcmVtb3Rl
IGRlc2NyaXB0aW9uIGFuZCB0aGUgTVNJRCBpcyBwYXJzZWQuJyk7Ci08L3NjcmlwdD4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVy
Y29ubmVjdGlvbi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzFiOTdlMWMyYjI3MmNkYjM2YTA0MzFmYzE0NjljOTlhYzk2ZTFlZi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJjb25uZWN0aW9uL2Nh
blRyaWNrbGVJY2VDYW5kaWRhdGVzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9pY2VHYXRoZXJpbmdTdGF0
ZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcnRjcGVlcmNvbm5lY3Rpb24vcnRjY29uZmlndXJhdGlvbi1pY2VjYW5kaWRhdGVwb29sc2l6
ZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcnRjcGVlcmNvbm5lY3Rpb24vcnRjcGVlcmNvbm5lY3Rpb24tY29uc3RydWN0b3IuaHRtbAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3Bl
ZXJjb25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWlkbC5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRjcGVlcmNvbm5lY3Rpb24vc2V0
UmVtb3RlRGVzY3JpcHRpb24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
c2ltcGxlY2FsbC1uby1zc3Jjcy5odHRwcy5odG1sCmluZGV4IGQ3OWY2YWYzZDY5YWNhMGZjNjUz
YTNlODIxZWFiNDAxOWVlZGExOTguLjUxNjA0NTFmMDEyZTY0MmRkNTY5N2UwMzRhMTlhN2Y4ODk1
NDIxZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3NpbXBsZWNhbGwtbm8tc3NyY3MuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5v
LXNzcmNzLmh0dHBzLmh0bWwKQEAgLTMyLDYgKzMyLDcgQEAKIAogICBmdW5jdGlvbiBnZXROb2lz
ZVN0cmVhbU9rQ2FsbGJhY2sobG9jYWxTdHJlYW0pIHsKICAgICBnRmlyc3RDb25uZWN0aW9uID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4g
Z0ZpcnN0Q29ubmVjdGlvbi5jbG9zZSgpKTsKICAgICBnRmlyc3RDb25uZWN0aW9uLm9uaWNlY2Fu
ZGlkYXRlID0gb25JY2VDYW5kaWRhdGVUb0ZpcnN0OwogICAgIGxvY2FsU3RyZWFtLmdldFRyYWNr
cygpLmZvckVhY2goZnVuY3Rpb24odHJhY2spIHsKICAgICAgIGdGaXJzdENvbm5lY3Rpb24uYWRk
VHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKQEAgLTQ1LDEwICs0Niw5IEBACiAgIHZhciBvbk9m
ZmVyQ3JlYXRlZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKG9mZmVyKSB7CiAgICAgZ0ZpcnN0
Q29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKIAotICAgIC8vIHJlbW92ZSBh
bGwgYT1zc3JjOiBsaW5lcywgdGhlIG1zaWQtc2VtYW50aWMgbGluZSBhbmQgYW55IGE9bXNpZDou
CisgICAgLy8gcmVtb3ZlIGFsbCBhPXNzcmM6IGxpbmVzIGFuZCB0aGUgKG9ic29sZXRlKSBtc2lk
LXNlbWFudGljIGxpbmUuCiAgICAgdmFyIHNkcCA9IG9mZmVyLnNkcC5yZXBsYWNlKC9eYT1zc3Jj
Oi4qJFxyXG4vZ20sICcnKQotICAgICAgLnJlcGxhY2UoL15hPW1zaWQtc2VtYW50aWMuKiRcclxu
L2dtLCAnJykKLSAgICAgIC5yZXBsYWNlKC9eYT1tc2lkOi4qJFxyXG4vZ20sICcnKTsKKyAgICAg
IC5yZXBsYWNlKC9eYT1tc2lkLXNlbWFudGljLiokXHJcbi9nbSwgJycpOwogCiAgICAgLy8gVGhp
cyB3b3VsZCBub3JtYWxseSBnbyBhY3Jvc3MgdGhlIGFwcGxpY2F0aW9uJ3Mgc2lnbmFsaW5nIHNv
bHV0aW9uLgogICAgIC8vIEluIG91ciBjYXNlLCB0aGUgInNpZ25hbGluZyIgaXMgdG8gY2FsbCB0
aGlzIGZ1bmN0aW9uLgpAQCAtNTcsNiArNTcsNyBAQAogCiAgIGZ1bmN0aW9uIHJlY2VpdmVDYWxs
KG9mZmVyU2RwKSB7CiAgICAgZ1NlY29uZENvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBnU2Vjb25kQ29ubmVjdGlvbi5j
bG9zZSgpKTsKICAgICBnU2Vjb25kQ29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IG9uSWNlQ2Fu
ZGlkYXRlVG9TZWNvbmQ7CiAgICAgZ1NlY29uZENvbm5lY3Rpb24ub250cmFjayA9IG9uUmVtb3Rl
VHJhY2s7CiAKQEAgLTEwMSw5ICsxMDIsOSBAQAogCiAgIHZhciBvblJlbW90ZVRyYWNrID0gdGVz
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKICAgICB2YXIgdmlkZW9UYWcgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKTsKLSAgICBpZiAoIXZpZGVvVGFnLnNyY09i
amVjdCkKLSAgICAgIHZpZGVvVGFnLnNyY09iamVjdCA9IG5ldyBNZWRpYVN0cmVhbSgpOwotICAg
IHZpZGVvVGFnLnNyY09iamVjdC5hZGRUcmFjayhldmVudC50cmFjayk7CisgICAgaWYgKCF2aWRl
b1RhZy5zcmNPYmplY3QpIHsKKyAgICAgIHZpZGVvVGFnLnNyY09iamVjdCA9IGV2ZW50LnN0cmVh
bXNbMF07CisgICAgfQogICB9KTsKIAogICAvLyBSZXR1cm5zIGEgc3VpdGFibGUgZXJyb3IgY2Fs
bGJhY2suCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwKaW5k
ZXggMjkxNDM3YTUyNjU4MmQxM2RiNmUwNGZhMzljMTUyY2U5ZWQ1ODU5YS4uZmZlMDQzYjZhMjM3
ZmFlMWE0ZjcwZTJjZmFjNDk1YTJhNjEzMmMyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXBsZWNhbGwuaHR0cHMuaHRtbApAQCAtMzIsNiArMzIsNyBAQAogCiAgIGZ1bmN0aW9uIGdl
dE5vaXNlU3RyZWFtT2tDYWxsYmFjayhsb2NhbFN0cmVhbSkgewogICAgIGdGaXJzdENvbm5lY3Rp
b24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgo
KSA9PiBnRmlyc3RDb25uZWN0aW9uLmNsb3NlKCkpOwogICAgIGdGaXJzdENvbm5lY3Rpb24ub25p
Y2VjYW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0ZVRvRmlyc3Q7CiAgICAgbG9jYWxTdHJlYW0uZ2V0
VHJhY2tzKCkuZm9yRWFjaChmdW5jdGlvbih0cmFjaykgewogICAgICAgZ0ZpcnN0Q29ubmVjdGlv
bi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOwpAQCAtNTIsNiArNTMsNyBAQAogCiAgIGZ1
bmN0aW9uIHJlY2VpdmVDYWxsKG9mZmVyU2RwKSB7CiAgICAgZ1NlY29uZENvbm5lY3Rpb24gPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBn
U2Vjb25kQ29ubmVjdGlvbi5jbG9zZSgpKTsKICAgICBnU2Vjb25kQ29ubmVjdGlvbi5vbmljZWNh
bmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQ7CiAgICAgZ1NlY29uZENvbm5lY3Rpb24u
b250cmFjayA9IG9uUmVtb3RlVHJhY2s7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVl
OGVjZWJlOWI2M2M0ZDljMjg2OWU0Mzk0OThlNjg5MDA1ZjUyMDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11
bGNhc3QvYmFzaWMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitIYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBCYXNpYyBzaW11bGNh
c3Qgc2V0dXAgd2l0aCB0aHJlZSBzcGF0aWFsIGxheWVycyBUZXN0IHRpbWVkIG91dAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRwcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVkNWYzYjUyZjVmNjY4Y2EyZGRkNTIxOGM1YzlmNjBiODg0NTU1ZGYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24g
U2ltdWxjYXN0IFRlc3RzPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxv
bmciPgorPHNjcmlwdCBzcmM9Ii4uL3RoaXJkX3BhcnR5L3NkcC9zZHAuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InNpbXVsY2FzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRD
UGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CisgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsK
KyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHJldHVybiBuZWdvdGlhdGVTaW11bGNhc3RBbmRXYWl0
Rm9yVmlkZW8odCwgcmlkcywgcGMxLCBwYzIpOworfSwgJ0Jhc2ljIHNpbXVsY2FzdCBzZXR1cCB3
aXRoIHRocmVlIHNwYXRpYWwgbGF5ZXJzJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9n
ZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQzMjlhMzIzYmNiMDUyYzhjMmFiZDQwMjdhMTdiNGRkMmVhNjg0MmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKwor
VElNRU9VVCBTaW11bGNhc3QgZ2V0U3RhdHMgcmVzdWx0cyBUZXN0IHRpbWVkIG91dAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkzOWNlZWE4NDExMzQ3MmRkMWNkODFkNmQxYTQ4ZTkwYTJjMjQ4NGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9zaW11bGNhc3QvZ2V0U3RhdHMuaHR0cHMuaHRtbApAQCAtMCwwICsxLDMxIEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNv
bm5lY3Rpb24gU2ltdWxjYXN0IFRlc3RzIC0gZ2V0U3RhdHM8L3RpdGxlPgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8c2NyaXB0IHNyYz0iLi4vdGhpcmRfcGFydHkvc2Rw
L3NkcC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2ltdWxjYXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmlkcyA9IFswLCAxLCAyXTsK
KyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgYXdhaXQgbmVnb3Rp
YXRlU2ltdWxjYXN0QW5kV2FpdEZvclZpZGVvKHQsIHJpZHMsIHBjMSwgcGMyKTsKKworICBjb25z
dCBvdXRib3VuZFN0YXRzID0gW107CisgIGNvbnN0IHNlbmRlclN0YXRzID0gYXdhaXQgcGMxLmdl
dFNlbmRlcnMoKVswXS5nZXRTdGF0cygpOworICBzZW5kZXJTdGF0cy5mb3JFYWNoKHN0YXQgPT4g
eworICAgIGlmIChzdGF0LnR5cGUgPT09ICdvdXRib3VuZC1ydHAnKSB7CisgICAgICBvdXRib3Vu
ZFN0YXRzLnB1c2goc3RhdCk7CisgICAgfQorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhvdXRib3Vu
ZFN0YXRzLmxlbmd0aCwgMywgImdldFN0YXRzIHJlc3VsdCBzaG91bGQgY29udGFpbiB0aHJlZSBs
YXllcnMiKTsKKyAgY29uc3Qgc3RhdHNSaWRzID0gb3V0Ym91bmRTdGF0cy5tYXAoc3RhdCA9PiBw
YXJzZUludChzdGF0LnJpZCwgMTApKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhyaWRzLCBzdGF0
c1JpZHMuc29ydCgpLCAiZ2V0U3RhdHMgcmVzdWx0IHNob3VsZCBtYXRjaCB0aGUgcmlkcyBwcm92
aWRlZCIpOworfSwgJ1NpbXVsY2FzdCBnZXRTdGF0cyByZXN1bHRzJyk7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTBlYjcyODA2Nzc0NzFjOTY1NzNhOWEzZjc5OWE3NzZk
NmQ2ZWJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
KworVElNRU9VVCBIMjY0IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHRocmVlIHNwYXRpYWwgbGF5ZXJz
IFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qv
aDI2NC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ZTE4YmNkNTFjZjAyOWI0Zjk1MjgxNjRlNmI5
MDMwNmYyMTA1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sCkBAIC0w
LDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRs
ZT5SVENQZWVyQ29ubmVjdGlvbiBTaW11bGNhc3QgVGVzdHM8L3RpdGxlPgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8c2NyaXB0IHNyYz0iLi4vdGhpcmRfcGFydHkvc2Rw
L3NkcC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2ltdWxjYXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXNzZXJ0X2ltcGxlbWVudHMoJ2dldENh
cGFiaWxpdGllcycgaW4gUlRDUnRwU2VuZGVyLCAnUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGll
cyBub3Qgc3VwcG9ydGVkJyk7CisgIGFzc2VydF9pbXBsZW1lbnRzKFJUQ1J0cFNlbmRlci5nZXRD
YXBhYmlsaXRpZXMoJ3ZpZGVvJykuY29kZWNzLmZpbmQoYyA9PiBjLm1pbWVUeXBlID09PSAndmlk
ZW8vSDI2NCcpLCAnSDI2NCBub3Qgc3VwcG9ydGVkJyk7CisKKyAgY29uc3QgcmlkcyA9IFswLCAx
LCAyXTsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgcmV0dXJu
IG5lZ290aWF0ZVNpbXVsY2FzdEFuZFdhaXRGb3JWaWRlbyh0LCByaWRzLCBwYzEsIHBjMiwge21p
bWVUeXBlOiAndmlkZW8vSDI2NCd9KTsKK30sICdIMjY0IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHRo
cmVlIHNwYXRpYWwgbGF5ZXJzJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zZXRQYXJh
bWV0ZXJzLWFjdGl2ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3Rp
dmUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MTU4ODVjOTkzYTExZjRhMDAwMzZm
MzI3ZjE1MmU3MzJjMWU0ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1h
Y3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitIYXJuZXNzIEVycm9y
IChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBTaW11bGNhc3Qgc2V0UGFyYW1l
dGVycyBhY3RpdmU9ZmFsc2Ugc3RvcHMgc2VuZGluZyBmcmFtZXMgVGVzdCB0aW1lZCBvdXQKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0
UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzU0YzYzZmZlOWQ0NzRh
MGVhODRiNDAzY2Q3YjVlZDdiYWFlMWEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFt
ZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIFNpbXVsY2Fz
dCBUZXN0cyAtIHNldFBhcmFtZXRlcnMvYWN0aXZlPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciPgorPHNjcmlwdCBzcmM9Ii4uL3RoaXJkX3BhcnR5L3NkcC9zZHAu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNpbXVsY2FzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cith
c3luYyBmdW5jdGlvbiBxdWVyeVJlY2VpdmVyU3RhdHMocGMpIHsKKyAgY29uc3QgaW5ib3VuZFN0
YXRzID0gW107CisgIGF3YWl0IFByb21pc2UuYWxsKHBjLmdldFJlY2VpdmVycygpLm1hcChhc3lu
YyByZWNlaXZlciA9PiB7CisgICAgY29uc3QgcmVjZWl2ZXJTdGF0cyA9IGF3YWl0IHJlY2VpdmVy
LmdldFN0YXRzKCk7CisgICAgcmVjZWl2ZXJTdGF0cy5mb3JFYWNoKHN0YXQgPT4geworICAgICAg
aWYgKHN0YXQudHlwZSA9PT0gJ2luYm91bmQtcnRwJykgeworICAgICAgICBpbmJvdW5kU3RhdHMu
cHVzaChzdGF0KTsKKyAgICAgIH0KKyAgICB9KTsKKyAgfSkpOworICByZXR1cm4gaW5ib3VuZFN0
YXRzLm1hcChzID0+IHMuZnJhbWVzRGVjb2RlZCk7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3QgcmlkcyA9IFswLCAxLCAyXTsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBj
b25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7CisKKyAgYXdhaXQgbmVnb3RpYXRlU2ltdWxjYXN0QW5kV2FpdEZvclZp
ZGVvKHQsIHJpZHMsIHBjMSwgcGMyKTsKKworICAvLyBEZWFjdGl2YXRlIGFsbCBzZW5kZXJzLgor
ICBjb25zdCBwYXJhbWV0ZXJzID0gcGMxLmdldFNlbmRlcnMoKVswXS5nZXRQYXJhbWV0ZXJzKCk7
CisgIHBhcmFtZXRlcnMuZW5jb2RpbmdzLmZvckVhY2goZSA9PiB7CisgICAgZS5hY3RpdmUgPSBm
YWxzZTsKKyAgfSk7CisgIGF3YWl0IHBjMS5nZXRTZW5kZXJzKClbMF0uc2V0UGFyYW1ldGVycyhw
YXJhbWV0ZXJzKTsKKworICAvLyBBc3NlcnQgKGFsbW9zdCkgbm8gbmV3IGZyYW1lcyBhcmUgcmVj
ZWl2ZWQuCisgIC8vIFdpdGhvdXQgYW55IGFjdGlvbiB3ZSB3b3VsZCBleHBlY3QgdG8gaGF2ZSBy
ZWNlaXZlZCBhcm91bmQgMzBmcHMuCisgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdC5z
dGVwX3RpbWVvdXQocmVzb2x2ZSwgMTAwKSk7IC8vIFdhaXQgYSBiaXQuCisgIGNvbnN0IGluaXRp
YWxTdGF0cyA9IGF3YWl0IHF1ZXJ5UmVjZWl2ZXJTdGF0cyhwYzIpOworICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDEwMDApKTsgLy8gV2FpdCBt
b3JlLgorICBjb25zdCBzdWJzZXF1ZW50U3RhdHMgPSBhd2FpdCBxdWVyeVJlY2VpdmVyU3RhdHMo
cGMyKTsKKworICBzdWJzZXF1ZW50U3RhdHMuZm9yRWFjaCgoZnJhbWVzRGVjb2RlZCwgaWR4KSA9
PiB7CisgICAgYXNzZXJ0X2VxdWFscyhmcmFtZXNEZWNvZGVkLCBpbml0aWFsU3RhdHNbaWR4XSk7
CisgIH0pOworfSwgJ1NpbXVsY2FzdCBzZXRQYXJhbWV0ZXJzIGFjdGl2ZT1mYWxzZSBzdG9wcyBz
ZW5kaW5nIGZyYW1lcycpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2ltdWxjYXN0Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2lt
dWxjYXN0L3NpbXVsY2FzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMThlYmY2M2FiZjdiMjEzMjE4NTYxYjBh
ZTAwZmY4YmE1N2I4MDBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NpbXVsY2FzdC5qcwpAQCAt
MCwwICsxLDEyMSBAQAorJ3VzZSBzdHJpY3QnOworLyogSGVscGVyIGZ1bmN0aW9ucyB0byBtdW5n
ZSBTRFAgYW5kIHNwbGl0IHRoZSBzZW5kaW5nIHRyYWNrIGludG8KKyAqIHNlcGFyYXRlIHRyYWNr
cyBvbiB0aGUgcmVjZWl2aW5nIGVuZC4gVGhpcyBjYW4gYmUgZG9uZSBpbiBhIG51bWJlcgorICog
b2Ygd2F5cywgdGhlIG9uZSB1c2VkIGhlcmUgdXNlcyB0aGUgZmFjdCB0aGF0IHRoZSBNSUQgYW5k
IFJJRCBoZWFkZXIKKyAqIGV4dGVuc2lvbnMgd2hpY2ggYXJlIHVzZWQgZm9yIHBhY2tldCByb3V0
aW5nIHNoYXJlIHRoZSBzYW1lIHdpcmUKKyAqIGZvcm1hdC4gVGhlIHJlY2VpdmVyIGludGVycHJl
dHMgdGhlIHJpZHMgZnJvbSB0aGUgc2VuZGVyIGFzIG1pZHMKKyAqIHdoaWNoIGFsbG93cyByZWNl
aXZpbmcgdGhlIGRpZmZlcmVudCBzcGF0aWFsIHJlc29sdXRpb25zIG9uIHNlcGFyYXRlCisgKiBt
LWxpbmVzIGFuZCB0cmFja3MuCisgKi8KK2NvbnN0IGV4dGVuc2lvbnNUb0ZpbHRlciA9IFsKKyAg
J3VybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkJywKKyAgJ3VybjppZXRmOnBhcmFt
czpydHAtaGRyZXh0OnNkZXM6cnRwLXN0cmVhbS1pZCcsCisgICd1cm46aWV0ZjpwYXJhbXM6cnRw
LWhkcmV4dDpzZGVzOnJlcGFpcmVkLXJ0cC1zdHJlYW0taWQnLAorXTsKKworZnVuY3Rpb24gc3dh
cFJpZEFuZE1pZEV4dGVuc2lvbnNJblNpbXVsY2FzdE9mZmVyKG9mZmVyLCByaWRzKSB7CisgIGNv
bnN0IHNlY3Rpb25zID0gU0RQVXRpbHMuc3BsaXRTZWN0aW9ucyhvZmZlci5zZHApOworICBjb25z
dCBkdGxzID0gU0RQVXRpbHMuZ2V0RHRsc1BhcmFtZXRlcnMoc2VjdGlvbnNbMV0sIHNlY3Rpb25z
WzBdKTsKKyAgY29uc3QgaWNlID0gU0RQVXRpbHMuZ2V0SWNlUGFyYW1ldGVycyhzZWN0aW9uc1sx
XSwgc2VjdGlvbnNbMF0pOworICBjb25zdCBydHBQYXJhbWV0ZXJzID0gU0RQVXRpbHMucGFyc2VS
dHBQYXJhbWV0ZXJzKHNlY3Rpb25zWzFdKTsKKworICAvLyBUaGUgZ2lzdCBvZiB0aGlzIGhhY2sg
aXMgdGhhdCByaWQgYW5kIG1pZCBoYXZlIHRoZSBzYW1lIHdpcmUgZm9ybWF0LgorICBjb25zdCBy
aWQgPSBydHBQYXJhbWV0ZXJzLmhlYWRlckV4dGVuc2lvbnMuZmluZChleHQgPT4gZXh0LnVyaSA9
PT0gJ3VybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6cnRwLXN0cmVhbS1pZCcpOworICBy
dHBQYXJhbWV0ZXJzLmhlYWRlckV4dGVuc2lvbnMgPSBydHBQYXJhbWV0ZXJzLmhlYWRlckV4dGVu
c2lvbnMuZmlsdGVyKGV4dCA9PiB7CisgICAgcmV0dXJuICFleHRlbnNpb25zVG9GaWx0ZXIuaW5j
bHVkZXMoZXh0LnVyaSk7CisgIH0pOworICAvLyBUaGlzIHRlbGxzIHRoZSBvdGhlciBzaWRlIHRo
YXQgdGhlIFJJRCBwYWNrZXRzIGFyZSBhY3R1YWxseSBtaWRzLgorICBydHBQYXJhbWV0ZXJzLmhl
YWRlckV4dGVuc2lvbnMucHVzaCh7aWQ6IHJpZC5pZCwgdXJpOiAndXJuOmlldGY6cGFyYW1zOnJ0
cC1oZHJleHQ6c2RlczptaWQnLCBkaXJlY3Rpb246ICdzZW5kcmVjdid9KTsKKworICAvLyBGaWx0
ZXIgcnR4IGFzIHdlIGhhdmUgbm8gd2F5IHRvIChyZSlpbnRlcnByZXQgcnJpZC4KKyAgLy8gTm90
IGRvaW5nIHRoaXMgbWFrZXMgcHJvYmluZyB1c2UgUlRYLCBpdCdzIG5vdCB1bmRlcnN0b29kIGFu
ZCByYW1wLXVwIGlzIHNsb3dlci4KKyAgcnRwUGFyYW1ldGVycy5jb2RlY3MgPSBydHBQYXJhbWV0
ZXJzLmNvZGVjcy5maWx0ZXIoYyA9PiBjLm5hbWUudG9VcHBlckNhc2UoKSAhPT0gJ1JUWCcpOwor
CisgIGxldCBzZHAgPSBTRFBVdGlscy53cml0ZVNlc3Npb25Cb2lsZXJwbGF0ZSgpICsKKyAgICBT
RFBVdGlscy53cml0ZUR0bHNQYXJhbWV0ZXJzKGR0bHMsICdhY3RwYXNzJykgKworICAgIFNEUFV0
aWxzLndyaXRlSWNlUGFyYW1ldGVycyhpY2UpICsKKyAgICAnYT1ncm91cDpCVU5ETEUgJyArIHJp
ZHMuam9pbignICcpICsgJ1xyXG4nOworICBjb25zdCBiYXNlUnRwRGVzY3JpcHRpb24gPSBTRFBV
dGlscy53cml0ZVJ0cERlc2NyaXB0aW9uKCd2aWRlbycsIHJ0cFBhcmFtZXRlcnMpOworICByaWRz
LmZvckVhY2gocmlkID0+IHsKKyAgICBzZHAgKz0gYmFzZVJ0cERlc2NyaXB0aW9uICsKKyAgICAg
ICAgJ2E9bWlkOicgKyByaWQgKyAnXHJcbicgKworICAgICAgICAnYT1tc2lkOnJpZC0nICsgcmlk
ICsgJyByaWQtJyArIHJpZCArICdcclxuJzsKKyAgfSk7CisgIHJldHVybiBzZHA7Cit9CisKK2Z1
bmN0aW9uIHN3YXBSaWRBbmRNaWRFeHRlbnNpb25zSW5TaW11bGNhc3RBbnN3ZXIoYW5zd2VyLCBs
b2NhbERlc2NyaXB0aW9uLCByaWRzKSB7CisgIGNvbnN0IHNlY3Rpb25zID0gU0RQVXRpbHMuc3Bs
aXRTZWN0aW9ucyhhbnN3ZXIuc2RwKTsKKyAgY29uc3QgZHRscyA9IFNEUFV0aWxzLmdldER0bHNQ
YXJhbWV0ZXJzKHNlY3Rpb25zWzFdLCBzZWN0aW9uc1swXSk7CisgIGNvbnN0IGljZSA9IFNEUFV0
aWxzLmdldEljZVBhcmFtZXRlcnMoc2VjdGlvbnNbMV0sIHNlY3Rpb25zWzBdKTsKKyAgY29uc3Qg
cnRwUGFyYW1ldGVycyA9IFNEUFV0aWxzLnBhcnNlUnRwUGFyYW1ldGVycyhzZWN0aW9uc1sxXSk7
CisKKyAgcnRwUGFyYW1ldGVycy5oZWFkZXJFeHRlbnNpb25zID0gcnRwUGFyYW1ldGVycy5oZWFk
ZXJFeHRlbnNpb25zLmZpbHRlcihleHQgPT4geworICAgIHJldHVybiAhZXh0ZW5zaW9uc1RvRmls
dGVyLmluY2x1ZGVzKGV4dC51cmkpOworICB9KTsKKyAgY29uc3QgbG9jYWxNaWQgPSBTRFBVdGls
cy5nZXRNaWQoU0RQVXRpbHMuc3BsaXRTZWN0aW9ucyhsb2NhbERlc2NyaXB0aW9uLnNkcClbMV0p
OworICBsZXQgc2RwID0gU0RQVXRpbHMud3JpdGVTZXNzaW9uQm9pbGVycGxhdGUoKSArCisgICAg
U0RQVXRpbHMud3JpdGVEdGxzUGFyYW1ldGVycyhkdGxzLCAnYWN0aXZlJykgKworICAgIFNEUFV0
aWxzLndyaXRlSWNlUGFyYW1ldGVycyhpY2UpICsKKyAgICAnYT1ncm91cDpCVU5ETEUgJyArIGxv
Y2FsTWlkICsgJ1xyXG4nOworICBzZHAgKz0gU0RQVXRpbHMud3JpdGVSdHBEZXNjcmlwdGlvbign
dmlkZW8nLCBydHBQYXJhbWV0ZXJzKTsKKyAgc2RwICs9ICdhPW1pZDonICsgbG9jYWxNaWQgKyAn
XHJcbic7CisKKyAgcmlkcy5mb3JFYWNoKHJpZCA9PiB7CisgICAgc2RwICs9ICdhPXJpZDonICsg
cmlkICsgJyByZWN2XHJcbic7CisgIH0pOworICBzZHAgKz0gJ2E9c2ltdWxjYXN0OnJlY3YgJyAr
IHJpZHMuam9pbignOycpICsgJ1xyXG4nOworCisgIC8vIFJlLWFkZCBoZWFkZXJleHRlbnNpb25z
IHdlIGZpbHRlcmVkLgorICBjb25zdCBoZWFkZXJFeHRlbnNpb25zID0gU0RQVXRpbHMucGFyc2VS
dHBQYXJhbWV0ZXJzKFNEUFV0aWxzLnNwbGl0U2VjdGlvbnMobG9jYWxEZXNjcmlwdGlvbi5zZHAp
WzFdKS5oZWFkZXJFeHRlbnNpb25zOworICBoZWFkZXJFeHRlbnNpb25zLmZvckVhY2goZXh0ID0+
IHsKKyAgICBpZiAoZXh0ZW5zaW9uc1RvRmlsdGVyLmluY2x1ZGVzKGV4dC51cmkpKSB7CisgICAg
ICBzZHAgKz0gJ2E9ZXh0bWFwOicgKyBleHQuaWQgKyAnICcgKyBleHQudXJpICsgJ1xyXG4nOwor
ICAgIH0KKyAgfSk7CisgIHJldHVybiBzZHA7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIG5lZ290aWF0
ZVNpbXVsY2FzdEFuZFdhaXRGb3JWaWRlbyh0LCByaWRzLCBwYzEsIHBjMiwgY29kZWMpIHsKKyAg
ZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKworICBjb25zdCBtZXRhZGF0YVRvQmVM
b2FkZWQgPSBbXTsKKyAgcGMyLm9udHJhY2sgPSAoZSkgPT4geworICAgIGNvbnN0IHN0cmVhbSA9
IGUuc3RyZWFtc1swXTsKKyAgICBjb25zdCB2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlk
ZW8nKTsKKyAgICB2LmF1dG9wbGF5ID0gdHJ1ZTsKKyAgICB2LnNyY09iamVjdCA9IHN0cmVhbTsK
KyAgICB2LmlkID0gc3RyZWFtLmlkCisgICAgbWV0YWRhdGFUb0JlTG9hZGVkLnB1c2gobmV3IFBy
b21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgdi5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRt
ZXRhZGF0YScsICgpID0+IHsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfSkpOworICB9OworCisgIC8vIFVzZSBnZXRVc2VyTWVkaWEgYXMgZ2V0Tm9pc2VTdHJlYW0g
ZG9lcyBub3QgaGF2ZSBlbm91Z2ggZW50cm9weSB0byByYW1wLXVwLgorICBjb25zdCBzdHJlYW0g
PSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHt3aWR0
aDogMTI4MCwgaGVpZ2h0OiA3MjB9fSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdl
dFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIGNvbnN0IHRyYW5z
Y2VpdmVyID0gcGMxLmFkZFRyYW5zY2VpdmVyKHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLCB7
CisgICAgc3RyZWFtczogW3N0cmVhbV0sCisgICAgc2VuZEVuY29kaW5nczogcmlkcy5tYXAocmlk
ID0+ICh7cmlkfSkpLAorICB9KTsKKyAgaWYgKGNvZGVjKSB7CisgICAgcHJlZmVyQ29kZWModHJh
bnNjZWl2ZXIsIGNvZGVjLm1pbWVUeXBlLCBjb2RlYy5zZHBGbXRwTGluZSk7CisgIH0KKworICBj
b25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworICBhd2FpdCBwYzEuc2V0TG9j
YWxEZXNjcmlwdGlvbihvZmZlciksCisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbih7
CisgICAgdHlwZTogJ29mZmVyJywKKyAgICBzZHA6IHN3YXBSaWRBbmRNaWRFeHRlbnNpb25zSW5T
aW11bGNhc3RPZmZlcihvZmZlciwgcmlkcyksCisgIH0pOworICBjb25zdCBhbnN3ZXIgPSBhd2Fp
dCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFu
c3dlcik7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbih7CisgICAgdHlwZTogJ2Fu
c3dlcicsCisgICAgc2RwOiBzd2FwUmlkQW5kTWlkRXh0ZW5zaW9uc0luU2ltdWxjYXN0QW5zd2Vy
KGFuc3dlciwgcGMxLmxvY2FsRGVzY3JpcHRpb24sIHJpZHMpLAorICB9KTsKKyAgYXNzZXJ0X2Vx
dWFscyhtZXRhZGF0YVRvQmVMb2FkZWQubGVuZ3RoLCByaWRzLmxlbmd0aCk7CisgIHJldHVybiBQ
cm9taXNlLmFsbChtZXRhZGF0YVRvQmVMb2FkZWQpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41OTAyMzc3MTFlZWZjOGZjODk2NzJlYTVjYWEwMWIyMTkwNzg2MmI1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
c2ltdWxjYXN0L3ZwOC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK0hhcm5l
c3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIFZQOCBzaW11bGNh
c3Qgc2V0dXAgd2l0aCB0aHJlZSBzcGF0aWFsIGxheWVycyBUZXN0IHRpbWVkIG91dAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4Lmh0dHBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTM1NjdlNjFjMjFkMWI2OGU1NDlmYzhiMDQ1YjQ4ZWE5YjA3ZWNjNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC92cDguaHR0cHMuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IWRvY3R5cGUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gU2ltdWxj
YXN0IFRlc3RzPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgor
PHNjcmlwdCBzcmM9Ii4uL3RoaXJkX3BhcnR5L3NkcC9zZHAuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNpbXVsY2FzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNv
bm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgIGFzc2VydF9pbXBsZW1lbnRzKCdnZXRDYXBhYmlsaXRpZXMnIGluIFJUQ1J0cFNlbmRl
ciwgJ1JUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMgbm90IHN1cHBvcnRlZCcpOworICBhc3Nl
cnRfaW1wbGVtZW50cyhSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpLmNvZGVj
cy5maW5kKGMgPT4gYy5taW1lVHlwZSA9PT0gJ3ZpZGVvL1ZQOCcpLCAnVlA4IG5vdCBzdXBwb3J0
ZWQnKTsKKworICBjb25zdCByaWRzID0gWzAsIDEsIDJdOworICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Cisg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMi5jbG9zZSgpKTsKKworICByZXR1cm4gbmVnb3RpYXRlU2ltdWxjYXN0QW5kV2FpdEZv
clZpZGVvKHQsIHJpZHMsIHBjMSwgcGMyLCB7bWltZVR5cGU6ICd2aWRlby9WUDgnfSk7Cit9LCAn
VlA4IHNpbXVsY2FzdCBzZXR1cCB3aXRoIHRocmVlIHNwYXRpYWwgbGF5ZXJzJyk7Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3NpbXVsY2FzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC93M2MtaW1wb3J0LmxvZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kOTUwMzMyMGFlZTlhMGE3Y2VhODEwNmY0MTQ3NzIyYjRmYTM2ZDhkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvc2ltdWxjYXN0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjIgQEAKK1RoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVz
OgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Np
bXVsY2FzdC9iYXNpYy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0dHBzLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qv
aDI2NC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWwKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNh
c3Qvc2ltdWxjYXN0LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGlyZF9wYXJ0eS9S
RUFETUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy90aGlyZF9wYXJ0eS9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZhMjI5NWRkMTAzZGI3Njgz
NmQxN2ZhNTEzZjU2ZDA5ODkxYzU4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3RoaXJkX3BhcnR5L1JFQURNRS5t
ZApAQCAtMCwwICsxLDUgQEAKKyMjIHNkcAorVGhpcmQtcGFydHkgU0RQIG1vZHVsZSBmcm9tCisg
IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3NkcAord2l0aG91dCB0ZXN0cyBvciBkZXBl
bmRlbmNpZXMuIFNlZSB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHZlcnNpb24KK2FuZCBjb21taXQg
aW5mb3JtYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3RoaXJkX3BhcnR5L3NkcC9MSUNFTlNFIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdGhpcmRfcGFydHkvc2RwL0xJ
Q0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDk1MDJlYzBhMWQ4NzQwOTVjMjAxN2I1ZDgwYjlkMmZmOGRlY2Yw
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3RoaXJkX3BhcnR5L3NkcC9MSUNFTlNFCkBAIC0wLDAgKzEsMTkgQEAK
K0NvcHlyaWdodCAoYykgMjAxNyBQaGlsaXBwIEhhbmNrZQorCitQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5
CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo
ZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Ig
c2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo
b20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKK2NvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S
CitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX
QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3RoaXJkX3BhcnR5L3NkcC9zZHAuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGlyZF9wYXJ0eS9zZHAvc2RwLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQy
YTI4NzA2MTE1YmM1ZDM1MTlmMmNiMDcxNzk2Nzc4M2NlNTJmYWIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGly
ZF9wYXJ0eS9zZHAvc2RwLmpzCkBAIC0wLDAgKzEsODI1IEBACisvKiBlc2xpbnQtZW52IG5vZGUg
Ki8KKyd1c2Ugc3RyaWN0JzsKKworLy8gU0RQIGhlbHBlcnMuCit2YXIgU0RQVXRpbHMgPSB7fTsK
KworLy8gR2VuZXJhdGUgYW4gYWxwaGFudW1lcmljIGlkZW50aWZpZXIgZm9yIGNuYW1lIG9yIG1p
ZHMuCisvLyBUT0RPOiB1c2UgVVVJRHMgaW5zdGVhZD8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20v
amVkLzk4Mjg4MworU0RQVXRpbHMuZ2VuZXJhdGVJZGVudGlmaWVyID0gZnVuY3Rpb24oKSB7Cisg
IHJldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgMTApOworfTsKKwor
Ly8gVGhlIFJUQ1AgQ05BTUUgdXNlZCBieSBhbGwgcGVlcmNvbm5lY3Rpb25zIGZyb20gdGhlIHNh
bWUgSlMuCitTRFBVdGlscy5sb2NhbENOYW1lID0gU0RQVXRpbHMuZ2VuZXJhdGVJZGVudGlmaWVy
KCk7CisKKy8vIFNwbGl0cyBTRFAgaW50byBsaW5lcywgZGVhbGluZyB3aXRoIGJvdGggQ1JMRiBh
bmQgTEYuCitTRFBVdGlscy5zcGxpdExpbmVzID0gZnVuY3Rpb24oYmxvYikgeworICByZXR1cm4g
YmxvYi50cmltKCkuc3BsaXQoJ1xuJykubWFwKGZ1bmN0aW9uKGxpbmUpIHsKKyAgICByZXR1cm4g
bGluZS50cmltKCk7CisgIH0pOworfTsKKy8vIFNwbGl0cyBTRFAgaW50byBzZXNzaW9ucGFydCBh
bmQgbWVkaWFzZWN0aW9ucy4gRW5zdXJlcyBDUkxGLgorU0RQVXRpbHMuc3BsaXRTZWN0aW9ucyA9
IGZ1bmN0aW9uKGJsb2IpIHsKKyAgdmFyIHBhcnRzID0gYmxvYi5zcGxpdCgnXG5tPScpOworICBy
ZXR1cm4gcGFydHMubWFwKGZ1bmN0aW9uKHBhcnQsIGluZGV4KSB7CisgICAgcmV0dXJuIChpbmRl
eCA+IDAgPyAnbT0nICsgcGFydCA6IHBhcnQpLnRyaW0oKSArICdcclxuJzsKKyAgfSk7Cit9Owor
CisvLyByZXR1cm5zIHRoZSBzZXNzaW9uIGRlc2NyaXB0aW9uLgorU0RQVXRpbHMuZ2V0RGVzY3Jp
cHRpb24gPSBmdW5jdGlvbihibG9iKSB7CisgIHZhciBzZWN0aW9ucyA9IFNEUFV0aWxzLnNwbGl0
U2VjdGlvbnMoYmxvYik7CisgIHJldHVybiBzZWN0aW9ucyAmJiBzZWN0aW9uc1swXTsKK307CisK
Ky8vIHJldHVybnMgdGhlIGluZGl2aWR1YWwgbWVkaWEgc2VjdGlvbnMuCitTRFBVdGlscy5nZXRN
ZWRpYVNlY3Rpb25zID0gZnVuY3Rpb24oYmxvYikgeworICB2YXIgc2VjdGlvbnMgPSBTRFBVdGls
cy5zcGxpdFNlY3Rpb25zKGJsb2IpOworICBzZWN0aW9ucy5zaGlmdCgpOworICByZXR1cm4gc2Vj
dGlvbnM7Cit9OworCisvLyBSZXR1cm5zIGxpbmVzIHRoYXQgc3RhcnQgd2l0aCBhIGNlcnRhaW4g
cHJlZml4LgorU0RQVXRpbHMubWF0Y2hQcmVmaXggPSBmdW5jdGlvbihibG9iLCBwcmVmaXgpIHsK
KyAgcmV0dXJuIFNEUFV0aWxzLnNwbGl0TGluZXMoYmxvYikuZmlsdGVyKGZ1bmN0aW9uKGxpbmUp
IHsKKyAgICByZXR1cm4gbGluZS5pbmRleE9mKHByZWZpeCkgPT09IDA7CisgIH0pOworfTsKKwor
Ly8gUGFyc2VzIGFuIElDRSBjYW5kaWRhdGUgbGluZS4gU2FtcGxlIGlucHV0OgorLy8gY2FuZGlk
YXRlOjcwMjc4NjM1MCAyIHVkcCA0MTgxOTkwMiA4LjguOC44IDYwNzY5IHR5cCByZWxheSByYWRk
ciA4LjguOC44CisvLyBycG9ydCA1NTk5NiIKK1NEUFV0aWxzLnBhcnNlQ2FuZGlkYXRlID0gZnVu
Y3Rpb24obGluZSkgeworICB2YXIgcGFydHM7CisgIC8vIFBhcnNlIGJvdGggdmFyaWFudHMuCisg
IGlmIChsaW5lLmluZGV4T2YoJ2E9Y2FuZGlkYXRlOicpID09PSAwKSB7CisgICAgcGFydHMgPSBs
aW5lLnN1YnN0cmluZygxMikuc3BsaXQoJyAnKTsKKyAgfSBlbHNlIHsKKyAgICBwYXJ0cyA9IGxp
bmUuc3Vic3RyaW5nKDEwKS5zcGxpdCgnICcpOworICB9CisKKyAgdmFyIGNhbmRpZGF0ZSA9IHsK
KyAgICBmb3VuZGF0aW9uOiBwYXJ0c1swXSwKKyAgICBjb21wb25lbnQ6IHBhcnNlSW50KHBhcnRz
WzFdLCAxMCksCisgICAgcHJvdG9jb2w6IHBhcnRzWzJdLnRvTG93ZXJDYXNlKCksCisgICAgcHJp
b3JpdHk6IHBhcnNlSW50KHBhcnRzWzNdLCAxMCksCisgICAgaXA6IHBhcnRzWzRdLAorICAgIGFk
ZHJlc3M6IHBhcnRzWzRdLCAvLyBhZGRyZXNzIGlzIGFuIGFsaWFzIGZvciBpcC4KKyAgICBwb3J0
OiBwYXJzZUludChwYXJ0c1s1XSwgMTApLAorICAgIC8vIHNraXAgcGFydHNbNl0gPT0gJ3R5cCcK
KyAgICB0eXBlOiBwYXJ0c1s3XQorICB9OworCisgIGZvciAodmFyIGkgPSA4OyBpIDwgcGFydHMu
bGVuZ3RoOyBpICs9IDIpIHsKKyAgICBzd2l0Y2ggKHBhcnRzW2ldKSB7CisgICAgICBjYXNlICdy
YWRkcic6CisgICAgICAgIGNhbmRpZGF0ZS5yZWxhdGVkQWRkcmVzcyA9IHBhcnRzW2kgKyAxXTsK
KyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdycG9ydCc6CisgICAgICAgIGNhbmRpZGF0ZS5y
ZWxhdGVkUG9ydCA9IHBhcnNlSW50KHBhcnRzW2kgKyAxXSwgMTApOworICAgICAgICBicmVhazsK
KyAgICAgIGNhc2UgJ3RjcHR5cGUnOgorICAgICAgICBjYW5kaWRhdGUudGNwVHlwZSA9IHBhcnRz
W2kgKyAxXTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICd1ZnJhZyc6CisgICAgICAgIGNh
bmRpZGF0ZS51ZnJhZyA9IHBhcnRzW2kgKyAxXTsgLy8gZm9yIGJhY2t3YXJkIGNvbXBhYmlsaXR5
LgorICAgICAgICBjYW5kaWRhdGUudXNlcm5hbWVGcmFnbWVudCA9IHBhcnRzW2kgKyAxXTsKKyAg
ICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OiAvLyBleHRlbnNpb24gaGFuZGxpbmcsIGluIHBh
cnRpY3VsYXIgdWZyYWcKKyAgICAgICAgY2FuZGlkYXRlW3BhcnRzW2ldXSA9IHBhcnRzW2kgKyAx
XTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9CisgIHJldHVybiBjYW5kaWRhdGU7Cit9Owor
CisvLyBUcmFuc2xhdGVzIGEgY2FuZGlkYXRlIG9iamVjdCBpbnRvIFNEUCBjYW5kaWRhdGUgYXR0
cmlidXRlLgorU0RQVXRpbHMud3JpdGVDYW5kaWRhdGUgPSBmdW5jdGlvbihjYW5kaWRhdGUpIHsK
KyAgdmFyIHNkcCA9IFtdOworICBzZHAucHVzaChjYW5kaWRhdGUuZm91bmRhdGlvbik7CisgIHNk
cC5wdXNoKGNhbmRpZGF0ZS5jb21wb25lbnQpOworICBzZHAucHVzaChjYW5kaWRhdGUucHJvdG9j
b2wudG9VcHBlckNhc2UoKSk7CisgIHNkcC5wdXNoKGNhbmRpZGF0ZS5wcmlvcml0eSk7CisgIHNk
cC5wdXNoKGNhbmRpZGF0ZS5hZGRyZXNzIHx8IGNhbmRpZGF0ZS5pcCk7CisgIHNkcC5wdXNoKGNh
bmRpZGF0ZS5wb3J0KTsKKworICB2YXIgdHlwZSA9IGNhbmRpZGF0ZS50eXBlOworICBzZHAucHVz
aCgndHlwJyk7CisgIHNkcC5wdXNoKHR5cGUpOworICBpZiAodHlwZSAhPT0gJ2hvc3QnICYmIGNh
bmRpZGF0ZS5yZWxhdGVkQWRkcmVzcyAmJgorICAgICAgY2FuZGlkYXRlLnJlbGF0ZWRQb3J0KSB7
CisgICAgc2RwLnB1c2goJ3JhZGRyJyk7CisgICAgc2RwLnB1c2goY2FuZGlkYXRlLnJlbGF0ZWRB
ZGRyZXNzKTsKKyAgICBzZHAucHVzaCgncnBvcnQnKTsKKyAgICBzZHAucHVzaChjYW5kaWRhdGUu
cmVsYXRlZFBvcnQpOworICB9CisgIGlmIChjYW5kaWRhdGUudGNwVHlwZSAmJiBjYW5kaWRhdGUu
cHJvdG9jb2wudG9Mb3dlckNhc2UoKSA9PT0gJ3RjcCcpIHsKKyAgICBzZHAucHVzaCgndGNwdHlw
ZScpOworICAgIHNkcC5wdXNoKGNhbmRpZGF0ZS50Y3BUeXBlKTsKKyAgfQorICBpZiAoY2FuZGlk
YXRlLnVzZXJuYW1lRnJhZ21lbnQgfHwgY2FuZGlkYXRlLnVmcmFnKSB7CisgICAgc2RwLnB1c2go
J3VmcmFnJyk7CisgICAgc2RwLnB1c2goY2FuZGlkYXRlLnVzZXJuYW1lRnJhZ21lbnQgfHwgY2Fu
ZGlkYXRlLnVmcmFnKTsKKyAgfQorICByZXR1cm4gJ2NhbmRpZGF0ZTonICsgc2RwLmpvaW4oJyAn
KTsKK307CisKKy8vIFBhcnNlcyBhbiBpY2Utb3B0aW9ucyBsaW5lLCByZXR1cm5zIGFuIGFycmF5
IG9mIG9wdGlvbiB0YWdzLgorLy8gYT1pY2Utb3B0aW9uczpmb28gYmFyCitTRFBVdGlscy5wYXJz
ZUljZU9wdGlvbnMgPSBmdW5jdGlvbihsaW5lKSB7CisgIHJldHVybiBsaW5lLnN1YnN0cigxNCku
c3BsaXQoJyAnKTsKK307CisKKy8vIFBhcnNlcyBhbiBydHBtYXAgbGluZSwgcmV0dXJucyBSVENS
dHBDb2RkZWNQYXJhbWV0ZXJzLiBTYW1wbGUgaW5wdXQ6CisvLyBhPXJ0cG1hcDoxMTEgb3B1cy80
ODAwMC8yCitTRFBVdGlscy5wYXJzZVJ0cE1hcCA9IGZ1bmN0aW9uKGxpbmUpIHsKKyAgdmFyIHBh
cnRzID0gbGluZS5zdWJzdHIoOSkuc3BsaXQoJyAnKTsKKyAgdmFyIHBhcnNlZCA9IHsKKyAgICBw
YXlsb2FkVHlwZTogcGFyc2VJbnQocGFydHMuc2hpZnQoKSwgMTApIC8vIHdhczogaWQKKyAgfTsK
KworICBwYXJ0cyA9IHBhcnRzWzBdLnNwbGl0KCcvJyk7CisKKyAgcGFyc2VkLm5hbWUgPSBwYXJ0
c1swXTsKKyAgcGFyc2VkLmNsb2NrUmF0ZSA9IHBhcnNlSW50KHBhcnRzWzFdLCAxMCk7IC8vIHdh
czogY2xvY2tyYXRlCisgIHBhcnNlZC5jaGFubmVscyA9IHBhcnRzLmxlbmd0aCA9PT0gMyA/IHBh
cnNlSW50KHBhcnRzWzJdLCAxMCkgOiAxOworICAvLyBsZWdhY3kgYWxpYXMsIGdvdCByZW5hbWVk
IGJhY2sgdG8gY2hhbm5lbHMgaW4gT1JUQy4KKyAgcGFyc2VkLm51bUNoYW5uZWxzID0gcGFyc2Vk
LmNoYW5uZWxzOworICByZXR1cm4gcGFyc2VkOworfTsKKworLy8gR2VuZXJhdGUgYW4gYT1ydHBt
YXAgbGluZSBmcm9tIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBvcgorLy8gUlRDUnRwQ29kZWNQYXJh
bWV0ZXJzLgorU0RQVXRpbHMud3JpdGVSdHBNYXAgPSBmdW5jdGlvbihjb2RlYykgeworICB2YXIg
cHQgPSBjb2RlYy5wYXlsb2FkVHlwZTsKKyAgaWYgKGNvZGVjLnByZWZlcnJlZFBheWxvYWRUeXBl
ICE9PSB1bmRlZmluZWQpIHsKKyAgICBwdCA9IGNvZGVjLnByZWZlcnJlZFBheWxvYWRUeXBlOwor
ICB9CisgIHZhciBjaGFubmVscyA9IGNvZGVjLmNoYW5uZWxzIHx8IGNvZGVjLm51bUNoYW5uZWxz
IHx8IDE7CisgIHJldHVybiAnYT1ydHBtYXA6JyArIHB0ICsgJyAnICsgY29kZWMubmFtZSArICcv
JyArIGNvZGVjLmNsb2NrUmF0ZSArCisgICAgICAoY2hhbm5lbHMgIT09IDEgPyAnLycgKyBjaGFu
bmVscyA6ICcnKSArICdcclxuJzsKK307CisKKy8vIFBhcnNlcyBhbiBhPWV4dG1hcCBsaW5lICho
ZWFkZXJleHRlbnNpb24gZnJvbSBSRkMgNTI4NSkuIFNhbXBsZSBpbnB1dDoKKy8vIGE9ZXh0bWFw
OjIgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6dG9mZnNldAorLy8gYT1leHRtYXA6Mi9zZW5k
b25seSB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDp0b2Zmc2V0CitTRFBVdGlscy5wYXJzZUV4
dG1hcCA9IGZ1bmN0aW9uKGxpbmUpIHsKKyAgdmFyIHBhcnRzID0gbGluZS5zdWJzdHIoOSkuc3Bs
aXQoJyAnKTsKKyAgcmV0dXJuIHsKKyAgICBpZDogcGFyc2VJbnQocGFydHNbMF0sIDEwKSwKKyAg
ICBkaXJlY3Rpb246IHBhcnRzWzBdLmluZGV4T2YoJy8nKSA+IDAgPyBwYXJ0c1swXS5zcGxpdCgn
LycpWzFdIDogJ3NlbmRyZWN2JywKKyAgICB1cmk6IHBhcnRzWzFdCisgIH07Cit9OworCisvLyBH
ZW5lcmF0ZXMgYT1leHRtYXAgbGluZSBmcm9tIFJUQ1J0cEhlYWRlckV4dGVuc2lvblBhcmFtZXRl
cnMgb3IKKy8vIFJUQ1J0cEhlYWRlckV4dGVuc2lvbi4KK1NEUFV0aWxzLndyaXRlRXh0bWFwID0g
ZnVuY3Rpb24oaGVhZGVyRXh0ZW5zaW9uKSB7CisgIHJldHVybiAnYT1leHRtYXA6JyArIChoZWFk
ZXJFeHRlbnNpb24uaWQgfHwgaGVhZGVyRXh0ZW5zaW9uLnByZWZlcnJlZElkKSArCisgICAgICAo
aGVhZGVyRXh0ZW5zaW9uLmRpcmVjdGlvbiAmJiBoZWFkZXJFeHRlbnNpb24uZGlyZWN0aW9uICE9
PSAnc2VuZHJlY3YnCisgICAgICAgID8gJy8nICsgaGVhZGVyRXh0ZW5zaW9uLmRpcmVjdGlvbgor
ICAgICAgICA6ICcnKSArCisgICAgICAnICcgKyBoZWFkZXJFeHRlbnNpb24udXJpICsgJ1xyXG4n
OworfTsKKworLy8gUGFyc2VzIGFuIGZ0bXAgbGluZSwgcmV0dXJucyBkaWN0aW9uYXJ5LiBTYW1w
bGUgaW5wdXQ6CisvLyBhPWZtdHA6OTYgdmJyPW9uO2NuZz1vbgorLy8gQWxzbyBkZWFscyB3aXRo
IHZicj1vbjsgY25nPW9uCitTRFBVdGlscy5wYXJzZUZtdHAgPSBmdW5jdGlvbihsaW5lKSB7Cisg
IHZhciBwYXJzZWQgPSB7fTsKKyAgdmFyIGt2OworICB2YXIgcGFydHMgPSBsaW5lLnN1YnN0cihs
aW5lLmluZGV4T2YoJyAnKSArIDEpLnNwbGl0KCc7Jyk7CisgIGZvciAodmFyIGogPSAwOyBqIDwg
cGFydHMubGVuZ3RoOyBqKyspIHsKKyAgICBrdiA9IHBhcnRzW2pdLnRyaW0oKS5zcGxpdCgnPScp
OworICAgIHBhcnNlZFtrdlswXS50cmltKCldID0ga3ZbMV07CisgIH0KKyAgcmV0dXJuIHBhcnNl
ZDsKK307CisKKy8vIEdlbmVyYXRlcyBhbiBhPWZ0bXAgbGluZSBmcm9tIFJUQ1J0cENvZGVjQ2Fw
YWJpbGl0eSBvciBSVENSdHBDb2RlY1BhcmFtZXRlcnMuCitTRFBVdGlscy53cml0ZUZtdHAgPSBm
dW5jdGlvbihjb2RlYykgeworICB2YXIgbGluZSA9ICcnOworICB2YXIgcHQgPSBjb2RlYy5wYXls
b2FkVHlwZTsKKyAgaWYgKGNvZGVjLnByZWZlcnJlZFBheWxvYWRUeXBlICE9PSB1bmRlZmluZWQp
IHsKKyAgICBwdCA9IGNvZGVjLnByZWZlcnJlZFBheWxvYWRUeXBlOworICB9CisgIGlmIChjb2Rl
Yy5wYXJhbWV0ZXJzICYmIE9iamVjdC5rZXlzKGNvZGVjLnBhcmFtZXRlcnMpLmxlbmd0aCkgewor
ICAgIHZhciBwYXJhbXMgPSBbXTsKKyAgICBPYmplY3Qua2V5cyhjb2RlYy5wYXJhbWV0ZXJzKS5m
b3JFYWNoKGZ1bmN0aW9uKHBhcmFtKSB7CisgICAgICBpZiAoY29kZWMucGFyYW1ldGVyc1twYXJh
bV0pIHsKKyAgICAgICAgcGFyYW1zLnB1c2gocGFyYW0gKyAnPScgKyBjb2RlYy5wYXJhbWV0ZXJz
W3BhcmFtXSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBwYXJhbXMucHVzaChwYXJhbSk7Cisg
ICAgICB9CisgICAgfSk7CisgICAgbGluZSArPSAnYT1mbXRwOicgKyBwdCArICcgJyArIHBhcmFt
cy5qb2luKCc7JykgKyAnXHJcbic7CisgIH0KKyAgcmV0dXJuIGxpbmU7Cit9OworCisvLyBQYXJz
ZXMgYW4gcnRjcC1mYiBsaW5lLCByZXR1cm5zIFJUQ1BSdGNwRmVlZGJhY2sgb2JqZWN0LiBTYW1w
bGUgaW5wdXQ6CisvLyBhPXJ0Y3AtZmI6OTggbmFjayBycHNpCitTRFBVdGlscy5wYXJzZVJ0Y3BG
YiA9IGZ1bmN0aW9uKGxpbmUpIHsKKyAgdmFyIHBhcnRzID0gbGluZS5zdWJzdHIobGluZS5pbmRl
eE9mKCcgJykgKyAxKS5zcGxpdCgnICcpOworICByZXR1cm4geworICAgIHR5cGU6IHBhcnRzLnNo
aWZ0KCksCisgICAgcGFyYW1ldGVyOiBwYXJ0cy5qb2luKCcgJykKKyAgfTsKK307CisvLyBHZW5l
cmF0ZSBhPXJ0Y3AtZmIgbGluZXMgZnJvbSBSVENSdHBDb2RlY0NhcGFiaWxpdHkgb3IgUlRDUnRw
Q29kZWNQYXJhbWV0ZXJzLgorU0RQVXRpbHMud3JpdGVSdGNwRmIgPSBmdW5jdGlvbihjb2RlYykg
eworICB2YXIgbGluZXMgPSAnJzsKKyAgdmFyIHB0ID0gY29kZWMucGF5bG9hZFR5cGU7CisgIGlm
IChjb2RlYy5wcmVmZXJyZWRQYXlsb2FkVHlwZSAhPT0gdW5kZWZpbmVkKSB7CisgICAgcHQgPSBj
b2RlYy5wcmVmZXJyZWRQYXlsb2FkVHlwZTsKKyAgfQorICBpZiAoY29kZWMucnRjcEZlZWRiYWNr
ICYmIGNvZGVjLnJ0Y3BGZWVkYmFjay5sZW5ndGgpIHsKKyAgICAvLyBGSVhNRTogc3BlY2lhbCBo
YW5kbGluZyBmb3IgdHJyLWludD8KKyAgICBjb2RlYy5ydGNwRmVlZGJhY2suZm9yRWFjaChmdW5j
dGlvbihmYikgeworICAgICAgbGluZXMgKz0gJ2E9cnRjcC1mYjonICsgcHQgKyAnICcgKyBmYi50
eXBlICsKKyAgICAgIChmYi5wYXJhbWV0ZXIgJiYgZmIucGFyYW1ldGVyLmxlbmd0aCA/ICcgJyAr
IGZiLnBhcmFtZXRlciA6ICcnKSArCisgICAgICAgICAgJ1xyXG4nOworICAgIH0pOworICB9Cisg
IHJldHVybiBsaW5lczsKK307CisKKy8vIFBhcnNlcyBhbiBSRkMgNTU3NiBzc3JjIG1lZGlhIGF0
dHJpYnV0ZS4gU2FtcGxlIGlucHV0OgorLy8gYT1zc3JjOjM3MzU5Mjg1NTkgY25hbWU6c29tZXRo
aW5nCitTRFBVdGlscy5wYXJzZVNzcmNNZWRpYSA9IGZ1bmN0aW9uKGxpbmUpIHsKKyAgdmFyIHNw
ID0gbGluZS5pbmRleE9mKCcgJyk7CisgIHZhciBwYXJ0cyA9IHsKKyAgICBzc3JjOiBwYXJzZUlu
dChsaW5lLnN1YnN0cig3LCBzcCAtIDcpLCAxMCkKKyAgfTsKKyAgdmFyIGNvbG9uID0gbGluZS5p
bmRleE9mKCc6Jywgc3ApOworICBpZiAoY29sb24gPiAtMSkgeworICAgIHBhcnRzLmF0dHJpYnV0
ZSA9IGxpbmUuc3Vic3RyKHNwICsgMSwgY29sb24gLSBzcCAtIDEpOworICAgIHBhcnRzLnZhbHVl
ID0gbGluZS5zdWJzdHIoY29sb24gKyAxKTsKKyAgfSBlbHNlIHsKKyAgICBwYXJ0cy5hdHRyaWJ1
dGUgPSBsaW5lLnN1YnN0cihzcCArIDEpOworICB9CisgIHJldHVybiBwYXJ0czsKK307CisKK1NE
UFV0aWxzLnBhcnNlU3NyY0dyb3VwID0gZnVuY3Rpb24obGluZSkgeworICB2YXIgcGFydHMgPSBs
aW5lLnN1YnN0cigxMykuc3BsaXQoJyAnKTsKKyAgcmV0dXJuIHsKKyAgICBzZW1hbnRpY3M6IHBh
cnRzLnNoaWZ0KCksCisgICAgc3NyY3M6IHBhcnRzLm1hcChmdW5jdGlvbihzc3JjKSB7CisgICAg
ICByZXR1cm4gcGFyc2VJbnQoc3NyYywgMTApOworICAgIH0pCisgIH07Cit9OworCisvLyBFeHRy
YWN0cyB0aGUgTUlEIChSRkMgNTg4OCkgZnJvbSBhIG1lZGlhIHNlY3Rpb24uCisvLyByZXR1cm5z
IHRoZSBNSUQgb3IgdW5kZWZpbmVkIGlmIG5vIG1pZCBsaW5lIHdhcyBmb3VuZC4KK1NEUFV0aWxz
LmdldE1pZCA9IGZ1bmN0aW9uKG1lZGlhU2VjdGlvbikgeworICB2YXIgbWlkID0gU0RQVXRpbHMu
bWF0Y2hQcmVmaXgobWVkaWFTZWN0aW9uLCAnYT1taWQ6JylbMF07CisgIGlmIChtaWQpIHsKKyAg
ICByZXR1cm4gbWlkLnN1YnN0cig2KTsKKyAgfQorfTsKKworU0RQVXRpbHMucGFyc2VGaW5nZXJw
cmludCA9IGZ1bmN0aW9uKGxpbmUpIHsKKyAgdmFyIHBhcnRzID0gbGluZS5zdWJzdHIoMTQpLnNw
bGl0KCcgJyk7CisgIHJldHVybiB7CisgICAgYWxnb3JpdGhtOiBwYXJ0c1swXS50b0xvd2VyQ2Fz
ZSgpLCAvLyBhbGdvcml0aG0gaXMgY2FzZS1zZW5zaXRpdmUgaW4gRWRnZS4KKyAgICB2YWx1ZTog
cGFydHNbMV0KKyAgfTsKK307CisKKy8vIEV4dHJhY3RzIERUTFMgcGFyYW1ldGVycyBmcm9tIFNE
UCBtZWRpYSBzZWN0aW9uIG9yIHNlc3Npb25wYXJ0LgorLy8gRklYTUU6IGZvciBjb25zaXN0ZW5j
eSB3aXRoIG90aGVyIGZ1bmN0aW9ucyB0aGlzIHNob3VsZCBvbmx5CisvLyAgIGdldCB0aGUgZmlu
Z2VycHJpbnQgbGluZSBhcyBpbnB1dC4gU2VlIGFsc28gZ2V0SWNlUGFyYW1ldGVycy4KK1NEUFV0
aWxzLmdldER0bHNQYXJhbWV0ZXJzID0gZnVuY3Rpb24obWVkaWFTZWN0aW9uLCBzZXNzaW9ucGFy
dCkgeworICB2YXIgbGluZXMgPSBTRFBVdGlscy5tYXRjaFByZWZpeChtZWRpYVNlY3Rpb24gKyBz
ZXNzaW9ucGFydCwKKyAgICAnYT1maW5nZXJwcmludDonKTsKKyAgLy8gTm90ZTogYT1zZXR1cCBs
aW5lIGlzIGlnbm9yZWQgc2luY2Ugd2UgdXNlIHRoZSAnYXV0bycgcm9sZS4KKyAgLy8gTm90ZTI6
ICdhbGdvcml0aG0nIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSBleGNlcHQgaW4gRWRnZS4KKyAgcmV0
dXJuIHsKKyAgICByb2xlOiAnYXV0bycsCisgICAgZmluZ2VycHJpbnRzOiBsaW5lcy5tYXAoU0RQ
VXRpbHMucGFyc2VGaW5nZXJwcmludCkKKyAgfTsKK307CisKKy8vIFNlcmlhbGl6ZXMgRFRMUyBw
YXJhbWV0ZXJzIHRvIFNEUC4KK1NEUFV0aWxzLndyaXRlRHRsc1BhcmFtZXRlcnMgPSBmdW5jdGlv
bihwYXJhbXMsIHNldHVwVHlwZSkgeworICB2YXIgc2RwID0gJ2E9c2V0dXA6JyArIHNldHVwVHlw
ZSArICdcclxuJzsKKyAgcGFyYW1zLmZpbmdlcnByaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGZwKSB7
CisgICAgc2RwICs9ICdhPWZpbmdlcnByaW50OicgKyBmcC5hbGdvcml0aG0gKyAnICcgKyBmcC52
YWx1ZSArICdcclxuJzsKKyAgfSk7CisgIHJldHVybiBzZHA7Cit9OworCisvLyBQYXJzZXMgYT1j
cnlwdG8gbGluZXMgaW50bworLy8gICBodHRwczovL3Jhd2dpdC5jb20vYWJvYmEvZWRnZXJ0Yy9t
YXN0ZXIvbXNvcnRjLXJzNC5odG1sI2RpY3Rpb25hcnktcnRjc3J0cHNkZXNwYXJhbWV0ZXJzLW1l
bWJlcnMKK1NEUFV0aWxzLnBhcnNlQ3J5cHRvTGluZSA9IGZ1bmN0aW9uKGxpbmUpIHsKKyAgdmFy
IHBhcnRzID0gbGluZS5zdWJzdHIoOSkuc3BsaXQoJyAnKTsKKyAgcmV0dXJuIHsKKyAgICB0YWc6
IHBhcnNlSW50KHBhcnRzWzBdLCAxMCksCisgICAgY3J5cHRvU3VpdGU6IHBhcnRzWzFdLAorICAg
IGtleVBhcmFtczogcGFydHNbMl0sCisgICAgc2Vzc2lvblBhcmFtczogcGFydHMuc2xpY2UoMyks
CisgIH07Cit9OworCitTRFBVdGlscy53cml0ZUNyeXB0b0xpbmUgPSBmdW5jdGlvbihwYXJhbWV0
ZXJzKSB7CisgIHJldHVybiAnYT1jcnlwdG86JyArIHBhcmFtZXRlcnMudGFnICsgJyAnICsKKyAg
ICBwYXJhbWV0ZXJzLmNyeXB0b1N1aXRlICsgJyAnICsKKyAgICAodHlwZW9mIHBhcmFtZXRlcnMu
a2V5UGFyYW1zID09PSAnb2JqZWN0JworICAgICAgPyBTRFBVdGlscy53cml0ZUNyeXB0b0tleVBh
cmFtcyhwYXJhbWV0ZXJzLmtleVBhcmFtcykKKyAgICAgIDogcGFyYW1ldGVycy5rZXlQYXJhbXMp
ICsKKyAgICAocGFyYW1ldGVycy5zZXNzaW9uUGFyYW1zID8gJyAnICsgcGFyYW1ldGVycy5zZXNz
aW9uUGFyYW1zLmpvaW4oJyAnKSA6ICcnKSArCisgICAgJ1xyXG4nOworfTsKKworLy8gUGFyc2Vz
IHRoZSBjcnlwdG8ga2V5IHBhcmFtZXRlcnMgaW50bworLy8gICBodHRwczovL3Jhd2dpdC5jb20v
YWJvYmEvZWRnZXJ0Yy9tYXN0ZXIvbXNvcnRjLXJzNC5odG1sI3J0Y3NydHBrZXlwYXJhbSoKK1NE
UFV0aWxzLnBhcnNlQ3J5cHRvS2V5UGFyYW1zID0gZnVuY3Rpb24oa2V5UGFyYW1zKSB7CisgIGlm
IChrZXlQYXJhbXMuaW5kZXhPZignaW5saW5lOicpICE9PSAwKSB7CisgICAgcmV0dXJuIG51bGw7
CisgIH0KKyAgdmFyIHBhcnRzID0ga2V5UGFyYW1zLnN1YnN0cig3KS5zcGxpdCgnfCcpOworICBy
ZXR1cm4geworICAgIGtleU1ldGhvZDogJ2lubGluZScsCisgICAga2V5U2FsdDogcGFydHNbMF0s
CisgICAgbGlmZVRpbWU6IHBhcnRzWzFdLAorICAgIG1raVZhbHVlOiBwYXJ0c1syXSA/IHBhcnRz
WzJdLnNwbGl0KCc6JylbMF0gOiB1bmRlZmluZWQsCisgICAgbWtpTGVuZ3RoOiBwYXJ0c1syXSA/
IHBhcnRzWzJdLnNwbGl0KCc6JylbMV0gOiB1bmRlZmluZWQsCisgIH07Cit9OworCitTRFBVdGls
cy53cml0ZUNyeXB0b0tleVBhcmFtcyA9IGZ1bmN0aW9uKGtleVBhcmFtcykgeworICByZXR1cm4g
a2V5UGFyYW1zLmtleU1ldGhvZCArICc6JworICAgICsga2V5UGFyYW1zLmtleVNhbHQgKworICAg
IChrZXlQYXJhbXMubGlmZVRpbWUgPyAnfCcgKyBrZXlQYXJhbXMubGlmZVRpbWUgOiAnJykgKwor
ICAgIChrZXlQYXJhbXMubWtpVmFsdWUgJiYga2V5UGFyYW1zLm1raUxlbmd0aAorICAgICAgPyAn
fCcgKyBrZXlQYXJhbXMubWtpVmFsdWUgKyAnOicgKyBrZXlQYXJhbXMubWtpTGVuZ3RoCisgICAg
ICA6ICcnKTsKK307CisKKy8vIEV4dHJhY3RzIGFsbCBTREVTIHBhcmFtdGVycy4KK1NEUFV0aWxz
LmdldENyeXB0b1BhcmFtZXRlcnMgPSBmdW5jdGlvbihtZWRpYVNlY3Rpb24sIHNlc3Npb25wYXJ0
KSB7CisgIHZhciBsaW5lcyA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlvbiArIHNl
c3Npb25wYXJ0LAorICAgICdhPWNyeXB0bzonKTsKKyAgcmV0dXJuIGxpbmVzLm1hcChTRFBVdGls
cy5wYXJzZUNyeXB0b0xpbmUpOworfTsKKworLy8gUGFyc2VzIElDRSBpbmZvcm1hdGlvbiBmcm9t
IFNEUCBtZWRpYSBzZWN0aW9uIG9yIHNlc3Npb25wYXJ0LgorLy8gRklYTUU6IGZvciBjb25zaXN0
ZW5jeSB3aXRoIG90aGVyIGZ1bmN0aW9ucyB0aGlzIHNob3VsZCBvbmx5CisvLyAgIGdldCB0aGUg
aWNlLXVmcmFnIGFuZCBpY2UtcHdkIGxpbmVzIGFzIGlucHV0LgorU0RQVXRpbHMuZ2V0SWNlUGFy
YW1ldGVycyA9IGZ1bmN0aW9uKG1lZGlhU2VjdGlvbiwgc2Vzc2lvbnBhcnQpIHsKKyAgdmFyIHVm
cmFnID0gU0RQVXRpbHMubWF0Y2hQcmVmaXgobWVkaWFTZWN0aW9uICsgc2Vzc2lvbnBhcnQsCisg
ICAgJ2E9aWNlLXVmcmFnOicpWzBdOworICB2YXIgcHdkID0gU0RQVXRpbHMubWF0Y2hQcmVmaXgo
bWVkaWFTZWN0aW9uICsgc2Vzc2lvbnBhcnQsCisgICAgJ2E9aWNlLXB3ZDonKVswXTsKKyAgaWYg
KCEodWZyYWcgJiYgcHdkKSkgeworICAgIHJldHVybiBudWxsOworICB9CisgIHJldHVybiB7Cisg
ICAgdXNlcm5hbWVGcmFnbWVudDogdWZyYWcuc3Vic3RyKDEyKSwKKyAgICBwYXNzd29yZDogcHdk
LnN1YnN0cigxMCksCisgIH07Cit9OworCisvLyBTZXJpYWxpemVzIElDRSBwYXJhbWV0ZXJzIHRv
IFNEUC4KK1NEUFV0aWxzLndyaXRlSWNlUGFyYW1ldGVycyA9IGZ1bmN0aW9uKHBhcmFtcykgewor
ICByZXR1cm4gJ2E9aWNlLXVmcmFnOicgKyBwYXJhbXMudXNlcm5hbWVGcmFnbWVudCArICdcclxu
JyArCisgICAgICAnYT1pY2UtcHdkOicgKyBwYXJhbXMucGFzc3dvcmQgKyAnXHJcbic7Cit9Owor
CisvLyBQYXJzZXMgdGhlIFNEUCBtZWRpYSBzZWN0aW9uIGFuZCByZXR1cm5zIFJUQ1J0cFBhcmFt
ZXRlcnMuCitTRFBVdGlscy5wYXJzZVJ0cFBhcmFtZXRlcnMgPSBmdW5jdGlvbihtZWRpYVNlY3Rp
b24pIHsKKyAgdmFyIGRlc2NyaXB0aW9uID0geworICAgIGNvZGVjczogW10sCisgICAgaGVhZGVy
RXh0ZW5zaW9uczogW10sCisgICAgZmVjTWVjaGFuaXNtczogW10sCisgICAgcnRjcDogW10KKyAg
fTsKKyAgdmFyIGxpbmVzID0gU0RQVXRpbHMuc3BsaXRMaW5lcyhtZWRpYVNlY3Rpb24pOworICB2
YXIgbWxpbmUgPSBsaW5lc1swXS5zcGxpdCgnICcpOworICBmb3IgKHZhciBpID0gMzsgaSA8IG1s
aW5lLmxlbmd0aDsgaSsrKSB7IC8vIGZpbmQgYWxsIGNvZGVjcyBmcm9tIG1saW5lWzMuLl0KKyAg
ICB2YXIgcHQgPSBtbGluZVtpXTsKKyAgICB2YXIgcnRwbWFwbGluZSA9IFNEUFV0aWxzLm1hdGNo
UHJlZml4KAorICAgICAgbWVkaWFTZWN0aW9uLCAnYT1ydHBtYXA6JyArIHB0ICsgJyAnKVswXTsK
KyAgICBpZiAocnRwbWFwbGluZSkgeworICAgICAgdmFyIGNvZGVjID0gU0RQVXRpbHMucGFyc2VS
dHBNYXAocnRwbWFwbGluZSk7CisgICAgICB2YXIgZm10cHMgPSBTRFBVdGlscy5tYXRjaFByZWZp
eCgKKyAgICAgICAgbWVkaWFTZWN0aW9uLCAnYT1mbXRwOicgKyBwdCArICcgJyk7CisgICAgICAv
LyBPbmx5IHRoZSBmaXJzdCBhPWZtdHA6PHB0PiBpcyBjb25zaWRlcmVkLgorICAgICAgY29kZWMu
cGFyYW1ldGVycyA9IGZtdHBzLmxlbmd0aCA/IFNEUFV0aWxzLnBhcnNlRm10cChmbXRwc1swXSkg
OiB7fTsKKyAgICAgIGNvZGVjLnJ0Y3BGZWVkYmFjayA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KAor
ICAgICAgICBtZWRpYVNlY3Rpb24sICdhPXJ0Y3AtZmI6JyArIHB0ICsgJyAnKQorICAgICAgICAu
bWFwKFNEUFV0aWxzLnBhcnNlUnRjcEZiKTsKKyAgICAgIGRlc2NyaXB0aW9uLmNvZGVjcy5wdXNo
KGNvZGVjKTsKKyAgICAgIC8vIHBhcnNlIEZFQyBtZWNoYW5pc21zIGZyb20gcnRwbWFwIGxpbmVz
LgorICAgICAgc3dpdGNoIChjb2RlYy5uYW1lLnRvVXBwZXJDYXNlKCkpIHsKKyAgICAgICAgY2Fz
ZSAnUkVEJzoKKyAgICAgICAgY2FzZSAnVUxQRkVDJzoKKyAgICAgICAgICBkZXNjcmlwdGlvbi5m
ZWNNZWNoYW5pc21zLnB1c2goY29kZWMubmFtZS50b1VwcGVyQ2FzZSgpKTsKKyAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDogLy8gb25seSBSRUQgYW5kIFVMUEZFQyBhcmUgcmVjb2du
aXplZCBhcyBGRUMgbWVjaGFuaXNtcy4KKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9
CisgIH0KKyAgU0RQVXRpbHMubWF0Y2hQcmVmaXgobWVkaWFTZWN0aW9uLCAnYT1leHRtYXA6Jyku
Zm9yRWFjaChmdW5jdGlvbihsaW5lKSB7CisgICAgZGVzY3JpcHRpb24uaGVhZGVyRXh0ZW5zaW9u
cy5wdXNoKFNEUFV0aWxzLnBhcnNlRXh0bWFwKGxpbmUpKTsKKyAgfSk7CisgIC8vIEZJWE1FOiBw
YXJzZSBydGNwLgorICByZXR1cm4gZGVzY3JpcHRpb247Cit9OworCisvLyBHZW5lcmF0ZXMgcGFy
dHMgb2YgdGhlIFNEUCBtZWRpYSBzZWN0aW9uIGRlc2NyaWJpbmcgdGhlIGNhcGFiaWxpdGllcyAv
CisvLyBwYXJhbWV0ZXJzLgorU0RQVXRpbHMud3JpdGVSdHBEZXNjcmlwdGlvbiA9IGZ1bmN0aW9u
KGtpbmQsIGNhcHMpIHsKKyAgdmFyIHNkcCA9ICcnOworCisgIC8vIEJ1aWxkIHRoZSBtbGluZS4K
KyAgc2RwICs9ICdtPScgKyBraW5kICsgJyAnOworICBzZHAgKz0gY2Fwcy5jb2RlY3MubGVuZ3Ro
ID4gMCA/ICc5JyA6ICcwJzsgLy8gcmVqZWN0IGlmIG5vIGNvZGVjcy4KKyAgc2RwICs9ICcgVURQ
L1RMUy9SVFAvU0FWUEYgJzsKKyAgc2RwICs9IGNhcHMuY29kZWNzLm1hcChmdW5jdGlvbihjb2Rl
YykgeworICAgIGlmIChjb2RlYy5wcmVmZXJyZWRQYXlsb2FkVHlwZSAhPT0gdW5kZWZpbmVkKSB7
CisgICAgICByZXR1cm4gY29kZWMucHJlZmVycmVkUGF5bG9hZFR5cGU7CisgICAgfQorICAgIHJl
dHVybiBjb2RlYy5wYXlsb2FkVHlwZTsKKyAgfSkuam9pbignICcpICsgJ1xyXG4nOworCisgIHNk
cCArPSAnYz1JTiBJUDQgMC4wLjAuMFxyXG4nOworICBzZHAgKz0gJ2E9cnRjcDo5IElOIElQNCAw
LjAuMC4wXHJcbic7CisKKyAgLy8gQWRkIGE9cnRwbWFwIGxpbmVzIGZvciBlYWNoIGNvZGVjLiBB
bHNvIGZtdHAgYW5kIHJ0Y3AtZmIuCisgIGNhcHMuY29kZWNzLmZvckVhY2goZnVuY3Rpb24oY29k
ZWMpIHsKKyAgICBzZHAgKz0gU0RQVXRpbHMud3JpdGVSdHBNYXAoY29kZWMpOworICAgIHNkcCAr
PSBTRFBVdGlscy53cml0ZUZtdHAoY29kZWMpOworICAgIHNkcCArPSBTRFBVdGlscy53cml0ZVJ0
Y3BGYihjb2RlYyk7CisgIH0pOworICB2YXIgbWF4cHRpbWUgPSAwOworICBjYXBzLmNvZGVjcy5m
b3JFYWNoKGZ1bmN0aW9uKGNvZGVjKSB7CisgICAgaWYgKGNvZGVjLm1heHB0aW1lID4gbWF4cHRp
bWUpIHsKKyAgICAgIG1heHB0aW1lID0gY29kZWMubWF4cHRpbWU7CisgICAgfQorICB9KTsKKyAg
aWYgKG1heHB0aW1lID4gMCkgeworICAgIHNkcCArPSAnYT1tYXhwdGltZTonICsgbWF4cHRpbWUg
KyAnXHJcbic7CisgIH0KKyAgc2RwICs9ICdhPXJ0Y3AtbXV4XHJcbic7CisKKyAgaWYgKGNhcHMu
aGVhZGVyRXh0ZW5zaW9ucykgeworICAgIGNhcHMuaGVhZGVyRXh0ZW5zaW9ucy5mb3JFYWNoKGZ1
bmN0aW9uKGV4dGVuc2lvbikgeworICAgICAgc2RwICs9IFNEUFV0aWxzLndyaXRlRXh0bWFwKGV4
dGVuc2lvbik7CisgICAgfSk7CisgIH0KKyAgLy8gRklYTUU6IHdyaXRlIGZlY01lY2hhbmlzbXMu
CisgIHJldHVybiBzZHA7Cit9OworCisvLyBQYXJzZXMgdGhlIFNEUCBtZWRpYSBzZWN0aW9uIGFu
ZCByZXR1cm5zIGFuIGFycmF5IG9mCisvLyBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMuCitTRFBV
dGlscy5wYXJzZVJ0cEVuY29kaW5nUGFyYW1ldGVycyA9IGZ1bmN0aW9uKG1lZGlhU2VjdGlvbikg
eworICB2YXIgZW5jb2RpbmdQYXJhbWV0ZXJzID0gW107CisgIHZhciBkZXNjcmlwdGlvbiA9IFNE
UFV0aWxzLnBhcnNlUnRwUGFyYW1ldGVycyhtZWRpYVNlY3Rpb24pOworICB2YXIgaGFzUmVkID0g
ZGVzY3JpcHRpb24uZmVjTWVjaGFuaXNtcy5pbmRleE9mKCdSRUQnKSAhPT0gLTE7CisgIHZhciBo
YXNVbHBmZWMgPSBkZXNjcmlwdGlvbi5mZWNNZWNoYW5pc21zLmluZGV4T2YoJ1VMUEZFQycpICE9
PSAtMTsKKworICAvLyBmaWx0ZXIgYT1zc3JjOi4uLiBjbmFtZTosIGlnbm9yZSBQbGFuQi1tc2lk
CisgIHZhciBzc3JjcyA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlvbiwgJ2E9c3Ny
YzonKQorICAgIC5tYXAoZnVuY3Rpb24obGluZSkgeworICAgICAgcmV0dXJuIFNEUFV0aWxzLnBh
cnNlU3NyY01lZGlhKGxpbmUpOworICAgIH0pCisgICAgLmZpbHRlcihmdW5jdGlvbihwYXJ0cykg
eworICAgICAgcmV0dXJuIHBhcnRzLmF0dHJpYnV0ZSA9PT0gJ2NuYW1lJzsKKyAgICB9KTsKKyAg
dmFyIHByaW1hcnlTc3JjID0gc3NyY3MubGVuZ3RoID4gMCAmJiBzc3Jjc1swXS5zc3JjOworICB2
YXIgc2Vjb25kYXJ5U3NyYzsKKworICB2YXIgZmxvd3MgPSBTRFBVdGlscy5tYXRjaFByZWZpeCht
ZWRpYVNlY3Rpb24sICdhPXNzcmMtZ3JvdXA6RklEJykKKyAgICAubWFwKGZ1bmN0aW9uKGxpbmUp
IHsKKyAgICAgIHZhciBwYXJ0cyA9IGxpbmUuc3Vic3RyKDE3KS5zcGxpdCgnICcpOworICAgICAg
cmV0dXJuIHBhcnRzLm1hcChmdW5jdGlvbihwYXJ0KSB7CisgICAgICAgIHJldHVybiBwYXJzZUlu
dChwYXJ0LCAxMCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgaWYgKGZsb3dzLmxlbmd0aCA+IDAg
JiYgZmxvd3NbMF0ubGVuZ3RoID4gMSAmJiBmbG93c1swXVswXSA9PT0gcHJpbWFyeVNzcmMpIHsK
KyAgICBzZWNvbmRhcnlTc3JjID0gZmxvd3NbMF1bMV07CisgIH0KKworICBkZXNjcmlwdGlvbi5j
b2RlY3MuZm9yRWFjaChmdW5jdGlvbihjb2RlYykgeworICAgIGlmIChjb2RlYy5uYW1lLnRvVXBw
ZXJDYXNlKCkgPT09ICdSVFgnICYmIGNvZGVjLnBhcmFtZXRlcnMuYXB0KSB7CisgICAgICB2YXIg
ZW5jUGFyYW0gPSB7CisgICAgICAgIHNzcmM6IHByaW1hcnlTc3JjLAorICAgICAgICBjb2RlY1Bh
eWxvYWRUeXBlOiBwYXJzZUludChjb2RlYy5wYXJhbWV0ZXJzLmFwdCwgMTApCisgICAgICB9Owor
ICAgICAgaWYgKHByaW1hcnlTc3JjICYmIHNlY29uZGFyeVNzcmMpIHsKKyAgICAgICAgZW5jUGFy
YW0ucnR4ID0ge3NzcmM6IHNlY29uZGFyeVNzcmN9OworICAgICAgfQorICAgICAgZW5jb2RpbmdQ
YXJhbWV0ZXJzLnB1c2goZW5jUGFyYW0pOworICAgICAgaWYgKGhhc1JlZCkgeworICAgICAgICBl
bmNQYXJhbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZW5jUGFyYW0pKTsKKyAgICAgICAg
ZW5jUGFyYW0uZmVjID0geworICAgICAgICAgIHNzcmM6IHByaW1hcnlTc3JjLAorICAgICAgICAg
IG1lY2hhbmlzbTogaGFzVWxwZmVjID8gJ3JlZCt1bHBmZWMnIDogJ3JlZCcKKyAgICAgICAgfTsK
KyAgICAgICAgZW5jb2RpbmdQYXJhbWV0ZXJzLnB1c2goZW5jUGFyYW0pOworICAgICAgfQorICAg
IH0KKyAgfSk7CisgIGlmIChlbmNvZGluZ1BhcmFtZXRlcnMubGVuZ3RoID09PSAwICYmIHByaW1h
cnlTc3JjKSB7CisgICAgZW5jb2RpbmdQYXJhbWV0ZXJzLnB1c2goeworICAgICAgc3NyYzogcHJp
bWFyeVNzcmMKKyAgICB9KTsKKyAgfQorCisgIC8vIHdlIHN1cHBvcnQgYm90aCBiPUFTIGFuZCBi
PVRJQVMgYnV0IGludGVycHJldCBBUyBhcyBUSUFTLgorICB2YXIgYmFuZHdpZHRoID0gU0RQVXRp
bHMubWF0Y2hQcmVmaXgobWVkaWFTZWN0aW9uLCAnYj0nKTsKKyAgaWYgKGJhbmR3aWR0aC5sZW5n
dGgpIHsKKyAgICBpZiAoYmFuZHdpZHRoWzBdLmluZGV4T2YoJ2I9VElBUzonKSA9PT0gMCkgewor
ICAgICAgYmFuZHdpZHRoID0gcGFyc2VJbnQoYmFuZHdpZHRoWzBdLnN1YnN0cig3KSwgMTApOwor
ICAgIH0gZWxzZSBpZiAoYmFuZHdpZHRoWzBdLmluZGV4T2YoJ2I9QVM6JykgPT09IDApIHsKKyAg
ICAgIC8vIHVzZSBmb3JtdWxhIGZyb20gSlNFUCB0byBjb252ZXJ0IGI9QVMgdG8gVElBUyB2YWx1
ZS4KKyAgICAgIGJhbmR3aWR0aCA9IHBhcnNlSW50KGJhbmR3aWR0aFswXS5zdWJzdHIoNSksIDEw
KSAqIDEwMDAgKiAwLjk1CisgICAgICAgICAgLSAoNTAgKiA0MCAqIDgpOworICAgIH0gZWxzZSB7
CisgICAgICBiYW5kd2lkdGggPSB1bmRlZmluZWQ7CisgICAgfQorICAgIGVuY29kaW5nUGFyYW1l
dGVycy5mb3JFYWNoKGZ1bmN0aW9uKHBhcmFtcykgeworICAgICAgcGFyYW1zLm1heEJpdHJhdGUg
PSBiYW5kd2lkdGg7CisgICAgfSk7CisgIH0KKyAgcmV0dXJuIGVuY29kaW5nUGFyYW1ldGVyczsK
K307CisKKy8vIHBhcnNlcyBodHRwOi8vZHJhZnQub3J0Yy5vcmcvI3J0Y3J0Y3BwYXJhbWV0ZXJz
KgorU0RQVXRpbHMucGFyc2VSdGNwUGFyYW1ldGVycyA9IGZ1bmN0aW9uKG1lZGlhU2VjdGlvbikg
eworICB2YXIgcnRjcFBhcmFtZXRlcnMgPSB7fTsKKworICAvLyBHZXRzIHRoZSBmaXJzdCBTU1JD
LiBOb3RlIHRoYSB3aXRoIFJUWCB0aGVyZSBtaWdodCBiZSBtdWx0aXBsZQorICAvLyBTU1JDcy4K
KyAgdmFyIHJlbW90ZVNzcmMgPSBTRFBVdGlscy5tYXRjaFByZWZpeChtZWRpYVNlY3Rpb24sICdh
PXNzcmM6JykKKyAgICAubWFwKGZ1bmN0aW9uKGxpbmUpIHsKKyAgICAgIHJldHVybiBTRFBVdGls
cy5wYXJzZVNzcmNNZWRpYShsaW5lKTsKKyAgICB9KQorICAgIC5maWx0ZXIoZnVuY3Rpb24ob2Jq
KSB7CisgICAgICByZXR1cm4gb2JqLmF0dHJpYnV0ZSA9PT0gJ2NuYW1lJzsKKyAgICB9KVswXTsK
KyAgaWYgKHJlbW90ZVNzcmMpIHsKKyAgICBydGNwUGFyYW1ldGVycy5jbmFtZSA9IHJlbW90ZVNz
cmMudmFsdWU7CisgICAgcnRjcFBhcmFtZXRlcnMuc3NyYyA9IHJlbW90ZVNzcmMuc3NyYzsKKyAg
fQorCisgIC8vIEVkZ2UgdXNlcyB0aGUgY29tcG91bmQgYXR0cmlidXRlIGluc3RlYWQgb2YgcmVk
dWNlZFNpemUKKyAgLy8gY29tcG91bmQgaXMgIXJlZHVjZWRTaXplCisgIHZhciByc2l6ZSA9IFNE
UFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlvbiwgJ2E9cnRjcC1yc2l6ZScpOworICBydGNw
UGFyYW1ldGVycy5yZWR1Y2VkU2l6ZSA9IHJzaXplLmxlbmd0aCA+IDA7CisgIHJ0Y3BQYXJhbWV0
ZXJzLmNvbXBvdW5kID0gcnNpemUubGVuZ3RoID09PSAwOworCisgIC8vIHBhcnNlcyB0aGUgcnRj
cC1tdXggYXR0ctGWYnV0ZS4KKyAgLy8gTm90ZSB0aGF0IEVkZ2UgZG9lcyBub3Qgc3VwcG9ydCB1
bm11eGVkIFJUQ1AuCisgIHZhciBtdXggPSBTRFBVdGlscy5tYXRjaFByZWZpeChtZWRpYVNlY3Rp
b24sICdhPXJ0Y3AtbXV4Jyk7CisgIHJ0Y3BQYXJhbWV0ZXJzLm11eCA9IG11eC5sZW5ndGggPiAw
OworCisgIHJldHVybiBydGNwUGFyYW1ldGVyczsKK307CisKKy8vIHBhcnNlcyBlaXRoZXIgYT1t
c2lkOiBvciBhPXNzcmM6Li4uIG1zaWQgbGluZXMgYW5kIHJldHVybnMKKy8vIHRoZSBpZCBvZiB0
aGUgTWVkaWFTdHJlYW0gYW5kIE1lZGlhU3RyZWFtVHJhY2suCitTRFBVdGlscy5wYXJzZU1zaWQg
PSBmdW5jdGlvbihtZWRpYVNlY3Rpb24pIHsKKyAgdmFyIHBhcnRzOworICB2YXIgc3BlYyA9IFNE
UFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlvbiwgJ2E9bXNpZDonKTsKKyAgaWYgKHNwZWMu
bGVuZ3RoID09PSAxKSB7CisgICAgcGFydHMgPSBzcGVjWzBdLnN1YnN0cig3KS5zcGxpdCgnICcp
OworICAgIHJldHVybiB7c3RyZWFtOiBwYXJ0c1swXSwgdHJhY2s6IHBhcnRzWzFdfTsKKyAgfQor
ICB2YXIgcGxhbkIgPSBTRFBVdGlscy5tYXRjaFByZWZpeChtZWRpYVNlY3Rpb24sICdhPXNzcmM6
JykKKyAgICAubWFwKGZ1bmN0aW9uKGxpbmUpIHsKKyAgICAgIHJldHVybiBTRFBVdGlscy5wYXJz
ZVNzcmNNZWRpYShsaW5lKTsKKyAgICB9KQorICAgIC5maWx0ZXIoZnVuY3Rpb24obXNpZFBhcnRz
KSB7CisgICAgICByZXR1cm4gbXNpZFBhcnRzLmF0dHJpYnV0ZSA9PT0gJ21zaWQnOworICAgIH0p
OworICBpZiAocGxhbkIubGVuZ3RoID4gMCkgeworICAgIHBhcnRzID0gcGxhbkJbMF0udmFsdWUu
c3BsaXQoJyAnKTsKKyAgICByZXR1cm4ge3N0cmVhbTogcGFydHNbMF0sIHRyYWNrOiBwYXJ0c1sx
XX07CisgIH0KK307CisKKy8vIFNDVFAKKy8vIHBhcnNlcyBkcmFmdC1pZXRmLW1tdXNpYy1zY3Rw
LXNkcC0yNiBmaXJzdCBhbmQgZmFsbHMgYmFjaworLy8gdG8gZHJhZnQtaWV0Zi1tbXVzaWMtc2N0
cC1zZHAtMDUKK1NEUFV0aWxzLnBhcnNlU2N0cERlc2NyaXB0aW9uID0gZnVuY3Rpb24obWVkaWFT
ZWN0aW9uKSB7CisgIHZhciBtbGluZSA9IFNEUFV0aWxzLnBhcnNlTUxpbmUobWVkaWFTZWN0aW9u
KTsKKyAgdmFyIG1heFNpemVMaW5lID0gU0RQVXRpbHMubWF0Y2hQcmVmaXgobWVkaWFTZWN0aW9u
LCAnYT1tYXgtbWVzc2FnZS1zaXplOicpOworICB2YXIgbWF4TWVzc2FnZVNpemU7CisgIGlmICht
YXhTaXplTGluZS5sZW5ndGggPiAwKSB7CisgICAgbWF4TWVzc2FnZVNpemUgPSBwYXJzZUludCht
YXhTaXplTGluZVswXS5zdWJzdHIoMTkpLCAxMCk7CisgIH0KKyAgaWYgKGlzTmFOKG1heE1lc3Nh
Z2VTaXplKSkgeworICAgIG1heE1lc3NhZ2VTaXplID0gNjU1MzY7CisgIH0KKyAgdmFyIHNjdHBQ
b3J0ID0gU0RQVXRpbHMubWF0Y2hQcmVmaXgobWVkaWFTZWN0aW9uLCAnYT1zY3RwLXBvcnQ6Jyk7
CisgIGlmIChzY3RwUG9ydC5sZW5ndGggPiAwKSB7CisgICAgcmV0dXJuIHsKKyAgICAgIHBvcnQ6
IHBhcnNlSW50KHNjdHBQb3J0WzBdLnN1YnN0cigxMiksIDEwKSwKKyAgICAgIHByb3RvY29sOiBt
bGluZS5mbXQsCisgICAgICBtYXhNZXNzYWdlU2l6ZTogbWF4TWVzc2FnZVNpemUKKyAgICB9Owor
ICB9CisgIHZhciBzY3RwTWFwTGluZXMgPSBTRFBVdGlscy5tYXRjaFByZWZpeChtZWRpYVNlY3Rp
b24sICdhPXNjdHBtYXA6Jyk7CisgIGlmIChzY3RwTWFwTGluZXMubGVuZ3RoID4gMCkgeworICAg
IHZhciBwYXJ0cyA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KG1lZGlhU2VjdGlvbiwgJ2E9c2N0cG1h
cDonKVswXQorICAgICAgLnN1YnN0cigxMCkKKyAgICAgIC5zcGxpdCgnICcpOworICAgIHJldHVy
biB7CisgICAgICBwb3J0OiBwYXJzZUludChwYXJ0c1swXSwgMTApLAorICAgICAgcHJvdG9jb2w6
IHBhcnRzWzFdLAorICAgICAgbWF4TWVzc2FnZVNpemU6IG1heE1lc3NhZ2VTaXplCisgICAgfTsK
KyAgfQorfTsKKworLy8gU0NUUAorLy8gb3V0cHV0cyB0aGUgZHJhZnQtaWV0Zi1tbXVzaWMtc2N0
cC1zZHAtMjYgdmVyc2lvbiB0aGF0IGFsbCBicm93c2VycworLy8gc3VwcG9ydCBieSBub3cgcmVj
ZWl2aW5nIGluIHRoaXMgZm9ybWF0LCB1bmxlc3Mgd2Ugb3JpZ2luYWxseSBwYXJzZWQKKy8vIGFz
IHRoZSBkcmFmdC1pZXRmLW1tdXNpYy1zY3RwLXNkcC0wNSBmb3JtYXQgKGluZGljYXRlZCBieSB0
aGUgbS1saW5lCisvLyBwcm90b2NvbCBvZiBEVExTL1NDVFAgLS0gd2l0aG91dCBVRFAvIG9yIFRD
UC8pCitTRFBVdGlscy53cml0ZVNjdHBEZXNjcmlwdGlvbiA9IGZ1bmN0aW9uKG1lZGlhLCBzY3Rw
KSB7CisgIHZhciBvdXRwdXQgPSBbXTsKKyAgaWYgKG1lZGlhLnByb3RvY29sICE9PSAnRFRMUy9T
Q1RQJykgeworICAgIG91dHB1dCA9IFsKKyAgICAgICdtPScgKyBtZWRpYS5raW5kICsgJyA5ICcg
KyBtZWRpYS5wcm90b2NvbCArICcgJyArIHNjdHAucHJvdG9jb2wgKyAnXHJcbicsCisgICAgICAn
Yz1JTiBJUDQgMC4wLjAuMFxyXG4nLAorICAgICAgJ2E9c2N0cC1wb3J0OicgKyBzY3RwLnBvcnQg
KyAnXHJcbicKKyAgICBdOworICB9IGVsc2UgeworICAgIG91dHB1dCA9IFsKKyAgICAgICdtPScg
KyBtZWRpYS5raW5kICsgJyA5ICcgKyBtZWRpYS5wcm90b2NvbCArICcgJyArIHNjdHAucG9ydCAr
ICdcclxuJywKKyAgICAgICdjPUlOIElQNCAwLjAuMC4wXHJcbicsCisgICAgICAnYT1zY3RwbWFw
OicgKyBzY3RwLnBvcnQgKyAnICcgKyBzY3RwLnByb3RvY29sICsgJyA2NTUzNVxyXG4nCisgICAg
XTsKKyAgfQorICBpZiAoc2N0cC5tYXhNZXNzYWdlU2l6ZSAhPT0gdW5kZWZpbmVkKSB7CisgICAg
b3V0cHV0LnB1c2goJ2E9bWF4LW1lc3NhZ2Utc2l6ZTonICsgc2N0cC5tYXhNZXNzYWdlU2l6ZSAr
ICdcclxuJyk7CisgIH0KKyAgcmV0dXJuIG91dHB1dC5qb2luKCcnKTsKK307CisKKy8vIEdlbmVy
YXRlIGEgc2Vzc2lvbiBJRCBmb3IgU0RQLgorLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1s
L2RyYWZ0LWlldGYtcnRjd2ViLWpzZXAtMjAjc2VjdGlvbi01LjIuMQorLy8gcmVjb21tZW5kcyB1
c2luZyBhIGNyeXB0b2dyYXBoaWNhbGx5IHJhbmRvbSArdmUgNjQtYml0IHZhbHVlCisvLyBidXQg
cmlnaHQgbm93IHRoaXMgc2hvdWxkIGJlIGFjY2VwdGFibGUgYW5kIHdpdGhpbiB0aGUgcmlnaHQg
cmFuZ2UKK1NEUFV0aWxzLmdlbmVyYXRlU2Vzc2lvbklkID0gZnVuY3Rpb24oKSB7CisgIHJldHVy
biBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkuc3Vic3RyKDIsIDIxKTsKK307CisKKy8vIFdyaXRl
IGJvaWxkZXIgcGxhdGUgZm9yIHN0YXJ0IG9mIFNEUAorLy8gc2Vzc0lkIGFyZ3VtZW50IGlzIG9w
dGlvbmFsIC0gaWYgbm90IHN1cHBsaWVkIGl0IHdpbGwKKy8vIGJlIGdlbmVyYXRlZCByYW5kb21s
eQorLy8gc2Vzc1ZlcnNpb24gaXMgb3B0aW9uYWwgYW5kIGRlZmF1bHRzIHRvIDIKKy8vIHNlc3NV
c2VyIGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byAndGhpc2lzYWRhcHRlcm9ydGMnCitTRFBV
dGlscy53cml0ZVNlc3Npb25Cb2lsZXJwbGF0ZSA9IGZ1bmN0aW9uKHNlc3NJZCwgc2Vzc1Zlciwg
c2Vzc1VzZXIpIHsKKyAgdmFyIHNlc3Npb25JZDsKKyAgdmFyIHZlcnNpb24gPSBzZXNzVmVyICE9
PSB1bmRlZmluZWQgPyBzZXNzVmVyIDogMjsKKyAgaWYgKHNlc3NJZCkgeworICAgIHNlc3Npb25J
ZCA9IHNlc3NJZDsKKyAgfSBlbHNlIHsKKyAgICBzZXNzaW9uSWQgPSBTRFBVdGlscy5nZW5lcmF0
ZVNlc3Npb25JZCgpOworICB9CisgIHZhciB1c2VyID0gc2Vzc1VzZXIgfHwgJ3RoaXNpc2FkYXB0
ZXJvcnRjJzsKKyAgLy8gRklYTUU6IHNlc3MtaWQgc2hvdWxkIGJlIGFuIE5UUCB0aW1lc3RhbXAu
CisgIHJldHVybiAndj0wXHJcbicgKworICAgICAgJ289JyArIHVzZXIgKyAnICcgKyBzZXNzaW9u
SWQgKyAnICcgKyB2ZXJzaW9uICsKKyAgICAgICAgJyBJTiBJUDQgMTI3LjAuMC4xXHJcbicgKwor
ICAgICAgJ3M9LVxyXG4nICsKKyAgICAgICd0PTAgMFxyXG4nOworfTsKKworU0RQVXRpbHMud3Jp
dGVNZWRpYVNlY3Rpb24gPSBmdW5jdGlvbih0cmFuc2NlaXZlciwgY2FwcywgdHlwZSwgc3RyZWFt
KSB7CisgIHZhciBzZHAgPSBTRFBVdGlscy53cml0ZVJ0cERlc2NyaXB0aW9uKHRyYW5zY2VpdmVy
LmtpbmQsIGNhcHMpOworCisgIC8vIE1hcCBJQ0UgcGFyYW1ldGVycyAodWZyYWcsIHB3ZCkgdG8g
U0RQLgorICBzZHAgKz0gU0RQVXRpbHMud3JpdGVJY2VQYXJhbWV0ZXJzKAorICAgIHRyYW5zY2Vp
dmVyLmljZUdhdGhlcmVyLmdldExvY2FsUGFyYW1ldGVycygpKTsKKworICAvLyBNYXAgRFRMUyBw
YXJhbWV0ZXJzIHRvIFNEUC4KKyAgc2RwICs9IFNEUFV0aWxzLndyaXRlRHRsc1BhcmFtZXRlcnMo
CisgICAgdHJhbnNjZWl2ZXIuZHRsc1RyYW5zcG9ydC5nZXRMb2NhbFBhcmFtZXRlcnMoKSwKKyAg
ICB0eXBlID09PSAnb2ZmZXInID8gJ2FjdHBhc3MnIDogJ2FjdGl2ZScpOworCisgIHNkcCArPSAn
YT1taWQ6JyArIHRyYW5zY2VpdmVyLm1pZCArICdcclxuJzsKKworICBpZiAodHJhbnNjZWl2ZXIu
ZGlyZWN0aW9uKSB7CisgICAgc2RwICs9ICdhPScgKyB0cmFuc2NlaXZlci5kaXJlY3Rpb24gKyAn
XHJcbic7CisgIH0gZWxzZSBpZiAodHJhbnNjZWl2ZXIucnRwU2VuZGVyICYmIHRyYW5zY2VpdmVy
LnJ0cFJlY2VpdmVyKSB7CisgICAgc2RwICs9ICdhPXNlbmRyZWN2XHJcbic7CisgIH0gZWxzZSBp
ZiAodHJhbnNjZWl2ZXIucnRwU2VuZGVyKSB7CisgICAgc2RwICs9ICdhPXNlbmRvbmx5XHJcbic7
CisgIH0gZWxzZSBpZiAodHJhbnNjZWl2ZXIucnRwUmVjZWl2ZXIpIHsKKyAgICBzZHAgKz0gJ2E9
cmVjdm9ubHlcclxuJzsKKyAgfSBlbHNlIHsKKyAgICBzZHAgKz0gJ2E9aW5hY3RpdmVcclxuJzsK
KyAgfQorCisgIGlmICh0cmFuc2NlaXZlci5ydHBTZW5kZXIpIHsKKyAgICAvLyBzcGVjLgorICAg
IHZhciBtc2lkID0gJ21zaWQ6JyArIHN0cmVhbS5pZCArICcgJyArCisgICAgICAgIHRyYW5zY2Vp
dmVyLnJ0cFNlbmRlci50cmFjay5pZCArICdcclxuJzsKKyAgICBzZHAgKz0gJ2E9JyArIG1zaWQ7
CisKKyAgICAvLyBmb3IgQ2hyb21lLgorICAgIHNkcCArPSAnYT1zc3JjOicgKyB0cmFuc2NlaXZl
ci5zZW5kRW5jb2RpbmdQYXJhbWV0ZXJzWzBdLnNzcmMgKworICAgICAgICAnICcgKyBtc2lkOwor
ICAgIGlmICh0cmFuc2NlaXZlci5zZW5kRW5jb2RpbmdQYXJhbWV0ZXJzWzBdLnJ0eCkgeworICAg
ICAgc2RwICs9ICdhPXNzcmM6JyArIHRyYW5zY2VpdmVyLnNlbmRFbmNvZGluZ1BhcmFtZXRlcnNb
MF0ucnR4LnNzcmMgKworICAgICAgICAgICcgJyArIG1zaWQ7CisgICAgICBzZHAgKz0gJ2E9c3Ny
Yy1ncm91cDpGSUQgJyArCisgICAgICAgICAgdHJhbnNjZWl2ZXIuc2VuZEVuY29kaW5nUGFyYW1l
dGVyc1swXS5zc3JjICsgJyAnICsKKyAgICAgICAgICB0cmFuc2NlaXZlci5zZW5kRW5jb2RpbmdQ
YXJhbWV0ZXJzWzBdLnJ0eC5zc3JjICsKKyAgICAgICAgICAnXHJcbic7CisgICAgfQorICB9Cisg
IC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSB3cml0dGVuIGJ5IHdyaXRlUnRwRGVzY3JpcHRpb24u
CisgIHNkcCArPSAnYT1zc3JjOicgKyB0cmFuc2NlaXZlci5zZW5kRW5jb2RpbmdQYXJhbWV0ZXJz
WzBdLnNzcmMgKworICAgICAgJyBjbmFtZTonICsgU0RQVXRpbHMubG9jYWxDTmFtZSArICdcclxu
JzsKKyAgaWYgKHRyYW5zY2VpdmVyLnJ0cFNlbmRlciAmJiB0cmFuc2NlaXZlci5zZW5kRW5jb2Rp
bmdQYXJhbWV0ZXJzWzBdLnJ0eCkgeworICAgIHNkcCArPSAnYT1zc3JjOicgKyB0cmFuc2NlaXZl
ci5zZW5kRW5jb2RpbmdQYXJhbWV0ZXJzWzBdLnJ0eC5zc3JjICsKKyAgICAgICAgJyBjbmFtZTon
ICsgU0RQVXRpbHMubG9jYWxDTmFtZSArICdcclxuJzsKKyAgfQorICByZXR1cm4gc2RwOworfTsK
KworLy8gR2V0cyB0aGUgZGlyZWN0aW9uIGZyb20gdGhlIG1lZGlhU2VjdGlvbiBvciB0aGUgc2Vz
c2lvbnBhcnQuCitTRFBVdGlscy5nZXREaXJlY3Rpb24gPSBmdW5jdGlvbihtZWRpYVNlY3Rpb24s
IHNlc3Npb25wYXJ0KSB7CisgIC8vIExvb2sgZm9yIHNlbmRyZWN2LCBzZW5kb25seSwgcmVjdm9u
bHksIGluYWN0aXZlLCBkZWZhdWx0IHRvIHNlbmRyZWN2LgorICB2YXIgbGluZXMgPSBTRFBVdGls
cy5zcGxpdExpbmVzKG1lZGlhU2VjdGlvbik7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMu
bGVuZ3RoOyBpKyspIHsKKyAgICBzd2l0Y2ggKGxpbmVzW2ldKSB7CisgICAgICBjYXNlICdhPXNl
bmRyZWN2JzoKKyAgICAgIGNhc2UgJ2E9c2VuZG9ubHknOgorICAgICAgY2FzZSAnYT1yZWN2b25s
eSc6CisgICAgICBjYXNlICdhPWluYWN0aXZlJzoKKyAgICAgICAgcmV0dXJuIGxpbmVzW2ldLnN1
YnN0cigyKTsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgIC8vIEZJWE1FOiBXaGF0IHNob3VsZCBo
YXBwZW4gaGVyZT8KKyAgICB9CisgIH0KKyAgaWYgKHNlc3Npb25wYXJ0KSB7CisgICAgcmV0dXJu
IFNEUFV0aWxzLmdldERpcmVjdGlvbihzZXNzaW9ucGFydCk7CisgIH0KKyAgcmV0dXJuICdzZW5k
cmVjdic7Cit9OworCitTRFBVdGlscy5nZXRLaW5kID0gZnVuY3Rpb24obWVkaWFTZWN0aW9uKSB7
CisgIHZhciBsaW5lcyA9IFNEUFV0aWxzLnNwbGl0TGluZXMobWVkaWFTZWN0aW9uKTsKKyAgdmFy
IG1saW5lID0gbGluZXNbMF0uc3BsaXQoJyAnKTsKKyAgcmV0dXJuIG1saW5lWzBdLnN1YnN0cigy
KTsKK307CisKK1NEUFV0aWxzLmlzUmVqZWN0ZWQgPSBmdW5jdGlvbihtZWRpYVNlY3Rpb24pIHsK
KyAgcmV0dXJuIG1lZGlhU2VjdGlvbi5zcGxpdCgnICcsIDIpWzFdID09PSAnMCc7Cit9OworCitT
RFBVdGlscy5wYXJzZU1MaW5lID0gZnVuY3Rpb24obWVkaWFTZWN0aW9uKSB7CisgIHZhciBsaW5l
cyA9IFNEUFV0aWxzLnNwbGl0TGluZXMobWVkaWFTZWN0aW9uKTsKKyAgdmFyIHBhcnRzID0gbGlu
ZXNbMF0uc3Vic3RyKDIpLnNwbGl0KCcgJyk7CisgIHJldHVybiB7CisgICAga2luZDogcGFydHNb
MF0sCisgICAgcG9ydDogcGFyc2VJbnQocGFydHNbMV0sIDEwKSwKKyAgICBwcm90b2NvbDogcGFy
dHNbMl0sCisgICAgZm10OiBwYXJ0cy5zbGljZSgzKS5qb2luKCcgJykKKyAgfTsKK307CisKK1NE
UFV0aWxzLnBhcnNlT0xpbmUgPSBmdW5jdGlvbihtZWRpYVNlY3Rpb24pIHsKKyAgdmFyIGxpbmUg
PSBTRFBVdGlscy5tYXRjaFByZWZpeChtZWRpYVNlY3Rpb24sICdvPScpWzBdOworICB2YXIgcGFy
dHMgPSBsaW5lLnN1YnN0cigyKS5zcGxpdCgnICcpOworICByZXR1cm4geworICAgIHVzZXJuYW1l
OiBwYXJ0c1swXSwKKyAgICBzZXNzaW9uSWQ6IHBhcnRzWzFdLAorICAgIHNlc3Npb25WZXJzaW9u
OiBwYXJzZUludChwYXJ0c1syXSwgMTApLAorICAgIG5ldFR5cGU6IHBhcnRzWzNdLAorICAgIGFk
ZHJlc3NUeXBlOiBwYXJ0c1s0XSwKKyAgICBhZGRyZXNzOiBwYXJ0c1s1XQorICB9OworfTsKKwor
Ly8gYSB2ZXJ5IG5haXZlIGludGVycHJldGF0aW9uIG9mIGEgdmFsaWQgU0RQLgorU0RQVXRpbHMu
aXNWYWxpZFNEUCA9IGZ1bmN0aW9uKGJsb2IpIHsKKyAgaWYgKHR5cGVvZiBibG9iICE9PSAnc3Ry
aW5nJyB8fCBibG9iLmxlbmd0aCA9PT0gMCkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICB2
YXIgbGluZXMgPSBTRFBVdGlscy5zcGxpdExpbmVzKGJsb2IpOworICBmb3IgKHZhciBpID0gMDsg
aSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgaWYgKGxpbmVzW2ldLmxlbmd0aCA8IDIgfHwg
bGluZXNbaV0uY2hhckF0KDEpICE9PSAnPScpIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgLy8gVE9ETzogY2hlY2sgdGhlIG1vZGlmaWVyIGEgYml0IG1vcmUuCisgIH0KKyAgcmV0
dXJuIHRydWU7Cit9OworCisvLyBFeHBvc2UgcHVibGljIG1ldGhvZHMuCitpZiAodHlwZW9mIG1v
ZHVsZSA9PT0gJ29iamVjdCcpIHsKKyAgbW9kdWxlLmV4cG9ydHMgPSBTRFBVdGlsczsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3RoaXJkX3BhcnR5L3NkcC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3RoaXJkX3BhcnR5L3NkcC93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MzI0ZWY5YTliMzgzMjE0ZGUyZjIzOTdhZmNhZjU4ZWRlMDZhMWM5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvdGhpcmRfcGFydHkvc2RwL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3RoaXJkX3BhcnR5L3NkcC9MSUNFTlNFCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdGhpcmRfcGFydHkvc2RwL3NkcC5qcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvdGhpcmRfcGFydHkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy90aGlyZF9wYXJ0eS93M2MtaW1wb3J0LmxvZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMTc4N2ExN2Q0Zjg1NmQ4NzE0OGRiZGQ1ZjRiNGMzMWM2NTlmNjZhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvdGhpcmRfcGFydHkvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdGhp
cmRfcGFydHkvUkVBRE1FLm1kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCmluZGV4
IGE3ZjNjODZkOWRmMGVhNzEzNjRmNjE1YzE4MTgxMGE0OTAyMjc1ZGQuLmEzOTdkOGU3NmMyNzdl
NGZjNjdiZjI2ZDA3OTZjNDljYmY2YTNiYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBv
cnQubG9nCkBAIC0xNSw2ICsxNSw3IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBm
aWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9NRVRBLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JFQURNRS5tZAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0NlcnRpZmljYXRlLXBvc3RNZXNzYWdlLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDZXJ0aWZpY2F0ZS5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDQ29uZmlndXJhdGlvbi1idW5kbGVQb2xpY3kuaHRtbApAQCAtMjgsNyArMjksOSBAQCBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLWxvbmcuaHR0cHMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5k
ZXItb250b25lY2hhbmdlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1idWZmZXJlZEFtb3VudC5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtY2xvc2UuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWlkLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1zZW5k
LWJsb2Itb3JkZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLXNlbmQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsRXZlbnQtY29u
c3RydWN0b3IuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLmh0bWwKQEAg
LTQwLDExICs0MywxMiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0ljZVRyYW5zcG9ydC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkLXRyYWNrLW5vLWRlYWRs
b2NrLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtdGltaW5nLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFk
ZFRyYWNrLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFuc2NlaXZlci5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWNvbm5lY3Rpb25TdGF0ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25zdHJ1Y3Rvci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRl
QW5zd2VyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5lbC5odG1sCkBAIC01NCwx
NyArNTgsMjUgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tZ2V0VHJhbnNjZWl2ZXJzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxw
ZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUtZGlzY29ubmVjdGVkLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0
U3RhdHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uZGF0YWNoYW5uZWwuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLW9uaWNlY2FuZGlkYXRlZXJyb3IuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVn
b3RpYXRpb25uZWVkZWQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2Vk
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1vcGVyYXRpb25zLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9u
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0ZS5odHRwcy5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tcmVtb3ZlVHJhY2suaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJ
Y2Utb25uZWdvdGlhdGlvbm5lZWRlZC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydElj
ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2ZXIuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tYW5zd2VyLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLW9mZmVyLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2Nh
bERlc2NyaXB0aW9uLXBhcmFtZXRlcmxlc3MuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExv
Y2FsRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3Jp
cHRpb24tcm9sbGJhY2suaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24uaHRt
bApAQCAtNzQsMTQgKzg2LDE1IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVt
b3RlRGVzY3JpcHRpb24tcHJhbnN3ZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2Ny
aXB0aW9uLXJlcGxhY2VUcmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVz
Y3JpcHRpb24tcm9sbGJhY2suaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9u
LXNpbXVsY2FzdC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24t
dHJhY2tzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tdHJhY2stc3RhdHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYW5z
Y2VpdmVycy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uSWNlRXZlbnQtY29uc3RydWN0b3IuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cENhcGFiaWxpdGllcy1oZWxw
ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBQYXJhbWV0ZXJzLWNvZGVjcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblBy
ZWZlcmVuY2UuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2RpbmdzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhl
YWRlckV4dGVuc2lvbnMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpzCkBAIC05NiwxMiArMTA5
LDE2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWdldFN0YXRzLmh0dHBzLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5k
ZXItcmVwbGFjZVRyYWNrLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItc2V0UGFyYW1ldGVycy5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
U2VuZGVyLXNldFN0cmVhbXMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci10cmFuc3BvcnQuaHR0cHMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFNlbmRlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItZGlyZWN0aW9uLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFu
c2NlaXZlci1zZXRDb2RlY1ByZWZlcmVuY2VzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBUcmFuc2NlaXZlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0
cFRyYW5zcG9ydC1ldmVudHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtbWF4Q2hhbm5lbHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBU
cmFuc3BvcnQtbWF4TWVzc2FnZVNpemUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1RyYWNrRXZlbnQtY29u
c3RydWN0b3IuaHRtbApAQCAtMTEzLDUgKzEzMCw2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRsaGFybmVzcy5o
dHRwcy53aW5kb3cuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9uby1tZWRpYS1jYWxsLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9yZWNlaXZlci10cmFjay1s
aXZlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLW5vLXNzcmNzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDU1ZTY5
YjMxYWE4MmRiNGFkZjQ2NGZhZGQ0Mjk3MWRhMTgzNzRkMC4uNzk5OGI5N2E4OTUwNjFhMTVmOWNk
MTJkYTgwNmM1ZjdkZjJiZTljYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTI4NDEsNyArMjg0MSw2IEBAIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvZGVmbGF0ZS1mcmFtZS1wYXJhbWV0ZXIuaHRtbCBbIEZhaWx1cmUgXQogIyA8cmRhcjov
L3Byb2JsZW0vMzQwNTE3NDU+CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRMb2NhbERlc2NyaXB0aW9uLmh0bWwgWyBGYWlsdXJlIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2dldHN0YXRzLmh0bWwgWyBG
YWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3J0Y3BlZXJj
b25uZWN0aW9uL3J0Y3BlZXJjb25uZWN0aW9uLWlkbC5odG1sIFsgRmFpbHVyZSBdCiAKICMgPHJk
YXI6Ly9wcm9ibGVtLzM0MjA5MDM4Pgogd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
bG9nL2xvZ18wMDFfdG9fMDA4Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3Rlc3RzLW9wdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgppbmRl
eCBkZWQ2MzljMDYyZjhhNTkyZDE4ZmMyMWQyMDA0ZWEwZmM3MmNjZWU1Li4xMTAzMWI1OWQyMmE5
NWJkZGQ0YjYyN2IwMjhkZjU4MGU1Zjc4NGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90ZXN0
cy1vcHRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCkBAIC0y
NzI5LDIxICsyNzI5LDkwIEBACiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLWxvbmcuaHR0cHMuaHRtbCI6IFsKICAg
ICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVjaGFuZ2UuaHR0cHMuaHRtbCI6IFsKKyAgICAg
ICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQuaHRtbCI6IFsKKyAgICAgICAgInNs
b3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwt
c2VuZC5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25uZWN0aW9uU3RhdGUtY2FuZGlkYXRl
LXBhaXIuaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRl
RGF0YUNoYW5uZWwuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29u
bmVjdGlvblN0YXRlLWRpc2Nvbm5lY3RlZC5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIK
KyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAg
InNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwiOiBbCisg
ICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRt
bCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlLXRyYWNrLW11dGUuaHR0
cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3Jp
cHRpb24tdHJhY2tzLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXRyYWNrLXN0YXRzLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCiAgICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXRyYW5zY2VpdmVycy5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi12aWRlb0RldGVjdG9yVGVzdC5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1n
ZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93Igog
ICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFNlbmRlci1yZXBsYWNlVHJhY2suaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAg
XSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2Vu
ZGVyLXRyYW5zcG9ydC5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZl
ci5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kvUlRDUGVlckNvbm5lY3Rpb24tYWRk
U3RyZWFtLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1leGNo
YW5nZS5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2Utc3RhdGUuaHR0cHMu
aHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXVmcmFncHdkLmh0bWwiOiBbCisgICAg
ICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3NpbXVsY2FzdC9iYXNpYy5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAg
ICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNh
c3QvZ2V0U3RhdHMuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0
cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0
dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMuaHRtbCI6IFsKKyAg
ICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJzb2NrZXRzL2JpbmFyeS8wMDIuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>